From a881d98d2eee345af7454fd943fccbcc5c8bcb6f Mon Sep 17 00:00:00 2001
From: tzsk <Administrator@qq.com>
Date: 星期一, 04 八月 2025 15:01:40 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |   49 ++++++++++++++++++++++++++++++-------------------
 1 files changed, 30 insertions(+), 19 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 19cd7bc..bbf8a2e 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -22,10 +22,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * Created by vincent on 2022/4/9
@@ -116,7 +113,7 @@
         for (DetlDto detail : orderDetails) {
             DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
             if (DetlDto.has(list, dto)) {
-                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
+                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),dto.getCsocode(),dto.getIsoseq(),null);
                 assert detlDto != null;
                 detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
             } else {
@@ -161,7 +158,7 @@
                 result.setOrderType(order.getDocType$());
                 List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
                 for (OrderDetl orderDetl : orderDetls) {
-                    result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
+                    //result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
                 }
                 if (order.getSettle() == 4L) {
                     // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
@@ -181,7 +178,7 @@
                 result.setOrderType(order.getDocType$());
                 List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
                 for (OrderDetl orderDetl : orderDetls) {
-                    result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
+                    //result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
                 }
                 // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
                 if (!orderService.updateSettle(order.getId(), 6L, null)) {
@@ -251,7 +248,7 @@
         for (DetlDto detail : orderDetails) {
             DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
             if (DetlDto.has(list, dto)) {
-                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
+                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),dto.getCsocode(),dto.getIsoseq(),null);
                 assert detlDto != null;
                 detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
             } else {
@@ -295,7 +292,7 @@
                 result.setOrderType(order.getDocType$());
                 List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
                 for (OrderDetl orderDetl : orderDetls) {
-                    result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
+                    //result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
                 }
                 if (order.getSettle() == 4L) {
                     // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
@@ -315,7 +312,7 @@
                 result.setOrderType(order.getDocType$());
                 List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
                 for (OrderDetl orderDetl : orderDetls) {
-                    result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
+                    //result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty()));
                 }
                 // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
                 if (!orderService.updateSettle(order.getId(), 6L, null)) {
@@ -525,6 +522,16 @@
             callApiLogSaveMES(param, null, param.getBarcode() + "锛氬伐浣滄槑缁嗘。宸插瓨鍦ㄦ鏁版嵁", false);
             throw new CoolException("宸ヤ綔鏄庣粏妗e凡瀛樺湪姝ゆ暟鎹�===>>" + param.getBarcode());
         }
+        List<CombParam.CombMat> combMats = param.getCombMats();
+        Map<String, String> map = new HashMap<>();
+        for (CombParam.CombMat combMat : combMats) {
+            String batch = Cools.isEmpty(combMat.getBatch()) ? "" : combMat.getBatch();
+            if (!Cools.isEmpty(map.get(combMat.getMatnr() + batch))) {
+                throw new CoolException(param.getBarcode() + "缁勬墭鐨勭墿鏂欐槑缁嗛噸澶�,璇锋鏌ユ槸鍚﹂噸澶嶆壂鐮�");
+            } else {
+                map.put(combMat.getMatnr() + batch, combMat.getMatnr());
+            }
+        }
 
         Date now = new Date();
         try{
@@ -532,8 +539,9 @@
             List<DetlDto> detlDtos = new ArrayList<>();
             param.getCombMats().forEach(elem -> {
                 DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
+                detlDto.setContainerCode(elem.getContainerCode());
                 if (DetlDto.has(detlDtos, detlDto)) {
-                    DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
+                    DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(),detlDto.getCsocode(),detlDto.getIsoseq(),detlDto.getContainerCode());
                     assert one != null;
                     one.setAnfme(one.getAnfme() + detlDto.getAnfme());
                 } else {
@@ -690,7 +698,7 @@
     }
 
     @Transactional
-    public boolean syncOrder(Map<String, Object> param) {
+    public boolean syncOrder(Map<String, Object> param, boolean pakin) {
         if(Cools.isEmpty(param) || Cools.isEmpty(param.get("orderDetails"))){
             throw new CoolException("鍗曟嵁鍙傛暟涓虹┖鎴栬�呭崟鎹鎯呬负绌猴紝鏃犳硶鐢熸垚鍗曟嵁淇℃伅");
         }
@@ -699,7 +707,7 @@
             throw new CoolException("璇ュ崟鎹凡瀛樺湪锛屾棤娉曠敓鎴愬崟鎹俊鎭�");
         }
         Date now = new Date();
-        Order order = orderMapping(param,now);
+        Order order = orderMapping(param,now,pakin);
         orderService.insert(order);
         List<Map<String, Object>> orderDetails = (List<Map<String, Object>>) param.get("orderDetails");
         orderDetails.forEach(odParam -> {
@@ -727,7 +735,7 @@
         return true;
     }
 
-    private Order orderMapping(Map<String, Object> param, Date now){
+    private Order orderMapping(Map<String, Object> param, Date now, boolean pakin){
         Order order = new Order();
         //uuid
         order.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
@@ -739,9 +747,9 @@
         order.setOrderNo(toString(param.get("id")));
         //涓氬姟绫诲瀷
         //order.setDefNumber(param.get("cBusType").toString());
-        order.setDefNumber(toString(param.get("cBusType")));
+        order.setDefNumber(toString(param.get("cVouchType")));
         //鍗曟嵁绫诲瀷
-        DocType docType = docTypeService.selectOrAdd(param.get("cVouchType").toString(), Boolean.TRUE);
+        DocType docType = docTypeService.selectOrAdd(param.get("cBusType").toString(), pakin);
         order.setDocType(docType.getDocId());
         //鍗曟嵁鏃ユ湡
         //order.setOrderTime(param.get("dDate").toString());
@@ -799,13 +807,16 @@
         //od.setAnfme(toString(odParam.get("iQuantity")));
         //琛屽彿
         //od.setBrand(odParam.get("irowno").toString());
-        od.setBrand(toString(odParam.get("irowno")));
+        //od.setBrand(toString(odParam.get("irowno")));
+        od.setManu(toString(odParam.get("irowno")));
         //閿�鍞鍗曞彿
         //od.setColor(odParam.get("csocode").toString());
-        od.setColor(toString(odParam.get("csocode")));
+        //od.setColor(toString(odParam.get("csocode")));
+        od.setThreeCode(toString(odParam.get("csocode")));
         //閿�鍞鍗曡鍙�
         //od.setOrigin(odParam.get("isoseq").toString());
-        od.setOrigin(toString(odParam.get("isoseq")));
+        //od.setOrigin(toString(odParam.get("isoseq")));
+        od.setDeadTime(toString(odParam.get("isoseq")));
 
         od.setStatus(1);
         od.setQty(0.0D);

--
Gitblit v1.9.1