From c319790d54867b63f27089b511d05076254e7990 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 29 四月 2026 20:36:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java | 164 +++++++++++++++++++++++++++---------------------------
1 files changed, 82 insertions(+), 82 deletions(-)
diff --git a/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java b/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java
index 79078ef..f638681 100644
--- a/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java
+++ b/src/main/java/com/zy/core/utils/CrnOperateProcessUtils.java
@@ -141,10 +141,10 @@
WrkStsType.NEW_OUTBOUND.sts,
WrkStsType.NEW_LOC_MOVE.sts));
taskQueue.sort(Comparator.comparingInt((WrkMast wrkMast) -> resolveTaskTypeRank(wrkMast, lastIo))
- .thenComparingInt(this::resolveBatchOutboundRank)
- .thenComparingInt(this::resolveBatchSeqOrder)
.thenComparingDouble(this::resolveTaskIoPri)
.thenComparingLong(this::resolveTaskQueueTime)
+ .thenComparingInt(this::resolveBatchOutboundRank)
+ .thenComparingInt(this::resolveBatchSeqOrder)
.thenComparingInt(this::resolveTaskQueueNo));
for (WrkMast wrkMast : taskQueue) {
@@ -775,96 +775,96 @@
if (basCrnp == null || basCrnp.getCrnNo() == null) {
return;
}
- String key = RedisKeyType.PLANNER_SCHEDULE.key + "CRN-" + basCrnp.getCrnNo();
- List<Object> items = redisUtil.lGet(key, 0, -1);
- if (items == null || items.isEmpty()) {
- return;
+ String key = RedisKeyType.PLANNER_SCHEDULE.key + "CRN-" + basCrnp.getCrnNo();
+ List<Object> items = redisUtil.lGet(key, 0, -1);
+ if (items == null || items.isEmpty()) {
+ return;
+ }
+
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, basCrnp.getCrnNo());
+ if (crnThread == null) {
+ return;
+ }
+ CrnProtocol crnProtocol = crnThread.getStatus();
+ if (crnProtocol == null) {
+ return;
+ }
+ List<WrkMast> running = wrkMastService.list(new QueryWrapper<WrkMast>()
+ .eq("crn_no", basCrnp.getCrnNo())
+ .in("wrk_sts", WrkStsType.INBOUND_RUN.sts, WrkStsType.OUTBOUND_RUN.sts, WrkStsType.LOC_MOVE_RUN.sts, WrkStsType.CRN_MOVE_RUN.sts)
+ );
+ if (!running.isEmpty()) {
+ return;
+ }
+ if (!(crnProtocol.getMode() == CrnModeType.AUTO.id
+ && crnProtocol.getTaskNo() == 0
+ && crnProtocol.getStatus() == CrnStatusType.IDLE.id
+ && crnProtocol.getLoaded() == 0
+ && crnProtocol.getForkPos() == 0
+ && crnProtocol.getAlarm() == 0)) {
+ return;
+ }
+
+ for (Object v : items) {
+ String s = String.valueOf(v);
+ JSONObject obj = null;
+ try { obj = JSON.parseObject(s); } catch (Exception ignore) {}
+ if (obj == null) {
+ continue;
+ }
+ Integer startEpochSec = obj.getInteger("startEpochSec");
+ Integer endEpochSec = obj.getInteger("endEpochSec");
+ Integer taskId = obj.getInteger("taskId");
+ String taskType = obj.getString("taskType");
+ if (startEpochSec == null || taskId == null || taskType == null) {
+ continue;
+ }
+ int earlySlackSec = 5;
+ int lateSlackSec = 10;
+ Object systemConfigMapObj = redisUtil.get(RedisKeyType.SYSTEM_CONFIG_MAP.key);
+ if (systemConfigMapObj != null) {
+ try {
+ HashMap<String, String> systemConfigMap = (HashMap<String, String>) systemConfigMapObj;
+ String es = systemConfigMap.getOrDefault("plannerEarlySlackSec", "60");
+ String ls = systemConfigMap.getOrDefault("plannerLateSlackSec", "10");
+ earlySlackSec = Integer.parseInt(es);
+ lateSlackSec = Integer.parseInt(ls);
+ } catch (Exception ignore) {}
+ }
+ if (nowSec < startEpochSec - earlySlackSec) {
+ continue;
+ }
+ if (endEpochSec != null && nowSec > endEpochSec + lateSlackSec) {
+ redisUtil.lRemove(key, 1, s);
+ continue;
}
- CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, basCrnp.getCrnNo());
- if (crnThread == null) {
- return;
- }
- CrnProtocol crnProtocol = crnThread.getStatus();
- if (crnProtocol == null) {
- return;
- }
- List<WrkMast> running = wrkMastService.list(new QueryWrapper<WrkMast>()
- .eq("crn_no", basCrnp.getCrnNo())
- .in("wrk_sts", WrkStsType.INBOUND_RUN.sts, WrkStsType.OUTBOUND_RUN.sts, WrkStsType.LOC_MOVE_RUN.sts, WrkStsType.CRN_MOVE_RUN.sts)
- );
- if (!running.isEmpty()) {
- return;
- }
- if (!(crnProtocol.getMode() == CrnModeType.AUTO.id
- && crnProtocol.getTaskNo() == 0
- && crnProtocol.getStatus() == CrnStatusType.IDLE.id
- && crnProtocol.getLoaded() == 0
- && crnProtocol.getForkPos() == 0
- && crnProtocol.getAlarm() == 0)) {
- return;
+ WrkMast wrkMast = wrkMastService.selectByWorkNo(taskId);
+ if (wrkMast == null) {
+ redisUtil.lRemove(key, 1, s);
+ continue;
}
- for (Object v : items) {
- String s = String.valueOf(v);
- JSONObject obj = null;
- try { obj = JSON.parseObject(s); } catch (Exception ignore) {}
- if (obj == null) {
- continue;
- }
- Integer startEpochSec = obj.getInteger("startEpochSec");
- Integer endEpochSec = obj.getInteger("endEpochSec");
- Integer taskId = obj.getInteger("taskId");
- String taskType = obj.getString("taskType");
- if (startEpochSec == null || taskId == null || taskType == null) {
- continue;
- }
- int earlySlackSec = 5;
- int lateSlackSec = 10;
- Object systemConfigMapObj = redisUtil.get(RedisKeyType.SYSTEM_CONFIG_MAP.key);
- if (systemConfigMapObj != null) {
- try {
- HashMap<String, String> systemConfigMap = (HashMap<String, String>) systemConfigMapObj;
- String es = systemConfigMap.getOrDefault("plannerEarlySlackSec", "60");
- String ls = systemConfigMap.getOrDefault("plannerLateSlackSec", "10");
- earlySlackSec = Integer.parseInt(es);
- lateSlackSec = Integer.parseInt(ls);
- } catch (Exception ignore) {}
- }
- if (nowSec < startEpochSec - earlySlackSec) {
- continue;
- }
- if (endEpochSec != null && nowSec > endEpochSec + lateSlackSec) {
+ if ("IN".equalsIgnoreCase(taskType)) {
+ boolean result = this.crnExecuteInPlanner(basCrnp, crnThread, wrkMast);//鍏ュ簱
+ if (result) {
redisUtil.lRemove(key, 1, s);
- continue;
+ break;
}
-
- WrkMast wrkMast = wrkMastService.selectByWorkNo(taskId);
- if (wrkMast == null) {
+ } else if ("OUT".equalsIgnoreCase(taskType)) {
+ boolean result = this.crnExecuteOutPlanner(basCrnp, crnThread, wrkMast);//鍑哄簱
+ if (result) {
redisUtil.lRemove(key, 1, s);
- continue;
+ break;
}
-
- if ("IN".equalsIgnoreCase(taskType)) {
- boolean result = this.crnExecuteInPlanner(basCrnp, crnThread, wrkMast);//鍏ュ簱
- if (result) {
- redisUtil.lRemove(key, 1, s);
- break;
- }
- } else if ("OUT".equalsIgnoreCase(taskType)) {
- boolean result = this.crnExecuteOutPlanner(basCrnp, crnThread, wrkMast);//鍑哄簱
- if (result) {
- redisUtil.lRemove(key, 1, s);
- break;
- }
- } else if ("MOVE".equalsIgnoreCase(taskType)) {
- boolean result = this.crnExecuteMovePlanner(basCrnp, crnThread, wrkMast);//绉诲簱
- if (result) {
- redisUtil.lRemove(key, 1, s);
- break;
- }
+ } else if ("MOVE".equalsIgnoreCase(taskType)) {
+ boolean result = this.crnExecuteMovePlanner(basCrnp, crnThread, wrkMast);//绉诲簱
+ if (result) {
+ redisUtil.lRemove(key, 1, s);
+ break;
}
}
+ }
}
private synchronized boolean crnExecuteMovePlanner(BasCrnp basCrnp, CrnThread crnThread, WrkMast wrkMast) {
--
Gitblit v1.9.1