|
|
@ -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; |
|
|
@ -29,24 +28,18 @@ public class HeatStartCommand extends BaseCommandHandler { |
|
|
|
|
|
|
|
@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.getHeatTemperature()); |
|
|
|
//从系统状态中获取指定加热区设定的烘干温度数值 |
|
|
|
double temperature = deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleId).getHeatTemperature(); |
|
|
|
//开启加热 |
|
|
|
heatModuleService.heatRodOpen(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId, temperature); |
|
|
|
//设置加热区状态 正在加热 |
|
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleId).setHeatingType(HeatingType.heating); |
|
|
|
|
|
|
|
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.getHeatTemperature(); |
|
|
|
heatModuleState.setTargetTemperature(targetTemperature);//将加热温度设定为目标温度 |
|
|
|
heatModuleService.heatRodOpen(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleCode, targetTemperature); |
|
|
|
deviceStateService.getDeviceState().getHeatModuleByCode(heatModuleCode).setHeatingType(HeatingType.heating); //设置加热区状态 加热中 |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|