caozixuan 2 vuotta sitten
vanhempi
commit
012a9bf31c

+ 18 - 11
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -1867,6 +1867,9 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         List<ExamTaskStudentObjectResult> result = new ArrayList<>();
         switch (examObjectType) {
             case TEACH_CLAZZ_STUDENT:
+                if (!SystemConstant.longNotNull(basicCourseId)){
+                    throw ExceptionResultEnum.ERROR.exception("缺少考试课程id");
+                }
                 TeachCourse teachCourse = teachCourseService.getOne(new QueryWrapper<TeachCourse>().lambda().eq(TeachCourse::getSchoolId, schoolId).eq(TeachCourse::getBasicCourseId, basicCourseId));
                 if (Objects.isNull(teachCourse)) {
                     throw ExceptionResultEnum.ERROR.exception("未找到教学课程");
@@ -1994,24 +1997,28 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         if (StringUtils.isBlank(examTaskDetail.getPaperType())) {
             throw ExceptionResultEnum.ERROR.exception("没有设置卷型");
         }
-        if (examTaskDetail.getCardId() == null) {
-            throw ExceptionResultEnum.ERROR.exception("没有绑定题卡");
+
+        BasicExamRule basicExamRule = basicExamRuleService.getBySchoolId();
+        List<Map> paperAttachmentIds = JSONObject.parseArray(examTaskDetail.getPaperAttachmentIds(), Map.class);
+        for (Map paperAttachmentId : paperAttachmentIds) {
+            // 校验试卷必须绑定题卡
+            Long cardId = SystemConstant.convertIdToLong(String.valueOf(paperAttachmentId.get("cardId")));
+            if (!SystemConstant.longNotNull(cardId)){
+                throw ExceptionResultEnum.ERROR.exception("没有绑定题卡");
+            }
+            // 校验题卡是否提交
+            ExamCard examCard = examCardService.getById(cardId);
+            if (!ExamCardStatusEnum.SUBMIT.name().equals(examCard.getStatus().name())) {
+                throw ExceptionResultEnum.ERROR.exception("绑定的题卡未提交");
+            }
         }
 
         String[] paperTypes = examTaskDetail.getPaperType().split(",");
-        if (paperTypes.length - examTaskDetail.getDrawCount().intValue() < 0) {
+        if (paperTypes.length - examTaskDetail.getDrawCount() < 0) {
             throw ExceptionResultEnum.ERROR.exception("单次抽卷数量不能大于卷型数量");
         }
 
-        // 校验题卡是否提交
-        ExamCard examCard = examCardService.getById(examTaskDetail.getCardId());
-        if (!ExamCardStatusEnum.SUBMIT.name().equals(examCard.getStatus().name())) {
-            throw ExceptionResultEnum.ERROR.exception("绑定的题卡未提交");
-        }
-
         // 是否强制包含试卷
-        BasicExamRule basicExamRule = basicExamRuleService.getBySchoolId();
-        List<Map> paperAttachmentIds = JSONObject.parseArray(examTaskDetail.getPaperAttachmentIds(), Map.class);
         // 未上传试卷的类型个数
         long count = paperAttachmentIds.stream().filter(m -> StringUtils.isBlank(m.get("attachmentId").toString())).count();
         if (basicExamRule.getIncludePaper()) {

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

@@ -1535,10 +1535,8 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 List<Object> statisticsTempList = excelMap.get(i);
                 for (int y = 0; y < Objects.requireNonNull(statisticsTempList).size(); y++) {
                     StatisticsImportDto statisticsImportDto = (StatisticsImportDto) statisticsTempList.get(y);
-//                    SysOrg collegeOrg = this.validSysOrgExists(collegeOrgMap, statisticsImportDto.getCollegeName(), sysUser.getSchoolId(), OrgTypeEnum.COLLEGE, excelErrorTemp, (y + 1), (i + 1), "开课学院");
-//                    SysOrg teachingRoomOrg = this.validSysOrgExists(teachingRoomMap, statisticsImportDto.getTeachingRoomName(), sysUser.getSchoolId(), OrgTypeEnum.TEACHING_ROOM, excelErrorTemp, (y + 1), (i + 1), "开课部门");
-                    SysOrg collegeOrg = null;
-                    SysOrg teachingRoomOrg = null;
+                    SysOrg collegeOrg = this.validSysOrgExists(collegeOrgMap, statisticsImportDto.getCollegeName(), sysUser.getSchoolId(), excelErrorTemp, (y + 1), (i + 1), "开课学院");
+                    SysOrg teachingRoomOrg = this.validSysOrgExists(teachingRoomMap, statisticsImportDto.getTeachingRoomName(), sysUser.getSchoolId(), excelErrorTemp, (y + 1), (i + 1), "开课部门");
                     BasicCourse basicCourse = this.validBasicCourseExists(courseMap, statisticsImportDto.getCourseName(), sysUser.getSchoolId(), statisticsImportDto.getCourseCode(), excelErrorTemp, (y + 1), (i + 1));
                     String teacherName = statisticsImportDto.getTeacherName();
                     String clazzNames = statisticsImportDto.getClazzName();
@@ -1988,7 +1986,6 @@ public class TaskLogicServiceImpl implements TaskLogicService {
      * @param orgMap         机构map
      * @param key            机构名称
      * @param schoolId       学校id
-     * @param orgTypeEnum    机构类型
      * @param excelErrorTemp 错误信息
      * @param row            行
      * @param sheet          区
@@ -1998,7 +1995,6 @@ public class TaskLogicServiceImpl implements TaskLogicService {
     private SysOrg validSysOrgExists(Map<String, SysOrg> orgMap,
                                      String key,
                                      Long schoolId,
-                                     OrgTypeEnum orgTypeEnum,
                                      List<ExcelError> excelErrorTemp,
                                      int row,
                                      int sheet,
@@ -2008,7 +2004,6 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             QueryWrapper<SysOrg> sysOrgQueryWrapper = new QueryWrapper<>();
             sysOrgQueryWrapper.lambda().eq(SysOrg::getSchoolId, schoolId)
                     .eq(SysOrg::getName, key)
-                    .eq(SysOrg::getType, orgTypeEnum)
                     .eq(SysOrg::getEnable, true);
             sysOrg = sysOrgService.getOne(sysOrgQueryWrapper);
         } else {

+ 5 - 5
distributed-print-business/src/main/resources/mapper/ExamTaskMapper.xml

@@ -605,7 +605,7 @@
             h.name semesterName,
             case #{source} when 'REVIEW' then ifnull(c.paper_type, a.paper_type) else a.paper_type end paperType,
             case #{source} when 'REVIEW' then ifnull(c.paper_attachment_ids, a.paper_attachment_ids) else a.paper_attachment_ids end paperAttachmentIds,
-            case #{source} when 'REVIEW' then ifnull(c.card_id, b.card_id) else b.card_id end cardId,
+            case #{source} when 'REVIEW' then ifnull(c.card_id, b.id) else b.id end cardId,
             a.paper_confirm_attachment_ids paperConfirmAttachmentIds,
             a.remark,
             a.exposed_paper_type exposedPaperType,
@@ -617,14 +617,14 @@
             f.status as flowStatus
         FROM
             exam_task e
-                JOIN
+                LEFT JOIN
             exam_task_detail a on a.exam_task_id = e.id
-                JOIN
+                LEFT JOIN
             exam_task_paper_log c ON a.exam_task_id = c.exam_task_id and c.review = false
-                JOIN
+                LEFT JOIN
             exam_card b ON FIND_IN_SET(b.id, REPLACE(substring_index(substring_index(CONVERT((a.paper_attachment_ids ->>'$[*].cardId')
                                                                                              USING utf8), ']', 1), '[',-1),'"',''))
-                join
+                LEFT join
             exam_card d on c.card_id = d.id
                 left join
             t_f_flow_approve f on e.flow_id = f.flow_id

+ 1 - 1
distributed-print-business/src/main/resources/mapper/GradeInitializeMapper.xml

@@ -41,7 +41,7 @@
             basic_semester bs ON bs.id = be.semester_id
                 LEFT JOIN
             exam_paper_structure eps ON et.school_id = eps.school_id
-                AND et.paper_number = eps.paper_number
+                AND et.paper_number = eps.paper_number AND eps.paper_type = pnpt.paper_type
         <where>
             <if test="schoolId != null and schoolId != ''">
                 AND et.school_id = #{schoolId}

+ 1 - 5
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPaperStructureController.java

@@ -154,11 +154,7 @@ public class ExamPaperStructureController {
     public Result findCardJpgFileByPaperNumber(@ApiParam(value = "考试id", required = true) @RequestParam String examId,
                                                @ApiParam(value = "课程代码", required = true) @RequestParam String courseCode,
                                                @ApiParam(value = "试卷编号", required = true) @RequestParam String paperNumber,
-                                               @ApiParam(value = "试卷类型") @RequestParam(required = false) String paperType) {
-        if (!SystemConstant.strNotNull(paperType)){
-            // TODO: 2022/8/30 测试用需要删除 
-            paperType = "B";
-        }
+                                               @ApiParam(value = "试卷类型", required = true) @RequestParam String paperType) {
         return ResultUtil.ok(examPaperStructureService.findCardJpgFileByPaperNumber(SystemConstant.convertIdToLong(examId), courseCode, paperNumber, paperType));
     }
 }