From 6f01b51fc0770fda7787076caf0314be7a7f6656 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 27 六月 2025 10:58:21 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/nc/task/handler/PlanOrderHandler.java |  254 +++++++++++++++++++++++++++++++++++---------------
 1 files changed, 176 insertions(+), 78 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 7160b6a..f9308c4 100644
--- a/src/main/java/com/zy/nc/task/handler/PlanOrderHandler.java
+++ b/src/main/java/com/zy/nc/task/handler/PlanOrderHandler.java
@@ -1,7 +1,6 @@
 package com.zy.nc.task.handler;
 
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.InventoryCheckOrder;
@@ -21,9 +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,88 @@
      *
      * @return
      */
+    @Transactional
     public ReturnT<String> start1(List<NccSaleXsfhmxWms> wmsFlag) {
         try {
-            OpenOrderPakoutParam param = new OpenOrderPakoutParam();
-            param.setOrderType("閿�鍞彂璐�");
-            DetlDto detlDto;
-            List<DetlDto> orderDetails = new ArrayList<>();
-            long i = 1;
-            for (NccSaleXsfhmxWms nccSaleXsfhmxWms : wmsFlag) {
-                if (nccSaleXsfhmxWms.getFstatusflag() == 2 && nccSaleXsfhmxWms.getBdr() == 0 && nccSaleXsfhmxWms.getHdr() == 0) {
+            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);
+                }
+            }
+            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.getNastnum().doubleValue());
+                    detlDto.setAnfme(nccSaleXsfhmxWms.getNnum().doubleValue());
+                    detlDto.setBatch(nccSaleXsfhmxWms.getVbatchcode());
+                    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.setKpCstmrName(nccSaleXsfhmxWms.getKpkhmc());
                 }
+                param.setOrderDetails(orderDetails);
+                openService.pakoutOrderCreate(param);
+                nccSaleXsfhmxWmsService.updateBatchById(map.get(key));
+                size++;
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return FAIL.setMsg(e.getMessage());
+        }
+        return SUCCESS;
+    }
+
+    /**
+     * 鍙戣揣
+     *
+     * @return
+     */
+    @Transactional
+    public ReturnT<String> start1In(List<NccSaleXsfhmxWms> wmsFlag) {
+        try {
+            OpenOrderPakinParam param = new OpenOrderPakinParam();
+            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.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());
             }
             param.setOrderDetails(orderDetails);
-            openService.pakoutOrderCreate(param);
+            openService.pakinOrderCreate(param);
             nccSaleXsfhmxWmsService.updateBatchById(wmsFlag);
         } catch (Exception e) {
             e.printStackTrace();
@@ -99,25 +160,26 @@
      *
      * @return
      */
-    public ReturnT<String> start2(List<NccScZkmxbWms> wmsFlag) {
+    @Transactional
+    public ReturnT<String> start2In(List<NccScZkmxbWms> wmsFlag) {
         try {
             OpenOrderPakinParam param = new OpenOrderPakinParam();
-            param.setOrderType("杞簱");
+            param.setOrderType("杞簱-鍏ュ簱");
             DetlDto detlDto;
             List<DetlDto> orderDetails = new ArrayList<>();
             long i = 1;
             for (NccScZkmxbWms nccScZkmxbWms : wmsFlag) {
                 log.info("NccScZkmxbWms鏁版嵁:{}", JSONObject.toJSON(nccScZkmxbWms));
-                if ( nccScZkmxbWms.getBdr() == 0 && nccScZkmxbWms.getDr() == 0) {
-                    detlDto = new DetlDto();
-                    detlDto.setMatnr(nccScZkmxbWms.getWlbm());
-                    detlDto.setAnfme(nccScZkmxbWms.getYingzzsl().doubleValue());
-                    detlDto.setBatch(nccScZkmxbWms.getVbatchcode());
-                    detlDto.setLineNumber(i);
-                    detlDto.setRemark(JSONObject.toJSONString(nccScZkmxbWms));
-                    orderDetails.add(detlDto);
-                    i++;
-                }
+                detlDto = new DetlDto();
+                detlDto.setMatnr(nccScZkmxbWms.getWlbm());
+                detlDto.setAnfme(nccScZkmxbWms.getYingzzsl().doubleValue());
+                detlDto.setWeight(nccScZkmxbWms.getYingzsl().doubleValue());
+                detlDto.setBatch(nccScZkmxbWms.getVbatchcode());
+                detlDto.setLineNumber(i);
+                detlDto.setRemark(JSONObject.toJSONString(nccScZkmxbWms));
+                detlDto.setStandby1(nccScZkmxbWms.getRkckbm());
+                orderDetails.add(detlDto);
+                i++;
                 nccScZkmxbWms.setWmsFlag(1);
                 param.setOrderNo(nccScZkmxbWms.getVbillcode());
             }
@@ -132,12 +194,50 @@
         return SUCCESS;
     }
 
+    /**
+     * 杞簱锛屽寘鍚嚭搴�
+     *
+     * @return
+     */
+    @Transactional
+    public ReturnT<String> start2Out(List<NccScZkmxbWms> wmsFlag) {
+        try {
+            OpenOrderPakoutParam param = new OpenOrderPakoutParam();
+            param.setOrderType("杞簱-鍑哄簱");
+            DetlDto detlDto;
+            List<DetlDto> orderDetails = new ArrayList<>();
+            long i = 1;
+            for (NccScZkmxbWms nccScZkmxbWms : wmsFlag) {
+                log.info("NccScZkmxbWms鏁版嵁:{}", JSONObject.toJSON(nccScZkmxbWms));
+                detlDto = new DetlDto();
+                detlDto.setMatnr(nccScZkmxbWms.getWlbm());
+                detlDto.setAnfme(nccScZkmxbWms.getYingzzsl().doubleValue());
+                detlDto.setWeight(nccScZkmxbWms.getYingzsl().doubleValue());
+                detlDto.setBatch(nccScZkmxbWms.getVbatchcode());
+                detlDto.setLineNumber(i);
+                detlDto.setRemark(JSONObject.toJSONString(nccScZkmxbWms));
+                orderDetails.add(detlDto);
+                i++;
+                nccScZkmxbWms.setWmsFlag(1);
+                param.setOrderNo(nccScZkmxbWms.getVbillcode());
+            }
+            param.setOrderDetails(orderDetails);
+            openService.pakoutOrderCreate(param);
+            nccScZkmxbWmsService.updateBatchById(wmsFlag);
+        } catch (Exception e) {
+            e.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return FAIL.setMsg(e.getMessage());
+        }
+        return SUCCESS;
+    }
 
     /**
      * 閲囪喘鍒拌揣
      *
      * @return
      */
+    @Transactional
     public ReturnT<String> start3(List<NccCgCgdhdWms> wmsFlag) {
         try {
             OpenOrderPakinParam param = new OpenOrderPakinParam();
@@ -147,15 +247,16 @@
             long i = 1;
             for (NccCgCgdhdWms nccCgCgdhdWms : wmsFlag) {
                 log.info("nccCgCgdhdWms鏁版嵁:{}", JSONObject.toJSON(nccCgCgdhdWms));
-                if (nccCgCgdhdWms.getBdr() == 0 && nccCgCgdhdWms.getHdr() == 0) {
-                    detlDto = new DetlDto();
-                    detlDto.setMatnr(nccCgCgdhdWms.getWlbm());
-                    detlDto.setAnfme(nccCgCgdhdWms.getYdzsl().doubleValue());
-                    detlDto.setLineNumber(i);
-                    detlDto.setRemark(JSONObject.toJSONString(nccCgCgdhdWms));
-                    orderDetails.add(detlDto);
-                    i++;
-                }
+                detlDto = new DetlDto();
+                detlDto.setMatnr(nccCgCgdhdWms.getWlbm());
+                detlDto.setAnfme(nccCgCgdhdWms.getYdzsl().doubleValue());
+                detlDto.setAnfme(nccCgCgdhdWms.getYdsl().doubleValue());
+                detlDto.setBatch(nccCgCgdhdWms.getVbatchcode());
+                detlDto.setLineNumber(i);
+                detlDto.setRemark(JSONObject.toJSONString(nccCgCgdhdWms));
+                detlDto.setStandby1(nccCgCgdhdWms.getCkbm());
+                orderDetails.add(detlDto);
+                i++;
                 nccCgCgdhdWms.setWmsFlag(1);
                 param.setOrderNo(nccCgCgdhdWms.getVbillcode());
             }
@@ -176,43 +277,40 @@
      *
      * @return
      */
-    public ReturnT<String> start4(List<NccCkPddWms> wmsFlag) {
-        try {
-            InventoryCheckOrder param = new InventoryCheckOrder();
-            InventoryCheckOrderDetl checkOrderDetl = null;
-            for (NccCkPddWms nccScZkmxbWms : wmsFlag) {
-                log.info("NccCkPddWms鏁版嵁:{}", JSONObject.toJSON(nccScZkmxbWms));
-                if (nccScZkmxbWms.getBdr() == 0 && nccScZkmxbWms.getHdr() == 0) {
-                    Mat mat = matService.selectByMatnr(nccScZkmxbWms.getWlbm());
-                    if (Cools.isEmpty(mat)) {
-                        throw new CoolException(nccScZkmxbWms.getWlbm() + "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧");
-                    }
-                    List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", nccScZkmxbWms.getVbillcode()).eq("matnr", mat.getMatnr()).eq("batch", nccScZkmxbWms.getVbatchcode()));
-                    if (checkOrderDetls != null && !checkOrderDetls.isEmpty()) {
-                        throw new CoolException(nccScZkmxbWms.getWlbm() + "鐩樼偣鍗曠殑鏄庣粏閲嶅浜�");
-                    }
-                    checkOrderDetl = new InventoryCheckOrderDetl();
-                    checkOrderDetl.setMatnr(nccScZkmxbWms.getWlbm());
-                    checkOrderDetl.setMaktx(mat.getMaktx());
-                    checkOrderDetl.setOrderNo(nccScZkmxbWms.getVbillcode());
-                    checkOrderDetl.setAnfme(nccScZkmxbWms.getZmzsl().doubleValue());
-                    checkOrderDetl.setBatch(nccScZkmxbWms.getVbatchcode());
-                    inventoryCheckOrderDetlService.insert(checkOrderDetl);
-                }
-                nccScZkmxbWms.setWmsFlag(1);
-                param.setOrderNo(nccScZkmxbWms.getVbillcode());
-            }
-            param.setStatus("1");
-            inventoryCheckOrderService.insert(param);
-            nccCkPddWmsService.updateBatchById(wmsFlag);
-        } catch (Exception e) {
-            e.printStackTrace();
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-            return FAIL.setMsg(e.getMessage());
-        }
-        return SUCCESS;
-    }
-
+//    @Transactional
+//    public ReturnT<String> start4(List<NccCkPddWms> wmsFlag) {
+//        try {
+//            InventoryCheckOrder param = new InventoryCheckOrder();
+//            InventoryCheckOrderDetl checkOrderDetl = null;
+//            for (NccCkPddWms nccScZkmxbWms : wmsFlag) {
+//                log.info("NccCkPddWms鏁版嵁:{}", JSONObject.toJSON(nccScZkmxbWms));
+//                Mat mat = matService.selectByMatnr(nccScZkmxbWms.getWlbm());
+//                if (Cools.isEmpty(mat)) {
+//                    throw new CoolException(nccScZkmxbWms.getWlbm() + "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧");
+//                }
+//                checkOrderDetl = new InventoryCheckOrderDetl();
+//                checkOrderDetl.setMatnr(nccScZkmxbWms.getWlbm());
+//                checkOrderDetl.setMaktx(mat.getMaktx());
+//                checkOrderDetl.setOrderNo(nccScZkmxbWms.getVbillcode());
+//                checkOrderDetl.setAnfme(nccScZkmxbWms.getZmzsl().doubleValue());
+//                checkOrderDetl.setBatch(nccScZkmxbWms.getVbatchcode());
+//                inventoryCheckOrderDetlService.insert(checkOrderDetl);
+//                nccScZkmxbWms.setWmsFlag(1);
+//                param.setOrderNo(nccScZkmxbWms.getVbillcode());
+//                param.setCreateBy(nccScZkmxbWms.getPdrmc());
+//
+//            }
+//            param.setCreateTime(new Date());
+//            param.setStatus("1");
+//            inventoryCheckOrderService.insert(param);
+//            nccCkPddWmsService.updateBatchById(wmsFlag);
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//            return FAIL.setMsg(e.getMessage());
+//        }
+//        return SUCCESS;
+//    }
 
 
     /**
@@ -220,6 +318,7 @@
      *
      * @return
      */
+    @Transactional
     public ReturnT<String> start5(List<NccSaleDbddWms> wmsFlag) {
         try {
             OpenOrderPakoutParam param = new OpenOrderPakoutParam();
@@ -229,16 +328,15 @@
             long i = 1;
             for (NccSaleDbddWms nccCgCgdhdWms : wmsFlag) {
                 log.info("nccCgCgdhdWms鏁版嵁:{}", JSONObject.toJSON(nccCgCgdhdWms));
-                if (nccCgCgdhdWms.getDr() == 0 ) {
-                    detlDto = new DetlDto();
-                    detlDto.setMatnr(nccCgCgdhdWms.getWlbm());
-                    detlDto.setAnfme(nccCgCgdhdWms.getZsl().doubleValue());
-                    detlDto.setBatch(nccCgCgdhdWms.getVbatchcode());
-                    detlDto.setLineNumber(i);
-                    detlDto.setRemark(JSONObject.toJSONString(nccCgCgdhdWms));
-                    orderDetails.add(detlDto);
-                    i++;
-                }
+                detlDto = new DetlDto();
+                detlDto.setMatnr(nccCgCgdhdWms.getWlbm());
+                detlDto.setAnfme(nccCgCgdhdWms.getZsl().doubleValue());
+                detlDto.setWeight(nccCgCgdhdWms.getFsl().doubleValue());
+                detlDto.setBatch(nccCgCgdhdWms.getVbatchcode());
+                detlDto.setLineNumber(i);
+                detlDto.setRemark(JSONObject.toJSONString(nccCgCgdhdWms));
+                orderDetails.add(detlDto);
+                i++;
                 nccCgCgdhdWms.setWmsFlag(1);
                 param.setOrderNo(nccCgCgdhdWms.getVbillcode());
             }

--
Gitblit v1.9.1