From f9a2a3435ff836a855eb54f7d1268d8bbc391a53 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期二, 21 四月 2026 22:15:47 +0800
Subject: [PATCH] 1.空托盘悬挑库位没有空库位时,找第八层库位

---
 src/main/java/com/zy/common/web/WcsController.java |   30 +++++++++++++++++++++---------
 1 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 8efbba8..eadceac 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -23,6 +23,7 @@
 
 import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -57,6 +58,8 @@
     private WorkService workService;
     @Autowired
     private StaDescService staDescService;
+    @Autowired
+    private InboundCameraCaptureService inboundCameraCaptureService;
 
     @PostMapping("/pakin/loc/v1")
     @ResponseBody
@@ -99,7 +102,7 @@
 //        }
             waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
             if (Cools.isEmpty(waitPakins)) {
-                return R.error("璇峰厛娣诲姞鍏ュ簱閫氱煡妗�");
+                return R.error("璇峰厛鏀惰揣鍚庡啀鍏ュ簱");
 //            WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode());
 //            if (wrkMast != null && wrkMast.getIoType() == 103) {
 //                return R.parse(CodeRes.PICK_600);
@@ -136,10 +139,16 @@
 
             // 婧愮珯鐐圭姸鎬佹娴�
             BasDevp sourceStaNoEntity = basDevpService.checkSiteStatus(param.getSourceStaNo(), true);
-            sourceStaNoEntity.setLocType1(param.getLocType1());
+            sourceStaNoEntity.setLocType1((short) (param.getLocType1()!=1?2:1));
             LocTypeDto locTypeDto = new LocTypeDto(sourceStaNoEntity);
             if (waitPakins.get(0).getMatnr().equals("emptyPallet")) {
+                // 绌烘墭鐩樼敱缁勬墭妗� matnr=emptyPallet 鏍囪瘑锛涘悗缁� CommonService 浼氭寜绐勫簱浣嶄紭鍏堛�乴ocType1=3 鍏滃簳瑙勫垯鎵惧簱浣嶃��
                 locTypeDto.setLocType2((short) 1);
+            }
+
+            // 鍏ュ弬閲嶉噺鏈�澶氫袱浣嶅皬鏁�
+            if (param.getWeight() != null) {
+                param.setWeight(param.getWeight().setScale(2, RoundingMode.HALF_UP));
             }
 
             StartupDto dto = startupFullPutStore(param.getSourceStaNo(), param.getBarcode(), locTypeDto, waitPakins,param.getWeight());
@@ -175,6 +184,7 @@
         }
         sourceStaNo.setLocType1(param.getLocType1());
         LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
+        // AGV 绌烘墭鐩樼洿鍏ュ簱鍥哄畾璧� staDescId=10锛屾渶缁堢敱 CommonService.getLocNo 缁熶竴鎵ц鎵句綅瑙勫垯銆�
         param.setIoType(10);
         StartupDto dto = null;
         switch (param.getIoType()) {
@@ -422,7 +432,7 @@
     public StartupDto startupFullPutStoreAgv(Integer devpNo, String barcode, LocTypeDto locTypeDto, Integer outArea, Integer staDescId) {
         // 婧愮珯鐐圭姸鎬佹娴�
 //        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
-        // 妫�绱㈠簱浣�
+        // 妫�绱㈠簱浣嶏紱staDescId=10 鏃舵寜绌烘墭鐩樺叆鍙h瘑鍒紝杩涘叆 CommonService 鐨勪紭鍏堟睜 + locType1=3 鍏滃簳鎵句綅瑙勫垯銆�
         FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
         findLocNoAttributeVo.setOutArea(outArea);
 //        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(waitPakins.get(0));
@@ -456,11 +466,8 @@
         try {
             // 婧愮珯鐐圭姸鎬佹娴�
             BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
-            // 妫�绱㈠簱浣�
-            List<String> matnrs = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
-            List<String> batchs = waitPakins.stream().map(WaitPakin::getBatch).distinct().collect(Collectors.toList());
-            FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(matnrs.get(0), batchs.get(0));
-//        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(waitPakins.get(0));
+            // 妫�绱㈠簱浣嶏紱濡傛灉缁勬墭妗f槸 emptyPallet锛屽嵆浣� staDescId=1锛屼篃浼氬湪 CommonService 鍐呭垏鎹负绌烘墭鐩樻壘浣嶈鍒欍��
+            FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(waitPakins.get(0));
             // IoT 鎸囧畾浜嗙洰鏍囧簱浣嶆椂浼樺厛灏濊瘯璇ュ簱浣嶏紱涓嶅彲鐢ㄦ椂鍐嶉��鍥炵幇鏈夎嚜鍔ㄦ壘浣嶈鍒欍��
             StartupDto dto = buildPreferredStartupDto(devpNo, extractPreferredInboundLoc(waitPakins));
             if (dto == null) {
@@ -488,6 +495,7 @@
             wrkMast.setScWeight(weight);
             // 鎶� referenceId/orderNo 閫忎紶鍒板伐浣滀富妗o紝渚夸簬浣滀笟瀹屾垚鍚庣户缁洖浼犵粰 IoT銆�
             wrkMast.setUserNo(waitPakins.get(0).getOrderNo());
+            wrkMast.setCubeNumber(waitPakins.get(0).getCubeNumber());
             wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
             // 鎿嶄綔浜哄憳鏁版嵁
             wrkMast.setAppeTime(now);
@@ -496,6 +504,7 @@
             if (!res) {
                 throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
             }
+            String pic = inboundCameraCaptureService.capture(devpNo, dto.getLocNo(), barcode);
             // 鐢熸垚宸ヤ綔妗f槑缁�
             waitPakins.forEach(waitPakin -> {
                 WrkDetl wrkDetl = new WrkDetl();
@@ -505,6 +514,9 @@
                 wrkDetl.setAppeTime(now);
                 wrkDetl.setModiTime(now);
                 wrkDetl.setWeight(wrkMast.getScWeight());
+                if (!Cools.isEmpty(pic)) {
+                    wrkDetl.setPic(pic);
+                }
                 if (!wrkDetlService.insert(wrkDetl)) {
                     throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
                 }
@@ -594,7 +606,7 @@
 public StartupDto emptyPlateIn(Integer devpNo, LocTypeDto locTypeDto, String barcode) {
         // 婧愮珯鐐圭姸鎬佹娴�
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
-        // 妫�绱㈠簱浣�
+        // 妫�绱㈠簱浣嶏紱鏃х┖鎵樼洏鍏ュ簱鍏ュ彛鍥哄畾浼� staDescId=10锛屼粛澶嶇敤 CommonService 鐨勭粺涓�绌烘墭鐩樻壘浣嶈鍒欍��
         FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
 
         StartupDto dto = commonService.getLocNo(10, devpNo, findLocNoAttributeVo, locTypeDto);

--
Gitblit v1.9.1