From cd0fafdd3fb2cf1b32da9a4109737034bcd04696 Mon Sep 17 00:00:00 2001
From: IZCD4L12RTSW0VZ\Administrator <skyouc>
Date: 星期四, 15 一月 2026 15:24:31 +0800
Subject: [PATCH] no message

---
 src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java |   30 +++++++++++++++++++++---------
 1 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java b/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
index c565ee8..548eaee 100644
--- a/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
@@ -82,12 +82,12 @@
      * @date 2025/11/24 14:49
      */
     @Override
-    public XSR receiveOrders(List<PubOrderParams> orderParams) {
+    public XSR receiveOrders(List<PubOrderParams> orderParams, String type) {
         orderParams.forEach(params -> {
             if (params.getType().equals(OrderWkType.getTypeVal(params.getType()))) {
                 throw new CoolException("褰撳墠绫诲瀷涓嶆槸涓婃灦娲惧伐鍗曪紒锛�");
             }
-            addOrUpdateOrders(params, "add");
+            addOrUpdateOrders(params, type);
         });
 
         return XSR.ok("鍗曟嵁涓嬪彂鎴愬姛锛侊紒");
@@ -179,7 +179,7 @@
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public XSR sendOutDispatch(List<PubOrderParams> pubOrderParams) {
+    public XSR sendOutDispatch(List<PubOrderParams> pubOrderParams, String type) {
         if (Objects.isNull(pubOrderParams) || pubOrderParams.isEmpty()) {
             return XSR.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
@@ -195,7 +195,7 @@
                 throw new CoolException("鍏徃ID涓嶈兘涓虹┖锛侊紒");
             }
 
-            addOrUpdateOrders(params, "add");
+            addOrUpdateOrders(params, type);
         });
 
         return XSR.ok("澶囪揣鎸囩ず娲惧伐鍗曚笅鍙戞垚鍔燂紒锛�");
@@ -354,8 +354,11 @@
         // 鍒ゆ柇璁㈠崟鏄惁瀛樺湪
         if (Objects.isNull(order)) {
             /** 涓嶅瓨鍦紝鏂板璁㈠崟 */
-            generateOrders(params);
+            generateOrders(params, type);
         } else {
+            if (order.getSettle() == 2) {
+                throw new CoolException("璁㈠崟宸插鐞嗭紝涓嶅彲鍐嶅彉鏇达紒锛�");
+            }
             /** 瀛樺湪锛屽垹闄よ�佽鍗曪紝鏇存柊鎻掑叆鏂拌鍗� */
             // 鍒犻櫎鏃ц鍗曟槑缁�
             if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) {
@@ -365,7 +368,7 @@
             if (!orderService.deleteById(order.getId())) {
                 throw new CoolException("鍘熷崟鎹垹闄ゅけ璐ワ紒锛�");
             }
-            generateOrders(params);
+            generateOrders(params, type);
         }
     }
 
@@ -377,9 +380,10 @@
      * 鐢熸垚璁㈠崟淇℃伅
      *
      * @param params
+     * @param type
      */
     @Transactional(rollbackFor = Exception.class)
-    public void generateOrders(PubOrderParams params) {
+    public void generateOrders(PubOrderParams params, String type) {
         // 灏嗘暟鎹綋鏂拌鍗曟彃鍏�
         Order newOrder = new Order();
         // 娲惧伐鍗曞彿
@@ -440,7 +444,11 @@
 
                 if (OrderType.ORDER_IN.type.equals(OrderWkType.getTypeVal(params.getType()))) {
                     // 鍏ュ簱
-                    orderItem.setAnfme(Math.round(item.getInv_qty() * 10000) / 10000.0);
+                    if (type.equals("add")) {
+                        orderItem.setAnfme(Math.round(item.getInv_qty() * 10000) / 10000.0);
+                    } else {
+                        orderItem.setAnfme(Math.round(item.getNew_qty() * 10000) / 10000.0);
+                    }
                 } else if (OrderType.ORDER_OUT.type.equals(OrderWkType.getTypeVal(params.getType()))) {
                     // 鍑哄簱
                     if (OrderWkType.ORDER_WK_ORDER_OUT.val.equals(params.getType())) {
@@ -449,7 +457,11 @@
                     } else if (OrderWkType.ORDER_WK_ORDER_OUT_EO.val.equals(params.getType())
                             || OrderWkType.ORDER_WK_ORDER_OUT_SO.val.equals(params.getType())) {
                         // 澶囪揣鎸囩ず娲惧伐鍗曪紙EO/SO锛夊嚭搴�
-                        orderItem.setAnfme(Math.round(item.getOrder_qty() * 10000) / 10000.0);
+                        if (type.equals("add")) {
+                            orderItem.setAnfme(Math.round(item.getOrder_qty() * 10000) / 10000.0);
+                        } else {
+                            orderItem.setAnfme(Math.round(item.getNew_qty() * 10000) / 10000.0);
+                        }
                     }
                 }
                 orderItem.setMatnr(matnr.getMatnr());

--
Gitblit v1.9.1