石墨消解仪后端服务
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.5 KiB

  1. package com.iflytop.gd.app.cmd;
  2. import cn.hutool.json.JSONArray;
  3. import com.iflytop.gd.app.core.BaseCommandHandler;
  4. import com.iflytop.gd.app.model.dto.CmdDTO;
  5. import com.iflytop.gd.app.service.DeviceCommandUtilService;
  6. import com.iflytop.gd.app.service.DeviceStateService;
  7. import com.iflytop.gd.common.annotation.CommandMapping;
  8. import com.iflytop.gd.common.enums.HeatModuleCode;
  9. import lombok.RequiredArgsConstructor;
  10. import lombok.extern.slf4j.Slf4j;
  11. import org.springframework.stereotype.Component;
  12. import java.util.concurrent.CompletableFuture;
  13. /**
  14. * 停止加热
  15. */
  16. @Slf4j
  17. @Component
  18. @RequiredArgsConstructor
  19. @CommandMapping("heat_stop")//业务指令注解
  20. public class HeatStopCommand extends BaseCommandHandler {
  21. private final DeviceCommandUtilService deviceCommandUtilService;
  22. private final DeviceStateService deviceStateService;
  23. @Override
  24. public CompletableFuture<Void> handle(CmdDTO cmdDTO) {
  25. JSONArray heatIdJsonArray = cmdDTO.getJSONArrayParam("heatId");
  26. return runAsync(() -> {
  27. for (int i = 0; i < heatIdJsonArray.size(); i++) {
  28. String heatId = heatIdJsonArray.getStr(i);
  29. HeatModuleCode heatModuleId = HeatModuleCode.valueOf(heatId);
  30. //关闭加热
  31. deviceCommandUtilService.heatRodClose(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId);
  32. deviceStateService.setHeatModuleStateHeating(heatModuleId, false);//设置状态停止加热
  33. }
  34. });
  35. }
  36. }