浏览代码

课程目标达成度加入重新计算

wangliang 1 年之前
父节点
当前提交
5373b6dc69

+ 7 - 5
distributed-print/src/main/java/com/qmth/distributed/print/api/obe/TRBasicInfoController.java

@@ -231,14 +231,16 @@ public class TRBasicInfoController {
         TRBasicInfo trBasicInfoDb = null;
         try {
             trBasicInfoDb = trBasicInfoService.queryBasicInfo(trBasicInfo.getCultureProgramId(), trBasicInfo.getCourseId(), trBasicInfo.getPaperNumber());
+            ObeCourseOutline obeCourseOutline = obeCourseOutlineService.findByCultureProgramIdAndCourseId(trBasicInfo.getCultureProgramId(), trBasicInfo.getCourseId());
+            ObeCourseWeightResult obeCourseWeightResult = trBasicInfoService.findCourseWeightResultRmi(obeCourseOutline.getId());
+            TCPaperStruct tcPaperStruct = tcPaperStructService.queryPaperStruct(trBasicInfo.getCultureProgramId(), trBasicInfo.getCourseId(), trBasicInfo.getPaperNumber());
+            MarkPaper markPaper = printCommonService.getMarkPaper(trBasicInfo.getExamId(), Objects.nonNull(tcPaperStruct) ? tcPaperStruct.getPaperNumber() : trBasicInfo.getPaperNumber(), trBasicInfo.getCourseId());
             if (Objects.isNull(trBasicInfoDb)) {
                 trBasicInfoDb = new TRBasicInfo(trBasicInfo, sysUser.getId());
-                TCPaperStruct tcPaperStruct = tcPaperStructService.queryPaperStruct(trBasicInfo.getCultureProgramId(), trBasicInfo.getCourseId(), trBasicInfo.getPaperNumber());
-                MarkPaper markPaper = printCommonService.getMarkPaper(trBasicInfo.getExamId(), Objects.nonNull(tcPaperStruct) ? tcPaperStruct.getPaperNumber() : trBasicInfo.getPaperNumber(), trBasicInfo.getCourseId());
-                ObeCourseOutline obeCourseOutline = obeCourseOutlineService.findByCultureProgramIdAndCourseId(trBasicInfo.getCultureProgramId(), trBasicInfo.getCourseId());
-                trBasicInfoDb = trBasicInfoService.getReportView(trBasicInfoDb, markPaper, sysUser.getId(), trBasicInfoService.findCourseWeightResultRmi(obeCourseOutline.getId()), trBasicInfo.getCultureProgramId(), trBasicInfo.getCourseId());
+                trBasicInfoDb = trBasicInfoService.getReportView(trBasicInfoDb, markPaper, sysUser.getId(), obeCourseWeightResult, trBasicInfo.getCultureProgramId(), trBasicInfo.getCourseId());
             } else {
-                trBasicInfoDb.updateInfo(trBasicInfo, sysUser.getId());
+                ReportCourseBasicInfoDto reportCourseBasicInfoDto = trBasicInfoService.setBasicInfo(trBasicInfo, obeCourseOutline, markPaper, obeCourseWeightResult);
+                trBasicInfoDb.updateInfo(trBasicInfo, reportCourseBasicInfoDto, sysUser.getId());
             }
         } catch (Exception e) {
             log.error(SystemConstant.LOG_ERROR, e);

+ 7 - 0
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/been/report/ReportCourseBasicInfoDto.java

@@ -64,6 +64,13 @@ public class ReportCourseBasicInfoDto implements Serializable {
 
     }
 
+    public ReportCourseBasicInfoDto(String college, String teachingObject, BigDecimal courseDegree, String profession) {
+        this.college = college;
+        this.teachingObject = teachingObject;
+        this.courseDegree = courseDegree;
+        this.profession = profession;
+    }
+
     public ReportCourseBasicInfoDto(TRBasicInfo trBasicInfo) {
         this.courseType = trBasicInfo.getCourseType();
         this.credit = trBasicInfo.getCredit();

+ 23 - 20
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/entity/TRBasicInfo.java

@@ -4,13 +4,13 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.base.BaseEntity;
+import com.qmth.teachcloud.obe.been.report.ReportCourseBasicInfoDto;
 import com.qmth.teachcloud.obe.been.result.report.ReportResult;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
-import java.util.Objects;
 
 /**
  * <p>
@@ -121,9 +121,10 @@ public class TRBasicInfo extends BaseEntity implements Serializable {
     }
 
     public TRBasicInfo(Long cultureProgramId, Long courseId, String courseCode, String courseName,
-                       String paperNumber, String openTime, String teachingObject, String teacher, Integer participantCount,
-                       Long userId, String profession, String finishPoints, String requirementPoints,
-                       String courseSuggest, BigDecimal courseDegree, String courseEnName, Long examId, String college) {
+                       String paperNumber, String openTime,
+                       Long userId, String finishPoints, String requirementPoints,
+                       String courseSuggest, String courseEnName, Long examId,
+                       ReportCourseBasicInfoDto reportCourseBasicInfoDto) {
         insertInfo(userId);
         this.cultureProgramId = cultureProgramId;
         this.courseId = courseId;
@@ -131,19 +132,17 @@ public class TRBasicInfo extends BaseEntity implements Serializable {
         this.courseName = courseName;
         this.paperNumber = paperNumber;
         this.openTime = openTime;
-        this.teachingObject = teachingObject;
-        this.teacher = teacher;
-        this.participantCount = participantCount;
+        this.teachingObject = reportCourseBasicInfoDto.getTeachingObject();
         this.enable = true;
         this.reportResult = new ReportResult();
-        this.profession = profession;
-        this.courseDegree = courseDegree;
+        this.profession = reportCourseBasicInfoDto.getProfession();
+        this.courseDegree = reportCourseBasicInfoDto.getCourseDegree();
         this.courseEnName = courseEnName;
         this.finishPoints = finishPoints;
         this.requirementPoints = requirementPoints;
         this.courseSuggest = courseSuggest;
         this.examId = examId;
-        this.college = college;
+        this.college = reportCourseBasicInfoDto.getCollege();
     }
 
     public String getCourseEnName() {
@@ -200,8 +199,12 @@ public class TRBasicInfo extends BaseEntity implements Serializable {
         this.enable = true;
     }
 
-    public void updateInfo(TRBasicInfo trBasicInfo, Long userId) {
+    public void updateInfo(TRBasicInfo trBasicInfo, ReportCourseBasicInfoDto reportCourseBasicInfoDto, Long userId) {
         this.setValue(trBasicInfo);
+        this.college = reportCourseBasicInfoDto.getCollege();
+        this.teachingObject = reportCourseBasicInfoDto.getTeachingObject();
+        this.courseDegree = reportCourseBasicInfoDto.getCourseDegree();
+        this.profession = reportCourseBasicInfoDto.getProfession();
         updateInfo(userId);
     }
 
@@ -249,25 +252,25 @@ public class TRBasicInfo extends BaseEntity implements Serializable {
     }
 
     public void setBasicInfo(Long examId, String courseCode, String courseName, String paperNumber, String openTime,
-                             String teachingObject, String teacher, Integer participantCount, Long cultureProgramId,
-                             Long courseId, BigDecimal courseDegree, String profession, String courseEnName, String college,
-                             String finishPoints, String requirementPoints, String courseSuggest) {
+                             Long cultureProgramId,
+                             Long courseId, String courseEnName,
+                             String finishPoints, String requirementPoints, String courseSuggest,
+                             ReportCourseBasicInfoDto reportCourseBasicInfoDto) {
         this.examId = examId;
         this.courseCode = courseCode;
         this.courseName = courseName;
         this.paperNumber = paperNumber;
         this.openTime = openTime;
-        this.teachingObject = teachingObject;
-        this.teacher = teacher;
-        this.participantCount = participantCount;
+        this.teachingObject = reportCourseBasicInfoDto.getTeachingObject();
+        this.teacher = reportCourseBasicInfoDto.getTeacher();
         this.enable = true;
         this.reportResult = new ReportResult();
         this.cultureProgramId = cultureProgramId;
         this.courseId = courseId;
-        this.courseDegree = courseDegree;
-        this.profession = profession;
+        this.courseDegree = reportCourseBasicInfoDto.getCourseDegree();
+        this.profession = reportCourseBasicInfoDto.getProfession();
         this.courseEnName = courseEnName;
-        this.college = college;
+        this.college = reportCourseBasicInfoDto.getCollege();
         this.finishPoints = finishPoints;
         this.requirementPoints = requirementPoints;
         this.courseSuggest = courseSuggest;

+ 13 - 0
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/TRBasicInfoService.java

@@ -6,11 +6,13 @@ import com.deepoove.poi.data.TableRenderData;
 import com.qmth.teachcloud.mark.entity.MarkPaper;
 import com.qmth.teachcloud.obe.been.dto.CourseWeightDto;
 import com.qmth.teachcloud.obe.been.report.CourseTargetWordDto;
+import com.qmth.teachcloud.obe.been.report.ReportCourseBasicInfoDto;
 import com.qmth.teachcloud.obe.been.report.ReportCourseEvaluationResultDto;
 import com.qmth.teachcloud.obe.been.report.ReportScoreViewDto;
 import com.qmth.teachcloud.obe.been.result.ObeCourseWeightResult;
 import com.qmth.teachcloud.obe.been.result.report.PaperStructDimensionResult;
 import com.qmth.teachcloud.obe.been.result.report.word.CourseReportBean;
+import com.qmth.teachcloud.obe.entity.ObeCourseOutline;
 import com.qmth.teachcloud.obe.entity.TRBasicInfo;
 
 import java.util.List;
@@ -162,4 +164,15 @@ public interface TRBasicInfoService extends IService<TRBasicInfo> {
      * @param clearDimension
      */
     public void clearReportData(Long cultureProgramId, Long courseId, String paperNumber, boolean clearDimension);
+
+    /**
+     * 报表基础信息
+     *
+     * @param trBasicInfo
+     * @param obeCourseOutline
+     * @param markPaper
+     * @param obeCourseWeightResult
+     * @return
+     */
+    public ReportCourseBasicInfoDto setBasicInfo(TRBasicInfo trBasicInfo, ObeCourseOutline obeCourseOutline, MarkPaper markPaper, ObeCourseWeightResult obeCourseWeightResult);
 }

+ 42 - 28
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/impl/TRBasicInfoServiceImpl.java

@@ -42,7 +42,6 @@ import org.springframework.util.CollectionUtils;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.util.*;
-import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -432,31 +431,7 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
         BasicSemester basicSemester = basicSemesterService.getById(obeCourseOutline.getSemesterId());
         Objects.requireNonNull(basicSemester, "未找到学期信息");
 
-        String college = null;
-        if (Objects.isNull(trBasicInfo) || Objects.isNull(trBasicInfo.getCollege())) {
-            BasicCourse basicCourse = basicCourseService.getById(obeCourseOutline.getCourseId());
-            Objects.requireNonNull(basicCourse, "科目信息为空");
-
-            if (Objects.nonNull(basicCourse.getTeachingRoomId())) {
-                SysOrg sysOrg = sysOrgService.getById(basicCourse.getTeachingRoomId());
-                if (Objects.nonNull(sysOrg)) {
-                    college = sysOrg.getName();
-                }
-            }
-        }
-
-        String teachingObject = Objects.nonNull(trBasicInfo) ? trBasicInfo.getTeachingObject() : null, teacher = Objects.nonNull(trBasicInfo) ? trBasicInfo.getTeacher() : null;
-        if (Objects.nonNull(markPaper.getPaperNumber())) {
-            ExamStudentDto examStudentDto = basicExamStudentService.queryExamStudent(markPaper.getExamId(), courseId, markPaper.getPaperNumber());
-//            teacher = Objects.nonNull(examStudentDto) ? examStudentDto.getTeacherNames() : null;
-            teachingObject = Objects.nonNull(examStudentDto) ? examStudentDto.getClazzNames() : null;
-        }
-
-        ObeCultureProgram obeCultureProgram = obeCultureProgramService.getById(obeCourseOutline.getCultureProgramId());
-        Objects.requireNonNull(obeCultureProgram, "未找到培养方案信息");
-        BasicProfessional basicProfessional = basicProfessionalService.getById(obeCultureProgram.getProfessionalId());
-        Objects.requireNonNull(basicProfessional, "未找到专业信息");
-        Double expectValue = obeCourseWeightResult.getSubmitForm().get(0).getExpectValue();
+        ReportCourseBasicInfoDto reportCourseBasicInfoDtoBasic = trBasicInfoService.setBasicInfo(trBasicInfo, obeCourseOutline, markPaper, obeCourseWeightResult);
 
         TCPaperStruct tcPaperStruct = tcPaperStructService.queryPaperStruct(cultureProgramId, courseId, markPaper.getPaperNumber());
         //课程目标考核分布-题目信息
@@ -464,9 +439,9 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
             throw ExceptionResultEnum.ERROR.exception("未找到试卷蓝图信息");
         }
         if (Objects.isNull(trBasicInfo)) {
-            trBasicInfo = new TRBasicInfo(cultureProgramId, courseId, markPaper.getCourseCode(), markPaper.getCourseName(), markPaper.getPaperNumber(), basicSemester.getName(), teachingObject, teacher, null, userId, basicProfessional.getName(), Objects.nonNull(trBasicInfo) ? trBasicInfo.getFinishPoints() : null, Objects.nonNull(trBasicInfo) ? trBasicInfo.getRequirementPoints() : null, Objects.nonNull(trBasicInfo) ? trBasicInfo.getCourseSuggest() : null, Objects.nonNull(expectValue) ? new BigDecimal(expectValue) : null, Objects.nonNull(trBasicInfo) ? trBasicInfo.getCourseEnName() : null, tcPaperStruct.getExamId(), college);
+            trBasicInfo = new TRBasicInfo(cultureProgramId, courseId, markPaper.getCourseCode(), markPaper.getCourseName(), markPaper.getPaperNumber(), basicSemester.getName(), userId, Objects.nonNull(trBasicInfo) ? trBasicInfo.getFinishPoints() : null, Objects.nonNull(trBasicInfo) ? trBasicInfo.getRequirementPoints() : null, Objects.nonNull(trBasicInfo) ? trBasicInfo.getCourseSuggest() : null, Objects.nonNull(trBasicInfo) ? trBasicInfo.getCourseEnName() : null, tcPaperStruct.getExamId(), reportCourseBasicInfoDtoBasic);
         } else {
-            trBasicInfo.setBasicInfo(tcPaperStruct.getExamId(), markPaper.getCourseCode(), markPaper.getCourseName(), markPaper.getPaperNumber(), basicSemester.getName(), teachingObject, teacher, null, cultureProgramId, courseId, Objects.nonNull(expectValue) ? new BigDecimal(expectValue) : null, basicProfessional.getName(), trBasicInfo.getCourseEnName(), college, trBasicInfo.getFinishPoints(), trBasicInfo.getRequirementPoints(), trBasicInfo.getCourseSuggest());
+            trBasicInfo.setBasicInfo(tcPaperStruct.getExamId(), markPaper.getCourseCode(), markPaper.getCourseName(), markPaper.getPaperNumber(), basicSemester.getName(), cultureProgramId, courseId, trBasicInfo.getCourseEnName(), trBasicInfo.getFinishPoints(), trBasicInfo.getRequirementPoints(), trBasicInfo.getCourseSuggest(), reportCourseBasicInfoDtoBasic);
         }
         //课程基本情况
         ReportCourseBasicInfoDto reportCourseBasicInfoDto = new ReportCourseBasicInfoDto(trBasicInfo);
@@ -1141,6 +1116,45 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
         }
     }
 
+    /**
+     * 报表基础信息
+     *
+     * @param trBasicInfo
+     * @param obeCourseOutline
+     * @param markPaper
+     * @param obeCourseWeightResult
+     * @return
+     */
+    @Override
+    public ReportCourseBasicInfoDto setBasicInfo(TRBasicInfo trBasicInfo, ObeCourseOutline obeCourseOutline,
+                                                 MarkPaper markPaper, ObeCourseWeightResult obeCourseWeightResult) {
+        String college = null;
+        if (Objects.isNull(trBasicInfo) || Objects.isNull(trBasicInfo.getCollege())) {
+            BasicCourse basicCourse = basicCourseService.getById(obeCourseOutline.getCourseId());
+            Objects.requireNonNull(basicCourse, "科目信息为空");
+
+            if (Objects.nonNull(basicCourse.getTeachingRoomId())) {
+                SysOrg sysOrg = sysOrgService.getById(basicCourse.getTeachingRoomId());
+                if (Objects.nonNull(sysOrg)) {
+                    college = sysOrg.getName();
+                }
+            }
+        }
+
+        String teachingObject = Objects.nonNull(trBasicInfo) ? trBasicInfo.getTeachingObject() : null;
+        if (Objects.nonNull(markPaper.getPaperNumber())) {
+            ExamStudentDto examStudentDto = basicExamStudentService.queryExamStudent(markPaper.getExamId(), trBasicInfo.getCourseId(), markPaper.getPaperNumber());
+            teachingObject = Objects.nonNull(examStudentDto) ? examStudentDto.getClazzNames() : null;
+        }
+
+        ObeCultureProgram obeCultureProgram = obeCultureProgramService.getById(obeCourseOutline.getCultureProgramId());
+        Objects.requireNonNull(obeCultureProgram, "未找到培养方案信息");
+        BasicProfessional basicProfessional = basicProfessionalService.getById(obeCultureProgram.getProfessionalId());
+        Objects.requireNonNull(basicProfessional, "未找到专业信息");
+        Double expectValue = obeCourseWeightResult.getSubmitForm().get(0).getExpectValue();
+        return new ReportCourseBasicInfoDto(college, teachingObject, Objects.nonNull(expectValue) ? new BigDecimal(expectValue) : null, basicProfessional.getName());
+    }
+
     /**
      * 获取行样式
      *