From eed1a95ef14fe1a7858645b9c578b1856ede90d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=87=A4=E5=90=89?= Date: Sat, 22 Mar 2025 17:45:24 +0800 Subject: [PATCH] =?UTF-8?q?fix:commandStatus=E5=BA=94=E5=BD=93=E5=8C=BA?= =?UTF-8?q?=E5=88=86=E4=B8=9A=E5=8A=A1=E6=8C=87=E4=BB=A4=E4=B8=8E=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E6=8C=87=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ms/app/controller/SysMonitorController.java | 17 ++++++++++ .../ms/app/device/spray/SprayTaskExecutor.java | 2 +- .../com/qyft/ms/app/front/cmd/DemoCommand.java | 2 +- .../app/front/cmd/business/DehumidifierStart.java | 4 +-- .../front/cmd/business/MatrixSprayChangeParam.java | 2 +- .../app/front/cmd/business/MatrixSprayStart.java | 8 ++--- .../front/cmd/business/NozzlePipelinePreFill.java | 6 ++-- .../app/front/cmd/business/NozzlePipelineWash.java | 2 +- .../front/cmd/business/SyringePipelineWash.java | 6 ++-- .../ms/system/common/constant/CommandStatus.java | 37 +++++++++++++--------- .../ms/system/controller/FrontCmdController.java | 2 +- .../system/controller/FrontCmdDebugController.java | 2 +- .../service/device/DeviceCommandService.java | 8 ++--- 13 files changed, 61 insertions(+), 37 deletions(-) create mode 100644 src/main/java/com/qyft/ms/app/controller/SysMonitorController.java diff --git a/src/main/java/com/qyft/ms/app/controller/SysMonitorController.java b/src/main/java/com/qyft/ms/app/controller/SysMonitorController.java new file mode 100644 index 0000000..7610e7d --- /dev/null +++ b/src/main/java/com/qyft/ms/app/controller/SysMonitorController.java @@ -0,0 +1,17 @@ +package com.qyft.ms.app.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Tag(name = "系统监控A") +@RestController +@RequestMapping("/api/sys/monitor") +@RequiredArgsConstructor +@Slf4j +public class SysMonitorController { + + +} diff --git a/src/main/java/com/qyft/ms/app/device/spray/SprayTaskExecutor.java b/src/main/java/com/qyft/ms/app/device/spray/SprayTaskExecutor.java index ad00128..58712c1 100644 --- a/src/main/java/com/qyft/ms/app/device/spray/SprayTaskExecutor.java +++ b/src/main/java/com/qyft/ms/app/device/spray/SprayTaskExecutor.java @@ -65,7 +65,7 @@ public class SprayTaskExecutor { public synchronized void startTask() { SprayTask sprayTask = SprayTask.getInstance(); if (taskThread != null && taskThread.isAlive()) { - webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(sprayTask.getCmdId(), sprayTask.getCmdCode(), CommandStatus.ERROR, "设备正在喷涂,请先停止喷涂")); + webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(sprayTask.getCmdId(), sprayTask.getCmdCode(), CommandStatus.DEVICE_ERROR, "设备正在喷涂,请先停止喷涂")); return; } sprayTask.setSpraying(true); diff --git a/src/main/java/com/qyft/ms/app/front/cmd/DemoCommand.java b/src/main/java/com/qyft/ms/app/front/cmd/DemoCommand.java index cbb78b7..8478166 100644 --- a/src/main/java/com/qyft/ms/app/front/cmd/DemoCommand.java +++ b/src/main/java/com/qyft/ms/app/front/cmd/DemoCommand.java @@ -47,7 +47,7 @@ public class DemoCommand extends BaseCommandHandler { JSONObject responseResultJson = motorXyzPositionGetCommandFuture.getResponseResult(); - webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.ERROR, "参数XXX必填")); + webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.DEVICE_ERROR, "参数XXX必填")); }); } diff --git a/src/main/java/com/qyft/ms/app/front/cmd/business/DehumidifierStart.java b/src/main/java/com/qyft/ms/app/front/cmd/business/DehumidifierStart.java index b567c53..a0b9bbe 100644 --- a/src/main/java/com/qyft/ms/app/front/cmd/business/DehumidifierStart.java +++ b/src/main/java/com/qyft/ms/app/front/cmd/business/DehumidifierStart.java @@ -39,7 +39,7 @@ public class DehumidifierStart extends BaseCommandHandler { Double humidity = form.getDoubleParam("humidity"); // 参数校验:humidity 必填 if (humidity == null) { - webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.ERROR, "参数 humidity 必填")); + webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.DEVICE_ERROR, "参数 humidity 必填")); throw new RuntimeException("参数 humidity 必填"); } return runAsync(() -> { @@ -53,7 +53,7 @@ public class DehumidifierStart extends BaseCommandHandler { // 判断是否需要除湿:若前端设定湿度大于当前湿度,则无需开启除湿阀 if (humidity > deviceHumidity) { - webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.ERROR, "设定湿度大于当前湿度,无需除湿")); + webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.DEVICE_ERROR, "设定湿度大于当前湿度,无需除湿")); throw new RuntimeException("设定湿度大于当前湿度,无需除湿"); } diff --git a/src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayChangeParam.java b/src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayChangeParam.java index 15c5d5f..dc87402 100644 --- a/src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayChangeParam.java +++ b/src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayChangeParam.java @@ -44,7 +44,7 @@ public class MatrixSprayChangeParam extends BaseCommandHandler { Double movingSpeed = form.getDoubleParam("movingSpeed"); if (highVoltageValue > 6000) { - webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.ERROR, "电压不能大于6000V")); + webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.DEVICE_ERROR, "电压不能大于6000V")); throw new RuntimeException("电压不能大于6000V"); } diff --git a/src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayStart.java b/src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayStart.java index 0b43a20..3f6f79c 100644 --- a/src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayStart.java +++ b/src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayStart.java @@ -79,7 +79,7 @@ public class MatrixSprayStart extends BaseCommandHandler { for (Map.Entry entry : paramMap.entrySet()) { if (entry.getValue() == null) { String errorMsg = "参数 " + entry.getKey() + " 必填"; - webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(cmdId, cmdCode, CommandStatus.ERROR, errorMsg)); + webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(cmdId, cmdCode, CommandStatus.DEVICE_ERROR, errorMsg)); throw new RuntimeException(errorMsg); } } @@ -115,7 +115,7 @@ public class MatrixSprayStart extends BaseCommandHandler { public CompletableFuture handle(FrontCmdControlForm form) { SprayTask sprayTask = SprayTask.getInstance(); if (sprayTask.isSpraying()) {//判断设备是否正在喷涂 - webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.ERROR, "设备正在喷涂,请先停止喷涂")); + webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.DEVICE_ERROR, "设备正在喷涂,请先停止喷涂")); throw new RuntimeException("设备正在喷涂,请先停止喷涂"); } sprayTask.setCmdId(form.getCmdId()); @@ -136,11 +136,11 @@ public class MatrixSprayStart extends BaseCommandHandler { nonNullCheck(matrixPathType, form.getCmdId(), form.getCmdCode(), motorZHeight, gasPressure, volume, highVoltage, spacing, movingSpeed, times, positionList); if (highVoltageValue > 6000) { - webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.ERROR, "电压不能大于6000V")); + webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.DEVICE_ERROR, "电压不能大于6000V")); throw new RuntimeException("电压不能大于6000V"); } if (positionList.isEmpty()) { - webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.ERROR, "喷涂区域不能为空")); + webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.DEVICE_ERROR, "喷涂区域不能为空")); throw new RuntimeException("喷涂区域不能为空"); } // 3. 设定喷涂参数 diff --git a/src/main/java/com/qyft/ms/app/front/cmd/business/NozzlePipelinePreFill.java b/src/main/java/com/qyft/ms/app/front/cmd/business/NozzlePipelinePreFill.java index 2fa9481..53f511f 100644 --- a/src/main/java/com/qyft/ms/app/front/cmd/business/NozzlePipelinePreFill.java +++ b/src/main/java/com/qyft/ms/app/front/cmd/business/NozzlePipelinePreFill.java @@ -45,11 +45,11 @@ public class NozzlePipelinePreFill extends BaseCommandHandler { } Double speed = form.getDoubleParam("speed"); if (speed == null) { - webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.ERROR, "参数 speed 必填")); + webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.DEVICE_ERROR, "参数 speed 必填")); throw new RuntimeException("参数 speed 必填"); } if (speed > 100) { - webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.ERROR, "预充速度不能大于100")); + webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.DEVICE_ERROR, "预充速度不能大于100")); throw new RuntimeException("预充速度不能大于100"); } deviceStatus.setPrefilling(true); @@ -61,7 +61,7 @@ public class NozzlePipelinePreFill extends BaseCommandHandler { JSONObject motorXyzPositionGetCommandDeviceResult = motorXyzPositionGetCommandFuture.getResponseResult(); Double zAxisPosition = motorXyzPositionGetCommandDeviceResult.getJSONObject("data").getDouble("zAxisPosition"); if (zAxisPosition == null) { - webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.ERROR, "获得电机XYZ相对原点坐标失败")); + webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.DEVICE_ERROR, "获得电机XYZ相对原点坐标失败")); throw new RuntimeException("获得电机XYZ相对原点坐标失败"); } SysSettings safeZHeightSysSettings = sysSettingsService.getOne(new LambdaQueryWrapper().eq(SysSettings::getCode, "safe_z_height")); diff --git a/src/main/java/com/qyft/ms/app/front/cmd/business/NozzlePipelineWash.java b/src/main/java/com/qyft/ms/app/front/cmd/business/NozzlePipelineWash.java index 3087ce2..07e9b1d 100644 --- a/src/main/java/com/qyft/ms/app/front/cmd/business/NozzlePipelineWash.java +++ b/src/main/java/com/qyft/ms/app/front/cmd/business/NozzlePipelineWash.java @@ -53,7 +53,7 @@ public class NozzlePipelineWash extends BaseCommandHandler { JSONObject motorXyzPositionGetCommandDeviceResult = motorXyzPositionGetCommandFuture.getResponseResult(); Double zAxisPosition = motorXyzPositionGetCommandDeviceResult.getJSONObject("data").getDouble("zAxisPosition"); if (zAxisPosition == null) { - webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.ERROR, "获得电机XYZ相对原点坐标失败", motorXyzPositionGetCommandDeviceResult)); + webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.DEVICE_ERROR, "获得电机XYZ相对原点坐标失败", motorXyzPositionGetCommandDeviceResult)); throw new RuntimeException("获得电机XYZ相对原点坐标失败"); } SysSettings safeZHeightSysSettings = sysSettingsService.getOne(new LambdaQueryWrapper().eq(SysSettings::getCode, "safe_z_height")); diff --git a/src/main/java/com/qyft/ms/app/front/cmd/business/SyringePipelineWash.java b/src/main/java/com/qyft/ms/app/front/cmd/business/SyringePipelineWash.java index 7f1d8f1..7bd0eff 100644 --- a/src/main/java/com/qyft/ms/app/front/cmd/business/SyringePipelineWash.java +++ b/src/main/java/com/qyft/ms/app/front/cmd/business/SyringePipelineWash.java @@ -45,11 +45,11 @@ public class SyringePipelineWash extends BaseCommandHandler { } Double speed = form.getDoubleParam("speed"); if (speed == null) { - webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.ERROR, "参数 speed 必填")); + webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.DEVICE_ERROR, "参数 speed 必填")); throw new RuntimeException("参数 speed 必填"); } if (speed > 100) { - webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.ERROR, "清洗速度不能大于100")); + webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.DEVICE_ERROR, "清洗速度不能大于100")); throw new RuntimeException("预充速度不能大于100"); } deviceStatus.setCleaningSyringePipeline(true); @@ -62,7 +62,7 @@ public class SyringePipelineWash extends BaseCommandHandler { JSONObject motorXyzPositionGetCommandDeviceResult = motorXyzPositionGetCommandFuture.getResponseResult(); Double zAxisPosition = motorXyzPositionGetCommandDeviceResult.getJSONObject("data").getDouble("zAxisPosition"); if (zAxisPosition == null) { - webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.ERROR, "获得电机XYZ相对原点坐标失败", motorXyzPositionGetCommandDeviceResult)); + webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.DEVICE_ERROR, "获得电机XYZ相对原点坐标失败", motorXyzPositionGetCommandDeviceResult)); throw new RuntimeException("获得电机XYZ相对原点坐标失败"); } SysSettings safeZHeightSysSettings = sysSettingsService.getOne(new LambdaQueryWrapper().eq(SysSettings::getCode, "safe_z_height")); diff --git a/src/main/java/com/qyft/ms/system/common/constant/CommandStatus.java b/src/main/java/com/qyft/ms/system/common/constant/CommandStatus.java index bb6ac80..4dfe81a 100644 --- a/src/main/java/com/qyft/ms/system/common/constant/CommandStatus.java +++ b/src/main/java/com/qyft/ms/system/common/constant/CommandStatus.java @@ -4,37 +4,44 @@ public class CommandStatus { /** * 普通消息反馈 */ - public static final String SEND = "SEND"; + public static final String SEND = "send"; + /** - * 收到业务指令反馈 + * 业务指令 收到指令 */ public static final String RECEIVE = "receive"; /** - * 开始执行业务指令反馈 + * 业务指令 开始执行业务指令 */ public static final String START = "start"; /** - * 收到设备结果反馈 - */ - public static final String RESULT = "result"; - /** - * 指令执行错误反馈 - */ - public static final String ERROR = "error"; - /** - * 指令执行成功 + * 业务指令 执行成功 */ public static final String SUCCESS = "success"; /** - * 指令执行失败 + * 业务指令 执行失败 */ public static final String FAIL = "fail"; /** - * 指令执行失败 + * 业务指令 喷涂完毕 */ public static final String SPRAY_TASK_FINISH = "spray_task_finish"; /** - * 业务指令处理完毕反馈 + * 业务指令 指令处理完毕反馈 */ public static final String FINISH = "finish"; + + + /** + * 设备指令 发送设备指令 + */ + public static final String DEVICE_SEND = "device_send"; + /** + * 设备指令 收到设备指令反馈 + */ + public static final String DEVICE_RESULT = "device_result"; + /** + * 设备指令 收到设备指令反馈 错误 + */ + public static final String DEVICE_ERROR = "device_error"; } diff --git a/src/main/java/com/qyft/ms/system/controller/FrontCmdController.java b/src/main/java/com/qyft/ms/system/controller/FrontCmdController.java index 27dddb8..6d848e2 100644 --- a/src/main/java/com/qyft/ms/system/controller/FrontCmdController.java +++ b/src/main/java/com/qyft/ms/system/controller/FrontCmdController.java @@ -45,7 +45,7 @@ public class FrontCmdController { webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(cmdId, cmdCode, CommandStatus.RECEIVE, "已收到业务指令请求,开始处理")); CommandHandler commandHandler = registry.getHandler(cmdCode); if (commandHandler == null) { - webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(cmdId, cmdCode, CommandStatus.ERROR, "未找到对应的业务指令")); + webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(cmdId, cmdCode, CommandStatus.DEVICE_ERROR, "未找到对应的业务指令")); log.error("未找到对应的业务指令"); return Result.failed(); } diff --git a/src/main/java/com/qyft/ms/system/controller/FrontCmdDebugController.java b/src/main/java/com/qyft/ms/system/controller/FrontCmdDebugController.java index 9a1a552..7b582a3 100644 --- a/src/main/java/com/qyft/ms/system/controller/FrontCmdDebugController.java +++ b/src/main/java/com/qyft/ms/system/controller/FrontCmdDebugController.java @@ -37,7 +37,7 @@ public class FrontCmdDebugController { webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(cmdId, cmdCode, CommandStatus.RECEIVE, "已收到调试指令请求,开始处理")); CommandHandler commandHandler = registry.getHandler(cmdCode); if (commandHandler == null) { - webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(cmdId, cmdCode, CommandStatus.ERROR, "未找到对应的调试指令")); + webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(cmdId, cmdCode, CommandStatus.DEVICE_ERROR, "未找到对应的调试指令")); log.error("未找到对应的调试指令"); return Result.failed(); } diff --git a/src/main/java/com/qyft/ms/system/service/device/DeviceCommandService.java b/src/main/java/com/qyft/ms/system/service/device/DeviceCommandService.java index 9b51ad4..59b9ae9 100644 --- a/src/main/java/com/qyft/ms/system/service/device/DeviceCommandService.java +++ b/src/main/java/com/qyft/ms/system/service/device/DeviceCommandService.java @@ -60,8 +60,8 @@ public class DeviceCommandService { // }); commandFuture.getResponseFuture().thenApply(result -> { - Boolean status = result.getBool("status"); - if (!status) { //response失败 + Boolean success = result.getBool("success"); + if (!success) { //response失败 String message = deviceCommand.getCmdName() + "指令,设备response错误"; throw new RuntimeException(message); } @@ -84,7 +84,7 @@ public class DeviceCommandService { // webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(cmdId, cmdCode, CommandStatus.RESULT, deviceCommand.getCmdName() + "指令,设备ack正常", result)); // return result; // }); - + webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(cmdId, cmdCode, CommandStatus.DEVICE_SEND, deviceCommand.getCmdName() + "指令,已发给设备", deviceCommand)); commandFuture.getResponseFuture().thenApply(result -> { Boolean success = result.getBool("success"); if (success == null || !success) { //response失败 @@ -92,7 +92,7 @@ public class DeviceCommandService { webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(cmdId, cmdCode, CommandStatus.SEND, message, result)); throw new RuntimeException(message); } - webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(cmdId, cmdCode, CommandStatus.RESULT, deviceCommand.getCmdName() + "指令,设备response正常,耗时:" + (commandFuture.getEndSendTime() - commandFuture.getStartSendTime()), result)); + webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(cmdId, cmdCode, CommandStatus.DEVICE_RESULT, deviceCommand.getCmdName() + "指令,设备response正常,耗时:" + (commandFuture.getEndSendTime() - commandFuture.getStartSendTime()), result)); return result.get("data"); });