From 34a07ea06664eb4f483f2fd590a9f93687df0a68 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 17:40:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=BC=E5=AE=B9=E8=AF=95=E7=AE=A1=E4=B8=8D?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E6=BB=B4=E5=AE=9A=E5=8C=BA=E7=9B=B4=E6=8E=A5?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../control/transfer/TrayMoveTitrationAreaCommand.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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 8b85fea..f7988c6 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 @@ -32,9 +32,23 @@ public class TrayMoveTitrationAreaCommand extends BaseCommandHandler { public CompletableFuture handle(CommandDTO commandDTO) { Integer tubeNum = commandDTO.getIntegerParam("tubeNum"); String moduleCode = commandDTO.getStringParam("titrationModuleCode"); - if (StringUtils.isEmpty(moduleCode) || tubeNum == null) { + if (tubeNum == null) { throw new AppException(ResultCode.INVALID_PARAMETER);//参数缺失 } + if (StringUtils.isEmpty(moduleCode)) { + boolean titration1Exist = deviceState.getTitrationModuleStateMap().get(MultipleModuleCode.MODULE_1).isTubeExist(); + if (!titration1Exist) { + moduleCode = MultipleModuleCode.MODULE_1.name(); + } else { + boolean titration2Exist = deviceState.getTitrationModuleStateMap().get(MultipleModuleCode.MODULE_2).isTubeExist(); + if (!titration2Exist) { + moduleCode = MultipleModuleCode.MODULE_2.name(); + } else { + throw new AppException(ResultCode.TARGET_MODULE_OCCUPIED);//无空闲的滴定位 + } + } + + } MultipleModuleCode titrationModuleCode = MultipleModuleCode.valueOf(moduleCode); boolean trayExist = switch (titrationModuleCode) { //1、首先检测试管所在的托盘传感器的值 case MultipleModuleCode.MODULE_1 -> deviceState.isTrayExist1();