From 9633033bedabab61ba8bec71b564de83e1161a15 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期五, 27 九月 2024 13:19:14 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |  204 +++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 182 insertions(+), 22 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 19ec133..57ad97c 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;
@@ -23,6 +20,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 
@@ -51,6 +49,8 @@
     private TagService tagService;
     @Autowired
     private TagMapper tagMapper;
+    @Autowired
+    private WrkMastService wrkMastService;
 
     @Override
     @Transactional
@@ -65,30 +65,30 @@
         order = new Order(
                 String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
                 param.getOrderNo(),    // 璁㈠崟缂栧彿
-                DateUtils.convert(now),    // 鍗曟嵁鏃ユ湡
+                param.getInboundDate(),    // 鍗曟嵁鏃ユ湡
                 docType.getDocId(),    // 鍗曟嵁绫诲瀷
                 null,    // 椤圭洰缂栧彿
-                null,    //
+                param.getWarehouse(),    //浠撳簱 itemName
                 null,    // 璋冩嫧椤圭洰缂栧彿
-                null,    // 鍒濆绁ㄦ嵁鍙�
-                null,    // 绁ㄦ嵁鍙�
+                param.getOriginWarehouse(),    // 鍒濆绁ㄦ嵁鍙� 鏉ユ簮浠撳簱
+                param.getDepartment(),    // 绁ㄦ嵁鍙�
                 null,    // 瀹㈡埛缂栧彿
-                null,    // 瀹㈡埛
+                param.getSuppliers(),    // 渚涘簲鍟� cstmrName
                 null,    // 鑱旂郴鏂瑰紡
-                null,    // 鎿嶄綔浜哄憳
+                param.getUser(),    // 鍒跺崟浜�
                 null,    // 鍚堣閲戦
                 null,    // 浼樻儬鐜�
                 null,    // 浼樻儬閲戦
                 null,    // 閿�鍞垨閲囪喘璐圭敤鍚堣
                 null,    // 瀹炰粯閲戦
                 null,    // 浠樻绫诲瀷
-                null,    // 涓氬姟鍛�
+                param.getSalesman(),    // 涓氬姟鍛�
                 null,    // 缁撶畻澶╂暟
                 null,    // 閭垂鏀粯绫诲瀷
                 null,    // 閭垂
                 null,    // 浠樻鏃堕棿
                 null,    // 鍙戣揣鏃堕棿
-                null,    // 鐗╂祦鍚嶇О
+                param.getBusinessType(),    // 鐗╂祦鍚嶇О
                 null,    // 鐗╂祦鍗曞彿
                 1L,    // 璁㈠崟鐘舵��
                 1,    // 鐘舵��
@@ -131,6 +131,9 @@
             orderDetl.setUpdateTime(now);
             orderDetl.setStatus(1);
             orderDetl.setQty(0.0D);
+            orderDetl.setThreeCode(detlDto.getOrderNo());
+            orderDetl.setSuppCode(detlDto.getFromOrderNo());
+            orderDetl.setMemo(detlDto.getMemo());
             if (!orderDetlService.insert(orderDetl)) {
                 throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
             }
@@ -184,10 +187,15 @@
     }
 
     @Override
+    @Transactional
     public void pakoutOrderCreate(OpenOrderPakoutParam param) {
         Order order = orderService.selectByNo(param.getOrderNo());
+        // 濡傛灉鍗曟嵁涓嶅瓨鍦ㄥ垯娣诲姞锛涘鏋滃崟鎹瓨鍦紝浣滀笟涓棤娉曚慨鏀癸紝鍙嶄箣鍒欎慨鏀瑰崟鎹�
         if (!Cools.isEmpty(order)) {
-            throw new CoolException(param.getOrderNo() + "鍗曟嵁宸插瓨鍦紝璇峰嬁閲嶅鎻愪氦");
+            if (order.getSettle() > 1L) {
+                throw new CoolException(param.getOrderNo() + "姝e湪鍑哄簱锛屾棤娉曚慨鏀瑰崟鎹�");
+            }
+            orderService.remove(order.getId());
         }
         DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.FALSE);
         Date now = new Date();
@@ -195,30 +203,30 @@
         order = new Order(
                 String.valueOf(snowflakeIdWorker.nextId()),    // 缂栧彿[闈炵┖]
                 param.getOrderNo(),    // 璁㈠崟缂栧彿
-                DateUtils.convert(now),    // 鍗曟嵁鏃ユ湡
+                param.getInboundDate(),    // 鍗曟嵁鏃ユ湡
                 docType.getDocId(),    // 鍗曟嵁绫诲瀷
                 null,    // 椤圭洰缂栧彿
-                null,    //
+                param.getWarehouse(),    //浠撳簱 itemName
                 null,    // 璋冩嫧椤圭洰缂栧彿
-                null,    // 鍒濆绁ㄦ嵁鍙�
-                null,    // 绁ㄦ嵁鍙�
+                param.getOriginWarehouse(),    // 鍒濆绁ㄦ嵁鍙� 鏉ユ簮浠撳簱
+                param.getDepartment(),    // 绁ㄦ嵁鍙�
                 null,    // 瀹㈡埛缂栧彿
-                null,    // 瀹㈡埛
+                param.getSuppliers(),    // 渚涘簲鍟� cstmrName
                 null,    // 鑱旂郴鏂瑰紡
-                null,    // 鎿嶄綔浜哄憳
+                param.getUser(),    // 鍒跺崟浜�
                 null,    // 鍚堣閲戦
                 null,    // 浼樻儬鐜�
                 null,    // 浼樻儬閲戦
                 null,    // 閿�鍞垨閲囪喘璐圭敤鍚堣
                 null,    // 瀹炰粯閲戦
                 null,    // 浠樻绫诲瀷
-                null,    // 涓氬姟鍛�
+                param.getSalesman(),    // 涓氬姟鍛�
                 null,    // 缁撶畻澶╂暟
                 null,    // 閭垂鏀粯绫诲瀷
                 null,    // 閭垂
                 null,    // 浠樻鏃堕棿
                 null,    // 鍙戣揣鏃堕棿
-                null,    // 鐗╂祦鍚嶇О
+                param.getBusinessType(),    // 鐗╂祦鍚嶇О
                 null,    // 鐗╂祦鍗曞彿
                 1L,    // 璁㈠崟鐘舵��
                 1,    // 鐘舵��
@@ -261,6 +269,9 @@
             orderDetl.setUpdateTime(now);
             orderDetl.setStatus(1);
             orderDetl.setQty(0.0D);
+            orderDetl.setThreeCode(detlDto.getOrderNo());
+            orderDetl.setSuppCode(detlDto.getFromOrderNo());
+            orderDetl.setMemo(detlDto.getMemo());
             if (!orderDetlService.insert(orderDetl)) {
                 throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�");
             }
@@ -333,7 +344,7 @@
         pack = new Pack(
                 param.getBarcode(),    // 鏉$爜[闈炵┖]
                 analyse.getMatnr(),    // 鍟嗗搧缂栧彿
-                analyse.getBarcode(),    // 鎵瑰彿
+                analyse.getBarcode(),    // 搴忓垪鐮�
                 1L,    // 璁㈠崟鐘舵��
                 1,    // 鐘舵��
                 now,    // 娣诲姞鏃堕棿
@@ -433,4 +444,153 @@
         }
     }
 
+    @Override
+    @Transactional
+    public void syncMat(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.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();
+                }
+                mat.sync(matParam);
+//            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());
+                }
+            } else {
+                mat.sync(matParam);
+                if (!matService.update(mat, new EntityWrapper<Mat>().eq("matnr",matParam.getMatnr()))) {
+                    throw new CoolException("鏇存柊宸插瓨鍦ㄥ晢鍝佷俊鎭け璐ワ紝璇疯仈绯荤鐞嗗憳");
+                }
+            }
+        }
+
+    }
+
+
+    @Override
+    public List<LocDetlByTimeDTO> selectTimeLocDetl(TimeSelectParam param) {
+        ArrayList<LocDetlByTimeDTO> locDetlByTimeDTOS = new ArrayList<>();
+        EntityWrapper<LocDetl> locDetlEntityWrapper = new EntityWrapper<>();
+        locDetlEntityWrapper.ge("create_time",param.getStartTime());
+        locDetlEntityWrapper.le("create_time",param.getEndTime());
+        List<LocDetl> locDetls = locDetlService.selectList(locDetlEntityWrapper);
+        if (!Cools.isEmpty(locDetls)) {
+            for (LocDetl locDetl : locDetls) {
+                LocDetlByTimeDTO locDetlByTimeDTO = new LocDetlByTimeDTO();
+                if (!Cools.isEmpty(locDetl.getOrderNo())){
+                    Order order = orderService.selectByNo(locDetl.getOrderNo());
+                    if (!Cools.isEmpty(order)) {
+                        locDetlByTimeDTO.setDate(order.getOrderTime());
+                        locDetlByTimeDTO.setWarehouse(order.getItemName());
+                        locDetlByTimeDTO.setOrderType(order.getDocType().toString());
+                    }
+                }
+
+                locDetlByTimeDTO.setMatnr(locDetl.getMatnr());
+                locDetlByTimeDTO.setLocNo(locDetl.getLocNo());
+                locDetlByTimeDTO.setBatch(locDetl.getBatch());
+                locDetlByTimeDTO.setAnfme(locDetl.getAnfme());
+                locDetlByTimeDTO.setOrderNo(locDetl.getOrderNo());
+                locDetlByTimeDTOS.add(locDetlByTimeDTO);
+            }
+        }
+        return locDetlByTimeDTOS;
+    }
+
+    @Override
+    @Transactional
+    public boolean agvHaiKang(String wrkNo) {
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", Long.parseLong(wrkNo)));
+        wrkMast.setWrkSts(wrkMast.getWrkStsComplete());
+        wrkMastService.updateById(wrkMast);
+        return true;
+    }
+
 }

--
Gitblit v1.9.1