From b9456d139422ea00fa736c1313aad597be36bdf0 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 16 七月 2024 13:58:56 +0800
Subject: [PATCH] 导出bug修改完善
---
src/main/java/com/mindskip/xzs/repository/ExamPaperMapper.java | 8 ++++
src/main/resources/mapper/ExamPaperMapper.xml | 9 ++++
src/main/resources/mapper/UserDepartmentMapper.xml | 7 +++
src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java | 3 +
src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java | 17 ++++++++
src/main/java/com/mindskip/xzs/controller/admin/ExamPaperAnswerController.java | 3 -
src/main/resources/mapper/ExamPaperAnswerMapper.xml | 2
src/main/java/com/mindskip/xzs/service/ExamPaperService.java | 14 +++++++
8 files changed, 60 insertions(+), 3 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 dc7628d..cd5e1cf 100644
--- a/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperAnswerController.java
+++ b/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperAnswerController.java
@@ -141,7 +141,6 @@
@RequestMapping(value = "/export", method = RequestMethod.GET)
public void export(Integer id, Integer type, HttpServletResponse response) {
-
try (ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build()) {
// 閮ㄩ棬鑰冭瘯缁熻sheet
List<ExamPaperDataExportVO> list = examPaperAnswerService.dataExport(new ExamPaperDataVO().setId(id).setType(type));
@@ -149,7 +148,7 @@
excelWriter.write(list, writeSheet);
// 鑰冭瘯璇︽儏sheet锛屼竴涓崟浣嶄竴涓猻heet
- List<PaperExcelVO> paperDetailList = examPaperService.getPaperExcelById(id);
+ List<PaperExcelVO> paperDetailList = examPaperService.getRandomPaperExcelById(id);
List<Integer> deptIds = paperDetailList.stream().map(PaperExcelVO::getDeptId).collect(Collectors.toList());
Map<Integer, List<Department>> deptMap = departmentService.gets(deptIds).stream().collect(Collectors.groupingBy(Department::getId));
Map<Integer, List<PaperExcelVO>> deptDataMap = paperDetailList.stream().collect(Collectors.groupingBy(PaperExcelVO::getDeptId));
diff --git a/src/main/java/com/mindskip/xzs/repository/ExamPaperMapper.java b/src/main/java/com/mindskip/xzs/repository/ExamPaperMapper.java
index 36aabe1..4f730ea 100644
--- a/src/main/java/com/mindskip/xzs/repository/ExamPaperMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/ExamPaperMapper.java
@@ -51,4 +51,12 @@
List<ExamPaper> getExamPaper();
List<ExamPaper> getTemplate();
+
+ /**
+ * 鑾峰彇闅忔満璇曞嵎鐨別xampaper
+ *
+ * @param id
+ * @return
+ */
+ List<PaperExcelVO> getRandomPaperExcelById(Integer id);
}
diff --git a/src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java b/src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java
index 7dd92cc..4d87d81 100644
--- a/src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java
+++ b/src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java
@@ -1,5 +1,6 @@
package com.mindskip.xzs.repository;
+import com.mindskip.xzs.domain.Department;
import com.mindskip.xzs.domain.UserDepartment;
import com.mindskip.xzs.domain.vo.BaseSelect;
import com.mindskip.xzs.domain.vo.DepartmentExamineVO;
@@ -13,6 +14,8 @@
List<UserDepartment> selectByUserId(@Param("userId") Integer userId);
+ List<Department> selectDeptByUserId(@Param("userId") Integer userId);
+
List<UserDepartment> selectByDepartmentId(@Param("departmentId") Integer departmentId);
Integer removeByUserId(@Param("userId") Integer userId);
diff --git a/src/main/java/com/mindskip/xzs/service/ExamPaperService.java b/src/main/java/com/mindskip/xzs/service/ExamPaperService.java
index 11b0a05..0eba9e6 100644
--- a/src/main/java/com/mindskip/xzs/service/ExamPaperService.java
+++ b/src/main/java/com/mindskip/xzs/service/ExamPaperService.java
@@ -37,8 +37,22 @@
List<ExamPaper> gets(Integer[] ids);
+ /**
+ * 鏅�氳瘯鍗风瓟棰樿褰�
+ *
+ * @param id
+ * @return
+ */
List<PaperExcelVO> getPaperExcelById(Integer id);
+ /**
+ * 闅忔満璇曞嵎绛旈璁板綍
+ *
+ * @param id
+ * @return
+ */
+ List<PaperExcelVO> getRandomPaperExcelById(Integer id);
+
void missExam(ExamPaperEditRequestVM model);
List<ExamPaper> list(List<Integer> deptIds);
diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java
index f0145f1..aa48ad1 100644
--- a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java
+++ b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java
@@ -278,6 +278,23 @@
return paperExcel;
}
+ @Override
+ public List<PaperExcelVO> getRandomPaperExcelById(Integer id) {
+ List<PaperExcelVO> paperExcel = examPaperMapper.getRandomPaperExcelById(id);
+ paperExcel = paperExcel.stream().map(e->{
+ e.setPaperScore(ExamUtil.scoreToVM(Integer.parseInt(e.getPaperScore())));
+ e.setUserScore(ExamUtil.scoreToVM(Integer.parseInt(e.getUserScore())));
+ List<Department> userDepartments = userDepartmentMapper.selectDeptByUserId(Integer.parseInt(e.getUserId()));
+ if(userDepartments.size() != 0) {
+ Department department = userDepartments.get(0);
+ e.setDepartmentName(department.getName());
+ e.setDeptId(department.getId());
+ }
+ return e;
+ }).collect(Collectors.toList());
+ return paperExcel;
+ }
+
private void examPaperFromVM(ExamPaperEditRequestVM examPaperEditRequestVM, ExamPaper examPaper, List<ExamPaperTitleItemVM> titleItemsVM) {
// Integer gradeLevel = subjectService.levelBySubjectId(examPaperEditRequestVM.getSubjectId());
Integer questionCount = titleItemsVM.stream()
diff --git a/src/main/resources/mapper/ExamPaperAnswerMapper.xml b/src/main/resources/mapper/ExamPaperAnswerMapper.xml
index 9103800..a9cbdfd 100644
--- a/src/main/resources/mapper/ExamPaperAnswerMapper.xml
+++ b/src/main/resources/mapper/ExamPaperAnswerMapper.xml
@@ -407,7 +407,7 @@
</select>
<select id="getResult" resultMap="BaseResultMap" parameterType="list">
- select * from t_exam_paper_answer where (exam_paper_id) in
+ select * from t_exam_paper_answer where invalid = 0 and (exam_paper_id) in
<foreach collection="list" item="item" open="(" close=")" separator=",">
(#{item})
</foreach>
diff --git a/src/main/resources/mapper/ExamPaperMapper.xml b/src/main/resources/mapper/ExamPaperMapper.xml
index 587632c..e558a7c 100644
--- a/src/main/resources/mapper/ExamPaperMapper.xml
+++ b/src/main/resources/mapper/ExamPaperMapper.xml
@@ -441,6 +441,15 @@
where a.exam_paper_id = #{id}
</select>
+ <select id="getRandomPaperExcelById" resultType="com.mindskip.xzs.domain.vo.PaperExcelVO" parameterType="java.lang.Integer">
+ select u.real_name as name,a.create_user as userId,a.user_score as userScore,a.paper_score as paperScore
+ from t_exam_paper_answer a
+ inner join t_user u on u.id = a.create_user
+ inner join t_exam_templates_user_count uc ON a.exam_paper_id = uc.exam_paper_id AND uc.exam_templates_id = #{id}
+ where a.invalid = 0
+ </select>
+
+
<select id="list" resultType="com.mindskip.xzs.domain.ExamPaper">
select id, name, paper_type, create_time from t_exam_paper
where paper_type != 7
diff --git a/src/main/resources/mapper/UserDepartmentMapper.xml b/src/main/resources/mapper/UserDepartmentMapper.xml
index 9b9b637..3fb4a0d 100644
--- a/src/main/resources/mapper/UserDepartmentMapper.xml
+++ b/src/main/resources/mapper/UserDepartmentMapper.xml
@@ -32,6 +32,13 @@
where user_id = #{userId,jdbcType=INTEGER}
</select>
+ <select id="selectDeptByUserId" resultType="com.mindskip.xzs.domain.Department">
+ SELECT
+ d.id,d.name
+ FROM t_user_department ud INNER JOIN t_department d ON ud.department_id = d.id
+ WHERE ud.user_id = #{userId} AND d.deleted = 0
+ </select>
+
<select id="selectByDepartmentId" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
--
Gitblit v1.8.0