|
|
@ -1,16 +1,11 @@ |
|
|
|
package com.qyft.ms.app.front.cmd.business; |
|
|
|
|
|
|
|
import cn.hutool.json.JSONUtil; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.qyft.ms.app.common.generator.PathGenerator; |
|
|
|
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.model.bo.SprayTaskStep; |
|
|
|
import com.qyft.ms.app.model.entity.OperationLog; |
|
|
|
import com.qyft.ms.app.model.entity.Position; |
|
|
|
import com.qyft.ms.app.service.OperationLogService; |
|
|
|
import com.qyft.ms.app.service.PositionService; |
|
|
|
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; |
|
|
@ -27,8 +22,9 @@ import lombok.RequiredArgsConstructor; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.stereotype.Component; |
|
|
|
|
|
|
|
import java.text.DecimalFormat; |
|
|
|
import java.util.*; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Optional; |
|
|
|
import java.util.concurrent.CompletableFuture; |
|
|
|
import java.util.concurrent.ExecutorService; |
|
|
|
import java.util.concurrent.Executors; |
|
|
@ -47,6 +43,7 @@ public class MatrixSprayStart extends BaseCommandHandler { |
|
|
|
private final DeviceStatus deviceStatus; |
|
|
|
private final WebSocketService webSocketService; |
|
|
|
private final DeviceCommandService deviceCommandService; |
|
|
|
private final OperationLogService operationLogService; |
|
|
|
|
|
|
|
/** |
|
|
|
* 使用单线程执行器保证线程安全,防止喷涂指令被多次调用 |
|
|
@ -63,7 +60,7 @@ public class MatrixSprayStart extends BaseCommandHandler { |
|
|
|
webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.DEVICE_ERROR, "设备正在喷涂,请先停止喷涂")); |
|
|
|
throw new RuntimeException("设备正在喷涂,请先停止喷涂"); |
|
|
|
} |
|
|
|
if(sprayTask.getSprayTaskParams() == null){ |
|
|
|
if (sprayTask.getSprayTaskParams() == null) { |
|
|
|
webSocketService.pushDebugMsg(FrontResponseGenerator.generateJson(form.getCmdId(), form.getCmdCode(), CommandStatus.DEVICE_ERROR, "未设置喷涂参数")); |
|
|
|
throw new RuntimeException("未设置喷涂参数"); |
|
|
|
} |
|
|
@ -71,6 +68,13 @@ public class MatrixSprayStart extends BaseCommandHandler { |
|
|
|
sprayTask.setCmdCode(form.getCmdCode()); |
|
|
|
sprayTask.setSpraying(true);//正在进行喷涂 |
|
|
|
deviceStatus.setSpraying(true); |
|
|
|
|
|
|
|
OperationLog operationLog = new OperationLog(); |
|
|
|
operationLog.setMatrixInfo(JSONUtil.toJsonStr(sprayTask.getSprayTaskParams())); |
|
|
|
operationLog.setStatus(0); |
|
|
|
operationLogService.save(operationLog); |
|
|
|
sprayTask.setOperationLogId(operationLog.getId()); |
|
|
|
|
|
|
|
return runAsync(() -> { |
|
|
|
//喷涂开始前先回原点 |
|
|
|
DeviceCommand overallDeviceStatusGetCommand = DeviceCommandGenerator.overallDeviceStatusGet(); |
|
|
|