Browse Source

测试报告

wangliang 1 năm trước cách đây
mục cha
commit
106366a353

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TCFinalScore.java

@@ -252,11 +252,11 @@ public class TCFinalScore implements Serializable {
             return false;
         }
         TCFinalScore that = (TCFinalScore) o;
-        return examId.equals(that.examId) && courseCode.equals(that.courseCode) && courseName.equals(that.courseName) && paperNumber.equals(that.paperNumber) && name.equals(that.name) && studentCode.equals(that.studentCode) && score.equals(that.score) && scoreDetail.equals(that.scoreDetail);
+        return examId.equals(that.examId) && courseCode.equals(that.courseCode) && courseName.equals(that.courseName) && paperNumber.equals(that.paperNumber) && name.equals(that.name) && studentCode.equals(that.studentCode) && score.equals(that.score) && scoreDetail.equals(that.scoreDetail) && enable.equals(that.enable);
     }
 
     @Override
     public int hashCode() {
-        return Objects.hash(examId, courseCode, courseName, paperNumber, name, studentCode, score, scoreDetail);
+        return Objects.hash(examId, courseCode, courseName, paperNumber, name, studentCode, score, scoreDetail, enable);
     }
 }

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TCUsualScore.java

@@ -210,11 +210,11 @@ public class TCUsualScore implements Serializable {
             return false;
         }
         TCUsualScore that = (TCUsualScore) o;
-        return examId.equals(that.examId) && courseCode.equals(that.courseCode) && courseName.equals(that.courseName) && paperNumber.equals(that.paperNumber) && name.equals(that.name) && studentCode.equals(that.studentCode) && score.equals(that.score);
+        return examId.equals(that.examId) && courseCode.equals(that.courseCode) && courseName.equals(that.courseName) && paperNumber.equals(that.paperNumber) && name.equals(that.name) && studentCode.equals(that.studentCode) && score.equals(that.score) && enable.equals(that.enable);
     }
 
     @Override
     public int hashCode() {
-        return Objects.hash(examId, courseCode, courseName, paperNumber, name, studentCode, score);
+        return Objects.hash(examId, courseCode, courseName, paperNumber, name, studentCode, score, enable);
     }
 }

+ 10 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TCFinalScoreService.java

@@ -96,4 +96,14 @@ public interface TCFinalScoreService extends IService<TCFinalScore> {
      * @return
      */
     public Boolean remove(Long examId, String courseCode, String paperNumber);
+
+    /**
+     * 根据考试id/课程编码/试卷编码查询数据库数据
+     *
+     * @param examId
+     * @param courseCode
+     * @param paperNumber
+     * @return
+     */
+    public List<TCFinalScore> queryDbSourceList(Long examId, String courseCode, String paperNumber);
 }

+ 11 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TCUsualScoreService.java

@@ -6,6 +6,7 @@ import com.qmth.distributed.print.business.entity.TCUsualScore;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -40,4 +41,14 @@ public interface TCUsualScoreService extends IService<TCUsualScore> {
      * @return
      */
     public IPage<TCUsualScore> usualScoreList(IPage<Map> iPage, Long examId, String courseCode, String paperNumber);
+
+    /**
+     * 根据考试id/课程编码/试卷编码查询数据库数据
+     *
+     * @param examId
+     * @param courseCode
+     * @param paperNumber
+     * @return
+     */
+    public List<TCUsualScore> queryDbSourceList(Long examId, String courseCode, String paperNumber);
 }

+ 31 - 9
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TCFinalScoreServiceImpl.java

@@ -29,18 +29,19 @@ import com.qmth.teachcloud.mark.dto.mark.ScoreItem;
 import com.qmth.teachcloud.mark.entity.MarkPaper;
 import com.qmth.teachcloud.mark.service.MarkPaperService;
 import com.qmth.teachcloud.mark.service.MarkStudentService;
+import org.apache.commons.collections4.CollectionUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.dao.DuplicateKeyException;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -153,10 +154,13 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
                 }
                 if (!CollectionUtils.isEmpty(tcFinalScoreList)) {
                     successData.add("共导入" + tcFinalScoreList.size() + "条数据");
-                    tcFinalScoreService.remove(examId, courseCode, paperNumber);
-                    tcFinalScoreService.saveBatch(tcFinalScoreList);
-                    trExamStudentService.remove(examId, courseCode, paperNumber);
-                    trBasicInfoService.remove(examId, courseCode, paperNumber);
+                    List<TCFinalScore> tcFinalScoreDbSourceList = tcFinalScoreService.queryDbSourceList(examId, courseCode, paperNumber);
+                    if (CollectionUtils.isEmpty(tcFinalScoreDbSourceList) || !CollectionUtils.isEqualCollection(tcFinalScoreDbSourceList, tcFinalScoreList)) {
+                        tcFinalScoreService.removeByIds(tcFinalScoreDbSourceList.stream().map(s -> s.getId()).collect(Collectors.toList()));
+                        tcFinalScoreService.saveBatch(tcFinalScoreList);
+                        trExamStudentService.remove(examId, courseCode, paperNumber);
+                        trBasicInfoService.remove(examId, courseCode, paperNumber);
+                    }
                 }
             }
             messageMap.put(SystemConstant.SUCCESS, successData.length() > 0 ? successData.toString() : "无");
@@ -272,10 +276,13 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
                 }
                 if (!CollectionUtils.isEmpty(tcFinalScoreList)) {
                     successData.add("共同步" + tcFinalScoreList.size() + "条数据");
-                    tcFinalScoreService.remove(examId, courseCode, paperNumber);
-                    tcFinalScoreService.saveBatch(tcFinalScoreList);
-                    trExamStudentService.remove(examId, courseCode, paperNumber);
-                    trBasicInfoService.remove(examId, courseCode, paperNumber);
+                    List<TCFinalScore> tcFinalScoreDbSourceList = tcFinalScoreService.queryDbSourceList(examId, courseCode, paperNumber);
+                    if (CollectionUtils.isEmpty(tcFinalScoreDbSourceList) || !CollectionUtils.isEqualCollection(tcFinalScoreDbSourceList, tcFinalScoreList)) {
+                        tcFinalScoreService.removeByIds(tcFinalScoreDbSourceList.stream().map(s -> s.getId()).collect(Collectors.toList()));
+                        tcFinalScoreService.saveBatch(tcFinalScoreList);
+                        trExamStudentService.remove(examId, courseCode, paperNumber);
+                        trBasicInfoService.remove(examId, courseCode, paperNumber);
+                    }
                 }
             }
             messageMap.put(SystemConstant.SUCCESS, successData.length() > 0 ? successData.toString() : "无");
@@ -310,4 +317,19 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
                 .eq(TCFinalScore::getCourseCode, courseCode)
                 .eq(TCFinalScore::getPaperNumber, paperNumber));
     }
+
+    /**
+     * 根据考试id/课程编码/试卷编码查询数据库数据
+     *
+     * @param examId
+     * @param courseCode
+     * @param paperNumber
+     * @return
+     */
+    @Override
+    public List<TCFinalScore> queryDbSourceList(Long examId, String courseCode, String paperNumber) {
+        return tcFinalScoreService.list(new QueryWrapper<TCFinalScore>().lambda().eq(TCFinalScore::getExamId, examId)
+                .eq(TCFinalScore::getCourseCode, courseCode)
+                .eq(TCFinalScore::getPaperNumber, paperNumber));
+    }
 }

+ 24 - 8
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TCUsualScoreServiceImpl.java

@@ -22,17 +22,18 @@ import com.qmth.teachcloud.common.util.JacksonUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.mark.entity.MarkPaper;
+import org.apache.commons.collections4.CollectionUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.dao.DuplicateKeyException;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import java.io.IOException;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -131,13 +132,13 @@ public class TCUsualScoreServiceImpl extends ServiceImpl<TCUsualScoreMapper, TCU
                 }
                 if (!CollectionUtils.isEmpty(tcUsualScoreList)) {
                     successData.add("共导入" + tcUsualScoreList.size() + "条数据");
-                    tcUsualScoreService.remove(new QueryWrapper<TCUsualScore>().lambda().eq(TCUsualScore::getExamId, examId)
-                            .eq(TCUsualScore::getCourseCode, courseCode)
-                            .eq(TCUsualScore::getCourseName, markPaper.getCourseName())
-                            .eq(TCUsualScore::getPaperNumber, paperNumber));
-                    tcUsualScoreService.saveBatch(tcUsualScoreList);
-                    trExamStudentService.remove(examId, courseCode, paperNumber);
-                    trBasicInfoService.remove(examId, courseCode, paperNumber);
+                    List<TCUsualScore> tcUsualScoreDbSourceList = tcUsualScoreService.queryDbSourceList(examId, courseCode, paperNumber);
+                    if (CollectionUtils.isEmpty(tcUsualScoreDbSourceList) || !CollectionUtils.isEqualCollection(tcUsualScoreDbSourceList, tcUsualScoreList)) {
+                        tcUsualScoreService.removeByIds(tcUsualScoreDbSourceList.stream().map(s -> s.getId()).collect(Collectors.toList()));
+                        tcUsualScoreService.saveBatch(tcUsualScoreList);
+                        trExamStudentService.remove(examId, courseCode, paperNumber);
+                        trBasicInfoService.remove(examId, courseCode, paperNumber);
+                    }
                 }
             }
             messageMap.put(SystemConstant.SUCCESS, successData.length() > 0 ? successData.toString() : "无");
@@ -173,4 +174,19 @@ public class TCUsualScoreServiceImpl extends ServiceImpl<TCUsualScoreMapper, TCU
     public IPage<TCUsualScore> usualScoreList(IPage<Map> iPage, Long examId, String courseCode, String paperNumber) {
         return this.baseMapper.usualScoreList(iPage, examId, courseCode, paperNumber);
     }
+
+    /**
+     * 根据考试id/课程编码/试卷编码查询数据库数据
+     *
+     * @param examId
+     * @param courseCode
+     * @param paperNumber
+     * @return
+     */
+    @Override
+    public List<TCUsualScore> queryDbSourceList(Long examId, String courseCode, String paperNumber) {
+        return tcUsualScoreService.list(new QueryWrapper<TCUsualScore>().lambda().eq(TCUsualScore::getExamId, examId)
+                .eq(TCUsualScore::getCourseCode, courseCode)
+                .eq(TCUsualScore::getPaperNumber, paperNumber));
+    }
 }

+ 14 - 6
distributed-print/src/main/java/com/qmth/distributed/print/api/TCFinalScoreController.java

@@ -213,12 +213,20 @@ public class TCFinalScoreController {
     @Transactional
     public Object finalScoreEnable(@ApiParam(value = "主键", required = true) @RequestParam Long id,
                                    @ApiParam(value = "启用/禁用", required = true) @RequestParam Boolean enable) throws IOException {
-        TCFinalScore tcFinalScore = tcFinalScoreService.getById(id);
-        Objects.requireNonNull(tcFinalScore, "未找到期末成绩信息");
-        tcFinalScore.setEnable(enable);
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        tcFinalScore.updateInfo(sysUser.getId());
-        return ResultUtil.ok(tcFinalScoreService.updateById(tcFinalScore));
+        TCFinalScore tcFinalScoreDb = tcFinalScoreService.getById(id);
+        Objects.requireNonNull(tcFinalScoreDb, "未找到期末成绩信息");
+
+        TCFinalScore tcFinalScoreSource = new TCFinalScore();
+        BeanUtils.copyProperties(tcFinalScoreDb, tcFinalScoreSource);
+        tcFinalScoreDb.setEnable(enable);
+        if (!tcFinalScoreSource.equals(tcFinalScoreDb)) {
+            SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+            tcFinalScoreDb.updateInfo(sysUser.getId());
+            trExamStudentService.remove(tcFinalScoreDb.getExamId(), tcFinalScoreDb.getCourseCode(), tcFinalScoreDb.getPaperNumber());
+            trBasicInfoService.remove(tcFinalScoreDb.getExamId(), tcFinalScoreDb.getCourseCode(), tcFinalScoreDb.getPaperNumber());
+            tcFinalScoreService.updateById(tcFinalScoreDb);
+        }
+        return ResultUtil.ok(true);
     }
 
     @ApiOperation(value = "期末成绩试卷蓝图保存")

+ 15 - 6
distributed-print/src/main/java/com/qmth/distributed/print/api/TCUsualScoreController.java

@@ -7,6 +7,7 @@ import com.qmth.distributed.print.business.bean.dto.CourseWeightDto;
 import com.qmth.distributed.print.business.bean.excel.ExcelField;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.bean.result.ScoreResult;
+import com.qmth.distributed.print.business.entity.TCFinalScore;
 import com.qmth.distributed.print.business.entity.TCUsualScore;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.teachcloud.common.annotation.OperationLogDetail;
@@ -170,11 +171,19 @@ public class TCUsualScoreController {
     @Transactional
     public Object usualScoreEnable(@ApiParam(value = "主键", required = true) @RequestParam Long id,
                                    @ApiParam(value = "启用/禁用", required = true) @RequestParam Boolean enable) throws IOException {
-        TCUsualScore tcUsualScore = tcUsualScoreService.getById(id);
-        Objects.requireNonNull(tcUsualScore, "未找到平时成绩信息");
-        tcUsualScore.setEnable(enable);
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        tcUsualScore.updateInfo(sysUser.getId());
-        return ResultUtil.ok(tcUsualScoreService.updateById(tcUsualScore));
+        TCUsualScore tcUsualScoreDb = tcUsualScoreService.getById(id);
+        Objects.requireNonNull(tcUsualScoreDb, "未找到平时成绩信息");
+
+        TCUsualScore tcUsualScoreSource = new TCUsualScore();
+        BeanUtils.copyProperties(tcUsualScoreDb, tcUsualScoreSource);
+        tcUsualScoreDb.setEnable(enable);
+        if (!tcUsualScoreSource.equals(tcUsualScoreDb)) {
+            SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+            tcUsualScoreDb.updateInfo(sysUser.getId());
+            trExamStudentService.remove(tcUsualScoreDb.getExamId(), tcUsualScoreDb.getCourseCode(), tcUsualScoreDb.getPaperNumber());
+            trBasicInfoService.remove(tcUsualScoreDb.getExamId(), tcUsualScoreDb.getCourseCode(), tcUsualScoreDb.getPaperNumber());
+            tcUsualScoreService.updateById(tcUsualScoreDb);
+        }
+        return ResultUtil.ok(true);
     }
 }