From 1b3330318d02224dcd7e3660b95624041e057010 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=87=A4=E5=90=89?= Date: Thu, 20 Mar 2025 15:36:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=9C=AA=E5=AE=8C=E6=88=90=E8=87=AA?= =?UTF-8?q?=E6=A3=80=E6=97=A0=E6=B3=95=E8=B0=83=E7=94=A8=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/qyft/ms/app/front/cmd/DemoCommand.java | 6 ++++++ src/main/java/com/qyft/ms/app/service/SelfTestService.java | 1 + .../java/com/qyft/ms/system/controller/FrontCmdController.java | 7 +++++++ 3 files changed, 14 insertions(+) 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 8f5bc43..cbb78b7 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 @@ -2,11 +2,14 @@ package com.qyft.ms.app.front.cmd; import cn.hutool.json.JSONObject; import com.qyft.ms.system.common.annotation.CommandMapping; +import com.qyft.ms.system.common.constant.CommandStatus; import com.qyft.ms.system.common.device.command.CommandFuture; import com.qyft.ms.system.common.device.command.DeviceCommandGenerator; +import com.qyft.ms.system.common.device.command.FrontResponseGenerator; import com.qyft.ms.system.core.handler.BaseCommandHandler; import com.qyft.ms.system.model.bo.DeviceCommand; import com.qyft.ms.system.model.form.FrontCmdControlForm; +import com.qyft.ms.system.service.WebSocketService; import com.qyft.ms.system.service.device.DeviceCommandService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -22,6 +25,7 @@ import java.util.concurrent.CompletableFuture; public class DemoCommand extends BaseCommandHandler { private final DeviceCommandService deviceCommandService; + private final WebSocketService webSocketService; @Override public CompletableFuture handle(FrontCmdControlForm form) { @@ -42,6 +46,8 @@ public class DemoCommand extends BaseCommandHandler { commandWait(motorXyzPositionGetCommandFuture); JSONObject responseResultJson = motorXyzPositionGetCommandFuture.getResponseResult(); + + webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.ERROR, "参数XXX必填")); }); } diff --git a/src/main/java/com/qyft/ms/app/service/SelfTestService.java b/src/main/java/com/qyft/ms/app/service/SelfTestService.java index 54ed786..a2efd9d 100644 --- a/src/main/java/com/qyft/ms/app/service/SelfTestService.java +++ b/src/main/java/com/qyft/ms/app/service/SelfTestService.java @@ -17,6 +17,7 @@ public class SelfTestService { */ public SelfTestVO startTest() { SelfTestVO selfTestBO = new SelfTestVO(); + deviceStatus.setSelfTestCompleted(true); return selfTestBO; } 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 b2e2d33..f985c66 100644 --- a/src/main/java/com/qyft/ms/system/controller/FrontCmdController.java +++ b/src/main/java/com/qyft/ms/system/controller/FrontCmdController.java @@ -1,6 +1,7 @@ package com.qyft.ms.system.controller; import cn.hutool.json.JSONUtil; +import com.qyft.ms.app.device.status.DeviceStatus; import com.qyft.ms.system.common.constant.CommandStatus; import com.qyft.ms.system.common.device.command.FrontResponseGenerator; import com.qyft.ms.system.common.result.Result; @@ -27,6 +28,7 @@ import java.util.concurrent.CompletableFuture; public class FrontCmdController { private final CommandHandlerRegistry registry; private final WebSocketService webSocketService; + private final DeviceStatus deviceStatus; @Operation(summary = "前端统一调用一个接口") @PostMapping @@ -34,6 +36,11 @@ public class FrontCmdController { String cmdId = form.getCmdId(); String cmdCode = form.getCmdCode(); try { + if (!deviceStatus.isSelfTestCompleted()) { + log.error("未进行自检,无法执行业务指令"); + return Result.failed("未进行自检,无法执行业务指令"); + } + webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(cmdId, cmdCode, CommandStatus.RECEIVE, "已收到业务指令请求,开始处理")); CommandHandler commandHandler = registry.getHandler(cmdCode); if (commandHandler == null) {