From ed265ddfb8f08f69af064a9adf65fcbf06289ffe Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期二, 11 二月 2025 14:07:54 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/domain/enums/NotifyMsgType.java |    5 ++
 src/main/java/com/zy/asrs/utils/NotifyUtils.java          |   36 +++++++++---------
 src/main/java/com/zy/core/enums/RedisKeyType.java         |    1 
 src/main/java/com/zy/asrs/domain/NotifyDto.java           |   11 +++--
 src/main/java/com/zy/asrs/task/WrkMastScheduler.java      |   45 ++++++++++++++++++++++
 src/main/java/com/zy/common/service/CommonService.java    |    5 +-
 6 files changed, 79 insertions(+), 24 deletions(-)

diff --git a/src/main/java/com/zy/asrs/domain/NotifyDto.java b/src/main/java/com/zy/asrs/domain/NotifyDto.java
index 38d2f6a..5173b88 100644
--- a/src/main/java/com/zy/asrs/domain/NotifyDto.java
+++ b/src/main/java/com/zy/asrs/domain/NotifyDto.java
@@ -7,8 +7,8 @@
 
     private Long id;
 
-    //璁惧绫诲瀷
-    private String deviceType;
+    //閫氱煡绫诲瀷
+    private String notifyType;
 
     //璁惧鍙�
     private Integer device;
@@ -19,8 +19,11 @@
     //娑堟伅绫诲瀷
     private String msgType;
 
-    //娑堟伅鍐呭
-    private String content;
+    //娑堟伅鎻忚堪
+    private String msgDesc;
+
+    //娑堟伅鏁版嵁
+    private String data;
 
     //澶辫触閲嶈瘯娆℃暟
     private Integer failTimes = 3;
diff --git a/src/main/java/com/zy/asrs/domain/enums/NotifyMsgType.java b/src/main/java/com/zy/asrs/domain/enums/NotifyMsgType.java
index 11feb74..49505dd 100644
--- a/src/main/java/com/zy/asrs/domain/enums/NotifyMsgType.java
+++ b/src/main/java/com/zy/asrs/domain/enums/NotifyMsgType.java
@@ -11,6 +11,11 @@
     SHUTTLE_POWER_COMPLETE("shuttle_power_complete", "灏忚溅鍏呯數瀹屾垚"),
     SHUTTLE_ERROR("shuttle_error", "灏忚溅寮傚父"),
     FORK_LIFT_ERROR("fork_lift_error", "璐у弶鎻愬崌鏈哄紓甯�"),
+
+    //浠诲姟
+    TASK_COMPLETE("task_complete", "浠诲姟瀹屾垚"),
+    TASK_CHARGE_COMPLETE("task_charge_complete", "鍏呯數浠诲姟瀹屾垚"),
+    TASK_CANCEL("task_cancel", "浠诲姟鍙栨秷"),
     ;
 
     public String flag;
diff --git a/src/main/java/com/zy/asrs/task/WrkMastScheduler.java b/src/main/java/com/zy/asrs/task/WrkMastScheduler.java
index 4f1b40b..7ef9d9b 100644
--- a/src/main/java/com/zy/asrs/task/WrkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WrkMastScheduler.java
@@ -1,12 +1,20 @@
 package com.zy.asrs.task;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.zy.asrs.domain.enums.NotifyMsgType;
 import com.zy.asrs.entity.LocMast;
 import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.service.LocMastService;
 import com.zy.asrs.service.WrkMastLogService;
 import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.utils.NotifyUtils;
+import com.zy.common.utils.HttpHandler;
+import com.zy.core.enums.SlaveType;
 import com.zy.core.enums.WrkStsType;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -27,6 +35,8 @@
     private WrkMastLogService wrkMastLogService;
     @Autowired
     private LocMastService locMastService;
+    @Autowired
+    private NotifyUtils notifyUtils;
 
     @Scheduled(cron = "0/1 * * * * ? ")
     @Transactional
@@ -65,6 +75,9 @@
             if (!wrkMastService.deleteById(wrkMast)) {
                 log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo());
             }
+
+            //涓婃姤
+            notifyUtils.notify("task", 1, String.valueOf(wrkMast.getWrkNo()), NotifyMsgType.TASK_COMPLETE, JSON.toJSONString(wrkMast));
         }
     }
 
@@ -105,6 +118,9 @@
             if (!wrkMastService.deleteById(wrkMast)) {
                 log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo());
             }
+
+            //涓婃姤
+            notifyUtils.notify("task", 1, String.valueOf(wrkMast.getWrkNo()), NotifyMsgType.TASK_COMPLETE, JSON.toJSONString(wrkMast));
         }
     }
 
@@ -165,6 +181,9 @@
             if (!wrkMastService.deleteById(wrkMast)) {
                 log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo());
             }
+
+            //涓婃姤
+            notifyUtils.notify("task", 1, String.valueOf(wrkMast.getWrkNo()), NotifyMsgType.TASK_COMPLETE, JSON.toJSONString(wrkMast));
         }
     }
 
@@ -205,6 +224,32 @@
             if (!wrkMastService.deleteById(wrkMast)) {
                 log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo());
             }
+
+            //涓婃姤
+            notifyUtils.notify("task", 1, String.valueOf(wrkMast.getWrkNo()), NotifyMsgType.TASK_CHARGE_COMPLETE, JSON.toJSONString(wrkMast));
+        }
+    }
+
+    @Scheduled(cron = "0/1 * * * * ? ")
+    @Transactional
+    public void executeCancelTask(){
+        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("mk", "taskCancel"));
+        if (wrkMasts.isEmpty()) {
+            return;
+        }
+
+        for (WrkMast wrkMast : wrkMasts) {
+            // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+            if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
+                log.info("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={}]澶辫触", wrkMast.getWrkNo());
+            }
+            // 鍒犻櫎宸ヤ綔涓绘。
+            if (!wrkMastService.deleteById(wrkMast)) {
+                log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo());
+            }
+
+            //涓婃姤
+            notifyUtils.notify("task", 1, String.valueOf(wrkMast.getWrkNo()), NotifyMsgType.TASK_CANCEL, JSON.toJSONString(wrkMast));
         }
     }
 
diff --git a/src/main/java/com/zy/asrs/utils/NotifyUtils.java b/src/main/java/com/zy/asrs/utils/NotifyUtils.java
index 6a1f480..18dc8ab 100644
--- a/src/main/java/com/zy/asrs/utils/NotifyUtils.java
+++ b/src/main/java/com/zy/asrs/utils/NotifyUtils.java
@@ -27,12 +27,12 @@
     @Autowired
     private ConfigService configService;
 
-    public synchronized boolean notify(String deviceType, Integer device, String taskNo, NotifyMsgType msgType) {
-        SlaveType type = SlaveType.findInstance(deviceType);
-        if (type == null) {
-            return false;
-        }
-        return append(type, device, taskNo, msgType);
+    public synchronized boolean notify(String notifyType, Integer device, String taskNo, NotifyMsgType msgType) {
+        return append(notifyType, device, taskNo, msgType, null);
+    }
+
+    public synchronized boolean notify(String notifyType, Integer device, String taskNo, NotifyMsgType msgType, String data) {
+        return append(notifyType, device, taskNo, msgType, data);
     }
 
     public synchronized List<String> takeKeys(String deviceType, Integer device) {
@@ -73,25 +73,25 @@
         return key;
     }
 
-    private boolean append(SlaveType deviceType, Integer device, String taskNo, NotifyMsgType msgType) {
+    private boolean append(String notifyType, Integer device, String taskNo, NotifyMsgType msgType, String data) {
         String key = null;
-        switch (deviceType) {
-            case Shuttle:
-                key = RedisKeyType.QUEUE_SHUTTLE.key + device;
-                break;
-            case ForkLift:
-                key = RedisKeyType.QUEUE_FORK_LIFT.key + device;
-                break;
-            default:
-                return false;
+        if (notifyType.equals(String.valueOf(SlaveType.Shuttle))) {
+            key = RedisKeyType.QUEUE_SHUTTLE.key + device;
+        } else if (notifyType.equals(String.valueOf(SlaveType.ForkLift))) {
+            key = RedisKeyType.QUEUE_FORK_LIFT.key + device;
+        } else if (notifyType.equals("task")) {
+            key = RedisKeyType.QUEUE_FORK_LIFT.key + device;
+        } else {
+            return false;
         }
 
         NotifyDto dto = new NotifyDto();
         dto.setId(snowflakeIdWorker.nextId());
-        dto.setDeviceType(String.valueOf(deviceType));
+        dto.setNotifyType(notifyType);
         dto.setDevice(device);
         dto.setMsgType(msgType.flag);
-        dto.setContent(msgType.desc);
+        dto.setMsgDesc(msgType.desc);
+        dto.setData(data);
         dto.setTaskNo(taskNo);
 
         //閲嶈瘯娆℃暟
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 4e32bd5..c9df23c 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -110,8 +110,9 @@
             throw new CoolException("浠诲姟涓嶅瓨鍦�");
         }
 
-        wrkMastLogService.save(wrkNo);
-        wrkMastService.deleteById(wrkNo);
+        wrkMast.setMk("taskCancel");
+        wrkMast.setModiTime(new Date());
+        wrkMastService.updateById(wrkMast);
         return true;
     }
 
diff --git a/src/main/java/com/zy/core/enums/RedisKeyType.java b/src/main/java/com/zy/core/enums/RedisKeyType.java
index fb0f9f7..190f8d9 100644
--- a/src/main/java/com/zy/core/enums/RedisKeyType.java
+++ b/src/main/java/com/zy/core/enums/RedisKeyType.java
@@ -10,6 +10,7 @@
     BASIC_MAP("basicMap_"),
     QUEUE_SHUTTLE("queue_shuttle_"),
     QUEUE_FORK_LIFT("queue_fork_lift_"),
+    QUEUE_TASK("queue_task_"),
     ;
 
     public String key;

--
Gitblit v1.9.1