|
@@ -1391,7 +1391,7 @@ public class AnalyzeForReportServiceImpl implements AnalyzeForReportService {
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
- public String finishCalculate(Long examId, String courseCode) {
|
|
|
+ public String updateCoursePublishStatus(Long examId, String courseCode,PublishStatusEnum publishStatusEnum ) {
|
|
|
// 可分析有效课程信息
|
|
|
List<String> effectiveCourseCodeList = tbExamCourseService.findEffectiveByExamId(examId, courseCode);
|
|
|
List<TBExamCourse> tbExamCourseList = new ArrayList<>();
|
|
@@ -1399,13 +1399,81 @@ public class AnalyzeForReportServiceImpl implements AnalyzeForReportService {
|
|
|
TBExamCourse tbExamCourse = tbExamCourseService.getOne(new QueryWrapper<TBExamCourse>().lambda()
|
|
|
.eq(TBExamCourse::getExamId, examId)
|
|
|
.eq(TBExamCourse::getCourseCode, effectiveCourseCode));
|
|
|
- tbExamCourse.setPublishStatus(PublishStatusEnum.UN_PUBLISH);
|
|
|
+ tbExamCourse.setPublishStatus(publishStatusEnum);
|
|
|
tbExamCourseList.add(tbExamCourse);
|
|
|
}
|
|
|
tbExamCourseService.updateBatchById(tbExamCourseList);
|
|
|
return " 't_b_exam_course' 表状态更新完成";
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void dataCalculateForSystem(Long examId, String courseCode) throws Exception {
|
|
|
+ this.verifyComputing(examId, courseCode);
|
|
|
+ this.updateCoursePublishStatus(examId, courseCode,PublishStatusEnum.COMPUTING);
|
|
|
+ this.dataCalculate(examId, courseCode);
|
|
|
+ this.updateCoursePublishStatus(examId, courseCode,PublishStatusEnum.WILL_COMPUTE);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void dataCalculateForDean(Long examId, String courseCode) throws Exception {
|
|
|
+ this.verifyComputing(examId, courseCode);
|
|
|
+ this.updateCoursePublishStatus(examId, courseCode,PublishStatusEnum.COMPUTING);
|
|
|
+ this.dataCalculate(examId, courseCode);
|
|
|
+ this.updateCoursePublishStatus(examId, courseCode,PublishStatusEnum.UN_PUBLISH);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void publishReport(Long examId, String courseCode, PublishStatusEnum publishStatusEnum) {
|
|
|
+ TBExamCourse tbExamCourse = tbExamCourseService.getOne(new QueryWrapper<TBExamCourse>().lambda()
|
|
|
+ .eq(TBExamCourse::getExamId,examId)
|
|
|
+ .eq(TBExamCourse::getCourseCode,courseCode));
|
|
|
+ PublishStatusEnum status = tbExamCourse.getPublishStatus();
|
|
|
+ if (publishStatusEnum.equals(PublishStatusEnum.PUBLISH) && status.equals(PublishStatusEnum.UN_PUBLISH)){
|
|
|
+ // 待发布状态 -》 发布
|
|
|
+ tbExamCourse.setPublishStatus(publishStatusEnum);
|
|
|
+ }else if (publishStatusEnum.equals(PublishStatusEnum.UN_PUBLISH) && status.equals(PublishStatusEnum.PUBLISH)){
|
|
|
+ // 发布状态 -》 撤回
|
|
|
+ tbExamCourse.setPublishStatus(publishStatusEnum);
|
|
|
+ }else {
|
|
|
+ String statusDesc = "未明确的操作";
|
|
|
+ if (publishStatusEnum.equals(PublishStatusEnum.PUBLISH)){
|
|
|
+ statusDesc = "发布";
|
|
|
+ }else if (publishStatusEnum.equals(PublishStatusEnum.UN_PUBLISH)){
|
|
|
+ statusDesc = "撤回";
|
|
|
+ }
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("【" + status + "】状态的课程无法进行" + "【" + statusDesc + "】" );
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void dataCalculate(Long examId,String courseCode) throws Exception {
|
|
|
+ this.buildAnalyzeExamCourse(examId,courseCode);
|
|
|
+ this.buildAnalyzeExamCourseRecord(examId, courseCode);
|
|
|
+ this.buildAnalyzeExamCourseCollegeInspect(examId, courseCode);
|
|
|
+ this.buildAnalyzeExamCourseClazz(examId, courseCode);
|
|
|
+ this.AnalyzePointScoreRate(examId, courseCode);
|
|
|
+ this.buildAnalyzeExamCourseCollegeInspectDio(examId, courseCode);
|
|
|
+ this.buildAnalyzeExamCourseTeacherDio(examId, courseCode);
|
|
|
+ this.buildAnalyzePaperStruct(examId, courseCode);
|
|
|
+ this.buildExamPaperDifficult(examId, courseCode);
|
|
|
+ this.buildExamPaperTeacherDifficult(examId, courseCode);
|
|
|
+ this.buildAnalyzeExamTotal(examId);
|
|
|
+ this.buildAnalyzeExamCourseCollegeTeacher(examId, courseCode);
|
|
|
+ this.buildAnalyzeExamCourseTeacher(examId, courseCode);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void verifyComputing(Long examId,String courseCode){
|
|
|
+ List<String> effectiveCourseCodeList = tbExamCourseService.findEffectiveByExamId(examId, courseCode);
|
|
|
+ for (String effectiveCourseCode : effectiveCourseCodeList) {
|
|
|
+ TBExamCourse tbExamCourse = tbExamCourseService.getOne(new QueryWrapper<TBExamCourse>().lambda()
|
|
|
+ .eq(TBExamCourse::getExamId, examId)
|
|
|
+ .eq(TBExamCourse::getCourseCode, effectiveCourseCode));
|
|
|
+ PublishStatusEnum publishStatusEnum = tbExamCourse.getPublishStatus();
|
|
|
+ if (publishStatusEnum.equals(PublishStatusEnum.COMPUTING)){
|
|
|
+ throw ExceptionResultEnum.ERROR.exception("计算中的课程无法再计算 课程【" +tbExamCourse.getCourseName() + "】");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 计算百分位等级
|
|
|
*
|