From b77d09f258ef7d5458f61ff1a90d1a686cb2f181 Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期三, 14 一月 2026 14:24:47 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/service/CommonService.java |   35 +++++++++++++++++++++++++++++++----
 1 files changed, 31 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 8959e59..6026fd8 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -24,6 +24,7 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Random;
 
 @Slf4j
 @Service
@@ -43,6 +44,8 @@
     private NavigateUtils navigateUtils;
     @Autowired
     private RedisUtil redisUtil;
+    @Autowired
+    private BasOutStationAreaService basOutStationAreaService;
 
     /**
      * 鐢熸垚宸ヤ綔鍙�
@@ -302,7 +305,23 @@
         }
         Integer crnNo = findCrnResult.getCrnNo();
 
-        Integer sourceStationId = this.findOutStationId(findCrnResult, param.getStaNo());
+        Integer staNo = param.getStaNo();
+        String outArea = param.getOutArea();
+        if(Cools.isEmpty(staNo) && Cools.isEmpty(outArea)) {
+            throw new CoolException("璇蜂紶鍏ュ嚭搴撶珯鐐规垨鍑哄簱鍖哄煙");
+        }
+
+        if(Cools.isEmpty(staNo)) {
+            List<BasOutStationArea> areaList = basOutStationAreaService.selectList(new EntityWrapper<BasOutStationArea>().eq("area_code", outArea));
+            if (areaList.isEmpty()) {
+                throw new CoolException("鍑哄簱鍖哄煙涓嶅瓨鍦�");
+            }
+            int nextInt = new Random().nextInt(areaList.size());
+            BasOutStationArea basOutStationArea = areaList.get(nextInt);
+            staNo = basOutStationArea.getStationId();
+        }
+
+        Integer sourceStationId = this.findOutStationId(findCrnResult, staNo);
         if (sourceStationId == null) {
             throw new CoolException("鏈壘鍒拌緭閫佺洰鏍囩珯鐐瑰彲璧拌璺緞");
         }
@@ -318,11 +337,19 @@
         wrkMast.setIoPri(ioPri);
         wrkMast.setSourceLocNo(locMast.getLocNo()); // 婧愬簱浣�
         wrkMast.setSourceStaNo(sourceStationId);//婧愮珯
-        wrkMast.setStaNo(param.getStaNo());//鐩爣绔�
+        wrkMast.setStaNo(staNo);//鐩爣绔�
         wrkMast.setWmsWrkNo(param.getTaskNo());
         wrkMast.setBarcode(locMast.getBarcode());
         wrkMast.setAppeTime(now);
         wrkMast.setModiTime(now);
+
+        if (!Cools.isEmpty(param.getBatch())) {
+            wrkMast.setBatch(param.getBatch());
+        }
+
+        if (!Cools.isEmpty(param.getBatchSeq())) {
+            wrkMast.setBatchSeq(param.getBatchSeq());
+        }
 
         if (findCrnResult.getCrnType().equals(SlaveType.Crn)) {
             BasCrnp basCrnp = basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("crn_no", crnNo));
@@ -427,7 +454,7 @@
                     break;
                 }
             } catch (Exception e) {
-                e.printStackTrace();
+//                e.printStackTrace();
             }
         }
         return targetStationId;
@@ -459,7 +486,7 @@
                     break;
                 }
             } catch (Exception e) {
-                e.printStackTrace();
+//                e.printStackTrace();
             }
         }
         return finalSourceStationId;

--
Gitblit v1.9.1