From 4002dcb5e86b8cfb319a820b6a9d1a8fdf85d8d8 Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期五, 24 五月 2024 15:18:17 +0800 Subject: [PATCH] feat:分数统计新增导出 --- src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java | 13 ++---- src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java | 21 +++++++++- src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java | 3 + src/main/java/com/mindskip/xzs/domain/vo/ExamPaperDataExportVO.java | 36 ++++++++++++++++++ src/main/java/com/mindskip/xzs/controller/admin/ExamPaperAnswerController.java | 10 +++++ src/main/resources/mapper/ExamPaperAnswerMapper.xml | 8 ++-- 6 files changed, 76 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperAnswerController.java b/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperAnswerController.java index 574bcde..5ed2c9f 100644 --- a/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperAnswerController.java +++ b/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperAnswerController.java @@ -8,6 +8,7 @@ import com.mindskip.xzs.domain.ExamPaperSubject; import com.mindskip.xzs.domain.Subject; import com.mindskip.xzs.domain.exam.ExamPaperAnswerObject; +import com.mindskip.xzs.domain.vo.ExamPaperDataExportVO; import com.mindskip.xzs.domain.vo.ExamPaperDataVO; import com.mindskip.xzs.domain.vo.ExamPaperStatisticVO; import com.mindskip.xzs.service.ExamPaperAnswerService; @@ -17,6 +18,7 @@ import com.mindskip.xzs.utility.DateTimeUtil; import com.mindskip.xzs.utility.ExamUtil; import com.mindskip.xzs.utility.PageInfoHelper; +import com.mindskip.xzs.utility.excel.ExcelUtils; import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperAnswerPageRequestVM; import com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageResponseVM; import org.apache.commons.lang3.ObjectUtils; @@ -26,6 +28,7 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.math.BigDecimal; import java.math.RoundingMode; @@ -134,4 +137,11 @@ public RestResponse<Map<String, Object>> data(@RequestBody ExamPaperDataVO examPaperDataVO) { return RestResponse.ok(examPaperAnswerService.data(examPaperDataVO)); } + + @RequestMapping(value = "/export", method = RequestMethod.GET) + public void export(Integer id, Integer type, HttpServletResponse response) { + List<ExamPaperDataExportVO> list = examPaperAnswerService.dataExport(new ExamPaperDataVO().setId(id).setType(type)); + ExcelUtils.export(response, "鍒嗘暟缁熻", list, ExamPaperDataExportVO.class); + } + } diff --git a/src/main/java/com/mindskip/xzs/domain/vo/ExamPaperDataExportVO.java b/src/main/java/com/mindskip/xzs/domain/vo/ExamPaperDataExportVO.java new file mode 100644 index 0000000..1328fe4 --- /dev/null +++ b/src/main/java/com/mindskip/xzs/domain/vo/ExamPaperDataExportVO.java @@ -0,0 +1,36 @@ +package com.mindskip.xzs.domain.vo; + +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.mindskip.xzs.utility.excel.ExcelExport; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; + +/** + * @author gonghl + * @since 2024/5/24 + */ + +@Data +@Accessors(chain = true) +public class ExamPaperDataExportVO { + + private Integer id; + + @ExcelExport("閮ㄩ棬鍚嶇О") + private String name; + + @ExcelExport("鍙傝�冧汉鏁�") + private Integer factPeopleTotal; + + @ExcelExport("鍙傝�冧汉鏁扮櫨鍒嗘瘮") + private BigDecimal referencePercentage; + + @ExcelExport("骞冲潎鍒�") + private BigDecimal averageScore; + + @ExcelExport("鎬昏�冭瘯娆℃暟") + private Integer examTotal; + +} diff --git a/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java b/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java index 36252a9..efbe31b 100644 --- a/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java +++ b/src/main/java/com/mindskip/xzs/repository/ExamPaperAnswerMapper.java @@ -4,10 +4,7 @@ import com.mindskip.xzs.domain.ExamTemplatesUserCount; import com.mindskip.xzs.domain.ScoreTemplatesUserCount; import com.mindskip.xzs.domain.other.KeyValue; -import com.mindskip.xzs.domain.vo.ExamPaperDataVO; -import com.mindskip.xzs.domain.vo.ExamPaperStatisticVO; -import com.mindskip.xzs.domain.vo.ExamTemplatesVO; -import com.mindskip.xzs.domain.vo.TeamplatesUserExcelVO; +import com.mindskip.xzs.domain.vo.*; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM; import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradePageRequestVM; import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradeQuery; @@ -62,11 +59,11 @@ Map<String, Object> pieChart(ExamPaperStatisticVO examPaperStatisticVO); - List<Map<String, Object>> dataByTemplate(ExamPaperDataVO examPaperDataVO); + List<ExamPaperDataExportVO> dataByTemplate(ExamPaperDataVO examPaperDataVO); - Map<String, Object> totalByTemplate(ExamPaperDataVO examPaperDataVO); + ExamPaperDataExportVO totalByTemplate(ExamPaperDataVO examPaperDataVO); - List<Map<String, Object>> dataByPaper(ExamPaperDataVO examPaperDataVO); + List<ExamPaperDataExportVO> dataByPaper(ExamPaperDataVO examPaperDataVO); - Map<String, Object> totalByPaper(ExamPaperDataVO examPaperDataVO); + ExamPaperDataExportVO totalByPaper(ExamPaperDataVO examPaperDataVO); } diff --git a/src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java b/src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java index db11300..c62006d 100644 --- a/src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java +++ b/src/main/java/com/mindskip/xzs/service/ExamPaperAnswerService.java @@ -2,6 +2,7 @@ import com.github.pagehelper.PageInfo; import com.mindskip.xzs.domain.*; +import com.mindskip.xzs.domain.vo.ExamPaperDataExportVO; import com.mindskip.xzs.domain.vo.ExamPaperDataVO; import com.mindskip.xzs.domain.vo.ExamPaperStatisticVO; import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperGradePageRequestVM; @@ -69,4 +70,6 @@ Map<String, Object> statistic(ExamPaperStatisticVO examPaperStatisticVO); Map<String, Object> data(ExamPaperDataVO examPaperDataVO); + + List<ExamPaperDataExportVO> dataExport(ExamPaperDataVO examPaperDataVO); } diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java index 8270867..cc3f478 100644 --- a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java +++ b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java @@ -10,6 +10,7 @@ import com.mindskip.xzs.domain.other.ExamPaperAnswerUpdate; import com.mindskip.xzs.domain.other.KeyValue; import com.mindskip.xzs.domain.task.TaskItemAnswerObject; +import com.mindskip.xzs.domain.vo.ExamPaperDataExportVO; import com.mindskip.xzs.domain.vo.ExamPaperDataVO; import com.mindskip.xzs.domain.vo.ExamPaperStatisticVO; import com.mindskip.xzs.repository.ExamPaperAnswerMapper; @@ -358,12 +359,26 @@ if (Objects.equals(examPaperDataVO.getType(), 7)) { map.put("data", examPaperAnswerMapper.dataByTemplate(examPaperDataVO)); map.put("total", examPaperAnswerMapper.totalByTemplate(examPaperDataVO)); - } - // 鏅�氳瘯鍗� - else { + } else { map.put("data", examPaperAnswerMapper.dataByPaper(examPaperDataVO)); map.put("total", examPaperAnswerMapper.totalByPaper(examPaperDataVO)); } return map; } + + @Override + public List<ExamPaperDataExportVO> dataExport(ExamPaperDataVO examPaperDataVO) { + // 闅忔満璇曞嵎 + if (Objects.equals(examPaperDataVO.getType(), 7)) { + List<ExamPaperDataExportVO > dataByTemplate = examPaperAnswerMapper.dataByTemplate(examPaperDataVO); + ExamPaperDataExportVO totalByTemplate = examPaperAnswerMapper.totalByTemplate(examPaperDataVO); + dataByTemplate.add(0, totalByTemplate.setName("鎵�鏈夐儴闂�")); + return dataByTemplate; + } else { + List<ExamPaperDataExportVO > dataByPaper = examPaperAnswerMapper.dataByPaper(examPaperDataVO); + ExamPaperDataExportVO totalByPaper = examPaperAnswerMapper.totalByPaper(examPaperDataVO); + dataByPaper.add(0, totalByPaper.setName("鎵�鏈夐儴闂�")); + return dataByPaper; + } + } } diff --git a/src/main/resources/mapper/ExamPaperAnswerMapper.xml b/src/main/resources/mapper/ExamPaperAnswerMapper.xml index 56c4f5d..7d74b41 100644 --- a/src/main/resources/mapper/ExamPaperAnswerMapper.xml +++ b/src/main/resources/mapper/ExamPaperAnswerMapper.xml @@ -491,7 +491,7 @@ </foreach> </insert> - <select id="dataByTemplate" resultType="java.util.Map" parameterType="com.mindskip.xzs.domain.vo.ExamPaperDataVO"> + <select id="dataByTemplate" resultType="com.mindskip.xzs.domain.vo.ExamPaperDataExportVO" parameterType="com.mindskip.xzs.domain.vo.ExamPaperDataVO"> SELECT a.id, a.name, @@ -508,7 +508,7 @@ a.id, a.name </select> - <select id="totalByTemplate" resultType="java.util.Map" parameterType="com.mindskip.xzs.domain.vo.ExamPaperDataVO"> + <select id="totalByTemplate" resultType="com.mindskip.xzs.domain.vo.ExamPaperDataExportVO" parameterType="com.mindskip.xzs.domain.vo.ExamPaperDataVO"> SELECT (SELECT (SELECT count(*) FROM t_exam_paper) + (SELECT count(*) FROM t_exam_templates)) as examTotal, -- 鎬昏�冭瘯娆℃暟 COUNT(DISTINCT c.create_user) as factPeopleTotal, -- 鍙傝�冧汉鏁� @@ -524,7 +524,7 @@ a.id </select> - <select id="dataByPaper" resultType="java.util.Map" parameterType="com.mindskip.xzs.domain.vo.ExamPaperDataVO"> + <select id="dataByPaper" resultType="com.mindskip.xzs.domain.vo.ExamPaperDataExportVO" parameterType="com.mindskip.xzs.domain.vo.ExamPaperDataVO"> SELECT a.id, a.name, @@ -540,7 +540,7 @@ a.id, a.name </select> - <select id="totalByPaper" resultType="java.util.Map" parameterType="com.mindskip.xzs.domain.vo.ExamPaperDataVO"> + <select id="totalByPaper" resultType="com.mindskip.xzs.domain.vo.ExamPaperDataExportVO" parameterType="com.mindskip.xzs.domain.vo.ExamPaperDataVO"> SELECT (SELECT (SELECT count(*) FROM t_exam_paper) + (SELECT count(*) FROM t_exam_templates)) as examTotal, -- 鎬昏�冭瘯娆℃暟 count(DISTINCT b.create_user) AS factPeopleTotal, -- 鍙傝�冩暟 -- Gitblit v1.8.0