wangliang преди 7 месеца
родител
ревизия
4d5a850e1b

+ 4 - 2
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/entity/TCFinalScore.java

@@ -89,7 +89,8 @@ public class TCFinalScore extends BaseEntity implements Serializable {
     }
 
     public TCFinalScore(MarkStudentScoreVo markStudentScoreVo, String scoreDetail, SourceEnum source, Long userId, Long cultureProgramId, Long courseId) {
-        insertInfo(Objects.nonNull(markStudentScoreVo.getTeacherId()) ? markStudentScoreVo.getTeacherId() : userId);
+//        insertInfo(Objects.nonNull(markStudentScoreVo.getTeacherId()) ? markStudentScoreVo.getTeacherId() : userId);
+        insertInfo(userId);
         this.examId = markStudentScoreVo.getExamId();
         this.courseCode = markStudentScoreVo.getCourseCode();
         this.courseName = markStudentScoreVo.getCourseName();
@@ -106,7 +107,8 @@ public class TCFinalScore extends BaseEntity implements Serializable {
     }
 
     public TCFinalScore(BasicExamStudent basicExamStudent, BasicCourse basicCourse, SourceEnum source, Long userId, Long cultureProgramId, Long courseId) {
-        insertInfo(Objects.nonNull(basicExamStudent.getTeacherId()) ? basicExamStudent.getTeacherId() : userId);
+//        insertInfo(Objects.nonNull(basicExamStudent.getTeacherId()) ? basicExamStudent.getTeacherId() : userId);
+        insertInfo(userId);
         this.examId = basicExamStudent.getExamId();
         this.courseCode = basicCourse.getCode();
         this.courseName = basicCourse.getName();

+ 4 - 2
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/entity/TCUsualScore.java

@@ -85,7 +85,8 @@ public class TCUsualScore extends BaseEntity implements Serializable {
     }
 
     public TCUsualScore(MarkStudentScoreVo markStudentScoreVo, SourceEnum source, Long userId, Long cultureProgramId, Long courseId) {
-        insertInfo(Objects.nonNull(markStudentScoreVo.getTeacherId()) ? markStudentScoreVo.getTeacherId() : userId);
+//        insertInfo(Objects.nonNull(markStudentScoreVo.getTeacherId()) ? markStudentScoreVo.getTeacherId() : userId);
+        insertInfo(userId);
         this.examId = markStudentScoreVo.getExamId();
         this.courseCode = markStudentScoreVo.getCourseCode();
         this.courseName = markStudentScoreVo.getCourseName();
@@ -100,7 +101,8 @@ public class TCUsualScore extends BaseEntity implements Serializable {
     }
 
     public TCUsualScore(BasicExamStudent basicExamStudent, BasicCourse basicCourse, SourceEnum source, Long userId, Long cultureProgramId, Long courseId) {
-        insertInfo(Objects.nonNull(basicExamStudent.getTeacherId()) ? basicExamStudent.getTeacherId() : userId);
+//        insertInfo(Objects.nonNull(basicExamStudent.getTeacherId()) ? basicExamStudent.getTeacherId() : userId);
+        insertInfo(userId);
         this.examId = basicExamStudent.getExamId();
         this.courseCode = basicCourse.getCode();
         this.courseName = basicCourse.getName();

+ 11 - 0
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/TCFinalScoreService.java

@@ -122,6 +122,17 @@ public interface TCFinalScoreService extends IService<TCFinalScore> {
      */
     public List<TCFinalScore> queryFinalScore(Long cultureProgramId, Long courseId, String paperNumber, Long examId);
 
+    /**
+     * 根据考试id/课程编码/试卷编码查询数据库数据
+     *
+     * @param cultureProgramId
+     * @param courseId
+     * @param paperNumber
+     * @param examId
+     * @return
+     */
+    public List<TCFinalScore> queryFinalScoreNotEq(Long cultureProgramId, Long courseId, String paperNumber, Long examId);
+
     /**
      * 获取期末考试同步锁
      *

+ 36 - 1
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/impl/TCFinalScoreServiceImpl.java

@@ -394,7 +394,11 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
                     }
                     paperStructDimensionResultList = SDFrame.read(paperStructDimensionResultList).sortDesc(Sorter.sortDescBy(PaperStructDimensionResult::getMainNumber).sortDesc(PaperStructDimensionResult::getMainNumber)).toLists();
                     TCPaperStruct tcPaperStruct = new TCPaperStruct(cultureProgramId, courseId, basicCourse.getCode(), basicCourse.getName(), paperNumber, JacksonUtil.parseJson(paperStructDimensionResultList),
-                            sysUser.getId(), examId, Objects.nonNull(tcPaperStructDb) ? tcPaperStructDb.getPaperStructDimension() : null);
+                            sysUser.getId(), examId, Objects.nonNull(tcPaperStructDb)
+                            && Objects.nonNull(cultureProgramId) && Objects.nonNull(tcPaperStructDb.getCultureProgramId()) && cultureProgramId.longValue() == tcPaperStructDb.getCultureProgramId().longValue()
+                            && Objects.nonNull(courseId) && Objects.nonNull(tcPaperStructDb.getCourseId()) && courseId.longValue() == tcPaperStructDb.getCourseId().longValue()
+                            && Objects.nonNull(paperNumber) && Objects.nonNull(tcPaperStructDb.getPaperNumber()) && Objects.equals(paperNumber, tcPaperStructDb.getPaperNumber())
+                            && Objects.nonNull(examId) && Objects.nonNull(tcPaperStructDb.getExamId()) && examId.longValue() == tcPaperStructDb.getExamId().longValue() ? tcPaperStructDb.getPaperStructDimension() : null);
                     tcPaperStructService.saveOrUpdate(tcPaperStruct);
                 }
             } else {
@@ -434,6 +438,14 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
                 if (clearReport) {
                     trBasicInfoService.clearReportData(cultureProgramId, courseId, paperNumber, examId, true);
                 }
+                List<TCFinalScore> tcFinalScoreNotEqList = tcFinalScoreService.queryFinalScoreNotEq(cultureProgramId, courseId, paperNumber, examId);
+                if (!CollectionUtils.isEmpty(tcFinalScoreNotEqList)) {
+                    for (TCFinalScore t : tcFinalScoreNotEqList) {
+                        tcUsualScoreService.remove(t.getCultureProgramId(), t.getCourseId(), t.getPaperNumber(), t.getExamId());
+                        tcFinalScoreService.remove(t.getCultureProgramId(), t.getCourseId(), t.getPaperNumber(), t.getExamId());
+                        trBasicInfoService.clearReportData(t.getCultureProgramId(), t.getCourseId(), t.getPaperNumber(), t.getExamId(), true);
+                    }
+                }
             }
             messageMap.put(SystemConstant.SUCCESS, successData.length() > 0 ? successData.toString() : "无");
             messageMap.put(SystemConstant.EXCEL_ERROR, errorData.length() > 0 ? errorData.toString() : "无");
@@ -492,6 +504,29 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
         return this.baseMapper.queryFinalScore(cultureProgramId, courseId, paperNumber, examId, dpr);
     }
 
+    /**
+     * 根据考试id/课程编码/试卷编码查询数据库数据
+     *
+     * @param cultureProgramId
+     * @param courseId
+     * @param paperNumber
+     * @param examId
+     * @return
+     */
+    @Override
+    public List<TCFinalScore> queryFinalScoreNotEq(Long cultureProgramId, Long courseId, String paperNumber, Long examId) {
+        QueryWrapper<TCFinalScore> queryWrapper = new QueryWrapper<>();
+        queryWrapper.select(" distinct culture_program_id as cultureProgramId,course_id as courseId,exam_id as examId,paper_number as paperNumber");
+        queryWrapper.lambda().eq(TCFinalScore::getCultureProgramId, cultureProgramId).eq(TCFinalScore::getCourseId, courseId);
+        if (Objects.nonNull(paperNumber)) {
+            queryWrapper.lambda().and(w -> w.ne(TCFinalScore::getPaperNumber, paperNumber).or().isNull(TCFinalScore::getPaperNumber));
+        }
+        if (Objects.nonNull(examId)) {
+            queryWrapper.lambda().eq(TCFinalScore::getExamId, examId);
+        }
+        return tcFinalScoreService.list(queryWrapper);
+    }
+
     /**
      * 获取期末考试同步锁
      *

+ 1 - 1
teachcloud-obe/src/main/resources/mapper/TCUsualScoreMapper.xml

@@ -16,7 +16,7 @@
         su.id AS userId,
         su.real_name AS userName,
         su.login_name AS userLoginName,
-        oco.create_time,
+        oco.create_time as createTime,
         tcfs.exam_id as examId,
         tcfs.paper_number as paperNumber
         FROM