|
@@ -13,6 +13,7 @@ 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.MarkingService;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
@@ -195,12 +196,14 @@ public class MarkLogAop {
|
|
|
MarkUser markUser = (MarkUser) map.get(MARK_USER);
|
|
|
JSONObject aopResult = JSONObject.parseObject(JSONObject.toJSONString(result));
|
|
|
boolean isRejected = false, oldRejected = false, oldShift = false, oldShiftScore = false;
|
|
|
+ String daterMineResult = null;
|
|
|
if (Objects.nonNull(aopResult)) {
|
|
|
MarkTaskDTO resultBody = JSONObject.parseObject(((JSONObject) aopResult.get(BODY)).toJSONString(), MarkTaskDTO.class);
|
|
|
isRejected = resultBody.isRejected();//新的是否撤档
|
|
|
oldRejected = resultBody.isOldRejected();//旧的是否撤档
|
|
|
oldShift = resultBody.isShift();//旧的改档
|
|
|
oldShiftScore = resultBody.isShiftScore();//旧的改档打分
|
|
|
+ daterMineResult = resultBody.getDateMineResult();
|
|
|
}
|
|
|
JSONObject jsonObject = (JSONObject) jsonArgsArray.get(0);
|
|
|
Paper paper = JSONObject.parseObject(((JSONObject) jsonObject.get(PAPER)).toJSONString(), Paper.class);
|
|
@@ -280,7 +283,7 @@ public class MarkLogAop {
|
|
|
js.put("deviation", deviation.intValue());
|
|
|
MarkTaskJob markTaskJob = new MarkTaskJob(js.toJSONString(), false, paper.getWorkId());
|
|
|
markTaskJobRepo.save(markTaskJob);
|
|
|
- autoCallback(markTasks, deviation.intValue(), paper, markTaskJob, work.getName());
|
|
|
+ autoCallback(markTasks, deviation.intValue(), paper, markTaskJob, work.getName(), daterMineResult);
|
|
|
}
|
|
|
}
|
|
|
//20191107wangliang加入仲裁自动打回算法 end
|
|
@@ -295,7 +298,7 @@ public class MarkLogAop {
|
|
|
* @param markTaskJob
|
|
|
* @param workName
|
|
|
*/
|
|
|
- public void autoCallback(List<MarkTask> markTasks, int deviation, Paper paper, MarkTaskJob markTaskJob, String workName) {
|
|
|
+ public void autoCallback(List<MarkTask> markTasks, int deviation, Paper paper, MarkTaskJob markTaskJob, String workName, String daterMineResult) {
|
|
|
List<MarkTask> result = markTasks.stream().filter(x -> Objects.isNull(x.getResult())).collect(Collectors.toList());
|
|
|
if (Objects.nonNull(result) && result.size() > 0) {
|
|
|
LOGGER.info("数据有误,未完成评卷任务");
|
|
@@ -321,7 +324,7 @@ public class MarkLogAop {
|
|
|
for (ArbitrateCallback.Distance d : list) {
|
|
|
for (MarkTask m : markTasks) {
|
|
|
if (Objects.equals(String.valueOf(d.getC()), m.getResult()) && d.getMarkId().longValue() == m.getMarkerId().longValue()) {
|
|
|
- m.setDeviationDirection(calcDeviationDirection(levelMap, m.getResult(), m.getLevel()));
|
|
|
+ m.setDeviationDirection(MarkingService.calcDeviationDirection(levelMap, m.getResult(), daterMineResult));
|
|
|
m.setRejected(true);
|
|
|
m.setOriginLevel(m.getResult());
|
|
|
m.setResult(null);
|
|
@@ -349,24 +352,6 @@ public class MarkLogAop {
|
|
|
LOGGER.info("this:{} markLogAop异步回调结束了", this);
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 计算偏差方向
|
|
|
- *
|
|
|
- * @param levelMap
|
|
|
- * @param result 定档档位
|
|
|
- * @param level 评卷员打的档位
|
|
|
- * @return
|
|
|
- */
|
|
|
- private String calcDeviationDirection(Map<String, Integer> levelMap, String result, String level) {
|
|
|
- if (StringUtils.isNotBlank(result) && StringUtils.isNotBlank(level)) {
|
|
|
- Integer resultInt = levelMap.get(result);
|
|
|
- Integer levelInt = levelMap.get(level);
|
|
|
- if (resultInt != null && levelInt != null) {
|
|
|
- return String.valueOf(levelInt.intValue() - levelInt.intValue());
|
|
|
- }
|
|
|
- }
|
|
|
- return null;
|
|
|
- }
|
|
|
|
|
|
/**
|
|
|
* 查询处于哪个档位公用
|