wangliang 7 mēneši atpakaļ
vecāks
revīzija
a3495abb13

+ 14 - 1
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/TCFinalScoreService.java

@@ -111,6 +111,18 @@ public interface TCFinalScoreService extends IService<TCFinalScore> {
      */
     public Boolean remove(Long cultureProgramId, Long courseId, String paperNumber, Long examId);
 
+    /**
+     * 根据考试id/课程编码/试卷编码删除数据
+     *
+     * @param cultureProgramId
+     * @param courseId
+     * @param paperNumber
+     * @param examId
+     * @param userId
+     * @return
+     */
+    public Boolean remove(Long cultureProgramId, Long courseId, String paperNumber, Long examId, Long userId);
+
     /**
      * 根据考试id/课程编码/试卷编码查询数据库数据
      *
@@ -129,9 +141,10 @@ public interface TCFinalScoreService extends IService<TCFinalScore> {
      * @param courseId
      * @param paperNumber
      * @param examId
+     * @param userId
      * @return
      */
-    public List<TCFinalScore> queryFinalScoreNotEq(Long cultureProgramId, Long courseId, String paperNumber, Long examId);
+    public List<TCFinalScore> queryFinalScoreNotEq(Long cultureProgramId, Long courseId, String paperNumber, Long examId, Long userId);
 
     /**
      * 获取期末考试同步锁

+ 12 - 0
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/TCUsualScoreService.java

@@ -76,6 +76,18 @@ public interface TCUsualScoreService extends IService<TCUsualScore> {
      */
     public Boolean remove(Long cultureProgramId, Long courseId, String paperNumber, Long examId);
 
+    /**
+     * 根据考试id/课程编码/试卷编码删除数据
+     *
+     * @param cultureProgramId
+     * @param courseId
+     * @param paperNumber
+     * @param examId
+     * @param userId
+     * @return
+     */
+    public Boolean remove(Long cultureProgramId, Long courseId, String paperNumber, Long examId, Long userId);
+
     /**
      * 更新成绩数据
      *

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

@@ -157,6 +157,18 @@ public interface TRBasicInfoService extends IService<TRBasicInfo> {
      */
     public Boolean remove(Long cultureProgramId, Long courseId, String paperNumber, Long examId);
 
+    /**
+     * 根据考试id/课程编码/试卷编码删除数据
+     *
+     * @param cultureProgramId
+     * @param courseId
+     * @param paperNumber
+     * @param examId
+     * @param userId
+     * @return
+     */
+    public Boolean remove(Long cultureProgramId, Long courseId, String paperNumber, Long examId, Long userId);
+
     /**
      * 查找课程评价值
      *
@@ -185,6 +197,18 @@ public interface TRBasicInfoService extends IService<TRBasicInfo> {
      */
     public void clearReportData(Long cultureProgramId, Long courseId, String paperNumber, Long examId, boolean clearDimension);
 
+    /**
+     * 清除报告数据
+     *
+     * @param cultureProgramId
+     * @param courseId
+     * @param paperNumber
+     * @param clearDimension
+     * @param examId
+     * @param userId
+     */
+    public void clearReportData(Long cultureProgramId, Long courseId, String paperNumber, Long examId, boolean clearDimension, Long userId);
+
     /**
      * 报表基础信息
      *

+ 41 - 8
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/impl/TCFinalScoreServiceImpl.java

@@ -438,12 +438,12 @@ 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)) {
+                List<TCFinalScore> tcFinalScoreNotEqList = tcFinalScoreService.queryFinalScoreNotEq(cultureProgramId, courseId, paperNumber, examId, tcFinalScoreList.get(0).getCreateId());
+                if (!CollectionUtils.isEmpty(tcFinalScoreNotEqList) && !CollectionUtils.isEmpty(tcFinalScoreList)) {
                     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);
+                        tcUsualScoreService.remove(t.getCultureProgramId(), t.getCourseId(), t.getPaperNumber(), t.getExamId(), tcFinalScoreList.get(0).getCreateId());
+                        tcFinalScoreService.remove(t.getCultureProgramId(), t.getCourseId(), t.getPaperNumber(), t.getExamId(), tcFinalScoreList.get(0).getCreateId());
+                        trBasicInfoService.clearReportData(t.getCultureProgramId(), t.getCourseId(), t.getPaperNumber(), t.getExamId(), true, tcFinalScoreList.get(0).getCreateId());
                     }
                 }
             }
@@ -476,6 +476,36 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
     @Override
     @Transactional
     public Boolean remove(Long cultureProgramId, Long courseId, String paperNumber, Long examId) {
+        return tcFinalScoreService.remove(this.commonQueryWrapper(cultureProgramId, courseId, paperNumber, examId));
+    }
+
+    /**
+     * @param cultureProgramId
+     * @param courseId
+     * @param paperNumber
+     * @param examId
+     * @param userId
+     * @return
+     */
+    @Override
+    @Transactional
+    public Boolean remove(Long cultureProgramId, Long courseId, String paperNumber, Long examId, Long userId) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        QueryWrapper<TCFinalScore> queryWrapper = this.commonQueryWrapper(cultureProgramId, courseId, paperNumber, examId);
+        queryWrapper.lambda().eq(TCFinalScore::getCreateId, sysUser.getId());
+        return tcFinalScoreService.remove(queryWrapper);
+    }
+
+    /**
+     * 共用查询
+     *
+     * @param cultureProgramId
+     * @param courseId
+     * @param paperNumber
+     * @param examId
+     * @return
+     */
+    protected QueryWrapper<TCFinalScore> commonQueryWrapper(Long cultureProgramId, Long courseId, String paperNumber, Long examId) {
         QueryWrapper<TCFinalScore> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(TCFinalScore::getCultureProgramId, cultureProgramId)
                 .eq(TCFinalScore::getCourseId, courseId);
@@ -485,7 +515,7 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
         if (Objects.nonNull(examId)) {
             queryWrapper.lambda().eq(TCFinalScore::getExamId, examId);
         }
-        return tcFinalScoreService.remove(queryWrapper);
+        return queryWrapper;
     }
 
     /**
@@ -511,13 +541,16 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
      * @param courseId
      * @param paperNumber
      * @param examId
+     * @param userId
      * @return
      */
     @Override
-    public List<TCFinalScore> queryFinalScoreNotEq(Long cultureProgramId, Long courseId, String paperNumber, Long examId) {
+    public List<TCFinalScore> queryFinalScoreNotEq(Long cultureProgramId, Long courseId, String paperNumber, Long examId, Long userId) {
         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);
+        queryWrapper.lambda().eq(TCFinalScore::getCultureProgramId, cultureProgramId)
+                .eq(TCFinalScore::getCourseId, courseId)
+                .eq(TCFinalScore::getCreateId, userId);
         if (Objects.nonNull(paperNumber)) {
             queryWrapper.lambda().and(w -> w.ne(TCFinalScore::getPaperNumber, paperNumber).or().isNull(TCFinalScore::getPaperNumber));
         }

+ 34 - 1
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/impl/TCUsualScoreServiceImpl.java

@@ -275,7 +275,40 @@ public class TCUsualScoreServiceImpl extends ServiceImpl<TCUsualScoreMapper, TCU
      * @return
      */
     @Override
+    @Transactional
     public Boolean remove(Long cultureProgramId, Long courseId, String paperNumber, Long examId) {
+        return tcUsualScoreService.remove(this.commonQueryWrapper(cultureProgramId, courseId, paperNumber, examId));
+    }
+
+    /**
+     * 根据考试id/课程编码/试卷编码删除数据
+     *
+     * @param cultureProgramId
+     * @param courseId
+     * @param paperNumber
+     * @param examId
+     * @param userId
+     * @return
+     */
+    @Override
+    @Transactional
+    public Boolean remove(Long cultureProgramId, Long courseId, String paperNumber, Long examId, Long userId) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        QueryWrapper<TCUsualScore> queryWrapper = this.commonQueryWrapper(cultureProgramId, courseId, paperNumber, examId);
+        queryWrapper.lambda().eq(TCUsualScore::getCreateId, sysUser.getId());
+        return tcUsualScoreService.remove(queryWrapper);
+    }
+
+    /**
+     * 共用查询
+     *
+     * @param cultureProgramId
+     * @param courseId
+     * @param paperNumber
+     * @param examId
+     * @return
+     */
+    protected QueryWrapper<TCUsualScore> commonQueryWrapper(Long cultureProgramId, Long courseId, String paperNumber, Long examId) {
         QueryWrapper<TCUsualScore> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(TCUsualScore::getCultureProgramId, cultureProgramId)
                 .eq(TCUsualScore::getCourseId, courseId);
@@ -285,7 +318,7 @@ public class TCUsualScoreServiceImpl extends ServiceImpl<TCUsualScoreMapper, TCU
         if (Objects.nonNull(examId)) {
             queryWrapper.lambda().eq(TCUsualScore::getExamId, examId);
         }
-        return tcUsualScoreService.remove(queryWrapper);
+        return queryWrapper;
     }
 
     /**

+ 58 - 1
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/impl/TRBasicInfoServiceImpl.java

@@ -881,6 +881,38 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
     @Override
     @Transactional
     public Boolean remove(Long cultureProgramId, Long courseId, String paperNumber, Long examId) {
+        return trBasicInfoService.remove(this.commonQueryWrapper(cultureProgramId, courseId, paperNumber, examId));
+    }
+
+    /**
+     * 删除报表数据
+     *
+     * @param cultureProgramId
+     * @param courseId
+     * @param paperNumber
+     * @param examId
+     * @param userId
+     * @return
+     */
+    @Override
+    @Transactional
+    public Boolean remove(Long cultureProgramId, Long courseId, String paperNumber, Long examId, Long userId) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        QueryWrapper<TRBasicInfo> queryWrapper = this.commonQueryWrapper(cultureProgramId, courseId, paperNumber, examId);
+        queryWrapper.lambda().eq(TRBasicInfo::getCreateId, sysUser.getId());
+        return trBasicInfoService.remove(queryWrapper);
+    }
+
+    /**
+     * 共用查询
+     *
+     * @param cultureProgramId
+     * @param courseId
+     * @param paperNumber
+     * @param examId
+     * @return
+     */
+    protected QueryWrapper<TRBasicInfo> commonQueryWrapper(Long cultureProgramId, Long courseId, String paperNumber, Long examId) {
         QueryWrapper<TRBasicInfo> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(TRBasicInfo::getCultureProgramId, cultureProgramId)
                 .eq(TRBasicInfo::getCourseId, courseId);
@@ -890,7 +922,7 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
         if (Objects.nonNull(examId)) {
             queryWrapper.lambda().eq(TRBasicInfo::getExamId, examId);
         }
-        return trBasicInfoService.remove(queryWrapper);
+        return queryWrapper;
     }
 
     /**
@@ -977,6 +1009,31 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
         }
     }
 
+    /**
+     * 清除报表
+     *
+     * @param cultureProgramId
+     * @param courseId
+     * @param paperNumber
+     * @param examId
+     * @param clearDimension
+     * @param userId
+     */
+    @Override
+    public void clearReportData(Long cultureProgramId, Long courseId, String paperNumber, Long examId, boolean clearDimension, Long userId) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        trExamStudentService.remove(cultureProgramId, courseId, paperNumber, examId);
+        trBasicInfoService.remove(cultureProgramId, courseId, paperNumber, examId, sysUser.getId());
+        if (clearDimension) {
+            TCPaperStruct tcPaperStruct = tcPaperStructService.queryPaperStruct(cultureProgramId, courseId, paperNumber, examId);
+            if (Objects.nonNull(tcPaperStruct)) {
+//                tcPaperStruct.setPaperStructDimension(null);
+                tcPaperStruct.updateInfo(sysUser.getId());
+                tcPaperStructService.updateById(tcPaperStruct);
+            }
+        }
+    }
+
     /**
      * 报表基础信息
      *