From 58137d4f560dc16900ea99e0a7a07080b7751e5f Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期一, 20 十一月 2023 20:17:47 +0800
Subject: [PATCH] Merge branch 'tzskasrs' of http://47.97.1.152:5880/r/zy-asrs into tzskasrs

---
 src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java |   30 ++++++++++++++++++------------
 1 files changed, 18 insertions(+), 12 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 76a8c0f..b22bdd1 100644
--- a/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -8,8 +8,10 @@
 import com.zy.asrs.service.*;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
+import lombok.Synchronized;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -20,6 +22,9 @@
 @Slf4j
 @Service
 public class AgvWrkMastHandler extends AbstractHandler<String> {
+
+    @Value("${agvBasDev.maxWorkNum}")
+    private int maxWrokNum;
 
     @Autowired
     private AgvWrkMastService agvWrkMastService;
@@ -53,10 +58,10 @@
         agvWrkMastService.updateById(agvWrkMast);
         if(agvWrkMast.getIoType() == 10){
             // 绌烘澘鍏ュ簱 璁剧疆搴撲綅鐘舵�佷负D.绌烘《/绌烘爤鏉�
-            agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D");
+            agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"D",agvWrkMast.getBarcode());
         }else{
             //淇敼鐩爣搴撲綅鐘舵�佷负F.鍦ㄥ簱
-            agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F");
+            agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode());
         }
         //鐢熸垚AGV宸ヤ綔鍘嗗彶妗�
         agvWrkMastLogService.save(agvWrkMast);
@@ -78,7 +83,7 @@
             //鏇存柊搴撳瓨鏄庣粏
             agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo());
             //淇敼婧愬簱浣嶇姸鎬佷负O
-            agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O");
+            agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","");
         }
 
         //鍒犻櫎AGV宸ヤ綔妗�
@@ -109,7 +114,7 @@
         agvWrkMast.setWrkSts(207L);
         agvWrkMastService.updateById(agvWrkMast);
         //淇敼婧愬簱浣嶇姸鎬佷负O
-        agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O");
+        agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","");
         if(agvWrkMast.getIoType() == 101){
             //鏇存柊鐩爣搴撲綅鏄庣粏 101.鍑哄簱 鍒犻櫎婧愬簱浣嶅簱瀛樻槑缁�
             agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo()));
@@ -158,7 +163,6 @@
                         continue;
                     }
                 }
-
                 //202.RCS鍙栬揣涓�
                 agvWrkMast.setWrkSts(202L);
                 agvWrkMastService.updateById(agvWrkMast);
@@ -167,10 +171,8 @@
                     agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(),"Y");
                 }
             }
-
             return SUCCESS;
         }
-
         return FAIL;
     }
 
@@ -191,15 +193,19 @@
         return FAIL;
     }
 
+    @Synchronized
+    @Transactional
     public ReturnT<String> dealWatiWrk(List<AgvWrkMast> agvWrkMastList) throws IOException {
 
         agvWrkMastList.forEach(agvWrkMast -> {
-            //瀵绘壘绌虹珯鐐逛綅缃�
-            AgvBasDevp agvBasDevp = agvBasDevpService.selectEmptyDevpByStation(agvWrkMast.getLocNo());
-            if(!Cools.isEmpty(agvBasDevp)){
-                agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvBasDevp.getDevNo(),"S",null);
-                agvWrkMast.setLocNo(agvBasDevp.getDevNo());
+            //鏌ヨ璇ョ珯鐐规墍鏈夋殏瀛樹綅鍦ㄥ伐浣滄。涓嚭鐜扮殑娆℃暟
+            List<Map<String, Object>> devNoMaps = agvBasDevpService.selectDevNoAndNumBystationCode(agvWrkMast.getLocNo());
+            //鍙栫涓�涓殏瀛樹綅锛屽苟鏌ヨ鍏舵鏁颁笌閰嶇疆鐨勬鏁板仛姣旇緝
+            Map<String, Object> devNoMap = devNoMaps.get(0);
+            if((int)devNoMap.get("num") < maxWrokNum){
+                agvWrkMast.setLocNo(devNoMap.get("dev_no").toString());
                 agvWrkMastService.updateById(agvWrkMast);
+                log.info("after锛�" + devNoMap.toString()  +  ", wrkNo:" + agvWrkMast.getWrkNo() + ", locNo: " + agvWrkMast.getLocNo());
             }
         });
 

--
Gitblit v1.9.1