|
@@ -194,11 +194,13 @@ public class MarkLogAop {
|
|
|
JSONArray jsonArgsArray = (JSONArray) map.get(PARAM_ARGS);
|
|
|
MarkUser markUser = (MarkUser) map.get(MARK_USER);
|
|
|
JSONObject aopResult = JSONObject.parseObject(JSONObject.toJSONString(result));
|
|
|
- boolean isRejected = false, oldRejected = false;
|
|
|
+ boolean isRejected = false, oldRejected = false, oldShift = false, oldShiftScore = false;
|
|
|
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();//旧的改档打分
|
|
|
}
|
|
|
JSONObject jsonObject = (JSONObject) jsonArgsArray.get(0);
|
|
|
Paper paper = JSONObject.parseObject(((JSONObject) jsonObject.get(PAPER)).toJSONString(), Paper.class);
|
|
@@ -210,9 +212,17 @@ public class MarkLogAop {
|
|
|
if (markStage.ordinal() == 1 && paper.isMarkByLeader()) {//分档,如果已经有科组长定档,则不允许评卷员再分档
|
|
|
return;
|
|
|
} else if (markStage.ordinal() == 1 && oldRejected && !isRejected) {//档位打回回评
|
|
|
- operType = MarkLogOperType.CALLBACK_ONCE_LEVEL.getId();
|
|
|
+ if(oldShift){
|
|
|
+ operType = MarkLogOperType.CHANGE_LEVEL.getId();
|
|
|
+ } else {
|
|
|
+ operType = MarkLogOperType.CALLBACK_ONCE_LEVEL.getId();
|
|
|
+ }
|
|
|
} else if (markStage.ordinal() == 2) {//打分
|
|
|
- operType = MarkLogOperType.SCORE.getId();
|
|
|
+ if(oldShiftScore){
|
|
|
+ operType = MarkLogOperType.CHANGE_SCORE.getId();
|
|
|
+ } else {
|
|
|
+ operType = MarkLogOperType.SCORE.getId();
|
|
|
+ }
|
|
|
}
|
|
|
//先查是否有档位或分数打回
|
|
|
String operResult = DEFAULT_RESULT;
|
|
@@ -221,7 +231,11 @@ public class MarkLogAop {
|
|
|
MarkLog markLogPrev = markLogRepo.findTopByCreateUserIdAndOperTypeAndSubjectAndExamNumberOrderByCreateTimeDesc(markUser.getId(), MarkLogOperType.CALLBACK_ONCE_LEVEL.getId(), markUser.getSubject().toString(), paper.getExamNumber());
|
|
|
if (Objects.isNull(markLogPrev)) {//如果为null,则再查分档和回评档位
|
|
|
if (oldRejected && !isRejected) {//档位打回
|
|
|
- operType = MarkLogOperType.CALLBACK_ONCE_LEVEL.getId();
|
|
|
+ if(oldShift){
|
|
|
+ operType = MarkLogOperType.CHANGE_LEVEL.getId();
|
|
|
+ } else {
|
|
|
+ operType = MarkLogOperType.CALLBACK_ONCE_LEVEL.getId();
|
|
|
+ }
|
|
|
} else {
|
|
|
operType = selectOperType(markUser.getId(), MarkLogOperType.LEVEL.getId(), MarkLogOperType.ONCE_LEVEl.getId(), markUser.getSubject().toString(), paper.getExamNumber());
|
|
|
markLogPrev = markLogRepo.findTopByCreateUserIdAndOperTypeAndSubjectAndExamNumberOrderByCreateTimeDesc(markUser.getId(), operType, markUser.getSubject().toString(), paper.getExamNumber());
|
|
@@ -238,7 +252,7 @@ public class MarkLogAop {
|
|
|
operType = MarkLogOperType.CALLBACK_ONCE_LEVEL.getId();//档位打回
|
|
|
operResult = Optional.ofNullable(markLogPrev.getOperDataAfter()).orElse(DEFAULT_RESULT);
|
|
|
}
|
|
|
- } else if (markStage.ordinal() == 2) {//打分
|
|
|
+ } else if (markStage.ordinal() == 2 && !oldShiftScore) {//打分
|
|
|
operType = selectOperType(markUser.getId(), MarkLogOperType.SCORE.getId(), MarkLogOperType.ONCE_SCORE.getId(), markUser.getSubject().toString(), paper.getExamNumber());
|
|
|
MarkLog markLogPrev = markLogRepo.findTopByCreateUserIdAndOperTypeAndSubjectAndExamNumberOrderByCreateTimeDesc(markUser.getId(), operType, markUser.getSubject().toString(), paper.getExamNumber());
|
|
|
if (Objects.nonNull(markLogPrev)) {
|