Browse Source

3.1.2 fix 增加操作限制

xiaofei 7 months ago
parent
commit
62b4e050b2

+ 11 - 8
stmms-ms-main/src/test/java/BatchCreateDataTest.java

@@ -9,6 +9,7 @@ import cn.com.qmth.stmms.ms.marking.utils.RandomUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import net.coobird.thumbnailator.Thumbnails;
+import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -17,8 +18,10 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 import org.springframework.util.CollectionUtils;
 
+import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 import java.util.*;
 
 @RunWith(SpringRunner.class)
@@ -58,7 +61,7 @@ public class BatchCreateDataTest {
     // 考生初始准考证号
     private int initNumber = 1000000;
     // 考生数量
-    private static int COUNT = 60000;
+    private static int COUNT = 3000;
     // 评卷员数量
     private static int MARKER_COUNT = 15;
     // 科组长数量
@@ -66,20 +69,20 @@ public class BatchCreateDataTest {
     // 工作id
     private static Long WORK_ID = 1L;
     // 是否开启粗分档
-    private static Boolean isOpenRoughLevel = true;
+    private static Boolean isOpenRoughLevel = false;
     // 生成科目
     private List<Subject> subjects = Arrays.asList(Subject.SX, Subject.SC, Subject.SM);
     // 是否复制图片
     private boolean isCreateImage = false;
-    // 图片存放目录
-    private String baseDir = "D:\\my_workspaces\\ide_workspace_qmth\\idea_workspace\\stmms-ms-server\\upload";
+    // 图片存放目录(源图片命名为  source.jpg,放在baseDir根目录下)
+    private String baseDir = "/Users/xiaofei/mslk";
 
     /**
      * 生成数据
      *
      * @throws Exception
      */
-//    @Test
+    @Test
     public void createTask() throws Exception {
         createData();
     }
@@ -319,7 +322,7 @@ public class BatchCreateDataTest {
         if (!out.exists()) {
             out.mkdirs();
         }
-        File in = new File(imageDir, "sx.jpg");
+        File in = new File(baseDir, "source.jpg");
         for (Student student : students) {
             Thumbnails.of(in).scale(1f).toFile(new File(imageDir, student.getExamNumber() + ".jpg"));
         }
@@ -331,7 +334,7 @@ public class BatchCreateDataTest {
         if (!out.exists()) {
             out.mkdirs();
         }
-        File in = new File(sheetDir, "sx.jpg");
+        File in = new File(baseDir, "source.jpg");
         for (Student student : students) {
             Thumbnails.of(in).scale(1f).toFile(new File(sheetDir, student.getExamNumber() + ".jpg"));
         }
@@ -343,7 +346,7 @@ public class BatchCreateDataTest {
         if (!out.exists()) {
             out.mkdirs();
         }
-        File in = new File(thumbDir, "sx.jpg");
+        File in = new File(baseDir, "source.jpg");
         for (Student student : students) {
             Thumbnails.of(in).scale(1f).toFile(new File(thumbDir, student.getExamNumber() + ".jpg"));
         }

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

@@ -264,6 +264,11 @@ public class ChangeLevelApi {
                                            @RequestParam Integer auditStatus,
                                            @RequestParam Long userId) {
         ChangeLevel changeLevel = changeLevelRepo.findOne(id);
+        MarkSubject markSubject = markSubjectRepo.findOne(changeLevel.getWorkId() + "-" + changeLevel.getSubject());
+        if (!markSubject.getStage().equals(changeLevel.getStage())) {
+            throw new RuntimeException("操作不成功,请退出重新登录后尝试");
+        }
+
         changeLevel.setAuditStatus(auditStatus);
         changeLevel.setAuditDate(new Date());
         changeLevelRepo.save(changeLevel);

+ 20 - 0
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/api/PaperApi.java

@@ -428,6 +428,11 @@ public class PaperApi {
         String level = body.get("level");
         String tagged = body.get("tagged");
         MarkStage stage = MarkStage.valueOf(body.get("stage"));
+        MarkSubject markSubject = markSubjectRepo.findOne(paper.getWorkId() + "-" + paper.getSubject());
+        if(!markSubject.getStage().equals(stage)){
+            throw new RuntimeException("操作不成功,请退出重新登录后尝试");
+        }
+
         if (action != null && level != null) {
             if (action.equals("leveling")) {
                 paper.setRejectedByLeader(false);
@@ -485,11 +490,16 @@ public class PaperApi {
         String tagged = body.get("tagged");
         String paperIds = body.get("paperIds");
         MarkStage stage = MarkStage.valueOf(body.get("stage"));
+
         if (paperIds.length() > 0) {
             List<PaperDTO> list = new ArrayList<>();
             String[] ids = paperIds.split(",");
             for (String id : ids) {
                 Paper paper = paperRepo.findOne(Long.valueOf(id));
+                MarkSubject markSubject = markSubjectRepo.findOne(paper.getWorkId() + "-" + paper.getSubject());
+                if(!markSubject.getStage().equals(stage)){
+                    throw new RuntimeException("操作不成功,请退出重新登录后尝试");
+                }
                 if (action != null && level != null) {
                     if (action.equals("leveling")) {
                         paper.setRejectedByLeader(false);
@@ -548,12 +558,18 @@ public class PaperApi {
     public ResponseEntity cancelSample(@RequestBody HashMap<String, String> body) {
         String paperIds = body.get("paperIds");
         String stage = body.get("stage");
+
         if (paperIds.length() > 0) {
             List<MarkLog> markLogs = new ArrayList<>();
             String[] ids = paperIds.split(",");
             if (MarkStage.ROUGH_LEVEL.name().equals(stage)) {
                 for (String id : ids) {
                     Paper paper = paperRepo.findOne(Long.valueOf(id));
+                    MarkSubject markSubject = markSubjectRepo.findOne(paper.getWorkId() + "-" + paper.getSubject());
+                    if(!MarkStage.ROUGH_LEVEL.equals(markSubject.getStage())){
+                        throw new RuntimeException("操作不成功,请退出重新登录后尝试");
+                    }
+
                     Work work = workRepo.findOne(paper.getWorkId());
                     paper.determineRoughLevel(null);
                     paper.setMarkByLeader(false);
@@ -580,6 +596,10 @@ public class PaperApi {
             } else if (MarkStage.LEVEL.name().equals(stage)) {
                 for (String id : ids) {
                     Paper paper = paperRepo.findOne(Long.valueOf(id));
+                    MarkSubject markSubject = markSubjectRepo.findOne(paper.getWorkId() + "-" + paper.getSubject());
+                    if(!MarkStage.LEVEL.equals(markSubject.getStage())){
+                        throw new RuntimeException("操作不成功,请退出重新登录后尝试");
+                    }
                     Work work = workRepo.findOne(paper.getWorkId());
                     paper.determineLevel(null);
                     paper.setMarkByLeader(false);

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

@@ -22,6 +22,8 @@ public class ChangeLevelTaskService {
     @Resource
     private ChangeLevelTaskRepo changeLevelTaskRepo;
     @Resource
+    private MarkSubjectRepo markSubjectRepo;
+    @Resource
     private PaperRepo paperRepo;
     @Resource
     private WorkRepo workRepo;
@@ -37,6 +39,11 @@ public class ChangeLevelTaskService {
         if (changeLevelTask == null) {
             throw new RuntimeException("改档确认任务不存在");
         }
+        MarkSubject markSubject = markSubjectRepo.findOne(changeLevelTask.getWorkId() + "-" + changeLevelTask.getSubject());
+        if (!changeLevelTask.getStage().equals(markSubject.getStage())) {
+            throw new RuntimeException("操作不成功,请退出重新登录后尝试");
+        }
+
         Boolean status;
         try {
             lockService.waitlock(LockType.PAPER, changeLevelTask.getPaper().getId());

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

@@ -181,6 +181,11 @@ public class MarkTaskLevelService {
 
     public MarkTaskDTO markingLevel(Long markTaskId, HashMap<String, String> body) {
         MarkTaskLevel markTask = markTaskLevelRepo.findOne(markTaskId);
+        MarkSubject markSubject = markSubjectRepo.findOne(markTask.getWorkId() + "-" + markTask.getSubject());
+        if(!MarkStage.LEVEL.equals(markSubject.getStage())){
+            throw new RuntimeException("操作不成功,请退出重新登录后尝试");
+        }
+
         String result = body.get("result");
         boolean oldRejected = markTask.isRejected();
         boolean oldShift = markTask.getPaper().isShift();

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

@@ -161,6 +161,11 @@ public class MarkTaskRoughLevelService {
 
     public MarkTaskDTO markingLevel(Long markTaskId, HashMap<String, String> body) {
         MarkTaskRoughLevel markTask = markTaskRoughLevelRepo.findOne(markTaskId);
+        MarkSubject markSubject = markSubjectRepo.findOne(markTask.getWorkId() + "-" + markTask.getSubject());
+        if(!MarkStage.ROUGH_LEVEL.equals(markSubject.getStage())){
+            throw new RuntimeException("操作不成功,请退出重新登录后尝试");
+        }
+
         String result = body.get("result");
         boolean oldRejected = markTask.isRejected();
         boolean oldShift = markTask.getPaper().isShift();

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

@@ -149,6 +149,11 @@ public class MarkTaskScoreService {
 
     public MarkTaskDTO markingScore(Long markTaskId, HashMap<String, String> body) {
         MarkTaskScore markTask = markTaskScoreRepo.getOne(markTaskId);
+        MarkSubject markSubject = markSubjectRepo.findOne(markTask.getWorkId() + "-" + markTask.getSubject());
+        if(!MarkStage.SCORE.equals(markSubject.getStage())){
+            throw new RuntimeException("操作不成功,请退出重新登录后尝试");
+        }
+
         String result = body.get("result");
         boolean oldRejected = markTask.isRejected();
         boolean oldShift = markTask.getPaper().isShift();