From 0db820f3510533114da63870411fc1c9f7f8754a Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期二, 17 三月 2026 11:11:50 +0800
Subject: [PATCH] #备货

---
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java |   38 +++++++++++++++++++++++++++++++++++++-
 1 files changed, 37 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 f9bf95f..5327f6f 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
@@ -264,6 +264,38 @@
             throw new CoolException("浠诲姟鏄庣粏鏇存柊澶辫触");
         }
 
+
+        //鍒ゆ柇浠诲姟鏄庣粏鏄惁鍏ㄩ儴瀹屾垚
+        List<TaskItem> allTaskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>()
+                .eq(TaskItem::getTaskId, task.getId()));
+        if (Cools.isEmpty(allTaskItems)) {
+            throw new CoolException("鏈壘鍒颁换鍔℃槑缁�");
+        }
+        boolean allTaskItemsFinished = allTaskItems.stream().allMatch(item -> {
+            BigDecimal workQty = BigDecimal.valueOf(Objects.isNull(item.getWorkQty()) ? 0D : item.getWorkQty());
+            BigDecimal qty = BigDecimal.valueOf(Objects.isNull(item.getAnfme()) ? 0D : item.getAnfme());
+            return workQty.compareTo(qty) == 0;
+        });
+        if (allTaskItemsFinished) {
+            task.setTaskStatus(TaskStsType.COMPLETE_OUT.id)
+                    .setUpdateBy(userId)
+                    .setUpdateTime(new Date());
+            if (!taskService.updateById(task)) {
+                throw new CoolException("浠诲姟鐘舵�佹洿鏂板け璐�");
+            }
+            if (task.getTaskType().equals(TaskType.TASK_TYPE_OUT.type)) {
+                BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
+                        .eq(BasStation::getBarcode, param.getContainerNo()));
+                if (!Cools.isEmpty(basStation)) {
+                    basStation.setUseStatus(LocStsType.LOC_STS_TYPE_D.type);
+                    basStation.setUpdateTime(new Date());
+                    if (!basStationService.updateById(basStation)){
+                        throw new CoolException("绔欑偣鐘舵�佹洿鏂板け璐�");
+                    }
+                }
+            }
+        }
+
         return R.ok();
     }
 
@@ -272,7 +304,10 @@
         if (Cools.isEmpty(param.getContainerNo())) {
             throw new CoolException("鏃犲鍣ㄥ彿");
         }
-        Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, param.getContainerNo()));
+        Task task = taskService.getOne(new LambdaQueryWrapper<Task>()
+                .eq(Task::getBarcode, param.getContainerNo())
+                .eq(Task::getTaskStatus, TaskStsType.AWAIT.id)
+        );
         if (null == task) {
             throw new CoolException("鏈壘鍒颁换鍔�");
         }
@@ -501,3 +536,4 @@
                 item -> new BigDecimal(item.getAnfme().toString()).equals(new BigDecimal(item.getQty().toString())));
     }
 }
+

--
Gitblit v1.9.1