diff --git a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/PLATE_OPT_SCAN.java b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/PLATE_OPT_SCAN.java index 9f51c48..1a6981c 100644 --- a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/PLATE_OPT_SCAN.java +++ b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/PLATE_OPT_SCAN.java @@ -81,12 +81,14 @@ public class PLATE_OPT_SCAN extends A8kStepAction { } //扫描反应板并获取结果 - if (testModeState.getEnableOptScan()) { - OptAnalyzeContext optCxt = new OptAnalyzeContext(cxt.projCfg, cxt.bloodType); - optScanModuleCtrlService.doOptScan(optCxt); - reactionResults = optCxt.result; + if (testModeState.getDisableOptScan()) { + optScanModuleCtrlService.dropPlate(); + return reactionResults; } + OptAnalyzeContext optCxt = new OptAnalyzeContext(cxt.projCfg, cxt.bloodType); + optScanModuleCtrlService.doOptScan(optCxt); + reactionResults = optCxt.result; //丢板 optScanModuleCtrlService.dropPlate(); diff --git a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ1_ENTER_TUBEHOLDER_AND_SCAN.java b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ1_ENTER_TUBEHOLDER_AND_SCAN.java index 6e57e4c..83bde43 100644 --- a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ1_ENTER_TUBEHOLDER_AND_SCAN.java +++ b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ1_ENTER_TUBEHOLDER_AND_SCAN.java @@ -90,6 +90,9 @@ public class SEQ1_ENTER_TUBEHOLDER_AND_SCAN extends A8kStepAction { //如果测试模式设置好了试管扫描结果,那么直接使用虚拟扫描结果 if (testModeState.getVirtualTubeScanResult() != null) { + if (result.isHasTubeInIt()) { + throw AppException.of("试管架中有试管,但是测试模式中设置了虚拟试管扫描结果"); + } result = testModeState.getVirtualTubeScanResult(); } diff --git a/src/main/java/a8k/service/app/devicectrl/exdriver/MotorEnableExDriver.java b/src/main/java/a8k/service/app/devicectrl/exdriver/MotorEnableExDriver.java index d763c36..360bb68 100644 --- a/src/main/java/a8k/service/app/devicectrl/exdriver/MotorEnableExDriver.java +++ b/src/main/java/a8k/service/app/devicectrl/exdriver/MotorEnableExDriver.java @@ -33,12 +33,7 @@ public class MotorEnableExDriver { Integer val = enable ? 1 : 0; miniServoDriver.miniServoEnable(MiniServoMId.ShakeModGripperSV, val); miniServoDriver.miniServoEnable(MiniServoMId.ShakeModGripperYSV, val); - if (!enable) { - //TODO: 只有第一台样机,由于无法手拧,所以永不失能 - // stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModClampingM, val); - } else { - stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModClampingM, val); - } + stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModClampingM, val); stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModGripperZM, val); stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModShakeM, val); } diff --git a/src/main/java/a8k/service/app/devicectrl/exdriver/MotorMoveZeroExDriver.java b/src/main/java/a8k/service/app/devicectrl/exdriver/MotorMoveZeroExDriver.java index b7c044b..a31d0cd 100644 --- a/src/main/java/a8k/service/app/devicectrl/exdriver/MotorMoveZeroExDriver.java +++ b/src/main/java/a8k/service/app/devicectrl/exdriver/MotorMoveZeroExDriver.java @@ -47,6 +47,9 @@ public class MotorMoveZeroExDriver { stepMotorCtrlDriver.stepMotorEasyMoveToZeroBlock(StepMotorMId.ShakeModClampingM, 5000); stepMotorCtrlDriver.stepMotorEasyMoveToZeroBlock(StepMotorMId.ShakeModShakeM, 5000); // move to default pos + stepMotorCtrlDriver.stepMotorEasyMoveToBlock(StepMotorMId.ShakeModShakeM, 90, 5000); + + } } diff --git a/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotSamplePosCalibration.java b/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotSamplePosCalibration.java index e930b17..cbd5447 100644 --- a/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotSamplePosCalibration.java +++ b/src/main/java/a8k/service/app/devicectrl/param/calibration/HbotSamplePosCalibration.java @@ -86,11 +86,12 @@ public class HbotSamplePosCalibration { enableModule(); motorEnableExDriver.preProcessRelatedModuleEnable(true); - motorMoveZeroExDriver.preProcessModuleMoveToZero(); + // motorEnableExDriver.tubeFeedRelatedModuleEnable(true); + motorMoveZeroExDriver.preProcessModuleMoveToZero(); pipetteCtrlDriver.zMotorMoveZeroBlock(); hbotBaseMoveExDriver.moveToZero(); - + // motorMoveZeroExDriver.tubeFeeddingModuleMoveToZero(); } @ExtApiFn(name = "使能相关模块", group = "测试工具", order = 12) @@ -101,46 +102,21 @@ public class HbotSamplePosCalibration { @ExtApiFn(name = "失能相关模块", group = "测试工具", order = 13) public void disableModule() throws AppException { + stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModClampingM, 1); + stepMotorCtrlDriver.stepMotorEasyMoveByBlock(StepMotorMId.ShakeModClampingM, 10, 3000); + pipetteCtrlDriver.zMotorEnable(0); hbotBaseMoveExDriver.enable(0); + motorEnableExDriver.forceDisableAllMotor(); } - // @ExtApiFn(name = "试管夹具复位", group = "辅助工具", order = 21) - // public void tubeClampMoveZero() throws AppException { - // stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModClampingM, 1); - // stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModShakeM, 1); - // stepMotorCtrlDriver.stepMotorEasyMoveToZeroBlock(StepMotorMId.ShakeModShakeM, 5000); - // stepMotorCtrlDriver.stepMotorEasyMoveToBlock(StepMotorMId.ShakeModShakeM, 90, 5000); - // stepMotorCtrlDriver.stepMotorEasyMoveToZeroBlock(StepMotorMId.ShakeModClampingM, 5000); - // tubePreProcesModuleExDriver.clampingMReleaseTube(); - // stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModShakeM, 0); - // } - // - // @ExtApiFn(name = "释放试管", group = "辅助工具", order = 22) - // public void releaseTubeClamp() throws AppException { - // stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModClampingM, 1); - // stepMotorCtrlDriver.stepMotorEasyMoveByBlock(StepMotorMId.ShakeModClampingM, 20, 5000); - // // tubePreProcesModuleExDriver.clampingMReleaseTube(); - // } - // - // @ExtApiFn(name = "夹紧试管", group = "辅助工具", order = 23) - // public void clampTubeClamp() throws AppException { - // stepMotorCtrlDriver.stepMotorEnable(StepMotorMId.ShakeModClampingM, 1); - // tubePreProcesModuleExDriver.clampingMclampTube(); - // } - @ExtApiFn(name = "取试管到试管摇匀位", group = "辅助工具", order = 21) public void takeTubeToShakePos(Boolean isHtube) throws AppException { tubePreProcesCtrlService.takeTubeFromTubeholderToShakePos(isHtube); tubePreProcesCtrlService.takeTubeCap(); } - @ExtApiFn(name = "放回试管到试管架中", group = "辅助工具", order = 22) - public void putTubeBak() throws AppException { - tubePreProcesCtrlService.putbakTubeCapAndPutbakTubeToTubeHolder(); - } - // // 标定Z轴 diff --git a/src/main/java/a8k/service/app/devicectrl/script/DeviceCtrlScripter.java b/src/main/java/a8k/service/app/devicectrl/script/DeviceCtrlScripter.java index da3d67d..505464e 100644 --- a/src/main/java/a8k/service/app/devicectrl/script/DeviceCtrlScripter.java +++ b/src/main/java/a8k/service/app/devicectrl/script/DeviceCtrlScripter.java @@ -197,6 +197,7 @@ public class DeviceCtrlScripter { //吐液 distribute(PipetteGunBindActionType.DISTRIBUTION_LARGE_BUFFER_SOLUTION_PROBE_SUBSTANCE, ctx, takeul); + //丢tip hbotCtrlService.dropTip(); @@ -265,7 +266,6 @@ public class DeviceCtrlScripter { pipetteCtrlDriver.clearHangingLiquid(2); - //丢tip hbotCtrlService.dropTip(); //归零,待机 diff --git a/src/main/java/a8k/service/test/MainflowCtrlTestService.java b/src/main/java/a8k/service/test/MainflowCtrlTestService.java index 45f45ad..bdc612a 100644 --- a/src/main/java/a8k/service/test/MainflowCtrlTestService.java +++ b/src/main/java/a8k/service/test/MainflowCtrlTestService.java @@ -20,28 +20,21 @@ import a8k.service.app.devicectrl.exdriver.MotorEnableExDriver; import a8k.service.dao.A8kProjIdCardDao; import a8k.service.dao.A8kProjInfoDao; import a8k.service.dao.A8kProjOptConfigDao; -import a8k.service.test.fakeproj.FAKE_PROJ_01; -import a8k.service.test.fakeproj.FAKE_PROJ_02; -import a8k.service.test.fakeproj.FakeProjInfo; -import a8k.service.test.fakeproj.FakeProjInfoFactory; +import a8k.service.test.fakeproj.*; import a8k.service.test.state.TestModeState; import a8k.service.test.state.VirtualDevice; -import a8k.service.test.type.MainFlowCtrlTestCaseType; import a8k.type.*; import a8k.type.checkpoint.CheckResult; import a8k.type.consumables.ConsumablesScanReportErrorType; -import a8k.type.ecode.AECodeError; import a8k.type.exception.AppException; import a8k.type.tube_setting.TubeHolderSetting; import a8k.type.type.A8kTubeHolderType; import a8k.type.type.TipGroup; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.List; -import java.util.Objects; @Component @Slf4j @@ -127,7 +120,7 @@ public class MainflowCtrlTestService { return scanResult; } - TubeHolderSetting createOneActiveTubeHolderSetting(A8kTubeHolderType type, Integer tubeNum, List projId) { + TubeHolderSetting createOneActiveTubeHolderSetting(Integer tubeNum, List projId) { TubeHolderSetting setting = new TubeHolderSetting(); // setting.tubeHolderType = type; setting.active = true; @@ -156,7 +149,7 @@ public class MainflowCtrlTestService { @ExtApiFn(name = "使能光学检查", group = "测试模式", order = 103) public void setEnableOptScan(Boolean enable) { - testModeState.setEnableOptScan(enable); + testModeState.setDisableOptScan(enable); } // @@ -247,76 +240,83 @@ public class MainflowCtrlTestService { } } - - @ExtApiFn(name = "执行一次简单的测试(无试管测试.流程1)", order = 400) - public String doSimpleTest(Boolean isHTube, Integer tubeNum) throws AppException { + void doOnceSimpleTest(FakeProjInfo proj, Boolean isHTube, Integer tubeNum) throws AppException { if (tubeNum <= 0) { throw AppException.of("试管数量必须大于0"); } gstate.setDeviceInited(true); - stopAndWaittingForDeviceStop(); - //清空项目的数据库配置 - resetProjDB(); - //设置虚拟耗材,只有一个高试管 - testModeState.setVirtualTubeScanResult(createScanResult(A8kTubeHolderType.BloodTube, isHTube, tubeNum)); - //无校验模式 - testModeState.setNoCheckMode(true); - //无光学检查 - testModeState.setEnableOptScan(true); - - - //添加项目信息 - addProjInfo(FAKE_PROJ_01.class); //设置耗材状态,假定已经扫描过耗材 - LoadingConsumablesDirectly(ConsumableGroup.GROUP0, new FAKE_PROJ_01()); - //设置试管架扫描信息,全部设置成高试管 + LoadingConsumablesDirectly(ConsumableGroup.GROUP0, proj); + //添加一个新试管配置 appTubeSettingMgrService.removeAllTubeSetting(); - - for (int i = 0; i < 3; i++) { - TubeHolderSetting setting = createOneActiveTubeHolderSetting(A8kTubeHolderType.BloodTube, tubeNum, List.of(new FAKE_PROJ_01().projId)); - appTubeSettingMgrService.newTubeHolderSetting(setting); - } + appTubeSettingMgrService.newTubeHolderSetting(// + createOneActiveTubeHolderSetting(tubeNum, List.of(proj.projId))); //开始工作 appDeviceCtrlService.startWork(); + } + + + public void regFakeProjInfo() { + resetProjDB(); + addProjInfo(FAKE_PROJ_01_FLOW1.class); + addProjInfo(FAKE_PROJ_02_FLOW2.class); + addProjInfo(FAKE_PROJ_03.class); + addProjInfo(FAKE_PROJ_04.class); + addProjInfo(FAKE_PROJ_05.class); + addProjInfo(FAKE_PROJ_06.class); + } + + + @ExtApiFn(name = "执行一次简单的测试(无试管测试.流程1)", order = 400) + public String doSimpleTest(Boolean isHTube, Integer tubeNum) throws AppException { + regFakeProjInfo(); + //设置虚拟耗材,只有一个高试管,无校验模式,无光学检查 + testModeState.resetAll(); + testModeState.setVirtualTubeScanResult(createScanResult(A8kTubeHolderType.BloodTube, isHTube, tubeNum)); + testModeState.setNoCheckMode(true); + testModeState.setDisableOptScan(true); + doOnceSimpleTest(new FAKE_PROJ_01_FLOW1(), isHTube, tubeNum); return "开始测试"; } @ExtApiFn(name = "执行一次简单的测试(无试管测试.流程2)", order = 401) public String doSimpleTest2(Boolean isHTube, Integer tubeNum) throws AppException { - if (tubeNum <= 0) { - throw AppException.of("试管数量必须大于0"); - } + regFakeProjInfo(); + testModeState.resetAll(); + testModeState.setVirtualTubeScanResult(createScanResult(A8kTubeHolderType.BloodTube, isHTube, tubeNum)); + testModeState.setNoCheckMode(true); + testModeState.setDisableOptScan(true); + doOnceSimpleTest(new FAKE_PROJ_02_FLOW2(), isHTube, tubeNum); + return "开始测试"; + } - gstate.setDeviceInited(true); - - stopAndWaittingForDeviceStop(); - //清空项目的数据库配置 - resetProjDB(); + @ExtApiFn(name = "执行一次十个试管,双项目,无耗材测试", order = 402) + public String doSimpleTest3() throws AppException { + regFakeProjInfo(); - //设置虚拟耗材,只有一个高试管 - testModeState.setVirtualTubeScanResult(createScanResult(A8kTubeHolderType.BloodTube, isHTube, tubeNum)); - //无校验模式 + testModeState.resetAll(); + testModeState.setVirtualTubeScanResult(createScanResult(A8kTubeHolderType.BloodTube, true, 10)); testModeState.setNoCheckMode(true); - //无光学检查 - testModeState.setEnableOptScan(true); + testModeState.setDisableOptScan(true); + gstate.setDeviceInited(true); + + stopAndWaittingForDeviceStop(); - //添加项目信息 - addProjInfo(FAKE_PROJ_02.class); //设置耗材状态,假定已经扫描过耗材 - LoadingConsumablesDirectly(ConsumableGroup.GROUP1, new FAKE_PROJ_02()); - //设置试管架扫描信息,全部设置成高试管 + LoadingConsumablesDirectly(ConsumableGroup.GROUP0, new FAKE_PROJ_01_FLOW1()); + LoadingConsumablesDirectly(ConsumableGroup.GROUP1, new FAKE_PROJ_02_FLOW2()); + LoadingConsumablesDirectly(ConsumableGroup.GROUP3, new FAKE_PROJ_01_FLOW1()); + LoadingConsumablesDirectly(ConsumableGroup.GROUP4, new FAKE_PROJ_02_FLOW2()); + //添加一个新试管配置 appTubeSettingMgrService.removeAllTubeSetting(); - - for (int i = 0; i < 3; i++) { - TubeHolderSetting setting = createOneActiveTubeHolderSetting(A8kTubeHolderType.BloodTube, tubeNum, List.of(new FAKE_PROJ_02().projId)); - appTubeSettingMgrService.newTubeHolderSetting(setting); - } + appTubeSettingMgrService.newTubeHolderSetting(// + createOneActiveTubeHolderSetting(10, List.of(new FAKE_PROJ_01_FLOW1().projId, new FAKE_PROJ_02_FLOW2().projId))); //开始工作 appDeviceCtrlService.startWork(); diff --git a/src/main/java/a8k/service/test/VirtualDeviceSimulationTest.java b/src/main/java/a8k/service/test/VirtualDeviceSimulationTest.java index cce57cb..b1d750c 100644 --- a/src/main/java/a8k/service/test/VirtualDeviceSimulationTest.java +++ b/src/main/java/a8k/service/test/VirtualDeviceSimulationTest.java @@ -69,7 +69,7 @@ public class VirtualDeviceSimulationTest { @ExtApiFn(name = "模拟插入一张虚拟ID卡", group = "虚拟操作", order = 200) public void insertVirtualIdCard() { - A8kProjInfoCard idCardInfo = new FAKE_PROJ_01().buildA8kIDCardInfo(); + A8kProjInfoCard idCardInfo = new FAKE_PROJ_01_FLOW1().buildA8kIDCardInfo(); virtualDevice.setMountIdCard(idCardInfo); eventBus.pushEvent(new A8kHardwareReport(A8kPacketBuilder.build_event_a8000_idcard_online())); } @@ -90,7 +90,7 @@ public class VirtualDeviceSimulationTest { @ExtApiFn(name = "添加一组全血试管架配置(辅助调试)", group = "虚拟操作", order = 203) public TubeHolderSetting addTubeCfg() { appTubeSettingMgrService.removeAllTubeSetting(); - TubeHolderSetting setting = testStateMgrService.createOneActiveTubeHolderSetting(A8kTubeHolderType.BloodTube, 10, List.of(new FAKE_PROJ_01().projId)); + TubeHolderSetting setting = testStateMgrService.createOneActiveTubeHolderSetting(A8kTubeHolderType.BloodTube, 10, List.of(new FAKE_PROJ_01_FLOW1().projId)); appTubeSettingMgrService.newTubeHolderSetting(setting); return setting; @@ -100,22 +100,22 @@ public class VirtualDeviceSimulationTest { @ExtApiFn(name = "插入虚拟耗材", group = "虚拟操作", order = 250) public void insertVirtualConsumable() { - testStateMgrService.addProjInfo(FAKE_PROJ_01.class); - testStateMgrService.addProjInfo(FAKE_PROJ_02.class); + testStateMgrService.addProjInfo(FAKE_PROJ_01_FLOW1.class); + testStateMgrService.addProjInfo(FAKE_PROJ_02_FLOW2.class); testStateMgrService.addProjInfo(FAKE_PROJ_03.class); testStateMgrService.addProjInfo(FAKE_PROJ_04.class); testStateMgrService.addProjInfo(FAKE_PROJ_05.class); testStateMgrService.addProjInfo(FAKE_PROJ_06.class); - testStateMgrService.addIdCardInfo(FAKE_PROJ_01.class); - testStateMgrService.addIdCardInfo(FAKE_PROJ_02.class); + testStateMgrService.addIdCardInfo(FAKE_PROJ_01_FLOW1.class); + testStateMgrService.addIdCardInfo(FAKE_PROJ_02_FLOW2.class); testStateMgrService.addIdCardInfo(FAKE_PROJ_03.class); testStateMgrService.addIdCardInfo(FAKE_PROJ_04.class); testStateMgrService.addIdCardInfo(FAKE_PROJ_05.class); testStateMgrService.addIdCardInfo(FAKE_PROJ_06.class); - testStateMgrService.insertVirtualConsumable(0, new FAKE_PROJ_01().lotId); - testStateMgrService.insertVirtualConsumable(1, new FAKE_PROJ_02().lotId); + testStateMgrService.insertVirtualConsumable(0, new FAKE_PROJ_01_FLOW1().lotId); + testStateMgrService.insertVirtualConsumable(1, new FAKE_PROJ_02_FLOW2().lotId); testStateMgrService.insertVirtualConsumable(2, new FAKE_PROJ_03().lotId); testStateMgrService.insertVirtualConsumable(3, new FAKE_PROJ_04().lotId); testStateMgrService.insertVirtualConsumable(4, new FAKE_PROJ_05().lotId); @@ -129,13 +129,13 @@ public class VirtualDeviceSimulationTest { ConsumableOneChRawResult oneChResult; //缺少ID卡 - testStateMgrService.addProjInfo(FAKE_PROJ_01.class); - testStateMgrService.insertVirtualConsumable(0, new FAKE_PROJ_01().lotId); + testStateMgrService.addProjInfo(FAKE_PROJ_01_FLOW1.class); + testStateMgrService.insertVirtualConsumable(0, new FAKE_PROJ_01_FLOW1().lotId); //缺少耗材 - testStateMgrService.addProjInfo(FAKE_PROJ_02.class); - testStateMgrService.addIdCardInfo(FAKE_PROJ_02.class); - oneChResult = testStateMgrService.buildConsumable(1, new FAKE_PROJ_02().lotId); + testStateMgrService.addProjInfo(FAKE_PROJ_02_FLOW2.class); + testStateMgrService.addIdCardInfo(FAKE_PROJ_02_FLOW2.class); + oneChResult = testStateMgrService.buildConsumable(1, new FAKE_PROJ_02_FLOW2().lotId); oneChResult.littBSScanResult = ""; oneChResult.larBSScanResult = ""; testStateMgrService.insertVirtualConsumable(oneChResult); @@ -174,13 +174,13 @@ public class VirtualDeviceSimulationTest { ConsumableOneChRawResult oneChResult; //缺少项目 - testStateMgrService.addIdCardInfo(FAKE_PROJ_01.class); - testStateMgrService.insertVirtualConsumable(0, new FAKE_PROJ_01().lotId); + testStateMgrService.addIdCardInfo(FAKE_PROJ_01_FLOW1.class); + testStateMgrService.insertVirtualConsumable(0, new FAKE_PROJ_01_FLOW1().lotId); //缺少耗材 - testStateMgrService.addProjInfo(FAKE_PROJ_02.class); - testStateMgrService.addIdCardInfo(FAKE_PROJ_02.class); - oneChResult = testStateMgrService.buildConsumable(1, new FAKE_PROJ_02().lotId); + testStateMgrService.addProjInfo(FAKE_PROJ_02_FLOW2.class); + testStateMgrService.addIdCardInfo(FAKE_PROJ_02_FLOW2.class); + oneChResult = testStateMgrService.buildConsumable(1, new FAKE_PROJ_02_FLOW2().lotId); oneChResult.littBSScanResult = "XXXX"; oneChResult.larBSScanResult = "XXXX"; testStateMgrService.insertVirtualConsumable(oneChResult); diff --git a/src/main/java/a8k/service/test/fakeproj/FAKE_PROJ_01.java b/src/main/java/a8k/service/test/fakeproj/FAKE_PROJ_01_FLOW1.java similarity index 85% rename from src/main/java/a8k/service/test/fakeproj/FAKE_PROJ_01.java rename to src/main/java/a8k/service/test/fakeproj/FAKE_PROJ_01_FLOW1.java index 93f62f6..32c0964 100644 --- a/src/main/java/a8k/service/test/fakeproj/FAKE_PROJ_01.java +++ b/src/main/java/a8k/service/test/fakeproj/FAKE_PROJ_01_FLOW1.java @@ -3,8 +3,8 @@ package a8k.service.test.fakeproj; import a8k.service.dao.type.a8kidcard.zenum.A8kReactionFlowType; -public class FAKE_PROJ_01 extends FakeProjInfo { - public FAKE_PROJ_01() { +public class FAKE_PROJ_01_FLOW1 extends FakeProjInfo { + public FAKE_PROJ_01_FLOW1() { super(1); subProjNum = 1; // 子项目数量 reactionTemperature = 25; // 反应温度 @@ -12,5 +12,4 @@ public class FAKE_PROJ_01 extends FakeProjInfo { reactionFlowType = A8kReactionFlowType.FlowType1; // 反应流程类型 } - } diff --git a/src/main/java/a8k/service/test/fakeproj/FAKE_PROJ_02.java b/src/main/java/a8k/service/test/fakeproj/FAKE_PROJ_02_FLOW2.java similarity index 85% rename from src/main/java/a8k/service/test/fakeproj/FAKE_PROJ_02.java rename to src/main/java/a8k/service/test/fakeproj/FAKE_PROJ_02_FLOW2.java index 22d891d..d89375d 100644 --- a/src/main/java/a8k/service/test/fakeproj/FAKE_PROJ_02.java +++ b/src/main/java/a8k/service/test/fakeproj/FAKE_PROJ_02_FLOW2.java @@ -3,8 +3,8 @@ package a8k.service.test.fakeproj; import a8k.service.dao.type.a8kidcard.zenum.A8kReactionFlowType; -public class FAKE_PROJ_02 extends FakeProjInfo { - public FAKE_PROJ_02() { +public class FAKE_PROJ_02_FLOW2 extends FakeProjInfo { + public FAKE_PROJ_02_FLOW2() { super(2); subProjNum = 1; // 子项目数量 reactionTemperature = 25; // 反应温度 diff --git a/src/main/java/a8k/service/test/state/TestModeState.java b/src/main/java/a8k/service/test/state/TestModeState.java index 9b33fed..3dbad1d 100644 --- a/src/main/java/a8k/service/test/state/TestModeState.java +++ b/src/main/java/a8k/service/test/state/TestModeState.java @@ -1,8 +1,6 @@ package a8k.service.test.state; import a8k.type.TubeHolderScanResult; -import com.fasterxml.jackson.annotation.JsonIgnore; -import jakarta.annotation.Resource; import lombok.Data; import org.springframework.stereotype.Component; @@ -10,9 +8,15 @@ import org.springframework.stereotype.Component; @Data public class TestModeState { - Boolean noCheckMode = false; //无校验模式 - Boolean enableOptScan = true; //是否使能光学扫描 + Boolean noCheckMode = false; //无校验模式 + Boolean disableOptScan = false; //是否使能光学扫描 -// @JsonIgnore + // @JsonIgnore TubeHolderScanResult virtualTubeScanResult = null; // 虚拟管架扫描结果 + + public void resetAll() { + noCheckMode = false; + disableOptScan = false; + virtualTubeScanResult = null; + } } diff --git a/src/main/java/a8k/type/TubeHolderScanResult.java b/src/main/java/a8k/type/TubeHolderScanResult.java index eba7df4..c299495 100644 --- a/src/main/java/a8k/type/TubeHolderScanResult.java +++ b/src/main/java/a8k/type/TubeHolderScanResult.java @@ -6,7 +6,16 @@ public class TubeHolderScanResult { public TubesScanResult[] tube = new TubesScanResult[10]; public String tubeHolderType = ""; - public String toString(){ + public String toString() { return String.format("%s %s", tubeHolderType, Arrays.toString(tube)); } + + public Boolean isHasTubeInIt() { + for (TubesScanResult tubesScanResult : tube) { + if (tubesScanResult.isTubeExist) { + return true; + } + } + return false; + } } diff --git a/src/main/resources/app.db b/src/main/resources/app.db index fdf8837..3ac30b2 100644 Binary files a/src/main/resources/app.db and b/src/main/resources/app.db differ