From 9a84247e33ba13ef37406eb5be152e08fc99da3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=87=A4=E5=90=89?= Date: Mon, 26 May 2025 09:58:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=9B=AE=E5=BD=95=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iflytop/sgs/app/cmd/AnnealStartCommand.java | 50 ------------- .../com/iflytop/sgs/app/cmd/AnnealStopCommand.java | 42 ----------- .../com/iflytop/sgs/app/cmd/CleanStartCommand.java | 44 ------------ .../com/iflytop/sgs/app/cmd/CleanStopCommand.java | 44 ------------ .../com/iflytop/sgs/app/cmd/DoorCloseCommand.java | 35 ---------- .../com/iflytop/sgs/app/cmd/DoorOpenCommand.java | 40 ----------- .../com/iflytop/sgs/app/cmd/DoorOriginCommand.java | 38 ---------- .../com/iflytop/sgs/app/cmd/DryStartCommand.java | 50 ------------- .../com/iflytop/sgs/app/cmd/DryStopCommand.java | 43 ------------ .../com/iflytop/sgs/app/cmd/FanStartCommand.java | 40 ----------- .../com/iflytop/sgs/app/cmd/FanStopCommand.java | 40 ----------- .../iflytop/sgs/app/cmd/GantryXOriginCommand.java | 33 --------- .../iflytop/sgs/app/cmd/GantryZOriginCommand.java | 33 --------- .../com/iflytop/sgs/app/cmd/HeatStartCommand.java | 50 ------------- .../com/iflytop/sgs/app/cmd/HeatStopCommand.java | 41 ----------- .../iflytop/sgs/app/cmd/MoveToHeatAreaCommand.java | 77 -------------------- .../sgs/app/cmd/MoveToSolutionAreaCommand.java | 81 ---------------------- .../iflytop/sgs/app/cmd/SolutionAddCommand.java | 33 --------- .../iflytop/sgs/app/cmd/SolutionReduceCommand.java | 33 --------- .../sgs/app/cmd/control/AnnealStartCommand.java | 50 +++++++++++++ .../sgs/app/cmd/control/AnnealStopCommand.java | 42 +++++++++++ .../sgs/app/cmd/control/CleanStartCommand.java | 44 ++++++++++++ .../sgs/app/cmd/control/CleanStopCommand.java | 44 ++++++++++++ .../sgs/app/cmd/control/DoorCloseCommand.java | 35 ++++++++++ .../sgs/app/cmd/control/DoorOpenCommand.java | 40 +++++++++++ .../sgs/app/cmd/control/DoorOriginCommand.java | 38 ++++++++++ .../sgs/app/cmd/control/DryStartCommand.java | 50 +++++++++++++ .../sgs/app/cmd/control/DryStopCommand.java | 43 ++++++++++++ .../sgs/app/cmd/control/FanStartCommand.java | 40 +++++++++++ .../sgs/app/cmd/control/FanStopCommand.java | 40 +++++++++++ .../sgs/app/cmd/control/GantryXOriginCommand.java | 33 +++++++++ .../sgs/app/cmd/control/GantryZOriginCommand.java | 33 +++++++++ .../sgs/app/cmd/control/HeatStartCommand.java | 50 +++++++++++++ .../sgs/app/cmd/control/HeatStopCommand.java | 41 +++++++++++ .../sgs/app/cmd/control/MoveToHeatAreaCommand.java | 77 ++++++++++++++++++++ .../app/cmd/control/MoveToSolutionAreaCommand.java | 81 ++++++++++++++++++++++ .../sgs/app/cmd/control/SolutionAddCommand.java | 33 +++++++++ .../sgs/app/cmd/control/SolutionReduceCommand.java | 33 +++++++++ .../service/device/module/DoorModuleService.java | 4 ++ .../service/device/module/HeatModuleService.java | 4 ++ .../device/module/SolutionModuleService.java | 4 ++ .../device/module/TransferModuleService.java | 4 ++ 42 files changed, 863 insertions(+), 847 deletions(-) delete mode 100644 src/main/java/com/iflytop/sgs/app/cmd/AnnealStartCommand.java delete mode 100644 src/main/java/com/iflytop/sgs/app/cmd/AnnealStopCommand.java delete mode 100644 src/main/java/com/iflytop/sgs/app/cmd/CleanStartCommand.java delete mode 100644 src/main/java/com/iflytop/sgs/app/cmd/CleanStopCommand.java delete mode 100644 src/main/java/com/iflytop/sgs/app/cmd/DoorCloseCommand.java delete mode 100644 src/main/java/com/iflytop/sgs/app/cmd/DoorOpenCommand.java delete mode 100644 src/main/java/com/iflytop/sgs/app/cmd/DoorOriginCommand.java delete mode 100644 src/main/java/com/iflytop/sgs/app/cmd/DryStartCommand.java delete mode 100644 src/main/java/com/iflytop/sgs/app/cmd/DryStopCommand.java delete mode 100644 src/main/java/com/iflytop/sgs/app/cmd/FanStartCommand.java delete mode 100644 src/main/java/com/iflytop/sgs/app/cmd/FanStopCommand.java delete mode 100644 src/main/java/com/iflytop/sgs/app/cmd/GantryXOriginCommand.java delete mode 100644 src/main/java/com/iflytop/sgs/app/cmd/GantryZOriginCommand.java delete mode 100644 src/main/java/com/iflytop/sgs/app/cmd/HeatStartCommand.java delete mode 100644 src/main/java/com/iflytop/sgs/app/cmd/HeatStopCommand.java delete mode 100644 src/main/java/com/iflytop/sgs/app/cmd/MoveToHeatAreaCommand.java delete mode 100644 src/main/java/com/iflytop/sgs/app/cmd/MoveToSolutionAreaCommand.java delete mode 100644 src/main/java/com/iflytop/sgs/app/cmd/SolutionAddCommand.java delete mode 100644 src/main/java/com/iflytop/sgs/app/cmd/SolutionReduceCommand.java create mode 100644 src/main/java/com/iflytop/sgs/app/cmd/control/AnnealStartCommand.java create mode 100644 src/main/java/com/iflytop/sgs/app/cmd/control/AnnealStopCommand.java create mode 100644 src/main/java/com/iflytop/sgs/app/cmd/control/CleanStartCommand.java create mode 100644 src/main/java/com/iflytop/sgs/app/cmd/control/CleanStopCommand.java create mode 100644 src/main/java/com/iflytop/sgs/app/cmd/control/DoorCloseCommand.java create mode 100644 src/main/java/com/iflytop/sgs/app/cmd/control/DoorOpenCommand.java create mode 100644 src/main/java/com/iflytop/sgs/app/cmd/control/DoorOriginCommand.java create mode 100644 src/main/java/com/iflytop/sgs/app/cmd/control/DryStartCommand.java create mode 100644 src/main/java/com/iflytop/sgs/app/cmd/control/DryStopCommand.java create mode 100644 src/main/java/com/iflytop/sgs/app/cmd/control/FanStartCommand.java create mode 100644 src/main/java/com/iflytop/sgs/app/cmd/control/FanStopCommand.java create mode 100644 src/main/java/com/iflytop/sgs/app/cmd/control/GantryXOriginCommand.java create mode 100644 src/main/java/com/iflytop/sgs/app/cmd/control/GantryZOriginCommand.java create mode 100644 src/main/java/com/iflytop/sgs/app/cmd/control/HeatStartCommand.java create mode 100644 src/main/java/com/iflytop/sgs/app/cmd/control/HeatStopCommand.java create mode 100644 src/main/java/com/iflytop/sgs/app/cmd/control/MoveToHeatAreaCommand.java create mode 100644 src/main/java/com/iflytop/sgs/app/cmd/control/MoveToSolutionAreaCommand.java create mode 100644 src/main/java/com/iflytop/sgs/app/cmd/control/SolutionAddCommand.java create mode 100644 src/main/java/com/iflytop/sgs/app/cmd/control/SolutionReduceCommand.java create mode 100644 src/main/java/com/iflytop/sgs/app/service/device/module/DoorModuleService.java create mode 100644 src/main/java/com/iflytop/sgs/app/service/device/module/HeatModuleService.java create mode 100644 src/main/java/com/iflytop/sgs/app/service/device/module/SolutionModuleService.java create mode 100644 src/main/java/com/iflytop/sgs/app/service/device/module/TransferModuleService.java diff --git a/src/main/java/com/iflytop/sgs/app/cmd/AnnealStartCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/AnnealStartCommand.java deleted file mode 100644 index 35995e8..0000000 --- a/src/main/java/com/iflytop/sgs/app/cmd/AnnealStartCommand.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.iflytop.sgs.app.cmd; - -import cn.hutool.json.JSONArray; -import com.iflytop.sgs.app.core.BaseCommandHandler; -import com.iflytop.sgs.app.core.device.HeatModuleState; -import com.iflytop.sgs.app.model.dto.CmdDTO; -import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; -import com.iflytop.sgs.app.service.device.DeviceStateService; -import com.iflytop.sgs.common.annotation.CommandMapping; -import com.iflytop.sgs.common.enums.HeatModuleCode; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.concurrent.CompletableFuture; - -/** - * 开始退火 - */ -@Slf4j -@Component -@RequiredArgsConstructor -@CommandMapping("heat_start")//业务指令注解 -public class AnnealStartCommand extends BaseCommandHandler { - private final DeviceCommandUtilService deviceCommandUtilService; - private final DeviceStateService deviceStateService; - - @Override - public CompletableFuture 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.getHeatModuleState(heatModuleId); - //设置加热区目标温度 - deviceStateService.setHeatModuleStateTargetTemperature(heatModuleId,heatModuleState.getAnnealTemperature()); - //从系统状态中获取指定加热区设定的退火温度数值 - double temperature = deviceStateService.getHeatModuleState(heatModuleId).getAnnealTemperature(); - //开启退火 - deviceCommandUtilService.heatRodOpen(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId, temperature); - //设置加热区状态 正在退火 - deviceStateService.setHeatModuleStateAnnealing(heatModuleId,true); - - } - }); - } -} - diff --git a/src/main/java/com/iflytop/sgs/app/cmd/AnnealStopCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/AnnealStopCommand.java deleted file mode 100644 index 84e1ae7..0000000 --- a/src/main/java/com/iflytop/sgs/app/cmd/AnnealStopCommand.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.iflytop.sgs.app.cmd; - -import cn.hutool.json.JSONArray; -import com.iflytop.sgs.app.core.BaseCommandHandler; -import com.iflytop.sgs.app.model.dto.CmdDTO; -import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; -import com.iflytop.sgs.app.service.device.DeviceStateService; -import com.iflytop.sgs.common.annotation.CommandMapping; -import com.iflytop.sgs.common.enums.HeatModuleCode; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.concurrent.CompletableFuture; - -/** - * 结束退火 - */ -@Slf4j -@Component -@RequiredArgsConstructor -@CommandMapping("heat_start")//业务指令注解 -public class AnnealStopCommand extends BaseCommandHandler { - private final DeviceCommandUtilService deviceCommandUtilService; - private final DeviceStateService deviceStateService; - - @Override - public CompletableFuture 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); - //关闭加热 - deviceCommandUtilService.heatRodClose(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId); - //设置加热区状态 退火结束 - deviceStateService.setHeatModuleStateAnnealing(heatModuleId,false); - } - }); - } -} - diff --git a/src/main/java/com/iflytop/sgs/app/cmd/CleanStartCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/CleanStartCommand.java deleted file mode 100644 index 02d6178..0000000 --- a/src/main/java/com/iflytop/sgs/app/cmd/CleanStartCommand.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.iflytop.sgs.app.cmd; - -import cn.hutool.json.JSONArray; -import com.iflytop.sgs.app.core.BaseCommandHandler; -import com.iflytop.sgs.app.model.dto.CmdDTO; -import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; -import com.iflytop.sgs.app.service.device.DeviceStateService; -import com.iflytop.sgs.common.annotation.CommandMapping; -import com.iflytop.sgs.common.enums.HeatModuleCode; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.concurrent.CompletableFuture; - -/** - * 开始清洗 todo wmy 需要改 - */ -@Slf4j -@Component -@RequiredArgsConstructor -@CommandMapping("heat_start")//业务指令注解 -public class CleanStartCommand extends BaseCommandHandler { - private final DeviceCommandUtilService deviceCommandUtilService; - private final DeviceStateService deviceStateService; - - @Override - public CompletableFuture 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); - //从系统状态中获取指定加热区设定的温度数值 - double temperature = deviceStateService.getHeatModuleState(heatModuleId).getTemperature(); - //开启加热 - deviceCommandUtilService.heatRodOpen(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId, temperature); - deviceStateService.setHeatModuleStateHeating(heatModuleId, true);//设置状态加热中 - - } - }); - } -} - diff --git a/src/main/java/com/iflytop/sgs/app/cmd/CleanStopCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/CleanStopCommand.java deleted file mode 100644 index db3f591..0000000 --- a/src/main/java/com/iflytop/sgs/app/cmd/CleanStopCommand.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.iflytop.sgs.app.cmd; - -import cn.hutool.json.JSONArray; -import com.iflytop.sgs.app.core.BaseCommandHandler; -import com.iflytop.sgs.app.model.dto.CmdDTO; -import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; -import com.iflytop.sgs.app.service.device.DeviceStateService; -import com.iflytop.sgs.common.annotation.CommandMapping; -import com.iflytop.sgs.common.enums.HeatModuleCode; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.concurrent.CompletableFuture; - -/** - * 结束清洗 todo wmy 需要改 - */ -@Slf4j -@Component -@RequiredArgsConstructor -@CommandMapping("heat_start")//业务指令注解 -public class CleanStopCommand extends BaseCommandHandler { - private final DeviceCommandUtilService deviceCommandUtilService; - private final DeviceStateService deviceStateService; - - @Override - public CompletableFuture 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); - //从系统状态中获取指定加热区设定的温度数值 - double temperature = deviceStateService.getHeatModuleState(heatModuleId).getTemperature(); - //开启加热 - deviceCommandUtilService.heatRodOpen(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId, temperature); - deviceStateService.setHeatModuleStateHeating(heatModuleId, true);//设置状态加热中 - - } - }); - } -} - diff --git a/src/main/java/com/iflytop/sgs/app/cmd/DoorCloseCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/DoorCloseCommand.java deleted file mode 100644 index 7ddd20a..0000000 --- a/src/main/java/com/iflytop/sgs/app/cmd/DoorCloseCommand.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.iflytop.sgs.app.cmd; - -import com.iflytop.sgs.app.core.BaseCommandHandler; -import com.iflytop.sgs.app.model.dto.CmdDTO; -import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; -import com.iflytop.sgs.app.service.device.DeviceStateService; -import com.iflytop.sgs.common.annotation.CommandMapping; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.concurrent.CompletableFuture; - -/** - * 关门 - */ -@Slf4j -@Component -@RequiredArgsConstructor -@CommandMapping("door_close")//业务指令注解 -public class DoorCloseCommand extends BaseCommandHandler { - private final DeviceCommandUtilService deviceCommandUtilService; - private final DeviceStateService deviceStateService; - - @Override - public CompletableFuture handle(CmdDTO cmdDTO) { - return runAsync(() -> { - //门电机回原点 - deviceCommandUtilService.doorOrigin(cmdDTO.getCommandId(), cmdDTO.getCommand()); - //将门状态设置为false - deviceStateService.setDoorStatus(false); - }); - } -} - diff --git a/src/main/java/com/iflytop/sgs/app/cmd/DoorOpenCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/DoorOpenCommand.java deleted file mode 100644 index 527bbeb..0000000 --- a/src/main/java/com/iflytop/sgs/app/cmd/DoorOpenCommand.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.iflytop.sgs.app.cmd; - -import com.iflytop.sgs.app.core.BaseCommandHandler; -import com.iflytop.sgs.app.model.dto.CmdDTO; -import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; -import com.iflytop.sgs.app.service.api.DevicePositionService; -import com.iflytop.sgs.app.service.device.DeviceStateService; -import com.iflytop.sgs.common.annotation.CommandMapping; -import com.iflytop.sgs.common.enums.data.DevicePositionCode; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.concurrent.CompletableFuture; - -/** - * 开门 - */ -@Slf4j -@Component -@RequiredArgsConstructor -@CommandMapping("door_open")//业务指令注解 -public class DoorOpenCommand extends BaseCommandHandler { - private final DeviceCommandUtilService deviceCommandUtilService; - private final DevicePositionService devicePositionService; - private final DeviceStateService deviceStateService; - - @Override - public CompletableFuture handle(CmdDTO cmdDTO) { - return runAsync(() -> { - //从数据库获取开门距离 - Double doorOpenDistance = devicePositionService.getPosition(DevicePositionCode.doorOpen).getDistance(); - //门电机移动开门距离 - deviceCommandUtilService.doorMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), doorOpenDistance); - //将门状态设置为true - deviceStateService.setDoorStatus(true); - }); - } -} - diff --git a/src/main/java/com/iflytop/sgs/app/cmd/DoorOriginCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/DoorOriginCommand.java deleted file mode 100644 index cf9e44e..0000000 --- a/src/main/java/com/iflytop/sgs/app/cmd/DoorOriginCommand.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.iflytop.sgs.app.cmd; - -import com.iflytop.sgs.app.core.BaseCommandHandler; -import com.iflytop.sgs.app.model.dto.CmdDTO; -import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; -import com.iflytop.sgs.app.service.device.DeviceStateService; -import com.iflytop.sgs.app.service.device.SelfTestService; -import com.iflytop.sgs.common.annotation.CommandMapping; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.concurrent.CompletableFuture; - -/** - * 门回原点 - */ -@Slf4j -@Component -@RequiredArgsConstructor -@CommandMapping("door_origin")//业务指令注解 -public class DoorOriginCommand extends BaseCommandHandler { - private final DeviceCommandUtilService deviceCommandUtilService; - private final DeviceStateService deviceStateService; - private final SelfTestService selfTestService; - - @Override - public CompletableFuture handle(CmdDTO cmdDTO) { - return runAsync(() -> { - //门电机回原点 - deviceCommandUtilService.doorOrigin(cmdDTO.getCommandId(), cmdDTO.getCommand()); - selfTestService.getSelfTestState().setDoorOrigin(true);//设置是否在原点状态 - //将门状态设置为false - deviceStateService.setDoorStatus(false); - }); - } -} - diff --git a/src/main/java/com/iflytop/sgs/app/cmd/DryStartCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/DryStartCommand.java deleted file mode 100644 index a89cbd7..0000000 --- a/src/main/java/com/iflytop/sgs/app/cmd/DryStartCommand.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.iflytop.sgs.app.cmd; - -import cn.hutool.json.JSONArray; -import com.iflytop.sgs.app.core.BaseCommandHandler; -import com.iflytop.sgs.app.core.device.HeatModuleState; -import com.iflytop.sgs.app.model.dto.CmdDTO; -import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; -import com.iflytop.sgs.app.service.device.DeviceStateService; -import com.iflytop.sgs.common.annotation.CommandMapping; -import com.iflytop.sgs.common.enums.HeatModuleCode; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.concurrent.CompletableFuture; - -/** - * 开始烘干 - */ -@Slf4j -@Component -@RequiredArgsConstructor -@CommandMapping("heat_start")//业务指令注解 -public class DryStartCommand extends BaseCommandHandler { - private final DeviceCommandUtilService deviceCommandUtilService; - private final DeviceStateService deviceStateService; - - @Override - public CompletableFuture 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.getHeatModuleState(heatModuleId); - //设置加热区目标温度 - deviceStateService.setHeatModuleStateTargetTemperature(heatModuleId,heatModuleState.getDryTemperature()); - //从系统状态中获取指定加热区设定的烘干温度数值 - double temperature = deviceStateService.getHeatModuleState(heatModuleId).getDryTemperature(); - //开启退火 - deviceCommandUtilService.heatRodOpen(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId, temperature); - //设置加热区状态 正在烘干 - deviceStateService.setHeatModuleStateAnnealing(heatModuleId,true); - - } - }); - } -} - diff --git a/src/main/java/com/iflytop/sgs/app/cmd/DryStopCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/DryStopCommand.java deleted file mode 100644 index 0b65f8a..0000000 --- a/src/main/java/com/iflytop/sgs/app/cmd/DryStopCommand.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.iflytop.sgs.app.cmd; - -import cn.hutool.json.JSONArray; -import com.iflytop.sgs.app.core.BaseCommandHandler; -import com.iflytop.sgs.app.model.dto.CmdDTO; -import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; -import com.iflytop.sgs.app.service.device.DeviceStateService; -import com.iflytop.sgs.common.annotation.CommandMapping; -import com.iflytop.sgs.common.enums.HeatModuleCode; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.concurrent.CompletableFuture; - -/** - * 结束烘干 - */ -@Slf4j -@Component -@RequiredArgsConstructor -@CommandMapping("heat_start")//业务指令注解 -public class DryStopCommand extends BaseCommandHandler { - private final DeviceCommandUtilService deviceCommandUtilService; - private final DeviceStateService deviceStateService; - - @Override - public CompletableFuture 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); - //关闭加热 - deviceCommandUtilService.heatRodClose(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId); - //设置加热区状态 退火结束 - deviceStateService.setHeatModuleStateDrying(heatModuleId,false); - - } - }); - } -} - diff --git a/src/main/java/com/iflytop/sgs/app/cmd/FanStartCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/FanStartCommand.java deleted file mode 100644 index 350cab2..0000000 --- a/src/main/java/com/iflytop/sgs/app/cmd/FanStartCommand.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.iflytop.sgs.app.cmd; - -import cn.hutool.json.JSONArray; -import com.iflytop.sgs.app.core.BaseCommandHandler; -import com.iflytop.sgs.app.model.dto.CmdDTO; -import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; -import com.iflytop.sgs.app.service.device.DeviceStateService; -import com.iflytop.sgs.common.annotation.CommandMapping; -import com.iflytop.sgs.common.enums.HeatModuleCode; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.concurrent.CompletableFuture; - -/** - * 散热开 - */ -@Slf4j -@Component -@RequiredArgsConstructor -@CommandMapping("fan_start") -public class FanStartCommand extends BaseCommandHandler { - private final DeviceCommandUtilService deviceCommandUtilService; - private final DeviceStateService deviceStateService; - - @Override - public CompletableFuture 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); - deviceCommandUtilService.fanStart(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId); - deviceStateService.setHeatModuleStateFanOpen(heatModuleId, true); - } - }); - } -} - diff --git a/src/main/java/com/iflytop/sgs/app/cmd/FanStopCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/FanStopCommand.java deleted file mode 100644 index e67d714..0000000 --- a/src/main/java/com/iflytop/sgs/app/cmd/FanStopCommand.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.iflytop.sgs.app.cmd; - -import cn.hutool.json.JSONArray; -import com.iflytop.sgs.app.core.BaseCommandHandler; -import com.iflytop.sgs.app.model.dto.CmdDTO; -import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; -import com.iflytop.sgs.app.service.device.DeviceStateService; -import com.iflytop.sgs.common.annotation.CommandMapping; -import com.iflytop.sgs.common.enums.HeatModuleCode; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.concurrent.CompletableFuture; - -/** - * 散热关 - */ -@Slf4j -@Component -@RequiredArgsConstructor -@CommandMapping("fan_stop") -public class FanStopCommand extends BaseCommandHandler { - private final DeviceCommandUtilService deviceCommandUtilService; - private final DeviceStateService deviceStateService; - - @Override - public CompletableFuture 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); - deviceCommandUtilService.fanClose(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId); - deviceStateService.setHeatModuleStateFanOpen(heatModuleId, false); - } - }); - } -} - diff --git a/src/main/java/com/iflytop/sgs/app/cmd/GantryXOriginCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/GantryXOriginCommand.java deleted file mode 100644 index 6a168d3..0000000 --- a/src/main/java/com/iflytop/sgs/app/cmd/GantryXOriginCommand.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.iflytop.sgs.app.cmd; - -import com.iflytop.sgs.app.core.BaseCommandHandler; -import com.iflytop.sgs.app.model.dto.CmdDTO; -import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; -import com.iflytop.sgs.app.service.device.SelfTestService; -import com.iflytop.sgs.common.annotation.CommandMapping; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.concurrent.CompletableFuture; - -/** - * 龙门架机械臂x轴回原点 - */ -@Slf4j -@Component -@RequiredArgsConstructor -@CommandMapping("gantry_x_origin")//业务指令注解 -public class GantryXOriginCommand extends BaseCommandHandler { - private final DeviceCommandUtilService deviceCommandUtilService; - private final SelfTestService selfTestService; - - @Override - public CompletableFuture handle(CmdDTO cmdDTO) { - return runAsync(() -> { - deviceCommandUtilService.gantryXMoveOrigin(cmdDTO.getCommandId(), cmdDTO.getCommand()); - selfTestService.getSelfTestState().setGantryXOrigin(true);//设置是否在原点状态 - }); - } -} - diff --git a/src/main/java/com/iflytop/sgs/app/cmd/GantryZOriginCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/GantryZOriginCommand.java deleted file mode 100644 index 22a07a7..0000000 --- a/src/main/java/com/iflytop/sgs/app/cmd/GantryZOriginCommand.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.iflytop.sgs.app.cmd; - -import com.iflytop.sgs.app.core.BaseCommandHandler; -import com.iflytop.sgs.app.model.dto.CmdDTO; -import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; -import com.iflytop.sgs.app.service.device.SelfTestService; -import com.iflytop.sgs.common.annotation.CommandMapping; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.concurrent.CompletableFuture; - -/** - * 龙门架机械臂z轴回原点 - */ -@Slf4j -@Component -@RequiredArgsConstructor -@CommandMapping("gantry_z_origin")//业务指令注解 -public class GantryZOriginCommand extends BaseCommandHandler { - private final DeviceCommandUtilService deviceCommandUtilService; - private final SelfTestService selfTestService; - - @Override - public CompletableFuture handle(CmdDTO cmdDTO) { - return runAsync(() -> { - deviceCommandUtilService.gantryZMoveOrigin(cmdDTO.getCommandId(), cmdDTO.getCommand()); - selfTestService.getSelfTestState().setGantryZOrigin(true);//设置是否在原点状态 - }); - } -} - diff --git a/src/main/java/com/iflytop/sgs/app/cmd/HeatStartCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/HeatStartCommand.java deleted file mode 100644 index 2eeb591..0000000 --- a/src/main/java/com/iflytop/sgs/app/cmd/HeatStartCommand.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.iflytop.sgs.app.cmd; - -import cn.hutool.json.JSONArray; -import com.iflytop.sgs.app.core.BaseCommandHandler; -import com.iflytop.sgs.app.core.device.HeatModuleState; -import com.iflytop.sgs.app.model.dto.CmdDTO; -import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; -import com.iflytop.sgs.app.service.device.DeviceStateService; -import com.iflytop.sgs.common.annotation.CommandMapping; -import com.iflytop.sgs.common.enums.HeatModuleCode; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.concurrent.CompletableFuture; - -/** - * 开始加热 - */ -@Slf4j -@Component -@RequiredArgsConstructor -@CommandMapping("heat_start")//业务指令注解 -public class HeatStartCommand extends BaseCommandHandler { - private final DeviceCommandUtilService deviceCommandUtilService; - private final DeviceStateService deviceStateService; - - @Override - public CompletableFuture 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.getHeatModuleState(heatModuleId); - //设置加热区目标温度 - deviceStateService.setHeatModuleStateTargetTemperature(heatModuleId,heatModuleState.getHeatTemperature()); - //从系统状态中获取指定加热区设定的烘干温度数值 - double temperature = deviceStateService.getHeatModuleState(heatModuleId).getHeatTemperature(); - //开启加热 - deviceCommandUtilService.heatRodOpen(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId, temperature); - //设置加热区状态 正在加热 - deviceStateService.setHeatModuleStateHeating(heatModuleId,true); - - } - }); - } -} - diff --git a/src/main/java/com/iflytop/sgs/app/cmd/HeatStopCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/HeatStopCommand.java deleted file mode 100644 index ba00e00..0000000 --- a/src/main/java/com/iflytop/sgs/app/cmd/HeatStopCommand.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.iflytop.sgs.app.cmd; - -import cn.hutool.json.JSONArray; -import com.iflytop.sgs.app.core.BaseCommandHandler; -import com.iflytop.sgs.app.model.dto.CmdDTO; -import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; -import com.iflytop.sgs.app.service.device.DeviceStateService; -import com.iflytop.sgs.common.annotation.CommandMapping; -import com.iflytop.sgs.common.enums.HeatModuleCode; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.concurrent.CompletableFuture; - -/** - * 停止加热 - */ -@Slf4j -@Component -@RequiredArgsConstructor -@CommandMapping("heat_stop")//业务指令注解 -public class HeatStopCommand extends BaseCommandHandler { - private final DeviceCommandUtilService deviceCommandUtilService; - private final DeviceStateService deviceStateService; - - @Override - public CompletableFuture 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); - //关闭加热 - deviceCommandUtilService.heatRodClose(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId); - deviceStateService.setHeatModuleStateHeating(heatModuleId, false);//设置状态停止加热 - } - }); - } -} - diff --git a/src/main/java/com/iflytop/sgs/app/cmd/MoveToHeatAreaCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/MoveToHeatAreaCommand.java deleted file mode 100644 index ac1aa7d..0000000 --- a/src/main/java/com/iflytop/sgs/app/cmd/MoveToHeatAreaCommand.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.iflytop.sgs.app.cmd; - -import com.iflytop.sgs.app.core.BaseCommandHandler; -import com.iflytop.sgs.app.model.bo.Point3D; -import com.iflytop.sgs.app.model.dto.CmdDTO; -import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; -import com.iflytop.sgs.app.service.api.DevicePositionService; -import com.iflytop.sgs.app.service.device.DeviceStateService; -import com.iflytop.sgs.app.service.device.GantryArmService; -import com.iflytop.sgs.common.annotation.CommandMapping; -import com.iflytop.sgs.common.enums.HeatModuleCode; -import com.iflytop.sgs.common.enums.data.DevicePositionCode; -import com.iflytop.sgs.common.exception.AppException; -import com.iflytop.sgs.common.result.ResultCode; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.concurrent.CompletableFuture; - -/** - * 移至加热 todo wmy 需要改 - */ -@Slf4j -@Component -@RequiredArgsConstructor -@CommandMapping("move_to_heat_area")//业务指令注解 -public class MoveToHeatAreaCommand extends BaseCommandHandler { - private final DeviceCommandUtilService deviceCommandUtilService; - private final DevicePositionService devicePositionService; - private final GantryArmService gantryArmService; - private final DeviceStateService deviceStateService; - - @Override - public CompletableFuture handle(CmdDTO cmdDTO) throws Exception { - if (deviceStateService.getCommandState().get().isMoveToHeatAreaCommandExecuting()) { - throw new AppException(ResultCode.COMMAND_ALREADY_EXECUTING); - } - if (deviceStateService.getCommandState().get().isMoveToSolutionAreaCommandExecuting()) { - throw new AppException(ResultCode.CMD_BUSY); - } - try { - deviceStateService.getCommandState().get().setMoveToHeatAreaCommandExecuting(true); - } catch (Exception e) { - deviceStateService.getCommandState().get().setMoveToHeatAreaCommandExecuting(false); - throw e; - } - String heatId = cmdDTO.getStringParam("heatId"); - HeatModuleCode heatModuleId = HeatModuleCode.valueOf(heatId); - //加液电机升起的安全高度 - double liquidMotorSafeDistance = devicePositionService.getPosition(DevicePositionCode.clawTrayGrip).getDistance(); - //获取机械臂夹取托盘的横向距离 - double clawTrayGrip = devicePositionService.getPosition(DevicePositionCode.clawTrayGrip).getDistance(); - //获取机械臂夹取托盘的纵向高度 - double clawTrayHeight = devicePositionService.getPosition(DevicePositionCode.clawTrayHeight).getDistance(); - //获取指定加热模块上方点位 - Point3D heatAreaTrayClawPoint3D = deviceCommandUtilService.getHeatAreaTrayClawPoint3D(heatModuleId); - return runAsync(() -> { - try { - //升高加液电机高度 - deviceCommandUtilService.motorLiquidMove(cmdDTO.getCommandId(),cmdDTO.getCommand(),liquidMotorSafeDistance); - //移动机械臂到加热区上方 此时机械臂夹着托盘 - deviceCommandUtilService.gantryMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatAreaTrayClawPoint3D); //将机械臂移动至加热模块上方 - //下降z轴,夹爪脱离机械臂 - deviceCommandUtilService.gantryZMove(clawTrayHeight); - //移动x轴向右脱离托盘 - deviceCommandUtilService.gantryXMoveBy(cmdDTO.getCommandId(), cmdDTO.getCommand(), -clawTrayGrip); - //z轴返回原点 - deviceCommandUtilService.motorLiquidMove(0); - } finally { - deviceStateService.setGantryArmStateIdle(true); - deviceStateService.getCommandState().get().setMoveToHeatAreaCommandExecuting(false); - } - }); - } -} - diff --git a/src/main/java/com/iflytop/sgs/app/cmd/MoveToSolutionAreaCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/MoveToSolutionAreaCommand.java deleted file mode 100644 index 8a2d533..0000000 --- a/src/main/java/com/iflytop/sgs/app/cmd/MoveToSolutionAreaCommand.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.iflytop.sgs.app.cmd; - -import com.iflytop.sgs.app.core.BaseCommandHandler; -import com.iflytop.sgs.app.model.bo.Point3D; -import com.iflytop.sgs.app.model.dto.CmdDTO; -import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; -import com.iflytop.sgs.app.service.api.DevicePositionService; -import com.iflytop.sgs.app.service.device.DeviceStateService; -import com.iflytop.sgs.common.annotation.CommandMapping; -import com.iflytop.sgs.common.enums.HeatModuleCode; -import com.iflytop.sgs.common.enums.data.DevicePositionCode; -import com.iflytop.sgs.common.exception.AppException; -import com.iflytop.sgs.common.result.ResultCode; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.concurrent.CompletableFuture; - -/** - * 移至加液 todo wmy 需要改 - */ -@Slf4j -@Component -@RequiredArgsConstructor -@CommandMapping("move_to_solution_area")//业务指令注解 -public class MoveToSolutionAreaCommand extends BaseCommandHandler { - private final DeviceCommandUtilService deviceCommandUtilService; - private final DevicePositionService devicePositionService; - private final DeviceStateService deviceStateService; - - @Override - public CompletableFuture handle(CmdDTO cmdDTO) throws Exception { - if (deviceStateService.getCommandState().get().isMoveToSolutionAreaCommandExecuting()) { - throw new AppException(ResultCode.COMMAND_ALREADY_EXECUTING); - } - if (deviceStateService.getCommandState().get().isMoveToHeatAreaCommandExecuting()) { - throw new AppException(ResultCode.CMD_BUSY); - } - String heatId = cmdDTO.getStringParam("heatId"); - HeatModuleCode heatModuleId = HeatModuleCode.valueOf(heatId); - //加液电机升起的安全高度 - double liquidMotorSafeDistance = devicePositionService.getPosition(DevicePositionCode.clawTrayGrip).getDistance(); - //获取机械臂夹取托盘的横向距离 - double clawTrayGrip = devicePositionService.getPosition(DevicePositionCode.clawTrayGrip).getDistance(); - //获取机械臂夹取托盘的纵向高度 - double clawTrayHeight = devicePositionService.getPosition(DevicePositionCode.clawTrayHeight).getDistance();//获取z轴夹取托盘的下降高度 - //获取加液模块上方点位 - Point3D liquidAreaTrayPoint3D = devicePositionService.getPosition(DevicePositionCode.liquidAreaTrayPoint).getPoint3D(); - //获取指定加热模块上方点位 - Point3D heatAreaTrayPoint3D = deviceCommandUtilService.getHeatAreaTrayClawPoint3D(heatModuleId); - - //校验目标加热位是否有托盘 - try { - deviceStateService.getCommandState().get().setMoveToSolutionAreaCommandExecuting(true); - } catch (Exception e) { - deviceStateService.getCommandState().get().setMoveToSolutionAreaCommandExecuting(false); - throw e; - } - return runAsync(() -> { - try { - //升高加液电机高度 - deviceCommandUtilService.motorLiquidMove(cmdDTO.getCommandId(),cmdDTO.getCommand(),liquidMotorSafeDistance); - //机械臂移动到加热位上方或者上料位上方 - deviceCommandUtilService.gantryMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatAreaTrayPoint3D); - //下降z轴 - deviceCommandUtilService.gantryZMove(clawTrayHeight); - //移动x轴向左夹紧托盘 - deviceCommandUtilService.gantryXMoveBy(cmdDTO.getCommandId(), cmdDTO.getCommand(), clawTrayGrip); - //z轴上升到0点 - deviceCommandUtilService.gantryZMove(0); - //机械臂移动到加液区 - deviceCommandUtilService.gantryMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), liquidAreaTrayPoint3D); - } finally { - deviceStateService.setGantryArmStateIdle(true); - deviceStateService.getCommandState().get().setMoveToSolutionAreaCommandExecuting(false); - } - }); - } -} - diff --git a/src/main/java/com/iflytop/sgs/app/cmd/SolutionAddCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/SolutionAddCommand.java deleted file mode 100644 index baa3c58..0000000 --- a/src/main/java/com/iflytop/sgs/app/cmd/SolutionAddCommand.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.iflytop.sgs.app.cmd; - -import com.iflytop.sgs.app.core.BaseCommandHandler; -import com.iflytop.sgs.app.model.dto.CmdDTO; -import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; -import com.iflytop.sgs.app.service.device.DeviceStateService; -import com.iflytop.sgs.common.annotation.CommandMapping; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.concurrent.CompletableFuture; - -/** - * 添加溶液 todo wmy 需要记录托盘每一行的坐标 机械臂移动成功后 调动泵机加液 - */ -@Slf4j -@Component -@RequiredArgsConstructor -@CommandMapping("solution_add")//业务指令注解 -public class SolutionAddCommand extends BaseCommandHandler { - private final DeviceCommandUtilService deviceCommandUtilService; - private final DeviceStateService deviceStateService; - - @Override - public CompletableFuture handle(CmdDTO cmdDTO) { - deviceStateService.setSolutionModuleStatePumping(true); - return runAsync(() -> { - - }); - } -} - diff --git a/src/main/java/com/iflytop/sgs/app/cmd/SolutionReduceCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/SolutionReduceCommand.java deleted file mode 100644 index 474a82a..0000000 --- a/src/main/java/com/iflytop/sgs/app/cmd/SolutionReduceCommand.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.iflytop.sgs.app.cmd; - -import com.iflytop.sgs.app.core.BaseCommandHandler; -import com.iflytop.sgs.app.model.dto.CmdDTO; -import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; -import com.iflytop.sgs.app.service.device.DeviceStateService; -import com.iflytop.sgs.common.annotation.CommandMapping; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.concurrent.CompletableFuture; - -/** - * 抽取溶液 todo wmy 需要记录托盘每一行的坐标 机械臂移动成功后 调动泵机抽液体 - * - */ -@Slf4j -@Component -@RequiredArgsConstructor -@CommandMapping("solution_add")//业务指令注解 -public class SolutionReduceCommand extends BaseCommandHandler { - private final DeviceCommandUtilService deviceCommandUtilService; - private final DeviceStateService deviceStateService; - - @Override - public CompletableFuture handle(CmdDTO cmdDTO) { - deviceStateService.setSolutionModuleStatePumping(true); - return runAsync(() -> { - }); - } -} - diff --git a/src/main/java/com/iflytop/sgs/app/cmd/control/AnnealStartCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/control/AnnealStartCommand.java new file mode 100644 index 0000000..942cab5 --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/cmd/control/AnnealStartCommand.java @@ -0,0 +1,50 @@ +package com.iflytop.sgs.app.cmd.control; + +import cn.hutool.json.JSONArray; +import com.iflytop.sgs.app.core.BaseCommandHandler; +import com.iflytop.sgs.app.core.device.HeatModuleState; +import com.iflytop.sgs.app.model.dto.CmdDTO; +import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; +import com.iflytop.sgs.app.service.device.DeviceStateService; +import com.iflytop.sgs.common.annotation.CommandMapping; +import com.iflytop.sgs.common.enums.HeatModuleCode; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; + +/** + * 开始退火 + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandMapping("heat_start")//业务指令注解 +public class AnnealStartCommand extends BaseCommandHandler { + private final DeviceCommandUtilService deviceCommandUtilService; + private final DeviceStateService deviceStateService; + + @Override + public CompletableFuture 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.getHeatModuleState(heatModuleId); + //设置加热区目标温度 + deviceStateService.setHeatModuleStateTargetTemperature(heatModuleId,heatModuleState.getAnnealTemperature()); + //从系统状态中获取指定加热区设定的退火温度数值 + double temperature = deviceStateService.getHeatModuleState(heatModuleId).getAnnealTemperature(); + //开启退火 + deviceCommandUtilService.heatRodOpen(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId, temperature); + //设置加热区状态 正在退火 + deviceStateService.setHeatModuleStateAnnealing(heatModuleId,true); + + } + }); + } +} + diff --git a/src/main/java/com/iflytop/sgs/app/cmd/control/AnnealStopCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/control/AnnealStopCommand.java new file mode 100644 index 0000000..b676d2d --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/cmd/control/AnnealStopCommand.java @@ -0,0 +1,42 @@ +package com.iflytop.sgs.app.cmd.control; + +import cn.hutool.json.JSONArray; +import com.iflytop.sgs.app.core.BaseCommandHandler; +import com.iflytop.sgs.app.model.dto.CmdDTO; +import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; +import com.iflytop.sgs.app.service.device.DeviceStateService; +import com.iflytop.sgs.common.annotation.CommandMapping; +import com.iflytop.sgs.common.enums.HeatModuleCode; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; + +/** + * 结束退火 + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandMapping("heat_start")//业务指令注解 +public class AnnealStopCommand extends BaseCommandHandler { + private final DeviceCommandUtilService deviceCommandUtilService; + private final DeviceStateService deviceStateService; + + @Override + public CompletableFuture 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); + //关闭加热 + deviceCommandUtilService.heatRodClose(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId); + //设置加热区状态 退火结束 + deviceStateService.setHeatModuleStateAnnealing(heatModuleId,false); + } + }); + } +} + diff --git a/src/main/java/com/iflytop/sgs/app/cmd/control/CleanStartCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/control/CleanStartCommand.java new file mode 100644 index 0000000..23409e6 --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/cmd/control/CleanStartCommand.java @@ -0,0 +1,44 @@ +package com.iflytop.sgs.app.cmd.control; + +import cn.hutool.json.JSONArray; +import com.iflytop.sgs.app.core.BaseCommandHandler; +import com.iflytop.sgs.app.model.dto.CmdDTO; +import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; +import com.iflytop.sgs.app.service.device.DeviceStateService; +import com.iflytop.sgs.common.annotation.CommandMapping; +import com.iflytop.sgs.common.enums.HeatModuleCode; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; + +/** + * 开始清洗 todo wmy 需要改 + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandMapping("heat_start")//业务指令注解 +public class CleanStartCommand extends BaseCommandHandler { + private final DeviceCommandUtilService deviceCommandUtilService; + private final DeviceStateService deviceStateService; + + @Override + public CompletableFuture 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); + //从系统状态中获取指定加热区设定的温度数值 + double temperature = deviceStateService.getHeatModuleState(heatModuleId).getTemperature(); + //开启加热 + deviceCommandUtilService.heatRodOpen(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId, temperature); + deviceStateService.setHeatModuleStateHeating(heatModuleId, true);//设置状态加热中 + + } + }); + } +} + diff --git a/src/main/java/com/iflytop/sgs/app/cmd/control/CleanStopCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/control/CleanStopCommand.java new file mode 100644 index 0000000..a6eb2cb --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/cmd/control/CleanStopCommand.java @@ -0,0 +1,44 @@ +package com.iflytop.sgs.app.cmd.control; + +import cn.hutool.json.JSONArray; +import com.iflytop.sgs.app.core.BaseCommandHandler; +import com.iflytop.sgs.app.model.dto.CmdDTO; +import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; +import com.iflytop.sgs.app.service.device.DeviceStateService; +import com.iflytop.sgs.common.annotation.CommandMapping; +import com.iflytop.sgs.common.enums.HeatModuleCode; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; + +/** + * 结束清洗 todo wmy 需要改 + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandMapping("heat_start")//业务指令注解 +public class CleanStopCommand extends BaseCommandHandler { + private final DeviceCommandUtilService deviceCommandUtilService; + private final DeviceStateService deviceStateService; + + @Override + public CompletableFuture 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); + //从系统状态中获取指定加热区设定的温度数值 + double temperature = deviceStateService.getHeatModuleState(heatModuleId).getTemperature(); + //开启加热 + deviceCommandUtilService.heatRodOpen(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId, temperature); + deviceStateService.setHeatModuleStateHeating(heatModuleId, true);//设置状态加热中 + + } + }); + } +} + diff --git a/src/main/java/com/iflytop/sgs/app/cmd/control/DoorCloseCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/control/DoorCloseCommand.java new file mode 100644 index 0000000..b52688f --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/cmd/control/DoorCloseCommand.java @@ -0,0 +1,35 @@ +package com.iflytop.sgs.app.cmd.control; + +import com.iflytop.sgs.app.core.BaseCommandHandler; +import com.iflytop.sgs.app.model.dto.CmdDTO; +import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; +import com.iflytop.sgs.app.service.device.DeviceStateService; +import com.iflytop.sgs.common.annotation.CommandMapping; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; + +/** + * 关门 + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandMapping("door_close")//业务指令注解 +public class DoorCloseCommand extends BaseCommandHandler { + private final DeviceCommandUtilService deviceCommandUtilService; + private final DeviceStateService deviceStateService; + + @Override + public CompletableFuture handle(CmdDTO cmdDTO) { + return runAsync(() -> { + //门电机回原点 + deviceCommandUtilService.doorOrigin(cmdDTO.getCommandId(), cmdDTO.getCommand()); + //将门状态设置为false + deviceStateService.setDoorStatus(false); + }); + } +} + diff --git a/src/main/java/com/iflytop/sgs/app/cmd/control/DoorOpenCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/control/DoorOpenCommand.java new file mode 100644 index 0000000..6ca5fce --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/cmd/control/DoorOpenCommand.java @@ -0,0 +1,40 @@ +package com.iflytop.sgs.app.cmd.control; + +import com.iflytop.sgs.app.core.BaseCommandHandler; +import com.iflytop.sgs.app.model.dto.CmdDTO; +import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; +import com.iflytop.sgs.app.service.api.DevicePositionService; +import com.iflytop.sgs.app.service.device.DeviceStateService; +import com.iflytop.sgs.common.annotation.CommandMapping; +import com.iflytop.sgs.common.enums.data.DevicePositionCode; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; + +/** + * 开门 + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandMapping("door_open")//业务指令注解 +public class DoorOpenCommand extends BaseCommandHandler { + private final DeviceCommandUtilService deviceCommandUtilService; + private final DevicePositionService devicePositionService; + private final DeviceStateService deviceStateService; + + @Override + public CompletableFuture handle(CmdDTO cmdDTO) { + return runAsync(() -> { + //从数据库获取开门距离 + Double doorOpenDistance = devicePositionService.getPosition(DevicePositionCode.doorOpen).getDistance(); + //门电机移动开门距离 + deviceCommandUtilService.doorMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), doorOpenDistance); + //将门状态设置为true + deviceStateService.setDoorStatus(true); + }); + } +} + diff --git a/src/main/java/com/iflytop/sgs/app/cmd/control/DoorOriginCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/control/DoorOriginCommand.java new file mode 100644 index 0000000..c25f78c --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/cmd/control/DoorOriginCommand.java @@ -0,0 +1,38 @@ +package com.iflytop.sgs.app.cmd.control; + +import com.iflytop.sgs.app.core.BaseCommandHandler; +import com.iflytop.sgs.app.model.dto.CmdDTO; +import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; +import com.iflytop.sgs.app.service.device.DeviceStateService; +import com.iflytop.sgs.app.service.device.SelfTestService; +import com.iflytop.sgs.common.annotation.CommandMapping; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; + +/** + * 门回原点 + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandMapping("door_origin")//业务指令注解 +public class DoorOriginCommand extends BaseCommandHandler { + private final DeviceCommandUtilService deviceCommandUtilService; + private final DeviceStateService deviceStateService; + private final SelfTestService selfTestService; + + @Override + public CompletableFuture handle(CmdDTO cmdDTO) { + return runAsync(() -> { + //门电机回原点 + deviceCommandUtilService.doorOrigin(cmdDTO.getCommandId(), cmdDTO.getCommand()); + selfTestService.getSelfTestState().setDoorOrigin(true);//设置是否在原点状态 + //将门状态设置为false + deviceStateService.setDoorStatus(false); + }); + } +} + diff --git a/src/main/java/com/iflytop/sgs/app/cmd/control/DryStartCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/control/DryStartCommand.java new file mode 100644 index 0000000..dc347de --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/cmd/control/DryStartCommand.java @@ -0,0 +1,50 @@ +package com.iflytop.sgs.app.cmd.control; + +import cn.hutool.json.JSONArray; +import com.iflytop.sgs.app.core.BaseCommandHandler; +import com.iflytop.sgs.app.core.device.HeatModuleState; +import com.iflytop.sgs.app.model.dto.CmdDTO; +import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; +import com.iflytop.sgs.app.service.device.DeviceStateService; +import com.iflytop.sgs.common.annotation.CommandMapping; +import com.iflytop.sgs.common.enums.HeatModuleCode; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; + +/** + * 开始烘干 + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandMapping("heat_start")//业务指令注解 +public class DryStartCommand extends BaseCommandHandler { + private final DeviceCommandUtilService deviceCommandUtilService; + private final DeviceStateService deviceStateService; + + @Override + public CompletableFuture 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.getHeatModuleState(heatModuleId); + //设置加热区目标温度 + deviceStateService.setHeatModuleStateTargetTemperature(heatModuleId,heatModuleState.getDryTemperature()); + //从系统状态中获取指定加热区设定的烘干温度数值 + double temperature = deviceStateService.getHeatModuleState(heatModuleId).getDryTemperature(); + //开启退火 + deviceCommandUtilService.heatRodOpen(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId, temperature); + //设置加热区状态 正在烘干 + deviceStateService.setHeatModuleStateAnnealing(heatModuleId,true); + + } + }); + } +} + diff --git a/src/main/java/com/iflytop/sgs/app/cmd/control/DryStopCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/control/DryStopCommand.java new file mode 100644 index 0000000..ca70079 --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/cmd/control/DryStopCommand.java @@ -0,0 +1,43 @@ +package com.iflytop.sgs.app.cmd.control; + +import cn.hutool.json.JSONArray; +import com.iflytop.sgs.app.core.BaseCommandHandler; +import com.iflytop.sgs.app.model.dto.CmdDTO; +import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; +import com.iflytop.sgs.app.service.device.DeviceStateService; +import com.iflytop.sgs.common.annotation.CommandMapping; +import com.iflytop.sgs.common.enums.HeatModuleCode; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; + +/** + * 结束烘干 + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandMapping("heat_start")//业务指令注解 +public class DryStopCommand extends BaseCommandHandler { + private final DeviceCommandUtilService deviceCommandUtilService; + private final DeviceStateService deviceStateService; + + @Override + public CompletableFuture 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); + //关闭加热 + deviceCommandUtilService.heatRodClose(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId); + //设置加热区状态 退火结束 + deviceStateService.setHeatModuleStateDrying(heatModuleId,false); + + } + }); + } +} + diff --git a/src/main/java/com/iflytop/sgs/app/cmd/control/FanStartCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/control/FanStartCommand.java new file mode 100644 index 0000000..4582f64 --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/cmd/control/FanStartCommand.java @@ -0,0 +1,40 @@ +package com.iflytop.sgs.app.cmd.control; + +import cn.hutool.json.JSONArray; +import com.iflytop.sgs.app.core.BaseCommandHandler; +import com.iflytop.sgs.app.model.dto.CmdDTO; +import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; +import com.iflytop.sgs.app.service.device.DeviceStateService; +import com.iflytop.sgs.common.annotation.CommandMapping; +import com.iflytop.sgs.common.enums.HeatModuleCode; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; + +/** + * 散热开 + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandMapping("fan_start") +public class FanStartCommand extends BaseCommandHandler { + private final DeviceCommandUtilService deviceCommandUtilService; + private final DeviceStateService deviceStateService; + + @Override + public CompletableFuture 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); + deviceCommandUtilService.fanStart(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId); + deviceStateService.setHeatModuleStateFanOpen(heatModuleId, true); + } + }); + } +} + diff --git a/src/main/java/com/iflytop/sgs/app/cmd/control/FanStopCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/control/FanStopCommand.java new file mode 100644 index 0000000..8913710 --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/cmd/control/FanStopCommand.java @@ -0,0 +1,40 @@ +package com.iflytop.sgs.app.cmd.control; + +import cn.hutool.json.JSONArray; +import com.iflytop.sgs.app.core.BaseCommandHandler; +import com.iflytop.sgs.app.model.dto.CmdDTO; +import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; +import com.iflytop.sgs.app.service.device.DeviceStateService; +import com.iflytop.sgs.common.annotation.CommandMapping; +import com.iflytop.sgs.common.enums.HeatModuleCode; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; + +/** + * 散热关 + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandMapping("fan_stop") +public class FanStopCommand extends BaseCommandHandler { + private final DeviceCommandUtilService deviceCommandUtilService; + private final DeviceStateService deviceStateService; + + @Override + public CompletableFuture 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); + deviceCommandUtilService.fanClose(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId); + deviceStateService.setHeatModuleStateFanOpen(heatModuleId, false); + } + }); + } +} + diff --git a/src/main/java/com/iflytop/sgs/app/cmd/control/GantryXOriginCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/control/GantryXOriginCommand.java new file mode 100644 index 0000000..bcbdd4b --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/cmd/control/GantryXOriginCommand.java @@ -0,0 +1,33 @@ +package com.iflytop.sgs.app.cmd.control; + +import com.iflytop.sgs.app.core.BaseCommandHandler; +import com.iflytop.sgs.app.model.dto.CmdDTO; +import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; +import com.iflytop.sgs.app.service.device.SelfTestService; +import com.iflytop.sgs.common.annotation.CommandMapping; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; + +/** + * 龙门架机械臂x轴回原点 + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandMapping("gantry_x_origin")//业务指令注解 +public class GantryXOriginCommand extends BaseCommandHandler { + private final DeviceCommandUtilService deviceCommandUtilService; + private final SelfTestService selfTestService; + + @Override + public CompletableFuture handle(CmdDTO cmdDTO) { + return runAsync(() -> { + deviceCommandUtilService.gantryXMoveOrigin(cmdDTO.getCommandId(), cmdDTO.getCommand()); + selfTestService.getSelfTestState().setGantryXOrigin(true);//设置是否在原点状态 + }); + } +} + diff --git a/src/main/java/com/iflytop/sgs/app/cmd/control/GantryZOriginCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/control/GantryZOriginCommand.java new file mode 100644 index 0000000..fb343db --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/cmd/control/GantryZOriginCommand.java @@ -0,0 +1,33 @@ +package com.iflytop.sgs.app.cmd.control; + +import com.iflytop.sgs.app.core.BaseCommandHandler; +import com.iflytop.sgs.app.model.dto.CmdDTO; +import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; +import com.iflytop.sgs.app.service.device.SelfTestService; +import com.iflytop.sgs.common.annotation.CommandMapping; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; + +/** + * 龙门架机械臂z轴回原点 + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandMapping("gantry_z_origin")//业务指令注解 +public class GantryZOriginCommand extends BaseCommandHandler { + private final DeviceCommandUtilService deviceCommandUtilService; + private final SelfTestService selfTestService; + + @Override + public CompletableFuture handle(CmdDTO cmdDTO) { + return runAsync(() -> { + deviceCommandUtilService.gantryZMoveOrigin(cmdDTO.getCommandId(), cmdDTO.getCommand()); + selfTestService.getSelfTestState().setGantryZOrigin(true);//设置是否在原点状态 + }); + } +} + diff --git a/src/main/java/com/iflytop/sgs/app/cmd/control/HeatStartCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/control/HeatStartCommand.java new file mode 100644 index 0000000..dc077a7 --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/cmd/control/HeatStartCommand.java @@ -0,0 +1,50 @@ +package com.iflytop.sgs.app.cmd.control; + +import cn.hutool.json.JSONArray; +import com.iflytop.sgs.app.core.BaseCommandHandler; +import com.iflytop.sgs.app.core.device.HeatModuleState; +import com.iflytop.sgs.app.model.dto.CmdDTO; +import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; +import com.iflytop.sgs.app.service.device.DeviceStateService; +import com.iflytop.sgs.common.annotation.CommandMapping; +import com.iflytop.sgs.common.enums.HeatModuleCode; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; + +/** + * 开始加热 + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandMapping("heat_start")//业务指令注解 +public class HeatStartCommand extends BaseCommandHandler { + private final DeviceCommandUtilService deviceCommandUtilService; + private final DeviceStateService deviceStateService; + + @Override + public CompletableFuture 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.getHeatModuleState(heatModuleId); + //设置加热区目标温度 + deviceStateService.setHeatModuleStateTargetTemperature(heatModuleId,heatModuleState.getHeatTemperature()); + //从系统状态中获取指定加热区设定的烘干温度数值 + double temperature = deviceStateService.getHeatModuleState(heatModuleId).getHeatTemperature(); + //开启加热 + deviceCommandUtilService.heatRodOpen(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId, temperature); + //设置加热区状态 正在加热 + deviceStateService.setHeatModuleStateHeating(heatModuleId,true); + + } + }); + } +} + diff --git a/src/main/java/com/iflytop/sgs/app/cmd/control/HeatStopCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/control/HeatStopCommand.java new file mode 100644 index 0000000..c337b7e --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/cmd/control/HeatStopCommand.java @@ -0,0 +1,41 @@ +package com.iflytop.sgs.app.cmd.control; + +import cn.hutool.json.JSONArray; +import com.iflytop.sgs.app.core.BaseCommandHandler; +import com.iflytop.sgs.app.model.dto.CmdDTO; +import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; +import com.iflytop.sgs.app.service.device.DeviceStateService; +import com.iflytop.sgs.common.annotation.CommandMapping; +import com.iflytop.sgs.common.enums.HeatModuleCode; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; + +/** + * 停止加热 + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandMapping("heat_stop")//业务指令注解 +public class HeatStopCommand extends BaseCommandHandler { + private final DeviceCommandUtilService deviceCommandUtilService; + private final DeviceStateService deviceStateService; + + @Override + public CompletableFuture 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); + //关闭加热 + deviceCommandUtilService.heatRodClose(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId); + deviceStateService.setHeatModuleStateHeating(heatModuleId, false);//设置状态停止加热 + } + }); + } +} + diff --git a/src/main/java/com/iflytop/sgs/app/cmd/control/MoveToHeatAreaCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/control/MoveToHeatAreaCommand.java new file mode 100644 index 0000000..e470065 --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/cmd/control/MoveToHeatAreaCommand.java @@ -0,0 +1,77 @@ +package com.iflytop.sgs.app.cmd.control; + +import com.iflytop.sgs.app.core.BaseCommandHandler; +import com.iflytop.sgs.app.model.bo.Point3D; +import com.iflytop.sgs.app.model.dto.CmdDTO; +import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; +import com.iflytop.sgs.app.service.api.DevicePositionService; +import com.iflytop.sgs.app.service.device.DeviceStateService; +import com.iflytop.sgs.app.service.device.GantryArmService; +import com.iflytop.sgs.common.annotation.CommandMapping; +import com.iflytop.sgs.common.enums.HeatModuleCode; +import com.iflytop.sgs.common.enums.data.DevicePositionCode; +import com.iflytop.sgs.common.exception.AppException; +import com.iflytop.sgs.common.result.ResultCode; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; + +/** + * 移至加热 todo wmy 需要改 + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandMapping("move_to_heat_area")//业务指令注解 +public class MoveToHeatAreaCommand extends BaseCommandHandler { + private final DeviceCommandUtilService deviceCommandUtilService; + private final DevicePositionService devicePositionService; + private final GantryArmService gantryArmService; + private final DeviceStateService deviceStateService; + + @Override + public CompletableFuture handle(CmdDTO cmdDTO) throws Exception { + if (deviceStateService.getCommandState().get().isMoveToHeatAreaCommandExecuting()) { + throw new AppException(ResultCode.COMMAND_ALREADY_EXECUTING); + } + if (deviceStateService.getCommandState().get().isMoveToSolutionAreaCommandExecuting()) { + throw new AppException(ResultCode.CMD_BUSY); + } + try { + deviceStateService.getCommandState().get().setMoveToHeatAreaCommandExecuting(true); + } catch (Exception e) { + deviceStateService.getCommandState().get().setMoveToHeatAreaCommandExecuting(false); + throw e; + } + String heatId = cmdDTO.getStringParam("heatId"); + HeatModuleCode heatModuleId = HeatModuleCode.valueOf(heatId); + //加液电机升起的安全高度 + double liquidMotorSafeDistance = devicePositionService.getPosition(DevicePositionCode.clawTrayGrip).getDistance(); + //获取机械臂夹取托盘的横向距离 + double clawTrayGrip = devicePositionService.getPosition(DevicePositionCode.clawTrayGrip).getDistance(); + //获取机械臂夹取托盘的纵向高度 + double clawTrayHeight = devicePositionService.getPosition(DevicePositionCode.clawTrayHeight).getDistance(); + //获取指定加热模块上方点位 + Point3D heatAreaTrayClawPoint3D = deviceCommandUtilService.getHeatAreaTrayClawPoint3D(heatModuleId); + return runAsync(() -> { + try { + //升高加液电机高度 + deviceCommandUtilService.motorLiquidMove(cmdDTO.getCommandId(),cmdDTO.getCommand(),liquidMotorSafeDistance); + //移动机械臂到加热区上方 此时机械臂夹着托盘 + deviceCommandUtilService.gantryMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatAreaTrayClawPoint3D); //将机械臂移动至加热模块上方 + //下降z轴,夹爪脱离机械臂 + deviceCommandUtilService.gantryZMove(clawTrayHeight); + //移动x轴向右脱离托盘 + deviceCommandUtilService.gantryXMoveBy(cmdDTO.getCommandId(), cmdDTO.getCommand(), -clawTrayGrip); + //z轴返回原点 + deviceCommandUtilService.motorLiquidMove(0); + } finally { + deviceStateService.setGantryArmStateIdle(true); + deviceStateService.getCommandState().get().setMoveToHeatAreaCommandExecuting(false); + } + }); + } +} + diff --git a/src/main/java/com/iflytop/sgs/app/cmd/control/MoveToSolutionAreaCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/control/MoveToSolutionAreaCommand.java new file mode 100644 index 0000000..c9b4fca --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/cmd/control/MoveToSolutionAreaCommand.java @@ -0,0 +1,81 @@ +package com.iflytop.sgs.app.cmd.control; + +import com.iflytop.sgs.app.core.BaseCommandHandler; +import com.iflytop.sgs.app.model.bo.Point3D; +import com.iflytop.sgs.app.model.dto.CmdDTO; +import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; +import com.iflytop.sgs.app.service.api.DevicePositionService; +import com.iflytop.sgs.app.service.device.DeviceStateService; +import com.iflytop.sgs.common.annotation.CommandMapping; +import com.iflytop.sgs.common.enums.HeatModuleCode; +import com.iflytop.sgs.common.enums.data.DevicePositionCode; +import com.iflytop.sgs.common.exception.AppException; +import com.iflytop.sgs.common.result.ResultCode; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; + +/** + * 移至加液 todo wmy 需要改 + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandMapping("move_to_solution_area")//业务指令注解 +public class MoveToSolutionAreaCommand extends BaseCommandHandler { + private final DeviceCommandUtilService deviceCommandUtilService; + private final DevicePositionService devicePositionService; + private final DeviceStateService deviceStateService; + + @Override + public CompletableFuture handle(CmdDTO cmdDTO) throws Exception { + if (deviceStateService.getCommandState().get().isMoveToSolutionAreaCommandExecuting()) { + throw new AppException(ResultCode.COMMAND_ALREADY_EXECUTING); + } + if (deviceStateService.getCommandState().get().isMoveToHeatAreaCommandExecuting()) { + throw new AppException(ResultCode.CMD_BUSY); + } + String heatId = cmdDTO.getStringParam("heatId"); + HeatModuleCode heatModuleId = HeatModuleCode.valueOf(heatId); + //加液电机升起的安全高度 + double liquidMotorSafeDistance = devicePositionService.getPosition(DevicePositionCode.clawTrayGrip).getDistance(); + //获取机械臂夹取托盘的横向距离 + double clawTrayGrip = devicePositionService.getPosition(DevicePositionCode.clawTrayGrip).getDistance(); + //获取机械臂夹取托盘的纵向高度 + double clawTrayHeight = devicePositionService.getPosition(DevicePositionCode.clawTrayHeight).getDistance();//获取z轴夹取托盘的下降高度 + //获取加液模块上方点位 + Point3D liquidAreaTrayPoint3D = devicePositionService.getPosition(DevicePositionCode.liquidAreaTrayPoint).getPoint3D(); + //获取指定加热模块上方点位 + Point3D heatAreaTrayPoint3D = deviceCommandUtilService.getHeatAreaTrayClawPoint3D(heatModuleId); + + //校验目标加热位是否有托盘 + try { + deviceStateService.getCommandState().get().setMoveToSolutionAreaCommandExecuting(true); + } catch (Exception e) { + deviceStateService.getCommandState().get().setMoveToSolutionAreaCommandExecuting(false); + throw e; + } + return runAsync(() -> { + try { + //升高加液电机高度 + deviceCommandUtilService.motorLiquidMove(cmdDTO.getCommandId(),cmdDTO.getCommand(),liquidMotorSafeDistance); + //机械臂移动到加热位上方或者上料位上方 + deviceCommandUtilService.gantryMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatAreaTrayPoint3D); + //下降z轴 + deviceCommandUtilService.gantryZMove(clawTrayHeight); + //移动x轴向左夹紧托盘 + deviceCommandUtilService.gantryXMoveBy(cmdDTO.getCommandId(), cmdDTO.getCommand(), clawTrayGrip); + //z轴上升到0点 + deviceCommandUtilService.gantryZMove(0); + //机械臂移动到加液区 + deviceCommandUtilService.gantryMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), liquidAreaTrayPoint3D); + } finally { + deviceStateService.setGantryArmStateIdle(true); + deviceStateService.getCommandState().get().setMoveToSolutionAreaCommandExecuting(false); + } + }); + } +} + diff --git a/src/main/java/com/iflytop/sgs/app/cmd/control/SolutionAddCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/control/SolutionAddCommand.java new file mode 100644 index 0000000..04d2e9a --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/cmd/control/SolutionAddCommand.java @@ -0,0 +1,33 @@ +package com.iflytop.sgs.app.cmd.control; + +import com.iflytop.sgs.app.core.BaseCommandHandler; +import com.iflytop.sgs.app.model.dto.CmdDTO; +import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; +import com.iflytop.sgs.app.service.device.DeviceStateService; +import com.iflytop.sgs.common.annotation.CommandMapping; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; + +/** + * 添加溶液 todo wmy 需要记录托盘每一行的坐标 机械臂移动成功后 调动泵机加液 + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandMapping("solution_add")//业务指令注解 +public class SolutionAddCommand extends BaseCommandHandler { + private final DeviceCommandUtilService deviceCommandUtilService; + private final DeviceStateService deviceStateService; + + @Override + public CompletableFuture handle(CmdDTO cmdDTO) { + deviceStateService.setSolutionModuleStatePumping(true); + return runAsync(() -> { + + }); + } +} + diff --git a/src/main/java/com/iflytop/sgs/app/cmd/control/SolutionReduceCommand.java b/src/main/java/com/iflytop/sgs/app/cmd/control/SolutionReduceCommand.java new file mode 100644 index 0000000..05a8131 --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/cmd/control/SolutionReduceCommand.java @@ -0,0 +1,33 @@ +package com.iflytop.sgs.app.cmd.control; + +import com.iflytop.sgs.app.core.BaseCommandHandler; +import com.iflytop.sgs.app.model.dto.CmdDTO; +import com.iflytop.sgs.app.service.device.DeviceCommandUtilService; +import com.iflytop.sgs.app.service.device.DeviceStateService; +import com.iflytop.sgs.common.annotation.CommandMapping; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; + +/** + * 抽取溶液 todo wmy 需要记录托盘每一行的坐标 机械臂移动成功后 调动泵机抽液体 + * + */ +@Slf4j +@Component +@RequiredArgsConstructor +@CommandMapping("solution_add")//业务指令注解 +public class SolutionReduceCommand extends BaseCommandHandler { + private final DeviceCommandUtilService deviceCommandUtilService; + private final DeviceStateService deviceStateService; + + @Override + public CompletableFuture handle(CmdDTO cmdDTO) { + deviceStateService.setSolutionModuleStatePumping(true); + return runAsync(() -> { + }); + } +} + diff --git a/src/main/java/com/iflytop/sgs/app/service/device/module/DoorModuleService.java b/src/main/java/com/iflytop/sgs/app/service/device/module/DoorModuleService.java new file mode 100644 index 0000000..18e9ad0 --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/service/device/module/DoorModuleService.java @@ -0,0 +1,4 @@ +package com.iflytop.sgs.app.service.device.module; + +public class DoorModuleService { +} diff --git a/src/main/java/com/iflytop/sgs/app/service/device/module/HeatModuleService.java b/src/main/java/com/iflytop/sgs/app/service/device/module/HeatModuleService.java new file mode 100644 index 0000000..8876a24 --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/service/device/module/HeatModuleService.java @@ -0,0 +1,4 @@ +package com.iflytop.sgs.app.service.device.module; + +public class HeatModuleService { +} diff --git a/src/main/java/com/iflytop/sgs/app/service/device/module/SolutionModuleService.java b/src/main/java/com/iflytop/sgs/app/service/device/module/SolutionModuleService.java new file mode 100644 index 0000000..d42b9d5 --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/service/device/module/SolutionModuleService.java @@ -0,0 +1,4 @@ +package com.iflytop.sgs.app.service.device.module; + +public class SolutionModuleService { +} diff --git a/src/main/java/com/iflytop/sgs/app/service/device/module/TransferModuleService.java b/src/main/java/com/iflytop/sgs/app/service/device/module/TransferModuleService.java new file mode 100644 index 0000000..1da945c --- /dev/null +++ b/src/main/java/com/iflytop/sgs/app/service/device/module/TransferModuleService.java @@ -0,0 +1,4 @@ +package com.iflytop.sgs.app.service.device.module; + +public class TransferModuleService { +}