From 2ae8d909b139ffecdad54e6d56d4576e38a79ebf Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期二, 17 三月 2026 16:12:22 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/WrkMastScheduler.java |  108 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 85 insertions(+), 23 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/WrkMastScheduler.java b/src/main/java/com/zy/asrs/task/WrkMastScheduler.java
index 4f1b40b..cabcd4d 100644
--- a/src/main/java/com/zy/asrs/task/WrkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WrkMastScheduler.java
@@ -1,11 +1,16 @@
 package com.zy.asrs.task;
 
+import com.alibaba.fastjson.JSON;
 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.core.enums.LocStsType;
+import com.zy.core.enums.WrkIoType;
 import com.zy.core.enums.WrkStsType;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,6 +32,8 @@
     private WrkMastLogService wrkMastLogService;
     @Autowired
     private LocMastService locMastService;
+    @Autowired
+    private NotifyUtils notifyUtils;
 
     @Scheduled(cron = "0/1 * * * * ? ")
     @Transactional
@@ -50,6 +57,7 @@
             }
 
             locMast.setLocSts("F");
+            locMast.setBarcode(wrkMast.getBarcode());
             locMast.setModiTime(new Date());
             boolean result = locMastService.updateById(locMast);
             if (!result) {
@@ -65,6 +73,9 @@
             if (!wrkMastService.deleteById(wrkMast)) {
                 log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo());
             }
+
+            //涓婃姤
+            notifyUtils.notify("task", 1, String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.TASK_COMPLETE, JSON.toJSONString(wrkMast));
         }
     }
 
@@ -84,17 +95,15 @@
                 continue;
             }
 
-            if (!locMast.getLocSts().equals("R")) {
-                log.info("[workNo={}]搴撲綅鐘舵�佷笉澶勪簬R", wrkMast.getWrkNo());
-                continue;
-            }
-
-            locMast.setLocSts("O");
-            locMast.setModiTime(new Date());
-            boolean result = locMastService.updateById(locMast);
-            if (!result) {
-                log.info("[workNo={}]搴撲綅鐘舵�丱鏇存柊澶辫触", wrkMast.getWrkNo());
-                continue;
+            if (locMast.getLocSts().equals("R")) {
+                locMast.setLocSts("O");
+                locMast.setBarcode("");
+                locMast.setModiTime(new Date());
+                boolean result = locMastService.updateById(locMast);
+                if (!result) {
+                    log.info("[workNo={}]搴撲綅鐘舵�丱鏇存柊澶辫触", wrkMast.getWrkNo());
+                    continue;
+                }
             }
 
             // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
@@ -102,9 +111,12 @@
                 log.info("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={}]澶辫触", wrkMast.getWrkNo());
             }
             // 鍒犻櫎宸ヤ綔涓绘。
-            if (!wrkMastService.deleteById(wrkMast)) {
+            if (!wrkMastService.deleteById(wrkMast.getWrkNo())) {
                 log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo());
             }
+
+            //涓婃姤
+            notifyUtils.notify("task", 1, String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.TASK_COMPLETE, JSON.toJSONString(wrkMast));
         }
     }
 
@@ -130,7 +142,7 @@
                 continue;
             }
 
-            LocMast sourceLocMast= locMastService.queryByLoc(sourceLocNo);
+            LocMast sourceLocMast = locMastService.queryByLoc(sourceLocNo);
             if (sourceLocMast == null) {
                 log.info("[workNo={}]搴撲綅涓嶅瓨鍦�", wrkMast.getWrkNo());
                 continue;
@@ -142,6 +154,7 @@
             }
 
             locMast.setLocSts("F");
+            locMast.setBarcode(wrkMast.getBarcode());
             locMast.setModiTime(new Date());
             boolean result = locMastService.updateById(locMast);
             if (!result) {
@@ -150,6 +163,7 @@
             }
 
             sourceLocMast.setLocSts("O");
+            sourceLocMast.setBarcode("");
             sourceLocMast.setModiTime(new Date());
             boolean result2 = locMastService.updateById(sourceLocMast);
             if (!result2) {
@@ -165,13 +179,16 @@
             if (!wrkMastService.deleteById(wrkMast)) {
                 log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo());
             }
+
+            //涓婃姤
+            notifyUtils.notify("task", 1, String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.TASK_COMPLETE, JSON.toJSONString(wrkMast));
         }
     }
 
     @Scheduled(cron = "0/1 * * * * ? ")
     @Transactional
-    public void executeMove(){
-        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.COMPLETE_MOVE.sts));
+    public void executeCancelTask(){
+        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("mk", "taskCancel"));
         if (wrkMasts.isEmpty()) {
             return;
         }
@@ -185,25 +202,70 @@
             if (!wrkMastService.deleteById(wrkMast)) {
                 log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo());
             }
+
+            if (wrkMast.getIoType() == WrkIoType.IN.id) {
+                LocMast locMast = locMastService.queryByLoc(wrkMast.getLocNo());
+                locMast.setLocSts(String.valueOf(LocStsType.O));
+                locMast.setModiTime(new Date());
+                locMastService.updateById(locMast);
+            } else if (wrkMast.getIoType() == WrkIoType.OUT.id) {
+                LocMast locMast = locMastService.queryByLoc(wrkMast.getSourceLocNo());
+                locMast.setLocSts(String.valueOf(LocStsType.F));
+                locMast.setModiTime(new Date());
+                locMastService.updateById(locMast);
+            } else if (wrkMast.getIoType() == WrkIoType.LOC_MOVE.id) {
+                LocMast sourceLocMast = locMastService.queryByLoc(wrkMast.getSourceLocNo());
+                LocMast locMast = locMastService.queryByLoc(wrkMast.getLocNo());
+                if (sourceLocMast.getLocSts().equals(String.valueOf(LocStsType.R))) {
+                    sourceLocMast.setLocSts(String.valueOf(LocStsType.F));
+                    sourceLocMast.setModiTime(new Date());
+                    locMastService.updateById(sourceLocMast);
+                }
+
+                if (locMast.getLocSts().equals(String.valueOf(LocStsType.S))) {
+                    locMast.setLocSts(String.valueOf(LocStsType.O));
+                    locMast.setModiTime(new Date());
+                    locMastService.updateById(locMast);
+                }
+            }
+
+            //涓婃姤
+            notifyUtils.notify("task", 1, String.valueOf(wrkMast.getWrkNo()), wrkMast.getWmsWrkNo(), NotifyMsgType.TASK_CANCEL, JSON.toJSONString(wrkMast));
         }
     }
 
     @Scheduled(cron = "0/1 * * * * ? ")
     @Transactional
-    public void executeCharge(){
-        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.COMPLETE_CHARGE.sts));
+    public void processOutStationRun(){
+        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.STATION_RUN.sts));
         if (wrkMasts.isEmpty()) {
             return;
         }
 
         for (WrkMast wrkMast : wrkMasts) {
-            // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
-            if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
-                log.info("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={}]澶辫触", wrkMast.getWrkNo());
+            String locNo = wrkMast.getSourceLocNo();
+            LocMast locMast = locMastService.queryByLoc(locNo);
+            if (locMast == null) {
+                log.info("[workNo={}]搴撲綅涓嶅瓨鍦�", wrkMast.getWrkNo());
+                continue;
             }
-            // 鍒犻櫎宸ヤ綔涓绘。
-            if (!wrkMastService.deleteById(wrkMast)) {
-                log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo());
+
+            if (locMast.getLocSts().equals("O")) {
+                continue;
+            }
+
+            if (!locMast.getLocSts().equals("R")) {
+                log.info("[workNo={}]搴撲綅鐘舵�佷笉澶勪簬R", wrkMast.getWrkNo());
+                continue;
+            }
+
+            locMast.setLocSts("O");
+            locMast.setBarcode("");
+            locMast.setModiTime(new Date());
+            boolean result = locMastService.updateById(locMast);
+            if (!result) {
+                log.info("[workNo={}]搴撲綅鐘舵�丱鏇存柊澶辫触", wrkMast.getWrkNo());
+                continue;
             }
         }
     }

--
Gitblit v1.9.1