From 958714543e06c125891a6245f489a6ede5b39cd0 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期一, 23 三月 2026 14:15:16 +0800
Subject: [PATCH] 1.修复空板入库时找库存明细为空 2.新增mes查询wms具体机台工位冻结情况,

---
 src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java |   57 +++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 43 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java b/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
index 37283b4..076c454 100644
--- a/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
@@ -123,9 +123,9 @@
 //       if (!wrkMastService.updateById(mast)) {
 //           throw new CoolException("浠诲姟鐘舵�佹洿鏂板け璐ワ紒锛�");
 //       }
-        workService.backLocOperation(mast.getWrkNo() + "", mast.getAppeUser());
 
-        return R.ok("鎺ユ敹鎴愬姛锛屾墽琛屽洖搴撲腑...");
+        return workService.backLocOperation(mast.getWrkNo() + "", mast.getAppeUser());
+
     }
 
     /**
@@ -153,7 +153,7 @@
         }else if (!Objects.isNull(params.getType()) && params.getType().equals("move")) {
             url = createLocMoveTask;
         }
-        String response;
+        String response = null;
         R r = R.ok();
         try {
             log.info("涓嬪彂鎼繍浠诲姟缁檞cs="+JSON.toJSONString(params));
@@ -209,7 +209,7 @@
                         String s = Utils.convertLocFormat(params.getLocNo());
                         LocAroundBind bind = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>()
                                 .eq("b_loc_no", s));
-                        if (!Objects.isNull(bind)&&Cools.isEmpty(wrkMast.getStaNo())) {
+                        if (!Objects.isNull(bind)) {
                             bind.setFreeze(1);
                             locAroundBindService.updateById(bind);
                             //鍐荤粨鐩搁偦搴撲綅
@@ -233,15 +233,21 @@
                 }
                 //TODO 涓婃姤鏄惁鎴愬姛
             }else {
-                r =R.error();
+                String msg = jsonObject.getString("msg");
+                if (Cools.isEmpty(msg)) {
+                    msg = jsonObject.getString("message");
+                }
+                r = R.error(Cools.isEmpty(msg) ? "涓嬪彂浠诲姟澶辫触" : msg);
             }
         } catch (IOException e) {
-            throw new RuntimeException(e);
+            log.error("涓嬪彂浠诲姟缁檞cs寮傚父, request={}", JSON.toJSONString(params), e);
+            return R.error("璋冪敤WCS鎺ュ彛澶辫触锛�" + e.getMessage());
+        } catch (Exception e) {
+            log.error("瑙f瀽WCS涓嬪彂缁撴灉寮傚父, request={}, response={}", JSON.toJSONString(params), response, e);
+            return R.error("WCS杩斿洖缁撴灉寮傚父锛�" + e.getMessage());
         }
         return r;
     }
-
-
     /**
      * 涓婃姤閿佸畾/閲婃斁搴撲綅淇℃伅
      *
@@ -258,7 +264,7 @@
                 url = MesConstant.RELEASE_LOCS_URL;
             }
         }
-        String response;
+        String response = null;
         try {
             response = new HttpHandler.Builder()
                     .setUri(MesConstant.URL)
@@ -316,10 +322,25 @@
                         LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>()
                                 .eq("zpallet", mast.getBarcode())
                                 .eq("loc_no", mast.getSourceLocNo()));
-                        if (Objects.isNull(locDetl)) {
+                        WrkDetl mainWrkDetl = null;
+                        if (Objects.isNull(locDetl) && !Cools.isEmpty(mast.getWrkCode())) {
+                            mainWrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>()
+                                    .eq("wrk_no", mast.getWrkCode())
+                                    .eq("zpallet", mast.getBarcode()));
+                            if (Objects.isNull(mainWrkDetl)) {
+                                mainWrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>()
+                                        .eq("wrk_no", mast.getWrkCode()));
+                            }
+                            if (!Objects.isNull(mainWrkDetl)) {
+                                log.info("locDetl涓虹┖锛屽洖閫�鏌ヨ涓讳换鍔℃槑缁嗭紝wrkNo={}, mainWrkNo={}, barcode={}",
+                                        mast.getWrkNo(), mast.getWrkCode(), mast.getBarcode());
+                            }
+                        }
+                        if (Objects.isNull(locDetl) && Objects.isNull(mainWrkDetl)) {
                             throw new CoolException("鏄庣粏鏁版嵁涓嶅瓨鍦紒锛�");
                         }
-                        Mat matnr = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", locDetl.getMatnr()));
+                        String matnrNo = Objects.isNull(locDetl) ? mainWrkDetl.getMatnr() : locDetl.getMatnr();
+                        Mat matnr = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", matnrNo));
                         if (Objects.isNull(matnr)) {
                             throw new CoolException("鐗╂枡鍩虹淇℃伅涓嶅瓨鍦紒锛�");
                         }
@@ -327,9 +348,15 @@
                             Double val = Math.round((weight - matnr.getSafeQty()) * 10000) / 10000.0;
                             if (val.compareTo(0.0) > 0) {
                                 WrkDetl wrkDetl = new WrkDetl();
-                                BeanUtils.copyProperties(locDetl, wrkDetl);
+                                if (Objects.isNull(locDetl)) {
+                                    BeanUtils.copyProperties(mainWrkDetl, wrkDetl);
+                                    wrkDetl.setStockQty(Cools.isEmpty(mainWrkDetl.getStockQty()) ? mainWrkDetl.getAnfme() : mainWrkDetl.getStockQty());
+                                    wrkDetl.setZpallet(mast.getBarcode());
+                                } else {
+                                    BeanUtils.copyProperties(locDetl, wrkDetl);
+                                    wrkDetl.setStockQty(locDetl.getAnfme());
+                                }
                                 wrkDetl.setWrkNo(mast.getWrkNo());
-                                wrkDetl.setStockQty(locDetl.getAnfme());
                                 wrkDetl.setIoTime(new Date());
                                 wrkDetl.setWeight(weight);
                                 wrkDetl.setIoTime(mast.getIoTime());
@@ -395,7 +422,7 @@
                         }
                         Double realQty = Math.round((wrkDetl.getStockQty() - wrkDetl.getAnfme()) * 10000) / 10000.0;
                         if (!Cools.isEmpty(weight)) {
-                            Double val = Math.round((weight - 2.35) * 10000) / 10000.0;
+                            Double val = Math.round((weight - 3) * 10000) / 10000.0;
                             //绉伴噸鍚庯紝璁$畻鍑虹湡瀹為暱搴�
                             realQty = val * matnr.getVolume();
                             if (realQty<matnr.getSafeQty()){
@@ -520,3 +547,5 @@
         return locAround;
     }
 }
+
+

--
Gitblit v1.9.1