From 4c2a61f24d4fb612628a7b0794aa1f91b60b20be Mon Sep 17 00:00:00 2001 From: luoyifan Date: Wed, 2 Jul 2025 23:43:24 +0800 Subject: [PATCH] =?UTF-8?q?LccMqttManager=20/=20EnvManager=20=E8=84=B1?= =?UTF-8?q?=E7=A6=BB=20viewport=20=E4=B9=9F=E8=83=BD=E8=BF=90=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/galaxis/rcs/RCSService.java | 4 +- .../java/com/galaxis/rcs/ptr/PtrMqttClient.java | 2 +- .../com/yvan/logisticsModel/LogisticsRuntime.java | 2 +- .../main/java/com/yvan/mqtt/LccMqttService.java | 28 +++++++------ .../yvan/workbench/controller/EnvController.java | 25 ----------- .../yvan/workbench/controller/LccController.java | 49 ++++++++++++++++------ .../workbench/service/LccAutoStartService.java | 2 +- 7 files changed, 57 insertions(+), 55 deletions(-) diff --git a/servo/src/main/java/com/galaxis/rcs/RCSService.java b/servo/src/main/java/com/galaxis/rcs/RCSService.java index d143ca0..c5fb6a0 100644 --- a/servo/src/main/java/com/galaxis/rcs/RCSService.java +++ b/servo/src/main/java/com/galaxis/rcs/RCSService.java @@ -48,7 +48,7 @@ public class RCSService { } @SneakyThrows - public static void projectStart(String projectUuid, Long envId) { + public static void serverStart(String projectUuid, Long envId) { LogisticsRuntime runtime = LogisticsRuntimeService.INSTANCE.getByProjectEnv(projectUuid, envId); if (runtime != null) { @@ -183,7 +183,7 @@ public class RCSService { runtime.start(); } - public static void projectStop(String projectUuid, Long envId) { + public static void serverStop(String projectUuid, Long envId) { LogisticsRuntime runtime = LogisticsRuntimeService.INSTANCE.getByProjectEnv(projectUuid, envId); if (runtime != null) { LogisticsRuntimeService.INSTANCE.stopByProjectEnv(projectUuid, envId); diff --git a/servo/src/main/java/com/galaxis/rcs/ptr/PtrMqttClient.java b/servo/src/main/java/com/galaxis/rcs/ptr/PtrMqttClient.java index 37bf0a6..3da0547 100644 --- a/servo/src/main/java/com/galaxis/rcs/ptr/PtrMqttClient.java +++ b/servo/src/main/java/com/galaxis/rcs/ptr/PtrMqttClient.java @@ -49,7 +49,7 @@ public class PtrMqttClient implements MqttCallback { clientForSend.connect(options); connectLatch.await(); - BannerUtils.printConfig(log, "MQTT 开启监听成功", new String[]{ + BannerUtils.printConfig(log, "PtrMqttClient MQTT 开启监听成功", new String[]{ "brokerUrl: " + brokerUrl, "userName: " + username, "clientId: " + clientId, diff --git a/servo/src/main/java/com/yvan/logisticsModel/LogisticsRuntime.java b/servo/src/main/java/com/yvan/logisticsModel/LogisticsRuntime.java index 22b83a3..db6ec2d 100644 --- a/servo/src/main/java/com/yvan/logisticsModel/LogisticsRuntime.java +++ b/servo/src/main/java/com/yvan/logisticsModel/LogisticsRuntime.java @@ -243,7 +243,7 @@ public class LogisticsRuntime { // 启动 MQTT 监听 this.amrMessageHandler.start(this.env.getEnvConfig().getMqtt(), this.serverId); - this.lccMqttService.start(this.env.getEnvConfig().getMqtt(), this.serverId); + this.lccMqttService.start(this.env.getEnvConfig().getMqtt(), this.serverId + "_lcc_send"); this.lccRedisService.start(this.env.getEnvConfig().getRedis(), this.serverId); // 开启所有机器人的任务处理 diff --git a/servo/src/main/java/com/yvan/mqtt/LccMqttService.java b/servo/src/main/java/com/yvan/mqtt/LccMqttService.java index 1a78177..ee6bc14 100644 --- a/servo/src/main/java/com/yvan/mqtt/LccMqttService.java +++ b/servo/src/main/java/com/yvan/mqtt/LccMqttService.java @@ -5,6 +5,7 @@ import com.yvan.logisticsModel.LogisticsRuntime; import lombok.Getter; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; +import org.clever.core.BannerUtils; import org.clever.core.mapper.JacksonMapper; import org.eclipse.paho.mqttv5.client.*; import org.eclipse.paho.mqttv5.client.persist.MemoryPersistence; @@ -54,11 +55,11 @@ public class LccMqttService implements MqttCallback { connectionLock.lock(); try { if (connected) { - log.warn("MQTT service is already started"); + log.warn("LCC_MQTT service is already started"); return; } - log.info("Starting MQTT service for project: {}, env: {}", this.runtime.projectUuid, this.runtime.envId); + log.info("Starting LCC_MQTT service for project: {}, env: {}", this.runtime.projectUuid, this.runtime.envId); // 创建MQTT客户端 mqttClient = new MqttClient(mqttConfig.getBrokerUrl(), clientId, persistence); @@ -79,12 +80,12 @@ public class LccMqttService implements MqttCallback { while (attempts < MAX_RETRIES && !connected) { attempts++; try { - log.info("Connecting to MQTT broker (attempt {}/{})", attempts, MAX_RETRIES); + log.info("Connecting to LCC_MQTT broker (attempt {}/{})", attempts, MAX_RETRIES); mqttClient.connect(options); connected = true; - log.info("MQTT connected successfully"); + log.info("LCC_MQTT connected successfully"); } catch (MqttException e) { - log.error("MQTT connection failed (attempt " + attempts + "/{" + MAX_RETRIES + "})", e); + log.error("LCC_MQTT connection failed (attempt " + attempts + "/{" + MAX_RETRIES + "})", e); // 重试前等待 if (attempts < MAX_RETRIES) { @@ -99,7 +100,7 @@ public class LccMqttService implements MqttCallback { } if (!connected) { - log.error("Failed to connect to MQTT broker after {} attempts", MAX_RETRIES); + log.error("Failed to connect to LCC_MQTT broker after {} attempts", MAX_RETRIES); } } finally { connectionLock.unlock(); @@ -116,9 +117,9 @@ public class LccMqttService implements MqttCallback { try { mqttClient.disconnect(); mqttClient.close(); - log.info("MQTT disconnected"); + log.info("LCC_MQTT disconnected"); } catch (MqttException e) { - log.error("Error disconnecting MQTT", e); + log.error("Error disconnecting LCC_MQTT", e); } } connected = false; @@ -292,7 +293,7 @@ public class LccMqttService implements MqttCallback { @Override public void disconnected(MqttDisconnectResponse disconnectResponse) { - log.warn("MQTT disconnected: {}", disconnectResponse); + log.warn("LCC_MQTT disconnected: {}", disconnectResponse); connectionLock.lock(); try { connected = false; @@ -303,7 +304,7 @@ public class LccMqttService implements MqttCallback { @Override public void mqttErrorOccurred(MqttException exception) { - log.error("MQTT error occurred", exception); + log.error("LCC_MQTT error occurred", exception); } @Override @@ -329,7 +330,10 @@ public class LccMqttService implements MqttCallback { @Override public void connectComplete(boolean reconnect, String serverURI) { - log.info("MQTT connection complete: reconnect={}, serverURI={}", reconnect, serverURI); + BannerUtils.printConfig(log, "LCC_MQTT 开启监听成功", new String[]{ + "brokerUrl: " + serverURI, + "userName: " + this.mqttConfig.getUsername(), + "clientId: " + clientId}); connectionLock.lock(); try { connected = true; @@ -340,6 +344,6 @@ public class LccMqttService implements MqttCallback { @Override public void authPacketArrived(int i, MqttProperties mqttProperties) { - log.info("MQTT authPacketArrived({}, {})", i, mqttProperties); + log.info("LCC_MQTT authPacketArrived({}, {})", i, mqttProperties); } } diff --git a/servo/src/main/java/com/yvan/workbench/controller/EnvController.java b/servo/src/main/java/com/yvan/workbench/controller/EnvController.java index ff21e1e..bb44121 100644 --- a/servo/src/main/java/com/yvan/workbench/controller/EnvController.java +++ b/servo/src/main/java/com/yvan/workbench/controller/EnvController.java @@ -34,29 +34,4 @@ public class EnvController { return R.success(list); } - - public static R getAllExecutor(@RequestBody Map params) { - String catalogCode = Conv.asString(params.get("catalogCode")); - Long envId = Conv.asLong(params.get("envId")); - - if (Strings.isNullOrEmpty(catalogCode)) { - return R.fail("catalogCode must not be null"); - } - if (envId == null) { - return R.fail("envId must not be null"); - } - - var list = queryDSL.select(QueryDslUtils.linkedMap( - lccBasExecutor.executorId, - lccBasExecutor.virtualLocationAt, - lccBasExecutor.virtualExecutorPayload - )) - .from(lccBasExecutor) - .where(lccBasExecutor.envId.eq(envId)) - .where(lccBasExecutor.isActive.eq(true)) - .where(lccBasExecutor.virtualFloorCode.eq(catalogCode)) - .fetch(); - - return R.success(list); - } } diff --git a/servo/src/main/java/com/yvan/workbench/controller/LccController.java b/servo/src/main/java/com/yvan/workbench/controller/LccController.java index 57cff06..703120b 100644 --- a/servo/src/main/java/com/yvan/workbench/controller/LccController.java +++ b/servo/src/main/java/com/yvan/workbench/controller/LccController.java @@ -14,6 +14,7 @@ import org.clever.web.mvc.annotation.RequestBody; import java.util.Map; import static com.galaxis.rcs.common.query.QLccBasContainer.lccBasContainer; +import static com.galaxis.rcs.common.query.QLccBasExecutor.lccBasExecutor; import static com.galaxis.rcs.common.query.QLccBasLocation.lccBasLocation; import static com.galaxis.rcs.common.query.QLccInvLpn.lccInvLpn; @@ -28,7 +29,7 @@ public class LccController { return R.success(mapService.getAllProjects()); } - public static R projectStart(@RequestBody Map params) { + public static R serverStart(@RequestBody Map params) { String projectUuid = Conv.asString(params.get("projectUUID")); Long envId = Conv.asLong(params.get("envId")); @@ -40,14 +41,14 @@ public class LccController { } // 启动 RCS 服务器 - RCSService.projectStart(projectUuid, envId); + RCSService.serverStart(projectUuid, envId); // 启动MFC服务器 / 启动WCS服务器 / 启动PES服务器 等等 return R.success("Project started successfully"); } - public static R projectStop(@RequestBody Map params) { + public static R serverStop(@RequestBody Map params) { String projectUuid = Conv.asString(params.get("projectUUID")); Long envId = Conv.asLong(params.get("envId")); @@ -59,25 +60,22 @@ public class LccController { } // 停止RCS服务器 - RCSService.projectStop(projectUuid, envId); + RCSService.serverStop(projectUuid, envId); // 停止MFC服务器 / 停止WCS服务器 / 停止PES服务器 等等 return R.success("Project stopped successfully"); } - public static R getAllInv(@RequestBody Map params) { + public static R loadInv(@RequestBody Map params) { String catalogCode = Conv.asString(params.get("catalogCode")); Long envId = Conv.asLong(params.get("envId")); - if (Strings.isNullOrEmpty(catalogCode)) { - return R.fail("catalogCode must not be null"); - } if (envId == null) { return R.fail("envId must not be null"); } - var list = queryDSL.select(QueryDslUtils.linkedMap( + var selectAction = queryDSL.select(QueryDslUtils.linkedMap( lccInvLpn.lpn, lccBasContainer.containerType, lccInvLpn.locCode, @@ -89,16 +87,41 @@ public class LccController { .from(lccInvLpn) .innerJoin(lccBasLocation).on( lccInvLpn.locCode.eq(lccBasLocation.locCode).and( - lccBasLocation.envId.eq(lccBasLocation.envId) + lccInvLpn.envId.eq(lccBasLocation.envId) ) ) .innerJoin(lccBasContainer).on( lccInvLpn.lpn.eq(lccInvLpn.lpn).and( - lccBasContainer.envId.eq(lccInvLpn.envId) + lccInvLpn.envId.eq(lccInvLpn.envId) ) ) - .where(lccInvLpn.envId.eq(envId)) - .where(lccBasLocation.catalogCode.eq(catalogCode)) + .where(lccInvLpn.envId.eq(envId)); + + if (!Strings.isNullOrEmpty(catalogCode)) { + selectAction.where(lccBasLocation.catalogCode.eq(catalogCode)); + } + + var list = selectAction.fetch(); + + return R.success(list); + } + + public static R loadExecutor(@RequestBody Map params) { + Long envId = Conv.asLong(params.get("envId")); + + if (envId == null) { + return R.fail("envId must not be null"); + } + + var list = queryDSL.select(QueryDslUtils.linkedMap( + lccBasExecutor.executorId, + lccBasExecutor.virtualFloorCode, + lccBasExecutor.virtualLocationAt, + lccBasExecutor.virtualExecutorPayload + )) + .from(lccBasExecutor) + .where(lccBasExecutor.envId.eq(envId)) + .where(lccBasExecutor.isActive.eq(true)) .fetch(); return R.success(list); diff --git a/servo/src/main/java/com/yvan/workbench/service/LccAutoStartService.java b/servo/src/main/java/com/yvan/workbench/service/LccAutoStartService.java index 1d7b785..da56707 100644 --- a/servo/src/main/java/com/yvan/workbench/service/LccAutoStartService.java +++ b/servo/src/main/java/com/yvan/workbench/service/LccAutoStartService.java @@ -27,7 +27,7 @@ public class LccAutoStartService implements SmartLifecycle { continue; // 跳过无效的配置 } - RCSService.projectStart(projectUUID, envId); + RCSService.serverStart(projectUUID, envId); } }