|
@@ -1,19 +1,22 @@
|
|
|
package com.qmth.teachcloud.mark.service.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.metadata.OrderItem;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.qmth.boot.api.exception.ApiException;
|
|
|
import com.qmth.teachcloud.common.contant.SystemConstant;
|
|
|
-import com.qmth.teachcloud.common.entity.BasicCourse;
|
|
|
-import com.qmth.teachcloud.common.entity.MarkQuestion;
|
|
|
-import com.qmth.teachcloud.common.entity.SysUser;
|
|
|
+import com.qmth.teachcloud.common.entity.*;
|
|
|
import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
|
+import com.qmth.teachcloud.common.enums.log.OperationTypeEnum;
|
|
|
import com.qmth.teachcloud.common.enums.mark.*;
|
|
|
import com.qmth.teachcloud.common.service.BasicCourseService;
|
|
|
+import com.qmth.teachcloud.common.service.BasicOperationLogService;
|
|
|
import com.qmth.teachcloud.common.service.SysUserService;
|
|
|
import com.qmth.teachcloud.common.service.TeachcloudCommonService;
|
|
|
import com.qmth.teachcloud.common.util.ServletUtil;
|
|
|
+import com.qmth.teachcloud.mark.bean.archivescore.MarkStudentScoreVo;
|
|
|
+import com.qmth.teachcloud.mark.dto.mark.MarkStudentVo;
|
|
|
import com.qmth.teachcloud.mark.dto.mark.ScoreItem;
|
|
|
import com.qmth.teachcloud.mark.dto.mark.manage.Task;
|
|
|
import com.qmth.teachcloud.mark.dto.mark.mark.MarkGroupDto;
|
|
@@ -117,6 +120,8 @@ public class MarkServiceImpl implements MarkService {
|
|
|
private SysUserService sysUserService;
|
|
|
@Resource
|
|
|
private MarkRejectHistoryService markRejectHistoryService;
|
|
|
+ @Resource
|
|
|
+ private BasicOperationLogService basicOperationLogService;
|
|
|
|
|
|
/**
|
|
|
* 释放某个评卷员已完成的评卷任务
|
|
@@ -684,6 +689,8 @@ public class MarkServiceImpl implements MarkService {
|
|
|
paperNumber, group.getNumber(), false);
|
|
|
List<MarkSubjectiveScore> subjectiveScores = markSubjectiveScoreService.listByStudentIdAndGroupNumber(studentId,
|
|
|
group.getNumber());
|
|
|
+ // 记录修改日志(按小题)
|
|
|
+ List<BasicOperationLog> basicOperationLogs = new ArrayList<>();
|
|
|
for (int i = 0; i < questions.size(); i++) {
|
|
|
MarkQuestion question = questions.get(i);
|
|
|
MarkSubjectiveScore ss;
|
|
@@ -701,6 +708,12 @@ public class MarkServiceImpl implements MarkService {
|
|
|
ss.setSubNumber(question.getSubNumber());
|
|
|
if (score != UN_SELECTIVE_SCORE) {
|
|
|
ScoreItem item = scoreList.get(i);
|
|
|
+ // 分数有变动,记录日志
|
|
|
+ if (ss.getScore() != null && ss.getScore().doubleValue() != item.getScore().doubleValue()) {
|
|
|
+ MarkStudentVo markStudent = markStudentService.getDetailById(studentId);
|
|
|
+ String detail = String.format("%s(%s)课程%s试卷编号下,将%s(%s)的%s题从%s分修改为%s分", markStudent.getCourseName(), markStudent.getCourseCode(), markStudent.getPaperNumber(), markStudent.getStudentName(), markStudent.getStudentCode(), question.getMainNumber() + "-" + question.getSubNumber(), ss.getScore(), item.getScore());
|
|
|
+ basicOperationLogs.add(new BasicOperationLog(Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString()), OperationTypeEnum.SCORE, OperationTypeEnum.SCORE.getName(), ServletUtil.getRequest().getServletPath(), detail, JSON.toJSONString(scoreList), "成功", ServletUtil.getRequestUserId()));
|
|
|
+ }
|
|
|
ss.setScore(item.getScore());
|
|
|
ss.setMainScore(0.0);
|
|
|
ss.setUncalculate(false);
|
|
@@ -719,6 +732,10 @@ public class MarkServiceImpl implements MarkService {
|
|
|
// }
|
|
|
markSubjectiveScoreService.saveOrUpdateByMultiId(ss);
|
|
|
}
|
|
|
+ // 记录日志
|
|
|
+ if (CollectionUtils.isNotEmpty(basicOperationLogs)) {
|
|
|
+ basicOperationLogService.saveBatch(basicOperationLogs);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private void scoreCalculate(Long studentId) {
|
|
@@ -732,7 +749,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
for (MarkSubjectiveScore ss : list) {
|
|
|
List<MarkSubjectiveScore> mainScoreList = mainScoreMap.get(ss.getMainNumber());
|
|
|
if (mainScoreList == null) {
|
|
|
- mainScoreList = new ArrayList<MarkSubjectiveScore>();
|
|
|
+ mainScoreList = new ArrayList<>();
|
|
|
}
|
|
|
mainScoreList.add(ss);
|
|
|
mainScoreMap.put(ss.getMainNumber(), mainScoreList);
|
|
@@ -1071,7 +1088,7 @@ public class MarkServiceImpl implements MarkService {
|
|
|
}
|
|
|
MarkUserGroup markUserGroup = markUserGroupService.getByExamIdAndPaperNumberAndGroupNumberAndUserId(examId,
|
|
|
paperNumber, groupNumber, userId);
|
|
|
- if(markUserGroup == null){
|
|
|
+ if (markUserGroup == null) {
|
|
|
throw ExceptionResultEnum.ERROR.exception("评卷任务被重置,请点击右上角返回按钮,重新在评卷入口菜单点击评卷");
|
|
|
}
|
|
|
Task task = null;
|