diff --git a/src/main/java/com/qyft/gd/controller/CMDController.java b/src/main/java/com/qyft/gd/controller/CMDController.java index 78e5837..167f7f8 100644 --- a/src/main/java/com/qyft/gd/controller/CMDController.java +++ b/src/main/java/com/qyft/gd/controller/CMDController.java @@ -2,6 +2,7 @@ package com.qyft.gd.controller; import cn.hutool.json.JSONUtil; import com.qyft.gd.model.dto.CmdInjectFluidDTO; +import com.qyft.gd.model.dto.StartHeatDTO; import com.qyft.gd.model.form.CMDForm; import com.qyft.gd.service.CMDService; import com.qyft.gd.system.common.result.Result; @@ -48,17 +49,19 @@ public class CMDController { @Operation(summary = "批量加热") @PostMapping("/startHeat") - public Result startHeat(@RequestBody int[] list) { - for (int i : list) { - CMDForm cmdForm = new CMDForm(); - cmdForm.setCommand("startHeat"); - cmdForm.setCommandId(UUID.randomUUID().toString()); - Map params = new HashMap<>(); - params.put("heatId", i); - cmdForm.setParams(params); - cmdService.executeCommand(cmdForm); - } + public Result startHeat(@RequestBody StartHeatDTO dto) { + cmdService.startHeats(dto); return Result.success("操作成功"); +// for (int i : list) { +// CMDForm cmdForm = new CMDForm(); +// cmdForm.setCommand("startHeat"); +// cmdForm.setCommandId(UUID.randomUUID().toString()); +// Map params = new HashMap<>(); +// params.put("heatId", i); +// cmdForm.setParams(params); +// cmdService.executeCommand(cmdForm); +// } +// return Result.success("操作成功"); } @Operation(summary = "批量加液") diff --git a/src/main/java/com/qyft/gd/model/dto/StartHeatDTO.java b/src/main/java/com/qyft/gd/model/dto/StartHeatDTO.java new file mode 100644 index 0000000..473a8b8 --- /dev/null +++ b/src/main/java/com/qyft/gd/model/dto/StartHeatDTO.java @@ -0,0 +1,13 @@ +package com.qyft.gd.model.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class StartHeatDTO { + @Schema(description = "指令id") + private String commandId; + + @Schema(description = "加液数据list") + private Integer[] heatIds; +} diff --git a/src/main/java/com/qyft/gd/service/CMDService.java b/src/main/java/com/qyft/gd/service/CMDService.java index 2ee44dc..6334993 100644 --- a/src/main/java/com/qyft/gd/service/CMDService.java +++ b/src/main/java/com/qyft/gd/service/CMDService.java @@ -7,6 +7,7 @@ import com.qyft.gd.common.result.CMDResultCode; import com.qyft.gd.device.service.DeviceService; import com.qyft.gd.model.dto.CmdInjectFluidDTO; import com.qyft.gd.model.dto.InjectFluid; +import com.qyft.gd.model.dto.StartHeatDTO; import com.qyft.gd.model.entity.TaskSteps; import com.qyft.gd.model.entity.Tasks; import com.qyft.gd.model.form.CMDForm; @@ -274,6 +275,34 @@ public class CMDService { return cmdList; } + // 批量加热 + public void startHeats(StartHeatDTO dto) { + List> cmdList = new ArrayList<>(); + for (Integer i : dto.getHeatIds()) { + Map map = new HashMap<>(); + map.put("heatId", i); + cmdList.addAll(startHeat(map)); + } + new Thread(() -> { + ExecutionResult executionResult = new ExecutionResult(); + executionResult.setCommandId(dto.getCommandId()); + // 执行所有命令 + for (Supplier command : cmdList) { + boolean result = command.get(); + if (!result) { + log.error("指令执行异常: {}", JSONUtil.toJsonStr(dto)); + executionResult.setStatus(CMDResultCode.FAILURE.getCode()); + executionResult.setMessage(CMDResultCode.FAILURE.getMsg()); + webSocketService.pushMsg(WebSocketMessageType.CMD, executionResult); + return; + } + } + executionResult.setStatus(CMDResultCode.SUCCESS.getCode()); + executionResult.setMessage(CMDResultCode.SUCCESS.getMsg()); + webSocketService.pushMsg(WebSocketMessageType.CMD, executionResult); + }).start(); + } + // 开始加热 public List> startHeat(Map params) { List> cmdList = new ArrayList<>(); @@ -484,4 +513,5 @@ public class CMDService { } + }