From 7a92ebbfb8227ff30ebe3300cc9db263a75b7e22 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期四, 05 三月 2026 13:06:15 +0800
Subject: [PATCH] lsh#

---
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java |   32 +++++++++++++++++++++++++++++++-
 1 files changed, 31 insertions(+), 1 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java
index 0f70cbc..289d40e 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java
@@ -115,6 +115,9 @@
         if (!task.getResource().equals(TaskResouceType.TASK_RESOUCE_STOCK_UP.val)) {
             throw new CoolException("褰撳墠鎵樼洏涓嶆槸澶囪揣鍑哄簱浠诲姟");
         }
+        if (Cools.isEmpty(param.getTaskItemList())) {
+            throw new CoolException("浠诲姟鏄庣粏涓虹┖");
+        }
 
         WaitPakin waitPakin = waitPakinService
                 .getOne(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, param.getNewContainerNo()));
@@ -234,6 +237,31 @@
             if (!waitPakinItemService.saveOrUpdateBatch(items)) {
                 throw new CoolException("缁勬墭鏄庣粏淇濆瓨澶辫触锛侊紒");
             }
+        }
+
+        Map<Long, BigDecimal> taskItemInputQtyMap = param.getTaskItemList().stream()
+                .filter(Objects::nonNull)
+                .filter(e -> !Objects.isNull(e.getId()))
+                .collect(Collectors.toMap(TaskItem::getId,
+                        e -> Objects.isNull(e.getInputQty()) ? BigDecimal.ZERO : e.getInputQty(),
+                        BigDecimal::add));
+        if (taskItemInputQtyMap.isEmpty()) {
+            throw new CoolException("浠诲姟鏄庣粏鍙傛暟閿欒");
+        }
+        List<TaskItem> toUpdateTaskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>()
+                .eq(TaskItem::getTaskId, task.getId())
+                .in(TaskItem::getId, taskItemInputQtyMap.keySet()));
+        if (Cools.isEmpty(toUpdateTaskItems) || toUpdateTaskItems.size() != taskItemInputQtyMap.size()) {
+            throw new CoolException("鏈壘鍒板搴斾换鍔℃槑缁�");
+        }
+        toUpdateTaskItems.forEach(item -> {
+            double currentWorkQty = Objects.isNull(item.getWorkQty()) ? 0D : item.getWorkQty();
+            BigDecimal inputQty = taskItemInputQtyMap.getOrDefault(item.getId(), BigDecimal.ZERO);
+            item.setWorkQty(BigDecimal.valueOf(currentWorkQty).add(inputQty).doubleValue())
+                    .setUpdateBy(userId);
+        });
+        if (!taskItemService.updateBatchById(toUpdateTaskItems)) {
+            throw new CoolException("浠诲姟鏄庣粏鏇存柊澶辫触");
         }
 
         return R.ok();
@@ -417,7 +445,9 @@
             throw new CoolException("绔欑偣鐘舵�佷笉涓虹┖闂�");
         }
 
-        List<Long> areaList = basStation.getCrossZoneArea();
+        List<Long> areaList = basStation.getCrossZoneArea().stream()
+                .map(Integer::longValue)
+                .collect(Collectors.toList());
         if (Cools.isEmpty(areaList)) {
             throw new CoolException("褰撳墠绔欑偣搴撳尯鏈厤缃�");
         }

--
Gitblit v1.9.1