From a6f97ff678665c497645911077c65395c6c01a6e Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期四, 26 十月 2023 16:28:55 +0800
Subject: [PATCH] 库存调整单据修改

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   95 +++++++++++++++++++++++++++++++++++++----------
 1 files changed, 74 insertions(+), 21 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index b29f993..4369907 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -23,6 +23,7 @@
 import com.zy.common.web.BaseController;
 import com.zy.common.web.WcsController;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -77,6 +78,10 @@
     private RowLastnoService rowLastnoService;
     @Autowired
     private SlaveProperties slaveProperties;
+    @Autowired
+    private DocTypeService docTypeService;
+    @Autowired
+    private AgvWaitPakinService agvWaitPakinService;
 
     @Override
     @Transactional
@@ -124,8 +129,7 @@
         // 鐢熸垚宸ヤ綔妗f槑缁�
         List<DetlDto> detlDtos = new ArrayList<>();
         param.getList().forEach(elem -> {
-            DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(), elem.getCsocode(), elem.getIsoseq());
-            detlDto.setContainerCode(elem.getContainerCode());
+            DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(), elem.getCsocode(), elem.getIsoseq(),elem.getContainerCode());
             if (DetlDto.has(detlDtos, detlDto)) {
                 DetlDto detlDto1 = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(),detlDto.getCsocode(),detlDto.getIsoseq(),detlDto.getContainerCode());
                 assert detlDto1 != null;
@@ -191,13 +195,13 @@
                 }
             }
 
-            List<String> groupInnerLoc = Utils.getGroupInnerLoc(locNo);
-            if (!Cools.isEmpty(groupInnerLoc)) {
-                for (String insideLoc : groupInnerLoc) {
-                    if (locNos.contains(insideLoc)){
+            List<String> groupOuterLoc = Utils.getGroupOuterLoc(locNo);
+            if (!Cools.isEmpty(groupOuterLoc)) {
+                for (String outerLoc : groupOuterLoc) {
+                    if (locNos.contains(outerLoc)){
                         continue;
                     }
-                    LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", insideLoc));
+                    LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", outerLoc));
                     if (locMast != null) {
                         if (!locMast.getLocSts().equals("O") && !locMast.getLocSts().equals("R")){
                             sign=true;
@@ -217,8 +221,8 @@
         List<LocDetlDto> locDetlDtos = new ArrayList<>();
         for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
             if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
-                //LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch());
-               // if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
+                LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch(), paramLocDetl.getContainerCode());
+                if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
             }
         }
         if (!locDetlDtos.isEmpty()) {
@@ -304,6 +308,21 @@
             StaDesc staDesc = staDescService.queryCrnStn(ioType, outCrnNo, staNo.getDevNo());
             // 鐢熸垚宸ヤ綔鍙�
             int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
+
+            Integer stnNo = staDesc.getStnNo();//鐩爣绔�
+            Integer sourceStaNo = staDesc.getCrnStn();//婧愮珯
+            if (stnNo == 325 || stnNo == 331 || stnNo == 333 || stnNo == 339) {
+                stnNo = staDesc.getCrnStn();
+                sourceStaNo = staDesc.getStnNo();
+            }
+
+            int lev = Utils.getLev(dto.getLocNo());
+            if (lev == 1 || lev == 2) {
+                if (!(stnNo == 100 || stnNo == 103 || stnNo == 105)) {
+                    throw new CoolException("1銆�2灞傝揣鐗╀粎鍏佽鍦ㄤ竴妤艰繘琛屽嚭搴�");
+                }
+            }
+
             // 鐢熸垚宸ヤ綔妗�
             WrkMast wrkMast = new WrkMast();
             wrkMast.setWrkNo(workNo);
@@ -314,8 +333,8 @@
             wrkMast.setIoPri(ioPri); // 浼樺厛绾э細13
             wrkMast.setOutMost(outMost?1:0);;
             wrkMast.setCrnNo(outMost?outCrnNo:locMast.getCrnNo());
-            wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
-            wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
+            wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
+            wrkMast.setStaNo(stnNo); // 鐩爣绔�
             wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣�
             wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
             wrkMast.setPicking("N"); // 鎷f枡
@@ -382,6 +401,21 @@
         StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, outCrnNo, staNo.getDevNo());
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
+
+        Integer stnNo = staDesc.getStnNo();//鐩爣绔�
+        Integer sourceStaNo = staDesc.getCrnStn();//婧愮珯
+        if (stnNo == 325 || stnNo == 331 || stnNo == 333 || stnNo == 339) {
+            stnNo = staDesc.getCrnStn();
+            sourceStaNo = staDesc.getStnNo();
+        }
+
+        int lev = Utils.getLev(taskDto.getLocNo());
+        if (lev == 1 || lev == 2) {
+            if (!(stnNo == 100 || stnNo == 103 || stnNo == 105)) {
+                throw new CoolException("1銆�2灞傝揣鐗╀粎鍏佽鍦ㄤ竴妤艰繘琛屽嚭搴�");
+            }
+        }
+
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
         wrkMast.setWrkNo(workNo);
@@ -392,8 +426,8 @@
         wrkMast.setIoPri(ioPri); // 浼樺厛绾э細13
         wrkMast.setOutMost(outMost?1:0);;
         wrkMast.setCrnNo(outMost?outCrnNo:locMast.getCrnNo());
-        wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
-        wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
+        wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
+        wrkMast.setStaNo(stnNo); // 鐩爣绔�
         wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣�
         wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
         wrkMast.setPicking("N"); // 鎷f枡
@@ -429,9 +463,15 @@
             wrkDetl.setAppeUser(userId);
             wrkDetl.setModiTime(now);
             wrkDetl.setModiUser(userId);
+            wrkDetl.setSuppCode(locDto.getContainerCode());
+            wrkDetl.setThreeCode(locDto.getCsocode());
+            wrkDetl.setDeadTime(locDto.getIsoseq());
             if (!wrkDetlService.insert(wrkDetl)) {
                 throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
             }
+            //琛ヨ揣鍗曞垯鐢熸垚AGV鍏ュ簱閫氱煡妗�
+            generateAgvWaitpakin(wrkDetl);
+
             // 淇敼璁㈠崟鏄庣粏
             if (!BaseController.isJSON(locDto.getOrderNo())) {
                 OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
@@ -755,6 +795,13 @@
         if (Cools.isEmpty(wrkMast)){
             throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
         }
+
+        if (wrkMast.getIoType() == 200) {
+            //灏忚溅绉诲簱浠诲姟锛岀洿鎺ュ垹闄ゅ伐浣滄。
+            wrkMastService.deleteById(wrkMast);
+            return;
+        }
+
         if (wrkMast.getWrkSts() == 9 || wrkMast.getWrkSts() == 29) {
             throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
         }
@@ -821,9 +868,7 @@
                         adjDetl.setModiUser(userId);
                         adjDetl.setAppeTime(now);
                         adjDetl.setAppeUser(userId);
-
-                        UUID uuid = UUID.randomUUID();
-                        adjDetl.setOrderNo(uuid.toString());
+                        adjDetl.setOrderNo(Utils.generateAdjustOrderNo());
                         adjDetl.setCsocode(locDetl.getThreeCode());
                         adjDetl.setIsoseq(locDetl.getDeadTime());
 
@@ -852,7 +897,7 @@
             adjDetl.setModiUser(userId);
             adjDetl.setAppeTime(now);
             adjDetl.setAppeUser(userId);
-
+            adjDetl.setOrderNo(Utils.generateAdjustOrderNo());
             adjDetlService.save(adjDetl, userId);
         }
 
@@ -885,11 +930,9 @@
             adjDetl.setModiUser(userId);
             adjDetl.setAppeTime(now);
             adjDetl.setAppeUser(userId);
-
-            UUID uuid = UUID.randomUUID();
-            adjDetl.setOrderNo(uuid.toString());
             adjDetl.setCsocode(locDetl.getThreeCode());
             adjDetl.setIsoseq(locDetl.getDeadTime());
+            adjDetl.setOrderNo(Utils.generateAdjustOrderNo());
 
             adjDetlService.save(adjDetl, userId);
         }
@@ -921,7 +964,7 @@
             throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
         }
 
-        if (wrkMast.getWrkSts() == 200) {
+        if (wrkMast.getIoType() == 200) {
             //灏忚溅绉诲簱浠诲姟锛岀洿鎺ュ垹闄ゅ伐浣滄。
             wrkMastService.deleteById(wrkMast);
             return;
@@ -1111,4 +1154,14 @@
         return "";
     }
 
+    private void generateAgvWaitpakin(WrkDetl wrkDetl){
+        Order order = orderService.selectByNo(wrkDetl.getOrderNo());
+        DocType docType = docTypeService.selectById(order.getDocType());
+        if("浜哄伐琛ヨ揣鍗�".equals(docType.getDocName())){
+            AgvWaitPakin agvWaitPakin = new AgvWaitPakin();
+            BeanUtils.copyProperties(wrkDetl,agvWaitPakin);
+            agvWaitPakinService.insert(agvWaitPakin);
+        }
+    }
+
 }

--
Gitblit v1.9.1