From 5d1aa071ca6f385a8ec9bb2b5135d259f0f225eb Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期四, 04 十二月 2025 10:59:45 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/service/CommonService.java |   38 ++++++++++++++++++++++++++++++--------
 1 files changed, 30 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index dc6ca52..f9c3670 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -10,7 +10,9 @@
 import com.zy.asrs.utils.Utils;
 import com.zy.common.model.NavigateNode;
 import com.zy.common.utils.NavigateUtils;
+import com.zy.common.utils.RedisUtil;
 import com.zy.core.News;
+import com.zy.core.enums.RedisKeyType;
 import com.zy.core.enums.WrkIoType;
 import com.zy.core.enums.WrkStsType;
 import com.zy.core.model.StationObjModel;
@@ -37,6 +39,8 @@
     private NavigateUtils navigateUtils;
     @Autowired
     private CommonService commonService;
+    @Autowired
+    private RedisUtil redisUtil;
 
     /**
      * 鐢熸垚宸ヤ綔鍙�
@@ -87,10 +91,6 @@
             wrkMast.setWrkSts(WrkStsType.COMPLETE_INBOUND.sts);
         }else if (wrkMast.getIoType() == WrkIoType.OUT.id) {
             wrkMast.setWrkSts(WrkStsType.COMPLETE_OUTBOUND.sts);
-        } else if (wrkMast.getIoType() == WrkIoType.SHUTTLE_MOVE.id) {
-            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);
         }
@@ -139,6 +139,20 @@
             ioPri = param.getTaskPri().doubleValue();
         }
 
+        Integer sourceCrnNo = commonService.findCrnNoByLocNo(sourceLocMast.getLocNo());
+        if (sourceCrnNo == null) {
+            throw new CoolException("鏈壘鍒板搴斿爢鍨涙満");
+        }
+
+        Integer crnNo = commonService.findCrnNoByLocNo(locMast.getLocNo());
+        if (crnNo == null) {
+            throw new CoolException("鏈壘鍒板搴斿爢鍨涙満");
+        }
+
+        if (!sourceCrnNo.equals(crnNo)) {
+            throw new CoolException("婧愬簱浣嶅拰鐩爣搴撲綅涓嶅湪鍚屼竴宸烽亾");
+        }
+
         // 鑾峰彇宸ヤ綔鍙�
         int workNo = getWorkNo(WrkIoType.LOC_MOVE.id);
         // 淇濆瓨宸ヤ綔妗�
@@ -150,6 +164,7 @@
         wrkMast.setIoPri(ioPri);
         wrkMast.setSourceLocNo(param.getSourceLocNo());
         wrkMast.setLocNo(param.getLocNo()); // 鐩爣搴撲綅
+        wrkMast.setCrnNo(crnNo);
         wrkMast.setWmsWrkNo(param.getTaskNo());
         wrkMast.setAppeTime(now);
         wrkMast.setModiTime(now);
@@ -219,13 +234,15 @@
         locMast.setModiTime(new Date());
         locMastService.updateById(locMast);
 
+        //缂撳瓨璁板綍褰撳墠鍛戒护鍫嗗灈鏈虹紪鍙�
+        redisUtil.set(RedisKeyType.CURRENT_CIRCLE_TASK_CRN_NO.key, crnNo, 60 * 60 * 24);
         return true;
     }
 
     //鍑哄簱浠诲姟
     public boolean createOutTask(CreateOutTaskParam param) {
         Date now = new Date();
-        LocMast locMast = locMastService.queryByLoc(param.getSourceLocNo());
+        LocMast locMast = locMastService.queryByLoc(param.getLocNo());
         if (null == locMast) {
             throw new CoolException("婧愬簱浣嶄笉瀛樺湪");
         }
@@ -244,6 +261,11 @@
             throw new CoolException("鏈壘鍒板搴斿爢鍨涙満");
         }
 
+        Integer sourceStationId = commonService.findOutStationId(crnNo, param.getStaNo());
+        if (sourceStationId == null) {
+            throw new CoolException("鏈壘鍒拌緭閫佺洰鏍囩珯鐐瑰彲璧拌璺緞");
+        }
+
         // 鑾峰彇宸ヤ綔鍙�
         int workNo = getWorkNo(WrkIoType.OUT.id);
         // 淇濆瓨宸ヤ綔妗�
@@ -253,11 +275,11 @@
         wrkMast.setWrkSts(WrkStsType.NEW_OUTBOUND.sts); // 宸ヤ綔鐘舵�侊細101.鐢熸垚鍑哄簱浠诲姟
         wrkMast.setIoType(WrkIoType.OUT.id); // 鍏ュ嚭搴撶姸鎬侊細 101.鍑哄簱
         wrkMast.setIoPri(ioPri);
-        wrkMast.setSourceLocNo(param.getSourceLocNo()); // 婧愬簱浣�
-        wrkMast.setSourceStaNo(param.getSourceStaNo());//婧愮珯
+        wrkMast.setSourceLocNo(locMast.getLocNo()); // 婧愬簱浣�
+        wrkMast.setSourceStaNo(sourceStationId);//婧愮珯
         wrkMast.setStaNo(param.getStaNo());//鐩爣绔�
         wrkMast.setWmsWrkNo(param.getTaskNo());
-        wrkMast.setBarcode(param.getBarcode());
+        wrkMast.setBarcode(locMast.getBarcode());
         wrkMast.setCrnNo(crnNo);
         wrkMast.setAppeTime(now);
         wrkMast.setModiTime(now);

--
Gitblit v1.9.1