From 47e25c23bec3c847ab8463fadb3cb4fe81685d17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=A2=A6=E8=BF=9C?= <1063331231@qq.com> Date: Sat, 26 Jul 2025 19:10:30 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=8A=B6=E6=80=81=E7=9A=84?= =?UTF-8?q?=E8=B5=8B=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/command/control/heat/HeatRodCloseCommand.java | 5 +++++ .../colortitration/app/command/control/heat/HeatRodOpenCommand.java | 6 ++++++ .../command/control/transfer/HeatAreaMoveTitrationAreaCommand.java | 2 ++ .../command/control/transfer/TitrationAreaMoveHeatAreaCommand.java | 2 ++ .../app/command/control/transfer/TitrationMoveTrayAreaCommand.java | 4 ++++ .../app/command/control/transfer/TrayMoveTitrationAreaCommand.java | 4 ++++ .../com/iflytop/colortitration/app/controller/CraftsController.java | 1 + 7 files changed, 24 insertions(+) diff --git a/src/main/java/com/iflytop/colortitration/app/command/control/heat/HeatRodCloseCommand.java b/src/main/java/com/iflytop/colortitration/app/command/control/heat/HeatRodCloseCommand.java index 8824375..f4ea92c 100644 --- a/src/main/java/com/iflytop/colortitration/app/command/control/heat/HeatRodCloseCommand.java +++ b/src/main/java/com/iflytop/colortitration/app/command/control/heat/HeatRodCloseCommand.java @@ -3,6 +3,7 @@ package com.iflytop.colortitration.app.command.control.heat; import com.iflytop.colortitration.app.common.annotation.CommandMapping; import com.iflytop.colortitration.app.common.enums.MultipleModuleCode; import com.iflytop.colortitration.app.core.command.BaseCommandHandler; +import com.iflytop.colortitration.app.core.state.DeviceState; import com.iflytop.colortitration.app.model.dto.CommandDTO; import com.iflytop.colortitration.app.service.module.HeatModuleService; import com.iflytop.colortitration.common.exception.AppException; @@ -23,6 +24,7 @@ import java.util.concurrent.CompletableFuture; @CommandMapping("heater_stop") public class HeatRodCloseCommand extends BaseCommandHandler { private final HeatModuleService heatModuleService; + private final DeviceState deviceState; @Override public CompletableFuture handle(CommandDTO commandDTO) { @@ -33,6 +35,9 @@ public class HeatRodCloseCommand extends BaseCommandHandler { MultipleModuleCode heatModuleCode = MultipleModuleCode.valueOf(heatModuleCodeStr); return runAsync(() -> { heatModuleService.closeHeatRod(heatModuleCode); + deviceState.getHeatModuleStateMap().get(heatModuleCode).setOpen(false); + deviceState.getHeatModuleStateMap().get(heatModuleCode).setTargetTemperature(null); + deviceState.getHeatModuleStateMap().get(heatModuleCode).setStartHeatTime(null); }); } } diff --git a/src/main/java/com/iflytop/colortitration/app/command/control/heat/HeatRodOpenCommand.java b/src/main/java/com/iflytop/colortitration/app/command/control/heat/HeatRodOpenCommand.java index 904ef48..be5096a 100644 --- a/src/main/java/com/iflytop/colortitration/app/command/control/heat/HeatRodOpenCommand.java +++ b/src/main/java/com/iflytop/colortitration/app/command/control/heat/HeatRodOpenCommand.java @@ -3,6 +3,7 @@ package com.iflytop.colortitration.app.command.control.heat; import com.iflytop.colortitration.app.common.annotation.CommandMapping; import com.iflytop.colortitration.app.common.enums.MultipleModuleCode; import com.iflytop.colortitration.app.core.command.BaseCommandHandler; +import com.iflytop.colortitration.app.core.state.DeviceState; import com.iflytop.colortitration.app.model.dto.CommandDTO; import com.iflytop.colortitration.app.service.module.HeatModuleService; import com.iflytop.colortitration.common.exception.AppException; @@ -12,6 +13,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; +import java.time.LocalDateTime; import java.util.concurrent.CompletableFuture; /** @@ -23,6 +25,7 @@ import java.util.concurrent.CompletableFuture; @CommandMapping("heater_start") public class HeatRodOpenCommand extends BaseCommandHandler { private final HeatModuleService heatModuleService; + private final DeviceState deviceState; @Override public CompletableFuture handle(CommandDTO commandDTO) { @@ -34,6 +37,9 @@ public class HeatRodOpenCommand extends BaseCommandHandler { MultipleModuleCode heatModuleCode = MultipleModuleCode.valueOf(heatModuleCodeStr); return runAsync(() -> { heatModuleService.openHeatRod(heatModuleCode, temperature); + deviceState.getHeatModuleStateMap().get(heatModuleCode).setTargetTemperature(temperature); + deviceState.getHeatModuleStateMap().get(heatModuleCode).setOpen(true); + deviceState.getHeatModuleStateMap().get(heatModuleCode).setStartHeatTime(LocalDateTime.now()); }); } } diff --git a/src/main/java/com/iflytop/colortitration/app/command/control/transfer/HeatAreaMoveTitrationAreaCommand.java b/src/main/java/com/iflytop/colortitration/app/command/control/transfer/HeatAreaMoveTitrationAreaCommand.java index 0df3193..9bb8183 100644 --- a/src/main/java/com/iflytop/colortitration/app/command/control/transfer/HeatAreaMoveTitrationAreaCommand.java +++ b/src/main/java/com/iflytop/colortitration/app/command/control/transfer/HeatAreaMoveTitrationAreaCommand.java @@ -68,6 +68,8 @@ public class HeatAreaMoveTitrationAreaCommand extends BaseCommandHandler { transferModuleService.clawOpen(); //机械臂回到原点 transferModuleService.roboticMoveToOrigin(); + deviceState.getHeatModuleStateMap().get(titrationModuleCode).setTubeExist(false); + deviceState.getTitrationModuleStateMap().get(titrationModuleCode).setTubeExist(true); }); } } diff --git a/src/main/java/com/iflytop/colortitration/app/command/control/transfer/TitrationAreaMoveHeatAreaCommand.java b/src/main/java/com/iflytop/colortitration/app/command/control/transfer/TitrationAreaMoveHeatAreaCommand.java index c7cffe0..f889cfc 100644 --- a/src/main/java/com/iflytop/colortitration/app/command/control/transfer/TitrationAreaMoveHeatAreaCommand.java +++ b/src/main/java/com/iflytop/colortitration/app/command/control/transfer/TitrationAreaMoveHeatAreaCommand.java @@ -68,6 +68,8 @@ public class TitrationAreaMoveHeatAreaCommand extends BaseCommandHandler { transferModuleService.clawOpen(); //机械臂回到原点 transferModuleService.roboticMoveToOrigin(); + deviceState.getHeatModuleStateMap().get(titrationModuleCode).setTubeExist(true); + deviceState.getTitrationModuleStateMap().get(titrationModuleCode).setTubeExist(false); }); } } diff --git a/src/main/java/com/iflytop/colortitration/app/command/control/transfer/TitrationMoveTrayAreaCommand.java b/src/main/java/com/iflytop/colortitration/app/command/control/transfer/TitrationMoveTrayAreaCommand.java index e2ea262..1d6cec9 100644 --- a/src/main/java/com/iflytop/colortitration/app/command/control/transfer/TitrationMoveTrayAreaCommand.java +++ b/src/main/java/com/iflytop/colortitration/app/command/control/transfer/TitrationMoveTrayAreaCommand.java @@ -2,6 +2,7 @@ package com.iflytop.colortitration.app.command.control.transfer; import com.iflytop.colortitration.app.common.annotation.CommandMapping; import com.iflytop.colortitration.app.common.enums.MultipleModuleCode; +import com.iflytop.colortitration.app.common.enums.TitrationStatus; import com.iflytop.colortitration.app.core.command.BaseCommandHandler; import com.iflytop.colortitration.app.core.state.DeviceState; import com.iflytop.colortitration.app.model.dto.CommandDTO; @@ -64,6 +65,9 @@ public class TitrationMoveTrayAreaCommand extends BaseCommandHandler { transferModuleService.clawOpen(); //机械臂回到原点 transferModuleService.roboticMoveToOrigin(); + deviceState.getTitrationModuleStateMap().get(titrationModuleCode).setTubeExist(false); + deviceState.getTrayTubeStateMap().get(tubeNum).setTubeExist(true); + deviceState.getTrayTubeStateMap().get(tubeNum).setTitrationStatus(TitrationStatus.COMPLETED); }); } } diff --git a/src/main/java/com/iflytop/colortitration/app/command/control/transfer/TrayMoveTitrationAreaCommand.java b/src/main/java/com/iflytop/colortitration/app/command/control/transfer/TrayMoveTitrationAreaCommand.java index f7988c6..b58cd75 100644 --- a/src/main/java/com/iflytop/colortitration/app/command/control/transfer/TrayMoveTitrationAreaCommand.java +++ b/src/main/java/com/iflytop/colortitration/app/command/control/transfer/TrayMoveTitrationAreaCommand.java @@ -2,6 +2,7 @@ package com.iflytop.colortitration.app.command.control.transfer; import com.iflytop.colortitration.app.common.annotation.CommandMapping; import com.iflytop.colortitration.app.common.enums.MultipleModuleCode; +import com.iflytop.colortitration.app.common.enums.TitrationStatus; import com.iflytop.colortitration.app.core.command.BaseCommandHandler; import com.iflytop.colortitration.app.core.state.DeviceState; import com.iflytop.colortitration.app.model.dto.CommandDTO; @@ -84,6 +85,9 @@ public class TrayMoveTitrationAreaCommand extends BaseCommandHandler { transferModuleService.clawOpen(); //机械臂回到原点 transferModuleService.roboticMoveToOrigin(); + deviceState.getTitrationModuleStateMap().get(titrationModuleCode).setTubeExist(true); + deviceState.getTrayTubeStateMap().get(tubeNum).setTubeExist(false); + deviceState.getTrayTubeStateMap().get(tubeNum).setTitrationStatus(TitrationStatus.IN_PROGRESS); }); } } diff --git a/src/main/java/com/iflytop/colortitration/app/controller/CraftsController.java b/src/main/java/com/iflytop/colortitration/app/controller/CraftsController.java index cf02588..641eb87 100644 --- a/src/main/java/com/iflytop/colortitration/app/controller/CraftsController.java +++ b/src/main/java/com/iflytop/colortitration/app/controller/CraftsController.java @@ -105,5 +105,6 @@ public class CraftsController { }); return Result.success(); } + }