瀏覽代碼

Merge remote-tracking branch 'origin/dev_v2.2.0' into dev_v2.2.0

wangliang 3 年之前
父節點
當前提交
3222caf85b

+ 41 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/SyncDataParam.java

@@ -0,0 +1,41 @@
+package com.qmth.distributed.print.business.bean.params;
+
+import com.qmth.distributed.print.business.entity.ExamPrintPlan;
+
+import java.util.List;
+
+/**
+ * @Date: 2021/7/28.
+ */
+public class SyncDataParam {
+
+    private Long thirdRelateId;
+
+    private String thirdRelateName;
+
+    private List<ExamPrintPlan> list;
+
+    public Long getThirdRelateId() {
+        return thirdRelateId;
+    }
+
+    public void setThirdRelateId(Long thirdRelateId) {
+        this.thirdRelateId = thirdRelateId;
+    }
+
+    public String getThirdRelateName() {
+        return thirdRelateName;
+    }
+
+    public void setThirdRelateName(String thirdRelateName) {
+        this.thirdRelateName = thirdRelateName;
+    }
+
+    public List<ExamPrintPlan> getList() {
+        return list;
+    }
+
+    public void setList(List<ExamPrintPlan> list) {
+        this.list = list;
+    }
+}

+ 5 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/DataSyncService.java

@@ -1,5 +1,7 @@
 package com.qmth.distributed.print.business.service;
 
+import com.qmth.distributed.print.business.bean.params.SyncDataParam;
+
 /**
  * 同步数据到云阅卷 服务类
  * @Date: 2021/5/20.
@@ -7,5 +9,7 @@ package com.qmth.distributed.print.business.service;
 public interface DataSyncService {
     void syncToCloudReview();
 
-    void syncDataCloud(Long printPlanId);
+    void syncDataCloud(Long printPlanId, Long thirdRelateId);
+
+    void syncDataMerge(SyncDataParam syncDataParam);
 }

+ 4 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamPrintPlanService.java

@@ -9,6 +9,7 @@ import com.qmth.distributed.print.business.bean.dto.ClientPrintTaskDto;
 import com.qmth.distributed.print.business.bean.dto.ClientPrintTaskTotalDto;
 import com.qmth.distributed.print.business.bean.params.DeleteParams;
 import com.qmth.distributed.print.business.bean.params.PrintPlanParams;
+import com.qmth.distributed.print.business.bean.params.SyncDataParam;
 import com.qmth.distributed.print.business.bean.result.PrintPlanBrief;
 import com.qmth.distributed.print.business.bean.result.PrintPlanResult;
 import com.qmth.distributed.print.business.entity.ExamPrintPlan;
@@ -88,5 +89,7 @@ public interface ExamPrintPlanService extends IService<ExamPrintPlan> {
 
     ClientPrintStatisticsTotalDto clientStatisticsTotalData(String printPlanId, String examPlace, Long examStartTime, Long examEndTime, String courseCode, String paperNumber);
 
-    void syncDataCloud(Long printPlanId);
+    void syncDataCloud(Long printPlanId, Long thirdRelateId);
+
+    void syncDataMerge(SyncDataParam syncDataParam);
 }

+ 91 - 37
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DataSyncServiceImpl.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.qmth.boot.tools.signature.SignatureType;
 import com.qmth.distributed.print.business.bean.dto.SyncExamCardDto;
 import com.qmth.distributed.print.business.bean.dto.SyncExamStudentDto;
+import com.qmth.distributed.print.business.bean.params.SyncDataParam;
 import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
 import com.qmth.distributed.print.business.service.*;
@@ -15,12 +16,17 @@ import com.qmth.teachcloud.common.SignatureEntityTest;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicSchool;
+import com.qmth.teachcloud.common.entity.SysConfig;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import com.qmth.teachcloud.common.enums.TaskStatusEnum;
 import com.qmth.teachcloud.common.service.CacheService;
+import com.qmth.teachcloud.common.service.SysConfigService;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -37,6 +43,8 @@ import java.util.concurrent.Executors;
 @Service
 public class DataSyncServiceImpl implements DataSyncService {
 
+    private final static Logger log = LoggerFactory.getLogger(DataSyncServiceImpl.class);
+
     @Autowired
     private ExamPrintPlanService examPrintPlanService;
 
@@ -58,9 +66,12 @@ public class DataSyncServiceImpl implements DataSyncService {
     @Autowired
     private ExamCardService examCardService;
 
+    @Autowired
+    private SysConfigService sysConfigService;
+
     private ExecutorService executors = Executors.newFixedThreadPool(5);
 
-    private static final String SAVE_EXAM_TYPE = "MULTI_MEDIA";
+    private static final String SAVE_EXAM_TYPE = "SCAN_IMAGE";
     private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
     private static final String POST_METHOD = "POST";
 
@@ -76,7 +87,7 @@ public class DataSyncServiceImpl implements DataSyncService {
         List<ExamPrintPlan> examPrintPlans = examPrintPlanService.list(queryWrapper);
         if (!CollectionUtils.isEmpty(examPrintPlans)) {
             for (ExamPrintPlan examPrintPlan : examPrintPlans) {
-                executors.execute(syncData(examPrintPlan));
+                executors.execute(syncData(examPrintPlan, null));
             }
         }
     }
@@ -85,28 +96,51 @@ public class DataSyncServiceImpl implements DataSyncService {
      * 单个同步
      *
      * @param printPlanId
+     * @param thirdRelateId
      */
     @Override
-    public void syncDataCloud(Long printPlanId) {
+    public void syncDataCloud(Long printPlanId, Long thirdRelateId) {
         ExamPrintPlan examPrintPlan = examPrintPlanService.getById(printPlanId);
         if (examPrintPlan == null) {
             throw ExceptionResultEnum.ERROR.exception("印刷计划数据异常");
         }
-        if (!PrintPlanStatusEnum.PRINT_FINISH.equals(examPrintPlan.getStatus())) {
+        if (!PrintPlanStatusEnum.END.equals(examPrintPlan.getStatus())) {
             throw ExceptionResultEnum.ERROR.exception("印刷计划未结束,不能同步数据");
         }
-        if (Objects.nonNull(examPrintPlan.getSyncStatus()) && examPrintPlan.getSyncStatus()) {
-            throw ExceptionResultEnum.ERROR.exception("印刷计划数据同步成功");
+        executors.execute(syncData(examPrintPlan, thirdRelateId));
+
+    }
+
+    @Override
+    public void syncDataMerge(SyncDataParam syncDataParam) {
+        List<ExamPrintPlan> printPlans = syncDataParam.getList();
+        if(CollectionUtils.isEmpty(printPlans)){
+            return;
+        }
+
+        // todo 校验印刷计划是否完成
+        if(syncDataParam.getThirdRelateId() == null){
+            Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+            String time = String.valueOf(System.currentTimeMillis());
+            ExamPrintPlan examPrintPlan = printPlans.stream().max(Comparator.comparingLong(ExamPrintPlan::getExamEndTime)).get();
+            String examTime = DateUtil.format(new Date(examPrintPlan.getExamEndTime()), DATE_FORMAT);
+            syncDataParam.setThirdRelateId(getExamId(schoolId, time, syncDataParam.getThirdRelateName(), examTime));
+        }
+
+        for (ExamPrintPlan printPlan : printPlans) {
+            executors.execute(syncData(printPlan, syncDataParam.getThirdRelateId()));
         }
-        executors.execute(syncData(examPrintPlan));
     }
 
-    private TimerTask syncData(ExamPrintPlan examPrintPlan) {
+    private TimerTask syncData(ExamPrintPlan examPrintPlan, Long thirdRelateId) {
         return new TimerTask() {
             @Override
             public void run() {
-                TBSyncTask syncTask = tbSyncTaskService.saveTask(examPrintPlan);
-                doSyncCore(examPrintPlan, syncTask);
+                SysConfig sysConfig = sysConfigService.getByKey("sys.sync.enable");
+                if (sysConfig != null && "true".equals(sysConfig.getConfigValue())) {
+                    TBSyncTask syncTask = tbSyncTaskService.saveTask(examPrintPlan);
+                    doSyncCore(examPrintPlan, thirdRelateId, syncTask);
+                }
             }
         };
     }
@@ -117,9 +151,10 @@ public class DataSyncServiceImpl implements DataSyncService {
      * @param syncTask
      */
     @Transactional
-    public void doSyncCore(ExamPrintPlan examPrintPlan, TBSyncTask syncTask) {
+    public void doSyncCore(ExamPrintPlan examPrintPlan, Long thirdRelateId, TBSyncTask syncTask) {
+        UpdateWrapper<ExamPrintPlan> updateWrapper = new UpdateWrapper<>();
         try {
-            if (!PrintPlanStatusEnum.PRINT_FINISH.equals(examPrintPlan.getStatus())) {
+            if (!PrintPlanStatusEnum.END.equals(examPrintPlan.getStatus())) {
                 throw ExceptionResultEnum.ERROR.exception("印刷计划未结束,不能同步数据");
             }
             // 校验同步url
@@ -129,26 +164,29 @@ public class DataSyncServiceImpl implements DataSyncService {
             tbSyncTaskService.update(tbSyncTaskUpdateWrapper);
 
             // 同步计划 -> 对应云阅卷考试
-            ExamPrintPlan printPlan = examSave(examPrintPlan);
+            ExamPrintPlan printPlan = examSave(examPrintPlan, thirdRelateId);
             // 考试同步成功,才能同步考生和题卡
             if (Objects.nonNull(printPlan.getThirdRelateId())) {
                 studentSave(printPlan);
                 cardUpload(printPlan);
+            } else {
+                throw ExceptionResultEnum.ERROR.exception("无法获取云阅卷考试,同步数据失败");
             }
 
             // 更新计划状态
-            UpdateWrapper<ExamPrintPlan> updateWrapper = new UpdateWrapper<>();
             updateWrapper.lambda().set(ExamPrintPlan::getSyncStatus, true).eq(ExamPrintPlan::getId, examPrintPlan.getId());
-            examPrintPlanService.update(updateWrapper);
 
             // 更新日志表
             syncTask.setResult(TaskResultEnum.SUCCESS);
+            syncTask.setErrorMessage(null);
         } catch (Exception e) {
             syncTask.setResult(TaskResultEnum.ERROR);
             syncTask.setErrorMessage(e.getMessage());
+            updateWrapper.lambda().set(ExamPrintPlan::getSyncStatus, false).eq(ExamPrintPlan::getId, examPrintPlan.getId());
         } finally {
             syncTask.setStatus(TaskStatusEnum.FINISH);
             tbSyncTaskService.saveOrUpdate(syncTask);
+            examPrintPlanService.update(updateWrapper);
         }
 
     }
@@ -173,32 +211,42 @@ public class DataSyncServiceImpl implements DataSyncService {
      * @param examPrintPlan
      * @return
      */
-    public ExamPrintPlan examSave(ExamPrintPlan examPrintPlan) {
-        String hostUrl = dictionaryConfig.syncDataDomain().getHostUrl();
-        String examSaveUrl = dictionaryConfig.syncDataDomain().getExamSaveUrl();
-        String postUrl = hostUrl.concat(examSaveUrl);
+    public ExamPrintPlan examSave(ExamPrintPlan examPrintPlan, Long thirdRelateId) {
         try {
-            //参数
-            Map<String, String> map = new HashMap<>();
-            map.put("code", String.valueOf(examPrintPlan.getId()));
-            map.put("name", examPrintPlan.getName());
-            map.put("examTime", DateUtil.format(new Date(examPrintPlan.getExamEndTime()), DATE_FORMAT));
-            map.put("type", SAVE_EXAM_TYPE);
-
-            String result = HttpKit.sendPost(postUrl, getHeaders(examPrintPlan.getSchoolId(), examSaveUrl), map, null, null, null);
-            JSONObject jsonObject = JSONObject.parseObject(result);
-            if (jsonObject.containsKey("id")) {
-                Long id = Long.valueOf(jsonObject.get("id").toString());
-                UpdateWrapper<ExamPrintPlan> updateWrapper = new UpdateWrapper<>();
-                updateWrapper.lambda().set(ExamPrintPlan::getThirdRelateId, id).eq(ExamPrintPlan::getId, examPrintPlan.getId());
-                examPrintPlanService.update(updateWrapper);
-                return examPrintPlanService.getById(examPrintPlan.getId());
+            if (Objects.isNull(thirdRelateId)) {
+
+                String code = String.valueOf(examPrintPlan.getId());
+                String name = examPrintPlan.getName();
+                String examTime = DateUtil.format(new Date(examPrintPlan.getExamEndTime()), DATE_FORMAT);
+                thirdRelateId = getExamId(examPrintPlan.getSchoolId(), code, name, examTime);
             }
+            UpdateWrapper<ExamPrintPlan> updateWrapper = new UpdateWrapper<>();
+            updateWrapper.lambda().set(ExamPrintPlan::getThirdRelateId, thirdRelateId).set(ExamPrintPlan::getSyncStatus, null).eq(ExamPrintPlan::getId, examPrintPlan.getId());
+            examPrintPlanService.update(updateWrapper);
+            return examPrintPlanService.getById(examPrintPlan.getId());
         } catch (Exception e) {
             throw ExceptionResultEnum.ERROR.exception(e.getMessage());
         }
+    }
 
-        return null;
+    public Long getExamId(Long schoolId, String code, String name, String examTime) {
+        String hostUrl = dictionaryConfig.syncDataDomain().getHostUrl();
+        String examSaveUrl = dictionaryConfig.syncDataDomain().getExamSaveUrl();
+        String postUrl = hostUrl.concat(examSaveUrl);
+        //参数
+        Map<String, String> map = new HashMap<>();
+        map.put("code", code);
+        map.put("name", name);
+        map.put("examTime", examTime);
+        map.put("type", SAVE_EXAM_TYPE);
+
+        String result = HttpKit.sendPost(postUrl, getHeaders(schoolId, examSaveUrl), map, null, null, null);
+        JSONObject jsonObject = JSONObject.parseObject(result);
+        if (jsonObject.containsKey("id")) {
+            return Long.valueOf(jsonObject.get("id").toString());
+        } else {
+            throw ExceptionResultEnum.ERROR.exception("考试同步失败");
+        }
     }
 
     /**
@@ -254,8 +302,14 @@ public class DataSyncServiceImpl implements DataSyncService {
         }
         for (ExamDetailCourse examDetailCours : examDetailCourses) {
             List<SyncExamCardDto> syncExamCardDtos = examCardService.listSyncCardByCourseCodeAndPaperNumber(examDetailCours.getSchoolId(), examDetailCours.getCourseCode(), examDetailCours.getPaperNumber());
-            if (CollectionUtils.isEmpty(syncExamCardDtos) || syncExamCardDtos.size() != 1) {
-                throw ExceptionResultEnum.ERROR.exception(String.format("数据异常,通过学校:%s,课程代码:%s,试卷编号:%s查出多个题卡数据", examDetailCours.getSchoolId(), examDetailCours.getCourseCode(), examDetailCours.getPaperNumber()));
+            if (CollectionUtils.isEmpty(syncExamCardDtos)) {
+                return;
+            }
+
+            if (syncExamCardDtos.size() > 1) {
+//                throw ExceptionResultEnum.ERROR.exception(String.format("数据异常,通过学校:%s,课程代码:%s,试卷编号:%s查出多个题卡数据", examDetailCours.getSchoolId(), examDetailCours.getCourseCode(), examDetailCours.getPaperNumber()));
+                log.info("数据异常,通过学校:{},课程代码:{},试卷编号:{}查出{}个题卡数据", examDetailCours.getSchoolId(), examDetailCours.getCourseCode(), examDetailCours.getPaperNumber(), syncExamCardDtos.size());
+                return;
             }
 
             SyncExamCardDto syncExamCardDto = syncExamCardDtos.get(0);

+ 8 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPrintPlanServiceImpl.java

@@ -11,6 +11,7 @@ import com.qmth.distributed.print.business.bean.dto.ClientPrintTaskDto;
 import com.qmth.distributed.print.business.bean.dto.ClientPrintTaskTotalDto;
 import com.qmth.distributed.print.business.bean.params.DeleteParams;
 import com.qmth.distributed.print.business.bean.params.PrintPlanParams;
+import com.qmth.distributed.print.business.bean.params.SyncDataParam;
 import com.qmth.distributed.print.business.bean.result.PrintPlanBrief;
 import com.qmth.distributed.print.business.bean.result.PrintPlanResult;
 import com.qmth.distributed.print.business.bean.result.TemplatePrintInfoResult;
@@ -398,8 +399,13 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
     }
 
     @Override
-    public void syncDataCloud(Long printPlanId) {
-        dataSyncService.syncDataCloud(printPlanId);
+    public void syncDataCloud(Long printPlanId, Long thirdRelateId) {
+        dataSyncService.syncDataCloud(printPlanId, thirdRelateId);
+    }
+
+    @Override
+    public void syncDataMerge(SyncDataParam syncDataParam) {
+        dataSyncService.syncDataMerge(syncDataParam);
     }
 
 

+ 28 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanController.java

@@ -1,6 +1,8 @@
 package com.qmth.distributed.print.api;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.qmth.boot.api.annotation.Aac;
+import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.dto.ExamTaskDetailDto;
 import com.qmth.distributed.print.business.bean.dto.PrintTaskDto;
@@ -9,6 +11,7 @@ import com.qmth.distributed.print.business.bean.dto.RelatePaperDto;
 import com.qmth.distributed.print.business.bean.params.DeleteParams;
 import com.qmth.distributed.print.business.bean.params.PrintPlanParams;
 import com.qmth.distributed.print.business.bean.params.RelatePaperParam;
+import com.qmth.distributed.print.business.bean.params.SyncDataParam;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.entity.ExamDetail;
 import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
@@ -321,11 +324,34 @@ public class ExamPrintPlanController {
         return Objects.nonNull(tbTask) ? ResultUtil.ok(new EditResult(tbTask.getId())) : ResultUtil.error("创建任务失败");
     }
 
+    /**
+     * 多计划合并同步
+     * @param syncDataParam
+     * @return
+     * @throws Exception
+     */
+    @ApiOperation(value = "多计划合并同步")
+    @RequestMapping(value = "/sync_data_merge", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
+    public Result syncDataCloud(@RequestBody SyncDataParam syncDataParam) {
+        examPrintPlanService.syncDataMerge(syncDataParam);
+        return ResultUtil.ok(true);
+    }
+
+    /**
+     * 手动同步
+     * @param printPlanId
+     * @param thirdRelateId
+     * @return
+     * @throws Exception
+     */
     @ApiOperation(value = "同步失败-手动同步")
     @RequestMapping(value = "/sync_data_cloud", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
-    public Result syncDataCloud(@RequestParam(value = "printPlanId") Long printPlanId) throws Exception {
-        examPrintPlanService.syncDataCloud(printPlanId);
+    @Aac(auth = BOOL.FALSE)
+    public Result syncDataCloud(@RequestParam(value = "printPlanId") Long printPlanId,
+                                @RequestParam(value = "thirdRelateId", required = false) Long thirdRelateId) {
+        examPrintPlanService.syncDataCloud(printPlanId, thirdRelateId);
         return ResultUtil.ok(true);
     }
 }

+ 4 - 6
distributed-print/src/main/resources/application-dev.properties

@@ -10,19 +10,17 @@ server.tomcat.uri-encoding=UTF-8
 spring.application.name=distributed-print
 
 #\u6570\u636E\u6E90\u914D\u7F6E
-#db.host=192.168.10.136
 db.host=localhost
 db.port=3306
-db.name=distributed-v2.2.0
+db.name=distributed-136
 db.username=root
-#db.password=Qmth87863577!
 db.password=123456789
 
 #redis\u6570\u636E\u6E90\u914D\u7F6E
 com.qmth.redis.host=${db.host}
 com.qmth.redis.port=6379
-com.qmth.redis.db=15
-#com.qmth.redis.password=123456
+com.qmth.redis.db=0
+#com.qmth.redis.password=
 
 #mysql\u914D\u7F6E
 com.qmth.mysql.url=jdbc:mysql://${db.host}:${db.port}/${db.name}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
@@ -86,7 +84,7 @@ org.center.orgQueryApi=/api/open/org/query
 #com.qmth.api.uri-prefix=/aaa
 #\u7EDF\u8BA1\u9875\u9762\u914D\u7F6E
 com.qmth.api.metrics-endpoint=/metrics-count
-com.qmth.api.global-auth=false
+com.qmth.api.global-auth=true
 #com.qmth.api.global-strict=false
 #com.qmth.api.global-rate-limit=1/5s
 

+ 15 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/SysUser.java

@@ -67,6 +67,13 @@ public class SysUser extends BaseEntity implements Serializable {
 
     @ApiModelProperty(value = "是否启用,0:停用,1:启用")
     private Boolean enable = true;
+
+    /**
+     * 密码修改次数
+     */
+    @TableField("pwd_count")
+    private Integer pwdCount;
+
     /**
      * 密码修改时间
      */
@@ -161,6 +168,14 @@ public class SysUser extends BaseEntity implements Serializable {
         this.enable = enable;
     }
 
+    public Integer getPwdCount() {
+        return pwdCount;
+    }
+
+    public void setPwdCount(Integer pwdCount) {
+        this.pwdCount = pwdCount;
+    }
+
     public Long getPwdUpdateTime() {
         return pwdUpdateTime;
     }

+ 2 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserServiceImpl.java

@@ -135,6 +135,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         if (!StringUtils.equals(sysUser.getPassword(), user.getOldPassword())) {
             throw ExceptionResultEnum.ERROR.exception("原密码不正确");
         }
+        sysUser.setPwdCount(sysUser.getPwdCount() + 1);
+        sysUser.setPwdUpdateTime(System.currentTimeMillis());
         sysUser.setPassword(user.getPassword());
         boolean success = this.updateById(sysUser);
         //如果原密码和旧密码不一致,需要重新登录
@@ -334,7 +336,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
     /**
      * 临时保存用户不鉴权
-     *
      * @param userSaveParams 用户参数
      * @return 结果
      */

+ 1 - 5
teachcloud-task/src/main/java/com/qmth/teachcloud/task/job/TimedSyncSchoolJob.java

@@ -23,13 +23,9 @@ public class TimedSyncSchoolJob extends QuartzJobBean {
         try {
             jobService.updateSchoolInfo();
             jobService.updatePrintPlan();
+            jobService.syncData();
         } catch (IOException e) {
             e.printStackTrace();
         }
-        try {
-            jobService.updatePrintPlan();
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
     }
 }

+ 5 - 0
teachcloud-task/src/main/java/com/qmth/teachcloud/task/job/service/JobService.java

@@ -53,4 +53,9 @@ public interface JobService {
      * @param redisKey
      */
     public void assembleJob(String redisKey);
+
+    /**
+     * 同步数据到云阅卷
+     */
+    void syncData();
 }

+ 6 - 0
teachcloud-task/src/main/java/com/qmth/teachcloud/task/job/service/impl/JobServiceImpl.java

@@ -122,6 +122,12 @@ public class JobServiceImpl implements JobService {
         basicMessageService.resendSmsTask();
     }
 
+    @Override
+    public void syncData() {
+        // 2021-05-20 同步数据到云阅卷
+        dataSyncService.syncToCloudReview();
+    }
+
     /**
      * 组装job
      *