Browse Source

feat: 批量加热和批量加液

master
guoapeng 6 months ago
parent
commit
03e5dc73a3
  1. 30
      src/main/java/com/qyft/gd/controller/CMDController.java
  2. 14
      src/main/java/com/qyft/gd/model/dto/CmdInjectFluidDTO.java
  3. 2
      src/main/java/com/qyft/gd/model/vo/SysSettingVO.java
  4. 10
      src/main/java/com/qyft/gd/service/BaseDataService.java
  5. 9
      src/main/java/com/qyft/gd/service/CMDService.java

30
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<String> 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<String> 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("操作成功");
}
}

14
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;
}

2
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;

10
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()) {

9
src/main/java/com/qyft/gd/service/CMDService.java

@ -216,9 +216,14 @@ public class CMDService {
// 开始加热
private List<Supplier<Boolean>> startHeat(Map<String, Object> params) {
List<Supplier<Boolean>> 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;
}
// 开始摇匀

Loading…
Cancel
Save