From a572f1428af7a5d6eeaf973363c33785ea182bd3 Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期五, 21 十一月 2025 17:19:31 +0800
Subject: [PATCH] 换绑功能优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java    |    1 -
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java         |    9 +++++++++
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java |   26 +++++++++++++++++++++++++-
 3 files changed, 34 insertions(+), 2 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 360de94..b9a4f10 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
@@ -14,6 +14,7 @@
 import com.vincent.rsf.server.manager.enums.TaskStsType;
 import com.vincent.rsf.server.manager.enums.TaskType;
 import com.vincent.rsf.server.manager.service.*;
+import com.vincent.rsf.server.manager.service.impl.LocItemWorkingServiceImpl;
 import com.vincent.rsf.server.manager.service.impl.StockItemServiceImpl;
 import com.vincent.rsf.server.manager.service.impl.StockServiceImpl;
 import com.vincent.rsf.server.system.constant.SerialRuleCode;
@@ -63,6 +64,10 @@
     private StockService stockService;
     @Autowired
     private StockItemServiceImpl stockItemService;
+    @Autowired
+    private LocItemService locItemService;
+    @Autowired
+    private LocItemWorkingService locItemWorkingService;
 
     @Override
     public R getOutStockTaskItem(String barcode) {
@@ -399,6 +404,25 @@
             if (!taskItemService.updateById(item)) {
                throw new CoolException("浠诲姟鏄庣粏淇敼澶辫触");
             }
+            LocItemWorking oldOne = locItemWorkingService.getOne(new LambdaQueryWrapper<LocItemWorking>()
+                    .eq(LocItemWorking::getMatnrCode, byId.getMatnrCode())
+                    .eq(LocItemWorking::getFieldsIndex, byId.getFieldsIndex()));
+            if (Objects.isNull(oldOne)) {
+                throw new CoolException("鏄庣粏涓嶅瓨鍦ㄦ垨宸插嚭搴擄紒锛�");
+            }
+            LocItemWorking one = locItemWorkingService.getOne(new LambdaQueryWrapper<LocItemWorking>()
+                            .eq(LocItemWorking::getMatnrCode, byId.getMatnrCode())
+                    .eq(LocItemWorking::getFieldsIndex, uuid));
+            if (Objects.isNull(one)) {
+                throw new CoolException("鏄庣粏涓嶅瓨鍦ㄦ垨宸插嚭搴擄紒锛�");
+            }
+            one.setWorkQty(oldOne.getWorkQty());
+            oldOne.setWorkQty(0.0);
+
+            //鏇存柊搴撲綅淇℃伅
+            locItemWorkingService.updateById(oldOne);
+            locItemWorkingService.updateById(one);
+
         }
         return R.ok();
     }
@@ -447,7 +471,7 @@
                 }
             }
         } catch (Exception e) {
-            throw new CoolException("鍒嗘弨澶辫触");
+            throw new CoolException("鍒嗘嫞澶辫触");
         }
         return R.ok();
     }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
index a68b334..8966305 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
@@ -24,6 +24,7 @@
 import com.vincent.rsf.server.manager.enums.*;
 import com.vincent.rsf.server.manager.entity.*;
 import com.vincent.rsf.server.manager.service.*;
+import com.vincent.rsf.server.manager.service.impl.LocItemWorkingServiceImpl;
 import com.vincent.rsf.server.manager.service.impl.LocServiceImpl;
 import com.vincent.rsf.server.manager.service.impl.WaveOrderRelaServiceImpl;
 import com.vincent.rsf.server.system.constant.GlobalConfigCode;
@@ -99,6 +100,9 @@
     private ReportMsgService reportMsgService;
     @Autowired
     private WaveOrderRelaService waveOrderRelaService;
+    @Autowired
+    private LocItemWorkingService locItemWorkingService;
+
 
     /**
      * @param
@@ -645,6 +649,9 @@
                 itemLogs.add(itemLog);
             }
 
+            locItemWorkingService.remove(new LambdaQueryWrapper<LocItemWorking>().eq(LocItemWorking::getTaskId, task.getId()));
+
+
             if (!taskService.removeById(task.getId())) {
                 throw new CoolException("鍘熷浠诲姟鍒犻櫎澶辫触锛侊紒");
             }
@@ -657,6 +664,8 @@
                     throw new CoolException("鍘熷浠诲姟鏄庣粏鍒犻櫎澶辫触锛侊紒");
                 }
             }
+
+
         });
     }
 
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 36f4f97..3135d4d 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
@@ -1216,7 +1216,6 @@
             throw new CoolException("搴撳瓨鐘舵�佹洿鏂板け璐ワ紒锛�");
         }
 
-
 //        if (task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type) || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type)) {
 //            if (!this.update(new LambdaUpdateWrapper<Task>()
 //                    .eq(Task::getId, task.getId())

--
Gitblit v1.9.1