Bläddra i källkod

联考版-v3.1.0-分档模块开发阶段bug修改

xiaof 2 år sedan
förälder
incheckning
4bf96c59a1
18 ändrade filer med 117 tillägg och 384 borttagningar
  1. 1 1
      pom.xml
  2. 3 3
      stmms-ms-accesscontrol/src/main/java/cn/com/qmth/stmms/ms/accesscontrol/api/AuthApi.java
  3. 5 6
      stmms-ms-accesscontrol/src/main/java/cn/com/qmth/stmms/ms/accesscontrol/config/AccessConfig.java
  4. 0 7
      stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/service/TrialService.java
  5. 0 26
      stmms-ms-commons/src/main/java/cn/com/qmth/stmms/ms/commons/config/LevelConfig.java
  6. 0 48
      stmms-ms-commons/src/main/java/cn/com/qmth/stmms/ms/commons/config/ScoreConfig.java
  7. 17 0
      stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/MarkTaskRoughLevelRepo.java
  8. 75 7
      stmms-ms-log/src/main/java/cn/com/qmth/stmms/ms/log/aop/MarkLogAop.java
  9. 0 15
      stmms-ms-main/src/main/java/cn/com/qmth/stmms/ms/quartz/ScheduledTask.java
  10. 14 45
      stmms-ms-main/src/main/resources/application-dev.properties
  11. 1 1
      stmms-ms-main/src/main/resources/application.properties
  12. 0 103
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/AutoRun.java
  13. 1 1
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/DetermineRoughLevelService.java
  14. 0 4
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/MarkingLevelService.java
  15. 0 5
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/MarkingRoughLevelService.java
  16. 0 7
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/MarkingScoreService.java
  17. 0 101
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/MarkingService.java
  18. 0 4
      stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/StageControlService.java

+ 1 - 1
pom.xml

@@ -29,7 +29,7 @@
     <properties>
         <!-- non-dependencies -->
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <project.version>3.0.0</project.version>
+        <project.version>3.1.0</project.version>
         <java.version>1.8</java.version>
         <thymeleaf.version>3.0.0.RELEASE</thymeleaf.version>
         <thymeleaf-layout-dialect.version>2.0.0</thymeleaf-layout-dialect.version>

+ 3 - 3
stmms-ms-accesscontrol/src/main/java/cn/com/qmth/stmms/ms/accesscontrol/api/AuthApi.java

@@ -53,10 +53,10 @@ public class AuthApi {
         MarkUser domain = null;
         String loginName = loginConfig.adminLoginConfig().getLoginName();
         List<String> loginNames = Arrays.asList(loginName.split(","));
-        if (loginNames.indexOf(user.getLoginName()) > 0 &&
+        if (loginNames.contains(user.getLoginName()) &&
                 loginConfig.adminLoginConfig().getPassword().equals(user.getPassword())) {
-            domain = new MarkUser(loginConfig.adminLoginConfig().getLoginName(), loginConfig.adminLoginConfig().getPassword(), null, null, "系统管理员", Role.ADMIN, null);
-            domain.setId(0l);
+            domain = new MarkUser(user.getLoginName(), loginConfig.adminLoginConfig().getPassword(), null, null, "系统管理员", Role.ADMIN, null);
+            domain.setId(Long.valueOf(loginNames.indexOf(user.getLoginName())));
         } else {
             domain = markUserRepo.findByLoginName(user.getLoginName());
             if (domain == null) {

+ 5 - 6
stmms-ms-accesscontrol/src/main/java/cn/com/qmth/stmms/ms/accesscontrol/config/AccessConfig.java

@@ -10,15 +10,14 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
 /**
  * Created by zhengmin on 2017/3/2.
  */
-//@Configuration
-//@Profile(value = "dev")
+@Configuration
 public class AccessConfig extends WebMvcConfigurerAdapter {
 
     @Override
     public void addCorsMappings(CorsRegistry registry) {
         registry.addMapping("/**").allowedOrigins("*").allowCredentials(false)
                 .allowedMethods("PUT", "DELETE", "GET", "POST", "PATCH").allowedHeaders("Cache-Control", "Pragma",
-                "Origin", "Authorization", "Content-Type", "X-Requested-With")
+                        "Origin", "Authorization", "Content-Type", "X-Requested-With")
                 .maxAge(9999999999999999L);
         // .exposedHeaders("header1", "header2")
     }
@@ -30,9 +29,9 @@ public class AccessConfig extends WebMvcConfigurerAdapter {
 
     @Override
     public void addInterceptors(InterceptorRegistry registry) {
-        registry.addInterceptor(loginInterceptor()).addPathPatterns("/api/**").excludePathPatterns("/api/admin/users/login","/api/login","/api/logout","/api/*/password",
+        registry.addInterceptor(loginInterceptor()).addPathPatterns("/api/**").excludePathPatterns("/api/admin/users/login", "/api/login", "/api/logout", "/api/*/password",
                 "/api/user/login", "/api/user/getClientUser", "/api/exam/students", "/api/upload/student/*", "/api/file/image/**", "/api/marklog/saveCollectLog",
-                "/api/file/ms-slice/**", "/api/subject/collect-config", "/api/file/ms-sheet/**", "/api/oss/**", "/api/exam/listStudents/*", "/api/exam/getStudent/*","/api/level/*",
-                "/api/file/image/getExportData","/api/file/image/exportScorePicturesFromCollect","/api/admin/works","/api/score/missing/*", "/api/papers/*/*/*");
+                "/api/file/ms-slice/**", "/api/subject/collect-config", "/api/file/ms-sheet/**", "/api/oss/**", "/api/exam/listStudents/*", "/api/exam/getStudent/*", "/api/level/*",
+                "/api/file/image/getExportData", "/api/file/image/exportScorePicturesFromCollect", "/api/admin/works", "/api/score/missing/*", "/api/papers/*/*/*");
     }
 }

+ 0 - 7
stmms-ms-admin/src/main/java/cn/com/qmth/stmms/ms/admin/service/TrialService.java

@@ -11,7 +11,6 @@ import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
 import cn.com.qmth.stmms.ms.core.domain.user.Role;
 import cn.com.qmth.stmms.ms.core.repository.*;
 import cn.com.qmth.stmms.ms.core.vo.Subject;
-import cn.com.qmth.stmms.ms.marking.service.MarkingService;
 import cn.com.qmth.stmms.ms.marking.service.StageControlService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -56,15 +55,9 @@ public class TrialService {
     @Autowired
     ExamQuestionRepo examQuestionRepo;
 
-//    @Autowired
-//    MarkLogRepo markLogRepo;
-
     @Autowired
     MarkerGroupRepo markerGroupRepo;
 
-    @Autowired
-    MarkingService markingService;
-
     @Autowired
     DbBackupUtils dbBackupUtils;
 

+ 0 - 26
stmms-ms-commons/src/main/java/cn/com/qmth/stmms/ms/commons/config/LevelConfig.java

@@ -1,26 +0,0 @@
-package cn.com.qmth.stmms.ms.commons.config;
-
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.stereotype.Component;
-
-/**
- * @Description: 档位配置
- * @Param:
- * @return:
- * @Author: wangliang
- * @Date: 2019/11/08
- */
-@Component
-@ConfigurationProperties(prefix = "sys.level", ignoreUnknownFields = false)
-public class LevelConfig {
-
-    private boolean autoCallback;//是否开启档位仲裁自动打回
-
-    public boolean isAutoCallback() {
-        return autoCallback;
-    }
-
-    public void setAutoCallback(boolean autoCallback) {
-        this.autoCallback = autoCallback;
-    }
-}

+ 0 - 48
stmms-ms-commons/src/main/java/cn/com/qmth/stmms/ms/commons/config/ScoreConfig.java

@@ -1,48 +0,0 @@
-package cn.com.qmth.stmms.ms.commons.config;
-
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-/**
- * @Description: 打分配置
- * @Param:
- * @return:
- * @Author: wangliang
- * @Date: 2019/11/20
- */
-@Component
-@ConfigurationProperties(prefix = "score.level", ignoreUnknownFields = false)
-public class ScoreConfig {
-
-    private boolean enable;//打分阶段配置是否启用
-
-    private List<String> exclude;//打分阶段配置过滤档位(可选一个或多个档位,多个档位用","号隔开)
-
-    private String taskSort;//打分阶段配置档位排序规则(可选random/paper)
-
-    public boolean isEnable() {
-        return enable;
-    }
-
-    public void setEnable(boolean enable) {
-        this.enable = enable;
-    }
-
-    public List<String> getExclude() {
-        return exclude;
-    }
-
-    public void setExclude(List<String> exclude) {
-        this.exclude = exclude;
-    }
-
-    public String getTaskSort() {
-        return taskSort;
-    }
-
-    public void setTaskSort(String taskSort) {
-        this.taskSort = taskSort;
-    }
-}

+ 17 - 0
stmms-ms-core/src/main/java/cn/com/qmth/stmms/ms/core/repository/MarkTaskRoughLevelRepo.java

@@ -29,6 +29,14 @@ public interface MarkTaskRoughLevelRepo extends JpaRepository<MarkTaskRoughLevel
      */
     long countByMarkerId(Long markerId);
 
+    /**
+     * 查询指定阶段试卷的评卷任务
+     *
+     * @param paperId 试卷id
+     * @param stage   评卷阶段
+     */
+    List<MarkTaskRoughLevel> findByPaperIdAndStage(Long paperId, MarkStage stage);
+
     @Query(value = "select count(1) from mark_task_rough_level m where m.question_id = ?1 and m.marker_id = ?3 and m.batch_no = ?2", nativeQuery = true)
     long countByQuestionIdAndBatchNo(Long questionId, Long batchNo, Long markerId);
 
@@ -38,6 +46,15 @@ public interface MarkTaskRoughLevelRepo extends JpaRepository<MarkTaskRoughLevel
     @Query(value = "select count(1) from mark_task_rough_level m where m.question_id = ?1 and m.marker_id = ?2 and m.stage = ?3 and m.result = ?4 and m.is_rejected = false", nativeQuery = true)
     int countByQuestionIdAndMarkerIdAndStageAndResultAll(Long questionId, Long markerId, int stage, String result);
 
+    /**
+     * 查询评卷员的评卷任务
+     *
+     * @param markerId 评卷员ID
+     * @param stage    阶段
+     */
+    @Query(value = "select mt from MarkTaskRoughLevel mt left outer join fetch mt.paper where mt.markerId = ?1 and mt.stage = ?2")
+    List<MarkTaskRoughLevel> findByMarkerIdAndStage(Long markerId, MarkStage stage);
+
     /**
      * 统计各评卷员各试题已评数及总数(分档阶段)
      *

+ 75 - 7
stmms-ms-log/src/main/java/cn/com/qmth/stmms/ms/log/aop/MarkLogAop.java

@@ -1,6 +1,5 @@
 package cn.com.qmth.stmms.ms.log.aop;
 
-import cn.com.qmth.stmms.ms.commons.config.LevelConfig;
 import cn.com.qmth.stmms.ms.commons.constant.ArbitrateCallback;
 import cn.com.qmth.stmms.ms.commons.constant.ArbitrateResult;
 import cn.com.qmth.stmms.ms.commons.utils.EncrypAES;
@@ -15,6 +14,8 @@ import cn.com.qmth.stmms.ms.core.domain.user.Role;
 import cn.com.qmth.stmms.ms.core.repository.*;
 import cn.com.qmth.stmms.ms.marking.config.MarkingConfig;
 import cn.com.qmth.stmms.ms.marking.dto.MarkTaskDTO;
+import cn.com.qmth.stmms.ms.marking.service.DetermineRoughLevelService;
+import cn.com.qmth.stmms.ms.marking.service.MarkingRoughLevelService;
 import cn.com.qmth.stmms.ms.marking.service.MarkingService;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -33,7 +34,6 @@ import org.springframework.web.context.request.ServletRequestAttributes;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
 import java.net.URLDecoder;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -78,9 +78,6 @@ public class MarkLogAop {
     @Autowired
     SqlUtil sqlUtil;
 
-    @Autowired
-    LevelConfig levelConfig;
-
     @Autowired
     MarkTaskRoughLevelRepo markTaskRoughLevelRepo;
 
@@ -297,7 +294,6 @@ public class MarkLogAop {
         //20191107wangliang加入仲裁自动打回算法 start
         if (markStage.ordinal() == 1 && paper.isArbitrated()) {
             if (ParamCache.levelConfigMap.get(String.valueOf(work.getId())).getAutoCallback() == 1) {//为true则自动打回
-                List<MarkTaskLevel> markTasks = markTaskLevelRepo.findByPaperIdAndStage(paper.getId(), markStage);
                 JSONObject js = new JSONObject();
                 js.put("paperId", paper.getId());
                 js.put("type", "autoCallback");
@@ -305,7 +301,13 @@ public class MarkLogAop {
                 js.put("deviation", deviation);
                 MarkTaskJob markTaskJob = new MarkTaskJob(js.toJSONString(), false, paper.getWorkId());
                 markTaskJobRepo.save(markTaskJob);
-                autoCallback(markTasks, deviation, paper, markTaskJob, work.getName(), daterMineResult);
+                if (markStage.equals(MarkStage.ROUGH_LEVEL)) {
+                    List<MarkTaskRoughLevel> markTasks = markTaskRoughLevelRepo.findByPaperIdAndStage(paper.getId(), markStage);
+                    autoCallbackRoughLevel(markTasks, deviation, paper, markTaskJob, work.getName(), daterMineResult);
+                } else if (markStage.equals(MarkStage.LEVEL)) {
+                    List<MarkTaskLevel> markTasks = markTaskLevelRepo.findByPaperIdAndStage(paper.getId(), markStage);
+                    autoCallback(markTasks, deviation, paper, markTaskJob, work.getName(), daterMineResult);
+                }
             }
         }
         //20191107wangliang加入仲裁自动打回算法 end
@@ -319,6 +321,7 @@ public class MarkLogAop {
      * @param paper
      * @param markTaskJob
      * @param workName
+     * @param daterMineResult
      */
     public void autoCallback(List<MarkTaskLevel> markTasks, int deviation, Paper paper, MarkTaskJob markTaskJob, String workName, String daterMineResult) {
         List<MarkTaskLevel> result = markTasks.stream().filter(x -> Objects.isNull(x.getResult())).collect(Collectors.toList());
@@ -374,6 +377,71 @@ public class MarkLogAop {
         LOGGER.info("this:{} markLogAop异步回调结束了", this);
     }
 
+    /**
+     * 粗分档自动打回异步回调
+     *
+     * @param markTasks
+     * @param deviation
+     * @param paper
+     * @param markTaskJob
+     * @param workName
+     * @param daterMineResult
+     */
+    public void autoCallbackRoughLevel(List<MarkTaskRoughLevel> markTasks, int deviation, Paper paper, MarkTaskJob markTaskJob, String workName, String daterMineResult) {
+        List<MarkTaskRoughLevel> result = markTasks.stream().filter(x -> Objects.isNull(x.getResult())).collect(Collectors.toList());
+        if (Objects.nonNull(result) && !result.isEmpty()) {
+            LOGGER.info("数据有误,未完成评卷任务");
+            markTaskJobRepo.updateMarkTaskJobByVersion(markTaskJob.getId(), markTaskJob.getVersion());
+            return;
+        }
+
+        List<Level> levels = levelRepo.findByWorkId(paper.getWorkId());
+        List<RoughLevel> roughLevels = DetermineRoughLevelService.parseRoughLevels(levels);
+        Map<String, Integer> levelMap = roughLevels.stream().collect(Collectors.toMap(RoughLevel::getRoughCode, n -> Integer.parseInt(n.getRoughCode())));
+
+        Map<Long, String> levelsMap = markTasks.stream().collect(Collectors.toMap(MarkTaskRoughLevel::getMarkerId, o -> o.getResult().toUpperCase()));
+        LOGGER.info("this:{} markLogAop异步回调进来了", this);
+        arbitrateCallback.judge(levelsMap, deviation, new ArbitrateResult() {
+            @Override
+            public void callback(List<ArbitrateCallback.Distance> list) {
+                LOGGER.info("this:{} callback markLogAop异步回调进来了", this);
+                String operResult = DEFAULT_RESULT;
+                //全部打回则不触发自动仲裁
+                if (Objects.nonNull(list) && !list.isEmpty() && markTasks.size() != list.size()) {
+                    paper.reject(null);
+                    List<MarkLog> markLogList = new ArrayList<>();
+                    Date date = new Date();
+                    for (ArbitrateCallback.Distance d : list) {
+                        for (MarkTaskRoughLevel m : markTasks) {
+                            if (Objects.equals(String.valueOf(d.getC()), m.getResult()) && d.getMarkId().longValue() == m.getMarkerId().longValue()) {
+                                m.setDeviationDirection(MarkingRoughLevelService.calcDeviationDirection(levelMap, m.getResult(), daterMineResult));
+                                m.setRejected(true);
+                                m.setOriginLevel(m.getResult());
+                                m.setResult(null);
+                                m.setLevel(null);
+                                MarkLog markLogPrev = markLogRepo.findTopByCreateUserIdAndOperTypeAndSubjectAndExamNumberOrderByCreateTimeDesc(m.getMarkerId(), MarkLogOperType.SYSTEM_CALLBACK_LEVEl.getId(), m.getSubject().toString(), paper.getExamNumber());
+                                if (Objects.nonNull(markLogPrev)) {
+                                    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, date);
+                                markLogList.add(markLog);
+                            }
+                        }
+                    }
+                    int count = markTaskJobRepo.updateMarkTaskJobByVersion(markTaskJob.getId(), markTaskJob.getVersion());
+                    if (count > 0) {
+                        markTaskRoughLevelRepo.save(markTasks);
+                        paperRepo.save(paper);
+                        markLogRepo.save(markLogList);
+                    }
+                }
+                LOGGER.info("this:{} callback markLogAop异步回调结束了", this);
+            }
+        });
+        LOGGER.info("this:{} markLogAop异步回调结束了", this);
+    }
+
 
     /**
      * 查询处于哪个档位公用

+ 0 - 15
stmms-ms-main/src/main/java/cn/com/qmth/stmms/ms/quartz/ScheduledTask.java

@@ -9,9 +9,6 @@ import cn.com.qmth.stmms.ms.core.domain.task.MarkTaskLevel;
 import cn.com.qmth.stmms.ms.core.domain.task.MarkTaskRoughLevel;
 import cn.com.qmth.stmms.ms.core.domain.task.MarkTaskScore;
 import cn.com.qmth.stmms.ms.core.repository.*;
-import cn.com.qmth.stmms.ms.log.aop.MarkLogAop;
-import cn.com.qmth.stmms.ms.marking.config.MarkingConfig;
-import cn.com.qmth.stmms.ms.marking.service.MarkingService;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.scheduling.annotation.Async;
@@ -46,9 +43,6 @@ public class ScheduledTask implements InitializingBean {
     @Resource
     WorkRepo workRepo;
 
-    @Resource
-    MarkTaskJobRepo markTaskJobRepo;
-
     @Resource
     MarkTaskRoughLevelRepo markTaskRoughLevelRepo;
 
@@ -58,15 +52,6 @@ public class ScheduledTask implements InitializingBean {
     @Resource
     MarkTaskScoreRepo markTaskScoreRepo;
 
-    @Resource
-    MarkLogAop markLogAop;
-
-    @Resource
-    MarkingService markingService;
-
-    @Resource
-    MarkingConfig markingConfig;
-
     boolean repairPaper = false, repairTask = false, markTaskJob = false;
 
     /**

+ 14 - 45
stmms-ms-main/src/main/resources/application-dev.properties

@@ -1,6 +1,6 @@
 db.host=localhost
 db.port=3306
-db.dbName=msyj-local-v3.0.0
+db.dbName=msyj-local-v3.1.0
 db.userName=root
 db.password=root
 
@@ -21,7 +21,7 @@ server.compression.mime-types: application/json,application/xml,text/html,text/x
 
 
 logging.file=./logs/sys.log
-#logging.level.root\u4E0A\u7EBF\u6539\u4E3A error
+#logging.level.root???? error
 logging.level.root=info
 logging.level.org.springframework=info
 logging.level.org.hibernate=info
@@ -38,64 +38,33 @@ spring.http.multipart.max-file-size=10Mb
 app.config.roundUp=true
 app.config.deviation=4
 app.config.majority=true
-#\u8D85\u7EA7\u7BA1\u7406\u5458\u8D26\u53F7
-app.admin.loginName=admin
-#\u8D85\u7EA7\u7BA1\u7406\u5458\u5BC6\u7801
+#??????????????,???????admin,admin1,admin2
+app.admin.loginName=admin,xf,zj
+#???????
 app.admin.password=123456
-#\u91C7\u96C6\u7AEF-\u8D85\u7EA7\u7BA1\u7406\u5458\u8D26\u53F7
-#app.client.loginName=client-cy
-#\u91C7\u96C6\u7AEF-\u8D85\u7EA7\u7BA1\u7406\u5458\u5BC6\u7801
-#app.client.password=123456
-#\u5BA2\u6237\u7AEF-\u8D85\u7EA7\u7BA1\u7406\u5458\u8D26\u53F7
-#app.upload.loginName=upload-cy
-#\u5BA2\u6237\u7AEF-\u8D85\u7EA7\u7BA1\u7406\u5458\u5BC6\u7801
-#app.upload.password=123456
-#\u7EAA\u68C0\u89D2\u8272\u8D26\u53F7
-#app.inspection.loginName=inspection-cy
-#\u7EAA\u68C0\u89D2\u8272\u5BC6\u7801
-#app.inspection.password=123456
-
-#\u4E34\u65F6\u76EE\u5F55
-#sys.config.locationTempDir=data\\msyj\\temp
 
+#????
+#sys.config.locationTempDir=data\\msyj\\temp
 #server.tomcat.basedir=\\data\\msyj\\temp
 
-#\u56FE\u7247\u4FDD\u5B58\u76EE\u5F55
+#??????
 sys.config.localhostPath=upload
 sys.config.imageDir=upload\\images
 sys.config.thumbDir=upload\\thumbs
 sys.config.sheetDir=upload\\sheet
 sys.config.watermark=upload\\watermark
-#\u662F\u5426\u5F00\u542F\u56FE\u7247\u52A0\u5BC6
+#????????
 sys.open.imageEnc=false
-#\u662F\u5426\u5F00\u542F\u81EA\u5B9A\u4E49\u79D1\u76EE\u8003\u8BD5
+#???????????
 sys.open.customSubject=false
-#\u662F\u5426\u5F00\u542F\u6863\u4F4D\u4EF2\u88C1\u81EA\u52A8\u6253\u56DE
-sys.level.autoCallback=true
-#sys.config.imageDir=.\\static\\images
-#sys.config.thumbDir=.\\static\\thumbs
+
 sys.config.compression.percent=60
-#sys.config.imageServer.port=3000
 sys.config.imageServer.port=9000
-sys.config.imageServer.ip=localhost
+sys.config.imageServer.ip=192.168.10.140
 sys.config.imageServer.aliyunOss=false
 sys.config.imageServer.dir=ms-test
 
-#\u6253\u5206\u9636\u6BB5\u914D\u7F6E\u662F\u5426\u542F\u7528(\u4E3Afalse\u5219\u4E0D\u542F\u7528\u6253\u5206\u9636\u6BB5\u5206\u6863)
-score.level.enable=false
-#\u6253\u5206\u9636\u6BB5\u914D\u7F6E\u8FC7\u6EE4\u6863\u4F4D(\u53EF\u9009\u4E00\u4E2A\u6216\u591A\u4E2A\u6863\u4F4D\uFF0C\u591A\u4E2A\u6863\u4F4D\u7528","\u53F7\u9694\u5F00)
-score.level.exclude=
-#\u6253\u5206\u9636\u6BB5\u914D\u7F6E\u6863\u4F4D\u6392\u5E8F\u89C4\u5219(\u53EF\u9009random/paper\uFF0C\u4E3Apaper\u65F6\uFF0Cscore.level.exclude\u7F6E\u4E3A\u7A7A)
-score.level.taskSort=paper
-
-#\u6837\u4F8B1
-#score.level.exclude=K
-#score.level.taskSort=random
-#\u6837\u4F8B2
-#score.level.exclude=
-#score.level.taskSort=paper
-
-#\u524D\u7AEF\u9759\u6001\u8D44\u6E90\u76EE\u5F55
+#??????
 web.upload-path=D:\\company\\qmth\\bat-pro\\msyj\\local\\msyj-local-v3.1.0-nginx\\dist\\
 spring.mvc.static-path-pattern=/**
 spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:${sys.config.localhostPath},file:${web.upload-path}
@@ -105,7 +74,7 @@ app.snapshot.fdsql=/Users/yuanpan/dumps/stmms-ms-2-fendang.sql
 app.snapshot.dfsql=/Users/yuanpan/dumps/stmms-ms-2-dafen.sql
 app.snapshot.fpsql=/Users/yuanpan/dumps/stmms-ms-2-fuping.sql
 
-#\u963F\u91CC\u4E91OSS\u914D\u7F6E
+#???OSS??
 aliyun.oss.endpointInner=http://oss-cn-beijing-internal.aliyuncs.com
 aliyun.oss.endpoint=https://oss-cn-beijing.aliyuncs.com
 aliyun.oss.accessKeyId=LTAIhiBoG7CsLnoy

+ 1 - 1
stmms-ms-main/src/main/resources/application.properties

@@ -1,4 +1,4 @@
-spring.profiles.active=dev
+#spring.profiles.active=dev
 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/stmms-ms-2?useUnicode=true&characterEncoding=UTF-8
 spring.datasource.username=root
 spring.datasource.password=root

+ 0 - 103
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/AutoRun.java

@@ -1,103 +0,0 @@
-package cn.com.qmth.stmms.ms.marking.service;
-
-import cn.com.qmth.stmms.ms.core.domain.Level;
-import cn.com.qmth.stmms.ms.core.domain.MarkStage;
-import cn.com.qmth.stmms.ms.core.domain.MarkSubject;
-import cn.com.qmth.stmms.ms.core.domain.Paper;
-import cn.com.qmth.stmms.ms.core.domain.task.MarkTaskLevel;
-import cn.com.qmth.stmms.ms.core.domain.task.MarkTaskScore;
-import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
-import cn.com.qmth.stmms.ms.core.domain.user.Role;
-import cn.com.qmth.stmms.ms.core.repository.*;
-import cn.com.qmth.stmms.ms.core.vo.Subject;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Random;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-/**
- * 调试用
- * Created by dizhi on 2016/12/23.
- */
-@Service
-public class AutoRun {
-
-    @Autowired
-    private MarkUserRepo markUserRepo;
-
-    @Autowired
-    private MarkSubjectRepo markSubjectRepo;
-
-    @Autowired
-    private MarkTaskLevelRepo markTaskLevelRepo;
-
-    @Autowired
-    private MarkTaskScoreRepo markTaskScoreRepo;
-
-    @Autowired
-    private LevelRepo levelRepo;
-
-    @Autowired
-    private MarkingService markingService;
-
-    @Autowired
-    private MarkingLevelService markingLevelService;
-
-    @Autowired
-    private MarkingScoreService markingScoreService;
-
-    @Autowired
-    private PaperRepo paperRepo;
-
-    public void run(Long workId, Subject subject) {
-        MarkSubject markSubject = markSubjectRepo.findOne(workId + "-" + subject.toString());
-        List<MarkUser> markers = markUserRepo.findByWorkIdAndSubjectAndRole(workId, subject, Role.MARKER);
-        ExecutorService executor = Executors.newFixedThreadPool(markers.size());
-        markers.forEach(m -> {
-            executor.submit(this.buildTask(m, markSubject.getStage()));
-        });
-    }
-
-    private Runnable buildTask(MarkUser marker, MarkStage markStage) {
-        Runnable task = null;
-        if (markStage == MarkStage.LEVEL) {
-            List<MarkTaskLevel> markTasks = markTaskLevelRepo.findByMarkerIdAndStage(marker.getId(), markStage);
-            List<Level> levels = levelRepo.findByWorkId(marker.getWorkId());
-            task = () -> {
-                markTasks.forEach(t -> {
-                    Random random = new Random();
-                    int index = random.nextInt(levels.size());
-                    markingLevelService.levelMark(t, levels.get(index).getCode());
-                });
-            };
-        } else if (markStage == MarkStage.SCORE) {
-            List<MarkTaskScore> markTasks = markTaskScoreRepo.findByMarkerIdAndStage(marker.getId(), markStage);
-            task = () -> {
-                markTasks.forEach(t -> {
-                    Paper paper = paperRepo.findOne(t.getPaper().getId());
-                    Level level = levelRepo.findByWorkIdAndCode(marker.getWorkId(), paper.getLevel());
-                    List<Integer> scores = new ArrayList<Integer>();
-                    if (level.getLevelType() == Level.LevelType.ADMITED) {
-                        for (int i = level.getMinScore(); i <= level.getMaxScore(); i += level.getIntervalScore()) {
-                            scores.add(i);
-                        }
-                    } else {
-                        String[] strs = level.getScoreList().split(",");
-                        for (String s : strs) {
-                            scores.add(Integer.parseInt(s));
-                        }
-                    }
-                    Random random = new Random();
-                    int index = random.nextInt(scores.size());
-                    markingScoreService.scoring(t, scores.get(index));
-                });
-            };
-        }
-
-        return task;
-    }
-}

+ 1 - 1
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/DetermineRoughLevelService.java

@@ -145,7 +145,7 @@ public class DetermineRoughLevelService {
     }
 
 
-    private List<RoughLevel> parseRoughLevels(List<Level> levels){
+    public static List<RoughLevel> parseRoughLevels(List<Level> levels){
         List<RoughLevel> roughLevels = new ArrayList<>();
 
         Map<String, List<Level>> listMap = levels.stream().collect(Collectors.groupingBy(Level::getRoughCode));

+ 0 - 4
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/MarkingLevelService.java

@@ -1,6 +1,5 @@
 package cn.com.qmth.stmms.ms.marking.service;
 
-import cn.com.qmth.stmms.ms.commons.config.LevelConfig;
 import cn.com.qmth.stmms.ms.commons.constant.ArbitrateCallback;
 import cn.com.qmth.stmms.ms.commons.constant.ArbitrateResult;
 import cn.com.qmth.stmms.ms.core.cache.ParamCache;
@@ -54,9 +53,6 @@ public class MarkingLevelService {
     @Autowired
     WorkRepo workRepo;
 
-    @Autowired
-    LevelConfig levelConfig;
-
     @Autowired
     ArbitrateCallback arbitrateCallback;
 

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

@@ -1,11 +1,9 @@
 package cn.com.qmth.stmms.ms.marking.service;
 
-import cn.com.qmth.stmms.ms.commons.config.LevelConfig;
 import cn.com.qmth.stmms.ms.commons.constant.ArbitrateCallback;
 import cn.com.qmth.stmms.ms.commons.constant.ArbitrateResult;
 import cn.com.qmth.stmms.ms.core.cache.ParamCache;
 import cn.com.qmth.stmms.ms.core.domain.*;
-import cn.com.qmth.stmms.ms.core.domain.task.MarkTaskLevel;
 import cn.com.qmth.stmms.ms.core.domain.task.MarkTaskRoughLevel;
 import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
 import cn.com.qmth.stmms.ms.core.domain.user.Role;
@@ -58,9 +56,6 @@ public class MarkingRoughLevelService {
     @Autowired
     WorkRepo workRepo;
 
-    @Autowired
-    LevelConfig levelConfig;
-
     @Autowired
     ArbitrateCallback arbitrateCallback;
 

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

@@ -1,6 +1,5 @@
 package cn.com.qmth.stmms.ms.marking.service;
 
-import cn.com.qmth.stmms.ms.commons.config.LevelConfig;
 import cn.com.qmth.stmms.ms.commons.constant.ArbitrateCallback;
 import cn.com.qmth.stmms.ms.core.cache.CacheService;
 import cn.com.qmth.stmms.ms.core.cache.ParamCache;
@@ -44,9 +43,6 @@ public class MarkingScoreService {
     @Autowired
     WorkRepo workRepo;
 
-    @Autowired
-    LevelConfig levelConfig;
-
     @Autowired
     ArbitrateCallback arbitrateCallback;
 
@@ -62,9 +58,6 @@ public class MarkingScoreService {
     @Autowired
     ChangeLevelRepo changeLevelRepo;
 
-    @Autowired
-    private CacheService cacheService;
-
     @Autowired
     AssignTaskService assignTaskService;
 

+ 0 - 101
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/MarkingService.java

@@ -1,6 +1,5 @@
 package cn.com.qmth.stmms.ms.marking.service;
 
-import cn.com.qmth.stmms.ms.commons.config.LevelConfig;
 import cn.com.qmth.stmms.ms.commons.constant.ArbitrateCallback;
 import cn.com.qmth.stmms.ms.core.cache.CacheService;
 import cn.com.qmth.stmms.ms.core.domain.ChangeLevel;
@@ -9,7 +8,6 @@ import cn.com.qmth.stmms.ms.core.domain.user.MarkUser;
 import cn.com.qmth.stmms.ms.core.domain.user.Role;
 import cn.com.qmth.stmms.ms.core.repository.*;
 import cn.com.qmth.stmms.ms.core.vo.Subject;
-import cn.com.qmth.stmms.ms.marking.config.MarkingConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,11 +29,6 @@ import java.util.stream.Collectors;
 public class MarkingService {
 
     private static final Logger LOG = LoggerFactory.getLogger(MarkingService.class);
-    @Autowired
-    private MarkingConfig markingConfig;
-
-    @Autowired
-    private DetermineLevelService determineLevelService;
 
     @Autowired
     private MarkUserRepo markUserRepo;
@@ -43,27 +36,15 @@ public class MarkingService {
     @Autowired
     private PaperRepo paperRepo;
 
-    @Autowired
-    private LevelRepo levelRepo;
-
-    @Autowired
-    MarkingService markingService;
-
     @Autowired
     MarkLogRepo markLogRepo;
 
     @Autowired
     WorkRepo workRepo;
 
-    @Autowired
-    LevelConfig levelConfig;
-
     @Autowired
     ArbitrateCallback arbitrateCallback;
 
-    @Resource
-    MarkTaskJobRepo markTaskJobRepo;
-
     @Autowired
     MarkerGroupRepo markerGroupRepo;
 
@@ -91,88 +72,6 @@ public class MarkingService {
     @Resource
     private MarkTaskScoreRepo markTaskScoreRepo;
 
-    /**
-     * 档位落差值计算日志
-     *
-     * @param markTasks
-     * @param paper
-     */
-    /*@Transactional
-    public void levelsLog(List<MarkTask> markTasks, Paper paper) {
-        //20191108wangliang加入档位落差值计算
-        LOG.info("this:{} levelsLog异步回调进来了", this);
-        JSONObject js = new JSONObject();
-        js.put("paperId", paper.getId());
-        js.put("type", "levelsLog");
-        MarkTaskJob markTaskJob = new MarkTaskJob(js.toJSONString(), false, paper.getWorkId());
-        levelsLog(markTasks, paper, markTaskJob);
-        markTaskJobRepo.save(markTaskJob);
-        LOG.info("this:{} levelsLog异步回调结束了", this);
-    }*/
-
-    /**
-     * 档位落差值计算日志
-     *
-//     * @param markTasks
-//     * @param paper
-//     * @param markTaskJob
-     *//*
-    public void levelsLog(List<MarkTask> markTasks, Paper paper, MarkTaskJob markTaskJob) {
-//        List<MarkTask> result = markTasks.stream().filter(x -> Objects.isNull(x.getResult())).collect(Collectors.toList());
-//        if (Objects.nonNull(result) && result.size() > 0) {
-//            LOG.info("数据有误,未完成评卷任务");
-//            markTaskJobRepo.updateMarkTaskJobByVersion(markTaskJob.getId(), markTaskJob.getVersion());
-//            return;
-//        }
-        Map<Long, String> levelsMap = markTasks.stream().collect(Collectors.toMap(MarkTask::getMarkerId, o -> o.getResult().toUpperCase()));
-        arbitrateCallback.judge(levelsMap, paper.getLevel(), new ArbitrateResult() {
-            @Override
-            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()) {
-                            MarkLog markLogPrev = markLogRepo.findTopByCreateUserIdAndOperTypeAndSubjectAndExamNumberOrderByCreateTimeDesc(m.getMarkerId(), MarkLogOperType.LEVEl_DIFFERENCE.getId(), m.getSubject().toString(), paper.getExamNumber());
-                            JSONObject jsonObject = new JSONObject();
-                            jsonObject.put("task", m.getResult());
-                            jsonObject.put("paper", paper.getLevel());
-                            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(), date);
-                                markLogRepo.save(markLog);
-                            } else {//更新日志
-                                operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse("-");
-                                markLogPrev.setOperDataBefore(operResult);
-                                markLogPrev.setOperDataAfter(String.valueOf(d.getDistance()));
-                                markLogPrev.setRemark(jsonObject.toJSONString());
-                                markLogRepo.save(markLogPrev);
-                            }
-                            //档位偏差
-                            MarkLog markLogDevi = markLogRepo.findTopByCreateUserIdAndOperTypeAndSubjectAndExamNumberOrderByCreateTimeDesc(m.getMarkerId(), MarkLogOperType.LEVEl_DEVIATION.getId(), m.getSubject().toString(), paper.getExamNumber());
-                            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(), date);
-                                markLogRepo.save(markLog);
-                            } else {//更新日志
-                                operResult = Optional.ofNullable(markLogDevi.getOperDataAfter()).orElse("-");
-                                markLogDevi.setOperDataBefore(operResult);
-                                markLogDevi.setOperDataAfter(String.valueOf(d.getDeviation()));
-                                markLogDevi.setRemark(jsonObject.toJSONString());
-                                markLogRepo.save(markLogDevi);
-                            }
-                        }
-                    }
-                }
-                markTaskJobRepo.updateMarkTaskJobByVersion(markTaskJob.getId(), markTaskJob.getVersion());
-                LOG.info("this:{},callback levelsLog异步回调结束了", this);
-            }
-        });
-    }*/
-
     @Transactional
     public void subjectReset(Long workId, Subject subject, MarkStage stage) {
         // 清除mark_user分组

+ 0 - 4
stmms-ms-marking/src/main/java/cn/com/qmth/stmms/ms/marking/service/StageControlService.java

@@ -1,6 +1,5 @@
 package cn.com.qmth.stmms.ms.marking.service;
 
-import cn.com.qmth.stmms.ms.commons.config.ScoreConfig;
 import cn.com.qmth.stmms.ms.commons.utils.DbBackupUtils;
 import cn.com.qmth.stmms.ms.commons.utils.SqlUtil;
 import cn.com.qmth.stmms.ms.core.cache.CacheService;
@@ -64,9 +63,6 @@ public class StageControlService {
     @Autowired
     private TaskPublishSettingRepo taskPublishSettingRepo;
 
-    @Autowired
-    ScoreConfig scoreConfig;
-
     @Autowired
     SqlUtil sqlUtil;