From bb28c2f09f7fa36b8b80f9d19f23631623b80d1c Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期六, 01 三月 2025 16:59:46 +0800
Subject: [PATCH] #
---
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/TaskWaveTimer.java | 77 ++++++++++++++++++++++----------------
1 files changed, 44 insertions(+), 33 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 e619af4..7ddd363 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 WCS_EXECUTE_OUT_TASK_DONE
+ * now: Fetch datasource of task type on WCS_EXECUTE_OUT_ARRIVED, After completing the task and for setting the task type equal to GENERATE_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));
+ //鏌ヨ鐘舵�佷负RCS浠诲姟瀹屾垚鎵�鏈変换鍔″崟鎹�
+// 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;
@@ -96,31 +106,34 @@
Double anfme = taskDetl.getAnfme();
for (OrderDetl orderDetl : orderDetls) {
//fixme 浣滀笟涓暟閲忚皟鏁存斁鑷筹紝鐢熸垚鍑哄簱浠诲姟鎴愬姛鍚�
-// double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty() - orderDetl.getWorkQty()).orElse(0.0D);
-// if (issued <= 0.0D) { continue; }
-// if (anfme <= 0.0D) { break; }
-//
-// double workQty = issued;
-// if(anfme - issued < 0){
-// workQty = anfme;
-// }
-// anfme -= workQty;
-//
-// orderUtils.updateWorkQty(orderDetl.getId(), workQty, true);
+ double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty() - orderDetl.getWorkQty()).orElse(0.0D);
+ if (issued <= 0.0D) { continue; }
+ if (anfme <= 0.0D) { break; }
- CacheSite cacheSite = cacheSiteService.getOne(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getOrderId, orderDetl.getOrderId()).eq(CacheSite::getHostId, hostId));
- if (cacheSite == null) {
- throw new CoolException("缂撳瓨绔欑┖闂翠笉瀛樺湪");
+ double workQty = issued;
+ if(anfme - issued < 0){
+ workQty = anfme;
}
+ anfme -= workQty;
+
+ orderUtils.updateWorkQty(orderDetl.getId(), workQty, true);
+//
+ //fixme 鐢熸垚娉㈡鎾鏁版嵁鏃讹紝涓嶈嚜鍔ㄦ坊鍔犵珯鐐圭粦瀹氾紝绔欑偣缁戝畾璋冩暣鑷冲嚭搴撶粦瀹氭挱绉嶅簱浣嶆椂鏇存柊
+// CacheSite cacheSite = cacheSiteService.getOne(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getOrderId, orderDetl.getOrderId()).eq(CacheSite::getHostId, hostId));
+// if (cacheSite == null) {
+// throw new CoolException("缂撳瓨绔欑┖闂翠笉瀛樺湪");
+// }
WaveSeed waveSeed = new WaveSeed();
- waveSeed.setSiteId(cacheSite.getId());
- waveSeed.setSiteNo(cacheSite.getSiteNo());
+// waveSeed.setSiteId(cacheSite.getId());
+// waveSeed.setSiteNo(cacheSite.getSiteNo());
waveSeed.setOrderNo(orderDetl.getOrderNo());
waveSeed.setOrderId(orderDetl.getOrderId());
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());
@@ -129,20 +142,18 @@
if (!waveSeedService.save(waveSeed)) {
throw new CoolException("娉㈡鎾鍒涘缓澶辫触");
}
-
- cacheSite.setOrderId(orderDetl.getOrderId());
- cacheSite.setOrderNo(orderDetl.getOrderNo());
- cacheSite.setSiteStatus(CacheSiteStatusType.R.id);
- cacheSite.setUpdateTime(new Date());
- if (!cacheSiteService.updateById(cacheSite)) {
- throw new CoolException("缂撳瓨绔欐洿鏂板け璐�");
- }
+// cacheSite.setOrderId(orderDetl.getOrderId());
+// cacheSite.setOrderNo(orderDetl.getOrderNo());
+// cacheSite.setSiteStatus(CacheSiteStatusType.R.id);
+// cacheSite.setUpdateTime(new Date());
+// if (!cacheSiteService.updateById(cacheSite)) {
+// throw new CoolException("缂撳瓨绔欐洿鏂板け璐�");
+// }
}
-
}
- 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