From 08fc5462a5b82cf6cee38fc564d79c7b5f98160d Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期五, 18 四月 2025 16:35:42 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |  304 ++++++++++++++++++++++++++++++++++----------------
 1 files changed, 204 insertions(+), 100 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 5d8970a..4c0590a 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -18,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;
@@ -48,6 +48,8 @@
     private TagService tagService;
     @Autowired
     private TagMapper tagMapper;
+    @Autowired
+    private CheckDetlService checkDetlService;
 
     @Override
     @Transactional
@@ -56,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(
@@ -100,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)) {
@@ -191,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(
@@ -235,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)) {
@@ -435,113 +437,215 @@
         }
     }
 
+//    @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 syncMat(MatSyncParam param) {
-        if (Cools.isEmpty(param.getMatDetails()) || param.getMatDetails().size() <=0 ) {
-            throw new CoolException("鍟嗗搧鏁版嵁涓虹┖");
+    public void check(List<MatSyncParam> paramList){
+        if (Cools.isEmpty(paramList)) {
+            throw new CoolException("涓婃姤鏁版嵁涓虹┖");
         }
 
-        for(MatSyncParam.MatParam matParam : param.getMatDetails()){
-            if(Cools.isEmpty(matParam.getMatnr())){
-                throw new CoolException("鍟嗗搧缂栫爜涓嶈兘涓虹┖");
+        for (MatSyncParam param : paramList) {
+            if (Cools.isEmpty(param.getData()) || param.getData().isEmpty()) {
+                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.getGroupCode()) && !Cools.isEmpty(matParam.getGroupName())) {
-                    Tag priTag = tagService.selectByName(matParam.getGroupCode(), 2);
-                    if (priTag == null) {
-                        Tag top = tagService.getTop();
-                        NodeUtils nodeUtils = new NodeUtils();
-                        nodeUtils.executePath(top.getId());
-                        priTag = new Tag(
-                                null,    // 缂栧彿
-                                matParam.getGroupCode(),    // 鍚嶇О
-                                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("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
-                        }
-                    }
-                    // 浜岀骇鍒嗙被
-                    Tag secTag = tagService.selectByName(matParam.getGroupName(), 3);
-                    if (secTag == null) {
-                        NodeUtils nodeUtils = new NodeUtils();
-                        nodeUtils.executePath(priTag.getId());
-                        secTag = new Tag(
-                                null,    // 缂栧彿
-                                matParam.getGroupName(),    // 鍚嶇О
-                                priTag.getId(),    // 鐖剁骇
-                                priTag.getName(),    // 鐖剁骇鍚嶇О
-                                nodeUtils.path.toString(),    // 鍏宠仈璺緞
-                                nodeUtils.pathName.toString(),    // 鍏宠仈璺緞鍚�
-                                0,    // 绫诲瀷
-                                null,    // 璐熻矗浜�
-                                null,    // 鍥剧墖
-                                null,    // 绠�瑕佹弿杩�
-                                null,    // 鏁伴噺
-                                3,    // 绛夌骇
-                                null,    // 鎺掑簭
-                                1,    // 鐘舵��
-                                now,    // 娣诲姞鏃堕棿
-                                null,    // 娣诲姞浜哄憳
-                                now,    // 淇敼鏃堕棿
-                                null,    // 淇敼浜哄憳
-                                null    // 澶囨敞
-                        );
-                        if (tagMapper.insert(secTag) == 0) {
-                            throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
-                        }
-                    }
-                    tagId = secTag.getId();
-                } else {
-                    tagId = tagService.getTop().getId();
+            for (MatSyncParam.MatParam matParam : param.getData()) {
+                if (Cools.isEmpty(matParam.getMatnr())) {
+                    throw new CoolException("鍟嗗搧缂栫爜涓虹┖");
                 }
-                mat.sync(param);
-//            mat.setMatnr(param.getMatnr());
-//            mat.setMaktx(param.getMaktx());
-//            mat.setSpecs(param.getSpecs());
-//            mat.setModel(param.getModel());
 
-                mat.setTagId(tagId);
-                mat.setStatus(1);
-                mat.setCreateTime(now);
-                mat.setUpdateTime(now);
-                if (!matService.insert(mat)) {
-                    throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
-                } else {
-                    log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr());
+                Double LKAnfme = locDetlService.getAnfmeByMatnr(matParam.getMatnr());
+                if (LKAnfme == null) {
+                    LKAnfme = 0.0;
                 }
-            } else {
-                mat.sync(param);
-                if (!matService.update(mat, new EntityWrapper<Mat>().eq("matnr",matParam.getMatnr()))) {
-                    throw new CoolException("鏇存柊宸插瓨鍦ㄥ晢鍝佷俊鎭け璐ワ紝璇疯仈绯荤鐞嗗憳");
+
+                // 璁$畻宸��
+                double diff = matParam.getAnfme() - LKAnfme;
+
+                if (diff != 0) {
+                    CheckDetl checkDetl = new CheckDetl();
+                    checkDetl.setAnfme(diff);  //杩欓噷璁板綍宸��
+                    checkDetl.setMatnr(matParam.getMatnr());
+                    checkDetl.setMaktx(matParam.getMaktx());
+                    checkDetl.setSpecs(matParam.getSpecs());
+                    checkDetl.setCreateTime(new Date());
+
+                    checkDetlService.insert(checkDetl);  // 鎻掑叆宸紓璁板綍
                 }
             }
         }
-
     }
 
+
+
+
+
+
+
 }

--
Gitblit v1.9.1