From 3c1543a1049670c227755229a0305613442bcda8 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 29 四月 2026 20:43:13 +0800
Subject: [PATCH] Merge branch 'codex/ai-provider-protocol-gateway'
---
src/main/java/com/zy/ai/service/impl/AutoTuneSnapshotServiceImpl.java | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 56 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/zy/ai/service/impl/AutoTuneSnapshotServiceImpl.java b/src/main/java/com/zy/ai/service/impl/AutoTuneSnapshotServiceImpl.java
index ee02f58..abe8c0a 100644
--- a/src/main/java/com/zy/ai/service/impl/AutoTuneSnapshotServiceImpl.java
+++ b/src/main/java/com/zy/ai/service/impl/AutoTuneSnapshotServiceImpl.java
@@ -1,15 +1,19 @@
package com.zy.ai.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.zy.ai.domain.autotune.AutoTuneControlModeSnapshot;
import com.zy.ai.domain.autotune.AutoTuneTaskDetailItem;
import com.zy.ai.domain.autotune.AutoTuneParameterSnapshot;
+import com.zy.ai.domain.autotune.AutoTuneRoutePressureSnapshot;
import com.zy.ai.domain.autotune.AutoTuneRuleDefinition;
import com.zy.ai.domain.autotune.AutoTuneRuleSnapshotItem;
import com.zy.ai.domain.autotune.AutoTuneSnapshot;
import com.zy.ai.domain.autotune.AutoTuneStationRuntimeItem;
import com.zy.ai.domain.autotune.AutoTuneTaskSnapshot;
+import com.zy.ai.service.AutoTuneControlModeService;
import com.zy.ai.service.AutoTuneSnapshotService;
import com.zy.ai.service.FlowTopologySnapshotService;
+import com.zy.ai.service.RoutePressureSnapshotService;
import com.zy.asrs.domain.vo.StationCycleCapacityVo;
import com.zy.asrs.domain.vo.StationCycleLoopVo;
import com.zy.asrs.entity.BasCrnp;
@@ -33,6 +37,8 @@
import com.zy.core.model.protocol.StationProtocol;
import com.zy.core.thread.StationThread;
import com.zy.system.service.ConfigService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -50,13 +56,14 @@
@Service("autoTuneSnapshotService")
public class AutoTuneSnapshotServiceImpl implements AutoTuneSnapshotService {
+ private static final Logger LOGGER = LoggerFactory.getLogger(AutoTuneSnapshotServiceImpl.class);
+
private static final int DEFAULT_CRN_OUT_BATCH_RUNNING_LIMIT = 5;
private static final int DEFAULT_CONVEYOR_STATION_TASK_LIMIT = 30;
private static final int DEFAULT_AI_AUTO_TUNE_INTERVAL_MINUTES = 10;
private static final int OUTBOUND_TASK_SAMPLE_LIMIT = 50;
private static final int STATION_LIMIT_BLOCKED_TASK_LIMIT = 50;
private static final int SYSTEM_MESSAGE_LIMIT = 160;
-
@Autowired
private WrkMastService wrkMastService;
@@ -68,6 +75,12 @@
@Autowired
private FlowTopologySnapshotService flowTopologySnapshotService;
+
+ @Autowired
+ private RoutePressureSnapshotService routePressureSnapshotService;
+
+ @Autowired
+ private AutoTuneControlModeService autoTuneControlModeService;
@Autowired
private ConfigService configService;
@@ -86,17 +99,30 @@
@Override
public AutoTuneSnapshot buildSnapshot() {
+ List<WrkMast> activeTasks = loadActiveTasks();
+ AutoTuneTaskSnapshot taskSnapshot = buildTaskSnapshot(activeTasks);
List<AutoTuneStationRuntimeItem> stationRuntimeSnapshot = buildStationRuntimeSnapshot();
+ AutoTuneRoutePressureSnapshot routePressureSnapshot = buildRoutePressureSnapshot(
+ activeTasks,
+ taskSnapshot,
+ stationRuntimeSnapshot
+ );
AutoTuneSnapshot snapshot = new AutoTuneSnapshot();
- snapshot.setTaskSnapshot(buildTaskSnapshot());
+ snapshot.setTaskSnapshot(taskSnapshot);
snapshot.setStationRuntimeSnapshot(stationRuntimeSnapshot);
+ snapshot.setRoutePressureSnapshot(routePressureSnapshot);
snapshot.setCycleLoadSnapshot(buildCycleLoadSnapshot());
snapshot.setFlowTopologySnapshot(flowTopologySnapshotService.buildSnapshot(stationRuntimeSnapshot));
snapshot.setCurrentParameterSnapshot(buildCurrentParameterSnapshot());
snapshot.setRuleSnapshot(buildRuleSnapshot());
+ snapshot.setControlModeSnapshot(buildControlModeSnapshot());
snapshot.setSnapshotTime(new Date());
return snapshot;
+ }
+
+ private AutoTuneControlModeSnapshot buildControlModeSnapshot() {
+ return autoTuneControlModeService.currentMode();
}
List<AutoTuneRuleSnapshotItem> buildRuleSnapshot() {
@@ -118,8 +144,10 @@
}
private AutoTuneTaskSnapshot buildTaskSnapshot() {
- List<WrkMast> activeTasks = loadActiveTasks();
+ return buildTaskSnapshot(loadActiveTasks());
+ }
+ private AutoTuneTaskSnapshot buildTaskSnapshot(List<WrkMast> activeTasks) {
AutoTuneTaskSnapshot snapshot = new AutoTuneTaskSnapshot();
snapshot.setActiveTaskCount(activeTasks.size());
snapshot.setStationLimitBlockedTasks(buildStationLimitBlockedTasks(activeTasks));
@@ -131,6 +159,30 @@
snapshot.setByDualCrn(countByDualCrn(activeTasks));
snapshot.setByIoType(countByIoType(activeTasks));
return snapshot;
+ }
+
+ private AutoTuneRoutePressureSnapshot buildRoutePressureSnapshot(List<WrkMast> activeTasks,
+ AutoTuneTaskSnapshot taskSnapshot,
+ List<AutoTuneStationRuntimeItem> stationRuntimeSnapshot) {
+ if (routePressureSnapshotService == null) {
+ return new AutoTuneRoutePressureSnapshot();
+ }
+ try {
+ AutoTuneRoutePressureSnapshot snapshot = routePressureSnapshotService.buildSnapshot(
+ activeTasks,
+ taskSnapshot,
+ stationRuntimeSnapshot
+ );
+ return snapshot == null ? new AutoTuneRoutePressureSnapshot() : snapshot;
+ } catch (Exception exception) {
+ LOGGER.warn(
+ "Build auto tune route pressure snapshot failed, fallback to empty snapshot. activeTaskCount={}, stationRuntimeCount={}",
+ safeList(activeTasks).size(),
+ safeList(stationRuntimeSnapshot).size(),
+ exception
+ );
+ return new AutoTuneRoutePressureSnapshot();
+ }
}
private List<AutoTuneTaskDetailItem> buildStationLimitBlockedTasks(List<WrkMast> activeTasks) {
@@ -298,6 +350,7 @@
item.setAutoing(protocol.isAutoing() ? 1 : 0);
item.setLoading(protocol.isLoading() ? 1 : 0);
item.setTaskNo(protocol.getTaskNo() == null ? 0 : protocol.getTaskNo());
+ item.setRunBlock(protocol.isRunBlock() ? 1 : 0);
item.setIoMode(protocol.getIoMode() == null ? null : String.valueOf(protocol.getIoMode()));
return item;
}
--
Gitblit v1.9.1