Bladeren bron

云阅卷成绩数据同步

wangliang 2 jaren geleden
bovenliggende
commit
f19cab0d48

+ 3 - 3
themis-admin/src/main/java/com/qmth/themis/admin/api/TEExamStudentController.java

@@ -585,12 +585,13 @@ public class TEExamStudentController {
     @ApiOperation(value = "云阅卷成绩同步")
     @ApiResponses({@ApiResponse(code = 200, message = "成绩同步信息", response = Result.class)})
     @RequestMapping(value = "/cloud_mark/score/sync", method = RequestMethod.POST)
-    public Result scoreSync(@ApiParam(value = "考试ID", required = true) @RequestParam String examId,
-                            @ApiParam(value = "云阅卷考试id", required = true) @RequestParam String cloudMarkExamId) {
+    public Result scoreSync(@ApiParam(value = "考试ID", required = true) @RequestParam String examId) {
         TBTaskHistory tbTaskHistory = null;
         try {
             ExamCacheBean examCacheBean = teExamService.getExamCacheBean(Long.parseLong(examId));
             Optional.ofNullable(examCacheBean).orElseThrow(() -> new BusinessException(ExceptionResultEnum.EXAM_NO));
+            Optional.ofNullable(examCacheBean.getThirdExamId()).orElseThrow(() -> new BusinessException("云阅卷考试id为空,请先推送数据"));
+
             InvigilateMonitorStatusEnum invigilateMonitorStatusEnum = examCacheBean.getMonitorStatus();//监考状态
             if (Objects.nonNull(invigilateMonitorStatusEnum) && !Objects
                     .equals(invigilateMonitorStatusEnum, InvigilateMonitorStatusEnum.FINISHED)) {
@@ -630,7 +631,6 @@ public class TEExamStudentController {
             transMap.put(SystemConstant.CREATE_ID, tbUser.getId());
             transMap.put(SystemConstant.ORG_ID, tbUser.getOrgId());
             transMap.put(SystemConstant.EXAM_ID, Long.parseLong(examId));
-            transMap.put(SystemConstant.CLOUD_MARK_EXAM_ID, Long.parseLong(cloudMarkExamId));
             transMap.put(SystemConstant.EXAM_CODE, examCacheBean.getCode());
             //mq发送消息start
             MqDto mqDto = new MqDto(mqUtil.getMqGroupDomain().getTopic(), MqTagEnum.CLOUD_MARK_SCORE_SYNC.name(),

+ 0 - 1
themis-business/src/main/java/com/qmth/themis/business/constant/SystemConstant.java

@@ -96,7 +96,6 @@ public class SystemConstant {
     public static final String VALUE_OF_BLANK_REQUIRED_FIELD = "#";
     public static final String MULTI_MEDIA = "MULTI_MEDIA";
     public static final String FILE_UPLOAD_VARIABLE_URL = "\\{type\\}";
-    public static final String CLOUD_MARK_EXAM_ID = "cloudMarkExamId";
     public static final String CONTENT = "content";
     public static final String FORM_USER_ID = "formUserId";
     public static final String OPER = "oper";

+ 9 - 10
themis-business/src/main/java/com/qmth/themis/business/templete/impl/TaskSyncCloudMarkTemplete.java

@@ -3,10 +3,12 @@ package com.qmth.themis.business.templete.impl;
 import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qmth.themis.business.bean.cloudmark.StudentScoreParams;
+import com.qmth.themis.business.cache.bean.ExamCacheBean;
 import com.qmth.themis.business.constant.SystemConstant;
 import com.qmth.themis.business.dao.TSyncExamStudentScoreMapper;
 import com.qmth.themis.business.entity.TSyncExamStudentScore;
 import com.qmth.themis.business.enums.TaskStatusEnum;
+import com.qmth.themis.business.service.TEExamService;
 import com.qmth.themis.business.service.TSyncExamStudentScoreService;
 import com.qmth.themis.business.templete.TaskSyncCommon;
 import com.qmth.themis.business.templete.TaskSyncTemplete;
@@ -46,6 +48,9 @@ public class TaskSyncCloudMarkTemplete implements TaskSyncTemplete {
     @Resource
     TSyncExamStudentScoreMapper tSyncExamStudentScoreMapper;
 
+    @Resource
+    TEExamService teExamService;
+
     /**
      * 同步模版
      *
@@ -61,17 +66,11 @@ public class TaskSyncCloudMarkTemplete implements TaskSyncTemplete {
         taskSyncCommon.setTxtList(new ArrayList());
         StringJoiner stringJoiner = null;
         try {
-            taskSyncCommon.getTxtList()
-                    .add(DateUtil.format(new Date(), Constants.DEFAULT_DATE_PATTERN) + "->开始准备同步云阅卷成绩数据");
-            Object o = map.get(SystemConstant.CLOUD_MARK_EXAM_ID);
-            Long cloudMarkExamId = null;
-            if (o instanceof Long) {
-                cloudMarkExamId = (Long) o;
-            } else if (o instanceof Integer) {
-                cloudMarkExamId = Long.parseLong(String.valueOf(o));
-            }
-            taskSyncCommon.getTbTaskHistory().setEntityId(cloudMarkExamId);
+            taskSyncCommon.getTxtList().add(DateUtil.format(new Date(), Constants.DEFAULT_DATE_PATTERN) + "->开始准备同步云阅卷成绩数据");
             Long examId = (Long) map.get(SystemConstant.EXAM_ID);
+            ExamCacheBean examCacheBean = teExamService.getExamCacheBean(examId);
+            Long cloudMarkExamId = Long.parseLong(examCacheBean.getThirdExamId());
+            taskSyncCommon.getTbTaskHistory().setEntityId(cloudMarkExamId);
             Long orgId = (Long) map.get(SystemConstant.ORG_ID);
             Long createId = (Long) map.get(SystemConstant.CREATE_ID);
             String examCode = (String) map.get(SystemConstant.EXAM_CODE);