From 5c90daa2c919f3f07df0a154ff91f0e015bf8d66 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 24 七月 2025 17:07:28 +0800
Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java |   43 ++++++++++++++++++++++++++++++-------------
 1 files changed, 30 insertions(+), 13 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 1365f70..c536971 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
@@ -1019,8 +1019,6 @@
                         }
                     }
                 }
-
-
             });
         });
         List<Long> matnrIds = taskItems.stream().map(TaskItem::getMatnrId).collect(Collectors.toList());
@@ -1056,10 +1054,14 @@
         List<LocItemWorking> workings = new ArrayList<>();
         List<TaskItem> items = taskItemService.list(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId()));
         items.forEach(taskItem -> {
-            LocItemWorking itemWorking = new LocItemWorking();
-            BeanUtils.copyProperties(taskItem, itemWorking);
-            itemWorking.setTaskId(task.getId()).setLocId(loc1.getId()).setLocCode(loc1.getCode());
-            workings.add(itemWorking);
+            if (taskItem.getAnfme() > 0) {
+                LocItemWorking itemWorking = new LocItemWorking();
+                BeanUtils.copyProperties(taskItem, itemWorking);
+                itemWorking.setTaskId(task.getId())
+                        .setLocId(loc1.getId())
+                        .setLocCode(loc1.getCode());
+                workings.add(itemWorking);
+            }
         });
 
         if (!locItemWorkingService.saveBatch(workings)) {
@@ -1408,14 +1410,29 @@
         List<LocItem> locItems = new ArrayList<>();
         items.forEach(taskItem -> {
             Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getTargLoc()), false);
+            if (Objects.isNull(loc)) {
+                throw new CoolException("搴撲綅涓嶅瓨鍦紒锛�");
+            }
             LocItem item = new LocItem();
-            BeanUtils.copyProperties(taskItem, item);
-            item.setLocCode(loc.getCode()).setId(null)
-                    .setLocId(loc.getId())
-                    .setUpdateBy(loginUserId)
-                    .setWkType(taskItem.getWkType())
-                    .setType(taskItem.getOrderType());
-            locItems.add(item);
+            LocItem locItem = locItemService.getOne(new LambdaQueryWrapper<LocItem>()
+                    .eq(LocItem::getMatnrId, taskItem.getMatnrId())
+                    .eq(LocItem::getLocId, loc.getId())
+                    .eq(StringUtils.isNoneBlank(taskItem.getBatch()), LocItem::getBatch, taskItem.getBatch())
+                    .eq(StringUtils.isNoneBlank(taskItem.getFieldsIndex()), LocItem::getFieldsIndex, taskItem.getFieldsIndex()));
+            if (Objects.isNull(locItem)) {
+                BeanUtils.copyProperties(taskItem, item);
+                item.setLocCode(loc.getCode())
+                        .setId(null)
+                        .setLocId(loc.getId())
+                        .setUpdateBy(loginUserId)
+                        .setWkType(taskItem.getWkType())
+                        .setType(taskItem.getOrderType());
+                locItems.add(item);
+            } else {
+                locItem.setAnfme(Math.round((locItem.getAnfme() + taskItem.getAnfme()) * 10000) / 10000.0)
+                        .setUpdateTime(new Date());
+                locItems.add(locItem);
+            }
         });
         if (!locItemService.saveBatch(locItems)) {
             throw new CoolException("搴撲綅鏄庣粏鏇存柊澶辫触锛侊紒");

--
Gitblit v1.9.1