|
|
@ -1,6 +1,5 @@ |
|
|
|
package com.iflytop.sgs.app.cmd.control; |
|
|
|
|
|
|
|
import cn.hutool.core.lang.Assert; |
|
|
|
import cn.hutool.json.JSONArray; |
|
|
|
import com.iflytop.sgs.app.core.BaseCommandHandler; |
|
|
|
import com.iflytop.sgs.app.model.bo.status.device.HeatModuleState; |
|
|
@ -24,29 +23,23 @@ import java.util.concurrent.CompletableFuture; |
|
|
|
@RequiredArgsConstructor |
|
|
|
@CommandMapping("_start")//业务指令注解 |
|
|
|
public class DryStartCommand extends BaseCommandHandler { |
|
|
|
private final HeatModuleService deviceCommandUtilService; |
|
|
|
private final HeatModuleService heatModuleService; |
|
|
|
private final DeviceStateService deviceStateService; |
|
|
|
|
|
|
|
@Override |
|
|
|
public CompletableFuture<Void> handle(CmdDTO cmdDTO) { |
|
|
|
JSONArray heatIdJsonArray = cmdDTO.getJSONArrayParam("heatId"); |
|
|
|
return runAsync(() -> { |
|
|
|
for (int i = 0; i < heatIdJsonArray.size(); i++) { |
|
|
|
//获取当前加热区 |
|
|
|
String heatId = heatIdJsonArray.getStr(i); |
|
|
|
HeatModuleCode heatModuleId = HeatModuleCode.valueOf(heatId); |
|
|
|
HeatModuleState heatModuleState = deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleId); |
|
|
|
//判断有无托盘 |
|
|
|
Assert.isTrue(heatModuleState.getTrayStatus() == 1, heatModuleId + "加热区无托盘"); |
|
|
|
//设置加热区目标温度 |
|
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleId).setTargetTemperature(heatModuleState.getDryTemperature()); |
|
|
|
//从系统状态中获取指定加热区设定的烘干温度数值 |
|
|
|
double temperature = deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleId).getDryTemperature(); |
|
|
|
//开启烘干 |
|
|
|
deviceCommandUtilService.heatRodOpen(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId, temperature); |
|
|
|
//设置加热区状态 正在烘干 |
|
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleId).setHeatingType(HeatingType.drying); |
|
|
|
|
|
|
|
JSONArray heatModuleCodeJsonArray = cmdDTO.getJSONArrayParam("heatModuleCode"); |
|
|
|
|
|
|
|
return runAsync(() -> { |
|
|
|
for (int i = 0; i < heatModuleCodeJsonArray.size(); i++) { |
|
|
|
String heatModuleCodeStr = heatModuleCodeJsonArray.getStr(i); |
|
|
|
HeatModuleCode heatModuleCode = HeatModuleCode.valueOf(heatModuleCodeStr); |
|
|
|
HeatModuleState heatModuleState = deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode);//获取设定的退火温度 |
|
|
|
double targetTemperature = heatModuleState.getAnnealTemperature(); |
|
|
|
heatModuleState.setTargetTemperature(targetTemperature);//将退火温度设定为目标温度 |
|
|
|
heatModuleService.heatRodOpen(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleCode, targetTemperature); |
|
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setHeatingType(HeatingType.drying); //设置加热区状态 正在烘干 |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|