From cca40ca8d275faa8b5cc9501ce4f09b81cfbd7fc Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期四, 05 六月 2025 16:04:38 +0800
Subject: [PATCH] 123

---
 src/main/java/com/zy/nc/task/handler/PlanOrderHandler.java |   69 ++++++++++++++++++++++++----------
 1 files changed, 48 insertions(+), 21 deletions(-)

diff --git a/src/main/java/com/zy/nc/task/handler/PlanOrderHandler.java b/src/main/java/com/zy/nc/task/handler/PlanOrderHandler.java
index 5dd1c51..9fbf7c8 100644
--- a/src/main/java/com/zy/nc/task/handler/PlanOrderHandler.java
+++ b/src/main/java/com/zy/nc/task/handler/PlanOrderHandler.java
@@ -20,10 +20,12 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 
 @Service
@@ -62,29 +64,48 @@
      *
      * @return
      */
+    @Transactional
     public ReturnT<String> start1(List<NccSaleXsfhmxWms> wmsFlag) {
         try {
-            OpenOrderPakoutParam param = new OpenOrderPakoutParam();
-            DetlDto detlDto;
-            List<DetlDto> orderDetails = new ArrayList<>();
-            long i = 1;
-            for (NccSaleXsfhmxWms nccSaleXsfhmxWms : wmsFlag) {
-                param.setOrderType("閿�鍞彂璐�");
-                detlDto = new DetlDto();
-                detlDto.setMatnr(nccSaleXsfhmxWms.getWlbm());
-                detlDto.setAnfme(nccSaleXsfhmxWms.getNastnum().doubleValue());
-                detlDto.setStandby1(nccSaleXsfhmxWms.getFhckbm());
-                detlDto.setLineNumber(i);
-                detlDto.setRemark(JSONObject.toJSONString(nccSaleXsfhmxWms));
-                orderDetails.add(detlDto);
-                log.info("NccSaleXsfhmxWms鏁版嵁:{}", JSONObject.toJSON(nccSaleXsfhmxWms));
-                i++;
-                nccSaleXsfhmxWms.setWmsFlag(1);
-                param.setOrderNo(nccSaleXsfhmxWms.getVbillcode());
+            HashMap<String, List<NccSaleXsfhmxWms>> map = new HashMap<>();
+            List<NccSaleXsfhmxWms> fenzu;
+            for (NccSaleXsfhmxWms wms : wmsFlag) {
+                if (map.get(wms.getFhckbm()) == null) {
+                    fenzu = new ArrayList<>();
+                    fenzu.add(wms);
+                    map.put(wms.getFhckbm(), fenzu);
+                } else {
+                    fenzu = map.get(wms.getFhckbm());
+                    fenzu.add(wms);
+                    map.put(wms.getFhckbm(), fenzu);
+                }
             }
-            param.setOrderDetails(orderDetails);
-            openService.pakoutOrderCreate(param);
-            nccSaleXsfhmxWmsService.updateBatchById(wmsFlag);
+            int size = 1;
+            for (String key : map.keySet()) {
+                OpenOrderPakoutParam param = new OpenOrderPakoutParam();
+                DetlDto detlDto;
+                List<DetlDto> orderDetails = new ArrayList<>();
+                long i = 1;
+                for (NccSaleXsfhmxWms nccSaleXsfhmxWms : map.get(key)) {
+                    param.setOrderType("閿�鍞彂璐�");
+                    detlDto = new DetlDto();
+                    detlDto.setMatnr(nccSaleXsfhmxWms.getWlbm());
+                    detlDto.setAnfme(nccSaleXsfhmxWms.getNnum().doubleValue());
+                    detlDto.setWeight(nccSaleXsfhmxWms.getNastnum().doubleValue());
+                    detlDto.setStandby1(nccSaleXsfhmxWms.getFhckbm());
+                    detlDto.setLineNumber(i);
+                    detlDto.setRemark(JSONObject.toJSONString(nccSaleXsfhmxWms));
+                    orderDetails.add(detlDto);
+                    log.info("NccSaleXsfhmxWms鏁版嵁:{}", JSONObject.toJSON(nccSaleXsfhmxWms));
+                    i++;
+                    nccSaleXsfhmxWms.setWmsFlag(1);
+                    param.setOrderNo(nccSaleXsfhmxWms.getVbillcode() + "-" + size);
+                    param.setCstmrName(nccSaleXsfhmxWms.getKhmc());
+                }
+                param.setOrderDetails(orderDetails);
+                openService.pakoutOrderCreate(param);
+                nccSaleXsfhmxWmsService.updateBatchById(map.get(key));
+            }
         } catch (Exception e) {
             e.printStackTrace();
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -98,6 +119,7 @@
      *
      * @return
      */
+    @Transactional
     public ReturnT<String> start1In(List<NccSaleXsfhmxWms> wmsFlag) {
         try {
             OpenOrderPakinParam param = new OpenOrderPakinParam();
@@ -108,7 +130,7 @@
                 param.setOrderType("閿�鍞��璐�");
                 detlDto = new DetlDto();
                 detlDto.setMatnr(nccSaleXsfhmxWms.getWlbm());
-                detlDto.setAnfme(nccSaleXsfhmxWms.getNastnum().doubleValue());
+                detlDto.setAnfme(nccSaleXsfhmxWms.getNnum().doubleValue());
                 detlDto.setStandby1(nccSaleXsfhmxWms.getFhckbm());
                 detlDto.setLineNumber(i);
                 detlDto.setRemark(JSONObject.toJSONString(nccSaleXsfhmxWms));
@@ -134,6 +156,7 @@
      *
      * @return
      */
+    @Transactional
     public ReturnT<String> start2In(List<NccScZkmxbWms> wmsFlag) {
         try {
             OpenOrderPakinParam param = new OpenOrderPakinParam();
@@ -171,6 +194,7 @@
      *
      * @return
      */
+    @Transactional
     public ReturnT<String> start2Out(List<NccScZkmxbWms> wmsFlag) {
         try {
             OpenOrderPakoutParam param = new OpenOrderPakoutParam();
@@ -207,6 +231,7 @@
      *
      * @return
      */
+    @Transactional
     public ReturnT<String> start3(List<NccCgCgdhdWms> wmsFlag) {
         try {
             OpenOrderPakinParam param = new OpenOrderPakinParam();
@@ -245,6 +270,7 @@
      *
      * @return
      */
+    @Transactional
     public ReturnT<String> start4(List<NccCkPddWms> wmsFlag) {
         try {
             InventoryCheckOrder param = new InventoryCheckOrder();
@@ -285,6 +311,7 @@
      *
      * @return
      */
+    @Transactional
     public ReturnT<String> start5(List<NccSaleDbddWms> wmsFlag) {
         try {
             OpenOrderPakoutParam param = new OpenOrderPakoutParam();

--
Gitblit v1.9.1