瀏覽代碼

Merge branch 'dev_v3.1.0' of http://git.qmth.com.cn/wangliang/distributed-print-service into dev_v3.1.0

xiaof 2 年之前
父節點
當前提交
1f2e541f45

+ 7 - 7
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/GradeBatchPaperService.java

@@ -56,9 +56,8 @@ public interface GradeBatchPaperService extends IService<GradeBatchPaper> {
     /**
      * 删除分析批次试卷
      *
-     *
      * @param batchId
-     * @param idList 要删除的分析批次试卷id集合
+     * @param idList  要删除的分析批次试卷id集合
      * @return 结果
      */
     boolean deleteGradeBatchPaper(Long batchId, List<Long> idList);
@@ -66,13 +65,14 @@ public interface GradeBatchPaperService extends IService<GradeBatchPaper> {
     /**
      * 根据试卷编号和试卷类型判断分析课程是否有操作权限(批次分析试卷没有在计算中的才能操作)
      *
-     * @param schoolId    学校id
-     * @param paperNumber 试卷编号
-     * @param paperType   试卷类型
+     * @param schoolId     学校id
+     * @param paperNumber  试卷编号
+     * @param paperType    试卷类型
+     * @param updateStatus 是否更新分析试卷和批次状态
      */
-    void checkOperateAuth(Long schoolId, String paperNumber, String paperType);
+    void checkOperateAuth(Long schoolId, String paperNumber, String paperType, boolean updateStatus);
 
-    SysOrg findTeachCollegeByOrgId(Long orgId) ;
+    SysOrg findTeachCollegeByOrgId(Long orgId);
 
     GradeBatchPaper findByThirdExamIdAndGradeCourseCode(Long schoolId, String thirdExamId, String gradeCourseCode);
 }

+ 31 - 30
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeBatchPaperServiceImpl.java

@@ -205,7 +205,7 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
 
     @Transactional
     @Override
-    public void checkOperateAuth(Long schoolId, String paperNumber, String paperType) {
+    public void checkOperateAuth(Long schoolId, String paperNumber, String paperType, boolean updateStatus) {
         List<GradeBatchPaper> gradeBatchPaperList = this.list(new QueryWrapper<GradeBatchPaper>().lambda()
                 .eq(GradeBatchPaper::getSchoolId, schoolId)
                 .eq(GradeBatchPaper::getPaperNumber, paperNumber)
@@ -222,36 +222,37 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
                 throw ExceptionResultEnum.ERROR.exception("所选择的试卷所属的批次正在计算中不能更改");
             }
         }
+        if (updateStatus) {
+            // 更新批次科目状态
+            for (GradeBatchPaper gradeBatchPaper : gradeBatchPaperList) {
+                gradeBatchPaper.setStatus(GradeAnalyzePaperStatusEnum.READY_TO_CALCULATE);
+                this.updateById(gradeBatchPaper);
 
-//        // 更新批次科目状态
-//        for (GradeBatchPaper gradeBatchPaper : gradeBatchPaperList) {
-//            gradeBatchPaper.setStatus(GradeAnalyzePaperStatusEnum.READY_TO_CALCULATE);
-//            this.updateById(gradeBatchPaper);
-//
-//            // 更新批次状态
-//            GradeBatch gradeBatch = gradeBatchService.getById(gradeBatchPaper.getBatchId());
-//            // 批次未推送成功,不更新状态
-//            if(GradeAnalyzePaperStatusEnum.PUSH_GRADE_BATCH.equals(gradeBatch.getStatus())){
-//                continue;
-//            }
-//            if (GradeAnalyzePaperStatusEnum.FINISH_CALCULATE.equals(gradeBatch.getStatus())) {
-//                gradeBatch.setStatus(GradeAnalyzePaperStatusEnum.READY_TO_CALCULATE);
-//                gradeBatchService.updateById(gradeBatch);
-//            } else {
-//                QueryWrapper<GradeBatchPaper> queryWrapperList = new QueryWrapper<>();
-//                queryWrapperList.lambda().eq(GradeBatchPaper::getBatchId, gradeBatchPaper.getBatchId());
-//                List<GradeBatchPaper> gradeBatchPaperAll = this.list(queryWrapperList);
-//                if (!gradeBatchPaperAll.isEmpty()) {
-//                    long count = gradeBatchPaperAll.stream().filter(m -> !GradeAnalyzePaperStatusEnum.READY_TO_CALCULATE.equals(m.getStatus())).count();
-//                    if (count == 0) {
-//                        // 更新批次状态
-//                        UpdateWrapper<GradeBatch> updateWrapper = new UpdateWrapper<>();
-//                        updateWrapper.lambda().set(GradeBatch::getStatus, GradeAnalyzePaperStatusEnum.READY_TO_CALCULATE).eq(GradeBatch::getId, gradeBatchPaper.getBatchId());
-//                        gradeBatchService.update(updateWrapper);
-//                    }
-//                }
-//            }
-//        }
+                // 更新批次状态
+                GradeBatch gradeBatch = gradeBatchService.getById(gradeBatchPaper.getBatchId());
+                // 批次未推送成功,不更新状态
+                if (GradeAnalyzePaperStatusEnum.PUSH_GRADE_BATCH.equals(gradeBatch.getStatus())) {
+                    continue;
+                }
+                if (GradeAnalyzePaperStatusEnum.FINISH_CALCULATE.equals(gradeBatch.getStatus())) {
+                    gradeBatch.setStatus(GradeAnalyzePaperStatusEnum.READY_TO_CALCULATE);
+                    gradeBatchService.updateById(gradeBatch);
+                } else {
+                    QueryWrapper<GradeBatchPaper> queryWrapperList = new QueryWrapper<>();
+                    queryWrapperList.lambda().eq(GradeBatchPaper::getBatchId, gradeBatchPaper.getBatchId());
+                    List<GradeBatchPaper> gradeBatchPaperAll = this.list(queryWrapperList);
+                    if (!gradeBatchPaperAll.isEmpty()) {
+                        long count = gradeBatchPaperAll.stream().filter(m -> !GradeAnalyzePaperStatusEnum.READY_TO_CALCULATE.equals(m.getStatus())).count();
+                        if (count == 0) {
+                            // 更新批次状态
+                            UpdateWrapper<GradeBatch> updateWrapper = new UpdateWrapper<>();
+                            updateWrapper.lambda().set(GradeBatch::getStatus, GradeAnalyzePaperStatusEnum.READY_TO_CALCULATE).eq(GradeBatch::getId, gradeBatchPaper.getBatchId());
+                            gradeBatchService.update(updateWrapper);
+                        }
+                    }
+                }
+            }
+        }
     }
 
     /**

+ 17 - 18
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeBatchServiceImpl.java

@@ -146,36 +146,35 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
     @Override
     public void deleteGradeBatch(Long id, SysUser requestUser) {
         Long schoolId = requestUser.getSchoolId();
-        if (!SystemConstant.longNotNull(id)){
+        if (!SystemConstant.longNotNull(id)) {
             throw ExceptionResultEnum.ERROR.exception("请选择要删除的批次对象");
         }
         GradeBatch gradeBatch = this.getById(id);
-        if (Objects.isNull(gradeBatch)){
+        if (Objects.isNull(gradeBatch)) {
             throw ExceptionResultEnum.ERROR.exception("要删除的批次不存在");
         }
-        Long thirdExamId = gradeBatch.getThirdExamId();
-        if (!SystemConstant.longNotNull(thirdExamId)){
-            throw ExceptionResultEnum.ERROR.exception("要删除的批次中第三方考试id不存在,删除失败");
-        }
+
         // 要删除的批次试卷集合
         List<GradeBatchPaper> gradeBatchPaperList = gradeBatchPaperService.list(new QueryWrapper<GradeBatchPaper>()
                 .lambda()
                 .eq(GradeBatchPaper::getSchoolId, schoolId)
-                .in(GradeBatchPaper::getBatchId, id));
+                .eq(GradeBatchPaper::getBatchId, id));
 
         if (gradeBatchPaperList != null && gradeBatchPaperList.size() > 0) {
-            Set<Long> batchIdSet = gradeBatchPaperList.stream().map(GradeBatchPaper::getBatchId).collect(Collectors.toSet());
-            List<String> cantDeleteBatchNameList = this.list(new QueryWrapper<GradeBatch>()
-                            .lambda()
-                            .in(GradeBatch::getId, batchIdSet))
-                    .stream()
-                    .map(GradeBatch::getBatchName)
-                    .distinct().collect(Collectors.toList());
-
-            throw ExceptionResultEnum.ERROR.exception("成绩分析批次【" + String.join(",", cantDeleteBatchNameList) + "】存在分析课程,不能删除");
+            List<GradeBatchPaper> enableGradeBatchPaperList = gradeBatchPaperList.stream().filter(GradeBatchPaper::getEnable).collect(Collectors.toList());
+            if (enableGradeBatchPaperList.size() > 0) {
+                List<String> cantDeleteBatchNameList = enableGradeBatchPaperList.stream().map(GradeBatchPaper::getPaperNumber).collect(Collectors.toList());
+                throw ExceptionResultEnum.ERROR.exception("成绩分析批次存在分析课程【" + String.join(",", cantDeleteBatchNameList) + "】,不能删除,请先删除分析课程");
+            } else {
+                throw ExceptionResultEnum.ERROR.exception("请先提交该分析批次数据再删除批次");
+            }
+        }
+        boolean result = true;
+        Long thirdExamId = gradeBatch.getThirdExamId();
+        if (SystemConstant.longNotNull(thirdExamId)) {
+            result = teachCloudReportTaskUtils.syncDeleteExam(schoolId, thirdExamId);
         }
-        boolean result = teachCloudReportTaskUtils.syncDeleteExam(schoolId,thirdExamId);
-        if (result){
+        if (result) {
             this.removeById(id);
         }
     }

+ 11 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeModuleDefineServiceImpl.java

@@ -69,12 +69,19 @@ public class GradeModuleDefineServiceImpl extends ServiceImpl<GradeModuleDefineM
         abilityDefine.setInterpret(abilityInterpret);
         gradeModuleDefineList.add(abilityDefine);
 
-        gradeBatchPaperService.checkOperateAuth(schoolId,paperNumber,paperType);
+        boolean updateStatus = this.list(new QueryWrapper<GradeModuleDefine>()
+                        .lambda()
+                        .eq(GradeModuleDefine::getSchoolId, schoolId)
+                        .eq(GradeModuleDefine::getPaperNumber, paperNumber)
+                        .eq(GradeModuleDefine::getPaperType, paperType))
+                .size() > 0;
+
+        gradeBatchPaperService.checkOperateAuth(schoolId, paperNumber, paperType, updateStatus);
         this.remove(new QueryWrapper<GradeModuleDefine>()
                 .lambda()
-                .eq(GradeModuleDefine::getSchoolId,schoolId)
-                .eq(GradeModuleDefine::getPaperNumber,paperNumber)
-                .eq(GradeModuleDefine::getPaperType,paperType));
+                .eq(GradeModuleDefine::getSchoolId, schoolId)
+                .eq(GradeModuleDefine::getPaperNumber, paperNumber)
+                .eq(GradeModuleDefine::getPaperType, paperType));
         this.saveBatch(gradeModuleDefineList);
     }
 

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

@@ -93,7 +93,7 @@ public class GradeModuleEvaluationServiceImpl extends ServiceImpl<GradeModuleEva
         }).collect(Collectors.toList());
 
         // 根据试卷编号和试卷类型判断分析课程是否有操作权限(批次分析试卷没有在计算中的才能操作)
-        gradeBatchPaperService.checkOperateAuth(schoolId, paperNumber, paperType);
+        gradeBatchPaperService.checkOperateAuth(schoolId, paperNumber, paperType, false);
         // 删除原有的模块评价
         this.remove(new QueryWrapper<GradeModuleEvaluation>()
                 .lambda()

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

@@ -57,7 +57,13 @@ public class GradePaperDimensionServiceImpl extends ServiceImpl<GradePaperDimens
         String paperName = gradePaperDimensionParam.getPaperName();
         DimensionEnum dimensionType = gradePaperDimensionParam.getDimensionType();
         List<GradePaperDimensionDatasource> datasource = gradePaperDimensionParam.getDatasource();
-        gradeBatchPaperService.checkOperateAuth(requestUser.getSchoolId(), paperNumber, paperType);
+
+        boolean updateStatus = this.list(new QueryWrapper<GradePaperDimension>().lambda().eq(GradePaperDimension::getSchoolId, requestUser.getSchoolId())
+                .eq(GradePaperDimension::getPaperNumber, paperNumber)
+                .eq(GradePaperDimension::getPaperType, paperType))
+                .size() > 0;
+
+        gradeBatchPaperService.checkOperateAuth(requestUser.getSchoolId(), paperNumber, paperType,updateStatus);
         List<GradePaperDimension> gradePaperDimensionList = this.checkAndBuildGradePaperDimensionList(datasource, paperNumber, paperType, paperName, dimensionType, requestUser);
         this.remove(new QueryWrapper<GradePaperDimension>().lambda()
                 .eq(GradePaperDimension::getSchoolId, requestUser.getSchoolId())

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

@@ -108,8 +108,15 @@ public class GradePaperServiceImpl extends ServiceImpl<GradePaperMapper, GradePa
         String paperName = gradePaperDefineParam.getPaperName();
         Long schoolId = requestUser.getSchoolId();
 
+        boolean updateStatus = this.list(new QueryWrapper<GradePaper>()
+                .lambda()
+                .eq(GradePaper::getSchoolId, schoolId)
+                .eq(GradePaper::getPaperNumber, paperNumber)
+                .eq(GradePaper::getPaperType, paperType))
+                .size() > 0;
+
         // 判断分析课程是否有操作权限
-        gradeBatchPaperService.checkOperateAuth(schoolId, paperNumber, paperType);
+        gradeBatchPaperService.checkOperateAuth(schoolId, paperNumber, paperType,updateStatus);
 
         BigDecimal totalScore = gradePaperDefineParam.getTotalScore();
         BigDecimal passScore = gradePaperDefineParam.getPassScore();

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

@@ -153,8 +153,12 @@ public class GradePaperStructServiceImpl extends ServiceImpl<GradePaperStructMap
         String paperType = gradePaperStructParam.getPaperType();
         String paperName = gradePaperStructParam.getPaperName();
         List<GradePaperStructDatasource> datasource = gradePaperStructParam.getDatasource();
+        boolean updateStatus = this.list(new QueryWrapper<GradePaperStruct>().lambda().eq(GradePaperStruct::getSchoolId, schoolId)
+                .eq(GradePaperStruct::getPaperNumber, paperNumber)
+                .eq(GradePaperStruct::getPaperType, paperType))
+                .size() > 0;
         // 验证批次分析试卷是否在计算
-        gradeBatchPaperService.checkOperateAuth(schoolId, paperNumber, paperType);
+        gradeBatchPaperService.checkOperateAuth(schoolId, paperNumber, paperType,updateStatus);
         // 检验结构正确性并构建分析试卷结构
         List<GradePaperStruct> gradePaperStructList = this.checkAndBuildGradePaperStruct(datasource, paperNumber, paperType, paperName, requestUser);
         // 删除旧的试卷结构

+ 9 - 35
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintCommonServiceImpl.java

@@ -1198,41 +1198,15 @@ public class PrintCommonServiceImpl implements PrintCommonService {
         List<GradeBatchPaper> gradeBatchPaperList = gradeBatchPaperService.list(gradeBatchPaperQueryWrapper);
         if (!gradeBatchPaperList.isEmpty()) {
             for (GradeBatchPaper gradeBatchPaper : gradeBatchPaperList) {
-//                QueryWrapper<GradeBatchPaper> queryWrapperList = new QueryWrapper<>();
-//                queryWrapperList.lambda().eq(GradeBatchPaper::getBatchId, gradeBatchPaper.getBatchId());
-//                List<GradeBatchPaper> gradeBatchPaperAll = gradeBatchPaperService.list(queryWrapperList);
-//                if (!gradeBatchPaperAll.isEmpty()) {
-//                    long count = gradeBatchPaperAll.stream().filter(m -> !GradeAnalyzePaperStatusEnum.READY_TO_CALCULATE.equals(m.getStatus())).count();
-//                    if (count == 0) {
-//                        // 更新批次状态
-//                        UpdateWrapper<GradeBatch> updateWrapper = new UpdateWrapper<>();
-//                        updateWrapper.lambda().set(GradeBatch::getStatus, GradeAnalyzePaperStatusEnum.READY_TO_CALCULATE).eq(GradeBatch::getId, gradeBatchPaper.getBatchId());
-//                    }
-//                }
-                gradeBatchPaper.setStatus(GradeAnalyzePaperStatusEnum.READY_TO_CALCULATE);
-                gradeBatchPaperService.updateById(gradeBatchPaper);
-
-                // 更新批次状态
-                GradeBatch gradeBatch = gradeBatchService.getById(gradeBatchPaper.getBatchId());
-                // 批次未推送成功,不更新状态
-                if(GradeAnalyzePaperStatusEnum.PUSH_GRADE_BATCH.equals(gradeBatch.getStatus())){
-                    continue;
-                }
-                if (GradeAnalyzePaperStatusEnum.FINISH_CALCULATE.equals(gradeBatch.getStatus())) {
-                    gradeBatch.setStatus(GradeAnalyzePaperStatusEnum.READY_TO_CALCULATE);
-                    gradeBatchService.updateById(gradeBatch);
-                } else {
-                    QueryWrapper<GradeBatchPaper> queryWrapperList = new QueryWrapper<>();
-                    queryWrapperList.lambda().eq(GradeBatchPaper::getBatchId, gradeBatchPaper.getBatchId());
-                    List<GradeBatchPaper> gradeBatchPaperAll = gradeBatchPaperService.list(queryWrapperList);
-                    if (!gradeBatchPaperAll.isEmpty()) {
-                        long count = gradeBatchPaperAll.stream().filter(m -> !GradeAnalyzePaperStatusEnum.READY_TO_CALCULATE.equals(m.getStatus())).count();
-                        if (count == 0) {
-                            // 更新批次状态
-                            UpdateWrapper<GradeBatch> updateWrapper = new UpdateWrapper<>();
-                            updateWrapper.lambda().set(GradeBatch::getStatus, GradeAnalyzePaperStatusEnum.READY_TO_CALCULATE).eq(GradeBatch::getId, gradeBatchPaper.getBatchId());
-                            gradeBatchService.update(updateWrapper);
-                        }
+                QueryWrapper<GradeBatchPaper> queryWrapperList = new QueryWrapper<>();
+                queryWrapperList.lambda().eq(GradeBatchPaper::getBatchId, gradeBatchPaper.getBatchId());
+                List<GradeBatchPaper> gradeBatchPaperAll = gradeBatchPaperService.list(queryWrapperList);
+                if (!gradeBatchPaperAll.isEmpty()) {
+                    long count = gradeBatchPaperAll.stream().filter(m -> !GradeAnalyzePaperStatusEnum.READY_TO_CALCULATE.equals(m.getStatus())).count();
+                    if (count == 0) {
+                        // 更新批次状态
+                        UpdateWrapper<GradeBatch> updateWrapper = new UpdateWrapper<>();
+                        updateWrapper.lambda().set(GradeBatch::getStatus, GradeAnalyzePaperStatusEnum.READY_TO_CALCULATE).eq(GradeBatch::getId, gradeBatchPaper.getBatchId());
                     }
                 }
             }