From 03f63637e706283f1a95b7d0d6d631901ae359b2 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期一, 21 七月 2025 13:24:00 +0800
Subject: [PATCH] 盘点单功能优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java |   71 +++++++++++++++++++++--------------
 1 files changed, 43 insertions(+), 28 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
index 1a00a7e..a9b1461 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
@@ -83,11 +83,14 @@
     private OutStockService outStockService;
     @Autowired
     private OutStockItemService outStockItemService;
-
     @Autowired
     private CheckOrderItemService checkOrderItemService;
     @Autowired
     private CheckOrderService checkOrderService;
+    @Autowired
+    private CheckDiffService checkDiffService;
+    @Autowired
+    private CheckDiffItemService checkDiffItemService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -686,7 +689,7 @@
             LocItemWorking locWorking = locItemWorkingService.getOne(new LambdaQueryWrapper<LocItemWorking>()
                     .eq(LocItemWorking::getTaskId, taskItem.getTaskId())
                     .eq(StringUtils.isNotBlank(taskItem.getBatch()), LocItemWorking::getBatch, taskItem.getBatch())
-                    .eq(StringUtils.isNotBlank(taskItem.getFieldsIndex()), LocItemWorking::getFieldsIndex, taskItem.getFieldsIndex())
+//                    .eq(StringUtils.isNotBlank(taskItem.getFieldsIndex()), LocItemWorking::getFieldsIndex, taskItem.getFieldsIndex())
                     .eq(LocItemWorking::getMatnrId, taskItem.getMatnrId()));
             if (Objects.isNull(locWorking)) {
                 throw new CoolException("鏁版嵁閿欒锛屼綔涓氫腑搴撳瓨鏁版嵁涓㈠け锛侊紒");
@@ -782,6 +785,18 @@
                                 .eq(WkOrder::getId, taskItem.getOrderId())
                                 .setSql("work_qty = work_qty - " + taskItem.getAnfme()))) {
                             throw new CoolException("鐩樼偣鍗曟墽琛屾暟閲忎慨鏀瑰け璐ワ紒锛�");
+                        }
+
+                        List<CheckDiffItem> diffItems = checkDiffItemService
+                                .list(new LambdaQueryWrapper<CheckDiffItem>()
+                                .eq(CheckDiffItem::getTaskItemId, taskItem.getTaskId()));
+                        if (!diffItems.isEmpty()) {
+                            CheckDiffItem item = diffItems.stream().findFirst().get();
+                            List<CheckDiffItem> items = checkDiffItemService.list(new LambdaQueryWrapper<CheckDiffItem>()
+                                    .eq(CheckDiffItem::getId, item.getCheckId()));
+                            if (items.isEmpty()) {
+                                checkDiffService.removeById(item.getCheckId());
+                            }
                         }
                     });
                 }
@@ -983,7 +998,7 @@
             LocItemWorking locWorking = locItemWorkingService.getOne(new LambdaQueryWrapper<LocItemWorking>()
                     .eq(LocItemWorking::getTaskId, taskItem.getTaskId())
                     .eq(StringUtils.isNotBlank(taskItem.getBatch()), LocItemWorking::getBatch, taskItem.getBatch())
-                    .eq(StringUtils.isNotBlank(taskItem.getFieldsIndex()), LocItemWorking::getFieldsIndex, taskItem.getFieldsIndex())
+//                    .eq(StringUtils.isNotBlank(taskItem.getFieldsIndex()), LocItemWorking::getFieldsIndex, taskItem.getFieldsIndex())
                     .eq(LocItemWorking::getMatnrId, taskItem.getMatnrId()));
             if (Objects.isNull(locWorking)) {
                 throw new CoolException("鏁版嵁閿欒锛屼綔涓氫腑搴撳瓨鏁版嵁涓㈠け锛侊紒");
@@ -1083,32 +1098,32 @@
          * */
         List<TaskItem> list = listMap.get(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_OUT.type));
         if (Objects.isNull(list) || list.isEmpty()) {
-            Map<Long, List<TaskItem>> maps = taskItems.stream().collect(Collectors.groupingBy(TaskItem::getSource));
-            maps.keySet().forEach(key -> {
-                if (task.getResource().equals(TaskResouceType.TASK_RESOUCE_WAVE_TYPE.val)) {
-                    WaveItem waveItem = waveItemService.getById(key);
-                    if (Objects.isNull(waveItem)) {
-                        throw new CoolException("娉㈡鏄庣粏涓嶅瓨鍦紒锛�");
-                    }
-                    try {
-                        saveOutStockItem(maps.get(key), null, waveItem, loginUserId);
-                    } catch (Exception e) {
-                        throw new CoolException(e.getMessage());
-                    }
-                } else if (task.getResource().equals(TaskResouceType.TASK_RESOUCE_ORDER_TYPE.val)) {
-                    WkOrderItem orderItem = asnOrderItemService.getById(key);
-                    if (Objects.isNull(orderItem)) {
-                        throw new CoolException("鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�");
-                    }
-                    try {
-                        saveOutStockItem(maps.get(key), orderItem, null, loginUserId);
-                    } catch (Exception e) {
-                        throw new CoolException(e.getMessage());
-                    }
-                } else {
+                Map<Long, List<TaskItem>> maps = taskItems.stream().collect(Collectors.groupingBy(TaskItem::getSource));
+                maps.keySet().forEach(key -> {
+                    if (task.getResource().equals(TaskResouceType.TASK_RESOUCE_WAVE_TYPE.val)) {
+                        WaveItem waveItem = waveItemService.getById(key);
+                        if (Objects.isNull(waveItem)) {
+                            throw new CoolException("娉㈡鏄庣粏涓嶅瓨鍦紒锛�");
+                        }
+                        try {
+                            saveOutStockItem(maps.get(key), null, waveItem, loginUserId);
+                        } catch (Exception e) {
+                            throw new CoolException(e.getMessage());
+                        }
+                    } else if (task.getResource().equals(TaskResouceType.TASK_RESOUCE_ORDER_TYPE.val) || task.getResource().equals(TaskResouceType.TASK_RESOUCE_CHECK_TYPE.val)) {
+                        WkOrderItem orderItem = asnOrderItemService.getById(key);
+                        if (Objects.isNull(orderItem)) {
+                            throw new CoolException("鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�");
+                        }
+                        try {
+                            saveOutStockItem(maps.get(key), orderItem, null, loginUserId);
+                        } catch (Exception e) {
+                            throw new CoolException(e.getMessage());
+                        }
+                    } else {
 
-                }
-            });
+                    }
+                });
         } else {
             try {
                 saveOutStockItem(taskItems, null, null, loginUserId);

--
Gitblit v1.9.1