From 69b319f74a13f506595b64b86b1bade1c815db37 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期六, 02 八月 2025 10:59:25 +0800
Subject: [PATCH] 修复任务档明细转库存明细没有箱号问题

---
 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java |   52 ++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 40 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
index 05ae409..0697692 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -73,8 +73,7 @@
     鍏ュ簱
      */
     @Transactional
-    @Synchronized
-    public StartupDto createWaitPainWrkMastStart(List<AgvBasDevp> agvBasDevpList, Long userId, boolean isConveyor) {
+    public synchronized StartupDto createWaitPainWrkMastStart(List<AgvBasDevp> agvBasDevpList, Long userId, boolean isConveyor) {
 
         Date now = new Date();
 
@@ -97,7 +96,7 @@
             wrkMast.setMk(isConveyor ? "Y" : "N");
             //鐢熸垚宸ヤ綔妗f槑缁�
             agvWaitPakinList.forEach(wp -> {
-                createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime());
+                createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime(),wp.getProddate(),wp.getDeadline());
             });
             //鏇存柊婧愮珯鐐逛俊鎭�
             updateAgvBasDevp(agvBasDevp,"R");
@@ -149,7 +148,9 @@
                             now,
                             userId,
                             locDto.getCsocode(),
-                            locDto.getIsoseq());
+                            locDto.getIsoseq(),
+                            locDto.getProddate(),
+                            locDto.getDeadline());
                 }else {
                     List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class);
                     orderDtoList.forEach(orderDto -> {
@@ -163,7 +164,9 @@
                                 now,
                                 userId,
                                 locDto.getCsocode(),
-                                locDto.getIsoseq());
+                                locDto.getIsoseq(),
+                                locDto.getProddate(),
+                                locDto.getDeadline());
                     });
                 }
 
@@ -246,7 +249,7 @@
 
         List<TaskDto> taskDtos = new ArrayList<>();
         param.getLocDetls().forEach(locDetl -> {
-            LocDto locDto = new LocDto(locDetl.getLocNo(),locDetl.getCount(),locDetl.getMatnr(),locDetl.getBatch(),locDetl.getThreeCode(),locDetl.getDeadTime(),locDetl.getSuppCode());
+            LocDto locDto = new LocDto(locDetl.getLocNo(),locDetl.getCount(),locDetl.getMatnr(),locDetl.getBatch(),locDetl.getThreeCode(),locDetl.getDeadTime(),locDetl.getSuppCode(),locDetl.getProddate(),locDetl.getDeadline());
             TaskDto taskDto = new TaskDto(locDetl.getLocNo(),station,locDto);
             if(TaskDto.has(taskDtos,taskDto)){
                 TaskDto.find(taskDtos,taskDto).getLocDtos().add(locDto);
@@ -278,7 +281,9 @@
                         now,
                         userId,
                         locDto.getCsocode(),
-                        locDto.getIsoseq());
+                        locDto.getIsoseq(),
+                        locDto.getProddate(),
+                        locDto.getDeadline());
             });
             updateAgvLocMast(agvLocMastService.selectById(wrkMast.getSourceLocNo()),"P");
             //鏇存柊鐩爣绔欑偣鐘舵��
@@ -308,7 +313,7 @@
         //鐢熸垚绉诲簱宸ヤ綔妗�
         AgvWrkMast wrkMast = createWrkMast(11, 21L, sourceLocNo, targetLocNo, sourceLocDetl.getSuppCode(), now, userId,false);
         //鐢熸垚宸ヤ綔鍏氭槑缁�
-        createWrkDetlReWrite(sourceLocDetl.getMatnr(),wrkMast.getWrkNo(),null,sourceLocDetl.getBatch(),sourceLocDetl.getAnfme(),sourceLocDetl.getZpallet(),now,userId,sourceLocDetl.getThreeCode(),sourceLocDetl.getDeadTime());
+        createWrkDetlReWrite(sourceLocDetl.getMatnr(),wrkMast.getWrkNo(),null,sourceLocDetl.getBatch(),sourceLocDetl.getAnfme(),sourceLocDetl.getZpallet(),now,userId,sourceLocDetl.getThreeCode(),sourceLocDetl.getDeadTime(),sourceLocDetl.getProddate(),sourceLocDetl.getDeadline());
         //淇敼鐩爣搴撲綅鐘舵��
         updateAgvLocMast(targetLocMast,"S");
         //淇敼鍘熷簱浣嶇姸鎬�
@@ -407,6 +412,7 @@
                         adjDetl.setBatch(locDetl.getBatch());
                         adjDetl.setOriQty(locDetl.getAnfme());
                         adjDetl.setAdjQty(adjust.getCount());
+                        adjDetl.setMemo(locDetl.getSuppCode());
                         adjDetl.setModiTime(now);
                         adjDetl.setModiUser(userId);
                         adjDetl.setAppeTime(now);
@@ -536,11 +542,13 @@
         }
         //鎷f枡鍏ュ簱 鐩樼偣鍏ュ簱涓嶅彲鍙栨秷
         if(wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57){
-            throw new CoolException("褰撳墠浠诲姟涓嶅彲鍙栨秷");
+            if (userId != 9527) {
+                throw new CoolException("褰撳墠浠诲姟涓嶅彲鍙栨秷");
+            }
         }
 
         //鍏ュ簱鍙栨秷
-        if(wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10){
+        if(wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10 || wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57){
             //婧愮珯鐐�
             String devNo = wrkMast.getSourceLocNo();
             //鐩爣搴撲綅
@@ -597,6 +605,25 @@
 
     }
 
+    @Override
+    public void changeToOutWrkMast(String workNo, Long userId) {
+        AgvWrkMast agvWrkMast = agvWrkMastService.selectById(workNo);
+        if (Cools.isEmpty(agvWrkMast)){
+            throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
+        }
+        if (agvWrkMast.getIoType() == 1 || agvWrkMast.getIoType() == 53){
+            throw new CoolException(workNo+"鍏ュ簱浠诲姟鏃犳硶杞嚭搴�");
+        }
+
+        agvWrkMast.setIoType(101);
+        agvWrkMast.setWrkSts(206L);
+        agvWrkMast.setModiTime(new Date());
+        agvWrkMast.setModiUser(userId);
+
+        agvWrkMastService.updateById(agvWrkMast);
+
+    }
+
     /*
     鏇存柊鐩爣搴撲綅淇℃伅
      */
@@ -618,7 +645,7 @@
     /*
     鐢熸垚宸ヤ綔妗f槑缁�
      */
-    private void createWrkDetlReWrite(String matnr, int wrkNo, String orderNo,String batch, double anfme, String zpallet, Date now, Long userId, String csocode, String isoseq){
+    private void createWrkDetlReWrite(String matnr, int wrkNo, String orderNo,String batch, double anfme, String zpallet, Date now, Long userId, String csocode, String isoseq,Date proddate,Date deadline){
         Mat mat = matService.selectByMatnr(matnr);
         if (Cools.isEmpty(mat)) {
             throw new CoolException(matnr + "鍟嗗搧缁存姢澶辫触");
@@ -635,7 +662,8 @@
         wrkDetl.setAppeTime(now);
         wrkDetl.setModiUser(userId);
         wrkDetl.setModiTime(now);
-
+        wrkDetl.setProddate(proddate);
+        wrkDetl.setDeadline(deadline);
         wrkDetl.setThreeCode(csocode);
         wrkDetl.setDeadTime(isoseq);
         if (!agvWrkDetlService.insert(wrkDetl)) {

--
Gitblit v1.9.1