From be56277845b22c0c75172fa511223ab9d413134c Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 10 二月 2025 13:30:56 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/enums/WrkStsType.java        |    1 
 src/main/resources/sql/20250210133035.nb3              |    0 
 src/main/java/com/zy/asrs/task/WrkMastScheduler.java   |  122 ++++++++++++++++++++++++++++++++++++++--
 src/main/java/com/zy/common/service/CommonService.java |   33 ++++++++++-
 4 files changed, 146 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/WrkMastScheduler.java b/src/main/java/com/zy/asrs/task/WrkMastScheduler.java
index e0f7c81..4f1b40b 100644
--- a/src/main/java/com/zy/asrs/task/WrkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WrkMastScheduler.java
@@ -1,7 +1,9 @@
 package com.zy.asrs.task;
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+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.core.enums.WrkStsType;
@@ -9,7 +11,9 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
 import java.util.List;
 
 
@@ -21,15 +25,38 @@
     private WrkMastService wrkMastService;
     @Autowired
     private WrkMastLogService wrkMastLogService;
+    @Autowired
+    private LocMastService locMastService;
 
     @Scheduled(cron = "0/1 * * * * ? ")
-    private void executeIn(){
-        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.SETTLE_INBOUND.sts));
+    @Transactional
+    public void executeIn(){
+        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.COMPLETE_INBOUND.sts));
         if (wrkMasts.isEmpty()) {
             return;
         }
 
         for (WrkMast wrkMast : wrkMasts) {
+            String locNo = wrkMast.getLocNo();
+            LocMast locMast = locMastService.queryByLoc(locNo);
+            if (locMast == null) {
+                log.info("[workNo={}]搴撲綅涓嶅瓨鍦�", wrkMast.getWrkNo());
+                continue;
+            }
+
+            if (!locMast.getLocSts().equals("S")) {
+                log.info("[workNo={}]搴撲綅鐘舵�佷笉澶勪簬S", wrkMast.getWrkNo());
+                continue;
+            }
+
+            locMast.setLocSts("F");
+            locMast.setModiTime(new Date());
+            boolean result = locMastService.updateById(locMast);
+            if (!result) {
+                log.info("[workNo={}]搴撲綅鐘舵�丗鏇存柊澶辫触", wrkMast.getWrkNo());
+                continue;
+            }
+
             // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
             if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
                 log.info("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={}]澶辫触", wrkMast.getWrkNo());
@@ -42,13 +69,34 @@
     }
 
     @Scheduled(cron = "0/1 * * * * ? ")
-    private void executeOut(){
-        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.SETTLE_OUTBOUND.sts));
+    @Transactional
+    public void executeOut(){
+        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.COMPLETE_OUTBOUND.sts));
         if (wrkMasts.isEmpty()) {
             return;
         }
 
         for (WrkMast wrkMast : wrkMasts) {
+            String locNo = wrkMast.getSourceLocNo();
+            LocMast locMast = locMastService.queryByLoc(locNo);
+            if (locMast == null) {
+                log.info("[workNo={}]搴撲綅涓嶅瓨鍦�", wrkMast.getWrkNo());
+                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 (!wrkMastLogService.save(wrkMast.getWrkNo())) {
                 log.info("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={}]澶辫触", wrkMast.getWrkNo());
@@ -61,7 +109,68 @@
     }
 
     @Scheduled(cron = "0/1 * * * * ? ")
-    private void executeMove(){
+    @Transactional
+    public void executeLocMove(){
+        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.COMPLETE_LOC_MOVE.sts));
+        if (wrkMasts.isEmpty()) {
+            return;
+        }
+
+        for (WrkMast wrkMast : wrkMasts) {
+            String sourceLocNo = wrkMast.getSourceLocNo();
+            String locNo = wrkMast.getLocNo();
+            LocMast locMast = locMastService.queryByLoc(locNo);
+            if (locMast == null) {
+                log.info("[workNo={}]搴撲綅涓嶅瓨鍦�", wrkMast.getWrkNo());
+                continue;
+            }
+
+            if (!locMast.getLocSts().equals("S")) {
+                log.info("[workNo={}]搴撲綅鐘舵�佷笉澶勪簬S", wrkMast.getWrkNo());
+                continue;
+            }
+
+            LocMast sourceLocMast= locMastService.queryByLoc(sourceLocNo);
+            if (sourceLocMast == null) {
+                log.info("[workNo={}]搴撲綅涓嶅瓨鍦�", wrkMast.getWrkNo());
+                continue;
+            }
+
+            if (!sourceLocMast.getLocSts().equals("R")) {
+                log.info("[workNo={}]搴撲綅鐘舵�佷笉澶勪簬R", wrkMast.getWrkNo());
+                continue;
+            }
+
+            locMast.setLocSts("F");
+            locMast.setModiTime(new Date());
+            boolean result = locMastService.updateById(locMast);
+            if (!result) {
+                log.info("[workNo={}]搴撲綅鐘舵�丗鏇存柊澶辫触", wrkMast.getWrkNo());
+                continue;
+            }
+
+            sourceLocMast.setLocSts("O");
+            sourceLocMast.setModiTime(new Date());
+            boolean result2 = locMastService.updateById(sourceLocMast);
+            if (!result2) {
+                log.info("[workNo={}]搴撲綅鐘舵�丱鏇存柊澶辫触", wrkMast.getWrkNo());
+                continue;
+            }
+
+            // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+            if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
+                log.info("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={}]澶辫触", wrkMast.getWrkNo());
+            }
+            // 鍒犻櫎宸ヤ綔涓绘。
+            if (!wrkMastService.deleteById(wrkMast)) {
+                log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo());
+            }
+        }
+    }
+
+    @Scheduled(cron = "0/1 * * * * ? ")
+    @Transactional
+    public void executeMove(){
         List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.COMPLETE_MOVE.sts));
         if (wrkMasts.isEmpty()) {
             return;
@@ -80,7 +189,8 @@
     }
 
     @Scheduled(cron = "0/1 * * * * ? ")
-    private void executeCharge(){
+    @Transactional
+    public void executeCharge(){
         List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", WrkStsType.COMPLETE_CHARGE.sts));
         if (wrkMasts.isEmpty()) {
             return;
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 42cc7bb..4e32bd5 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -94,6 +94,8 @@
             wrkMast.setWrkSts(WrkStsType.COMPLETE_MOVE.sts);
         } else if (wrkMast.getIoType() == WrkIoType.SHUTTLE_CHARGE.id) {
             wrkMast.setWrkSts(WrkStsType.COMPLETE_CHARGE.sts);
+        } else if (wrkMast.getIoType() == WrkIoType.LOC_MOVE.id) {
+            wrkMast.setWrkSts(WrkStsType.COMPLETE_LOC_MOVE.sts);
         }
 
         wrkMast.setModiTime(new Date());
@@ -116,13 +118,22 @@
     //绉诲簱浠诲姟
     public boolean createLocMoveTask(CreateLocMoveTaskParam param) {
         Date now = new Date();
-        LocMast locMast = locMastService.queryByLoc(param.getSourceLocNo());
-        if (null == locMast) {
+        LocMast sourceLocMast = locMastService.queryByLoc(param.getSourceLocNo());
+        if (null == sourceLocMast) {
             throw new CoolException("婧愬簱浣嶄笉瀛樺湪");
         }
 
-        if (!locMast.getLocSts().equals("F")) {
+        if (!sourceLocMast.getLocSts().equals("F")) {
             throw new CoolException("婧愬簱浣嶄笉澶勪簬鍦ㄥ簱鐘舵��");
+        }
+
+        LocMast locMast = locMastService.queryByLoc(param.getLocNo());
+        if (null == locMast) {
+            throw new CoolException("鐩爣搴撲綅涓嶅瓨鍦�");
+        }
+
+        if (!locMast.getLocSts().equals("O")) {
+            throw new CoolException("鐩爣搴撲綅涓嶅浜庣┖搴撶姸鎬�");
         }
 
         // 鑾峰彇宸ヤ綔鍙�
@@ -144,6 +155,14 @@
             News.error("绉诲簱浠诲姟 --- 淇濆瓨宸ヤ綔妗eけ璐ワ紒");
             throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
         }
+
+        sourceLocMast.setLocSts("R");
+        sourceLocMast.setModiTime(new Date());
+        locMastService.updateById(sourceLocMast);
+
+        locMast.setLocSts("S");
+        locMast.setModiTime(new Date());
+        locMastService.updateById(locMast);
 
         return true;
     }
@@ -181,6 +200,10 @@
             throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
         }
 
+        locMast.setLocSts("S");
+        locMast.setModiTime(new Date());
+        locMastService.updateById(locMast);
+
         return true;
     }
 
@@ -216,6 +239,10 @@
             throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
         }
 
+        locMast.setLocSts("R");
+        locMast.setModiTime(new Date());
+        locMastService.updateById(locMast);
+
         return true;
     }
 
diff --git a/src/main/java/com/zy/core/enums/WrkStsType.java b/src/main/java/com/zy/core/enums/WrkStsType.java
index ac9e6c9..79b53ae 100644
--- a/src/main/java/com/zy/core/enums/WrkStsType.java
+++ b/src/main/java/com/zy/core/enums/WrkStsType.java
@@ -48,7 +48,6 @@
     NEW_LOC_MOVE(501, "鐢熸垚绉诲簱浠诲姟"),
     LOC_MOVE_SHUTTLE_RUN(502, "灏忚溅鎼繍涓�"),
     COMPLETE_LOC_MOVE(509, "绉诲簱瀹屾垚"),
-    SETTLE_LOC_MOVE(510, "绉诲簱搴撳瓨鏇存柊"),
     ;
 
 
diff --git a/src/main/resources/sql/20250210133035.nb3 b/src/main/resources/sql/20250210133035.nb3
new file mode 100644
index 0000000..b289c3a
--- /dev/null
+++ b/src/main/resources/sql/20250210133035.nb3
Binary files differ

--
Gitblit v1.9.1