Quellcode durchsuchen

Merge branch 'dev_v3.4.4' into dev_v3.4.5

xiaofei vor 3 Monaten
Ursprung
Commit
e4bbc1600b

+ 12 - 7
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamStudentServiceImpl.java

@@ -198,6 +198,11 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
         String teacherCode = basicExamStudentParam.getTeacherCode();
         String paperType = basicExamStudentParam.getPaperType();
 
+        BasicExamRule basicExamRule = basicExamRuleService.getBySchoolId(schoolId);
+        if (basicExamRule == null) {
+            throw ExceptionResultEnum.ERROR.exception("通用规则未设置");
+        }
+
         if (StringUtils.isNotBlank(studentCode) && !studentCode.matches(SystemConstant.REGULAR_EXPRESSION_OF_STUDENT_CODE)) {
             throw ExceptionResultEnum.ERROR.exception("学号只能由大写字母、数字组成");
         }
@@ -363,16 +368,12 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
             basicExamStudent.setExamTime(time);
         }
 
-        parserRequiredField(basicExamStudent);
+        parserRequiredField(basicExamStudent, basicExamRule);
         return basicExamStudent;
     }
 
-    private void parserRequiredField(BasicExamStudent basicExamStudent) {
+    private void parserRequiredField(BasicExamStudent basicExamStudent, BasicExamRule basicExamRule) {
         // 组装requiredFields。extendFields前端传
-        BasicExamRule basicExamRule = basicExamRuleService.getBySchoolId(basicExamStudent.getSchoolId());
-        if (basicExamRule == null) {
-            throw ExceptionResultEnum.ERROR.exception("通用规则未设置");
-        }
         Map<String, EnumResult> enumResultMap = basicExamRule.getRequiredFieldList().stream().filter(m -> m.getEnable()).collect(Collectors.toMap(EnumResult::getCode, m -> m));
         List<CodeNameEnableDisabledValue> requiredFields = new ArrayList<>();
         Field[] declaredFields = basicExamStudent.getClass().getDeclaredFields();
@@ -602,6 +603,10 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
         Map<String, BasicExamStudent> courseIdStudentCodeMap = basicExamStudentList.stream().collect(Collectors.toMap(k -> k.getCourseId() + SystemConstant.HYPHEN + k.getStudentCode(), Function.identity(), (v1, v2) -> v1));
 
         BasicSchool basicSchool = commonCacheService.schoolCache(schoolId);
+        BasicExamRule basicExamRule = basicExamRuleService.getBySchoolId(schoolId);
+        if (basicExamRule == null) {
+            throw ExceptionResultEnum.ERROR.exception("通用规则未设置");
+        }
         // 学校设置强制校验卷型或者模式4
         boolean needPaperNumber = (basicSchool.getHasPaperNumber() != null && basicSchool.getHasPaperNumber());
         // 试卷编号->课程
@@ -771,7 +776,7 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
                         courseTeachClassTeacherMap.put(courseTeachClassTeacherKey, basicExamStudent.getTeacherId());
                     }
                 }
-                parserRequiredField(basicExamStudent);
+                parserRequiredField(basicExamStudent, basicExamRule);
                 basicExamStudents.add(basicExamStudent);
             } catch (Exception e) {
                 stringJoiner.add(e.getMessage());

+ 43 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/mark/MarkController.java

@@ -3,21 +3,30 @@ package com.qmth.distributed.print.api.mark;
 import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.mark.MarkMode;
 import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
+import com.qmth.teachcloud.mark.dto.mark.mark.SubmitResult;
+import com.qmth.teachcloud.mark.entity.MarkUserQuestion;
+import com.qmth.teachcloud.mark.enums.LockType;
 import com.qmth.teachcloud.mark.enums.QuestionModel;
+import com.qmth.teachcloud.mark.lock.LockService;
 import com.qmth.teachcloud.mark.params.MarkResult;
+import com.qmth.teachcloud.mark.params.MarkResultQuestion;
 import com.qmth.teachcloud.mark.service.MarkService;
 import com.qmth.teachcloud.mark.service.MarkUserPaperService;
+import com.qmth.teachcloud.mark.service.MarkUserQuestionService;
 import com.qmth.teachcloud.mark.utils.TaskLock;
 import com.qmth.teachcloud.mark.utils.TaskLockUtil;
 import io.lettuce.core.GeoArgs.Sort;
 import io.swagger.annotations.Api;
 import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -38,6 +47,7 @@ import java.util.Map;
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/mark")
 public class MarkController extends BaseController {
+    private final static Logger log = LoggerFactory.getLogger(MarkController.class);
 
     @Autowired
     private MarkService markService;
@@ -45,6 +55,10 @@ public class MarkController extends BaseController {
     private MarkUserPaperService markUserPaperService;
     @Autowired
     private SysUserService userService;
+    @Resource
+    private MarkUserQuestionService markUserQuestionService;
+    @Resource
+    LockService lockService;
 
     /**
      * 查询内存数据
@@ -95,10 +109,37 @@ public class MarkController extends BaseController {
 
     @RequestMapping(value = "/saveTask", method = RequestMethod.POST)
     public Result saveTask(@RequestParam Long examId, @RequestParam String paperNumber,
-                           @RequestBody MarkResult markResult) {
+                           @RequestBody MarkResult result) {
         validMarkPaperForMark(examId, paperNumber);
         SysUser user = (SysUser) ServletUtil.getRequestUser();
-        return ResultUtil.ok(markService.saveTask(examId, paperNumber, user.getId(), markResult));
+        Long userId = user.getId();
+
+        for (MarkResultQuestion question : result.getQuestionList()) {
+            MarkUserQuestion markUserQuestion = markUserQuestionService.getByExamIdAndPaperNumberAndQuestionIdAndUserId(examId, paperNumber, question.getQuestionId(), userId);
+            if (markUserQuestion == null) {
+                throw ExceptionResultEnum.ERROR.exception("评卷员未绑定题目" + question.getMainNumber() + "-" + question.getSubNumber());
+            }
+        }
+
+        SubmitResult sr;
+        try {
+            lockService.watch(LockType.EXAM_SUBJECT, examId, paperNumber);
+            lockService.watch(LockType.MARK_USER_QUESTION, userId);
+            lockService.waitlock(LockType.STUDENT, result.getStudentId());
+            sr = markService.saveTask(examId, paperNumber, user.getId(), result);
+            for (MarkResultQuestion markResultQuestion : result.getQuestionList()) {
+                markService.updateMarkedCount(examId, paperNumber, markResultQuestion.getQuestionId());
+            }
+        } catch (Exception e) {
+            log.error("save task error", e);
+            throw ExceptionResultEnum.ERROR.exception(e.getMessage());
+        } finally {
+            lockService.unlock(LockType.STUDENT, result.getStudentId());
+            lockService.unwatch(LockType.MARK_USER_QUESTION, userId);
+            lockService.unwatch(LockType.EXAM_SUBJECT, examId, paperNumber);
+        }
+
+        return ResultUtil.ok(sr);
     }
 
     @RequestMapping(value = "/getHistory", method = RequestMethod.POST)

+ 12 - 20
distributed-print/src/main/java/com/qmth/distributed/print/upgrade/DataUpgrade_3_4_4.java

@@ -12,6 +12,8 @@ import com.qmth.teachcloud.common.entity.MarkQuestion;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExamModelEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.ImportTemplateEnum;
+import com.qmth.teachcloud.common.util.FileUtil;
 import com.qmth.teachcloud.mark.dto.mark.MarkQuestionAnswerVo;
 import com.qmth.teachcloud.mark.dto.mark.manage.MarkerScoreDTO;
 import com.qmth.teachcloud.mark.dto.mark.manage.TaskQuestion;
@@ -34,6 +36,7 @@ import org.springframework.jdbc.core.JdbcTemplate;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
+import java.io.InputStream;
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
 import java.sql.Types;
@@ -55,13 +58,10 @@ public class DataUpgrade_3_4_4 implements DataUpgradeService {
 
     @Override
     public void process(JdbcTemplate jdbcTemplate) {
-        StringJoiner sj = new StringJoiner(File.separator);
-        sj.add(System.getProperty("user.dir")).add("distributed-print").add("install").add("mysql").add("upgrade");
-        String upgradePath = sj.toString();
-        log.info("数据库脚本根目录:" + upgradePath);
         // 执行升级脚本
         log.info("开始处理3.4.3历史数据,更新脚本1;时间:" + DateFormatUtils.format(new Date(), DATE_PATTERN));
-        String upgrade_sql1 = upgradePath + File.separator + "3.4.4-upgrade-1.sql";
+        String upgrade_sql1 = "upgrade/3.4.4-upgrade-1.sql";
+        log.info("开始处理3.4.3历史数据,更新脚本1;地址:" + upgrade_sql1);
         this.execUpgradeSql(jdbcTemplate, upgrade_sql1);
         log.info("结束处理3.4.3历史数据,更新脚本1;时间:" + DateFormatUtils.format(new Date(), DATE_PATTERN));
 
@@ -72,7 +72,8 @@ public class DataUpgrade_3_4_4 implements DataUpgradeService {
 
         // 归档后中间数据重命名,创建新表
         log.info("开始处理3.4.4升级脚本2;时间:" + DateFormatUtils.format(new Date(), DATE_PATTERN));
-        String upgrade_sql2 = upgradePath + File.separator + "3.4.4-upgrade-2.sql";
+        String upgrade_sql2 = "upgrade/3.4.4-upgrade-2.sql";
+        log.info("开始处理3.4.3历史数据,更新脚本2;地址:" + upgrade_sql2);
         this.execUpgradeSql(jdbcTemplate, upgrade_sql2);
         log.info("结束处理3.4.4升级脚本2;时间:" + DateFormatUtils.format(new Date(), DATE_PATTERN));
 
@@ -349,20 +350,11 @@ public class DataUpgrade_3_4_4 implements DataUpgradeService {
         if (StringUtils.isBlank(upgradeSql)) {
             throw new RuntimeException("没有配置升级sql脚本文件地址");
         }
-        File file = new File(upgradeSql);
-        if (!file.exists()) {
-            throw new RuntimeException("升级sql脚本文件不存在");
-        }
-        try {
-            FileInputStream inputStream = new FileInputStream(upgradeSql);
-            String[] sqlList = StringUtils.split(ResourceFileHelper.readContent(inputStream), ";");
-            Arrays.stream(sqlList).filter(StringUtils::isNotBlank).forEach(sql -> {
-                log.info(sql);
-                jdbcTemplate.execute(sql);
-            });
-        } catch (FileNotFoundException e) {
-            throw new RuntimeException(e);
-        }
+        String[] sqlList = StringUtils.split(ResourceFileHelper.readContent(upgradeSql), ";");
+        Arrays.stream(sqlList).filter(StringUtils::isNotBlank).forEach(sql -> {
+            log.info(sql);
+            jdbcTemplate.execute(sql);
+        });
     }
 
     private <T> T getOne(JdbcTemplate jdbcTemplate, String sql, Class<T> tClass) {

+ 0 - 0
distributed-print/install/mysql/upgrade/3.4.4-upgrade-1.sql → distributed-print/src/main/resources/upgrade/3.4.4-upgrade-1.sql


+ 1 - 1
distributed-print/install/mysql/upgrade/3.4.4-upgrade-2.sql → distributed-print/src/main/resources/upgrade/3.4.4-upgrade-2.sql

@@ -307,7 +307,7 @@ CREATE TABLE IF NOT EXISTS `exam_card_model_four` (
         `page_size` varchar(10) DEFAULT NULL COMMENT '题卡纸张大小(A3,8K)',
         `remark` mediumtext COMMENT '备注',
         PRIMARY KEY (`id`) USING BTREE
-    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='模式4题卡';
+    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='模式4题卡';
 
 INSERT INTO sys_privilege(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display) VALUES(1199, '答题卡管理', 'CardModel4Manage', 'MENU', 3, 4, 'AUTH', NULL, 1, 0, 1);
 INSERT INTO sys_privilege(id, name, url, `type`, parent_id, `sequence`, property, related, enable, default_auth, front_display) VALUES(1200, '查询', 'Select', 'BUTTON', 1199, 1, 'AUTH', '1209', 1, 0, 1);

+ 6 - 2
teachcloud-data/src/main/java/com/qmth/teachcloud/data/DataUtil.java

@@ -10,6 +10,8 @@ import com.qmth.teachcloud.common.bean.sync.TSyncDataStudent;
 import com.qmth.teachcloud.data.enums.DataType;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.datasource.DriverManagerDataSource;
@@ -21,6 +23,7 @@ import java.util.*;
 
 @Component
 public class DataUtil {
+    private static final Logger log = LoggerFactory.getLogger(DataUtil.class);
 
     // 一页1000条
     private static int PAGE_SIZE = 1000;
@@ -81,7 +84,7 @@ public class DataUtil {
     public List<TSyncDataStudent> listExamStudent(JdbcTemplate jdbcTemplate, DataType dataType, String datasourceType) {
         String sql;
         if ("ORACLE".equals(datasourceType.trim())) {
-            sql = getOracleSql(dataType, true, "course_code", "student_code");
+            sql = getOracleSql(dataType, true, "coursecode", "studentcode");
             return pageOracle(jdbcTemplate, sql, TSyncDataStudent.class);
         } else if ("MYSQL".equals(datasourceType.trim())) {
             sql = getMysqlSql(dataType, true);
@@ -176,7 +179,7 @@ public class DataUtil {
             stringJoiner.add("SELECT *  FROM (SELECT t.*, ROW_NUMBER() OVER (ORDER BY ");
             StringJoiner sortStr = new StringJoiner(",");
             for (String s : sortColumn) {
-                sortStr.add("\"" + s + "\"");
+                sortStr.add(" " + s + " ");
             }
             stringJoiner.add(sortStr.toString());
             stringJoiner.add(") AS rn FROM ");
@@ -186,6 +189,7 @@ public class DataUtil {
         } else {
             sql = "select * from \"" + dataType.getTable() + "\"";
         }
+        log.info(dataType.getName() + "数据同步sql:" + sql);
         return sql;
     }
 

+ 19 - 0
teachcloud-data/src/main/java/com/qmth/teachcloud/data/service/impl/DataServiceImpl.java

@@ -29,6 +29,8 @@ import com.qmth.teachcloud.data.service.TSyncDataLogService;
 import com.qmth.teachcloud.data.service.TSyncDataStudentService;
 import com.qmth.teachcloud.data.util.JdbcUtil;
 import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 
@@ -42,6 +44,8 @@ import java.util.concurrent.atomic.AtomicInteger;
 @Service
 public class DataServiceImpl implements DataService {
 
+    private static final Logger log = LoggerFactory.getLogger(DataServiceImpl.class);
+
     @Resource
     private DataUtil dataUtil;
     @Resource
@@ -93,33 +97,43 @@ public class DataServiceImpl implements DataService {
         StringJoiner stringJoiner = new StringJoiner(";");
         // 机构同步
         if (dataRange.contains(DataType.A.name())) {
+            log.info("开始同步机构");
             SyncDataResult syncDataResult = syncOrg(jdbcTemplate, schoolId, examId, datasourceType.getConfigValue().toString());
             stringJoiner.add(DataType.A.name() + ":" + syncDataResult.getCount());
             sendSms = StringUtils.isNotBlank(syncDataResult.getErrMsg()) ? true : sendSms;
+            log.info("结束同步机构,状态" + sendSms);
         }
         // 用户同步
         if (dataRange.contains(DataType.B.name())) {
+            log.info("开始同步用户");
             SyncDataResult syncDataResult = syncUser(jdbcTemplate, schoolId, examId, datasourceType.getConfigValue().toString());
             stringJoiner.add(DataType.B.name() + ":" + syncDataResult.getCount());
             sendSms = StringUtils.isNotBlank(syncDataResult.getErrMsg()) ? true : sendSms;
+            log.info("结束同步用户,状态" + sendSms);
         }
         // 课程同步
         if (dataRange.contains(DataType.C.name())) {
+            log.info("开始同步课程");
             SyncDataResult syncDataResult = syncCourse(jdbcTemplate, schoolId, examId, datasourceType.getConfigValue().toString());
             stringJoiner.add(DataType.C.name() + ":" + syncDataResult.getCount());
             sendSms = StringUtils.isNotBlank(syncDataResult.getErrMsg()) ? true : sendSms;
+            log.info("结束同步课程,状态" + sendSms);
         }
         // 考生同步
         if (dataRange.contains(DataType.D.name())) {
+            log.info("开始同步考生");
             SyncDataResult syncDataResult = syncStudent(jdbcTemplate, schoolId, examId, datasourceType.getConfigValue().toString());
             stringJoiner.add(DataType.D.name() + ":" + syncDataResult.getCount());
             sendSms = StringUtils.isNotBlank(syncDataResult.getErrMsg()) ? true : sendSms;
+            log.info("结束同步考生,状态" + sendSms);
         }
         // 命题任务同步
         if (dataRange.contains(DataType.E.name())) {
+            log.info("开始同步命题任务");
             SyncDataResult syncDataResult = syncExamTask(jdbcTemplate, schoolId, examId, datasourceType.getConfigValue().toString());
             stringJoiner.add(DataType.E.name() + ":" + syncDataResult.getCount());
             sendSms = StringUtils.isNotBlank(syncDataResult.getErrMsg()) ? true : sendSms;
+            log.info("结束同步命题任务,状态" + sendSms);
         }
 
         syncData.setDetail(stringJoiner.toString());
@@ -138,6 +152,7 @@ public class DataServiceImpl implements DataService {
     private SyncDataResult syncOrg(JdbcTemplate jdbcTemplate, Long schoolId, Long examId, String datasourceType) {
         long startTime = System.currentTimeMillis();
         List<OrgDataVo> dataVoList = dataUtil.listOrg(jdbcTemplate, DataType.A, datasourceType);
+        log.info("查询到待同步机构数量:" + dataVoList.size());
         StringJoiner errorMsg = new StringJoiner("\n");
         AtomicInteger i = new AtomicInteger(0);
         for (OrgDataVo orgDataVo : dataVoList) {
@@ -156,6 +171,7 @@ public class DataServiceImpl implements DataService {
     private SyncDataResult syncUser(JdbcTemplate jdbcTemplate, Long schoolId, Long examId, String datasourceType) {
         long startTime = System.currentTimeMillis();
         List<UserDataVo> dataVoList = dataUtil.listUser(jdbcTemplate, DataType.B, datasourceType);
+        log.info("查询到待同步用户数量:" + dataVoList.size());
         StringJoiner errorMsg = new StringJoiner("\n");
         AtomicInteger i = new AtomicInteger(0);
         for (UserDataVo userDataVo : dataVoList) {
@@ -174,6 +190,7 @@ public class DataServiceImpl implements DataService {
     private SyncDataResult syncCourse(JdbcTemplate jdbcTemplate, Long schoolId, Long examId, String datasourceType) {
         long startTime = System.currentTimeMillis();
         List<CourseDataVo> dataVoList = dataUtil.listCourse(jdbcTemplate, DataType.C, datasourceType);
+        log.info("查询到待同步课程数量:" + dataVoList.size());
         StringJoiner errorMsg = new StringJoiner("\n");
         AtomicInteger i = new AtomicInteger(0);
         for (CourseDataVo courseDataVo : dataVoList) {
@@ -192,6 +209,7 @@ public class DataServiceImpl implements DataService {
     private SyncDataResult syncStudent(JdbcTemplate jdbcTemplate, Long schoolId, Long examId, String datasourceType) {
         long startTime = System.currentTimeMillis();
         List<TSyncDataStudent> dataVoList = dataUtil.listExamStudent(jdbcTemplate, DataType.D, datasourceType);
+        log.info("查询到待同步考生数量:" + dataVoList.size());
         Map<String, Object> map = new HashMap<>();
         int successCount = 0;
         String errMsg = null;
@@ -228,6 +246,7 @@ public class DataServiceImpl implements DataService {
     private SyncDataResult syncExamTask(JdbcTemplate jdbcTemplate, Long schoolId, Long examId, String datasourceType) {
         long startTime = System.currentTimeMillis();
         List<ExamTaskDataVo> dataVoList = dataUtil.listExamTask(jdbcTemplate, DataType.E, datasourceType);
+        log.info("查询到待同步命题任务数量:" + dataVoList.size());
         StringJoiner errorMsg = new StringJoiner("\n");
         AtomicInteger i = new AtomicInteger(0);
         for (ExamTaskDataVo examTaskDataVo : dataVoList) {

+ 4 - 18
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkServiceImpl.java

@@ -1238,18 +1238,8 @@ public class MarkServiceImpl implements MarkService {
     @Transactional
     @Override
     public SubmitResult saveTask(Long examId, String paperNumber, Long userId, MarkResult result) {
-        for (MarkResultQuestion question : result.getQuestionList()) {
-            MarkUserQuestion markUserQuestion = markUserQuestionService.getByExamIdAndPaperNumberAndQuestionIdAndUserId(examId, paperNumber, question.getQuestionId(), userId);
-            if (markUserQuestion == null) {
-                throw ExceptionResultEnum.ERROR.exception("评卷员未绑定题目" + question.getMainNumber() + "-" + question.getSubNumber());
-            }
-        }
-
         SubmitResult sr;
         try {
-            lockService.watch(LockType.EXAM_SUBJECT, examId, paperNumber);
-            lockService.watch(LockType.MARK_USER_QUESTION, userId);
-            lockService.waitlock(LockType.STUDENT, result.getStudentId());
             sr = submitResult(examId, paperNumber, userId, result);
             if (sr.isSuccess()) {
                 releaseStudent(examId, paperNumber, sr.getStudentId(), userId);
@@ -1257,10 +1247,6 @@ public class MarkServiceImpl implements MarkService {
         } catch (Exception e) {
             log.error("save task error", e);
             throw ExceptionResultEnum.ERROR.exception(e.getMessage());
-        } finally {
-            lockService.unlock(LockType.STUDENT, result.getStudentId());
-            lockService.unwatch(LockType.MARK_USER_QUESTION, userId);
-            lockService.unwatch(LockType.EXAM_SUBJECT, examId, paperNumber);
         }
 
         if (sr == null || !sr.isSuccess()) {
@@ -1274,7 +1260,7 @@ public class MarkServiceImpl implements MarkService {
         int count = 0;
         for (MarkResultQuestion markResultQuestion : result.getQuestionList()) {
             try {
-                lockService.watch(LockType.QUESTION, markResultQuestion.getQuestionId());
+//                lockService.watch(LockType.QUESTION, markResultQuestion.getQuestionId());
                 markResultQuestion.setSpent(spentAvg);
                 MarkUserQuestion markUserQuestion = markUserQuestionService.getByExamIdAndPaperNumberAndQuestionIdAndUserId(examId, paperNumber, markResultQuestion.getQuestionId(), userId);
                 MarkQuestion markQuestion = markQuestionService.getById(markResultQuestion.getQuestionId());
@@ -1288,7 +1274,7 @@ public class MarkServiceImpl implements MarkService {
                         // 状态更新
                         if (markTaskService.updateProblemResult(task.getId(), userId, now, markResultQuestion.getSpent())) {
                             saveProblemHistory(markResultQuestion, task, userId);
-                            updateMarkedCount(markUserQuestion.getExamId(), markUserQuestion.getPaperNumber(), markUserQuestion.getQuestionId());
+//                            updateMarkedCount(markUserQuestion.getExamId(), markUserQuestion.getPaperNumber(), markUserQuestion.getQuestionId());
                             // 未评完
                             resetStudentStatus(task.getStudentId());
                             count++;
@@ -1298,7 +1284,7 @@ public class MarkServiceImpl implements MarkService {
                         count++;
                     } else if (markResultQuestion.getMarkerScore() <= markQuestion.getTotalScore()) {//阅卷分是否小于等于该组总分
                         if (submitTask(task, userId, markQuestion, markResultQuestion)) {
-                            updateMarkedCount(markUserQuestion.getExamId(), markUserQuestion.getPaperNumber(), markUserQuestion.getQuestionId());
+//                            updateMarkedCount(markUserQuestion.getExamId(), markUserQuestion.getPaperNumber(), markUserQuestion.getQuestionId());
                             count++;
                         }
                     }
@@ -1306,7 +1292,7 @@ public class MarkServiceImpl implements MarkService {
             } catch (Exception e) {
                 throw ExceptionResultEnum.ERROR.exception(e.getMessage());
             } finally {
-                lockService.unwatch(LockType.QUESTION, markResultQuestion.getQuestionId());
+//                lockService.unwatch(LockType.QUESTION, markResultQuestion.getQuestionId());
             }
         }
         if (CollectionUtils.size(result.getQuestionList()) == count) {