xiangpei
2024-07-16 b9456d139422ea00fa736c1313aad597be36bdf0
导出bug修改完善
8个文件已修改
63 ■■■■■ 已修改文件
src/main/java/com/mindskip/xzs/controller/admin/ExamPaperAnswerController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/repository/ExamPaperMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/repository/UserDepartmentMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/ExamPaperService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ExamPaperAnswerMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ExamPaperMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/UserDepartmentMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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,一个单位一个sheet
            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));
src/main/java/com/mindskip/xzs/repository/ExamPaperMapper.java
@@ -51,4 +51,12 @@
    List<ExamPaper> getExamPaper();
    List<ExamPaper> getTemplate();
    /**
     * 获取随机试卷的exampaper
     *
     * @param id
     * @return
     */
    List<PaperExcelVO> getRandomPaperExcelById(Integer id);
}
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);
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);
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()
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>
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
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" />