Procházet zdrojové kódy

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

xiaof před 4 roky
rodič
revize
1e6cd4c489

+ 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);
 }

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

@@ -164,7 +164,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(), new Date());
                 LOGGER.info("markLog:{}", JSONObject.toJSONString(markLog));
                 //标准卷设置、定档设置、档位打回end
                 markLogRepo.save(markLog);
@@ -245,7 +245,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 +293,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 +305,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

@@ -183,7 +183,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);
@@ -226,7 +226,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

@@ -115,7 +115,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 - 4
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/MarkingService.java

@@ -218,7 +218,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(), new Date());
                                 markLogRepo.save(markLog);
                             } else {//更新日志
                                 operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
@@ -232,7 +232,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(), new Date());
                                 markLogRepo.save(markLog);
                             } else {//更新日志
                                 operResult = Optional.ofNullable(markLogDevi.getOperDataAfter()).orElse("-");
@@ -310,6 +310,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 +321,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);
                     }
                 }
@@ -356,7 +357,7 @@ public class MarkingService {
                     .mapToInt(Integer::valueOf).average();
             //湖北省,平均分非零进一
             Integer roundUp = Optional.ofNullable(ParamCache.paramMap.get(markTask.getWorkId()).getRoundUp()).orElse(1);
-            double fs = roundUp.intValue() == 1 ? Math.ceil(finalScore.orElse(0)) : Math.round(finalScore.orElse(0));
+            double fs = roundUp.intValue() == 0 ? Math.ceil(finalScore.orElse(0)) : Math.round(finalScore.orElse(0));
             paper.setScore(fs);
             //改档打分完成,更新状态为false
             paper.setShiftScore(false);