From a40971b7b06d8a92107407829ce611aedca331f2 Mon Sep 17 00:00:00 2001
From: zyh <zyh@123>
Date: 星期一, 30 三月 2026 09:57:01 +0800
Subject: [PATCH] 修复入库任务还未生成时下发出库任务会同步进行的问题

---
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java |   72 ++++++++++++++++++++++++++++--------
 1 files changed, 56 insertions(+), 16 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index b48d5d9..93ae542 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -10,6 +10,7 @@
 import com.zy.asrs.entity.param.*;
 import com.zy.asrs.enums.CommonEnum;
 import com.zy.asrs.enums.LocStsType;
+import com.zy.asrs.mapper.CanFinMapper;
 import com.zy.asrs.mapper.LocMastMapper;
 import com.zy.asrs.mapper.ManLocDetlMapper;
 import com.zy.asrs.service.*;
@@ -22,6 +23,8 @@
 import com.zy.common.model.enums.WorkNoType;
 import com.zy.common.service.CommonService;
 import com.zy.common.utils.HttpHandler;
+import com.zy.system.entity.Config;
+import com.zy.system.service.impl.ConfigServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,6 +34,8 @@
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -80,6 +85,8 @@
     private ManLocDetlService manLocDetlService;
     @Autowired
     private ManLocDetlMapper manLocDetlMapper;
+    @Autowired
+    private CanFinMapper canFinMapper;
 
     @Autowired
     private AdjDetlService adjDetlService;
@@ -114,6 +121,8 @@
     private BasStationService basStationService;
     @Autowired
     private BasContainerService basContainerService;
+    @Autowired
+    private ConfigServiceImpl configService;
 
     @Override
     @Transactional
@@ -559,7 +568,8 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void comb(CombParam param, Long userId) {
+    public void
+    comb(CombParam param, Long userId) {
         if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) {
             throw new CoolException(BaseRes.PARAM);
         }
@@ -606,9 +616,9 @@
                 if (Cools.isEmpty(mat)) {
                     throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
                 }
-                if (mat.getUpQty().compareTo(detlDto.getAnfme()) < 0) {
-                    throw new CoolException("鐗╂枡锛�" + detlDto.getMatnr() + "鍗曟鏈�澶х粍鎵樹笂闄愪负锛�" + mat.getUpQty());
-                }
+//                if (mat.getUpQty().compareTo(detlDto.getAnfme()) < 0) {
+//                    throw new CoolException("鐗╂枡锛�" + detlDto.getMatnr() + "鍗曟鏈�澶х粍鎵樹笂闄愪负锛�" + mat.getUpQty());
+//                }
                 WaitPakin waitPakin = new WaitPakin();
                 BeanUtils.copyProperties(mat, waitPakin);
                 waitPakin.setBatch(detlDto.getBatch());
@@ -704,6 +714,9 @@
 //                if (suplus < 0) {
 //                    throw new CoolException("鐗╂枡锛�" + detlDto.getMatnr() + ", 瓒呭嚭褰撳墠鎵樼洏瑁呰浇涓婇檺锛侊紒");
 //                }
+                OrderDetlPakin detls = orderDetlPakinService.selectOne(new EntityWrapper<OrderDetlPakin>()
+                        .eq("order_no", param.getOrderNo())
+                        .eq("matnr", detlDto.getMatnr()));
 
                 WaitPakin waitPakin = new WaitPakin();
                 BeanUtils.copyProperties(mat, waitPakin);
@@ -719,17 +732,27 @@
                 waitPakin.setAppeTime(now);
                 waitPakin.setModiUser(userId);
                 waitPakin.setModiTime(now);
+                if (!detlDto.getStandby1().isEmpty() && detlDto.getStandby1() != null && !detlDto.getStandby1().equals("")){
+                    waitPakin.setStandby1(detls.getStandby1());//閰嶇洏鍙�
+                }
+
                 if (!waitPakinService.insert(waitPakin)) {
                     throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
                 }
             }
+
+//            Date date1 = now;
+//            CanFin canFin = new CanFin();
+//            canFin.setApplyTime(date1);
+//            canFin.setAgvType("agv-in");
+//            canFinMapper.insert(canFin);
 
             Set<String> stringSet = param.getCombMats().stream().map(CombParam.CombMat::getOrderNo).collect(Collectors.toSet());
             stringSet.forEach(orderNo -> {
                 Order order = OrderInAndOutUtil.selectByNo(Boolean.TRUE, orderNo);
                 OrderInAndOutUtil.updateOrder(Boolean.TRUE, order.getId(), 2L, userId);
             });
-            if(!Cools.isEmpty(param.getLocNo())){
+            if(!Cools.isEmpty(param.getRsta()) && param.getRsta().contains("-")){
                 //鐢熸垚AGV鎼繍浠诲姟
                 //鐢熸垚AGV鎼繍鍑哄簱浠诲姟
                 // 淇濆瓨宸ヤ綔妗�
@@ -739,12 +762,12 @@
                 if (param.getBarcode().charAt(0) == '3'){
                     s = "307";
                 }else if (param.getBarcode().charAt(0) == '4'){
-                    s = "401";
-                }else if (param.getBarcode().charAt(0) == '5'){
                     s = "402";
+                }else if (param.getBarcode().charAt(0) == '5'){
+                    s = "401";
                 }
-                String TaskNo = param.getBarcode()+"-"+date.getTime();
-                task.setWrkNo(Integer.getInteger(param.getBarcode()))
+                String TaskNo = param.getBarcode()+"aa"+date.getTime();
+                task.setWrkNo((int) date.getTime())
                         .setTaskNo(TaskNo)
                         .setIoTime(date)
                         .setWrkSts(301L) // 宸ヤ綔鐘舵�侊細301.浠诲姟涓嬪彂
@@ -755,7 +778,7 @@
                         .setPicking("N") // 鎷f枡
                         .setExitMk("N")// 閫�鍑�
                         .setStaNo(s)
-                        .setSourceStaNo(param.getLocNo())//绌烘枡鏋剁紦瀛樺尯E1
+                        .setSourceStaNo(param.getRsta())//agv鍙栬揣浣�
                         .setEmptyMk("N")// 绌烘澘
                         .setBarcode(param.getBarcode())// 鎵樼洏鐮�
                         .setLinkMis("N")
@@ -1321,8 +1344,14 @@
 
     @Override
     @Transactional
-    public R callEmptyBinOutBound(String staNo, String locType, Long userId) {
-        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", 'D').eq("loc_type2", locType));
+    public R callEmptyBinOutBound(String staNo, String locType, String palletFormat, String agvTaskNo, Long userId) {
+        EntityWrapper<LocMast> wrapper = new EntityWrapper<>();
+        wrapper.eq("loc_sts", "D").eq("loc_type2", Integer.parseInt(locType));
+        if (palletFormat != null && !palletFormat.isEmpty()) {
+            wrapper.like("barcode", palletFormat);
+        }
+        wrapper.orderBy("row1", false);
+        LocMast locMast = locMastService.selectOne(wrapper);
         if(locMast == null) {
             return R.parse("璇ョ被鍨嬶細" + locType +"绌烘墭鐩樹笉瀛樺湪");
         }
@@ -1330,19 +1359,20 @@
         //婊戝潡搴�
         if(locMast.getLocType3()==1){
             if(locMast.getLocType2()==1){
-
-
+                sta = "402";
+            }else if(locMast.getLocType2()==2){
+                sta = "401";
             }
         }else if(locMast.getLocType3()==2){
             sta="307";
         }
 
         // 鑾峰彇璺緞
-        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+        Wrapper<StaDesc> wrapper1 = new EntityWrapper<StaDesc>()
                 .eq("type_no", 110)
                 .eq("stn_no", sta)
                 .eq("crn_no", locMast.getCrnNo());
-        StaDesc staDesc = staDescService.selectOne(wrapper);
+        StaDesc staDesc = staDescService.selectOne(wrapper1);
         if (staDesc == null) {
             R.parse("鍑哄簱璺緞涓嶅瓨鍦�,绔欑偣锛�" + sta);
         }
@@ -1350,6 +1380,12 @@
         // 鐢熸垚宸ヤ綔妗�
         int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
         WrkMast wrkMast = new WrkMast();
+        if (agvTaskNo!=null){
+            wrkMast.setUserNo(agvTaskNo);
+        }else {
+            Date date = new Date();
+            wrkMast.setUserNo(staNo + "aa" + date.getTime());
+        }
         wrkMast.setWrkNo(workNo);
         wrkMast.setIoTime(now);
         wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
@@ -1370,6 +1406,10 @@
         wrkMast.setModiTime(now);
         wrkMast.setMemo(staNo);
         wrkMastService.insert(wrkMast);
+        CanFin canFin = new CanFin();
+        canFin.setAgvType("agv-out");
+        canFin.setApplyTime(now);
+        canFinMapper.insert(canFin);
 
         // 鏇存柊搴撲綅鐘舵��
         if (locMast.getLocSts().equals("D")) {

--
Gitblit v1.9.1