From d17a7346759fbb432cea1c83de63d29c6a3d330d Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期五, 24 五月 2024 10:14:06 +0800
Subject: [PATCH] # 自动回流取消任务更改源库位为D

---
 src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java |   89 +++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 87 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
index f08cbde..f64eed8 100644
--- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -17,6 +17,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.io.IOException;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -69,7 +70,16 @@
         agvWrkMastService.updateById(agvWrkMast);
         // 绌烘澘鍏ュ簱 璁剧疆搴撲綅鐘舵�佷负D.绌烘《/绌烘爤鏉�
         String locSts = agvWrkMast.getIoType() == 10 ? "D" : "F";
-        agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),locSts,agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+        if (agvWrkMast.getIoType() == 10 || agvWrkMast.getIoType() == 109) {
+            if (agvWrkMast.getIoType() == 109 && agvWrkMast.getLocNo().substring(0,2).equals("DB")) {
+                agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"R",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+            } else {
+                agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+            }
+        } else {
+            agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
+        }
+
         //鐢熸垚AGV宸ヤ綔鍘嗗彶妗�
         agvWrkMastLogService.save(agvWrkMast);
         //鐢熸垚AGV宸ヤ綔鏄庣粏鍘嗗彶妗�
@@ -86,12 +96,37 @@
             agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("supp_code",barcode));
         }
         //绫诲瀷涓哄簱浣嶇Щ杞椂
-        if(agvWrkMast.getIoType() == 11){
+        if(agvWrkMast.getIoType() == 11 || agvWrkMast.getIoType() == 12){
             //鏇存柊搴撳瓨鏄庣粏
             agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo());
             //淇敼婧愬簱浣嶇姸鎬佷负O
             agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
         }
+
+        //绫诲瀷涓哄簱浣嶇Щ杞椂
+        if(agvWrkMast.getIoType() == 108){
+            //鏇存柊搴撳瓨鏄庣粏
+            agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo());
+            //淇敼婧愬簱浣嶇姸鎬佷负O
+            agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0);
+        }
+
+        if(agvWrkMast.getIoType() == 109){
+            if (agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) {
+                agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",(short)0);
+            } else {
+                //淇敼婧愬簱浣嶇姸鎬佷负O
+                agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue(),"",(short)0);
+                // 鏂板缓宸ヤ綔妗�
+                Date now = new Date();
+                createWrkMast(109, 201L, agvWrkMast.getLocNo(), "", agvWrkMast.getBarcode(), now, 9527L, agvWrkMast.getWhsType(), 0);
+            }
+        }
+        if (agvWrkMast.getIoType() == 58) {
+            agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
+        }
+
+
 
         //鍒犻櫎AGV宸ヤ綔妗�
         agvWrkMastService.deleteById(wrkNo);
@@ -217,6 +252,19 @@
 
     }
 
+    @Transactional
+    @Synchronized
+    public ReturnT<String> startAllcationIn(AgvWrkMast agvWrkMast) throws IOException {
+        
+        //涓嬪彂浠诲姟
+        int startWrkCode = agvWrkMastService.startAllcationIn(agvWrkMast);
+        if(startWrkCode != 0){
+            throw new CoolException("浠诲姟涓嬪彂澶辫触");
+        }
+        return SUCCESS;
+
+    }
+
 //    @Transactional
 //    public ReturnT<String> startCarryWrk(AgvWrkMast agvWrkMast) throws IOException {
 //        //log.info(agvWrkMastList.toString());
@@ -304,4 +352,41 @@
             return num <= maxWrokNum;
         }).collect(Collectors.toList());
     }
+
+    /*
+  鐢熸垚宸ヤ綔妗�
+   */
+    private AgvWrkMast createWrkMast(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode, Date now, Long userId, int containerType, int floor){
+        AgvWrkMast wrkMast = new AgvWrkMast();
+        //宸ヤ綔鐘舵��
+        wrkMast.setWrkSts(wrkSts);
+        //鍏ュ嚭搴撶被鍨�
+        wrkMast.setIoType(ioType);
+        wrkMast.setIoTime(now);
+        //浼樺厛绾�
+        wrkMast.setIoPri(300.0);
+        //婧愮珯鐐�
+        wrkMast.setSourceLocNo(sourceLocNo);
+        //鐩爣绔欑偣
+        wrkMast.setLocNo(locNo);
+        //璐ф灦缂栫爜
+        wrkMast.setBarcode(barcode);
+        //璐ф灦绫诲瀷
+        wrkMast.setWhsType(containerType);
+        // 鐩爣妤煎眰
+        wrkMast.setCrnNo(floor);
+
+        wrkMast.setAppeUser(userId);
+        wrkMast.setAppeTime(now);
+        wrkMast.setModiUser(userId);
+        wrkMast.setModiTime(now);
+
+        if (!agvWrkMastService.insertByIncrease(wrkMast)) {
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+        }
+
+        wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", locNo).eq("source_loc_no",sourceLocNo).eq("barcode",barcode).orderBy("modi_time",false));
+
+        return wrkMast;
+    }
 }

--
Gitblit v1.9.1