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 58712c1..d33aae4 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 @@ -68,8 +68,6 @@ public class SprayTaskExecutor { webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(sprayTask.getCmdId(), sprayTask.getCmdCode(), CommandStatus.DEVICE_ERROR, "设备正在喷涂,请先停止喷涂")); return; } - sprayTask.setSpraying(true); - deviceStatus.setSpraying(true); taskThread = new Thread(() -> { try { @@ -178,16 +176,16 @@ public class SprayTaskExecutor { webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(sprayTask.getCmdId(), sprayTask.getCmdCode(), CommandStatus.SPRAY_TASK_FINISH, "喷涂任务结束")); SprayTask.getInstance().clear(); - deviceStatus.setSpraying(false); - deviceStatus.setPaused(false); - deviceStatus.setSuspendable(false); + deviceStatus.setSpraying(false);//是否正在进行喷涂 + deviceStatus.setPaused(false);//是否暂停 + deviceStatus.setSuspendable(false);//是否可以暂停 } catch (InterruptedException e) { - sprayTask.setPaused(true); webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(sprayTask.getCmdId(), sprayTask.getCmdCode(), CommandStatus.SEND, "喷涂任务线程停止")); } catch (Exception e) { log.info("喷涂任务失败", e); webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(sprayTask.getCmdId(), sprayTask.getCmdCode(), CommandStatus.FAIL, "喷涂任务执行失败")); webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(sprayTask.getCmdId(), sprayTask.getCmdCode(), CommandStatus.SPRAY_TASK_FINISH, "喷涂任务结束")); + SprayTask.getInstance().clear(); deviceStatus.setSpraying(false); deviceStatus.setPaused(false); diff --git a/src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayContinue.java b/src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayContinue.java index 147bced..d62039d 100644 --- a/src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayContinue.java +++ b/src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayContinue.java @@ -1,6 +1,7 @@ package com.qyft.ms.app.front.cmd.business; import com.qyft.ms.app.device.spray.SprayTaskExecutor; +import com.qyft.ms.app.device.status.DeviceStatus; import com.qyft.ms.app.device.status.SprayTask; import com.qyft.ms.system.common.annotation.CommandMapping; import com.qyft.ms.system.common.device.command.CommandFuture; @@ -27,6 +28,7 @@ public class MatrixSprayContinue extends BaseCommandHandler { private final DeviceCommandService deviceCommandService; private final SprayTaskExecutor sprayTaskExecutor; + private final DeviceStatus deviceStatus; @Override public CompletableFuture handle(FrontCmdControlForm form) { @@ -34,6 +36,9 @@ public class MatrixSprayContinue extends BaseCommandHandler { if (!sprayTask.isSpraying()) { throw new RuntimeException("设备没有正在喷涂"); } + sprayTask.setSpraying(true); + deviceStatus.setSpraying(true); + return runAsync(() -> { DeviceCommand threeWayValveOpenSyringePipelineCommand = DeviceCommandGenerator.threeWayValveOpenSyringePipeline();//打开三通阀喷嘴管路 CommandFuture threeWayValveOpenSyringePipelineCommandFuture = deviceCommandService.sendCommand(sprayTask.getCmdId(), sprayTask.getCmdCode(), threeWayValveOpenSyringePipelineCommand); diff --git a/src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayPause.java b/src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayPause.java index 0302b71..5660783 100644 --- a/src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayPause.java +++ b/src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayPause.java @@ -37,8 +37,10 @@ public class MatrixSprayPause extends BaseCommandHandler { if (!sprayTask.isSuspendable()) { throw new RuntimeException("当前喷涂任务不可暂停"); } - sprayTask.setPaused(true); + sprayTask.setPaused(true);//已暂停 deviceStatus.setPaused(true); + sprayTask.setSuspendable(false);//不可暂停 + deviceStatus.setSuspendable(false); return runAsync(() -> { sprayTaskExecutor.stopTask();//终止喷涂任务线程 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 3f6f79c..77c0366 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 @@ -120,6 +120,8 @@ public class MatrixSprayStart extends BaseCommandHandler { } sprayTask.setCmdId(form.getCmdId()); sprayTask.setCmdCode(form.getCmdCode()); + sprayTask.setSpraying(true);//正在进行喷涂 + deviceStatus.setSpraying(true); // 1. 参数校验 String matrixPathType = form.getStringParam("matrixPathType"); diff --git a/src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayStop.java b/src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayStop.java index 8783f9e..9781f7b 100644 --- a/src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayStop.java +++ b/src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayStop.java @@ -32,6 +32,10 @@ public class MatrixSprayStop extends BaseCommandHandler { @Override public CompletableFuture handle(FrontCmdControlForm form) { + SprayTask sprayTask = SprayTask.getInstance(); + if (!sprayTask.isSpraying()) { + throw new RuntimeException("设备没有正在喷涂"); + } SprayTask.getInstance().clear(); deviceStatus.setSpraying(false); deviceStatus.setPaused(false);