From 8b75fe61a3eefe36761aa0f82a79b59342aa6709 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期一, 20 十月 2025 16:10:31 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java |   53 ++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 40 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
index 002d171..651a4e5 100644
--- a/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -69,8 +69,9 @@
             if (orderDetl.getQty().equals(0D)){
                 continue;
             }
-            orderDetl.setWorkQty(orderDetl.getQty());
-            orderDetl.setAnfme(orderDetl.getAnfme()-orderDetl.getQty());
+            orderDetl.setWorkQty(orderDetl.getWorkQty()+orderDetl.getQty());
+//            orderDetl.setAnfme(orderDetl.getAnfme()-orderDetl.getQty());
+            orderDetl.setAnfme(orderDetl.getAnfme());
             orderDetl.setQty(0D);
             orderDetlService.updateById(orderDetl);
         }
@@ -96,6 +97,10 @@
         List<OrderDetl> orderDetlList = new ArrayList<>();
 
         for (OrderDetl detail : orderDetls) {
+            detail.setAnfme(detail.getAnfme() - detail.getWorkQty());
+            if (detail.getAnfme().equals(0D)){
+                continue;
+            }
             DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(),detail.getBrand(),detail.getStandby1(),detail.getStandby2(),detail.getStandby3(),
                     detail.getBoxType1(),detail.getBoxType2(),detail.getBoxType3(), detail.getAnfme());
             if (DetlDto.has(list, dto)) {
@@ -109,6 +114,12 @@
             } else {
                 list.add(dto);
                 orderDetlList.add(detail);
+            }
+        }
+        if (orderDetlList.size()==0){
+            // 淇敼璁㈠崟鐘舵�� 1.鏈綔涓� ===>> 2.浣滀笟涓�
+            if (!orderService.updateSettle(order.getId(), 4L, null)) {
+                throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
             }
         }
         for (OrderDetl orderDetl : orderDetlList){
@@ -142,9 +153,13 @@
                     continue;
                 }
                 if (orderDetlSou.beSimilar(orderDetl)){
-                    double v = orderDetlSou.getAnfme() - orderDetlSou.getQty();
+                    double anfme = orderDetlSou.getAnfme() - orderDetlSou.getWorkQty();
+                    double v = anfme - orderDetlSou.getQty();
+                    if (v<0D){
+                        v = 0D;
+                    }
                     if (v<orderDetl.getQty() || orderDetl.getQty().equals(v)){
-                        orderDetlSou.setQty(orderDetlSou.getAnfme());
+                        orderDetlSou.setQty(anfme);
                         orderDetl.setQty(orderDetl.getQty() - v);
                         break;
                     } else {
@@ -180,16 +195,27 @@
             pakinParam.setLgortFrom("5008");
             pakinParam.setLgortTo("5006");
             for (OrderDetl orderDetl : orderDetls) {
+                double anfme = orderDetl.getAnfme() - orderDetl.getWorkQty();
+                if (anfme<=0D){
+                    continue;
+                }
                 if (!orderDetl.getQty().equals(orderDetl.getAnfme())){
                     settle = 99L;//浜屾鐢熸垚鍗曟嵁
                 }
                 String serial = Cools.isEmpty(orderDetl.getBatch()) ? "" : orderDetl.getBatch();
-                pakinParam.getList().add(new MesPakinParam.Detl(orderDetl.getMatnr() + (Cools.isEmpty(serial) ? "" : "-" + serial), orderDetl.getAnfme()));
+                pakinParam.getList().add(new MesPakinParam.Detl(orderDetl.getMatnr() + (Cools.isEmpty(serial) ? "" : "-" + serial), orderDetl.getQty()));
             }
 
             String response = "";
             boolean success = false;
             try {
+                if (pakinParam.getList().size()==0){
+                    success = true;
+                    // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
+                    if (!orderService.updateSettle(order.getId(), settle, null)) {
+                        throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+                    }
+                } else {
 //                response = new HttpHandler.Builder()
 //                        .setUri(MesConstant.URL)
 //                        .setPath(MesConstant.PAKIN_URL)
@@ -198,15 +224,16 @@
 //                        .doPost();
 //                JSONObject jsonObject = JSON.parseObject(response);
 //                if (jsonObject.getInteger("code").equals(200)) {
-                if (true) {
-                    success = true;
-                    // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
-                    if (!orderService.updateSettle(order.getId(), settle, null)) {
-                        throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+                    if (true) {
+                        success = true;
+                        // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
+                        if (!orderService.updateSettle(order.getId(), settle, null)) {
+                            throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+                        }
+                    } else {
+                        log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PAKIN_URL, JSON.toJSONString(pakinParam), response);
+                        throw new CoolException("涓婃姤mes绯荤粺澶辫触");
                     }
-                } else {
-                    log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", MesConstant.URL+MesConstant.PAKIN_URL, JSON.toJSONString(pakinParam), response);
-                    throw new CoolException("涓婃姤mes绯荤粺澶辫触");
                 }
             } catch (Exception e) {
                 log.error("fail", e);

--
Gitblit v1.9.1