From 207823b94f5627fae49d29b51b5ce7186a70c8e0 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期六, 04 一月 2025 09:59:48 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |   86 ++++++++++++++++++++++++++++++++++---------
 1 files changed, 68 insertions(+), 18 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 f06bbaa..ed50a08 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -18,6 +18,7 @@
 import com.zy.asrs.utils.MatUtils;
 import com.zy.common.model.DetlDto;
 import com.zy.common.utils.NodeUtils;
+import com.zy.erp.kingdee.enums.KingDeeUtilType;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -133,14 +134,26 @@
         for (DetlDto detail : orderDetails) {
             DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme(),detail.getOwnerName(),detail.getPayment());
             dto.setBeBatch(detail.getBeBatch());
-            if (DetlDto.has(list, dto)) {
-                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
-                assert detlDto != null;
-                detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
-            } else {
-                list.add(dto);
+            KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get(docType.getDocName());
+            if (kingDeeUtilType.entryId==1){
+                if (DetlDto.has2(list, dto)) {
+                    DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),detail.getOwnerName(),detail.getBeBatch());
+                    assert detlDto != null;
+                    detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
+                } else {
+                    list.add(dto);
+                }
+                dto.setWeight(detail.getWeight());
+            }else {
+                if (DetlDto.has1(list, dto)) {
+                    DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),detail.getOwnerName());
+                    assert detlDto != null;
+                    detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
+                } else {
+                    list.add(dto);
+                }
+                dto.setWeight(detail.getWeight());
             }
-            dto.setWeight(detail.getWeight());
         }
         for (DetlDto detlDto : list) {
             Mat mat = matService.selectByMatnr(detlDto.getMatnr());
@@ -168,7 +181,7 @@
             if (Cools.isEmpty(locOwner)){
                 throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
             }else {
-                orderDetl.setOwner(locOwner.getId().intValue());
+                orderDetl.setOwner(locOwner.getId());
             }
             orderDetl.setPayment(detlDto.getPayment());
             orderDetl.setStatus(1);
@@ -185,6 +198,20 @@
     @Transactional
     public void pakoutOrderCreate(OpenOrderPakoutParam param) {
         Order order = orderService.selectByNo(param.getOrderNo());
+
+        for (DetlDto detlDto : param.getOrderDetails()){
+            if (Cools.isEmpty(detlDto) || Cools.isEmpty(detlDto.getOwnerName(),detlDto.getPayment())){
+                throw new CoolException(param.getOrderNo() + "缂哄皯璐т富鎴栬揣鐗╁舰鎬�");
+            }else {
+                LocOwner locOwner = locOwnerService.selectOne(new EntityWrapper<LocOwner>().eq("owner", detlDto.getOwnerName()));
+                if (Cools.isEmpty(locOwner)){
+                    LocOwner locOwner1 = new LocOwner();
+                    locOwner1.setOwner(detlDto.getOwnerName());
+                    locOwnerService.insert(locOwner1);
+                }
+            }
+        }
+
         // 濡傛灉鍗曟嵁涓嶅瓨鍦ㄥ垯娣诲姞锛涘鏋滃崟鎹瓨鍦紝浣滀笟涓棤娉曚慨鏀癸紝鍙嶄箣鍒欎慨鏀瑰崟鎹�
         if (!Cools.isEmpty(order)) {
             if (order.getSettle() > 1L) {
@@ -238,16 +265,28 @@
         List<DetlDto> list = new ArrayList<>();
         List<DetlDto> orderDetails = param.getOrderDetails();
         for (DetlDto detail : orderDetails) {
-            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
+            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme(),detail.getOwnerName(),detail.getPayment());
             dto.setBeBatch(detail.getBeBatch());
-            if (DetlDto.has(list, dto)) {
-                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
-                assert detlDto != null;
-                detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
-            } else {
-                list.add(dto);
+            KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get(docType.getDocName());
+            if (kingDeeUtilType.entryId==1){
+                if (DetlDto.has2(list, dto)) {
+                    DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),detail.getOwnerName(),detail.getBeBatch());
+                    assert detlDto != null;
+                    detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
+                } else {
+                    list.add(dto);
+                }
+                dto.setWeight(detail.getWeight());
+            }else {
+                if (DetlDto.has1(list, dto)) {
+                    DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),detail.getOwnerName());
+                    assert detlDto != null;
+                    detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
+                } else {
+                    list.add(dto);
+                }
+                dto.setWeight(detail.getWeight());
             }
-            dto.setWeight(detail.getWeight());
         }
         for (DetlDto detlDto : list) {
             Mat mat = matService.selectByMatnr(detlDto.getMatnr());
@@ -266,8 +305,15 @@
             orderDetl.setUpdateTime(now);
             orderDetl.setStatus(1);
             orderDetl.setQty(0.0D);
+            orderDetl.setOwner(detlDto.getOwner());
             orderDetl.setBeBatch(detlDto.getBeBatch());
             orderDetl.setWeight(detlDto.getWeight());
+            LocOwner locOwner = locOwnerService.selectOne(new EntityWrapper<LocOwner>().eq("owner", detlDto.getOwnerName()));
+            if (Cools.isEmpty(locOwner)){
+                throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
+            }else {
+                orderDetl.setOwner(locOwner.getId());
+            }
             if (!orderDetlService.insert(orderDetl)) {
                 throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
             }
@@ -342,8 +388,10 @@
         for (DetlDto detail : orderDetails) {
             DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme(),detail.getOwnerName(),detail.getPayment());
             dto.setBeBatch(detail.getBeBatch());
-            if (DetlDto.has(list, dto)) {
-                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
+            dto.setSourceLocName(detail.getSourceLocName());
+            dto.setTargetLocName(detail.getTargetLocName());
+            if (DetlDto.has3(list, dto)) {
+                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),dto.getOwnerName(),dto.getSourceLocName(),dto.getTargetLocName());
                 assert detlDto != null;
                 detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
             } else {
@@ -384,6 +432,8 @@
             orderDetl.setQty(0.0D);
             orderDetl.setBeBatch(detlDto.getBeBatch());
             orderDetl.setWeight(detlDto.getWeight());
+            orderDetl.setSourceLocName(detlDto.getSourceLocName());
+            orderDetl.setTargetLocName(detlDto.getTargetLocName());
             if (!orderDetlService.insert(orderDetl)) {
                 throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
             }

--
Gitblit v1.9.1