Browse Source

巡检定时任务

丁治程 1 year ago
parent
commit
02fb61eadc

+ 1 - 1
module_cmms/src/main/java/org/jeecg/modules/cmmsInspectPlan/mapper/CmmsInspectPlanMapper.java

@@ -30,5 +30,5 @@ public interface CmmsInspectPlanMapper extends BaseMapper<CmmsInspectPlan> {
     *   des: 修改下次通知信息
     *   date: 2024/1/25
     */
-    public int updateNotice(List<CmmsInspectPlan> inspectPlanList);
+    public int updateNotice(@Param("list") List<CmmsInspectPlan> inspectPlanList);
 }

+ 1 - 1
module_cmms/src/main/java/org/jeecg/modules/cmmsInspectPlan/mapper/xml/CmmsInspectPlanMapper.xml

@@ -56,7 +56,7 @@
         <foreach item="item" collection="list">
             update cmms_inspect_plan
             set ifnotice = #{item.ifnotice}
-            where inspectplanid=#{item.inspectplanid};
+            where id=#{item.id};
         </foreach>
     </update>
 

+ 16 - 0
module_cmms/src/main/java/org/jeecg/modules/cmmsInspectPlan/service/ICmmsInspectPlanService.java

@@ -78,4 +78,20 @@ public interface ICmmsInspectPlanService extends IService<CmmsInspectPlan> {
     */
     List<CmmsInspectPlan> selectAllPlanOnStatus();
 
+    /**
+    *   author: dzc
+    *   version: 1.0
+    *   des: 修改巡检计划 是否已通知状态
+    *   date: 2024/1/29
+    */
+    public int updateNotice(List<CmmsInspectPlan> inspectPlanList);
+
+    /**
+     *   author: dzc
+     *   version: 1.0
+     *   des: 添加缓存
+     *   date: 2024/1/29
+     */
+    public void setRedisCache();
+
 }

+ 17 - 2
module_cmms/src/main/java/org/jeecg/modules/cmmsInspectPlan/service/impl/CmmsInspectPlanServiceImpl.java

@@ -363,7 +363,11 @@ public class CmmsInspectPlanServiceImpl extends ServiceImpl<CmmsInspectPlanMappe
                 message.setTitle("巡检工单");
                 message.setToUser(cmmsInspect.getChargeruser());
                 message.setToAll(false);
-                message.setFromUser(cmmsInspect.getCreateBy());
+                if (ObjectUtil.isNotNull(cmmsInspect.getCreateBy())){
+                    message.setFromUser(cmmsInspect.getCreateBy());
+                }else {
+                    message.setFromUser(plan.getCreateBy());
+                }
                 message.setType(MessageTypeEnum.XT.getType());
                 message.setContent("巡检工单[" + cmmsInspect.getInspectcode() + " " + cmmsInspect.getInspectname() + "]已生成,请及时处理!");
                 noticeList.add(message);
@@ -393,6 +397,17 @@ public class CmmsInspectPlanServiceImpl extends ServiceImpl<CmmsInspectPlanMappe
     /**
     *   author: dzc
     *   version: 1.0
+    *   des: 修改巡检计划 是否已通知状态
+    *   date: 2024/1/29
+    */
+    @Override
+    public int updateNotice(List<CmmsInspectPlan> inspectPlanList) {
+        return inspectPlanMapper.updateNotice(inspectPlanList);
+    }
+
+    /**
+    *   author: dzc
+    *   version: 1.0
     *   des: 批量添加 巡检计划 - 任务
     *   date: 2024/1/23
     */
@@ -419,7 +434,7 @@ public class CmmsInspectPlanServiceImpl extends ServiceImpl<CmmsInspectPlanMappe
     *   des: 添加缓存
     *   date: 2024/1/23
     */
-    private void setRedisCache() {
+    public void setRedisCache() {
         // 获取是否开启时间设置是"是"的巡检计划
         CmmsInspectPlan cmmsInspectPlan = new CmmsInspectPlan();
         cmmsInspectPlan.setStatus("0");

+ 47 - 0
module_cmms/src/main/java/org/jeecg/modules/cmmsInspectPlan/task/GenerateCmmsInspectTask.java

@@ -0,0 +1,47 @@
+package org.jeecg.modules.cmmsInspectPlan.task;
+
+import org.jeecg.common.util.DateUtils;
+import org.jeecg.modules.cmmsInspectPlan.entity.CmmsInspectPlan;
+import org.jeecg.modules.cmmsInspectPlan.service.ICmmsInspectPlanService;
+import org.jeecg.modules.util.PlanToOrderUtils;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author dzc
+ * @date 2024/1/26 14:53
+ * @package org.jeecg.modules.cmmsInspectPlan.task
+ * @project EMS_server
+ * @des 生成巡检工单的定时任务
+ */
+public class GenerateCmmsInspectTask implements Job {
+
+    @Autowired
+    @SuppressWarnings("all")
+    private ICmmsInspectPlanService inspectPlanService;
+
+
+    @Override
+    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        PlanToOrderUtils planToOrderUtils = new PlanToOrderUtils();
+        // 获取所有巡检计划
+        List<CmmsInspectPlan> planList = inspectPlanService.selectAllPlanOnStatus();
+        if (planList == null || planList.size() < 1) {
+            return;
+        }
+        Date now = DateUtils.getDate();
+        for (CmmsInspectPlan plan : planList) {
+            // 如果巡检计划下次执行时间为空或时间未到,则不生成巡检工单
+            if (plan.getNexttime() == null || plan.getNexttime().after(now)) {
+                continue;
+            }
+            inspectPlanService.generateInspect(plan.getId());
+        }
+
+    }
+}

+ 68 - 0
module_cmms/src/main/java/org/jeecg/modules/cmmsInspectPlan/task/GenerateNoticeTask.java

@@ -0,0 +1,68 @@
+package org.jeecg.modules.cmmsInspectPlan.task;
+
+import org.jeecg.common.api.dto.message.MessageDTO;
+import org.jeecg.common.constant.enums.MessageTypeEnum;
+import org.jeecg.common.system.api.ISysBaseAPI;
+import org.jeecg.common.util.DateUtils;
+import org.jeecg.modules.cmmsInspectPlan.entity.CmmsInspectPlan;
+import org.jeecg.modules.cmmsInspectPlan.service.ICmmsInspectPlanService;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author dzc
+ * @date 2024/1/26 16:02
+ * @package org.jeecg.modules.cmmsInspectPlan.task
+ * @project EMS_server
+ * @des 生成巡检工单提前通知的定时任务
+ */
+public class GenerateNoticeTask implements Job {
+
+    @Autowired
+    @SuppressWarnings("all")
+    private ICmmsInspectPlanService inspectPlanService;
+    @Autowired
+    @SuppressWarnings("all")
+    private ISysBaseAPI sysBaseApi;
+
+    @Override
+    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        // 获取所有巡检计划
+        List<CmmsInspectPlan> planList = inspectPlanService.selectAllPlanOnStatus();
+        ArrayList<CmmsInspectPlan> subInspectPlanList = new ArrayList<>();
+        if (planList == null || planList.size() < 1) {
+            return;
+        }
+        Date now = DateUtils.getDate();
+        for (CmmsInspectPlan plan : planList) {
+            // 如果保养计划的下次通知时间为空或时间未到,则不生成消息
+            if (plan.getNoticetime() == null || plan.getNoticetime().after(now) || "是".equals(plan.getIfnotice())) {
+                continue;
+            }
+            plan.setIfnotice("是");
+            subInspectPlanList.add(plan);
+            MessageDTO message = new MessageDTO();
+            message.setTitle("巡检工单生成提醒");
+            message.setToUser(plan.getChargeruser());
+            message.setToAll(false);
+            message.setFromUser(plan.getCreateBy());
+            message.setType(MessageTypeEnum.XT.getType());
+            message.setContent("巡检计划[" + plan.getPlancode() + " " + plan.getPlanname() + "]即将生成巡检工单,请及时处理!");
+            sysBaseApi.sendTemplateMessage(message);//发送系统消息
+        }
+
+        // 更新巡检计划 , 是否已通知状态
+        if (subInspectPlanList != null && subInspectPlanList.size() > 0) {
+            inspectPlanService.updateNotice(subInspectPlanList);
+
+            // 更新巡检计划缓存信息
+            inspectPlanService.setRedisCache();
+        }
+    }
+}