From a49cdaa669f18d92e8fef5d84da536c0465670db Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 17 十二月 2025 21:21:07 +0800
Subject: [PATCH] 1.新增组托入库生成AGV搬运任务,执行AGV搬运任务时判断堆垛机接驳站点是否有空料架,有的话需要进行搬离(没有出库任务的情况下) 2.完善配盘出库单agv目标地点,可能是区域也可能是站点 Q为区域;Z为站点 3.完善立库入库找规则方法

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   58 +++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 45 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index 2c21f63..1cf5a2f 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -105,7 +105,7 @@
         // 婧愮珯鐐圭姸鎬佹娴�
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo(), true);
         // 妫�绱㈠簱浣�
-        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
+        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo,"");
 //        List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList());
 //        List<String> batchs = param.getList().stream().map(FullStoreParam.MatCodeStore::getBatch).distinct().collect(Collectors.toList());
         FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(param.getList().get(0));
@@ -397,7 +397,7 @@
 
     @Override
     @Transactional
-    public void stockOut(BasDevp staNo, TaskDto taskDto, Long userId) {
+    public void stockOut(BasDevp staNo, TaskDto taskDto, Long userId,Integer ioPri) {
         Date now = new Date();
         List<LocDto> locDtos = taskDto.getLocDtos();
         for (LocDto locDto : locDtos) {
@@ -411,19 +411,32 @@
         String orderNo = taskDto.getLocDtos().get(0).getOrderNo();
         OrderPakout orderPakout = orderPakOutService.selectByNo(orderNo);
         int ioType = orderPakout.getDocType() == 8 ? 107 : (taskDto.isAll() ? 101 : 103);
-        StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
+//        StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
+
+        //鍑哄簱浠诲姟鍫嗗灈鏈哄嚭搴撶珯鐐规寚瀹�
+        String SourceStaNo = "";
+        if(locMast.getLocType3()==2&&orderPakout.getDocType()==11){
+            SourceStaNo = "303";
+        }else if (locMast.getLocType3()==2&&!Cools.isEmpty(orderPakout.getCstmrName())){
+            SourceStaNo = "307";
+        }else if (locMast.getLocType3()==1&&locMast.getLocType2()==1){
+            SourceStaNo = "402";
+        }else if (locMast.getLocType3()==1&&locMast.getLocType2()==2){
+            SourceStaNo = "401";
+        }
+
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
         wrkMast.setWrkNo(workNo);
         wrkMast.setIoTime(now);
         wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
         wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
-        wrkMast.setIoPri(13D); // 浼樺厛绾э細13
+        wrkMast.setIoPri(ioPri+0.0); // 浼樺厛绾э細13
         wrkMast.setCrnNo(locMast.getCrnNo());
-        wrkMast.setSourceStaNo(staDesc.getCrnStn() + ""); // 婧愮珯
-        wrkMast.setStaNo(staDesc.getStnNo() + ""); // 鐩爣绔�
+        wrkMast.setSourceStaNo(SourceStaNo); // 婧愮珯
+        wrkMast.setStaNo(SourceStaNo); // 鐩爣绔�
         wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣�
         wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
         wrkMast.setPicking("N"); // 鎷f枡
@@ -435,6 +448,11 @@
         wrkMast.setAppeTime(now);
         wrkMast.setModiUser(userId);
         wrkMast.setModiTime(now);
+        if(locMast.getLocType3()==2&&orderPakout.getDocType()==11){
+        }else {
+            wrkMast.setMemo(orderPakout.getCstmrName());//agv鐩爣绔欑偣
+        }
+
         if (!wrkMastService.insert(wrkMast)) {
             throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + taskDto.getLocNo());
         }
@@ -502,7 +520,7 @@
         // 婧愮珯鐐圭姸鎬佹娴�
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
         // 妫�绱㈠簱浣�
-        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
+        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo,"");
         FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
 
         StartupDto dto = commonService.getLocNo(10, devpNo, findLocNoAttributeVo, locTypeDto);
@@ -629,7 +647,7 @@
 
     @Override
     @Transactional
-    public WrkMast emptyPlateOut(EmptyPlateOutParam param) {
+    public WrkMast emptyPlateOut(EmptyPlateOutParam param,Integer ioPri,String agvSta) {
         WrkMast wrkMast = new WrkMast();
         if (Cools.isEmpty(param.getOutSite())) {
             throw new CoolException("绔欑偣涓嶅瓨鍦�");
@@ -642,10 +660,21 @@
             if (Cools.isEmpty(locMast)) {
                 throw new CoolException(locNo + "搴撲綅涓嶅瓨鍦�");
             }
+
+            //鍑哄簱浠诲姟鍫嗗灈鏈哄嚭搴撶珯鐐规寚瀹�
+            String SourceStaNo = "";
+            if(locMast.getLocType3()==2){
+                SourceStaNo = "303";
+            }else if (locMast.getLocType3()==1&&locMast.getLocType2()==1){
+                SourceStaNo = "402";
+            }else if (locMast.getLocType3()==1&&locMast.getLocType2()==2){
+                SourceStaNo = "401";
+            }
+
             // 鑾峰彇婧愮珯
             Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                     .eq("type_no", 110)
-                    .eq("stn_no", param.getOutSite())
+                    .eq("stn_no", SourceStaNo)
                     .eq("crn_no", locMast.getCrnNo());
             StaDesc staDesc = staDescService.selectOne(wrapper);
             Integer sourceStaNo = staDesc.getCrnStn();
@@ -659,9 +688,9 @@
             wrkMast.setIoTime(now);
             wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
             wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱
-            wrkMast.setIoPri(10D);
+            wrkMast.setIoPri(ioPri+0.0);
             wrkMast.setSourceStaNo(sourceStaNo + ""); // 婧愮珯
-            wrkMast.setStaNo(param.getOutSite() + ""); // 鐩爣绔�
+            wrkMast.setStaNo(staDesc.getStnNo() + ""); // 鐩爣绔�
             wrkMast.setCrnNo(locMast.getCrnNo());
             wrkMast.setSourceLocNo(locNo); // 婧愬簱浣�
             wrkMast.setFullPlt("N"); // 婊℃澘锛歒
@@ -673,7 +702,7 @@
             wrkMast.setAppeTime(now);
             wrkMast.setModiUser(1L);
             wrkMast.setModiTime(now);
-            wrkMast.setMemo("鐢熸垚鑷姩绌烘澘鍑哄簱");
+            wrkMast.setMemo(agvSta);//agv鐩爣绔欑偣
             boolean res = wrkMastService.insert(wrkMast);
             if (!res) {
                 throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
@@ -1079,7 +1108,7 @@
     @Transactional
     public void cancelWrkMast(String workNo, Long userId) {
         Date now = new Date();
-        WrkMast wrkMast = wrkMastService.selectById(workNo);
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", workNo));
         if (Cools.isEmpty(wrkMast)) {
             throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
         }
@@ -1210,6 +1239,9 @@
         boolean wrkMastRes = wrkMastService.deleteById(wrkMast);
 
         if (wrkMast.getIoType() != 10 && wrkMast.getIoType() != 110) {
+            //鍙栨秷鏍囪锛岃鍗曞畬鎴愬悗鍙嶅啓璁㈠崟鏄庣粏鏃惰繃婊ゆ帀danger = 1鐨勬暟鎹�
+            wrkDetlService.updateForSet("danger = 1" ,new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+
             // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
             if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
 //                throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());

--
Gitblit v1.9.1