Просмотр исходного кода

线上版本-20201111-打回次数统计不对

xiaof 4 лет назад
Родитель
Сommit
2abafd24f1

+ 2 - 2
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/domain/MarkLog.java

@@ -82,7 +82,7 @@ public class MarkLog implements Serializable {
 
     public MarkLog(Long createUserId, String createUserName, Role createRole,
                    Subject subject, String examNumber, String studentName,
-                   Integer operType, Long workId, Long paperId, MarkStage stage, String operDataBefore, String operDataAfter, String remark, String workName) {
+                   Integer operType, Long workId, Long paperId, MarkStage stage, String operDataBefore, String operDataAfter, String remark, String workName, Date date) {
         this.createUserId = createUserId;
         this.createUserName = createUserName;
         this.createRole = createRole.getName();
@@ -97,7 +97,7 @@ public class MarkLog implements Serializable {
         this.operDataBefore = operDataBefore;
         this.remark = remark;
         this.workName = workName;
-        this.createTime = new Date();
+        this.createTime = date;
     }
 
     public static long getSerialVersionUID() {

+ 2 - 2
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/MarkLogRepo.java

@@ -44,6 +44,6 @@ public interface MarkLogRepo extends JpaRepository<MarkLog, Long>, JpaSpecificat
 
     Page<Map> findByIdIn(List<Long> longs, Pageable pageable);
 
-    @Query("select count(s) from MarkLog s where s.workId = ?1 and s.paperId = ?2 and (s.operType = ?3 or s.operType = ?4)")
-    int countByWorkIdAndPaperIdAndOperType(Long workId, Long id, int id1, int id2);
+    @Query("select count(distinct s.createTime) from MarkLog s where s.workId = ?1 and s.paperId = ?2 and s.operType = ?3")
+    int countByWorkIdAndPaperIdAndOperType(Long workId, Long id, int id1);
 }

+ 5 - 3
stmms-ms-log/src/main/java/cn/com/qmth/stmms/ms/log/aop/MarkLogAop.java

@@ -129,6 +129,7 @@ public class MarkLogAop {
         String paperIds = (String) jsonObjectResult.get("paperIds");
         if (paperIds.length() > 0) {
             String[] ids = paperIds.split(",");
+            Date date = new Date();
             for (String id : ids) {
                 Paper paper = paperRepo.findOne(Long.valueOf(id));
 
@@ -164,7 +165,7 @@ public class MarkLogAop {
                     operResult = originLevel;
                 }
                 Work work = workRepo.findOne(paper.getWorkId());
-                MarkLog markLog = new MarkLog(markUser.getId(), markUser.getName(), markUser.getRole(), markUser.getSubject(), paper.getExamNumber(), paper.getStudentName(), operType, paper.getWorkId(), paper.getId(), MarkStage.LEVEL, operResult, String.valueOf(jsonObjectResult.get(LEVEL)), null, work.getName());
+                MarkLog markLog = new MarkLog(markUser.getId(), markUser.getName(), markUser.getRole(), markUser.getSubject(), paper.getExamNumber(), paper.getStudentName(), operType, paper.getWorkId(), paper.getId(), MarkStage.LEVEL, operResult, String.valueOf(jsonObjectResult.get(LEVEL)), null, work.getName(), date);
                 LOGGER.info("markLog:{}", JSONObject.toJSONString(markLog));
                 //标准卷设置、定档设置、档位打回end
                 markLogRepo.save(markLog);
@@ -245,7 +246,7 @@ public class MarkLogAop {
             }
         }
         Work work = workRepo.findOne(paper.getWorkId());
-        MarkLog markLog = new MarkLog(markUser.getId(), markUser.getName(), markUser.getRole(), markUser.getSubject(), paper.getExamNumber(), paper.getStudentName(), operType, paper.getWorkId(), paper.getId(), markStage, operResult, String.valueOf(jsonObjectResult.get(RESULT)), null, work.getName());
+        MarkLog markLog = new MarkLog(markUser.getId(), markUser.getName(), markUser.getRole(), markUser.getSubject(), paper.getExamNumber(), paper.getStudentName(), operType, paper.getWorkId(), paper.getId(), markStage, operResult, String.valueOf(jsonObjectResult.get(RESULT)), null, work.getName(), new Date());
         LOGGER.info("markLog:{}", JSONObject.toJSONString(markLog));
         //分档、打分、回评档位、回评分数、档位打回、档位打回回评end
         markLogRepo.save(markLog);
@@ -293,6 +294,7 @@ public class MarkLogAop {
                 if (Objects.nonNull(list) && list.size() > 0 && markTasks.size() != list.size()) {
                     paper.reject(null);
                     List<MarkLog> markLogList = new ArrayList<>();
+                    Date date = new Date();
                     for (ArbitrateCallback.Distance d : list) {
                         for (MarkTask m : markTasks) {
                             if (Objects.equals(String.valueOf(d.getC()), m.getResult()) && d.getMarkId().longValue() == m.getMarkerId().longValue()) {
@@ -304,7 +306,7 @@ public class MarkLogAop {
                                     operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
                                 }
                                 //加入打回日志
-                                MarkLog markLog = new MarkLog(m.getMarkerId(), m.getMarkerName(), Role.MARKER, m.getSubject(), paper.getExamNumber(), paper.getStudentName(), MarkLogOperType.SYSTEM_CALLBACK_LEVEl.getId(), paper.getWorkId(), paper.getId(), m.getStage(), operResult, String.valueOf(d.getC()), MarkLogOperType.SYSTEM_CALLBACK_LEVEl.getName(), workName);
+                                MarkLog markLog = new MarkLog(m.getMarkerId(), m.getMarkerName(), Role.MARKER, m.getSubject(), paper.getExamNumber(), paper.getStudentName(), MarkLogOperType.SYSTEM_CALLBACK_LEVEl.getId(), paper.getWorkId(), paper.getId(), m.getStage(), operResult, String.valueOf(d.getC()), MarkLogOperType.SYSTEM_CALLBACK_LEVEl.getName(), workName, date);
                                 markLogList.add(markLog);
                             }
                         }

+ 2 - 2
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/ChangeLevelApi.java

@@ -202,7 +202,7 @@ public class ChangeLevelApi {
 
         //记录日志
         Work work = workRepo.findOne(paper.getWorkId());
-        MarkLog markLog = new MarkLog(markUser.getId(), markUser.getName(), markUser.getRole(), markUser.getSubject(), paper.getExamNumber(), paper.getStudentName(), MarkLogOperType.CHANGE_LEVEL_APPLY.getId(), paper.getWorkId(), paper.getId(), MarkStage.SCORE, changeLevel.getOriginalLevel(), changeLevel.getSuggestLevel(), null, work.getName());
+        MarkLog markLog = new MarkLog(markUser.getId(), markUser.getName(), markUser.getRole(), markUser.getSubject(), paper.getExamNumber(), paper.getStudentName(), MarkLogOperType.CHANGE_LEVEL_APPLY.getId(), paper.getWorkId(), paper.getId(), MarkStage.SCORE, changeLevel.getOriginalLevel(), changeLevel.getSuggestLevel(), null, work.getName(), new Date());
         markLogRepo.save(markLog);
 
         return new ResponseEntity(HttpStatus.OK);
@@ -246,7 +246,7 @@ public class ChangeLevelApi {
             //记录日志
             MarkUser markUser = markUserRepo.findOne(userId);
             Work work = workRepo.findOne(paper.getWorkId());
-            MarkLog markLog = new MarkLog(markUser.getId(), markUser.getName(), markUser.getRole(), markUser.getSubject(), paper.getExamNumber(), paper.getStudentName(), MarkLogOperType.CHANGE_LEVEL_AGREE.getId(), paper.getWorkId(), paper.getId(), MarkStage.SCORE, changeLevel.getOriginalLevel(), changeLevel.getSuggestLevel(), null, work.getName());
+            MarkLog markLog = new MarkLog(markUser.getId(), markUser.getName(), markUser.getRole(), markUser.getSubject(), paper.getExamNumber(), paper.getStudentName(), MarkLogOperType.CHANGE_LEVEL_AGREE.getId(), paper.getWorkId(), paper.getId(), MarkStage.SCORE, changeLevel.getOriginalLevel(), changeLevel.getSuggestLevel(), null, work.getName(), new Date());
             markLogRepo.save(markLog);
         }
         return new ResponseEntity(HttpStatus.OK);

+ 3 - 5
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/TaskApi.java

@@ -23,10 +23,7 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.persistence.criteria.Predicate;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
+import java.util.*;
 
 /**
  * @author by xf
@@ -132,6 +129,7 @@ public class TaskApi {
         //重评后撤销标准卷
 //        paper.setSample(false);
         String[] range = ranges.split(",");
+        Date date = new Date();
         for (String markId : range) {
             MarkTask markTask = markTaskRepo.findByPaperIdAndMarkerId(paperId, Long.valueOf(markId));
             if (markTask != null) {
@@ -149,7 +147,7 @@ public class TaskApi {
                 operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
             }
             Work work = workRepo.findOne(paper.getWorkId());
-            MarkLog markLog = new MarkLog(markTask.getMarkerId(), markTask.getMarkerName(), Role.MARKER, markTask.getSubject(), paper.getExamNumber(), paper.getStudentName(), MarkLogOperType.REEVALUATION_LEVEl.getId(), paper.getWorkId(), paper.getId(), markTask.getStage(), operResult, markTask.getOriginLevel(), MarkLogOperType.REEVALUATION_LEVEl.getName(), work.getName());
+            MarkLog markLog = new MarkLog(markTask.getMarkerId(), markTask.getMarkerName(), Role.MARKER, markTask.getSubject(), paper.getExamNumber(), paper.getStudentName(), MarkLogOperType.REEVALUATION_LEVEl.getId(), paper.getWorkId(), paper.getId(), markTask.getStage(), operResult, markTask.getOriginLevel(), MarkLogOperType.REEVALUATION_LEVEl.getName(), work.getName(), date);
             markLogRepo.save(markLog);
         }
 

+ 1 - 1
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/assembler/MarkTaskAssembler.java

@@ -99,7 +99,7 @@ public class MarkTaskAssembler {
 
             markTaskDTO.setIsRejectedByLeader(paper.isRejectedByLeader() == null ? false : paper.isRejectedByLeader());
             //打回总次数
-            int rejectedCount = markLogRepo.countByWorkIdAndPaperIdAndOperType(paper.getWorkId(), paper.getId(), MarkLogOperType.SYSTEM_CALLBACK_LEVEl.getId(), MarkLogOperType.CALLBACK_LEVEl.getId());
+            int rejectedCount = markLogRepo.countByWorkIdAndPaperIdAndOperType(paper.getWorkId(), paper.getId(), MarkLogOperType.SYSTEM_CALLBACK_LEVEl.getId());
             markTaskDTO.setRejectedCount(rejectedCount);
         }
         return markTaskDTO;

+ 1 - 1
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/assembler/PaperAssembler.java

@@ -116,7 +116,7 @@ public class PaperAssembler {
             paperDTO.setShiftScore(paper.isShiftScore());
             paperDTO.setIsRejectedByLeader(paper.isRejectedByLeader() == null ? false : paper.isRejectedByLeader());
             //打回总次数
-            int rejectedCount = markLogRepo.countByWorkIdAndPaperIdAndOperType(paper.getWorkId(), paper.getId(), MarkLogOperType.SYSTEM_CALLBACK_LEVEl.getId(), MarkLogOperType.CALLBACK_LEVEl.getId());
+            int rejectedCount = markLogRepo.countByWorkIdAndPaperIdAndOperType(paper.getWorkId(), paper.getId(), MarkLogOperType.CALLBACK_LEVEl.getId());
             paperDTO.setRejectedCount(rejectedCount);
             //计算levelValue和(试评阶段不用)
             if(markSubject.getTest() == 0 && Objects.nonNull(paper.getLevel())) {

+ 5 - 3
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/MarkingService.java

@@ -208,6 +208,7 @@ public class MarkingService {
             public void callback(List<ArbitrateCallback.Distance> list) {
                 LOG.info("this:{} callback levelsLog异步回调进来了", this);
                 String operResult = "-";
+                Date date = new Date();
                 for (ArbitrateCallback.Distance d : list) {
                     for (MarkTask m : markTasks) {
                         if (Objects.equals(String.valueOf(d.getC()), m.getResult()) && d.getMarkId().longValue() == m.getMarkerId().longValue()) {
@@ -218,7 +219,7 @@ public class MarkingService {
                             if (Objects.isNull(markLogPrev)) {//新建日志
                                 //加入档位落差值日志
                                 Work work = workRepo.findOne(paper.getWorkId());
-                                MarkLog markLog = new MarkLog(m.getMarkerId(), m.getMarkerName(), Role.MARKER, m.getSubject(), paper.getExamNumber(), paper.getStudentName(), MarkLogOperType.LEVEl_DIFFERENCE.getId(), paper.getWorkId(), paper.getId(), m.getStage(), operResult, String.valueOf(d.getDistance()), jsonObject.toJSONString(), work.getName());
+                                MarkLog markLog = new MarkLog(m.getMarkerId(), m.getMarkerName(), Role.MARKER, m.getSubject(), paper.getExamNumber(), paper.getStudentName(), MarkLogOperType.LEVEl_DIFFERENCE.getId(), paper.getWorkId(), paper.getId(), m.getStage(), operResult, String.valueOf(d.getDistance()), jsonObject.toJSONString(), work.getName(), date);
                                 markLogRepo.save(markLog);
                             } else {//更新日志
                                 operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
@@ -232,7 +233,7 @@ public class MarkingService {
                             if (Objects.isNull(markLogDevi)) {//新建日志
                                 //加入档位偏差值日志
                                 Work work = workRepo.findOne(paper.getWorkId());
-                                MarkLog markLog = new MarkLog(m.getMarkerId(), m.getMarkerName(), Role.MARKER, m.getSubject(), paper.getExamNumber(), paper.getStudentName(), MarkLogOperType.LEVEl_DEVIATION.getId(), paper.getWorkId(), paper.getId(), m.getStage(), operResult, String.valueOf(d.getDeviation()), jsonObject.toJSONString(), work.getName());
+                                MarkLog markLog = new MarkLog(m.getMarkerId(), m.getMarkerName(), Role.MARKER, m.getSubject(), paper.getExamNumber(), paper.getStudentName(), MarkLogOperType.LEVEl_DEVIATION.getId(), paper.getWorkId(), paper.getId(), m.getStage(), operResult, String.valueOf(d.getDeviation()), jsonObject.toJSONString(), work.getName(), date);
                                 markLogRepo.save(markLog);
                             } else {//更新日志
                                 operResult = Optional.ofNullable(markLogDevi.getOperDataAfter()).orElse("-");
@@ -310,6 +311,7 @@ public class MarkingService {
             if (range.length > 0) {
                 //加入手动打回日志
                 String operResult = "-";
+                Date date = new Date();
                 for (String r : range) {
                     if (Objects.equals(String.valueOf(markTask.getMarkerId()), r)) {
                         markTask.setRejected(true);
@@ -320,7 +322,7 @@ public class MarkingService {
                             operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
                         }
                         Work work = workRepo.findOne(paper.getWorkId());
-                        MarkLog markLog = new MarkLog(markTask.getMarkerId(), markTask.getMarkerName(), Role.MARKER, markTask.getSubject(), paper.getExamNumber(), paper.getStudentName(), MarkLogOperType.HANDLE_LEVEl.getId(), paper.getWorkId(), paper.getId(), markTask.getStage(), operResult, markTask.getOriginLevel(), MarkLogOperType.HANDLE_LEVEl.getName(), work.getName());
+                        MarkLog markLog = new MarkLog(markTask.getMarkerId(), markTask.getMarkerName(), Role.MARKER, markTask.getSubject(), paper.getExamNumber(), paper.getStudentName(), MarkLogOperType.HANDLE_LEVEl.getId(), paper.getWorkId(), paper.getId(), markTask.getStage(), operResult, markTask.getOriginLevel(), MarkLogOperType.HANDLE_LEVEl.getName(), work.getName(), date);
                         markLogList.add(markLog);
                     }
                 }