Ver código fonte

安全检查定时任务

luojun 2 anos atrás
pai
commit
c2f16cb32e

+ 5 - 1
project_data/sql/0.0.2/quartz/quartz.sql

@@ -32,4 +32,8 @@ INSERT INTO `sys_job`(`job_name`, `job_group`, `invoke_target`, `cron_expression
 
 -- 生成下个月作息定时任务
 delete from `sys_job` where invoke_target like 'WorkTimeTask.generateNextMonth%';
-INSERT INTO `sys_job`( `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ( '生成下个月作息', 'DEFAULT', 'WorkTimeTask.generateNextMonth', '1 1 1 1 * ?', '1', '1', '0', '省联社账号', '2023-10-25 15:48:21', '', NULL);
+INSERT INTO `sys_job`( `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ( '生成下个月作息', 'DEFAULT', 'WorkTimeTask.generateNextMonth', '1 1 1 1 * ?', '1', '1', '0', '省联社账号', '2023-10-25 15:48:21', '', NULL);
+
+-- 安全检查每天更新状态
+delete from `sys_job` where invoke_target like 'CoreSafetyCheckTask.updateTaskStatus%';
+INSERT INTO `sys_job`( `job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ( '安全检查更新任务状态', 'DEFAULT', 'CoreSafetyCheckTask.updateTaskStatus', '1 1 0 * * ?', '1', '1', '0', '省联社账号', '2023-10-27 15:26:47', '', NULL);

+ 2 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteSafetyCheckService.java

@@ -66,4 +66,6 @@ public interface RemoteSafetyCheckService {
 
     @PostMapping("checkplan/rebuild")
     AjaxResult rebuild(@RequestBody String event, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+    @GetMapping(value = "checkplan/updateTaskStatus")
+    R<Boolean> updateTaskStatus();
 }

+ 5 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteSafetyCheckTaskFallbackFactory.java

@@ -44,6 +44,11 @@ public class RemoteSafetyCheckTaskFallbackFactory implements FallbackFactory<Rem
             public AjaxResult rebuild(String event, String source) {
                 return null;
             }
+
+            @Override
+            public R<Boolean> updateTaskStatus() {
+                return null;
+            }
         };
     }
 }

+ 14 - 5
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/controller/CoreSafecheckPlanController.java

@@ -51,11 +51,13 @@ public class CoreSafecheckPlanController extends BaseController {
     private SafetyCheckJobBusiness jobBusiness;
     @Autowired
     WorkTimeChangeEventListener workTimeChangeEventListener;
+
     @PostMapping(value = "/rebuild")
     @InnerAuth
-    void rebuildTask(@RequestBody String event){
+    void rebuildTask(@RequestBody String event) {
         workTimeChangeEventListener.onApplicationEvent(new Gson().fromJson(event, WorkTimeChangeEvent.class));
     }
+
     @ApiOperation(value = "撤回")
     @GetMapping(value = "/cheHui/{id}")
 //    @RequiresPermissions("core:plan:findById")
@@ -74,7 +76,7 @@ public class CoreSafecheckPlanController extends BaseController {
         if (plan.isBuildTaskNow() || plan.getPlanCycle() == 6) {
 //获取父计划下面所有父id相等并且未删除并且已启用的计划
             List<CoreSafecheckPlan> plans = coreSafecheckPlanService.list(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, plan.getId()).eq(CoreSafecheckPlan::getIsDeleted, 0).eq(CoreSafecheckPlan::getPlanStatus, 1));
-            if(plan.getPlanOfOrgType()==3) {
+            if (plan.getPlanOfOrgType() == 3) {
                 plans.add(plan);
             }
             jobBusiness.createTaskByPlans(plans);
@@ -122,12 +124,12 @@ public class CoreSafecheckPlanController extends BaseController {
 
         Long planId = coreSafecheckPlan.getId();
         //处理无周期
-        if(coreSafecheckPlan.getPlanCycle()==6){
+        if (coreSafecheckPlan.getPlanCycle() == 6) {
             coreSafecheckPlan.setBuildTaskNow(true);
         }
         Long returnId = coreSafecheckPlanService.insertCoreSafecheckPlan(coreSafecheckPlan);
         //判断是否是编辑并且计划所属任务不存在已完成或者逾期,需要删除所有任务重新生成
-        boolean isEditAll = coreSafecheckPlan.getHasEdit() == null && planId != null&&coreSafecheckPlan.isBuildTaskNow();
+        boolean isEditAll = coreSafecheckPlan.getHasEdit() == null && planId != null && coreSafecheckPlan.isBuildTaskNow();
         //如果是新增计划并且勾选立即执行并且是行社或者无周期,立即生成计划
         if (isEditAll) {
             CoreSafecheckPlan plan = coreSafecheckPlanService.getById(returnId);
@@ -170,7 +172,7 @@ public class CoreSafecheckPlanController extends BaseController {
             if (plan.isBuildTaskNow() || plan.getPlanCycle() == 6) {
 //获取父计划下面所有父id相等并且未删除并且已启用的计划
                 List<CoreSafecheckPlan> plans = coreSafecheckPlanService.list(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, plan.getId()).eq(CoreSafecheckPlan::getIsDeleted, 0).eq(CoreSafecheckPlan::getPlanStatus, 1));
-                if(plan.getPlanOfOrgType()==3) {
+                if (plan.getPlanOfOrgType() == 3) {
                     plans.add(plan);
                 }
                 jobBusiness.createTaskByPlans(plans);
@@ -313,4 +315,11 @@ public class CoreSafecheckPlanController extends BaseController {
         }
         return AjaxResult.success("开始生成每年常规安全检查任务!");
     }
+
+    @ApiOperation(value = "更新安全检查状态")
+    @GetMapping(value = "/updateTaskStatus")
+    public AjaxResult updateTaskStatus() {
+        jobBusiness.updateTaskStatus();
+        return AjaxResult.success("开始更新安全检查状态!");
+    }
 }

+ 7 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/job/SafetyCheckJobBusiness.java

@@ -13,6 +13,7 @@ import com.xunmei.common.core.enums.CycleCommonEnum;
 import com.xunmei.common.core.utils.DateHelper;
 import com.xunmei.common.core.utils.IDHelper;
 import com.xunmei.core.TaskCreatingServiceImplBase;
+import com.xunmei.core.resumption.domain.Resumption;
 import com.xunmei.core.safetyCheck.domain.*;
 import com.xunmei.core.safetyCheck.domain.CoreSafecheckPlan;
 import com.xunmei.core.safetyCheck.dto.SafetyTaskBuildDto;
@@ -781,6 +782,11 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
 
     @Override
     public Boolean updateTaskStatus() {
-        return null;
+        LambdaUpdateWrapper<CoreSafetyTask> wrapper = new LambdaUpdateWrapper<CoreSafetyTask>();
+        Date date = DateUtil.beginOfDay(new Date());
+        wrapper.lt(CoreSafetyTask::getPlanEndTime, date)
+                .in(CoreSafetyTask::getStatus, Arrays.asList(1, 2))//未开始、进行中
+                .set(CoreSafetyTask::getStatus, 4);
+        return checkTaskService.update(wrapper);
     }
 }

+ 5 - 5
soc-modules/soc-modules-job/src/main/java/com/xunmei/job/task/CoreSafetyCheckTask.java

@@ -49,9 +49,9 @@ public class CoreSafetyCheckTask {
         log.info("执行执行每年检查定时任务结束,当前任务 时间:{},结果:{}", new Date(), JSON.toJSONString(result));
     }
 
-//    public void updateTaskStatus(){
-//        log.info("开始更新检查任务状态 时间:{}",new Date());
-//        R<Boolean> result = remoteResumptionTaskService.updateTaskStatus();
-//        log.info("更新检查任务状态结束,当前任务 时间:{},结果:{}", new Date(), JSON.toJSONString(result));
-//    }
+    public void updateTaskStatus(){
+        log.info("开始更新检查任务状态 时间:{}",new Date());
+        R<Boolean> result = checkService.updateTaskStatus();
+        log.info("更新检查任务状态结束,当前任务 时间:{},结果:{}", new Date(), JSON.toJSONString(result));
+    }
 }