From 03e5dc73a3e7d81519fa80e7f44dbd146da41796 Mon Sep 17 00:00:00 2001 From: guoapeng Date: Thu, 20 Feb 2025 11:04:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=89=B9=E9=87=8F=E5=8A=A0=E7=83=AD?= =?UTF-8?q?=E5=92=8C=E6=89=B9=E9=87=8F=E5=8A=A0=E6=B6=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/qyft/gd/controller/CMDController.java | 30 ++++++++++++++++++++++ .../com/qyft/gd/model/dto/CmdInjectFluidDTO.java | 14 ++++++++++ .../java/com/qyft/gd/model/vo/SysSettingVO.java | 2 +- .../java/com/qyft/gd/service/BaseDataService.java | 10 ++++++++ src/main/java/com/qyft/gd/service/CMDService.java | 9 +++++-- 5 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/qyft/gd/model/dto/CmdInjectFluidDTO.java diff --git a/src/main/java/com/qyft/gd/controller/CMDController.java b/src/main/java/com/qyft/gd/controller/CMDController.java index 80a298a..c502f38 100644 --- a/src/main/java/com/qyft/gd/controller/CMDController.java +++ b/src/main/java/com/qyft/gd/controller/CMDController.java @@ -1,6 +1,7 @@ package com.qyft.gd.controller; import cn.hutool.json.JSONUtil; +import com.qyft.gd.model.dto.CmdInjectFluidDTO; import com.qyft.gd.model.form.CMDForm; import com.qyft.gd.service.CMDService; import com.qyft.gd.system.common.result.Result; @@ -13,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.HashMap; import java.util.UUID; @Tag(name = "控制指令") @@ -43,4 +45,32 @@ public class CMDController { return Result.failed("执行失败"); } } + + @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()); + cmdForm.getParams().put("areaId", i); + cmdService.executeCommand(cmdForm); + } + return Result.success("操作成功"); + } + + @Operation(summary = "批量加液") + @PostMapping("/injectFluid") + public Result injectFluid(@RequestBody CmdInjectFluidDTO [] list) { + for (CmdInjectFluidDTO cmdInjectFluidDTO : list) { + CMDForm cmdForm = new CMDForm(); + cmdForm.setCommand("injectFluid"); + cmdForm.setCommandId(UUID.randomUUID().toString()); + cmdForm.getParams().put("tubeNum", cmdInjectFluidDTO.getTubeNum()); + cmdForm.getParams().put("solutionId", cmdInjectFluidDTO.getSolutionId()); + cmdForm.getParams().put("volume", cmdInjectFluidDTO.getVolume()); + cmdService.executeCommand(cmdForm); + } + return Result.success("操作成功"); + } } diff --git a/src/main/java/com/qyft/gd/model/dto/CmdInjectFluidDTO.java b/src/main/java/com/qyft/gd/model/dto/CmdInjectFluidDTO.java new file mode 100644 index 0000000..7cf7c43 --- /dev/null +++ b/src/main/java/com/qyft/gd/model/dto/CmdInjectFluidDTO.java @@ -0,0 +1,14 @@ +package com.qyft.gd.model.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class CmdInjectFluidDTO { + @Schema(description = "试管编号") + private Long tubeNum; + @Schema(description = "溶液id") + private Long solutionId; + @Schema(description = "容量") + private Long volume; +} diff --git a/src/main/java/com/qyft/gd/model/vo/SysSettingVO.java b/src/main/java/com/qyft/gd/model/vo/SysSettingVO.java index 34dc3f6..ad2a18f 100644 --- a/src/main/java/com/qyft/gd/model/vo/SysSettingVO.java +++ b/src/main/java/com/qyft/gd/model/vo/SysSettingVO.java @@ -30,7 +30,7 @@ public class SysSettingVO { private String hardwareId; @Schema(description = "加热区温度") - private Long temperature; + private String temperature; @Schema(description = "工艺id") private int craftId; diff --git a/src/main/java/com/qyft/gd/service/BaseDataService.java b/src/main/java/com/qyft/gd/service/BaseDataService.java index 02a96be..87ac1db 100644 --- a/src/main/java/com/qyft/gd/service/BaseDataService.java +++ b/src/main/java/com/qyft/gd/service/BaseDataService.java @@ -70,6 +70,16 @@ public class BaseDataService { return map.getHeat_area(); } + // 根据id获取加热区设定温度 + public String getHeatAreaTemperatureById(int id) { + for (SysSettingVO sysSettingVO : map.getHeat_area()) { + if (sysSettingVO.getId() == id) { + return sysSettingVO.getTemperature(); + } + } + return null; + } + // 根据id获取加热区坐标 public String getHeatAreaPositionById(int id) { for (SysSettingVO sysSettingVO : map.getHeat_area()) { diff --git a/src/main/java/com/qyft/gd/service/CMDService.java b/src/main/java/com/qyft/gd/service/CMDService.java index 51454e3..416ba7f 100644 --- a/src/main/java/com/qyft/gd/service/CMDService.java +++ b/src/main/java/com/qyft/gd/service/CMDService.java @@ -216,9 +216,14 @@ public class CMDService { // 开始加热 private List> startHeat(Map params) { List> cmdList = new ArrayList<>(); - String hardwareId = baseDataService.getHeatAreaHardwareIdById((Integer) params.get("areaId")); - cmdList.add(() -> deviceService.startHeating(hardwareId, (Double) params.get("temperature"))); + Double temperature; + if (params.get("temperature") == null) { + temperature = Double.valueOf(baseDataService.getHeatAreaTemperatureById((Integer) params.get("areaId"))); + }else{ + temperature = (Double) params.get("temperature"); + } + cmdList.add(() -> deviceService.startHeating(hardwareId, temperature)); return cmdList; } // 开始摇匀