Răsfoiți Sursa

数据初始化 提交bug

caozixuan 2 ani în urmă
părinte
comite
3b31d727dc

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

@@ -68,11 +68,23 @@ public interface GradeBatchPaperService extends IService<GradeBatchPaper> {
      * @param schoolId     学校id
      * @param paperNumber  试卷编号
      * @param paperType    试卷类型
-     * @param updateStatus 是否更新分析试卷和批次状态
      */
-    void checkOperateAuth(Long schoolId, String paperNumber, String paperType, boolean updateStatus);
+    void checkOperateAuth(Long schoolId, String paperNumber, String paperType);
 
     SysOrg findTeachCollegeByOrgId(Long orgId);
 
     GradeBatchPaper findByThirdExamIdAndGradeCourseCode(Long schoolId, String thirdExamId, String gradeCourseCode);
+
+    /**
+     * 基础配置四个页签保存时判断并执行更新分析课程和分析批次状态的操作
+     * <p>
+     * 1.如果四个页签所涉及的表中都有数据了,则
+     * 2.如果四个页签所涉及的表中并非都有数据,则
+     * </p>
+     *
+     * @param schoolId    学校id
+     * @param paperNumber 试卷编号
+     * @param paperType   试卷类型
+     */
+    void updatePaperAndBatchStatus(Long schoolId, String paperNumber, String paperType);
 }

+ 102 - 36
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeBatchPaperServiceImpl.java

@@ -8,11 +8,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.bean.params.analyze.AbleAnalyzePaperParam;
 import com.qmth.distributed.print.business.bean.params.analyze.GradeBatchPaperParam;
 import com.qmth.distributed.print.business.bean.result.analyze.GradeBatchPaperResult;
-import com.qmth.distributed.print.business.entity.GradeBatch;
-import com.qmth.distributed.print.business.entity.GradeBatchPaper;
+import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.mapper.GradeBatchPaperMapper;
-import com.qmth.distributed.print.business.service.GradeBatchPaperService;
-import com.qmth.distributed.print.business.service.GradeBatchService;
+import com.qmth.distributed.print.business.service.*;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysOrg;
 import com.qmth.teachcloud.common.entity.SysUser;
@@ -47,6 +45,16 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
     TeachcloudCommonService teachcloudCommonService;
     @Resource
     GradeBatchService gradeBatchService;
+    @Resource
+    GradePaperDimensionService gradePaperDimensionService;
+    @Resource
+    GradePaperStructService gradePaperStructService;
+    @Resource
+    GradePaperService gradePaperService;
+    @Resource
+    GradeModuleDefineService gradeModuleDefineService;
+    @Resource
+    GradeModuleEvaluationService gradeModuleEvaluationService;
 
     @Override
     public IPage<GradeBatchPaperResult> findGradeBatchPaperPage(Long batchId, Long examId, String courseName, int pageNumber, int pageSize, SysUser requestUser) {
@@ -205,7 +213,7 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
 
     @Transactional
     @Override
-    public void checkOperateAuth(Long schoolId, String paperNumber, String paperType, boolean updateStatus) {
+    public void checkOperateAuth(Long schoolId, String paperNumber, String paperType) {
         List<GradeBatchPaper> gradeBatchPaperList = this.list(new QueryWrapper<GradeBatchPaper>().lambda()
                 .eq(GradeBatchPaper::getSchoolId, schoolId)
                 .eq(GradeBatchPaper::getPaperNumber, paperNumber)
@@ -222,37 +230,6 @@ 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);
-
-                // 更新批次状态
-                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);
-                        }
-                    }
-                }
-            }
-        }
     }
 
     /**
@@ -273,4 +250,93 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
         }
         return collegeList.get(0);
     }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void updatePaperAndBatchStatus(Long schoolId, String paperNumber, String paperType) {
+        // 检验维度数据存在
+        boolean dimensionExist = gradePaperDimensionService.list(new QueryWrapper<GradePaperDimension>().lambda()
+                        .eq(GradePaperDimension::getSchoolId, schoolId)
+                        .eq(GradePaperDimension::getPaperNumber, paperNumber)
+                        .eq(GradePaperDimension::getPaperType, paperType))
+                .size() > 0;
+        if (!dimensionExist) {
+            return;
+        }
+        // 检验结构数据存在
+        boolean structExist = gradePaperStructService.list(new QueryWrapper<GradePaperStruct>().lambda()
+                        .eq(GradePaperStruct::getSchoolId, schoolId)
+                        .eq(GradePaperStruct::getPaperNumber, paperNumber)
+                        .eq(GradePaperStruct::getPaperType, paperType))
+                .size() > 0;
+        if (!structExist) {
+            return;
+        }
+        // 检验试卷基础分析数据存在
+        boolean paperExist = gradePaperService.list(new QueryWrapper<GradePaper>()
+                        .lambda()
+                        .eq(GradePaper::getSchoolId, schoolId)
+                        .eq(GradePaper::getPaperNumber, paperNumber)
+                        .eq(GradePaper::getPaperType, paperType))
+                .size() > 0;
+        if (!paperExist) {
+            return;
+        }
+        // 精熟度定义数据存在
+        boolean moduleDefineExist = gradeModuleDefineService.list(new QueryWrapper<GradeModuleDefine>()
+                        .lambda()
+                        .eq(GradeModuleDefine::getSchoolId, schoolId)
+                        .eq(GradeModuleDefine::getPaperNumber, paperNumber)
+                        .eq(GradeModuleDefine::getPaperType, paperType))
+                .size() > 0;
+        if (!moduleDefineExist) {
+            return;
+        }
+        // 模块评价数据存在
+        boolean moduleEvaluationExist = gradeModuleEvaluationService.list(new QueryWrapper<GradeModuleEvaluation>()
+                        .lambda()
+                        .eq(GradeModuleEvaluation::getSchoolId, schoolId)
+                        .eq(GradeModuleEvaluation::getPaperNumber, paperNumber)
+                        .eq(GradeModuleEvaluation::getPaperType, paperType))
+                .size() > 0;
+
+        if (!moduleEvaluationExist) {
+            return;
+        }
+
+        List<GradeBatchPaper> gradeBatchPaperList = this.list(new QueryWrapper<GradeBatchPaper>().lambda()
+                .eq(GradeBatchPaper::getSchoolId, schoolId)
+                .eq(GradeBatchPaper::getPaperNumber, paperNumber)
+                .eq(GradeBatchPaper::getPaperType, paperType));
+        // 如果所有数据都有,则更新状态
+        // 更新批次科目状态
+        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);
+                    }
+                }
+            }
+        }
+    }
 }

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

@@ -212,7 +212,7 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
         headerStyle.setBottomBorderColor(IndexedColors.BLACK.getIndex());
         // 背景颜色
         headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
-        headerStyle.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex());
+        headerStyle.setFillForegroundColor(IndexedColors.GREY_80_PERCENT.getIndex());
         Font font = wb.createFont();
         font.setFontHeightInPoints((short) 12);
         font.setFontName("宋体");

+ 2 - 8
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradeModuleDefineServiceImpl.java

@@ -69,20 +69,14 @@ public class GradeModuleDefineServiceImpl extends ServiceImpl<GradeModuleDefineM
         abilityDefine.setInterpret(abilityInterpret);
         gradeModuleDefineList.add(abilityDefine);
 
-        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);
+        gradeBatchPaperService.checkOperateAuth(schoolId, paperNumber, paperType);
         this.remove(new QueryWrapper<GradeModuleDefine>()
                 .lambda()
                 .eq(GradeModuleDefine::getSchoolId, schoolId)
                 .eq(GradeModuleDefine::getPaperNumber, paperNumber)
                 .eq(GradeModuleDefine::getPaperType, paperType));
         this.saveBatch(gradeModuleDefineList);
+        gradeBatchPaperService.updatePaperAndBatchStatus(schoolId, paperNumber, paperType);
     }
 
     @Override

+ 2 - 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, false);
+        gradeBatchPaperService.checkOperateAuth(schoolId, paperNumber, paperType);
         // 删除原有的模块评价
         this.remove(new QueryWrapper<GradeModuleEvaluation>()
                 .lambda()
@@ -103,6 +103,7 @@ public class GradeModuleEvaluationServiceImpl extends ServiceImpl<GradeModuleEva
 
         // 新增
         this.saveBatch(gradeModuleEvaluationList);
+        gradeBatchPaperService.updatePaperAndBatchStatus(schoolId, paperNumber, paperType);
     }
 
     @Override

+ 3 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/GradePaperDimensionServiceImpl.java

@@ -55,15 +55,11 @@ public class GradePaperDimensionServiceImpl extends ServiceImpl<GradePaperDimens
         String paperNumber = gradePaperDimensionParam.getPaperNumber();
         String paperType = gradePaperDimensionParam.getPaperType();
         String paperName = gradePaperDimensionParam.getPaperName();
+        Long schoolId = requestUser.getSchoolId();
         DimensionEnum dimensionType = gradePaperDimensionParam.getDimensionType();
         List<GradePaperDimensionDatasource> datasource = gradePaperDimensionParam.getDatasource();
 
-        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);
+        gradeBatchPaperService.checkOperateAuth(schoolId, paperNumber, paperType);
         List<GradePaperDimension> gradePaperDimensionList = this.checkAndBuildGradePaperDimensionList(datasource, paperNumber, paperType, paperName, dimensionType, requestUser);
         this.remove(new QueryWrapper<GradePaperDimension>().lambda()
                 .eq(GradePaperDimension::getSchoolId, requestUser.getSchoolId())
@@ -71,6 +67,7 @@ public class GradePaperDimensionServiceImpl extends ServiceImpl<GradePaperDimens
                 .eq(GradePaperDimension::getPaperType, paperType)
                 .eq(GradePaperDimension::getDimensionType, dimensionType));
         this.saveBatch(gradePaperDimensionList);
+        gradeBatchPaperService.updatePaperAndBatchStatus(schoolId, paperNumber, paperType);
     }
 
     @Transactional(rollbackFor = Exception.class)

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

@@ -108,15 +108,8 @@ 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,updateStatus);
+        gradeBatchPaperService.checkOperateAuth(schoolId, paperNumber, paperType);
 
         BigDecimal totalScore = gradePaperDefineParam.getTotalScore();
         BigDecimal passScore = gradePaperDefineParam.getPassScore();
@@ -140,6 +133,7 @@ public class GradePaperServiceImpl extends ServiceImpl<GradePaperMapper, GradePa
 
         gradePaper.insertInfo(requestUser.getId());
         this.save(gradePaper);
+        gradeBatchPaperService.updatePaperAndBatchStatus(schoolId,paperNumber,paperType);
         return gradePaper.getId();
     }
 

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

@@ -153,12 +153,9 @@ 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,updateStatus);
+        gradeBatchPaperService.checkOperateAuth(schoolId, paperNumber, paperType);
         // 检验结构正确性并构建分析试卷结构
         List<GradePaperStruct> gradePaperStructList = this.checkAndBuildGradePaperStruct(datasource, paperNumber, paperType, paperName, requestUser);
         // 删除旧的试卷结构
@@ -168,6 +165,7 @@ public class GradePaperStructServiceImpl extends ServiceImpl<GradePaperStructMap
                 .eq(GradePaperStruct::getPaperNumber, paperNumber)
                 .eq(GradePaperStruct::getPaperType, paperType));
         this.saveBatch(gradePaperStructList);
+        gradeBatchPaperService.updatePaperAndBatchStatus(schoolId,paperNumber,paperType);
     }
 
     @Transactional(rollbackFor = Exception.class)

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

@@ -69,7 +69,7 @@ public class GradeBatchController {
 
     @ApiOperation(value = "成绩分析批次-删除")
     @RequestMapping(value = "/delete", method = RequestMethod.POST)
-    @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = EditResult.class)})
+    @ApiResponses({@ApiResponse(code = 200, message = SystemConstant.PUSH_OPERATE_NOTICE, response = EditResult.class)})
     public Result deleteGradeBatch(@ApiParam(value = "选择的要删除的成绩分析批次id", required = true) @RequestParam String id) {
         GradeBatch gradeBatch = gradeBatchService.getById(SystemConstant.convertIdToLong(id));
         if(gradeBatch == null){

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

@@ -114,6 +114,7 @@ public class SystemConstant {
     public static final String COMMA_OF_ENGLISH = ",";
     public static final String COMMA_OF_CHINESE = ",";
     public static final String PAUSE_SIGN = "、";
+    public static final String PUSH_OPERATE_NOTICE = "操作成功,请去基础配置 -> 系统设置 -> 同步管理中查看结果";
 
     /**
      * oss url过期时间

+ 3 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/CallPrintOpenApiServiceImpl.java

@@ -170,6 +170,9 @@ public class CallPrintOpenApiServiceImpl implements CallPrintOpenApiService {
             if (Objects.nonNull(callResult)) {
                 log.info("callResult:{}", JacksonUtil.parseJson(callResult));
                 Result result = JSON.parseObject(callResult, Result.class);
+                if (result.getData() == null){
+                    throw ExceptionResultEnum.ERROR.exception("未找到考生信息");
+                }
                 Object data = result.getData();
                 examStudentScoreCell = JSON.parseArray(JSON.toJSONString(data), ExamStudentScore.class);
                 examStudentScoreList.addAll(examStudentScoreCell);