From 645da5e4e48dd94b760ea4dcbf80e22bf2a3f33c Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期六, 11 一月 2025 17:20:08 +0800
Subject: [PATCH] #添加播种站点功能

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java |   29 +++++++++++++++++++----------
 1 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java
index 5ae1ae3..ae9d121 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java
@@ -20,10 +20,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
 
 @Component
 public class TaskWaveTimer {
@@ -45,6 +42,11 @@
     @Autowired
     private DictService dictService;
 
+    /**
+     * modifty锛�
+     * original : fetch datasource of task type on WAVE_SEED
+     * now: Fetch datasource of task type  on WCS_EXECUTE_OUT_ARRIVED, After completing the task and for setting  the task type equal to WAVE_SEED
+     */
     @Scheduled(cron = "0/15 * * * * ? ")
     @Transactional(rollbackFor = Exception.class)
     public void taskWave() {
@@ -58,8 +60,10 @@
             if (!autoCreateWaveSeed.equals("true")) {
                 return;
             }
-
-            List<Task> taskList = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.WAVE_SEED.id));
+            //鏌ヨ鐘舵�佷负瀹瑰櫒鍒拌揪鐘舵�佹墍鏈変换鍔″崟鎹�
+//            List<Task> taskList = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.WAVE_SEED.id));
+            List<Task> taskList = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.WCS_EXECUTE_OUT_TASK_DONE.id));
+            HashSet<String> sycMatnrs = new HashSet<>();
             if (taskList.isEmpty()) {
 //                throw new CoolException("娌℃湁鍙挱绉嶄换鍔★紒锛�");
             } else {
@@ -74,6 +78,12 @@
                     for (TaskDetl taskDetl : taskDetls) {
                         //鍒嗛厤璁㈠崟
                         Long waveId = taskDetl.getWaveId();
+                        //鍚屼竴涓墿鏂欏彧娣诲姞涓�娆℃挱绉嶄换鍔�
+                        if(sycMatnrs.contains(taskDetl.getMatnr())) {
+                            continue;
+                        }
+                        sycMatnrs.add(taskDetl.getMatnr());
+
                         List<Order> list = orderService.list(new LambdaQueryWrapper<Order>().eq(Order::getWaveId, waveId));
                         if (list.isEmpty()) {
                             continue;
@@ -121,7 +131,8 @@
                             waveSeed.setOrderDetlId(orderDetl.getId());
                             waveSeed.setWaveId(taskDetl.getWaveId()).setWaveNo(taskDetl.getWaveNo());
                             waveSeed.setTaskDetlId(taskDetl.getId());
-                            waveSeed.setAnfme(taskDetl.getAnfme());
+                            //涓烘弧瓒冲綋鍓嶉渶姹傦紝缁忕‘璁わ紝鏀规垚璁㈠崟鏁伴噺
+                            waveSeed.setAnfme(orderDetl.getAnfme());
                             waveSeed.setWorkQty(0D);
                             waveSeed.setMatnr(taskDetl.getMatnr());
                             waveSeed.setBatch(taskDetl.getBatch());
@@ -130,7 +141,6 @@
                             if (!waveSeedService.save(waveSeed)) {
                                 throw new CoolException("娉㈡鎾鍒涘缓澶辫触");
                             }
-
                             cacheSite.setOrderId(orderDetl.getOrderId());
                             cacheSite.setOrderNo(orderDetl.getOrderNo());
                             cacheSite.setSiteStatus(CacheSiteStatusType.R.id);
@@ -140,10 +150,9 @@
                             }
 
                         }
-
                     }
 
-                    task.setTaskSts(TaskStsType.COMPLETE_OUT.id);
+                    task.setTaskSts(TaskStsType.GENERATE_WAVE_SEED.id);
                     task.setUpdateTime(new Date());
                     if (!taskService.updateById(task)) {
                         throw new CoolException("浠诲姟鏇存柊澶辫触");

--
Gitblit v1.9.1