|
@@ -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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|