Ver Fonte

3.2.7 bug修改

xiaofei há 1 ano atrás
pai
commit
f6754a966f

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailService.java

@@ -243,5 +243,5 @@ public interface ExamDetailService extends IService<ExamDetail> {
 
     void deleteExaminationDataByExamDetailIds(List<Long> examDetailIdList);
 
-    void resetExamDetail(Long entityId);
+    void resetExamDetail(Long entityId, boolean clearPaperType);
 }

+ 12 - 11
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailServiceImpl.java

@@ -1137,7 +1137,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
 
     @Transactional
     @Override
-    public void resetExamDetail(Long entityId) {
+    public void resetExamDetail(Long entityId, boolean clearPaperType) {
         // 清掉客户端产生的数据,包含缓存状态、校验状态
         ExamDetail examDetail = this.getById(entityId);
         QueryWrapper<ClientStatus> clientStatusQueryWrapper = new QueryWrapper<>();
@@ -1165,18 +1165,19 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
                 .eq(ExamDetail::getId, entityId);
         this.update(examDetailUpdateWrapper);
 
-        // 清掉考场-课程表中关联的试卷类型
-        List<ExamDetailCourse> examDetailCourseList = examDetailCourseService.listByExamDetailId(entityId);
-        if (!CollectionUtils.isEmpty(examDetailCourseList)) {
-            for (ExamDetailCourse examDetailCourse : examDetailCourseList) {
-                examDetailCourse.setPaperType(null);
-            }
-            examDetailCourseService.updateBatchById(examDetailCourseList);
+        if (clearPaperType) {
+            // 清掉考场-课程表中关联的试卷类型
+            List<ExamDetailCourse> examDetailCourseList = examDetailCourseService.listByExamDetailId(entityId);
+            if (!CollectionUtils.isEmpty(examDetailCourseList)) {
+                for (ExamDetailCourse examDetailCourse : examDetailCourseList) {
+                    examDetailCourse.setPaperType(null);
+                }
+                examDetailCourseService.updateBatchById(examDetailCourseList);
 
-            List<Long> examDetailCourseIds = examDetailCourseList.stream().map(ExamDetailCourse::getId).collect(Collectors.toList());
-            examDetailCoursePaperTypeService.removeByExamDetailCourseIds(examDetailCourseIds);
+                List<Long> examDetailCourseIds = examDetailCourseList.stream().map(ExamDetailCourse::getId).collect(Collectors.toList());
+                examDetailCoursePaperTypeService.removeByExamDetailCourseIds(examDetailCourseIds);
+            }
         }
-
     }
 
     @Transactional(rollbackFor = Exception.class)

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskDetailServiceImpl.java

@@ -516,7 +516,7 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
             String key = stringJoiner.toString();
             CreatePdfCacheUtil.deletePaperType(key);
             for (ExamDetail examDetail : examDetails) {
-                examDetailService.resetExamDetail(examDetail.getId());
+                examDetailService.resetExamDetail(examDetail.getId(), true);
             }
         }
 

+ 19 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintCommonServiceImpl.java

@@ -41,6 +41,7 @@ import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.slf4j.helpers.BasicMarker;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -58,6 +59,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 公共服务service impl
@@ -100,9 +102,6 @@ public class PrintCommonServiceImpl implements PrintCommonService {
     @Resource
     TBTaskService tbTaskService;
 
-    @Resource
-    TBSyncTaskService tbSyncTaskService;
-
     @Resource
     @Lazy
     ExamDetailService examDetailService;
@@ -150,6 +149,9 @@ public class PrintCommonServiceImpl implements PrintCommonService {
     @Resource
     BasicClazzService basicClazzService;
 
+    @Resource
+    BasicMajorService basicMajorService;
+
     @Resource
     CreatePrintPdfUtil createPrintPdfUtil;
 
@@ -689,11 +691,25 @@ public class PrintCommonServiceImpl implements PrintCommonService {
      * @param id
      * @return
      */
+    @Transactional
     @Override
     public boolean sysOrgRemove(Long id) {
         // 机构校验
         validateOrg(id);
         boolean result = sysOrgService.removeById(id);
+
+        // 删除学院下专业、班级
+        List<BasicMajor> basicMajorList = basicMajorService.list(new QueryWrapper<BasicMajor>().lambda().eq(BasicMajor::getBelongOrgId, id));
+        if(!CollectionUtils.isEmpty(basicMajorList)){
+            List<Long> basicMajorIds = basicMajorList.stream().map(BasicMajor::getId).collect(Collectors.toList());
+            List<BasicClazz> basicClazzList = basicClazzService.list(new QueryWrapper<BasicClazz>().lambda().in(BasicClazz::getMajorId, basicMajorIds));
+            if(!CollectionUtils.isEmpty(basicClazzList)){
+                List<Long> basicClazzIds = basicClazzList.stream().map(BasicClazz::getId).collect(Collectors.toList());
+                basicClazzService.removeBasicClazzBatch(basicClazzIds);
+            }
+            basicMajorService.deleteBasicMajorByIdList(basicMajorIds);
+        }
+
         Long schoolId = SystemConstant.convertIdToLong(String.valueOf(ServletUtil.getRequestHeaderSchoolId()));
         commonCacheService.removeOrgCollegeLevelCache(schoolId);
         return result;

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TeachCourseServiceImpl.java

@@ -96,7 +96,7 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
         if (Objects.nonNull(basicCourse)) {
             // 根据课程编号查询存在课程判断名称是否一致
             if (!courseName.equals(basicCourse.getName())) {
-                throw ExceptionResultEnum.ERROR.exception("课程编号为【" + courseCode + "】的课程名称错误");
+                throw ExceptionResultEnum.ERROR.exception("课程编号[" + courseCode + "]的课程名称错误");
             } else {
                 basicCourseId = basicCourse.getId();
                 // 判断重复教学课程

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

@@ -288,7 +288,11 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 paperType = paperTypeParam;
                 CreatePdfCacheUtil.setPaperType(key, paperType);
             } else {
-                paperType = createPdfUtil.getPaperType(examPrintPlan.getDrawRule(), examTaskDetail, key);
+                if (StringUtils.isBlank(examDetailCourse.getPaperType())) {
+                    paperType = createPdfUtil.getPaperType(examPrintPlan.getDrawRule(), examTaskDetail, key);
+                } else {
+                    paperType = examDetailCourse.getPaperType();
+                }
             }
             //查询考生
             QueryWrapper<ExamStudent> examStudentQueryWrapper = new QueryWrapper<>();
@@ -1452,7 +1456,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                         }
                     }
 
-                    if (Objects.nonNull(studentCode) && !studentCode.matches(SystemConstant.REGULAR_EXPRESSION_OF_CODE)) {
+                    if (Objects.nonNull(studentCode) && !studentCode.matches(SystemConstant.REGULAR_EXPRESSION_OF_CODE1)) {
                         errorStringJoiner.add("学号[" + studentCode + "]不符合规范");
                     }
                     String errorString = errorStringJoiner.toString();

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

@@ -91,7 +91,7 @@ public class TBTaskController {
     public Result resetCreatePdf(@ApiParam(value = "任务id", required = true) @RequestParam String id) {
         Long taskId = Long.parseLong(id);
         TBTask tbTask = tbTaskService.getById(taskId);
-        examDetailService.resetExamDetail(tbTask.getEntityId());
+        examDetailService.resetExamDetail(tbTask.getEntityId(), false);
         tbTaskService.resetCreatePdf(tbTask);
         return ResultUtil.ok(new EditResult());
     }

+ 1 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -293,6 +293,7 @@ public class SystemConstant {
     //    public static final int MAX_RETRY_CREATE_PDF_COUNT = 5;
     //英文字母、数字、中文括号、英文括号、下划线(_)、减号(-)、中文横线(—)
     public static final String REGULAR_EXPRESSION_OF_CODE = "[a-zA-Z0-9](\\w+)?-?(\\w+)?—?(\\w+)?(\\((\\w+)?-?(\\w+)?—?(\\w+)?\\))?(\\((\\w+)?-?(\\w+)?—?(\\w+)?\\))?(\\w+)?";
+    public static final String REGULAR_EXPRESSION_OF_CODE1 = "^[a-zA-Z0-9]+$";
     public static final String REGULAR_EXPRESSION_OF_PHONE = "((\\d{3,4})|(\\(\\d{3,4}\\)-))?\\d{7,8}";
     public static final String REGULAR_EXPRESSION_OF_CODE_PRIMARY_DIMENSION = "[A-Z]";
     public static final String REGULAR_EXPRESSION_OF_CODE_SECOND_DIMENSION = "[A-Z][1-9][0-9]*";