Переглянути джерело

预案演练库代码提交

jingyuanchao 2 роки тому
батько
коміт
d57d94e6c3
13 змінених файлів з 119 додано та 91 видалено
  1. 4 0
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteEduTrainingService.java
  2. 2 0
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/drill/vo/CoreDrillDictionaryDetailVo.java
  3. 1 0
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/enums/edu/EduTrainingDoStatus.java
  4. 3 10
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/controller/CoreDrillDictionaryController.java
  5. 2 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/ICoreDrillDictionaryService.java
  6. 21 3
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillDictionaryServiceImpl.java
  7. 6 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/controller/CoreEduTrainingTaskController.java
  8. 2 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/mapper/CoreEduTrainingTaskMapper.java
  9. 4 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/ICoreEduTrainingTaskService.java
  10. 14 3
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingTaskServiceImpl.java
  11. 7 0
      soc-modules/soc-modules-core/src/main/resources/mapper/edu/CoreEduTrainingTaskMapper.xml
  12. 46 74
      soc-modules/soc-modules-job/src/main/java/com/xunmei/job/service/impl/SysJobServiceImpl.java
  13. 7 0
      soc-modules/soc-modules-job/src/main/java/com/xunmei/job/task/CoreEduTrainingTask.java

+ 4 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteEduTrainingService.java

@@ -26,4 +26,8 @@ public interface RemoteEduTrainingService {
      */
     @GetMapping(value = "/eduTask/buildEduTask")
     AjaxResult buildEduTask(@RequestParam(required = false, value = "cycle") Integer cycle, @RequestParam(required = false, value = "date") Date date);
+
+    @GetMapping(value = "/eduTask/updateEduTaskStatus")
+    AjaxResult updateEduTaskStatus();
+
 }

+ 2 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/drill/vo/CoreDrillDictionaryDetailVo.java

@@ -15,6 +15,8 @@ public class CoreDrillDictionaryDetailVo {
     @NotNull(message = "演练类型不能为空")
     @ApiModelProperty(value = "演练类型,字典表关联取值")
     private String drillType;
+    @ApiModelProperty(value = "演练类型名称,字典表关联取值")
+    private String drillTypeName;
     @NotNull(message = "演练项目不能为空")
     @ApiModelProperty(value = "演练项目")
     private String drillProjects;

+ 1 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/enums/edu/EduTrainingDoStatus.java

@@ -13,6 +13,7 @@ public enum EduTrainingDoStatus {
     WAIT_RECORDED(0, "待记录"),
     WAIT_SIGN(1, "待签名"),
     DONE(2, "已完成"),
+    OVERDUE(3, "已逾期"),
 
 
     ;

+ 3 - 10
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/controller/CoreDrillDictionaryController.java

@@ -10,14 +10,7 @@ import com.xunmei.common.core.domain.drill.domain.CoreDrillDictionary;
 import com.xunmei.core.drill.service.ICoreDrillDictionaryService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import com.xunmei.common.log.annotation.Log;
 import com.xunmei.common.log.enums.BusinessType;
 import com.xunmei.common.security.annotation.RequiresPermissions;
@@ -99,8 +92,8 @@ public class CoreDrillDictionaryController extends BaseController {
     @ApiOperation(value = "查询CoreDrillDictionary列表")
     @RequiresPermissions("core:drillDictionary:list")
     @GetMapping("/listData")
-    public AjaxResult list() {
-        return success(coreDrillDictionaryService.selectCoreDrillDictionaryList());
+    public AjaxResult list(@RequestParam(value = "orgId") Long orgId, @RequestParam(value = "dictValue",required = false) String dictValue) {
+        return success(coreDrillDictionaryService.selectCoreDrillDictionaryList(orgId, dictValue));
     }
 
 }

+ 2 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/ICoreDrillDictionaryService.java

@@ -10,6 +10,7 @@ import com.xunmei.common.core.domain.drill.vo.CoreDrillDictionaryDetailVo;
 import com.xunmei.common.core.domain.drill.vo.CoreDrillDictionaryPageVo;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.core.domain.drill.domain.CoreDrillDictionary;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
 
@@ -34,7 +35,7 @@ public interface ICoreDrillDictionaryService extends IService<CoreDrillDictionar
      * @param
      * @return 预案演练库集合
      */
-    List<IdName<Integer,String>> selectCoreDrillDictionaryList();
+    List<CoreDrillDictionaryDetailVo> selectCoreDrillDictionaryList(Long orgId, String dictValue);
 
     /**
      * 新增预案演练库

+ 21 - 3
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillDictionaryServiceImpl.java

@@ -16,6 +16,7 @@ import com.xunmei.common.core.domain.drill.dto.CoreDrillDictionaryPageDto;
 import com.xunmei.common.core.domain.drill.dto.CoreDrillDictionaryUpdateDto;
 import com.xunmei.common.core.domain.drill.vo.CoreDrillDictionaryDetailVo;
 import com.xunmei.common.core.domain.drill.vo.CoreDrillDictionaryPageVo;
+import com.xunmei.common.core.util.BeanHelper;
 import com.xunmei.common.security.utils.DictUtils;
 import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.core.drill.mapper.CoreDrillDictionaryMapper;
@@ -35,6 +36,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestParam;
 
 
 /**
@@ -146,10 +148,26 @@ public class CoreDrillDictionaryServiceImpl extends ServiceImpl<CoreDrillDiction
 
 
     @Override
-    public List<IdName<Integer, String>> selectCoreDrillDictionaryList() {
+    public List<CoreDrillDictionaryDetailVo> selectCoreDrillDictionaryList(Long orgId, String dictValue) {
+        SysOrg org = getOrg(orgId);
+        String path = org.getPath();
         List<CoreDrillDictionary> selectList = coreDrillDictionaryMapper.selectList(new LambdaQueryWrapper<CoreDrillDictionary>()
                 .eq(CoreDrillDictionary::getDeleted, 0)
-                .select(CoreDrillDictionary::getId, CoreDrillDictionary::getDrillTypeName));
-        return selectList.stream().map(coreDrillDictionary -> new IdName<>(coreDrillDictionary.getId(), coreDrillDictionary.getDrillTypeName())).collect(Collectors.toList());
+                .likeRight(CoreDrillDictionary::getOrgPath, path)
+                .eq(ObjectUtil.isNotNull(dictValue), CoreDrillDictionary::getDrillType, dictValue)
+                .select(CoreDrillDictionary::getId
+                        , CoreDrillDictionary::getDrillTypeName
+                        , CoreDrillDictionary::getDrillType
+                        , CoreDrillDictionary::getDrillProjects
+                        , CoreDrillDictionary::getDefaultCause));
+        return selectList.stream().map(coreDrillDictionary -> {
+            CoreDrillDictionaryDetailVo detailVo = new CoreDrillDictionaryDetailVo();
+            detailVo.setId(coreDrillDictionary.getId());
+            detailVo.setDrillType(coreDrillDictionary.getDrillType());
+            detailVo.setDrillTypeName(coreDrillDictionary.getDrillTypeName());
+            detailVo.setDrillProjects(coreDrillDictionary.getDrillTypeName());
+            detailVo.setDefaultCause(coreDrillDictionary.getDefaultCause());
+            return detailVo;
+        }).collect(Collectors.toList());
     }
 }

+ 6 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/controller/CoreEduTrainingTaskController.java

@@ -107,4 +107,10 @@ public class CoreEduTrainingTaskController extends BaseController {
     AjaxResult buildEduTask(@RequestParam(required = false, value = "cycle") Integer cycle, @RequestParam(required = false, value = "date") Date date) {
         return success(coreEduTrainingTaskService.buildEduTask(cycle, date));
     }
+
+    @ApiOperation(value = "修改未完成的数据为已逾期")
+    @GetMapping(value = "/updateEduTaskStatus")
+    AjaxResult updateEduTaskStatus() {
+        return success(coreEduTrainingTaskService.updateEduTaskStatus());
+    }
 }

+ 2 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/mapper/CoreEduTrainingTaskMapper.java

@@ -32,4 +32,6 @@ public interface CoreEduTrainingTaskMapper extends BaseMapper<CoreEduTrainingTas
     Integer checkHasTask(@Param("planId") Long planId);
 
     Integer checkHasTaskIsDoneByPlanParentId(@Param("planId") Long planId);
+
+    Integer updateStatusByIdList();
 }

+ 4 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/ICoreEduTrainingTaskService.java

@@ -93,4 +93,8 @@ public interface ICoreEduTrainingTaskService extends IService<CoreEduTrainingTas
     String buildEduTask(Integer cycle, Date date);
 
     List<CoreEduTrainingTaskToUser> signUserList(Long taskId);
+
+    String updateEduTaskStatus();
+
+
 }

+ 14 - 3
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingTaskServiceImpl.java

@@ -1,9 +1,11 @@
 package com.xunmei.core.edu.service.impl;
 
+import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson2.JSON;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -222,8 +224,8 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
                 roleService.selectUserByRoleNameAndOrgId("网点负责人", coreEduTrainingTask.getOrgId(), SecurityConstants.INNER), ErrorMsgConstants.QUERY_USER_DATA_ERROR);
         if (ObjectUtil.isNotEmpty(userList)) {
             coreEduTrainingTask.setHostId(userList.get(0).getId());
-        }else {
-            coreEduTrainingTask.setRecorderId(SecurityUtils.getUserId());
+        } else {
+            coreEduTrainingTask.setHostId(SecurityUtils.getUserId());
         }
         List<CoreEduTrainingTaskToUser> taskUserList = request.getTaskUserList();
         if (ObjectUtil.isNotEmpty(taskUserList)) {
@@ -290,6 +292,9 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
             DateRange dateRange = DateUtils.getStartAndEnd(new Date(), plan.getPlanCycle());
             start = dateRange.getStartTime();
             end = dateRange.getEndTime();
+        } else {
+            start = DateUtil.beginOfDay(start).setField(DateField.MILLISECOND,0);
+            end = DateUtil.endOfDay(end).setField(DateField.MILLISECOND,0);
         }
         List<CoreEduTrainingPlanToExecOrg> planExecOrgList = plan.getPlanExecOrgList();
         List<SysOrg> orgList;
@@ -377,7 +382,7 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
         List<CoreEduTrainingTaskReportVo> list = coreEduTrainingTaskMapper.selectReport(request, planId, planIdList);
         for (SysOrg org : sysOrgList) {
             List<CoreEduTrainingTaskReportVo> childrenOrgData = list.stream().filter(vo -> vo.getOrgPath().startsWith(org.getPath())).collect(Collectors.toList());
-            CoreEduTrainingTaskReportVo reportVo= new CoreEduTrainingTaskReportVo();
+            CoreEduTrainingTaskReportVo reportVo = new CoreEduTrainingTaskReportVo();
             reportVo.setOrgId(org.getId());
             reportVo.setOrgName(org.getName());
             if (ObjectUtil.isEmpty(childrenOrgData)) {
@@ -582,7 +587,13 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
         return "创建成功";
     }
 
+    @Override
+    public String updateEduTaskStatus() {
 
+        coreEduTrainingTaskMapper.updateStatusByIdList();
+        return "更新成功";
+
+    }
 }
 
 

+ 7 - 0
soc-modules/soc-modules-core/src/main/resources/mapper/edu/CoreEduTrainingTaskMapper.xml

@@ -180,4 +180,11 @@
               (select id from core_edu_training_plan where plan_status = 0 and deleted = 0 and parent_id = #{planId})
         limit 1
     </select>
+
+    <update id="updateStatusByIdList">
+        update core_edu_training_task
+        set status=3
+        where end_date <![CDATA[<]]> now()
+          and status <![CDATA[<]]> 2
+    </update>
 </mapper>

+ 46 - 74
soc-modules/soc-modules-job/src/main/java/com/xunmei/job/service/impl/SysJobServiceImpl.java

@@ -1,5 +1,6 @@
 package com.xunmei.job.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -25,12 +26,11 @@ import java.util.List;
 
 /**
  * 定时任务调度信息 服务层
- * 
+ *
  * @author xunmei
  */
 @Service
-public class SysJobServiceImpl extends ServiceImpl<SysJobMapper, SysJob> implements ISysJobService
-{
+public class SysJobServiceImpl extends ServiceImpl<SysJobMapper, SysJob> implements ISysJobService {
     @Autowired
     private Scheduler scheduler;
 
@@ -41,12 +41,10 @@ public class SysJobServiceImpl extends ServiceImpl<SysJobMapper, SysJob> impleme
      * 项目启动时,初始化定时器 主要是防止手动修改数据库导致未同步到定时任务处理(注:不能手动修改数据库ID和任务组名,否则会导致脏数据)
      */
     @PostConstruct
-    public void init() throws SchedulerException, TaskException
-    {
+    public void init() throws SchedulerException, TaskException {
         scheduler.clear();
         List<SysJob> jobList = jobMapper.selectJobAll();
-        for (SysJob job : jobList)
-        {
+        for (SysJob job : jobList) {
             ScheduleUtils.createScheduleJob(scheduler, job);
         }
     }
@@ -54,60 +52,53 @@ public class SysJobServiceImpl extends ServiceImpl<SysJobMapper, SysJob> impleme
     @Override
     public TableDataInfo selectJob(SysJob job) {
         Page<SysJob> page;
-        if (job.getPageNum() != null &&job.getPageSize() != null){
+        if (job.getPageNum() != null && job.getPageSize() != null) {
             page = new Page<>(job.getPageNum(), job.getPageSize());
-        }else{
+        } else {
             page = new Page<>();
         }
-        QueryWrapper<SysJob> where = new QueryWrapper<SysJob>();
+        LambdaQueryWrapper<SysJob> where = new LambdaQueryWrapper<SysJob>();
+        where.orderByAsc(SysJob::getStatus);
+        where.orderByDesc(SysJob::getCreateTime);
         Page<SysJob> list = baseMapper.selectPage(page, where);
-        TableDataInfo rspData = new TableDataInfo();
-        rspData.setRows(list.getRecords());
-        rspData.setTotal(list.getTotal());
-        rspData.setCode(200);
-        rspData.setMsg("查询成功");
-        return rspData;
+        return TableDataInfo.build(list);
     }
 
     /**
      * 获取quartz调度器的计划任务列表
-     * 
+     *
      * @param job 调度信息
      * @return
      */
     @Override
-    public List<SysJob> selectJobList(SysJob job)
-    {
+    public List<SysJob> selectJobList(SysJob job) {
         return jobMapper.selectJobList(job);
     }
 
     /**
      * 通过调度任务ID查询调度信息
-     * 
+     *
      * @param jobId 调度任务ID
      * @return 调度任务对象信息
      */
     @Override
-    public SysJob selectJobById(Long jobId)
-    {
+    public SysJob selectJobById(Long jobId) {
         return jobMapper.selectJobById(jobId);
     }
 
     /**
      * 暂停任务
-     * 
+     *
      * @param job 调度信息
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public int pauseJob(SysJob job) throws SchedulerException
-    {
+    public int pauseJob(SysJob job) throws SchedulerException {
         Long jobId = job.getJobId();
         String jobGroup = job.getJobGroup();
         job.setStatus(ScheduleConstants.Status.PAUSE.getValue());
         int rows = jobMapper.updateJob(job);
-        if (rows > 0)
-        {
+        if (rows > 0) {
             scheduler.pauseJob(ScheduleUtils.getJobKey(jobId, jobGroup));
         }
         return rows;
@@ -115,19 +106,17 @@ public class SysJobServiceImpl extends ServiceImpl<SysJobMapper, SysJob> impleme
 
     /**
      * 恢复任务
-     * 
+     *
      * @param job 调度信息
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public int resumeJob(SysJob job) throws SchedulerException
-    {
+    public int resumeJob(SysJob job) throws SchedulerException {
         Long jobId = job.getJobId();
         String jobGroup = job.getJobGroup();
         job.setStatus(ScheduleConstants.Status.NORMAL.getValue());
         int rows = jobMapper.updateJob(job);
-        if (rows > 0)
-        {
+        if (rows > 0) {
             scheduler.resumeJob(ScheduleUtils.getJobKey(jobId, jobGroup));
         }
         return rows;
@@ -135,18 +124,16 @@ public class SysJobServiceImpl extends ServiceImpl<SysJobMapper, SysJob> impleme
 
     /**
      * 删除任务后,所对应的trigger也将被删除
-     * 
+     *
      * @param job 调度信息
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public int deleteJob(SysJob job) throws SchedulerException
-    {
+    public int deleteJob(SysJob job) throws SchedulerException {
         Long jobId = job.getJobId();
         String jobGroup = job.getJobGroup();
         int rows = jobMapper.deleteJobById(jobId);
-        if (rows > 0)
-        {
+        if (rows > 0) {
             scheduler.deleteJob(ScheduleUtils.getJobKey(jobId, jobGroup));
         }
         return rows;
@@ -154,16 +141,14 @@ public class SysJobServiceImpl extends ServiceImpl<SysJobMapper, SysJob> impleme
 
     /**
      * 批量删除调度信息
-     * 
+     *
      * @param jobIds 需要删除的任务ID
      * @return 结果
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void deleteJobByIds(Long[] jobIds) throws SchedulerException
-    {
-        for (Long jobId : jobIds)
-        {
+    public void deleteJobByIds(Long[] jobIds) throws SchedulerException {
+        for (Long jobId : jobIds) {
             SysJob job = jobMapper.selectJobById(jobId);
             deleteJob(job);
         }
@@ -171,21 +156,17 @@ public class SysJobServiceImpl extends ServiceImpl<SysJobMapper, SysJob> impleme
 
     /**
      * 任务调度状态修改
-     * 
+     *
      * @param job 调度信息
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public int changeStatus(SysJob job) throws SchedulerException
-    {
+    public int changeStatus(SysJob job) throws SchedulerException {
         int rows = 0;
         String status = job.getStatus();
-        if (ScheduleConstants.Status.NORMAL.getValue().equals(status))
-        {
+        if (ScheduleConstants.Status.NORMAL.getValue().equals(status)) {
             rows = resumeJob(job);
-        }
-        else if (ScheduleConstants.Status.PAUSE.getValue().equals(status))
-        {
+        } else if (ScheduleConstants.Status.PAUSE.getValue().equals(status)) {
             rows = pauseJob(job);
         }
         return rows;
@@ -193,13 +174,12 @@ public class SysJobServiceImpl extends ServiceImpl<SysJobMapper, SysJob> impleme
 
     /**
      * 立即运行任务
-     * 
+     *
      * @param job 调度信息
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public boolean run(SysJob job) throws SchedulerException
-    {
+    public boolean run(SysJob job) throws SchedulerException {
         boolean result = false;
         Long jobId = job.getJobId();
         String jobGroup = job.getJobGroup();
@@ -208,8 +188,7 @@ public class SysJobServiceImpl extends ServiceImpl<SysJobMapper, SysJob> impleme
         JobDataMap dataMap = new JobDataMap();
         dataMap.put(ScheduleConstants.TASK_PROPERTIES, properties);
         JobKey jobKey = ScheduleUtils.getJobKey(jobId, jobGroup);
-        if (scheduler.checkExists(jobKey))
-        {
+        if (scheduler.checkExists(jobKey)) {
             result = true;
             scheduler.triggerJob(jobKey, dataMap);
         }
@@ -218,17 +197,15 @@ public class SysJobServiceImpl extends ServiceImpl<SysJobMapper, SysJob> impleme
 
     /**
      * 新增任务
-     * 
+     *
      * @param job 调度信息 调度信息
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public int insertJob(SysJob job) throws SchedulerException, TaskException
-    {
+    public int insertJob(SysJob job) throws SchedulerException, TaskException {
         job.setStatus(ScheduleConstants.Status.PAUSE.getValue());
         int rows = jobMapper.insertJob(job);
-        if (rows > 0)
-        {
+        if (rows > 0) {
             ScheduleUtils.createScheduleJob(scheduler, job);
         }
         return rows;
@@ -236,17 +213,15 @@ public class SysJobServiceImpl extends ServiceImpl<SysJobMapper, SysJob> impleme
 
     /**
      * 更新任务的时间表达式
-     * 
+     *
      * @param job 调度信息
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public int updateJob(SysJob job) throws SchedulerException, TaskException
-    {
+    public int updateJob(SysJob job) throws SchedulerException, TaskException {
         SysJob properties = selectJobById(job.getJobId());
         int rows = jobMapper.updateJob(job);
-        if (rows > 0)
-        {
+        if (rows > 0) {
             updateSchedulerJob(job, properties.getJobGroup());
         }
         return rows;
@@ -254,17 +229,15 @@ public class SysJobServiceImpl extends ServiceImpl<SysJobMapper, SysJob> impleme
 
     /**
      * 更新任务
-     * 
-     * @param job 任务对象
+     *
+     * @param job      任务对象
      * @param jobGroup 任务组名
      */
-    public void updateSchedulerJob(SysJob job, String jobGroup) throws SchedulerException, TaskException
-    {
+    public void updateSchedulerJob(SysJob job, String jobGroup) throws SchedulerException, TaskException {
         Long jobId = job.getJobId();
         // 判断是否存在
         JobKey jobKey = ScheduleUtils.getJobKey(jobId, jobGroup);
-        if (scheduler.checkExists(jobKey))
-        {
+        if (scheduler.checkExists(jobKey)) {
             // 防止创建时存在数据问题 先移除,然后在执行创建操作
             scheduler.deleteJob(jobKey);
         }
@@ -273,13 +246,12 @@ public class SysJobServiceImpl extends ServiceImpl<SysJobMapper, SysJob> impleme
 
     /**
      * 校验cron表达式是否有效
-     * 
+     *
      * @param cronExpression 表达式
      * @return 结果
      */
     @Override
-    public boolean checkCronExpressionIsValid(String cronExpression)
-    {
+    public boolean checkCronExpressionIsValid(String cronExpression) {
         return CronUtils.isValid(cronExpression);
     }
 }

+ 7 - 0
soc-modules/soc-modules-job/src/main/java/com/xunmei/job/task/CoreEduTrainingTask.java

@@ -30,4 +30,11 @@ public class CoreEduTrainingTask {
         AjaxResult result = remoteEduTrainingService.buildEduTask(cycle, date);
         log.info("执行教育培训定时任务结束,当前任务 id:{},周期:{},时间:{},结果:{}", id, cycle, date, JSON.toJSONString(result));
     }
+
+    public void updateEduTaskStatus() {
+        String id = UUID.fastUUID().toString();
+        log.info("开始执行教育培训定时任务,处理未完成的数据的任务数据状态为 已逾期,当前任务 id:{}", id);
+        AjaxResult result = remoteEduTrainingService.updateEduTaskStatus();
+        log.info("执行教育培训定时任务结束....,处理未完成的数据的任务数据状态为 已逾期,当前任务 id:{},结果:{}", id, JSON.toJSONString(result));
+    }
 }