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