From c28812eb7e5afa79cb5e2f4fbee7f96c7d7767ed Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期五, 03 四月 2026 14:33:22 +0800
Subject: [PATCH] AGV出库,立库查询库存优化
---
src/main/java/com/zy/asrs/task/WorkMastScheduler.java | 108 ++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 77 insertions(+), 31 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
index 08ff1ef..62b4d8c 100644
--- a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -20,10 +20,8 @@
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
/**
* Created by vincent on 2020/7/7
@@ -83,8 +81,6 @@
}
}
}
-
-
/**
* 浠诲姟鑷姩涓嬪彂鍑哄簱浠诲姟
*
@@ -93,32 +89,76 @@
*/
@Scheduled(cron = "0/5 * * * * ? ")
private void autoPubTasks() {
- List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("wrk_sts", Arrays.asList(11L, 1L)));
+ List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+ .in("wrk_sts", Arrays.asList(11L, 1L))
+ .orderDesc(Arrays.asList("io_pri")));
if (wrkMasts.isEmpty()) {
return;
}
-// Collections.shuffle(wrkMasts);
- wrkMasts.forEach(wrkMast -> {
- WorkTaskParams params = new WorkTaskParams();
- if (wrkMast.getIoType().equals(11)) {
- CompleteParam param = new CompleteParam();
- param.setTaskNo(wrkMast.getWrkNo() + "");
- param.setSourceLocNo(wrkMast.getSourceLocNo());
- param.setLocNo(wrkMast.getLocNo());
-// param.set
- mobileService.taskMove(param, 9527L);
- } else if (wrkMast.getIoType() > 100) {
- params.setType("out")
- .setTaskNo(wrkMast.getWrkNo() + "")
- .setLocNo(wrkMast.getSourceLocNo())
- .setBarcode(wrkMast.getBarcode())
- .setStaNo(wrkMast.getStaNo())
- .setTaskPri(wrkMast.getIoPri().intValue());
- wcsApiService.pubWrkToWcs(params);
+ Map<Integer, List<WrkMast>> listMap = wrkMasts.stream().collect(Collectors.groupingBy(WrkMast::getCrnNo));
+ listMap.keySet().forEach(key -> {
+ List<WrkMast> wrkMasts1 = listMap.get(key);
+ Collections.shuffle(wrkMasts1);
+ try {
+ wrkMasts1.forEach(wrkMast -> {
+ WorkTaskParams params = new WorkTaskParams();
+ if (wrkMast.getIoType().equals(11)) {
+ CompleteParam param = new CompleteParam();
+ param.setTaskNo(wrkMast.getWrkNo() + "");
+ param.setSourceLocNo(wrkMast.getSourceLocNo());
+ param.setLocNo(wrkMast.getLocNo());
+ mobileService.taskMove(param, 9527L);
+ } else if (wrkMast.getIoType() > 100) {
+ params.setType("out")
+ .setTaskNo(wrkMast.getWrkNo() + "")
+ .setLocNo(wrkMast.getSourceLocNo())
+ .setBarcode(wrkMast.getBarcode())
+ .setStaNo(wrkMast.getStaNo())
+ .setTaskPri(wrkMast.getIoPri().intValue());
+ wcsApiService.pubWrkToWcs(params);
+ }
+ });
+ } catch (Exception e) {
+ log.error(e.getMessage());
}
});
-
}
+
+
+// /**
+// * 浠诲姟鑷姩涓嬪彂鍑哄簱浠诲姟
+// *
+// * @author Ryan
+// * @date 2026/1/10 14:42
+// */
+// @Scheduled(cron = "0/5 * * * * ? ")
+// private void autoPubTasks() {
+// List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("wrk_sts", Arrays.asList(11L, 1L)));
+// if (wrkMasts.isEmpty()) {
+// return;
+// }
+//// Collections.shuffle(wrkMasts);
+// wrkMasts.forEach(wrkMast -> {
+// WorkTaskParams params = new WorkTaskParams();
+// if (wrkMast.getIoType().equals(11)) {
+// CompleteParam param = new CompleteParam();
+// param.setTaskNo(wrkMast.getWrkNo() + "");
+// param.setSourceLocNo(wrkMast.getSourceLocNo());
+// param.setLocNo(wrkMast.getLocNo());
+//// param.set
+// mobileService.taskMove(param, 9527L);
+// } else if (wrkMast.getIoType() > 100) {
+// params.setType("out")
+// .setTaskNo(wrkMast.getWrkNo() + "")
+// .setLocNo(wrkMast.getSourceLocNo())
+// .setBarcode(wrkMast.getBarcode())
+// .setStaNo(wrkMast.getStaNo())
+// .setTaskPri(wrkMast.getIoPri().intValue());
+// wcsApiService.pubWrkToWcs(params);
+// }
+// });
+//
+// }
/**
* AGV浠诲姟鑷姩涓嬪彂鍑哄簱浠诲姟
@@ -136,11 +176,17 @@
Collections.shuffle(tasks);
tasks.forEach(wrkMast -> {
CallAgvParams param = new CallAgvParams();
- if (wrkMast.getIoType() == 1) {
- param.setWrkNo(wrkMast.getWrkNo() + "");
- param.setOrgSite(wrkMast.getSourceStaNo());
- param.setTarSite(wrkMast.getLocNo());
- } else if (wrkMast.getIoType() == 110 ||wrkMast.getIoType() == 101){
+ if (wrkMast.getIoType() == 1 || wrkMast.getIoType() == 53) {
+ if (wrkMast.getIsNewIn().equals("XM1")) {
+ param.setWrkNo(wrkMast.getWrkNo() + "");
+ param.setOrgSite(wrkMast.getSourceStaNo());
+ param.setTarSite(wrkMast.getStaNo());
+ } else {
+ param.setWrkNo(wrkMast.getWrkNo() + "");
+ param.setOrgSite(wrkMast.getSourceStaNo());
+ param.setTarSite(wrkMast.getLocNo());
+ }
+ } else if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103){
param.setWrkNo(wrkMast.getWrkNo() + "");
param.setOrgSite(wrkMast.getSourceLocNo());
param.setTarSite(wrkMast.getStaNo());
--
Gitblit v1.9.1