From 3f30983db5b3cd2b25cb215579501a2ef134883c Mon Sep 17 00:00:00 2001
From: zyx <zyx123456>
Date: 星期五, 04 八月 2023 17:00:11 +0800
Subject: [PATCH] agv 订单出库功能完善

---
 src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java |   57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 54 insertions(+), 3 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 8560782..f5ea49e 100644
--- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -105,13 +105,14 @@
         agvTaskDtos.forEach(taskDto -> {
 
             AgvLocMast agvLocMast = agvLockMastService.selectById(taskDto.getLocNo());
+            AgvLocDetl agvLocDetl = agvLocDetlService.selectOne(new EntityWrapper<AgvLocDetl>().eq("loc_no", taskDto.getLocNo()));
 
             //宸ヤ綔妗f墍闇�鍙傛暟
             double anfme = taskDto.getLocDtos().get(0).getAnfme();
             long wrkSts = 21L;
             String sourceLocNo = taskDto.getLocNo();
             String targetLocNo = taskDto.getAgvStaNo();
-            String barcode = agvLocMast.getBarcode();
+            String barcode = agvLocDetl.getZpallet();
             //鏄庣粏妗f墍闇�鍙傛暟
             String mantr = taskDto.getLocDtos().get(0).getMatnr();
             String orderNo = taskDto.getLocDtos().get(0).getOrderNo();
@@ -126,9 +127,45 @@
             //淇敼璁㈠崟淇℃伅
             modifyOrderDetl(taskDto.getLocDtos().get(0), userId);
             //鏇存柊婧愮珯鐐逛俊鎭�
-            updateAgvLocMast(agvLockMastService.selectById(sourceLocNo),"R");
+            String locSts = ioType == 101 ? "R" : "P";
+            updateAgvLocMast(agvLockMastService.selectById(sourceLocNo),locSts);
             //鏇存柊鐩爣绔欑偣鐘舵��
+            //locSts = ioType == 101 ? "S" : "Q";
             updateAgvBasDevp(agvBasDevpService.selectById(targetLocNo),"S");
+
+        });
+    }
+
+    //鎷f枡鍏ュ簱
+    @Transactional
+    public void pickIn(List<AgvWrkMast> agvWrkMastList){
+        Date now = new Date();
+        agvWrkMastList.forEach(agvWrkMast -> {
+            //淇敼宸ヤ綔鍏�
+            agvWrkMast.setWrkSts(201L);
+            agvWrkMast.setIoType(53);
+            String locNo = agvWrkMast.getLocNo();
+            agvWrkMast.setLocNo(agvWrkMast.getSourceLocNo());
+            agvWrkMast.setSourceLocNo(locNo);
+            agvWrkMast.setIoTime(now);
+            agvWrkMastService.updateById(agvWrkMast);
+
+            AgvWrkDetl agvWrkDetl = agvWrkDetlService.selectOne(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
+            AgvLocMast agvLocMast = agvLockMastService.selectById(agvWrkMast.getLocNo());
+            AgvLocDetl agvLocDetl = agvLocDetlService.selectOne(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvLocMast.getLocNo()));
+            AgvBasDevp agvBasDevp = agvBasDevpService.selectById(agvWrkMast.getSourceLocNo());
+            //淇敼宸ヤ綔鍏氭槑缁�
+            agvWrkDetl.setAnfme(agvLocDetl.getAnfme() - agvWrkDetl.getAnfme());
+            agvWrkDetlService.update(agvWrkDetl,new EntityWrapper<AgvWrkDetl>().eq("wrk_no",agvWrkDetl.getWrkNo()));
+            //淇敼搴撳瓨淇℃伅
+            agvLocDetl.setAnfme(agvWrkDetl.getAnfme());
+            agvLocDetlService.update(agvLocDetl,new EntityWrapper<AgvLocDetl>().eq("loc_no",agvLocDetl.getLocNo()));
+            //淇敼搴撲綅淇℃伅
+            agvLocMast.setLocSts("Q");
+            agvLockMastService.selectById(agvLocMast);
+            //淇敼绔欑偣淇℃伅
+            agvBasDevp.setLocSts("R");
+            agvBasDevpService.updateById(agvBasDevp);
 
         });
     }
@@ -309,12 +346,26 @@
         }else {
             //鍚堝苟鍑哄簱
             List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class);
+
+            //瀹為檯鍑哄簱鏁伴噺
+            Double locAnfme = locDto.getAnfme();
+            //璁㈠崟瀹為檯鍑哄簱鏁伴噺
+            Double orderAnfme;
+
             for (OrderDto orderDto : orderDtoList) {
                 OrderDetl orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
                 if (orderDetl == null) {
                     orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), null);
                 }
-                if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDto.getAnfme())) {
+
+                if(locAnfme > orderDetl.getAnfme()){
+                    orderAnfme = orderDetl.getAnfme();
+                    locAnfme -= orderAnfme;
+                }else {
+                    orderAnfme = locAnfme;
+                }
+
+                if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderAnfme)) {
                     throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
                 }
                 orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);

--
Gitblit v1.9.1