From 039ea2a8d16e84f524e65ec47f9352b3ef625940 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期三, 09 七月 2025 16:21:16 +0800
Subject: [PATCH] no message

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java |   74 ++++++++++++++++++++++++++++++++++++-
 1 files changed, 72 insertions(+), 2 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 704f4c3..08172a0 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
@@ -10,6 +10,10 @@
 import com.zy.asrs.wms.asrs.entity.enums.OrderSettleType;
 import com.zy.asrs.wms.asrs.entity.enums.TaskStsType;
 import com.zy.asrs.wms.asrs.service.*;
+import com.zy.asrs.wms.asrs.service.impl.WaveDetlLogServiceImpl;
+import com.zy.asrs.wms.asrs.service.impl.WaveDetlServiceImpl;
+import com.zy.asrs.wms.asrs.service.impl.WaveLogServiceImpl;
+import com.zy.asrs.wms.asrs.service.impl.WaveServiceImpl;
 import com.zy.asrs.wms.system.entity.Dict;
 import com.zy.asrs.wms.system.service.DictService;
 import com.zy.asrs.wms.utils.OrderUtils;
@@ -42,6 +46,69 @@
     private WaveSeedService waveSeedService;
     @Autowired
     private DictService dictService;
+    @Autowired
+    private WaveServiceImpl waveService;
+    @Autowired
+    private WaveLogServiceImpl waveLogService;
+    @Autowired
+    private WaveDetlServiceImpl waveDetlService;
+    @Autowired
+    private WaveDetlLogServiceImpl waveDetlLogService;
+
+
+    /**
+     * @author Ryan
+     * @date 2025/6/20
+     * @description: 鏇存柊娉㈡鏄庣粏锛屽姞鍏ュ巻鍙叉。
+     * @version 1.0
+     */
+    @Scheduled(cron = "0/30 * * * * ? ")
+    @Transactional(rollbackFor = Exception.class)
+    public void addWaveHistories() {
+        List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskSts, TaskStsType.UPDATED_OUT.id));
+        if (tasks.isEmpty()) {
+            return;
+        }
+        for (Task task : tasks) {
+            List<TaskDetl> detls = taskDetlService.list(new LambdaQueryWrapper<TaskDetl>().eq(TaskDetl::getTaskId, task.getId()));
+            if (detls.isEmpty()) {
+                continue;
+            }
+            Set<Long> waveIds = detls.stream().map(TaskDetl::getWaveId).collect(Collectors.toSet());
+
+            if (waveIds.isEmpty()) {
+                throw new CoolException("娉㈡淇℃伅涓虹┖锛侊紒");
+            }
+            List<Wave> waves = waveService.list(new LambdaQueryWrapper<Wave>().in(Wave::getId, waveIds));
+            for (Wave wave : waves) {
+                WaveLog waveLog = new WaveLog();
+                waveLog.sync(wave);
+                waveLog.setId(null);
+                if (!waveLogService.save(waveLog)) {
+                    throw new CoolException("娉㈡杞巻鍙插け璐�");
+                }
+
+                List<WaveDetl> waveDetls = waveDetlService.list(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getWaveId, wave.getId()));
+                for (WaveDetl waveDetl : waveDetls) {
+                    WaveDetlLog waveDetlLog = new WaveDetlLog();
+                    waveDetlLog.sync(waveDetl);
+                    waveDetlLog.setId(null);
+                    waveDetlLog.setWaveId(waveLog.getId());
+                    if (!waveDetlLogService.save(waveDetlLog)) {
+                        throw new CoolException("娉㈡鏄庣粏杞巻鍙插け璐�");
+                    }
+                    if (!waveDetlService.removeById(waveDetl.getId())) {
+                        throw new CoolException("娉㈡鏄庣粏鍒犻櫎澶辫触");
+                    }
+                }
+                if (!waveService.removeById(wave.getId())) {
+                    throw new CoolException("娉㈡鍒犻櫎澶辫触");
+                }
+            }
+        }
+    }
+
+
 
     /**
      * modifty锛�
@@ -76,7 +143,10 @@
                         continue;
                     }
                     // 杩囨护宸茬粡鐢熸垚娉㈡鎾鏁版嵁鐨勪换鍔�  璇ヤ换鍔$殑浠诲姟鏄庣粏鍙蜂笉鑳藉湪鎾鏁版嵁琛ㄩ噷闈�
-                    long count = waveSeedService.count(new LambdaQueryWrapper<WaveSeed>().in(WaveSeed::getTaskDetlId, taskDetls.stream().map(TaskDetl::getId).collect(Collectors.toList())).eq(WaveSeed::getHostId, hostId));
+                    long count = waveSeedService.count(new LambdaQueryWrapper<WaveSeed>()
+                            .in(WaveSeed::getTaskDetlId, taskDetls.stream()
+                                    .map(TaskDetl::getId).collect(Collectors.toList()))
+                            .eq(WaveSeed::getHostId, hostId));
                     if (count > 0) {
                         continue;
                     }
@@ -143,7 +213,7 @@
                             waveSeed.setWaveId(taskDetl.getWaveId()).setWaveNo(taskDetl.getWaveNo());
                             waveSeed.setTaskDetlId(taskDetl.getId());
                             //涓烘弧瓒冲綋鍓嶉渶姹傦紝缁忕‘璁わ紝鏀规垚璁㈠崟鏁伴噺
-                            waveSeed.setAnfme(orderDetl.getAnfme());
+                            waveSeed.setAnfme(taskDetl.getAnfme());
                             waveSeed.setWorkQty(0D);
                             waveSeed.setMatnr(taskDetl.getMatnr());
                             waveSeed.setBatch(taskDetl.getBatch());

--
Gitblit v1.9.1