From d17a7346759fbb432cea1c83de63d29c6a3d330d Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期五, 24 五月 2024 10:14:06 +0800
Subject: [PATCH] # 自动回流取消任务更改源库位为D

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   78 ++++++++++++++++++++++++++------------
 1 files changed, 53 insertions(+), 25 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 0e4e957..81c4791 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -114,13 +114,13 @@
         wrkMast.setSourceStaNo(dto.getSourceStaNo());
         wrkMast.setStaNo(dto.getStaNo());
         wrkMast.setLocNo(dto.getLocNo());
-        wrkMast.setBarcode(param.getBarcode()); // 鎵樼洏鐮�
+        wrkMast.setBarcode(param.getBarcode()); // 璐ф灦鐮�
         wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
         wrkMast.setPicking("N"); // 鎷f枡
         wrkMast.setExitMk("N"); // 閫�鍑�
         wrkMast.setEmptyMk("N"); // 绌烘澘
         wrkMast.setLinkMis("N");
-        wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
+        wrkMast.setCtnType(sourceStaNo.getCtnType()); // 璐ф灦绫诲瀷
         wrkMast.setAppeUser(userId);
         wrkMast.setAppeTime(now);
         wrkMast.setModiUser(userId);
@@ -527,26 +527,53 @@
             }
             Mat mat = matService.selectByMatnr(locDto.getMatnr());
             assert mat != null;
-            WrkDetl wrkDetl = new WrkDetl();
-            wrkDetl.sync(mat);
-            wrkDetl.setZpallet(wrkMast.getBarcode());
-            wrkDetl.setIoTime(now);
-            wrkDetl.setWrkNo(workNo);
-            wrkDetl.setBatch(locDto.getBatch());
-            wrkDetl.setOrderNo(locDto.getOrderNo());
-            wrkDetl.setAnfme(locDto.getAnfme()); // 鏁伴噺
-            wrkDetl.setAppeTime(now);
-            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槑缁嗗け璐�");
+
+            if (!BaseController.isJSON(locDto.getOrderNo())) {
+                WrkDetl wrkDetl = new WrkDetl();
+                wrkDetl.sync(mat);
+                wrkDetl.setZpallet(wrkMast.getBarcode());
+                wrkDetl.setIoTime(now);
+                wrkDetl.setWrkNo(workNo);
+                wrkDetl.setBatch(locDto.getBatch());
+                wrkDetl.setOrderNo(locDto.getOrderNo());
+                wrkDetl.setAnfme(locDto.getAnfme()); // 鏁伴噺
+                wrkDetl.setAppeTime(now);
+                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);
+            }else {
+                List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class);
+                orderDtoList.forEach(orderDto -> {
+                    WrkDetl wrkDetl = new WrkDetl();
+                    wrkDetl.sync(mat);
+                    wrkDetl.setZpallet(wrkMast.getBarcode());
+                    wrkDetl.setIoTime(now);
+                    wrkDetl.setWrkNo(workNo);
+                    wrkDetl.setBatch(locDto.getBatch());
+                    wrkDetl.setOrderNo(orderDto.getOrderNo());
+                    wrkDetl.setAnfme(orderDto.getAnfme()); // 鏁伴噺
+                    wrkDetl.setAppeTime(now);
+                    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);
+                });
             }
-            //琛ヨ揣鍗曞垯鐢熸垚AGV鍏ュ簱閫氱煡妗�
-            generateAgvWaitpakin(wrkDetl);
 
             // 淇敼璁㈠崟鏄庣粏
             if (!BaseController.isJSON(locDto.getOrderNo())) {
@@ -573,8 +600,9 @@
                         orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), null,locDto.getCsocode(),locDto.getIsoseq());
                     }
 
-                    if(locAnfme > orderDetl.getAnfme()){
-                        orderAnfme = orderDetl.getAnfme();
+                    orderAnfme = orderDetl.getAnfme() - orderDetl.getQty();
+
+                    if(locAnfme > orderAnfme){
                         locAnfme -= orderAnfme;
                     }else {
                         orderAnfme = locAnfme;
@@ -628,7 +656,7 @@
         wrkMast.setExitMk("N"); // 閫�鍑�
         wrkMast.setEmptyMk("Y"); // 绌烘澘
         wrkMast.setLinkMis("N");
-        wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
+        wrkMast.setCtnType(sourceStaNo.getCtnType()); // 璐ф灦绫诲瀷
         // 鎿嶄綔浜哄憳鏁版嵁
         wrkMast.setAppeUser(userId);
         wrkMast.setAppeTime(new Date());
@@ -815,7 +843,7 @@
         wrkMast.setPicking("N"); // 鎷f枡
         wrkMast.setExitMk("N"); // 閫�鍑�
         wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D")?"Y":"N"); // 绌烘澘
-        wrkMast.setBarcode(sourceLoc.getBarcode()); // 鎵樼洏鐮�
+        wrkMast.setBarcode(sourceLoc.getBarcode()); // 璐ф灦鐮�
         wrkMast.setLinkMis("N");
         wrkMast.setAppeUser(userId);
         wrkMast.setAppeTime(now);

--
Gitblit v1.9.1