From a68bf17ab81df98882e19b79628e6876bb260468 Mon Sep 17 00:00:00 2001
From: zc <zc@123>
Date: 星期三, 18 六月 2025 10:04:26 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/fyxc_shuttle_wcs' into fyxc_shuttle_wcs

---
 src/main/java/com/zy/common/service/CommonService.java |   77 ++++++++++++++++++++++++++++++--------
 1 files changed, 60 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 42cc7bb..b1caae1 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -1,10 +1,16 @@
 package com.zy.common.service;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.core.exception.CoolException;
 import com.zy.asrs.domain.param.*;
-import com.zy.asrs.entity.*;
-import com.zy.asrs.service.*;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.WrkLastno;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.service.WrkLastnoService;
+import com.zy.asrs.service.WrkMastLogService;
+import com.zy.asrs.service.WrkMastService;
 import com.zy.core.News;
 import com.zy.core.enums.WrkIoType;
 import com.zy.core.enums.WrkStsType;
@@ -40,17 +46,17 @@
         int workNo = wrkLastno.getWrkNo();
         int sNo = wrkLastno.getSNo();
         int eNo = wrkLastno.getENo();
-        workNo = workNo>=eNo ? sNo : workNo+1;
+        workNo = workNo >= eNo ? sNo : workNo + 1;
         while (true) {
             WrkMast wrkMast = wrkMastService.selectByWorkNo(workNo);
             if (null != wrkMast) {
-                workNo = workNo>=eNo ? sNo : workNo+1;
+                workNo = workNo >= eNo ? sNo : workNo + 1;
             } else {
                 break;
             }
         }
         // 淇敼搴忓彿璁板綍
-        if (workNo > 0){
+        if (workNo > 0) {
             wrkLastno.setWrkNo(workNo);
             wrkLastnoService.updateById(wrkLastno);
         }
@@ -58,7 +64,7 @@
         if (workNo == 0) {
             throw new CoolException("鐢熸垚宸ヤ綔鍙峰け璐ワ紝璇疯仈绯荤鐞嗗憳");
         } else {
-            if (wrkMastService.selectByWorkNo(workNo)!=null) {
+            if (wrkMastService.selectByWorkNo(workNo) != null) {
                 throw new CoolException("鐢熸垚宸ヤ綔鍙�" + workNo + "鍦ㄥ伐浣滄。涓凡瀛樺湪");
             }
         }
@@ -72,7 +78,7 @@
             return msg.substring(0, 16);
         } else {
             StringBuilder msgBuilder = new StringBuilder(msg);
-            for(int i = 0; i < count - msg.length(); ++i) {
+            for (int i = 0; i < count - msg.length(); ++i) {
                 msgBuilder.insert(0, "0");
             }
             return msgBuilder.toString();
@@ -88,12 +94,14 @@
 
         if (wrkMast.getIoType() == WrkIoType.IN.id) {
             wrkMast.setWrkSts(WrkStsType.COMPLETE_INBOUND.sts);
-        }else if (wrkMast.getIoType() == WrkIoType.OUT.id) {
+        } 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);
         }
 
         wrkMast.setModiTime(new Date());
@@ -108,22 +116,32 @@
             throw new CoolException("浠诲姟涓嶅瓨鍦�");
         }
 
-        wrkMastLogService.save(wrkNo);
-        wrkMastService.deleteById(wrkNo);
+        wrkMast.setMk("taskCancel");
+        wrkMast.setModiTime(new Date());
+        wrkMastService.updateById(wrkMast);
         return true;
     }
 
     //绉诲簱浠诲姟
     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")) {
-            throw new CoolException("婧愬簱浣嶄笉澶勪簬鍦ㄥ簱鐘舵��");
+//        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("鐩爣搴撲綅涓嶅浜庣┖搴撶姸鎬�");
+//        }
 
         // 鑾峰彇宸ヤ綔鍙�
         int workNo = getWorkNo(WrkIoType.LOC_MOVE.id);
@@ -145,11 +163,19 @@
             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;
     }
 
     //鍏ュ簱浠诲姟
-    public boolean createInTask(CreateInTaskParam param) {
+    public synchronized boolean createInTask(CreateInTaskParam param) {
         Date now = new Date();
         LocMast locMast = locMastService.queryByLoc(param.getLocNo());
         if (null == locMast) {
@@ -158,6 +184,10 @@
 
         if (!locMast.getLocSts().equals("O")) {
             throw new CoolException("鐩爣搴撲綅涓嶅浜庣┖搴撶姸鎬�");
+        }
+        WrkMast wms_wrk_no = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wms_wrk_no", param.getTaskNo()));
+        if (wms_wrk_no!=null){
+            throw new CoolException("宸ヤ綔褰撳凡缁忓瓨鍦�");
         }
 
         // 鑾峰彇宸ヤ綔鍙�
@@ -173,19 +203,25 @@
         wrkMast.setSourceStaNo(param.getSourceStaNo());//婧愮珯
         wrkMast.setStaNo(param.getStaNo());//鐩爣绔�
         wrkMast.setWmsWrkNo(param.getTaskNo());
+        wrkMast.setBarcode(param.getBarcode());
         wrkMast.setAppeTime(now);
         wrkMast.setModiTime(now);
+        wrkMast.setWmsWrkNo2(param.getTaskNo2());
         boolean res = wrkMastService.insert(wrkMast);
         if (!res) {
             News.error("鍏ュ簱浠诲姟 --- 淇濆瓨宸ヤ綔妗eけ璐ワ紒");
             throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
         }
 
+        locMast.setLocSts("S");
+        locMast.setModiTime(new Date());
+        locMastService.updateById(locMast);
+
         return true;
     }
 
     //鍑哄簱浠诲姟
-    public boolean createOutTask(CreateOutTaskParam param) {
+    public synchronized boolean createOutTask(CreateOutTaskParam param) {
         Date now = new Date();
         LocMast locMast = locMastService.queryByLoc(param.getSourceLocNo());
         if (null == locMast) {
@@ -195,7 +231,10 @@
         if (!locMast.getLocSts().equals("F")) {
             throw new CoolException("婧愬簱浣嶄笉澶勪簬鍦ㄥ簱鐘舵��");
         }
-
+        WrkMast wms_wrk_no = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wms_wrk_no", param.getTaskNo()));
+        if (wms_wrk_no!=null){
+            throw new CoolException("宸ヤ綔褰撳凡缁忓瓨鍦�");
+        }
         // 鑾峰彇宸ヤ綔鍙�
         int workNo = getWorkNo(WrkIoType.OUT.id);
         // 淇濆瓨宸ヤ綔妗�
@@ -216,6 +255,10 @@
             throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
         }
 
+        locMast.setLocSts("R");
+        locMast.setModiTime(new Date());
+        locMastService.updateById(locMast);
+
         return true;
     }
 

--
Gitblit v1.9.1