From 3c52f39678034ce21c1158a01b4885e3afde4443 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期六, 04 一月 2025 17:08:00 +0800
Subject: [PATCH] #平库入库功能

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java |   59 +++++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 39 insertions(+), 20 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java
index e71501d..5a132a0 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java
@@ -108,6 +108,11 @@
                     throw new CoolException("鏄庣粏涓嶅瓨鍦�");
                 }
 
+                OrderDetl orderDetl = orderDetlService.getById(detl.getOrderDetlId());
+                if (orderDetl == null) {
+                    throw new CoolException("鏄庣粏涓嶅瓨鍦�");
+                }
+
                 TaskDetl taskDetl = new TaskDetl();
                 taskDetl.sync(locDetl);
                 taskDetl.setTaskId(task.getId());
@@ -778,7 +783,7 @@
 
     }
 
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public void orderOutMergeWave(OrderOutMergeParamDto dto) {
         if(dto == null){
             throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
@@ -788,31 +793,36 @@
             throw new CoolException("鏈敓鎴愭尝娆�");
         }
 
+        Wave wave = waveService.getById(dto.getWaveId());
+        if (Objects.isNull(wave)) {
+            throw new CoolException("娉㈡涓嶅瓨鍦�");
+        }
+
         List<OrderOutMergeParam> params = dto.getList();
 
         if (params.isEmpty()) {
             throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
         }
 
-        Long waveId = dto.getWaveId();
+
+
+//        Long waveId = dto.getWaveId();
+//        String waveNo = dto.getw
 
         List<Long> filterParamsList = new ArrayList<>();
         List<OrderOutMergeParam> filterParams = new ArrayList<>();
-        for (OrderOutMergeParam param : params) {
-            if (param.getLocId() == null) {
-                continue;
-            }
 
-            if(!filterParamsList.contains(param.getLocId())){
-                filterParamsList.add(param.getLocId());
-                filterParams.add(param);
+        params.forEach(action -> {
+            if (action.getLocId() != null) {
+                filterParamsList.add(action.getLocId());
+                filterParams.add(action);
             }
-        }
+        });
 
         HashMap<String, Double> stockMap = new HashMap<>();
         for (OrderOutMergeParam param : filterParams) {
             String matUniqueKey = Utils.getMatUniqueKey(param.getMatnr(), param.getBatch(), param.getFieldParams());
-            WaveDetl waveDetl = waveDetlService.getOne(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getStockIndex, matUniqueKey).eq(WaveDetl::getWaveId, waveId));
+            WaveDetl waveDetl = waveDetlService.getOne(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getStockIndex, matUniqueKey).eq(WaveDetl::getWaveId, wave.getId()));
             if(waveDetl == null){
                 throw new CoolException("娉㈡鏁版嵁涓嶅瓨鍦�");
             }
@@ -910,7 +920,8 @@
                 taskDetl.setTaskNo(task.getTaskNo());
                 taskDetl.setAnfme(merge.getAnfme());
                 taskDetl.setStock(locDetl.getAnfme());
-                taskDetl.setWaveId(waveId);
+                taskDetl.setWaveId(wave.getId());
+                taskDetl.setWaveNo(wave.getWaveNo());
                 taskDetl.setOrderId(null);
                 taskDetl.setOrderNo(null);
                 if (!taskDetlService.save(taskDetl)) {
@@ -929,8 +940,11 @@
                     }
                 }
 
+
+                //TODO 纭鍚庯紝闇�灏嗘敞閲婃墦寮�
                 String matUniqueKey = Utils.getMatUniqueKey(taskDetl.getMatnr(), taskDetl.getBatch(), taskDetl.getUniqueField());
-                WaveDetl waveDetl = waveDetlService.getOne(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getStockIndex, matUniqueKey).eq(WaveDetl::getWaveId, waveId));
+//                WaveDetl waveDetl = waveDetlService.getOne(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getStockIndex, matUniqueKey).eq(WaveDetl::getWaveId, waveId));
+                WaveDetl waveDetl = waveDetlService.getOne(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getWaveId, wave.getId()), false);
                 if (waveDetl == null) {
                     throw new CoolException("娉㈡鏁版嵁涓嶅瓨鍦�");
                 }
@@ -939,8 +953,14 @@
                 if (!waveDetlService.updateById(waveDetl)) {
                     throw new CoolException("娉㈡鏁版嵁鏇存柊澶辫触");
                 }
-
             }
+
+            //鍑哄簱搴撳瓨鏇存柊閫昏緫
+//            List<Long> orderIds = dto.getList().stream().findFirst().get().getOrderIds();
+//            List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().in(OrderDetl::getOrderId, orderIds));
+//            orderDetls.forEach(orderDetl -> {
+//                orderUtils.updateWorkQty(orderDetl.getId(), orderDetl.getAnfme());
+//            });
 
             //搴撲綅F => R
             loc.setLocStsId(LocStsType.R.val());
@@ -949,13 +969,12 @@
             if(!locUpdate){
                 throw new CoolException("搴撲綅鐘舵�佹洿鏂板け璐�");
             }
-
         }
 
-        Wave wave = waveService.getById(waveId);
-        if (wave == null) {
-            throw new CoolException("娉㈡涓嶅瓨鍦�");
-        }
+//        Wave wave = waveService.getById(dto.getWaveId());
+//        if (wave == null) {
+//            throw new CoolException("娉㈡涓嶅瓨鍦�");
+//        }
 
         wave.setWaveStatus(WaveStatusType.GENERATE.id);
         wave.setUpdateTime(new Date());
@@ -964,7 +983,7 @@
         }
     }
 
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public void generateWave(GenerateWaveParam param) {
         if (param == null) {
             throw new CoolException("鍙傛暟涓嶈兘涓虹┖");

--
Gitblit v1.9.1