From 8eb93d5740c17f7b30888cc4dc1038f024ab3cb9 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期三, 11 六月 2025 09:22:04 +0800
Subject: [PATCH] DO单导入优化 出库单导入优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java |   50 +++++++++++++++++++++++++++++++++++---------------
 1 files changed, 35 insertions(+), 15 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
index def395e..c93da6b 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
@@ -413,7 +413,7 @@
             throw new CoolException("绛栫暐鍙傛暟涓虹┖");
         }
         if (Cools.isEmpty(param.getOrderId())) {
-            throw new CoolException("鍗曟嵁id涓虹┖");
+            throw new CoolException("鍗曟嵁ID涓虹┖");
         }
         WaveRule waveRule = waveRuleService.getOne(new LambdaQueryWrapper<WaveRule>().eq(WaveRule::getId, param.getWaveId()));
         if (Cools.isEmpty(waveRule)) {
@@ -450,7 +450,22 @@
             if (!Objects.isNull(loc)) {
                 List<LocItem> locItems = new ArrayList<>();
                 LocItem locItem = locItemService.getById(param.getId());
-                locItem.setOutQty(param.getOutQty()).setBatch(param.getBatch());
+
+                AsnOrderItem orderItem = outStockItemService.getOne(new LambdaQueryWrapper<AsnOrderItem>()
+                        .eq(AsnOrderItem::getAsnId, outId)
+                        .eq(StringUtils.isNotBlank(locItem.getBatch()), AsnOrderItem::getSplrBatch, locItem.getBatch())
+                        .eq(StringUtils.isNotBlank(locItem.getFieldsIndex()), AsnOrderItem::getFieldsIndex, locItem.getFieldsIndex())
+                        .eq(AsnOrderItem::getMatnrId, locItem.getMatnrId()));
+
+                if (Objects.isNull(orderItem)) {
+                    throw new CoolException("鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�");
+                }
+
+                locItem.setOutQty(param.getOutQty())
+                        .setBatch(param.getBatch())
+                        .setSourceId(outId)
+                        .setSourceCode(orderItem.getAsnCode())
+                        .setSource(orderItem.getId());
                 locItems.add(locItem);
 
                 LocToTaskParams taskParams = new LocToTaskParams();
@@ -467,15 +482,6 @@
                     throw new CoolException(e.getMessage());
                 }
 
-                AsnOrderItem orderItem = outStockItemService.getOne(new LambdaQueryWrapper<AsnOrderItem>()
-                        .eq(AsnOrderItem::getAsnId, outId)
-                        .eq(StringUtils.isNotBlank(locItem.getBatch()), AsnOrderItem::getSplrBatch, locItem.getBatch())
-                        .eq(StringUtils.isNotBlank(locItem.getFieldsIndex()), AsnOrderItem::getFieldsIndex, locItem.getFieldsIndex())
-                        .eq(AsnOrderItem::getMatnrId, locItem.getMatnrId()));
-
-                if (Objects.isNull(orderItem)) {
-                    throw new CoolException("鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�");
-                }
 
                 Double workQty = Math.round((orderItem.getWorkQty() + locItem.getOutQty()) * 10000) / 10000.0;
 
@@ -495,13 +501,27 @@
         }
         Double workQty = Math.round((outOrder.getWorkQty() + sum) * 10000) / 10000.0;
 
-        outOrder.setWorkQty(workQty).setExceStatus( AsnExceStatus.OUT_STOCK_STATUS_TASK_CREATE.val);
+        outOrder.setWorkQty(workQty).setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_CREATE.val);
 
         if (!outStockService.updateById(outOrder)) {
             throw new CoolException("鍑哄簱鍗曠姸鎬佷慨鏀瑰け璐ワ紒锛�");
         }
 
         return R.ok();
+    }
+
+    /**
+     * 鑾峰彇鍑哄簱绔欑偣
+     * @return
+     */
+    @Override
+    public R getSiteNos() {
+        List<Integer> list = Arrays.asList(TaskType.TASK_TYPE_MERGE_OUT.type,
+                TaskType.TASK_TYPE_OUT.type,
+                TaskType.TASK_TYPE_MERGE_OUT.type,
+                TaskType.TASK_TYPE_PICK_AGAIN_OUT.type);
+        List<DeviceSite> sites = deviceSiteService.list(new LambdaQueryWrapper<DeviceSite>().in(DeviceSite::getType, list).groupBy(DeviceSite::getSite));
+        return R.ok(sites);
     }
 
 
@@ -543,8 +563,7 @@
 
     private List<OrderOutItemDto> getOutOrderList(Long orderId, WaveRule waveRule) {
         List<AsnOrderItem> asnOrderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>()
-                .eq(AsnOrderItem::getAsnId, orderId)
-        );
+                .eq(AsnOrderItem::getAsnId, orderId));
         List<OrderOutItemDto> list = new ArrayList<>();
         Set<ExistDto> existDtos = new HashSet<>();
 
@@ -597,8 +616,9 @@
 
                         issued = issued.subtract(new BigDecimal(locItem.getAnfme().toString()));
                     }
-                }
+                } else {
 
+                }
             }
         }
 

--
Gitblit v1.9.1