From 4f45f8f3ec334a73ba24fc5d16017b5c044168aa Mon Sep 17 00:00:00 2001
From: Administrator <1051256694@qq.com>
Date: 星期五, 13 三月 2026 11:24:01 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/api/controller/params/WorkTaskParams.java      |    6 ++
 src/main/java/com/zy/asrs/controller/OpenController.java            |   35 +++++++++++
 src/main/java/com/zy/asrs/entity/param/ErpPakoutReportParam.java    |    2 
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java         |   60 ++++++++++----------
 src/main/java/com/zy/asrs/task/WorkMastScheduler.java               |    9 --
 src/main/java/com/zy/common/web/WcsController.java                  |    2 
 src/main/java/com/zy/asrs/task/handler/WorkErpReportHandler.java    |   18 ++++++
 src/main/resources/application.yml                                  |    2 
 src/main/java/com/zy/asrs/task/handler/WorkOutErpReportHandler.java |    4 +
 9 files changed, 97 insertions(+), 41 deletions(-)

diff --git a/src/main/java/com/zy/api/controller/params/WorkTaskParams.java b/src/main/java/com/zy/api/controller/params/WorkTaskParams.java
index 8c462b9..6318ca0 100644
--- a/src/main/java/com/zy/api/controller/params/WorkTaskParams.java
+++ b/src/main/java/com/zy/api/controller/params/WorkTaskParams.java
@@ -45,5 +45,11 @@
     @ApiModelProperty("鏄惁浣欐枡")
     private Integer isSuplus;
 
+    @ApiModelProperty("缁�")
+    private Integer batch;
+
+    @ApiModelProperty("搴忓彿")
+    private Integer batchSeq;
+
 
 }
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 60af588..19c03a1 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -7,6 +7,7 @@
 import com.core.annotations.AppAuth;
 import com.core.common.*;
 import com.core.exception.CoolException;
+import com.google.common.collect.Lists;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.param.*;
 import com.zy.asrs.service.LocDetlService;
@@ -16,6 +17,7 @@
 import com.zy.common.model.DetlDto;
 import com.zy.common.model.LocDetlDto;
 import com.zy.common.model.enums.WorkNoType;
+import com.zy.common.utils.Synchro;
 import com.zy.common.web.BaseController;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -423,6 +425,7 @@
      */
     @PostMapping("/comb/auth")
     public synchronized R comb(@RequestBody ArrayList<MesToCombParam> param){
+        List<MesToCombReturnParam> errorComb = Lists.newArrayList();
         for (MesToCombParam mesToCombParam : param) {
 //            if (mesToCombParam.getPalletId().length() != 8) {
 //                return R.error(mesToCombParam.getPalletId()+"-璇ユ墭鐩樼爜涓嶄负8浣�");
@@ -435,7 +438,10 @@
             int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", mesToCombParam.getPalletId()));
 //        int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",param.getPalletId()));
             if (countLoc > 0 || countWrk > 0) {
-                return R.error(mesToCombParam.getPalletId()+"-宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�");
+                MesToCombReturnParam mesToCombReturnParam = new MesToCombReturnParam();
+                Synchro.Copy(mesToCombParam, mesToCombReturnParam);
+                errorComb.add(mesToCombReturnParam);
+//                return R.error(mesToCombParam.getPalletId()+"-宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�");
             }
             // 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁
             if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
@@ -445,6 +451,10 @@
         }
         for (MesToCombParam mesToCombParam : param) {
             openService.mesToComb(mesToCombParam);
+        }
+        // TODO:寰呮祴璇�
+        if(errorComb.size() > 0) {
+            return R.error("鎵樼洏宸插湪搴撳瓨涓�/宸插紑濮嬪叆搴�").add(errorComb);
         }
 
         return R.ok();
@@ -456,9 +466,30 @@
 
     @PostMapping("/outOrder")
     public synchronized R outOrder (@RequestBody ArrayList<OutTaskParam> params){
+        List<OutTaskReturnParam> errorOutOrders = Lists.newArrayList();
         for (OutTaskParam outTaskParam : params) {
-            openService.outOrder(outTaskParam);
+            // TODO:寰呮脯瑭︼紝鏍¢搴瓨淇℃伅锛屼笉瀛樺湪鍓囪繑鍥�
+            int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", outTaskParam.getPalletId()));
+            if (countLoc == 0){
+                OutTaskReturnParam outTaskReturnParam = new OutTaskReturnParam();
+                Synchro.Copy(outTaskParam, outTaskReturnParam);
+                errorOutOrders.add(outTaskReturnParam);
+
+                params.remove(outTaskParam);
+            }
         }
+
+        for (OutTaskParam outTaskParam : params) {
+            R r = openService.outOrder(outTaskParam);
+            if (!r.get("code").equals(200)){
+                return r;
+            }
+        }
+
+        if(errorOutOrders.size() > 0) {
+            return R.error("搴撳瓨涓笉瀛樺湪璇ユ墭鐩�").add(errorOutOrders);
+        }
+
         return R.ok();
     }
 
diff --git a/src/main/java/com/zy/asrs/entity/param/ErpPakoutReportParam.java b/src/main/java/com/zy/asrs/entity/param/ErpPakoutReportParam.java
index 79c5610..1f5ffb7 100644
--- a/src/main/java/com/zy/asrs/entity/param/ErpPakoutReportParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/ErpPakoutReportParam.java
@@ -10,4 +10,6 @@
     private String createTime;
 
     private String startTime;
+
+    private String orderId;
 }
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 449a143..2029fd8 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -1535,37 +1535,37 @@
                 }
             }
             for (WrkDetl wrkDetl : wrkDetls) {
-                if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
-//                    if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
-//                        throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
-//                    }
-                    OrderInAndOutUtil.decrease(Boolean.FALSE,wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),
-                            wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),
-                            wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3(), wrkDetl.getAnfme());
-
-                    //淇敼璁㈠崟涓昏〃鐘舵��,娌℃湁浣滀笟鏁伴噺鏃舵墠鍙互淇敼
-                    boolean flag = true;
-//                    List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no",wrkDetl.getOrderNo()));
-                    Order order = OrderInAndOutUtil.selectByNo(Boolean.FALSE, wrkDetl.getOrderNo());
-                    List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(Boolean.FALSE, order.getId());
-                    for(OrderDetl orderDetl : orderDetls){
-                        if(orderDetl.getWorkQty() > 0){
-                            flag = false;
-                        }
-                    }
-                    if(flag){
-//                        Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()));
-                        if(!Cools.isEmpty(order) && order.getSettle()==2){
-                            order.setSettle(1L);
-                            order.setUpdateBy(userId);
-                            order.setUpdateTime(now);
-                        }
-//                        if(!orderService.update(order,new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()))){
-//                            throw new CoolException("淇敼璁㈠崟鐘舵�佸け璐�");
+//                if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
+////                    if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) {
+////                        throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触");
+////                    }
+//                    OrderInAndOutUtil.decrease(Boolean.FALSE,wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),
+//                            wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(),
+//                            wrkDetl.getBoxType1(),wrkDetl.getBoxType2(),wrkDetl.getBoxType3(), wrkDetl.getAnfme());
+//
+//                    //淇敼璁㈠崟涓昏〃鐘舵��,娌℃湁浣滀笟鏁伴噺鏃舵墠鍙互淇敼
+//                    boolean flag = true;
+////                    List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no",wrkDetl.getOrderNo()));
+//                    Order order = OrderInAndOutUtil.selectByNo(Boolean.FALSE, wrkDetl.getOrderNo());
+//                    List<OrderDetl> orderDetls = OrderInAndOutUtil.selectByOrderId(Boolean.FALSE, order.getId());
+//                    for(OrderDetl orderDetl : orderDetls){
+//                        if(orderDetl.getWorkQty() > 0){
+//                            flag = false;
 //                        }
-                        OrderInAndOutUtil.updateOrder(Boolean.FALSE,order.getId(),order.getSettle(),userId);
-                    }
-                }
+//                    }
+//                    if(flag){
+////                        Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()));
+//                        if(!Cools.isEmpty(order) && order.getSettle()==2){
+//                            order.setSettle(1L);
+//                            order.setUpdateBy(userId);
+//                            order.setUpdateTime(now);
+//                        }
+////                        if(!orderService.update(order,new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()))){
+////                            throw new CoolException("淇敼璁㈠崟鐘舵�佸け璐�");
+////                        }
+//                        OrderInAndOutUtil.updateOrder(Boolean.FALSE,order.getId(),order.getSettle(),userId);
+//                    }
+//                }
             }
 
         }
diff --git a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
index d672fdb..d0a61ca 100644
--- a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -73,13 +73,6 @@
             if (wrkMast.getIoType()>100&& !wrkMast.getPdcType().equals("Y")) {
                 continue;
             }
-            Integer crnNo = wrkMast.getCrnNo();
-            //璇ュ爢鍨涙満宸茬粡涓嬪彂浠诲姟缁檞cs鍚庝笉鍐嶄笅鍙戞柊鐨勬惉杩愪换鍔�
-            List<WrkMast> wrkMasts1 = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("crn_no", crnNo).in("wrk_sts", Arrays.asList(2L, 12L)));
-            if (!wrkMasts1.isEmpty()) {
-                continue;
-            }
-
             String wcsSourceLocNo = Cools.isEmpty(wrkMast.getSourceLocNo()) ? "" : Utils.WMSLocToWCSLoc(wrkMast.getSourceLocNo());
             String wcsLocNo = Cools.isEmpty(wrkMast.getLocNo()) ? "" : Utils.WMSLocToWCSLoc(wrkMast.getLocNo());
             WorkTaskParams params = new WorkTaskParams();
@@ -90,6 +83,8 @@
                         .setLocNo(wcsSourceLocNo)
                         .setStaNo(String.valueOf(wrkMast.getStaNo()))
                         .setTaskPri(wrkMast.getIoPri().intValue())
+                        .setBatch(1)
+                        .setBatchSeq(wrkMast.getPltType())
                         .setBarcode(wrkMast.getBarcode());
             }else if(wrkMast.getIoType()==2&& !Cools.isEmpty(wrkMast.getSourceStaNo())){
                 params.setType("in")
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkErpReportHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkErpReportHandler.java
index 87043a6..c0ac56b 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkErpReportHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkErpReportHandler.java
@@ -77,6 +77,24 @@
 
         WaitPakin waitPakin = findWaitPakin(wrkMast.getBarcode());
         ErpPakinReportParam param = buildParam(wrkMast, wrkDetls, waitPakin);
+
+        // 搴綅杞夋彌
+        String locId = param.getLocId();
+        String row = locId.substring(0, 2);
+        String col = locId.substring(2, 5);
+        String lev =  locId.substring(5, 7);
+        if(Integer.parseInt(row) >= 37) {
+            row = "C" + row;
+        } else if(Integer.parseInt(row) >= 13) {
+            row = "B" + row;
+        } else {
+            row = "A" + row;
+        }
+        String newLocId = row + "-" + col + "-" + lev;
+        param.setLocId(newLocId);
+        // TODO锛氭ā鎿姝婚噸閲�1000KG锛岄渶寰岀簩鍒櫎
+        param.setWeight(1000.0);
+
         String request = JSON.toJSONString(param);
         String response = "";
         boolean success = false;
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkOutErpReportHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkOutErpReportHandler.java
index 433efdb..062c901 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkOutErpReportHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkOutErpReportHandler.java
@@ -65,6 +65,10 @@
         }
 
         ErpPakoutReportParam param = buildParam(wrkMast);
+        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+        if (wrkDetls != null && wrkDetls.size() > 0) {
+            param.setOrderId(wrkDetls.get(0).getOrderNo());
+        }
         String request = JSON.toJSONString(param);
         String response = "";
         boolean success = false;
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 80df050..8f099ca 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -79,7 +79,7 @@
             return R.ok(dto1);
         }
         List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("io_type", 1));
-        if (!Cools.isEmpty(wrkMasts) && wrkMasts.size() > 1) {
+        if (!Cools.isEmpty(wrkMasts) && wrkMasts.size() > 10) {
             return R.error("闄愯");
         }
         waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index c9a4ea6..1f5ceb9 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -97,7 +97,7 @@
     #鍏ュ簱涓婃姤
     Inaddress: /api/Service/InPalletCompleted
     #鍑哄簱涓婃姤
-    Outaddress: /kapi/v2/eap7/basedata/bd_material/batchQuery
+    Outaddress: /api/Service/OutPalletCompleted
 
 #wcs浠诲姟涓嬪彂
 wcs:

--
Gitblit v1.9.1