Răsfoiți Sursa

fix:命题任务统计 根据班级匹配

caozixuan 3 ani în urmă
părinte
comite
87b24a47c7

+ 34 - 37
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java

@@ -2,7 +2,6 @@ package com.qmth.distributed.print.business.templete.service.impl;
 
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ZipUtil;
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.aliyun.oss.common.utils.BinaryUtil;
@@ -985,7 +984,6 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             if (Objects.isNull(paperInfo)) {
                 throw ExceptionResultEnum.ERROR.exception("试卷信息不存在");
             }
-            System.out.println("paperInfo = " + JSON.toJSONString(paperInfo));
             Set<Long> attPaperIds = new HashSet<>();
             for (Map paperMap : paperInfo) {
                 if (Objects.nonNull(paperMap.get("attachmentId")) && String.valueOf(paperMap.get("attachmentId")).length() > 0 && !String.valueOf(paperMap.get("attachmentId")).equals("null")) {
@@ -1007,7 +1005,6 @@ public class TaskLogicServiceImpl implements TaskLogicService {
 
             // 处理审核样品
             List<Map> confirmInfo = JSONObject.parseArray(reviewSampleDto.getPaperConfirmAttachmentIds(), Map.class);
-            System.out.println("confirmInfo = " + JSON.toJSONString(confirmInfo));
             Set<Long> attConfirmIds = new HashSet<>();
             for (Map confirmMap : confirmInfo) {
                 if (Objects.isNull(confirmMap.get("attachmentId"))) {
@@ -1661,7 +1658,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
 
         // 如果idSet集合为空且查询条件的机构id也为空,则请求用户的机构id作为机构数据权限带入查询
         SysUser requestUser = (SysUser) map.get(SystemConstant.USER);
-        if ((idSet == null || idSet.size() == 0) && !SystemConstant.longNotNull(orgId)){
+        if ((idSet == null || idSet.size() == 0) && !SystemConstant.longNotNull(orgId)) {
             orgId = requestUser.getOrgId();
         }
 
@@ -1692,15 +1689,15 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         InputStream in = new ByteArrayInputStream(outputStream.toByteArray());
 
         String excelName = "试卷使用清单";
-        if (Objects.nonNull(paperFileDownloadExposureStatus)){
+        if (Objects.nonNull(paperFileDownloadExposureStatus)) {
             excelName = excelName + paperFileDownloadExposureStatus.getDesc();
         }
         String excelLocalPath = zipLocalRootPath + File.separator + excelName + "." + SystemConstant.XLSX;
-        convertUtil.saveLocal(in,excelLocalPath);
+        convertUtil.saveLocal(in, excelLocalPath);
 
         // 所有试卷信息
         List<ExamTaskPaperFileDto> examTaskPaperFileDtoList = examTaskPaperDto.getExamTaskPaperFileDtoList();
-        if (examTaskPaperFileDtoList.size() == 0){
+        if (examTaskPaperFileDtoList.size() == 0) {
             throw ExceptionResultEnum.ERROR.exception("没有找到任何试卷信息");
         }
         // 二级路径 课程
@@ -1737,30 +1734,30 @@ public class TaskLogicServiceImpl implements TaskLogicService {
 
                 byte[] bytes = htmlContent.getBytes();
                 String cardName = "题卡-";
-                if (namedByCourseInfo){
+                if (namedByCourseInfo) {
                     cardName = cardName + course;
                 }
-                if (namedByPaperNumber){
+                if (namedByPaperNumber) {
                     cardName = cardName + paperNumber;
                 }
-                if (namedByOriginalFile){
+                if (namedByOriginalFile) {
                     cardName = cardName + examCardService.getById(examCardId).getTitle();
                 }
                 String cardLocalHtmlPath = filePath + cardName + SystemConstant.HTML_PREFIX;
                 String cardLocalPdfPath = filePath + cardName + SystemConstant.PDF_PREFIX;
 
                 // 试卷文件曝光度筛选
-                if (Objects.nonNull(paperFileDownloadExposureStatus)){
+                if (Objects.nonNull(paperFileDownloadExposureStatus)) {
                     switch (paperFileDownloadExposureStatus) {
                         case EXPOSED_PAPER: // 曝光的
                             paperCellList = paperCellList.stream().filter(ExamTaskPaperFileDto::getExposureStatus).collect(Collectors.toList());
-                            if (paperCellList.size() == 0){
+                            if (paperCellList.size() == 0) {
                                 specialSuccessMessage = "所选择的命题任务中没有已曝光的试卷";
                             }
                             break;
                         case UNEXPOSED_PAPER: // 未曝光的
                             paperCellList = paperCellList.stream().filter(e -> !e.getExposureStatus()).collect(Collectors.toList());
-                            if (paperCellList.size() == 0){
+                            if (paperCellList.size() == 0) {
                                 specialSuccessMessage = "所选择的命题任务中没有未曝光的试卷";
                             }
                             break;
@@ -1769,7 +1766,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                     }
                 }
 
-                if (Objects.isNull(paperFileDownloadContent)){
+                if (Objects.isNull(paperFileDownloadContent)) {
                     continue;
                 }
                 switch (paperFileDownloadContent) {
@@ -1790,13 +1787,13 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                     case ONLY_PAPER: // 只下载试卷
                         for (ExamTaskPaperFileDto examTaskPaperFileDto : paperCellList) {
                             String paperName = "试卷-";
-                            if (namedByCourseInfo){
+                            if (namedByCourseInfo) {
                                 paperName = paperName + course;
                             }
-                            if (namedByPaperNumber){
+                            if (namedByPaperNumber) {
                                 paperName = paperName + paperNumber;
                             }
-                            if (namedByOriginalFile){
+                            if (namedByOriginalFile) {
                                 paperName = paperName + examTaskPaperFileDto.getPaperName();
                             }
                             paperName = paperName + "-" + examTaskPaperFileDto.getPaperType();
@@ -1821,13 +1818,13 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                         // 试卷
                         for (ExamTaskPaperFileDto examTaskPaperFileDto : paperCellList) {
                             String paperName = "试卷-";
-                            if (namedByCourseInfo){
+                            if (namedByCourseInfo) {
                                 paperName = paperName + course;
                             }
-                            if (namedByPaperNumber){
+                            if (namedByPaperNumber) {
                                 paperName = paperName + paperNumber;
                             }
-                            if (namedByOriginalFile){
+                            if (namedByOriginalFile) {
                                 paperName = paperName + examTaskPaperFileDto.getPaperName();
                             }
                             paperName = paperName + "-" + examTaskPaperFileDto.getPaperType();
@@ -1849,7 +1846,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         ConvertUtil.delFolder(zipLocalRootPath);
         zipFile.delete();
         map.put("count", courseSet.size() + 1);
-        map.put("specialSuccessMessage",specialSuccessMessage);
+        map.put("specialSuccessMessage", specialSuccessMessage);
         return map;
     }
 
@@ -1981,36 +1978,36 @@ public class TaskLogicServiceImpl implements TaskLogicService {
     /**
      * 验证班级是否存在
      *
-     * @param clazzMap 班级map
-     * @param key 班级名称
-     * @param schoolId 学校id
+     * @param clazzMap       班级map
+     * @param key            班级名称
+     * @param schoolId       学校id
      * @param excelErrorTemp 错误信息
-     * @param row 行
-     * @param sheet 区
-     * @param cloumnName 列名
+     * @param row            
+     * @param sheet          
+     * @param cloumnName     列名
      * @return 班级信息
      */
     private DictionaryResult validBasicClazzExists(Map<String, DictionaryResult> clazzMap,
-                                             String key,
-                                             Long schoolId,
-                                             List<ExcelError> excelErrorTemp,
-                                             int row,
-                                             int sheet,
-                                             String cloumnName) {
+                                                   String key,
+                                                   Long schoolId,
+                                                   List<ExcelError> excelErrorTemp,
+                                                   int row,
+                                                   int sheet,
+                                                   String cloumnName) {
         DictionaryResult clazz = null;
         if (!clazzMap.containsKey(key)) {//不存在查询
-            TeachClazz teachClazz = teachClazzService.getOne(new QueryWrapper<TeachClazz>().lambda().eq(TeachClazz::getSchoolId,schoolId).eq(TeachClazz::getTeachClazzName,key));
-            if (Objects.nonNull(teachClazz)){
+            TeachClazz teachClazz = teachClazzService.getOne(new QueryWrapper<TeachClazz>().lambda().eq(TeachClazz::getSchoolId, schoolId).eq(TeachClazz::getTeachClazzName, key));
+            if (Objects.nonNull(teachClazz)) {
                 clazz = new DictionaryResult();
                 clazz.setId(teachClazz.getId());
                 clazz.setName(teachClazz.getTeachClazzName());
-            }else {
+            } else {
                 QueryWrapper<BasicClazz> basicClazzQueryWrapper = new QueryWrapper<>();
                 basicClazzQueryWrapper.lambda().eq(BasicClazz::getSchoolId, schoolId)
                         .eq(BasicClazz::getClazzName, key)
                         .eq(BasicClazz::getEnable, true);
                 BasicClazz basicClazz = basicClazzService.getOne(basicClazzQueryWrapper);
-                if (Objects.nonNull(basicClazz)){
+                if (Objects.nonNull(basicClazz)) {
                     clazz = new DictionaryResult();
                     clazz.setId(basicClazz.getId());
                     clazz.setName(basicClazz.getClazzName());

+ 16 - 26
distributed-print-business/src/main/resources/mapper/TCStatisticsMapper.xml

@@ -166,19 +166,14 @@
                 end status
             from
                     t_c_statistics_temp tcst
-            left join exam_task et on
-                    et.course_code = tcst.course_code
-                and et.teaching_room_id = tcst.teaching_room_id
-            left join exam_task_detail etd on
-                    etd.exam_task_id = et.id
-            left join exam_detail_course edc on
-                    edc.course_code = tcst.course_code
-                and edc.paper_number = et.paper_number
-                and edc.school_id = et.school_id
-            left join exam_detail ed on
-                    ed.id = edc.exam_detail_id
-            left join exam_print_plan epp on
-                    epp.id = ed.print_plan_id
+            INNER JOIN exam_detail_course edc ON edc.course_code = tcst.course_code AND edc.clazz_id = tcst.clazz_id
+            LEFT JOIN exam_detail ed ON ed.id = edc.exam_detail_id
+            LEFT JOIN exam_print_plan epp ON epp.id = ed.print_plan_id
+            LEFT JOIN exam_task et ON et.course_code = tcst.course_code
+            AND edc.paper_number = et.paper_number
+            AND epp.exam_id = et.exam_id
+            AND et.teaching_room_id = tcst.teaching_room_id
+            LEFT JOIN exam_task_detail etd ON etd.exam_task_id = et.id
             <where>
                 <if test="batchNo != null and batchNo != ''">
                     and tcst.batch_no = #{batchNo}
@@ -279,19 +274,14 @@
         end status
         from
         t_c_statistics_temp tcst
-        join exam_task et on
-        et.course_code = tcst.course_code
-        and et.teaching_room_id = tcst.teaching_room_id
-        join exam_task_detail etd on
-        etd.exam_task_id = et.id
-        join exam_detail_course edc on
-        edc.course_code = tcst.course_code
-        and edc.paper_number = et.paper_number
-        and edc.school_id = et.school_id
-        join exam_detail ed on
-        ed.id = edc.exam_detail_id
-        join exam_print_plan epp on
-        epp.id = ed.print_plan_id
+        INNER JOIN exam_detail_course edc ON edc.course_code = tcst.course_code AND edc.clazz_id = tcst.clazz_id
+        LEFT JOIN exam_detail ed ON ed.id = edc.exam_detail_id
+        LEFT JOIN exam_print_plan epp ON epp.id = ed.print_plan_id
+        LEFT JOIN exam_task et ON et.course_code = tcst.course_code
+        AND edc.paper_number = et.paper_number
+        AND epp.exam_id = et.exam_id
+        AND et.teaching_room_id = tcst.teaching_room_id
+        LEFT JOIN exam_task_detail etd ON etd.exam_task_id = et.id
         <where>
             <if test="batchNo != null and batchNo != ''">
                 and tcst.batch_no = #{batchNo}

+ 28 - 26
distributed-print-business/src/main/resources/mapper/TCStatisticsTempMapper.xml

@@ -21,19 +21,20 @@
         'JOIN' as dataSource
         from
         t_c_statistics_temp tcst
-        left join exam_task et on
-        et.course_code = tcst.course_code
-        and et.teaching_room_id = tcst.teaching_room_id
-        left join exam_task_detail etd on
-        etd.exam_task_id = et.id
-        left join exam_detail_course edc on
-        edc.course_code = tcst.course_code
-        and edc.paper_number = et.paper_number
-        and edc.school_id = et.school_id
-        left join exam_detail ed on
-        ed.id = edc.exam_detail_id
-        left join exam_print_plan epp on
-        epp.id = ed.print_plan_id
+        INNER JOIN
+        exam_detail_course edc ON edc.course_code = tcst.course_code
+        AND edc.clazz_id = tcst.clazz_id
+        LEFT JOIN
+        exam_detail ed ON ed.id = edc.exam_detail_id
+        LEFT JOIN
+        exam_print_plan epp ON epp.id = ed.print_plan_id
+        LEFT JOIN
+        exam_task et ON et.course_code = tcst.course_code
+        AND edc.paper_number = et.paper_number
+        AND epp.exam_id = et.exam_id
+        AND et.teaching_room_id = tcst.teaching_room_id
+        LEFT JOIN
+        exam_task_detail etd ON etd.exam_task_id = et.id
         <where>
             <if test="batchNo != null and batchNo != ''">
                 and tcst.batch_no = #{batchNo}
@@ -66,19 +67,20 @@
         'JOIN' as dataSource
         from
         t_c_statistics_temp tcst
-        join exam_task et on
-        et.course_code = tcst.course_code
-        and et.teaching_room_id = tcst.teaching_room_id
-        join exam_task_detail etd on
-        etd.exam_task_id = et.id
-        join exam_detail_course edc on
-        edc.course_code = tcst.course_code
-        and edc.paper_number = et.paper_number
-        and edc.school_id = et.school_id
-        join exam_detail ed on
-        ed.id = edc.exam_detail_id
-        join exam_print_plan epp on
-        epp.id = ed.print_plan_id
+        INNER JOIN
+        exam_detail_course edc ON edc.course_code = tcst.course_code
+        AND edc.clazz_id = tcst.clazz_id
+        LEFT JOIN
+        exam_detail ed ON ed.id = edc.exam_detail_id
+        LEFT JOIN
+        exam_print_plan epp ON epp.id = ed.print_plan_id
+        LEFT JOIN
+        exam_task et ON et.course_code = tcst.course_code
+        AND edc.paper_number = et.paper_number
+        AND epp.exam_id = et.exam_id
+        AND et.teaching_room_id = tcst.teaching_room_id
+        LEFT JOIN
+        exam_task_detail etd ON etd.exam_task_id = et.id
         <where>
             <if test="batchNo != null and batchNo != ''">
                 and tcst.batch_no = #{batchNo}