|
@@ -7,12 +7,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
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.teachcloud.common.bean.result.DictionaryResult;
|
|
|
import com.qmth.distributed.print.business.bean.result.analyze.GradeBatchPaperResult;
|
|
|
import com.qmth.distributed.print.business.entity.*;
|
|
|
import com.qmth.distributed.print.business.mapper.GradeBatchPaperMapper;
|
|
|
import com.qmth.distributed.print.business.service.*;
|
|
|
import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
|
|
|
+import com.qmth.teachcloud.common.bean.result.DictionaryResult;
|
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
|
import com.qmth.teachcloud.common.entity.SysOrg;
|
|
|
import com.qmth.teachcloud.common.entity.SysUser;
|
|
@@ -40,58 +40,67 @@ import java.util.stream.Stream;
|
|
|
*/
|
|
|
@Service
|
|
|
public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMapper, GradeBatchPaper> implements GradeBatchPaperService {
|
|
|
+
|
|
|
@Resource
|
|
|
SysOrgService sysOrgService;
|
|
|
+
|
|
|
@Resource
|
|
|
GradeBatchService gradeBatchService;
|
|
|
+
|
|
|
@Resource
|
|
|
GradePaperDimensionService gradePaperDimensionService;
|
|
|
+
|
|
|
@Resource
|
|
|
GradePaperStructService gradePaperStructService;
|
|
|
+
|
|
|
@Resource
|
|
|
GradePaperService gradePaperService;
|
|
|
+
|
|
|
@Resource
|
|
|
GradeModuleDefineService gradeModuleDefineService;
|
|
|
+
|
|
|
@Resource
|
|
|
GradeModuleEvaluationService gradeModuleEvaluationService;
|
|
|
+
|
|
|
@Resource
|
|
|
ExamTaskService examTaskService;
|
|
|
+
|
|
|
@Resource
|
|
|
BasicRoleDataPermissionService basicRoleDataPermissionService;
|
|
|
|
|
|
@Override
|
|
|
public IPage<GradeBatchPaperResult> findGradeBatchPaperPage(Long batchId, Long examId, String courseName, int pageNumber, int pageSize, SysUser requestUser) {
|
|
|
Long schoolId = requestUser.getSchoolId();
|
|
|
- DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId, requestUser.getId(), ServletUtil.getRequest().getServletPath());
|
|
|
+ DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId, requestUser.getId(),
|
|
|
+ ServletUtil.getRequest().getServletPath());
|
|
|
courseName = SystemConstant.translateSpecificSign(courseName);
|
|
|
- IPage<GradeBatchPaperResult> datasource = this.baseMapper.findGradeBatchPaperPage(new Page<>(pageNumber, pageSize), batchId, examId, courseName, schoolId, dpr);
|
|
|
- for (GradeBatchPaperResult record : datasource.getRecords()) {
|
|
|
- Long teachingRoomId = record.getTeachingRoomId();
|
|
|
- SysOrg teachCollege = sysOrgService.findCollegeLevelOrgByOrgId(teachingRoomId);
|
|
|
- if (Objects.nonNull(teachCollege)){
|
|
|
- record.setTeachCollegeId(teachCollege.getId());
|
|
|
- record.setTeachCollegeName(teachCollege.getName());
|
|
|
- }
|
|
|
- }
|
|
|
- return datasource;
|
|
|
+ return this.baseMapper.findGradeBatchPaperPage(new Page<>(pageNumber, pageSize), batchId, examId, courseName, schoolId, dpr);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<GradeBatchPaperResult> findAbleAnalyzePaperList(Long batchId, Long examId, Long collegeId, String courseCode, String teacherName, SysUser requestUser) {
|
|
|
+ public List<GradeBatchPaperResult> findAbleAnalyzePaperList(Long batchId, Long examId, Long collegeId, Long courseId, String teacherName, SysUser requestUser) {
|
|
|
Long schoolId = requestUser.getSchoolId();
|
|
|
- DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId, requestUser.getId(), ServletUtil.getRequest().getServletPath());
|
|
|
+ DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId, requestUser.getId(),
|
|
|
+ ServletUtil.getRequest().getServletPath());
|
|
|
GradeBatch gradeBatch = gradeBatchService.getById(batchId);
|
|
|
if (Objects.isNull(gradeBatch)) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("教研分析批次不存在");
|
|
|
}
|
|
|
|
|
|
- List<GradeBatchPaperResult> datasource = this.baseMapper.findAbleAnalyzePaper(gradeBatch.getSemesterId(), examId, collegeId, courseCode, SystemConstant.translateSpecificSign(teacherName), dpr, schoolId);
|
|
|
+ List<GradeBatchPaperResult> datasource = this.baseMapper.findAbleAnalyzePaper(gradeBatch.getSemesterId(), examId, collegeId, courseId, SystemConstant.translateSpecificSign(teacherName), dpr, schoolId);
|
|
|
List<GradeBatchPaperResult> copy = new ArrayList<>();
|
|
|
|
|
|
+
|
|
|
+ Map<Long, SysOrg> teachCollegeMap = sysOrgService.findCollegeLevelOrgList(schoolId).stream().collect(Collectors.toMap(SysOrg::getId, sysOrg -> sysOrg));
|
|
|
+
|
|
|
for (GradeBatchPaperResult gradeBatchPaperResult : datasource) {
|
|
|
|
|
|
- Long teachingRoomId = gradeBatchPaperResult.getTeachingRoomId();
|
|
|
- SysOrg teachCollege = sysOrgService.findCollegeLevelOrgByOrgId(teachingRoomId);
|
|
|
+ Long teachingCollegeId = gradeBatchPaperResult.getTeachCollegeId();
|
|
|
+ if (!teachCollegeMap.containsKey(teachingCollegeId)) {
|
|
|
+ throw ExceptionResultEnum.ERROR.exception(String.format("课程【%s】的开课学院有误(不是学校的下一级)", gradeBatchPaperResult.getCourseName()));
|
|
|
+ }
|
|
|
+
|
|
|
+ SysOrg teachCollege = teachCollegeMap.get(teachingCollegeId);
|
|
|
if (SystemConstant.longNotNull(collegeId) && !collegeId.equals(teachCollege.getId())) {
|
|
|
continue;
|
|
|
}
|
|
@@ -114,7 +123,7 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
|
|
|
Long batchId = gradeBatchPaperParam.getBatchId();
|
|
|
Long schoolId = requestUser.getSchoolId();
|
|
|
GradeBatch gradeBatch = gradeBatchService.getById(batchId);
|
|
|
- if (Objects.isNull(gradeBatch)){
|
|
|
+ if (Objects.isNull(gradeBatch)) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("分析批次不存在");
|
|
|
}
|
|
|
Long examId = gradeBatch.getExamId();
|
|
@@ -139,12 +148,9 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
|
|
|
gradeBatchPaper.setTeachCollegeId(teachCollegeId);
|
|
|
gradeBatchPaper.setTeachCollegeName(teachCollegeName);
|
|
|
|
|
|
-
|
|
|
- GradeBatchPaper dbBatchPaper = this.getOne(new QueryWrapper<GradeBatchPaper>().lambda()
|
|
|
- .eq(GradeBatchPaper::getSchoolId, schoolId)
|
|
|
- .eq(GradeBatchPaper::getBatchId, batchId)
|
|
|
- .eq(GradeBatchPaper::getPaperNumber, paperNumber)
|
|
|
- .eq(GradeBatchPaper::getPaperType, paperType));
|
|
|
+ GradeBatchPaper dbBatchPaper = this.getOne(
|
|
|
+ new QueryWrapper<GradeBatchPaper>().lambda().eq(GradeBatchPaper::getSchoolId, schoolId).eq(GradeBatchPaper::getBatchId, batchId).eq(GradeBatchPaper::getPaperNumber, paperNumber)
|
|
|
+ .eq(GradeBatchPaper::getPaperType, paperType));
|
|
|
if (Objects.isNull(dbBatchPaper)) {
|
|
|
|
|
|
gradeBatchPaper.insertInfo(requestUser.getId());
|
|
@@ -193,12 +199,12 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
|
|
|
for (Long id : idList) {
|
|
|
GradeBatchPaper gradeBatchPaper = this.getById(id);
|
|
|
if (GradeAnalyzePaperStatusEnum.CALCULATING.equals(gradeBatchPaper.getStatus())) {
|
|
|
- throw ExceptionResultEnum.ERROR.exception("试卷编号为【" + gradeBatchPaper.getPaperNumber() +
|
|
|
- "】,试卷类型为【" + gradeBatchPaper.getPaperType() + "】的分析试卷正在计算中请稍后再试");
|
|
|
+ throw ExceptionResultEnum.ERROR.exception(
|
|
|
+ "试卷编号为【" + gradeBatchPaper.getPaperNumber() + "】,试卷类型为【" + gradeBatchPaper.getPaperType() + "】的分析试卷正在计算中请稍后再试");
|
|
|
}
|
|
|
if (gradeBatchPaper.getPublishStatus()) {
|
|
|
- throw ExceptionResultEnum.ERROR.exception("试卷编号为【" + gradeBatchPaper.getPaperNumber() +
|
|
|
- "】,试卷类型为【" + gradeBatchPaper.getPaperType() + "】的分析试卷已发布,不能删除");
|
|
|
+ throw ExceptionResultEnum.ERROR.exception(
|
|
|
+ "试卷编号为【" + gradeBatchPaper.getPaperNumber() + "】,试卷类型为【" + gradeBatchPaper.getPaperType() + "】的分析试卷已发布,不能删除");
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -220,11 +226,9 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
|
|
|
@Transactional
|
|
|
@Override
|
|
|
public void checkOperateAuth(Long schoolId, Long examId, String paperNumber, String paperType) {
|
|
|
- List<GradeBatchPaper> gradeBatchPaperList = this.list(new QueryWrapper<GradeBatchPaper>().lambda()
|
|
|
- .eq(GradeBatchPaper::getSchoolId, schoolId)
|
|
|
- .eq(GradeBatchPaper::getExamId, examId)
|
|
|
- .eq(GradeBatchPaper::getPaperNumber, paperNumber)
|
|
|
- .eq(GradeBatchPaper::getPaperType, paperType));
|
|
|
+ List<GradeBatchPaper> gradeBatchPaperList = this.list(
|
|
|
+ new QueryWrapper<GradeBatchPaper>().lambda().eq(GradeBatchPaper::getSchoolId, schoolId).eq(GradeBatchPaper::getExamId, examId).eq(GradeBatchPaper::getPaperNumber, paperNumber)
|
|
|
+ .eq(GradeBatchPaper::getPaperType, paperType));
|
|
|
if (gradeBatchPaperList.stream().anyMatch(e -> GradeAnalyzePaperStatusEnum.CALCULATING.equals(e.getStatus()))) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("选择的试卷有正在计算的分析课程");
|
|
|
}
|
|
@@ -243,11 +247,9 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
|
|
|
@Override
|
|
|
public void updatePaperAndBatchStatus(Long schoolId, Long examId, String paperNumber, String paperType) {
|
|
|
if (this.analyzeDataReady(schoolId, examId, paperNumber, paperType)) {
|
|
|
- List<GradeBatchPaper> gradeBatchPaperList = this.list(new QueryWrapper<GradeBatchPaper>().lambda()
|
|
|
- .eq(GradeBatchPaper::getSchoolId, schoolId)
|
|
|
- .eq(GradeBatchPaper::getExamId,examId)
|
|
|
- .eq(GradeBatchPaper::getPaperNumber, paperNumber)
|
|
|
- .eq(GradeBatchPaper::getPaperType, paperType));
|
|
|
+ List<GradeBatchPaper> gradeBatchPaperList = this.list(
|
|
|
+ new QueryWrapper<GradeBatchPaper>().lambda().eq(GradeBatchPaper::getSchoolId, schoolId)
|
|
|
+ .eq(GradeBatchPaper::getExamId, examId).eq(GradeBatchPaper::getPaperNumber, paperNumber).eq(GradeBatchPaper::getPaperType, paperType));
|
|
|
|
|
|
|
|
|
for (GradeBatchPaper gradeBatchPaper : gradeBatchPaperList) {
|
|
@@ -268,11 +270,13 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
|
|
|
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();
|
|
|
+ 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());
|
|
|
+ updateWrapper.lambda()
|
|
|
+ .set(GradeBatch::getStatus, GradeAnalyzePaperStatusEnum.READY_TO_CALCULATE).eq(GradeBatch::getId, gradeBatchPaper.getBatchId());
|
|
|
gradeBatchService.update(updateWrapper);
|
|
|
}
|
|
|
}
|
|
@@ -284,56 +288,44 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
|
|
|
@Override
|
|
|
public boolean analyzeDataReady(Long schoolId, Long examId, String paperNumber, String paperType) {
|
|
|
|
|
|
- boolean dimensionExist = gradePaperDimensionService.list(new QueryWrapper<GradePaperDimension>().lambda()
|
|
|
- .eq(GradePaperDimension::getSchoolId, schoolId)
|
|
|
- .eq(GradePaperDimension::getExamId, examId)
|
|
|
- .eq(GradePaperDimension::getPaperNumber, paperNumber)
|
|
|
- .eq(GradePaperDimension::getPaperType, paperType))
|
|
|
- .size() > 0;
|
|
|
+ boolean dimensionExist = gradePaperDimensionService.list(
|
|
|
+ new QueryWrapper<GradePaperDimension>().lambda().eq(GradePaperDimension::getSchoolId, schoolId)
|
|
|
+ .eq(GradePaperDimension::getExamId, examId).eq(GradePaperDimension::getPaperNumber, paperNumber)
|
|
|
+ .eq(GradePaperDimension::getPaperType, paperType)).size() > 0;
|
|
|
if (!dimensionExist) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- boolean structExist = gradePaperStructService.list(new QueryWrapper<GradePaperStruct>().lambda()
|
|
|
- .eq(GradePaperStruct::getSchoolId, schoolId)
|
|
|
- .eq(GradePaperStruct::getExamId, examId)
|
|
|
- .eq(GradePaperStruct::getPaperNumber, paperNumber)
|
|
|
- .eq(GradePaperStruct::getPaperType, paperType))
|
|
|
- .size() > 0;
|
|
|
+ boolean structExist = gradePaperStructService.list(
|
|
|
+ new QueryWrapper<GradePaperStruct>().lambda().eq(GradePaperStruct::getSchoolId, schoolId)
|
|
|
+ .eq(GradePaperStruct::getExamId, examId).eq(GradePaperStruct::getPaperNumber, paperNumber)
|
|
|
+ .eq(GradePaperStruct::getPaperType, paperType)).size() > 0;
|
|
|
if (!structExist) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- boolean paperExist = gradePaperService.list(new QueryWrapper<GradePaper>()
|
|
|
- .lambda()
|
|
|
- .eq(GradePaper::getSchoolId, schoolId)
|
|
|
- .eq(GradePaper::getExamId, examId)
|
|
|
- .eq(GradePaper::getPaperNumber, paperNumber)
|
|
|
- .eq(GradePaper::getPaperType, paperType))
|
|
|
- .size() > 0;
|
|
|
+ boolean paperExist = gradePaperService.list(
|
|
|
+ new QueryWrapper<GradePaper>().lambda().eq(GradePaper::getSchoolId, schoolId)
|
|
|
+ .eq(GradePaper::getExamId, examId).eq(GradePaper::getPaperNumber, paperNumber)
|
|
|
+ .eq(GradePaper::getPaperType, paperType)).size() > 0;
|
|
|
if (!paperExist) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- boolean moduleDefineExist = gradeModuleDefineService.list(new QueryWrapper<GradeModuleDefine>()
|
|
|
- .lambda()
|
|
|
- .eq(GradeModuleDefine::getSchoolId, schoolId)
|
|
|
- .eq(GradeModuleDefine::getExamId, examId)
|
|
|
- .eq(GradeModuleDefine::getPaperNumber, paperNumber)
|
|
|
- .eq(GradeModuleDefine::getPaperType, paperType))
|
|
|
- .size() > 0;
|
|
|
+ boolean moduleDefineExist = gradeModuleDefineService.list(
|
|
|
+ new QueryWrapper<GradeModuleDefine>().lambda().eq(GradeModuleDefine::getSchoolId, schoolId)
|
|
|
+ .eq(GradeModuleDefine::getExamId, examId).eq(GradeModuleDefine::getPaperNumber, paperNumber)
|
|
|
+ .eq(GradeModuleDefine::getPaperType, paperType)).size() > 0;
|
|
|
if (!moduleDefineExist) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
|
|
|
- return gradeModuleEvaluationService.list(new QueryWrapper<GradeModuleEvaluation>()
|
|
|
- .lambda()
|
|
|
- .eq(GradeModuleEvaluation::getSchoolId, schoolId)
|
|
|
+ return gradeModuleEvaluationService.list(
|
|
|
+ new QueryWrapper<GradeModuleEvaluation>().lambda().eq(GradeModuleEvaluation::getSchoolId, schoolId)
|
|
|
.eq(GradeModuleEvaluation::getExamId, examId)
|
|
|
.eq(GradeModuleEvaluation::getPaperNumber, paperNumber)
|
|
|
- .eq(GradeModuleEvaluation::getPaperType, paperType))
|
|
|
- .size() > 0;
|
|
|
+ .eq(GradeModuleEvaluation::getPaperType, paperType)).size() > 0;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -344,17 +336,14 @@ public class GradeBatchPaperServiceImpl extends ServiceImpl<GradeBatchPaperMappe
|
|
|
examTaskQueryWrapper.lambda().eq(ExamTask::getExamId, examId);
|
|
|
}
|
|
|
|
|
|
- List<Long> teachingRoomIdList = examTaskService.list(examTaskQueryWrapper)
|
|
|
- .stream()
|
|
|
- .map(ExamTask::getTeachingRoomId)
|
|
|
- .distinct()
|
|
|
- .collect(Collectors.toList());
|
|
|
+ List<Long> teachingRoomIdList = examTaskService.list(examTaskQueryWrapper).stream()
|
|
|
+ .map(ExamTask::getTeachingRoomId).distinct().collect(Collectors.toList());
|
|
|
|
|
|
List<SysOrg> teachOrgList = new ArrayList<>();
|
|
|
Map<Long, Long> keyMap = new HashMap<>();
|
|
|
for (Long orgId : teachingRoomIdList) {
|
|
|
SysOrg sysOrg = sysOrgService.findCollegeLevelOrgByOrgId(orgId);
|
|
|
- if (Objects.isNull(sysOrg)){
|
|
|
+ if (Objects.isNull(sysOrg)) {
|
|
|
continue;
|
|
|
}
|
|
|
Long id = sysOrg.getId();
|