From 01eb1a829bce01181fe2feb6aec00b657df62e3e Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 29 七月 2025 10:59:31 +0800
Subject: [PATCH] 调拔单功能优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/WaveSchedules.java |   64 +++++++++++++++----------------
 1 files changed, 31 insertions(+), 33 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/WaveSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/WaveSchedules.java
index 165262d..198d13d 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/WaveSchedules.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/WaveSchedules.java
@@ -2,6 +2,7 @@
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.vincent.rsf.framework.exception.CoolException;
 import com.vincent.rsf.server.common.constant.Constants;
 import com.vincent.rsf.server.manager.entity.Wave;
@@ -10,6 +11,7 @@
 import com.vincent.rsf.server.manager.enums.WaveItemExceStatus;
 import com.vincent.rsf.server.manager.service.WaveItemService;
 import com.vincent.rsf.server.manager.service.WaveService;
+import com.vincent.rsf.server.manager.service.impl.TaskItemServiceImpl;
 import com.vincent.rsf.server.system.constant.GlobalConfigCode;
 import com.vincent.rsf.server.system.entity.Config;
 import com.vincent.rsf.server.system.service.ConfigService;
@@ -19,19 +21,16 @@
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
-* @author Ryan
-* @description 娉㈡瀹氭椂浠诲姟
-* @param
-* @return
-* @time 2025/6/23 13:49
-*/
+ * @param
+ * @author Ryan
+ * @description 娉㈡瀹氭椂浠诲姟
+ * @return
+ * @time 2025/6/23 13:49
+ */
 @Component
 public class WaveSchedules {
 
@@ -44,45 +43,44 @@
 
     @Autowired
     private ConfigService configService;
-
+    @Autowired
+    private TaskItemServiceImpl taskItemService;
 
 
     /**
-    * @author Ryan
-    * @description 鑷姩涓嬪彂娉㈡浠诲姟
-    * @param
-    * @return
-    * @time 2025/6/23 13:52
-    */
+     * @param
+     * @return
+     * @author Ryan
+     * @description 鑷姩涓嬪彂娉㈡浠诲姟
+     * @time 2025/6/23 13:52
+     */
     @Scheduled(cron = "0/15 * * * * ?")
-    @Transactional(rollbackFor = Exception.class)
+//    @Transactional(rollbackFor = Exception.class)
     public void autoGenerateTask() {
         Config config = configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, GlobalConfigCode.WAVE_AUTO_EXCE_TASK));
         if (Objects.isNull(config) || !Boolean.parseBoolean(config.getVal())) {
             return;
         }
         List<Wave> list = waveService.list(new LambdaQueryWrapper<Wave>()
-                        .select(Wave::getId)
-                        .eq(Wave::getExceStatus, WaveExceStatus.WAVE_EXCE_STATUS_INIT.val));
+                .select(Wave::getId)
+                .in(Wave::getExceStatus, WaveExceStatus.WAVE_EXCE_STATUS_INIT.val
+                        , WaveExceStatus.WAVE_EXCE_STATUS_EXCING.val));
         if (list.isEmpty()) {
             return;
         }
+
         List<Long> longs = list.stream().map(Wave::getId).collect(Collectors.toList());
 
-        List<WaveItem> waveItems = waveItemService.list(new LambdaQueryWrapper<WaveItem>()
+        waveItemService.update(new LambdaUpdateWrapper<WaveItem>()
                 .in(WaveItem::getWaveId, longs)
-                .eq(WaveItem::getExceStatus, WaveItemExceStatus.WAVE_ITEM_EXCE_STATUS_UN.val));
-        if (waveItems.isEmpty()) {
-            return;
-        }
+                .set(WaveItem::getExceStatus, WaveExceStatus.WAVE_EXCE_STATUS_EXCING.val)
+                .apply("anfme > work_qty"));
+
         Long loginUserId = SystemAuthUtils.getLoginUserId();
-        Map<Long, List<WaveItem>> listMap = waveItems.stream().collect(Collectors.groupingBy(WaveItem::getWaveId));
-        listMap.keySet().forEach(waveId -> {
-            List<Long> itemIds = listMap.get(waveId).stream().map(WaveItem::getId).collect(Collectors.toList());
-            Map<String, Object> params = new HashMap<>();
-            params.put("wave", waveId);
-            params.put("waveItem", itemIds);
-            waveService.waveToTask(params, loginUserId);
-        });
+        Map<String, Object> params = new HashMap<>();
+        params.put("ids", longs);
+        waveService.waveToTask(params, loginUserId);
+
     }
+
 }

--
Gitblit v1.9.1