From 10f65a42b77e2c5642ea56b715f25ea4f024fd3f Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期五, 25 四月 2025 10:58:48 +0800
Subject: [PATCH] #新增明细编号

---
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |  231 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 221 insertions(+), 10 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 c3c53c9..5cb108a 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -6,10 +6,7 @@
 import com.core.common.SnowflakeIdWorker;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.OpenOrderCompleteParam;
-import com.zy.asrs.entity.param.OpenOrderPakinParam;
-import com.zy.asrs.entity.param.OpenOrderPakoutParam;
-import com.zy.asrs.entity.param.PackParam;
+import com.zy.asrs.entity.param.*;
 import com.zy.asrs.entity.result.OpenOrderCompeteResult;
 import com.zy.asrs.entity.result.StockVo;
 import com.zy.asrs.mapper.TagMapper;
@@ -21,7 +18,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-
+import com.zy.asrs.entity.CheckDetl;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -51,6 +48,8 @@
     private TagService tagService;
     @Autowired
     private TagMapper tagMapper;
+    @Autowired
+    private CheckDetlService checkDetlService;
 
     @Override
     @Transactional
@@ -59,7 +58,7 @@
         if (!Cools.isEmpty(order)) {
             throw new CoolException(param.getOrderNo() + "鍗曟嵁宸插瓨鍦紝璇峰嬁閲嶅鎻愪氦");
         }
-        DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.TRUE);
+        DocType docType = docTypeService.selectOrAdd(param.getBillType(), Boolean.TRUE);
         Date now = new Date();
         // 鍗曟嵁涓绘。
         order = new Order(
@@ -103,7 +102,7 @@
         }
         // 鍗曟嵁鏄庣粏妗�
         List<DetlDto> list = new ArrayList<>();
-        List<DetlDto> orderDetails = param.getOrderDetails();
+        List<DetlDto> orderDetails = param.getMatList();
         for (DetlDto detail : orderDetails) {
             DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
             if (DetlDto.has(list, dto)) {
@@ -194,7 +193,7 @@
             }
             orderService.remove(order.getId());
         }
-        DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.FALSE);
+        DocType docType = docTypeService.selectOrAdd(param.getBillType(), Boolean.FALSE);
         Date now = new Date();
         // 鍗曟嵁涓绘。
         order = new Order(
@@ -238,7 +237,7 @@
         }
         // 鍗曟嵁鏄庣粏妗�
         List<DetlDto> list = new ArrayList<>();
-        List<DetlDto> orderDetails = param.getOrderDetails();
+        List<DetlDto> orderDetails = param.getMatList();
         for (DetlDto detail : orderDetails) {
             DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
             if (DetlDto.has(list, dto)) {
@@ -338,7 +337,7 @@
         pack = new Pack(
                 param.getBarcode(),    // 鏉$爜[闈炵┖]
                 analyse.getMatnr(),    // 鍟嗗搧缂栧彿
-                analyse.getBarcode(),    // 鎵瑰彿
+                analyse.getBarcode(),    // 搴忓垪鐮�
                 1L,    // 璁㈠崟鐘舵��
                 1,    // 鐘舵��
                 now,    // 娣诲姞鏃堕棿
@@ -438,4 +437,216 @@
         }
     }
 
+//    @Override
+//    @Transactional
+//    public void syncMat(List<MatSyncParam> param) {
+//        if (Cools.isEmpty(param.getMatDetails()) || param.getMatDetails().size() <=0 ) {
+//            throw new CoolException("鍟嗗搧鏁版嵁涓虹┖");
+//        }
+//
+//        for(MatSyncParam.MatParam matParam : param.getMatDetails()){
+//            if(Cools.isEmpty(matParam.getMatnr())){
+//                throw new CoolException("鍟嗗搧缂栫爜涓嶈兘涓虹┖");
+//            }
+//
+//            Date now = new Date();
+//            Mat mat = matService.selectByMatnr(matParam.getMatnr());
+//            if (mat == null) {
+//                mat = new Mat();
+//                // 鍒嗙被
+//                Long tagId;
+//                // 涓�绾у垎绫�
+//                if (!Cools.isEmpty(matParam.getTagId()) && !Cools.isEmpty(matParam.getTagIdName())) {
+//                    Tag priTag = tagService.selectByName(matParam.getTagIdName(), 2);
+//                    if (priTag == null) {
+//                        Tag top = tagService.getTop();
+//                        NodeUtils nodeUtils = new NodeUtils();
+//                        nodeUtils.executePath(top.getId());
+//                        priTag = new Tag(
+//                                null,    // 缂栧彿
+//                                matParam.getTagIdName(),    // 鍚嶇О
+//                                top.getId(),    // 鐖剁骇
+//                                top.getName(),    // 鐖剁骇鍚嶇О
+//                                nodeUtils.path.toString(),    // 鍏宠仈璺緞
+//                                nodeUtils.pathName.toString(),    // 鍏宠仈璺緞鍚�
+//                                0,    // 绫诲瀷
+//                                null,    // 璐熻矗浜�
+//                                null,    // 鍥剧墖
+//                                null,    // 绠�瑕佹弿杩�
+//                                null,    // 鏁伴噺
+//                                2,    // 绛夌骇
+//                                null,    // 鎺掑簭
+//                                1,    // 鐘舵��
+//                                now,    // 娣诲姞鏃堕棿
+//                                null,    // 娣诲姞浜哄憳
+//                                now,    // 淇敼鏃堕棿
+//                                null,    // 淇敼浜哄憳
+//                                null    // 澶囨敞
+//                        );
+//                        if (tagMapper.insert(priTag) == 0) {
+//                            throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+//                        }
+//                    }
+//                } else {
+//                    tagId = tagService.getTop().getId();
+//                }
+//                mat.sync(param);
+////            mat.setMatnr(param.getMatnr());
+////            mat.setMaktx(param.getMaktx());
+////            mat.setSpecs(param.getSpecs());
+////            mat.setModel(param.getModel());
+//
+//                mat.setTagId(1L);
+//                mat.setStatus(1);
+//                mat.setCreateTime(now);
+//                mat.setUpdateTime(now);
+//                if (!matService.insert(mat)) {
+//                    throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+//                } else {
+//                    log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr());
+//                }
+//            } else {
+//                mat.sync(param);
+//                if (!matService.update(mat, new EntityWrapper<Mat>().eq("matnr",matParam.getMatnr()))) {
+//                    throw new CoolException("鏇存柊宸插瓨鍦ㄥ晢鍝佷俊鎭け璐ワ紝璇疯仈绯荤鐞嗗憳");
+//                }
+//            }
+//        }
+//
+//    }
+
+        @Override
+        @Transactional
+        public void syncMat(List<MatSyncParam> paramList) {
+            if (Cools.isEmpty(paramList)) {
+                throw new CoolException("鍚屾鏁版嵁涓虹┖");
+            }
+
+            for (MatSyncParam param : paramList) {
+                if (Cools.isEmpty(param.getData()) || param.getData().isEmpty()) {
+                    throw new CoolException("鍟嗗搧鏁版嵁涓虹┖");
+                }
+
+                for (MatSyncParam.MatParam matParam : param.getData()) {
+                    if (Cools.isEmpty(matParam.getMatnr())) {
+                        throw new CoolException("鍟嗗搧缂栫爜涓嶈兘涓虹┖");
+                    }
+
+                    Date now = new Date();
+                    Mat mat = matService.selectByMatnr(matParam.getMatnr());
+                    if (mat == null) {
+                        mat = new Mat();
+
+                        // 鍒嗙被
+                        Long tagId;
+                        if (!Cools.isEmpty(matParam.getTagId()) && !Cools.isEmpty(matParam.getTagIdName())) {
+                            // 濡傛灉鎻愪緵浜� tagId 鍜� tagIdName锛屾煡璇㈡槸鍚﹀凡鏈夌浉鍚岀殑鍒嗙被
+                            Tag priTag = tagService.selectByName(matParam.getTagIdName(), 2);
+                            if (priTag == null) {
+                                // 濡傛灉鍒嗙被涓嶅瓨鍦紝鍒涘缓鏂扮殑鍒嗙被
+                                Tag top = tagService.getTop();
+                                NodeUtils nodeUtils = new NodeUtils();
+                                nodeUtils.executePath(top.getId());
+                                priTag = new Tag(
+                                        matParam.getTagId(),
+                                        matParam.getTagIdName(),
+                                        top.getId(),
+                                        top.getName(),
+                                        nodeUtils.path.toString(),
+                                        nodeUtils.pathName.toString(),
+                                        0,
+                                        null,
+                                        null,
+                                        null,
+                                        null,
+                                        2,
+                                        null,
+                                        1,
+                                        now,
+                                        null,
+                                        now,
+                                        null,
+                                        null
+                                );
+                                if (tagMapper.insert(priTag) == 0) {
+                                    throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+                                }
+                                tagId = priTag.getId();
+                            } else {
+                                // 濡傛灉鍒嗙被宸插瓨鍦紝浣跨敤鐜版湁鐨� tagId
+                                tagId = priTag.getId();
+                            }
+                        } else {
+                            // 濡傛灉娌℃湁鎻愪緵 tagId 鍜� tagIdName锛屽垯浣跨敤榛樿鐨勫垎绫�
+                            tagId = tagService.getTop().getId();
+                        }
+
+                        mat.sync(matParam);  //
+
+                        mat.setTagId(tagId);
+                        mat.setStatus(1);
+                        mat.setCreateTime(now);
+                        mat.setUpdateTime(now);
+                        if (!matService.insert(mat)) {
+                            throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+                        } else {
+                            log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr());
+                        }
+                    } else {
+                        Tag priTag = tagService.selectByName(matParam.getTagIdName(), 2);
+                        matParam.setTagId(priTag.getId());
+                        mat.sync(matParam);  // 鈿狅笍 鍚屼笂
+                        if (!matService.update(mat, new EntityWrapper<Mat>().eq("matnr", matParam.getMatnr()))) {
+                            throw new CoolException("鏇存柊宸插瓨鍦ㄥ晢鍝佷俊鎭け璐ワ紝璇疯仈绯荤鐞嗗憳");
+                        }
+                    }
+                }
+            }
+        }
+    @Override
+    @Transactional
+    public void check(List<MatSyncParam> paramList){
+        if (Cools.isEmpty(paramList)) {
+            throw new CoolException("涓婃姤鏁版嵁涓虹┖");
+        }
+
+        for (MatSyncParam param : paramList) {
+            if (Cools.isEmpty(param.getData()) || param.getData().isEmpty()) {
+                throw new CoolException("鐗╂枡鏁版嵁涓虹┖");
+            }
+
+            if (Cools.isEmpty(param.getOrderNo()) || param.getOrderNo().isEmpty()) {
+                throw new CoolException("鐩樼偣鍗曠紪鍙蜂负绌�");
+            }
+
+            for (MatSyncParam.MatParam matParam : param.getData()) {
+                if (Cools.isEmpty(matParam.getMatnr())) {
+                    throw new CoolException("鍟嗗搧缂栫爜涓虹┖");
+                }
+
+                Double LKAnfme = locDetlService.getAnfmeByMatnr(matParam.getMatnr(),matParam.getBatch(),matParam.getSpecs());
+                if (LKAnfme == null) {
+                    LKAnfme = 0.0;
+                }
+
+                // 璁$畻宸��
+                double diff = matParam.getAnfme() - LKAnfme;
+
+                if (diff != 0) {
+                    CheckDetl checkDetl = new CheckDetl();
+                    checkDetl.setOrderNo(param.getOrderNo());
+                    checkDetl.setAnfme(diff);  //杩欓噷璁板綍宸��
+                    checkDetl.setMatnr(matParam.getMatnr());
+                    checkDetl.setMaktx(matParam.getMaktx());
+                    checkDetl.setSpecs(matParam.getSpecs());
+                    checkDetl.setBatch(matParam.getBatch());
+                    checkDetl.setDetailId(matParam.getDetailId());
+                    checkDetl.setCreateTime(new Date());
+
+                    checkDetlService.insert(checkDetl);  // 鎻掑叆宸紓璁板綍
+                }
+            }
+        }
+    }
+
 }

--
Gitblit v1.9.1