瀏覽代碼

3.1.2 fix 增加操作限制

xiaofei 7 月之前
父節點
當前提交
573053c20f

+ 12 - 0
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/domain/ChangeLevelTask.java

@@ -32,6 +32,10 @@ public class ChangeLevelTask {
     private String markerName;
     private String secretNumber;
     private String result;
+    /**
+     * 是否标记
+     */
+    private boolean isMark;
     private Boolean confirmChangeStage;
     @Temporal(value = TemporalType.TIMESTAMP)
     private Date confirmOn;
@@ -160,6 +164,14 @@ public class ChangeLevelTask {
         this.result = result;
     }
 
+    public boolean isMark() {
+        return isMark;
+    }
+
+    public void setMark(boolean mark) {
+        isMark = mark;
+    }
+
     public Boolean getConfirmChangeStage() {
         return confirmChangeStage;
     }

+ 5 - 0
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/ChangeLevelTaskRepo.java

@@ -5,6 +5,7 @@ import cn.com.qmth.stmms.ms.core.domain.MarkStage;
 import cn.com.qmth.stmms.ms.core.vo.Subject;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.stereotype.Repository;
 
@@ -17,4 +18,8 @@ public interface ChangeLevelTaskRepo extends JpaRepository<ChangeLevelTask, Long
     int countByPaperIdAndSubjectAndStageAndConfirmChangeStage(Long paperId, String subject, MarkStage stage, boolean confirmChangeStage);
 
     void deleteByWorkIdAndSubjectAndStage(Long workId, String subject, MarkStage stage);
+
+    @Modifying
+    @Query("update ChangeLevelTask m set m.isMark = ?2 where m.id = ?1")
+    void updateMarkTaskMarkById(Long markTaskId, Boolean isMark);
 }

+ 1 - 0
stmms-ms-main/install/mysql/init/stmms_ms.sql

@@ -59,6 +59,7 @@ CREATE TABLE `change_level_task` (
      `marker_name` VARCHAR(45) NULL COMMENT '评卷员姓名',
      `secret_number` VARCHAR(45) NULL COMMENT '密号',
      `result` VARCHAR(3) NULL COMMENT '改档档位(纪检员同意后)',
+     `is_mark` TINYINT(1) NULL DEFAULT 0 COMMENT '是否标记',
      `confirm_change_stage` TINYINT(1) NULL COMMENT '是否确认改档',
      `confirm_on` DATETIME NULL COMMENT '确认时间',
      `created_on` DATETIME NULL COMMENT '创建时间',

+ 1 - 0
stmms-ms-main/install/mysql/upgrade/3.1.2.sql

@@ -17,6 +17,7 @@ CREATE TABLE `change_level_task` (
         `marker_name` VARCHAR(45) NULL COMMENT '评卷员姓名',
         `secret_number` VARCHAR(45) NULL COMMENT '密号',
         `result` VARCHAR(3) NULL COMMENT '改档档位(纪检员同意后)',
+        `is_mark` TINYINT(1) NULL DEFAULT 0 COMMENT '是否标记',
         `confirm_change_stage` TINYINT(1) NULL COMMENT '是否确认改档',
         `confirm_on` DATETIME NULL COMMENT '确认时间',
         `created_on` DATETIME NULL COMMENT '创建时间',

+ 19 - 4
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MakrerApi.java

@@ -294,8 +294,12 @@ public class MakrerApi {
      */
     @GetMapping("{marker}/stat/totalRoughLevels")
     public List<LevelStatDTO> totalRoughLevels(@PathVariable MarkUser marker, @RequestParam Long questionId) throws Exception {
-        List<LevelStatDTO> levelStatDTOs = new ArrayList<>();
         MarkSubject markSubject = markSubjectRepo.findOne(marker.getWorkId() + "-" + marker.getSubject().toString());
+        if (!MarkStage.ROUGH_LEVEL.equals(markSubject.getStage())) {
+            throw new RuntimeException("操作不成功,请退出重新登录后尝试");
+        }
+
+        List<LevelStatDTO> levelStatDTOs = new ArrayList<>();
         List<Level> levels = levelRepo.findByWorkId(markSubject.getWorkId());
         Integer levelShowAllPaper = ParamCache.roughLevelConfigMap.get(String.valueOf(marker.getWorkId())).getLevelShowAllPaper();
         Integer propDenominator = ParamCache.roughLevelConfigMap.get(String.valueOf(marker.getWorkId())).getPropDenominator();
@@ -436,8 +440,12 @@ public class MakrerApi {
      */
     @RequestMapping(value = "{marker}/stat/totalLevels", method = RequestMethod.GET)
     public List<LevelStatDTO> totalLevels(@PathVariable MarkUser marker, @RequestParam Long questionId) throws Exception {
-        List<LevelStatDTO> levelStatDTOs = new ArrayList<>();
         MarkSubject markSubject = markSubjectRepo.findOne(marker.getWorkId() + "-" + marker.getSubject().toString());
+        if(!MarkStage.LEVEL.equals(markSubject.getStage())){
+            throw new RuntimeException("操作不成功,请退出重新登录后尝试");
+        }
+
+        List<LevelStatDTO> levelStatDTOs = new ArrayList<>();
         List<Level> levels = levelRepo.findByWorkId(markSubject.getWorkId());
         Map<String, Level> levelMap = levels.stream().collect(Collectors.toMap(Level::getCode, l -> l));
         Integer levelShowAllPaper = ParamCache.levelConfigMap.get(String.valueOf(marker.getWorkId())).getLevelShowAllPaper();
@@ -605,8 +613,11 @@ public class MakrerApi {
      */
     @RequestMapping(value = "{marker}/stat/scores", method = RequestMethod.GET)
     public List<LevelStatDTO> scoreStats(@PathVariable MarkUser marker, @RequestParam Long questionId) throws Exception {
-        List<LevelStatDTO> levelStatDTOs = new ArrayList<>();
         MarkSubject markSubject = markSubjectRepo.findOne(marker.getWorkId() + "-" + marker.getSubject().toString());
+        if(!MarkStage.SCORE.equals(markSubject.getStage())){
+            throw new RuntimeException("操作不成功,请退出重新登录后尝试");
+        }
+        List<LevelStatDTO> levelStatDTOs = new ArrayList<>();
         List<Level> levels = levelRepo.findByWorkId(markSubject.getWorkId());
         Map<String, Level> levelMap = levels.stream().collect(Collectors.toMap(Level::getCode, l -> l));
         Long batchNo = paperRepo.findMaxScoreBatchNoByWorkIdAndSubject(marker.getWorkId(), marker.getSubject());
@@ -704,8 +715,12 @@ public class MakrerApi {
      */
     @RequestMapping(value = "{marker}/stat/totalScores", method = RequestMethod.GET)
     public List<LevelStatDTO> totalScores(@PathVariable MarkUser marker, @RequestParam Long questionId) throws Exception {
-        List<LevelStatDTO> levelStatDTOs = new ArrayList<>();
         MarkSubject markSubject = markSubjectRepo.findOne(marker.getWorkId() + "-" + marker.getSubject().toString());
+        if(!MarkStage.SCORE.equals(markSubject.getStage())){
+            throw new RuntimeException("操作不成功,请退出重新登录后尝试");
+        }
+
+        List<LevelStatDTO> levelStatDTOs = new ArrayList<>();
         List<Level> levels = levelRepo.findByWorkId(markSubject.getWorkId());
         Map<String, Level> levelMap = levels.stream().collect(Collectors.toMap(Level::getCode, l -> l));
         Long batchNo = paperRepo.findMaxScoreBatchNoByWorkIdAndSubject(marker.getWorkId(), marker.getSubject());

+ 11 - 0
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MarkSubjectApi.java

@@ -350,6 +350,10 @@ public class MarkSubjectApi {
      */
     @GetMapping("{markSubject}/mark_leader/stat/roughLevels")
     public List<LevelStatDTO> markLeaderRoughLevelStat(@PathVariable MarkSubject markSubject, @RequestParam Long questionId) {
+        if(!MarkStage.ROUGH_LEVEL.equals(markSubject.getStage())){
+            throw new RuntimeException("操作不成功,请退出重新登录后尝试");
+        }
+
         Long markerId = ServletUtil.getUserId();
         List<MarkerGroupLeader> markerGroupLeaders = markerGroupLeaderService.listByWorkIdAndSubjectAndStageAndMarkLeaderId(markSubject.getWorkId(), markSubject, markerId);
         List<Long> paperIds = null;
@@ -457,6 +461,10 @@ public class MarkSubjectApi {
      */
     @RequestMapping(value = "{markSubject}/mark_leader/stat/levels", method = RequestMethod.GET)
     public List<LevelStatDTO> markLeaderLevelStat(@PathVariable MarkSubject markSubject, @RequestParam Long questionId) {
+        if(!MarkStage.LEVEL.equals(markSubject.getStage())){
+            throw new RuntimeException("操作不成功,请退出重新登录后尝试");
+        }
+
         Long markerId = ServletUtil.getUserId();
         List<MarkerGroupLeader> markerGroupLeaders = markerGroupLeaderService.listByWorkIdAndSubjectAndStageAndMarkLeaderId(markSubject.getWorkId(), markSubject, markerId);
         List<Long> paperIds = null;
@@ -606,6 +614,9 @@ public class MarkSubjectApi {
     @RequestMapping(value = "{markSubject}/mark_leader/stat/scores", method = RequestMethod.GET)
     public List<LevelStatDTO> markLeaderScoreStat(@PathVariable MarkSubject markSubject,
                                                   @RequestParam Long questionId) {
+        if(!MarkStage.SCORE.equals(markSubject.getStage())){
+            throw new RuntimeException("操作不成功,请退出重新登录后尝试");
+        }
         Long markerId = ServletUtil.getUserId();
         List<MarkerGroupLeader> markerGroupLeaders = markerGroupLeaderService.listByWorkIdAndSubjectAndStageAndMarkLeaderId(markSubject.getWorkId(), markSubject, markerId);
         List<Long> paperIds = null;

+ 13 - 8
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/MarkTaskApi.java

@@ -227,21 +227,26 @@ public class MarkTaskApi {
     }
 
     /**
-     * 查询标记试卷
+     * 标记试卷
      *
-     * @param markTaskId 评卷任务id
+     * @param markTaskId 评卷任务id
      */
     @RequestMapping(value = "/{stage}/mark_task", method = RequestMethod.POST)
     @Transactional
     public Object markTask(@PathVariable MarkStage stage,
                            @RequestParam Long markTaskId,
+                           @RequestParam Boolean shift,
                            @RequestParam Boolean isMark) {
-        if (stage.equals(MarkStage.ROUGH_LEVEL)) {
-            return markTaskRoughLevelService.updateMarkTaskMarkById(markTaskId, isMark);
-        } else if (stage.equals(MarkStage.LEVEL)) {
-            return markTaskLevelService.updateMarkTaskMarkById(markTaskId, isMark);
-        } else if (stage.equals(MarkStage.SCORE)) {
-            return markTaskScoreService.updateMarkTaskMarkById(markTaskId, isMark);
+        if (shift) {
+            return changeLevelTaskService.updateMarkById(markTaskId, isMark);
+        } else {
+            if (stage.equals(MarkStage.ROUGH_LEVEL)) {
+                return markTaskRoughLevelService.updateMarkTaskMarkById(markTaskId, isMark);
+            } else if (stage.equals(MarkStage.LEVEL)) {
+                return markTaskLevelService.updateMarkTaskMarkById(markTaskId, isMark);
+            } else if (stage.equals(MarkStage.SCORE)) {
+                return markTaskScoreService.updateMarkTaskMarkById(markTaskId, isMark);
+            }
         }
         return true;
     }

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

@@ -268,6 +268,7 @@ public class MarkTaskLevelAssembler {
 //            }
             markTaskDTO.setShift(paper.isShift());
             markTaskDTO.setShiftScore(paper.isShiftScore());
+            markTaskDTO.setMark(changeLevelTask.isMark());
         }
         return markTaskDTO;
     }

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

@@ -200,6 +200,7 @@ public class MarkTaskScoreAssembler {
             }
             markTaskDTO.setShift(paper.isShift());
             markTaskDTO.setShiftScore(paper.isShiftScore());
+            markTaskDTO.setMark(markTask.isMark());
         }
         return markTaskDTO;
     }

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

@@ -119,6 +119,7 @@ public class PaperAssembler {
             paperDTO.setSortSum(paper.getSortNum());
             ChangeLevel changeLevel = changeLevelRepo.findByWorkIdAndSubjectAndPaperIdAndAuditStatusAndStageAndIsCurr(paper.getWorkId(), paper.getSubject().name(), markSubject.getStage(), paper.getId());
             paperDTO.setOriginLevel(changeLevel != null ? changeLevel.getOriginalLevel() : "");
+            paperDTO.setRedoLevel(changeLevel != null ? changeLevel.getSuggestLevel() : "");
         }
         return paperDTO;
     }

+ 5 - 0
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/ChangeLevelTaskService.java

@@ -84,4 +84,9 @@ public class ChangeLevelTaskService {
         markLogRepo.save(markLog);
         return true;
     }
+
+    public Object updateMarkById(Long markTaskId, Boolean isMark) {
+        changeLevelTaskRepo.updateMarkTaskMarkById(markTaskId, isMark);
+        return true;
+    }
 }