Browse Source

fix:更改喷涂暂停状态逻辑

tags/1.0
白凤吉 4 months ago
parent
commit
77aa31c291
  1. 10
      src/main/java/com/qyft/ms/app/device/spray/SprayTaskExecutor.java
  2. 5
      src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayContinue.java
  3. 4
      src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayPause.java
  4. 2
      src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayStart.java
  5. 4
      src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayStop.java

10
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, "设备正在喷涂,请先停止喷涂")); webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(sprayTask.getCmdId(), sprayTask.getCmdCode(), CommandStatus.DEVICE_ERROR, "设备正在喷涂,请先停止喷涂"));
return; return;
} }
sprayTask.setSpraying(true);
deviceStatus.setSpraying(true);
taskThread = new Thread(() -> { taskThread = new Thread(() -> {
try { try {
@ -178,16 +176,16 @@ public class SprayTaskExecutor {
webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(sprayTask.getCmdId(), sprayTask.getCmdCode(), CommandStatus.SPRAY_TASK_FINISH, "喷涂任务结束")); webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(sprayTask.getCmdId(), sprayTask.getCmdCode(), CommandStatus.SPRAY_TASK_FINISH, "喷涂任务结束"));
SprayTask.getInstance().clear(); SprayTask.getInstance().clear();
deviceStatus.setSpraying(false);
deviceStatus.setPaused(false);
deviceStatus.setSuspendable(false);
deviceStatus.setSpraying(false);//是否正在进行喷涂
deviceStatus.setPaused(false);//是否暂停
deviceStatus.setSuspendable(false);//是否可以暂停
} catch (InterruptedException e) { } catch (InterruptedException e) {
sprayTask.setPaused(true);
webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(sprayTask.getCmdId(), sprayTask.getCmdCode(), CommandStatus.SEND, "喷涂任务线程停止")); webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(sprayTask.getCmdId(), sprayTask.getCmdCode(), CommandStatus.SEND, "喷涂任务线程停止"));
} catch (Exception e) { } catch (Exception e) {
log.info("喷涂任务失败", e); log.info("喷涂任务失败", e);
webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(sprayTask.getCmdId(), sprayTask.getCmdCode(), CommandStatus.FAIL, "喷涂任务执行失败")); webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(sprayTask.getCmdId(), sprayTask.getCmdCode(), CommandStatus.FAIL, "喷涂任务执行失败"));
webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(sprayTask.getCmdId(), sprayTask.getCmdCode(), CommandStatus.SPRAY_TASK_FINISH, "喷涂任务结束")); webSocketService.pushCMDResponseMsg(FrontResponseGenerator.generateJson(sprayTask.getCmdId(), sprayTask.getCmdCode(), CommandStatus.SPRAY_TASK_FINISH, "喷涂任务结束"));
SprayTask.getInstance().clear(); SprayTask.getInstance().clear();
deviceStatus.setSpraying(false); deviceStatus.setSpraying(false);
deviceStatus.setPaused(false); deviceStatus.setPaused(false);

5
src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayContinue.java

@ -1,6 +1,7 @@
package com.qyft.ms.app.front.cmd.business; package com.qyft.ms.app.front.cmd.business;
import com.qyft.ms.app.device.spray.SprayTaskExecutor; 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.app.device.status.SprayTask;
import com.qyft.ms.system.common.annotation.CommandMapping; import com.qyft.ms.system.common.annotation.CommandMapping;
import com.qyft.ms.system.common.device.command.CommandFuture; import com.qyft.ms.system.common.device.command.CommandFuture;
@ -27,6 +28,7 @@ public class MatrixSprayContinue extends BaseCommandHandler {
private final DeviceCommandService deviceCommandService; private final DeviceCommandService deviceCommandService;
private final SprayTaskExecutor sprayTaskExecutor; private final SprayTaskExecutor sprayTaskExecutor;
private final DeviceStatus deviceStatus;
@Override @Override
public CompletableFuture<Void> handle(FrontCmdControlForm form) { public CompletableFuture<Void> handle(FrontCmdControlForm form) {
@ -34,6 +36,9 @@ public class MatrixSprayContinue extends BaseCommandHandler {
if (!sprayTask.isSpraying()) { if (!sprayTask.isSpraying()) {
throw new RuntimeException("设备没有正在喷涂"); throw new RuntimeException("设备没有正在喷涂");
} }
sprayTask.setSpraying(true);
deviceStatus.setSpraying(true);
return runAsync(() -> { return runAsync(() -> {
DeviceCommand threeWayValveOpenSyringePipelineCommand = DeviceCommandGenerator.threeWayValveOpenSyringePipeline();//打开三通阀喷嘴管路 DeviceCommand threeWayValveOpenSyringePipelineCommand = DeviceCommandGenerator.threeWayValveOpenSyringePipeline();//打开三通阀喷嘴管路
CommandFuture threeWayValveOpenSyringePipelineCommandFuture = deviceCommandService.sendCommand(sprayTask.getCmdId(), sprayTask.getCmdCode(), threeWayValveOpenSyringePipelineCommand); CommandFuture threeWayValveOpenSyringePipelineCommandFuture = deviceCommandService.sendCommand(sprayTask.getCmdId(), sprayTask.getCmdCode(), threeWayValveOpenSyringePipelineCommand);

4
src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayPause.java

@ -37,8 +37,10 @@ public class MatrixSprayPause extends BaseCommandHandler {
if (!sprayTask.isSuspendable()) { if (!sprayTask.isSuspendable()) {
throw new RuntimeException("当前喷涂任务不可暂停"); throw new RuntimeException("当前喷涂任务不可暂停");
} }
sprayTask.setPaused(true);
sprayTask.setPaused(true);//已暂停
deviceStatus.setPaused(true); deviceStatus.setPaused(true);
sprayTask.setSuspendable(false);//不可暂停
deviceStatus.setSuspendable(false);
return runAsync(() -> { return runAsync(() -> {
sprayTaskExecutor.stopTask();//终止喷涂任务线程 sprayTaskExecutor.stopTask();//终止喷涂任务线程

2
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.setCmdId(form.getCmdId());
sprayTask.setCmdCode(form.getCmdCode()); sprayTask.setCmdCode(form.getCmdCode());
sprayTask.setSpraying(true);//正在进行喷涂
deviceStatus.setSpraying(true);
// 1. 参数校验 // 1. 参数校验
String matrixPathType = form.getStringParam("matrixPathType"); String matrixPathType = form.getStringParam("matrixPathType");

4
src/main/java/com/qyft/ms/app/front/cmd/business/MatrixSprayStop.java

@ -32,6 +32,10 @@ public class MatrixSprayStop extends BaseCommandHandler {
@Override @Override
public CompletableFuture<Void> handle(FrontCmdControlForm form) { public CompletableFuture<Void> handle(FrontCmdControlForm form) {
SprayTask sprayTask = SprayTask.getInstance();
if (!sprayTask.isSpraying()) {
throw new RuntimeException("设备没有正在喷涂");
}
SprayTask.getInstance().clear(); SprayTask.getInstance().clear();
deviceStatus.setSpraying(false); deviceStatus.setSpraying(false);
deviceStatus.setPaused(false); deviceStatus.setPaused(false);

Loading…
Cancel
Save