Browse Source

recode

tags/v0
zhaohe 7 months ago
parent
commit
0cd9c55971
  1. 2
      doc/TODO.md
  2. 34
      src/main/java/a8k/app/a8ktype/param/Hbot2DCodeScanPos.java
  3. 35
      src/main/java/a8k/app/a8ktype/param/HbotProbeSubstancePos.java
  4. 1
      src/main/java/a8k/app/a8ktype/param/TubePrePorcessStructConstant.java
  5. 17
      src/main/java/a8k/app/a8ktype/param/hbotpos/Hbot2DCodeScanPos.java
  6. 2
      src/main/java/a8k/app/a8ktype/param/hbotpos/HbotLargeBottleBSPos.java
  7. 3
      src/main/java/a8k/app/a8ktype/param/hbotpos/HbotLittleBSPos.java
  8. 2
      src/main/java/a8k/app/a8ktype/param/hbotpos/HbotSamplePos.java
  9. 2
      src/main/java/a8k/app/a8ktype/param/hbotpos/HbotTipPosParam.java
  10. 27
      src/main/java/a8k/app/a8ktype/param/hbotpos/HbotZPos.java
  11. 2
      src/main/java/a8k/app/a8ktype/param/optpos/OptModuleExtParam.java
  12. 2
      src/main/java/a8k/app/a8ktype/param/optpos/OptModuleParam.java
  13. 2
      src/main/java/a8k/app/a8ktype/param/pipette/PipetteGunLLDThresholdParam.java
  14. 2
      src/main/java/a8k/app/a8ktype/param/pipette/PipetteGunLLDTypeParam.java
  15. 2
      src/main/java/a8k/app/a8ktype/param/pipette/PipetteGunLLFParam.java
  16. 2
      src/main/java/a8k/app/a8ktype/param/tubefeeding/TubeFeedingModulePos.java
  17. 2
      src/main/java/a8k/app/a8ktype/param/tubefeeding/TubeFeedingModuleSetting.java
  18. 2
      src/main/java/a8k/app/a8ktype/param/tubepreprocess/TubePreProcessGripperPos.java
  19. 2
      src/main/java/a8k/app/a8ktype/param/tubepreprocess/TubePreProcessTubeClamp.java
  20. 2
      src/main/java/a8k/app/a8ktype/param/tubepreprocess/TubePreProcessYPos.java
  21. 2
      src/main/java/a8k/app/a8ktype/param/tubepreprocess/TubePreProcessZAxisPos.java
  22. 2
      src/main/java/a8k/app/a8ktype/param/type/A8kSamplePos.java
  23. 3
      src/main/java/a8k/app/a8ktype/state/ProjectTaskContext.java
  24. 1
      src/main/java/a8k/app/a8ktype/state/enumtype/TubeState.java
  25. 7
      src/main/java/a8k/app/service/exparam/PipetteGunParamExMgr.java
  26. 4
      src/main/java/a8k/app/service/lowerctrl/HbotMoveExCtrlService.java
  27. 2
      src/main/java/a8k/app/service/lowerctrl/LiquidOperationCtrlService.java
  28. 22
      src/main/java/a8k/app/service/mainctrl/mainflowctrl/action/AC41ProcessSample.java
  29. 202
      src/main/java/a8k/app/service/mainctrl/mainflowctrl/action/AC42FinishProcesseTube.java
  30. 2
      src/main/java/a8k/app/service/param/Hbot2DCodeScanParamMgr.java
  31. 2
      src/main/java/a8k/app/service/param/HbotLargeBottleBSPosMgr.java
  32. 2
      src/main/java/a8k/app/service/param/HbotLittleBSPosMgr.java
  33. 4
      src/main/java/a8k/app/service/param/HbotSamplePosParamMgr.java
  34. 2
      src/main/java/a8k/app/service/param/HbotTipPosMgr.java
  35. 2
      src/main/java/a8k/app/service/param/OptModuleExtParamsMgr.java
  36. 2
      src/main/java/a8k/app/service/param/OptModuleParamsMgr.java
  37. 4
      src/main/java/a8k/app/service/param/PipetteGunLLDParamMgr.java
  38. 4
      src/main/java/a8k/app/service/param/PipetteGunLLFParamMgr.java
  39. 4
      src/main/java/a8k/app/service/param/TubeFeedingModuleParamMgr.java
  40. 8
      src/main/java/a8k/app/service/param/TubePreProcesPosParamMgr.java
  41. 9
      src/main/java/a8k/app/service/statemgr/TubeStateMgrService.java
  42. 14
      src/main/java/a8k/app/utils/ProjProcessContextUtils.java
  43. 2
      src/main/java/a8k/extui/oldpage/pos_calibration/HbotLargeBottleBSPosCalibration.java
  44. 2
      src/main/java/a8k/extui/oldpage/pos_calibration/HbotLittleBSPosCalibration.java
  45. 2
      src/main/java/a8k/extui/oldpage/pos_calibration/OptModuleParamPosCalibration.java
  46. 4
      src/main/java/a8k/extui/oldpage/pos_calibration/TubeFeedingModulePosCalibration.java
  47. 8
      src/main/java/a8k/extui/oldpage/pos_calibration/TubePreProcesPosCalibration.java
  48. 9
      src/main/java/a8k/extui/page/opt_calibration/OptModuleParamCalibration.java
  49. 4
      src/main/java/a8k/extui/page/pos_calibration/P02TubeFeedingModulePosCalibrationPage.java
  50. 8
      src/main/java/a8k/extui/page/pos_calibration/P03TubePreProcesPosCalibrationPage.java
  51. 2
      src/main/java/a8k/extui/page/pos_calibration/P04ReactionPlatesTransmitControlerCalibrationPage.java
  52. 2
      src/main/java/a8k/extui/page/pos_calibration/P21HbotLittleBSPosCalibrationPage.java
  53. 2
      src/main/java/a8k/extui/page/pos_calibration/P23HbotLargeBottleBSPosCalibrationPage.java
  54. 4
      src/main/java/a8k/extui/page/pos_calibration/P25HbotSamplePosCalibrationPage.java
  55. 2
      src/main/java/a8k/extui/page/verification/P33HbotSamplePosVerificationPage.java
  56. 2
      src/main/java/a8k/extui/page/verification/P34LiquidOperationTestPage.java
  57. 4
      src/main/java/a8k/extui/page/verification/P51FullFlowVerificationPage.java

2
doc/TODO.md

@ -25,5 +25,5 @@
[25-01-03 16:48:31.422] [SocketCan ] [E] send frame overtime
[25-01-03 16:48:33.504] [ExtAPIService ] [I] down can bin -> 350E010001005B00(16)
[25-01-03 16:48:33.525] [SocketCan ] [E] send frame overtime
4. 处理一下A8kEcode.APPE_TAKE_TIP_FAIL错误
```

34
src/main/java/a8k/app/a8ktype/param/Hbot2DCodeScanPos.java

@ -1,34 +0,0 @@
package a8k.app.a8ktype.param;
import a8k.app.a8ktype.device.Pos2d;
public enum Hbot2DCodeScanPos {
PBScanPos0("板夹仓扫码位置0", Pos2d.class),
// PBScanPos1("板夹仓扫码位置1", Pos2d.class),
// PBScanPos2("板夹仓扫码位置2", Pos2d.class),
// PBScanPos3("板夹仓扫码位置3", Pos2d.class),
// PBScanPos4("板夹仓扫码位置4", Pos2d.class),
// PBScanPos5("板夹仓扫码位置5", Pos2d.class),
LittBS0("小缓冲液扫码位置0", Pos2d.class),
// LittBS1("小缓冲液扫码位置1", Pos2d.class),
// LittBS2("小缓冲液扫码位置2", Pos2d.class),
// LittBS3("小缓冲液扫码位置3", Pos2d.class),
// LittBS4("小缓冲液扫码位置4", Pos2d.class),
// LittBS5("小缓冲液扫码位置5", Pos2d.class),
LarBS0("大缓冲液扫码位置0", Pos2d.class),
// LarBS1("大缓冲液扫码位置1", Pos2d.class),
// LarBS2("大缓冲液扫码位置2", Pos2d.class),
// LarBS3("大缓冲液扫码位置3", Pos2d.class),
// LarBS4("大缓冲液扫码位置4", Pos2d.class),
// LarBS5("大缓冲液扫码位置5", Pos2d.class),
;
public final String chName;
public final Class<?> type;
Hbot2DCodeScanPos(String chName, Class<?> type) {
this.chName = chName;
this.type = type;
}
}

35
src/main/java/a8k/app/a8ktype/param/HbotProbeSubstancePos.java

@ -1,35 +0,0 @@
//package a8k.app.a8ktype.param;
//
//import a8k.app.a8ktype.device.Pos3d;
//
//public enum HbotProbeSubstancePos {
// ProbeSubstanceGroup0_000Pos("第1组探测物质的第1个位置", Pos3d.class),
// ProbeSubstanceGroup1_000Pos("第1组探测物质的第2个位置", Pos3d.class),
// ProbeSubstanceGroup2_000Pos("第1组探测物质的第3个位置", Pos3d.class),
// ProbeSubstanceGroup3_000Pos("第1组探测物质的第4个位置", Pos3d.class),
// ProbeSubstanceGroup4_000Pos("第1组探测物质的第5个位置", Pos3d.class),
// ProbeSubstanceGroup5_000Pos("第1组探测物质的第6个位置", Pos3d.class),
// ProbeSubstanceDX("探测物质的X间距", Double.class),
// ProbeSubstanceDY("探测物质的Y间距", Double.class),
//
//
// ProbeSubstanceGroupDX("探测物质的组X间距", Double.class),
// ProbeSubstanceGroupDY("探测物质的组Y间距", Double.class),
//
// ProbeSubstancePierceXYAppendDistance("探测物质液刺破XY附加距离", Double.class),
// ProbeSubstancePierceZPos("探测物质液刺破Z坐标", Integer.class),
// // ProbeSubstanceSampleZPos(探测物质取样Z坐标.class),
// ProbeSubstanceSampleZPos("探测物质取样Z坐标", Integer.class),//刺破高度和取样高度一样
// ;
// final public String chName;
// final public Class<?> type;
//
// HbotProbeSubstancePos(String chName, Class<?> type) {
// this.chName = chName;
// this.type = type;
// }
//
// public static HbotProbeSubstancePos valueOf(int off) {
// return HbotProbeSubstancePos.values()[off];
// }
//}

1
src/main/java/a8k/app/a8ktype/param/TubePrePorcessStructConstant.java

@ -1 +0,0 @@
package a8k.app.a8ktype.param;

17
src/main/java/a8k/app/a8ktype/param/hbotpos/Hbot2DCodeScanPos.java

@ -0,0 +1,17 @@
package a8k.app.a8ktype.param.hbotpos;
import a8k.app.a8ktype.device.Pos2d;
public enum Hbot2DCodeScanPos {
PBScanPos0("板夹仓扫码位置0", Pos2d.class),
LittBS0("小缓冲液扫码位置0", Pos2d.class),
LarBS0("大缓冲液扫码位置0", Pos2d.class),
;
public final String chName;
public final Class<?> type;
Hbot2DCodeScanPos(String chName, Class<?> type) {
this.chName = chName;
this.type = type;
}
}

2
src/main/java/a8k/app/a8ktype/param/HbotLargeBottleBSPos.java → src/main/java/a8k/app/a8ktype/param/hbotpos/HbotLargeBottleBSPos.java

@ -1,4 +1,4 @@
package a8k.app.a8ktype.param;
package a8k.app.a8ktype.param.hbotpos;
import a8k.app.a8ktype.device.Pos2d;

3
src/main/java/a8k/app/a8ktype/param/HbotLittleBSPos.java → src/main/java/a8k/app/a8ktype/param/hbotpos/HbotLittleBSPos.java

@ -1,4 +1,4 @@
package a8k.app.a8ktype.param;
package a8k.app.a8ktype.param.hbotpos;
import a8k.app.a8ktype.device.Pos2d;
@ -20,6 +20,7 @@ public enum HbotLittleBSPos {
LittleBSPierceZPos("小瓶缓冲液刺破Z坐标", Integer.class),
LittleBSSampleZPos("小瓶缓冲液取样Z坐标", Integer.class),
ProbeSubstancePierceZPos("探测物质液刺破Z坐标", Integer.class),
ProbeSubstanceSampleZPos("探测物质取样Z坐标", Integer.class),
;

2
src/main/java/a8k/app/a8ktype/param/HbotSamplePos.java → src/main/java/a8k/app/a8ktype/param/hbotpos/HbotSamplePos.java

@ -1,4 +1,4 @@
package a8k.app.a8ktype.param;
package a8k.app.a8ktype.param.hbotpos;
import a8k.app.a8ktype.device.Pos3d;

2
src/main/java/a8k/app/a8ktype/param/HbotTipPosParam.java → src/main/java/a8k/app/a8ktype/param/hbotpos/HbotTipPosParam.java

@ -1,4 +1,4 @@
package a8k.app.a8ktype.param;
package a8k.app.a8ktype.param.hbotpos;
import a8k.app.a8ktype.device.Pos3d;

27
src/main/java/a8k/app/a8ktype/param/hbotpos/HbotZPos.java

@ -0,0 +1,27 @@
package a8k.app.a8ktype.param.hbotpos;
public enum HbotZPos {
ZRefLevelPos("Z参考平面位置", Integer.class),
LargeBottleBufferLLDStartZAxisPos("大瓶缓冲液LLD起始Z轴坐标", Double.class),
LargeBottleBufferBottomZAxisPos("大瓶缓冲液瓶底Z轴坐标", Double.class),
LittleBSPierceXYAppendDistance("小瓶缓冲液刺破XY附加距离", Double.class),
ProbeSubstancePierceXYAppendDistance("探测物质液刺破XY附加距离", Double.class),
;
final public String chName;
final public Class<?> type;
HbotZPos(String chName, Class<?> type) {
this.chName = chName;
this.type = type;
}
public static HbotZPos valueOf(int off) {
return HbotZPos.values()[off];
}
}

2
src/main/java/a8k/app/a8ktype/param/OptModuleExtParam.java → src/main/java/a8k/app/a8ktype/param/optpos/OptModuleExtParam.java

@ -1,4 +1,4 @@
package a8k.app.a8ktype.param;
package a8k.app.a8ktype.param.optpos;
public enum OptModuleExtParam {
// OptScanRefPos("光学扫描参考坐标", Integer.class),

2
src/main/java/a8k/app/a8ktype/param/OptModuleParam.java → src/main/java/a8k/app/a8ktype/param/optpos/OptModuleParam.java

@ -1,4 +1,4 @@
package a8k.app.a8ktype.param;
package a8k.app.a8ktype.param.optpos;
public enum OptModuleParam {
PullerTargetPos("拉板目标位置", Integer.class),

2
src/main/java/a8k/app/a8ktype/param/PipetteGunLLDThresholdParam.java → src/main/java/a8k/app/a8ktype/param/pipette/PipetteGunLLDThresholdParam.java

@ -1,4 +1,4 @@
package a8k.app.a8ktype.param;
package a8k.app.a8ktype.param.pipette;
public enum PipetteGunLLDThresholdParam {
DEFAULT_C_THRESHOLD("默认电容C阈值", Integer.class),

2
src/main/java/a8k/app/a8ktype/param/PipetteGunLLDTypeParam.java → src/main/java/a8k/app/a8ktype/param/pipette/PipetteGunLLDTypeParam.java

@ -1,4 +1,4 @@
package a8k.app.a8ktype.param;
package a8k.app.a8ktype.param.pipette;
import a8k.app.hardware.type.LldType;

2
src/main/java/a8k/app/a8ktype/param/PipetteGunLLFParam.java → src/main/java/a8k/app/a8ktype/param/pipette/PipetteGunLLFParam.java

@ -1,4 +1,4 @@
package a8k.app.a8ktype.param;
package a8k.app.a8ktype.param.pipette;
public enum PipetteGunLLFParam {
// 试管容器参数

2
src/main/java/a8k/app/a8ktype/param/TubeFeedingModulePos.java → src/main/java/a8k/app/a8ktype/param/tubefeeding/TubeFeedingModulePos.java

@ -1,4 +1,4 @@
package a8k.app.a8ktype.param;
package a8k.app.a8ktype.param.tubefeeding;
public enum TubeFeedingModulePos {
TubeHolderEnterXPos("入料位置", Integer.class), //

2
src/main/java/a8k/app/a8ktype/param/TubeFeedingModuleSetting.java → src/main/java/a8k/app/a8ktype/param/tubefeeding/TubeFeedingModuleSetting.java

@ -1,4 +1,4 @@
package a8k.app.a8ktype.param;
package a8k.app.a8ktype.param.tubefeeding;
public enum TubeFeedingModuleSetting {
TubeScanServoTorque("试管扫描伺服力矩",Integer.class), //

2
src/main/java/a8k/app/a8ktype/param/TubePreProcessGripperPos.java → src/main/java/a8k/app/a8ktype/param/tubepreprocess/TubePreProcessGripperPos.java

@ -1,4 +1,4 @@
package a8k.app.a8ktype.param;
package a8k.app.a8ktype.param.tubepreprocess;
public enum TubePreProcessGripperPos {
GripperServoOpenPos("<抓手>张开位置", Integer.class),//

2
src/main/java/a8k/app/a8ktype/param/TubePreProcessTubeClamp.java → src/main/java/a8k/app/a8ktype/param/tubepreprocess/TubePreProcessTubeClamp.java

@ -1,4 +1,4 @@
package a8k.app.a8ktype.param;
package a8k.app.a8ktype.param.tubepreprocess;
public enum TubePreProcessTubeClamp {
ShakeClampMotorClampPos("<摇匀试管夹>夹紧位",Integer.class),//

2
src/main/java/a8k/app/a8ktype/param/TubePreProcessYPos.java → src/main/java/a8k/app/a8ktype/param/tubepreprocess/TubePreProcessYPos.java

@ -1,4 +1,4 @@
package a8k.app.a8ktype.param;
package a8k.app.a8ktype.param.tubepreprocess;
public enum TubePreProcessYPos {

2
src/main/java/a8k/app/a8ktype/param/TubePreProcessZAxisPos.java → src/main/java/a8k/app/a8ktype/param/tubepreprocess/TubePreProcessZAxisPos.java

@ -1,4 +1,4 @@
package a8k.app.a8ktype.param;
package a8k.app.a8ktype.param.tubepreprocess;
public enum TubePreProcessZAxisPos {
ZMotorTakeHTubePos("<Z轴>取高试管位置",Integer.class),//

2
src/main/java/a8k/app/a8ktype/param/A8kSamplePos.java → src/main/java/a8k/app/a8ktype/param/type/A8kSamplePos.java

@ -1,4 +1,4 @@
package a8k.app.a8ktype.param;
package a8k.app.a8ktype.param.type;
public enum A8kSamplePos {
EmergencyTubePos("<急诊位>"),

3
src/main/java/a8k/app/a8ktype/state/ProjectTaskContext.java

@ -3,12 +3,11 @@ package a8k.app.a8ktype.state;
import a8k.SpringBootBeanUtil;
import a8k.app.a8kproj.optalgo.type.OptScanResult;
import a8k.app.a8ktype.device.*;
import a8k.app.a8ktype.param.A8kSamplePos;
import a8k.app.a8ktype.param.type.A8kSamplePos;
import a8k.app.dao.db.type.ProjExtInfoCard;
import a8k.app.dao.db.type.a8kidcard.zenum.A8kOptType;
import a8k.app.dao.db.type.a8kidcard.zenum.A8kReactionFlowType;
import a8k.app.service.exparam.HbotConsumableParamMgr;
import a8k.app.service.statemgr.ProjectContextMgrService;
import a8k.app.utils.ProjBuildinInfo;
import a8k.app.utils.ProjInfoReader;
import a8k.app.utils.ZJsonHelper;

1
src/main/java/a8k/app/a8ktype/state/enumtype/TubeState.java

@ -9,7 +9,6 @@ public enum TubeState {
PENDING,//挂起的试管即下一个被处理的试管
RESOURCE_IS_READY,//资源准备好
PROCESSING,//处理
PROCESSED,//处理完成
PROCESS_COMPLETE,//处理完成
ERROR,//处理出错
;

7
src/main/java/a8k/app/service/exparam/PipetteGunParamExMgr.java

@ -8,12 +8,11 @@ import a8k.app.service.param.HbotLargeBottleBSPosMgr;
import a8k.app.service.param.HbotSamplePosParamMgr;
import a8k.app.service.param.PipetteGunLLDParamMgr;
import a8k.app.service.param.PipetteGunLLFParamMgr;
import a8k.app.a8ktype.param.A8kSamplePos;
import a8k.app.a8ktype.param.PipetteGunLLDThresholdParam;
import a8k.app.a8ktype.param.PipetteGunLLDTypeParam;
import a8k.app.a8ktype.param.type.A8kSamplePos;
import a8k.app.a8ktype.param.pipette.PipetteGunLLDThresholdParam;
import a8k.app.a8ktype.param.pipette.PipetteGunLLDTypeParam;
import a8k.app.a8ktype.device.ConsumableGroup;
import a8k.app.a8ktype.device.Pos3d;
import a8k.app.utils.ProjProcessContextUtils;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Component;
import org.springframework.util.Assert;

4
src/main/java/a8k/app/service/lowerctrl/HbotMoveExCtrlService.java

@ -10,8 +10,8 @@ import a8k.app.hardware.driver.PipetteCtrlDriver;
import a8k.app.service.exparam.HbotConsumableParamMgr;
import a8k.app.service.param.HbotFixedPosParamMgr;
import a8k.app.service.param.HbotSamplePosParamMgr;
import a8k.app.a8ktype.param.A8kSamplePos;
import a8k.app.a8ktype.param.HbotSamplePos;
import a8k.app.a8ktype.param.type.A8kSamplePos;
import a8k.app.a8ktype.param.hbotpos.HbotSamplePos;
import a8k.app.a8ktype.exception.AppException;
import a8k.app.utils.ZAppChecker;
import jakarta.annotation.Resource;

2
src/main/java/a8k/app/service/lowerctrl/LiquidOperationCtrlService.java

@ -3,7 +3,7 @@ package a8k.app.service.lowerctrl;
import a8k.app.a8ktype.DeviceRunMode;
import a8k.app.a8ktype.device.*;
import a8k.app.a8ktype.param.A8kSamplePos;
import a8k.app.a8ktype.param.type.A8kSamplePos;
import a8k.app.dao.db.type.ProjExtInfoCard;
import a8k.app.hardware.driver.type.PipetteRegIndex;
import a8k.app.hardware.type.LldType;

22
src/main/java/a8k/app/service/mainctrl/mainflowctrl/action/AC41ProcessSample.java

@ -101,6 +101,11 @@ public class AC41ProcessSample extends A8kActionTask {
} else {
startTask();
}
if (errorsCollection.isEmpty()) {
tubeStateMgrService.changeTubeStateToProcessComplete();
} else {
tubeStateMgrService.changeTubeStateToError(errorsCollection);
}
return actionTaskPool.waitAllDone();
}
@ -110,8 +115,6 @@ public class AC41ProcessSample extends A8kActionTask {
// private List<AppError> afterDoAction(List<AppError> errors) {
//// !!!tubeStateMgrService.changeTubeStateToError(errors);
// }
//
// VIRTUAL
//
@ -119,7 +122,6 @@ public class AC41ProcessSample extends A8kActionTask {
void startVirtualTask() {
actionTaskPool.pushTask("samplePrepareAndRecyle", new ActionTaskPool.ActionTask() {
@Override public void doAction() throws AppException, ZAppInterruptException {
}
@Override public Exception processError(Exception e) {
@ -134,7 +136,14 @@ public class AC41ProcessSample extends A8kActionTask {
actionTaskPool.pushTask("paltePrepare", new ActionTaskPool.ActionTask() {
@Override public void doAction() throws AppException, ZAppInterruptException {
Tube tube = tubeStateMgrService.getCurProcessingTube();
List<ProjectTaskContext> cxts = projectContextMgrService.findCxts(tube.getSampleId());
for (ProjectTaskContext cxt : cxts) {
cxt.setStartIncubatedTime(System.currentTimeMillis());
cxt.setIncubatedTimeSec(cxt.getProjBuildinInfo().reactionPlateIncubationTimeMin * 60);
incubationPlateStateMgrService.syncSampleInfo(cxt.getIncubatorPos(), Objects.requireNonNull(ProjInfoUtils.buildProjBrefInfo(cxt)), cxt.getSampleInfo());
incubationPlateStateMgrService.startIncubating(cxt.getIncubatorPos(), cxt.getStartIncubatedTime(), cxt.getIncubatedTimeSec());
}
}
@Override public Exception processError(Exception e) {
@ -195,6 +204,9 @@ public class AC41ProcessSample extends A8kActionTask {
//样本后处理
tubePreProcesCtrlService.resteModule();
//设置试管状态为处理完成
tubeStateMgrService.changeTubeStateToProcessComplete();
}
@Override public Exception processError(Exception e) {
@ -379,6 +391,6 @@ public class AC41ProcessSample extends A8kActionTask {
//
// 异常由各个Action自行进行处理返回给上层则认为是无法处理的异常直接结束
//
}

202
src/main/java/a8k/app/service/mainctrl/mainflowctrl/action/AC42FinishProcesseTube.java

@ -1,101 +1,101 @@
package a8k.app.service.mainctrl.mainflowctrl.action;
import a8k.app.hardware.type.a8kcanprotocol.A8kEcode;
import a8k.app.service.mainctrl.mainflowctrl.base.A8kActionTask;
import a8k.app.service.mainctrl.mainflowctrl.base.MainFlowProcesser;
import a8k.app.service.statemgr.DeviceWorkStateMgrService;
import a8k.app.service.statemgr.TubeStateMgrService;
import a8k.app.a8ktype.state.Tube;
import a8k.app.a8ktype.state.enumtype.TubeState;
import a8k.app.service.lowerctrl.HbotMoveExCtrlService;
import a8k.app.service.lowerctrl.TubePreProcesModuleExCtrlService;
import a8k.app.service.mainctrl.erroranalyzer.ErrorProcessor;
import a8k.app.utils.ZList;
import a8k.teststate.VirtualDevice;
import a8k.app.a8ktype.error.AppError;
import a8k.app.a8ktype.exception.AppException;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.util.Assert;
import java.util.ArrayList;
import java.util.List;
/**
* 异常试管处理任务
*/
@Component
@MainFlowProcesser
@Slf4j
public class AC42FinishProcesseTube extends A8kActionTask {
@Resource
VirtualDevice virtualDevice;
@Resource
TubePreProcesModuleExCtrlService tubePreProcesCtrlService;
@Resource
HbotMoveExCtrlService hbotMoveExCtrlService;
@Resource
TubeStateMgrService tubeStateMgrService;
@Resource
DeviceWorkStateMgrService deviceWorkStateMgrService;
public Boolean isReady() {
Tube tube = tubeStateMgrService.getCurProcessingTube();
return tube != null
&& tube.getState().equals(TubeState.PROCESSED)
;
}
public String toDisplayString() {
return "样本后处理";
}
void resetHbotAndShakeModule() throws AppException {
if (virtualDevice.isEnable()) {
virtualDevice.doVirtualThings("处理错误试管");
virtualDevice.doVirtualThings("复位摇匀模组");
virtualDevice.doVirtualThings("复位HBOT");
return;
}
//复位hbot
if (hbotMoveExCtrlService.isHasTip()) {
hbotMoveExCtrlService.dropTip();
hbotMoveExCtrlService.moveQuickToZero();
}
//复位预处理模块
tubePreProcesCtrlService.resteModule();
}
@Override public List<AppError> doAction() {
try {
Tube tube = tubeStateMgrService.getCurProcessingTube();
Assert.isTrue(tube != null, "tube != null");
//如果试管状态为ERROR,则复位hbot和预处理模块
if (tube.getState().equals(TubeState.ERROR)) {
resetHbotAndShakeModule();
}
} catch (AppException e) {
log.error("catch error {}", e.getMessage(), e);
return ZList.of(e.getError());
}
Tube tube = tubeStateMgrService.getCurProcessingTube();
if (ErrorProcessor.isContainError(tube.getErrors(), A8kEcode.APPE_TAKE_TIP_FAIL)) {
deviceWorkStateMgrService.setPauseActionPending(true);
}
tubeStateMgrService.changeTubeStateToProcessComplete();
return new ArrayList<>();
}
}
//package a8k.app.service.mainctrl.mainflowctrl.action;
//
//import a8k.app.hardware.type.a8kcanprotocol.A8kEcode;
//import a8k.app.service.mainctrl.mainflowctrl.base.A8kActionTask;
//import a8k.app.service.mainctrl.mainflowctrl.base.MainFlowProcesser;
//import a8k.app.service.statemgr.DeviceWorkStateMgrService;
//import a8k.app.service.statemgr.TubeStateMgrService;
//import a8k.app.a8ktype.state.Tube;
//import a8k.app.a8ktype.state.enumtype.TubeState;
//import a8k.app.service.lowerctrl.HbotMoveExCtrlService;
//import a8k.app.service.lowerctrl.TubePreProcesModuleExCtrlService;
//import a8k.app.service.mainctrl.erroranalyzer.ErrorProcessor;
//import a8k.app.utils.ZList;
//import a8k.teststate.VirtualDevice;
//import a8k.app.a8ktype.error.AppError;
//import a8k.app.a8ktype.exception.AppException;
//import jakarta.annotation.Resource;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.stereotype.Component;
//import org.springframework.util.Assert;
//
//import java.util.ArrayList;
//import java.util.List;
//
//
///**
// * 异常试管处理任务
// */
//
//@Component
//@MainFlowProcesser
//@Slf4j
//public class AC42FinishProcesseTube extends A8kActionTask {
//
// @Resource
// VirtualDevice virtualDevice;
//
//
// @Resource
// TubePreProcesModuleExCtrlService tubePreProcesCtrlService;
// @Resource
// HbotMoveExCtrlService hbotMoveExCtrlService;
//
// @Resource
// TubeStateMgrService tubeStateMgrService;
// @Resource
// DeviceWorkStateMgrService deviceWorkStateMgrService;
//
//
// public Boolean isReady() {
// Tube tube = tubeStateMgrService.getCurProcessingTube();
// return tube != null
// && tube.getState().equals(TubeState.PROCESSED)
// ;
// }
//
// public String toDisplayString() {
// return "样本后处理";
// }
//
// void resetHbotAndShakeModule() throws AppException {
// if (virtualDevice.isEnable()) {
// virtualDevice.doVirtualThings("处理错误试管");
// virtualDevice.doVirtualThings("复位摇匀模组");
// virtualDevice.doVirtualThings("复位HBOT");
// return;
// }
//
// //复位hbot
// if (hbotMoveExCtrlService.isHasTip()) {
// hbotMoveExCtrlService.dropTip();
// hbotMoveExCtrlService.moveQuickToZero();
// }
//
// //复位预处理模块
// tubePreProcesCtrlService.resteModule();
// }
//
// @Override public List<AppError> doAction() {
// try {
// Tube tube = tubeStateMgrService.getCurProcessingTube();
// Assert.isTrue(tube != null, "tube != null");
// //如果试管状态为ERROR,则复位hbot和预处理模块
// if (tube.getState().equals(TubeState.ERROR)) {
// resetHbotAndShakeModule();
// }
// } catch (AppException e) {
// log.error("catch error {}", e.getMessage(), e);
// return ZList.of(e.getError());
// }
// Tube tube = tubeStateMgrService.getCurProcessingTube();
// if (ErrorProcessor.isContainError(tube.getErrors(), A8kEcode.APPE_TAKE_TIP_FAIL)) {
// deviceWorkStateMgrService.setPauseActionPending(true);
// }
//
// tubeStateMgrService.changeTubeStateToProcessComplete();
// return new ArrayList<>();
// }
//
//
//}

2
src/main/java/a8k/app/service/param/Hbot2DCodeScanParamMgr.java

@ -1,7 +1,7 @@
package a8k.app.service.param;
import a8k.app.service.param.base.ParamMgr;
import a8k.app.a8ktype.param.Hbot2DCodeScanPos;
import a8k.app.a8ktype.param.hbotpos.Hbot2DCodeScanPos;
import a8k.app.a8ktype.device.Pos2d;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource;

2
src/main/java/a8k/app/service/param/HbotLargeBottleBSPosMgr.java

@ -2,7 +2,7 @@ package a8k.app.service.param;
import a8k.app.a8ktype.device.ConsumableGroup;
import a8k.app.service.param.base.ParamMgr;
import a8k.app.a8ktype.param.HbotLargeBottleBSPos;
import a8k.app.a8ktype.param.hbotpos.HbotLargeBottleBSPos;
import a8k.app.a8ktype.device.Pos2d;
import a8k.app.a8ktype.device.Pos3d;
import jakarta.annotation.PostConstruct;

2
src/main/java/a8k/app/service/param/HbotLittleBSPosMgr.java

@ -2,7 +2,7 @@ package a8k.app.service.param;
import a8k.app.a8ktype.device.ConsumableGroup;
import a8k.app.service.param.base.ParamMgr;
import a8k.app.a8ktype.param.HbotLittleBSPos;
import a8k.app.a8ktype.param.hbotpos.HbotLittleBSPos;
import a8k.app.a8ktype.device.Pos2d;
import a8k.app.a8ktype.device.Pos3d;
import jakarta.annotation.PostConstruct;

4
src/main/java/a8k/app/service/param/HbotSamplePosParamMgr.java

@ -1,8 +1,8 @@
package a8k.app.service.param;
import a8k.app.service.param.base.ParamMgr;
import a8k.app.a8ktype.param.A8kSamplePos;
import a8k.app.a8ktype.param.HbotSamplePos;
import a8k.app.a8ktype.param.type.A8kSamplePos;
import a8k.app.a8ktype.param.hbotpos.HbotSamplePos;
import a8k.app.a8ktype.device.Pos3d;
import jakarta.annotation.PostConstruct;
import org.slf4j.Logger;

2
src/main/java/a8k/app/service/param/HbotTipPosMgr.java

@ -2,7 +2,7 @@ package a8k.app.service.param;
import a8k.app.constant.AppConstant;
import a8k.app.service.param.base.ParamMgr;
import a8k.app.a8ktype.param.HbotTipPosParam;
import a8k.app.a8ktype.param.hbotpos.HbotTipPosParam;
import a8k.app.a8ktype.type.TipPosConfig;
import a8k.app.a8ktype.device.Pos3d;
import a8k.app.a8ktype.device.TipGroup;

2
src/main/java/a8k/app/service/param/OptModuleExtParamsMgr.java

@ -2,7 +2,7 @@ package a8k.app.service.param;
import a8k.app.service.param.base.ParamMgr;
import a8k.app.a8ktype.param.OptModuleExtParam;
import a8k.app.a8ktype.param.optpos.OptModuleExtParam;
import a8k.app.dao.db.type.a8kidcard.zenum.A8kOptType;
import jakarta.annotation.PostConstruct;
import org.slf4j.Logger;

2
src/main/java/a8k/app/service/param/OptModuleParamsMgr.java

@ -2,7 +2,7 @@ package a8k.app.service.param;
import a8k.app.service.param.base.ParamMgr;
import a8k.app.a8ktype.param.OptModuleParam;
import a8k.app.a8ktype.param.optpos.OptModuleParam;
import jakarta.annotation.PostConstruct;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

4
src/main/java/a8k/app/service/param/PipetteGunLLDParamMgr.java

@ -2,8 +2,8 @@ package a8k.app.service.param;
import a8k.app.hardware.type.LldType;
import a8k.app.service.param.base.ParamMgr;
import a8k.app.a8ktype.param.PipetteGunLLDThresholdParam;
import a8k.app.a8ktype.param.PipetteGunLLDTypeParam;
import a8k.app.a8ktype.param.pipette.PipetteGunLLDThresholdParam;
import a8k.app.a8ktype.param.pipette.PipetteGunLLDTypeParam;
import jakarta.annotation.PostConstruct;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

4
src/main/java/a8k/app/service/param/PipetteGunLLFParamMgr.java

@ -1,8 +1,8 @@
package a8k.app.service.param;
import a8k.app.service.param.base.ParamMgr;
import a8k.app.a8ktype.param.A8kSamplePos;
import a8k.app.a8ktype.param.PipetteGunLLFParam;
import a8k.app.a8ktype.param.type.A8kSamplePos;
import a8k.app.a8ktype.param.pipette.PipetteGunLLFParam;
import jakarta.annotation.PostConstruct;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;

4
src/main/java/a8k/app/service/param/TubeFeedingModuleParamMgr.java

@ -1,8 +1,8 @@
package a8k.app.service.param;
import a8k.app.service.param.base.ParamMgr;
import a8k.app.a8ktype.param.TubeFeedingModuleSetting;
import a8k.app.a8ktype.param.TubeFeedingModulePos;
import a8k.app.a8ktype.param.tubefeeding.TubeFeedingModuleSetting;
import a8k.app.a8ktype.param.tubefeeding.TubeFeedingModulePos;
import jakarta.annotation.PostConstruct;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

8
src/main/java/a8k/app/service/param/TubePreProcesPosParamMgr.java

@ -1,10 +1,10 @@
package a8k.app.service.param;
import a8k.app.service.param.base.ParamMgr;
import a8k.app.a8ktype.param.TubePreProcessGripperPos;
import a8k.app.a8ktype.param.TubePreProcessTubeClamp;
import a8k.app.a8ktype.param.TubePreProcessYPos;
import a8k.app.a8ktype.param.TubePreProcessZAxisPos;
import a8k.app.a8ktype.param.tubepreprocess.TubePreProcessGripperPos;
import a8k.app.a8ktype.param.tubepreprocess.TubePreProcessTubeClamp;
import a8k.app.a8ktype.param.tubepreprocess.TubePreProcessYPos;
import a8k.app.a8ktype.param.tubepreprocess.TubePreProcessZAxisPos;
import jakarta.annotation.PostConstruct;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

9
src/main/java/a8k/app/service/statemgr/TubeStateMgrService.java

@ -315,11 +315,6 @@ public class TubeStateMgrService {
curProcessingTube.setState(TubeState.PROCESSING);
}
synchronized public void changeTubeStateToProcessed() {
log.info("试管 状态->已处理 SampleId:{}", curProcessingTube.getSampleId());
curProcessingTube.setState(TubeState.PROCESSED);
}
synchronized public void changeTubeStateToError(List<AppError> errors) {
log.error("试管 状态->错误 SampleId:{} \n{}", curProcessingTube.getSampleId(), ZJsonHelper.objectToJson(errors));
curProcessingTube.setState(TubeState.ERROR);
@ -379,7 +374,9 @@ public class TubeStateMgrService {
synchronized public Boolean isTubeholderHasBeenProcessed() {
for (Tube tube : tubeHolder.getTubes()) {
if ((!tube.getState().equals(TubeState.EMPTY) &&
!tube.getState().equals(TubeState.PROCESS_COMPLETE))) {
!tube.getState().equals(TubeState.PROCESS_COMPLETE) &&
!tube.getState().equals(TubeState.ERROR)
)) {
return false;
}
}

14
src/main/java/a8k/app/utils/ProjProcessContextUtils.java

@ -1,19 +1,5 @@
package a8k.app.utils;
import a8k.SpringBootBeanUtil;
import a8k.app.service.statemgr.ProjectContextMgrService;
import a8k.app.a8ktype.state.ProjectTaskContext;
import a8k.app.a8ktype.state.Tube;
import a8k.app.service.exparam.HbotConsumableParamMgr;
import a8k.app.a8ktype.param.A8kSamplePos;
import a8k.app.dao.db.type.a8kidcard.zenum.A8kReactionFlowType;
import a8k.app.a8ktype.device.Pos3d;
import a8k.app.a8ktype.device.A8kTubeHolderType;
import a8k.app.a8ktype.device.BloodType;
import org.springframework.util.Assert;
import java.util.List;
public class ProjProcessContextUtils {
//
// public static Integer getShakeTimes(List<ProjectTaskContext> cxts) {

2
src/main/java/a8k/extui/oldpage/pos_calibration/HbotLargeBottleBSPosCalibration.java

@ -3,7 +3,7 @@ package a8k.extui.oldpage.pos_calibration;
import a8k.app.a8ktype.device.ConsumableGroup;
import a8k.extui.mgr.ExtApiPageMgr;
import a8k.app.service.lowerctrl.HbotMoveCtrlService;
import a8k.app.a8ktype.param.HbotLargeBottleBSPos;
import a8k.app.a8ktype.param.hbotpos.HbotLargeBottleBSPos;
import a8k.app.hardware.driver.HbotDriver;
import a8k.app.hardware.driver.PipetteCtrlDriver;
import a8k.app.service.lowerctrl.HbotMoveExCtrlService;

2
src/main/java/a8k/extui/oldpage/pos_calibration/HbotLittleBSPosCalibration.java

@ -5,7 +5,7 @@
//import a8k.extui.mgr.ExtApiPageMgr;
//import a8k.app.service.lowerctrl.HbotMoveCtrlService;
//import a8k.app.service.param.HbotLittleBSPosMgr;
//import a8k.app.a8ktype.param.HbotLittleBSPos;
//import a8k.app.a8ktype.param.hbotpos.HbotLittleBSPos;
//import a8k.app.hardware.driver.HbotDriver;
//import a8k.app.hardware.driver.PipetteCtrlDriver;
//import a8k.app.service.lowerctrl.HbotMoveExCtrlService;

2
src/main/java/a8k/extui/oldpage/pos_calibration/OptModuleParamPosCalibration.java

@ -1,7 +1,7 @@
//package a8k.extui.page.pos_calibration;
//
//import a8k.app.a8ktype.exception.AppException;
//import a8k.app.a8ktype.param.OptModuleExtParam;
//import a8k.app.a8ktype.param.optpos.OptModuleExtParam;
//import a8k.app.dao.db.type.Parameter;
//import a8k.app.hardware.driver.StepMotorCtrlDriver;
//import a8k.app.hardware.driver.type.StepMotorMId;

4
src/main/java/a8k/extui/oldpage/pos_calibration/TubeFeedingModulePosCalibration.java

@ -10,8 +10,8 @@ import a8k.app.hardware.driver.type.StepMotorMId;
import a8k.app.service.lowerctrl.TubeFeedingCtrlService;
import a8k.app.service.param.TubeFeedingModuleParamMgr;
import a8k.app.dao.db.type.Parameter;
import a8k.app.a8ktype.param.TubeFeedingModulePos;
import a8k.app.a8ktype.param.TubeFeedingModuleSetting;
import a8k.app.a8ktype.param.tubefeeding.TubeFeedingModulePos;
import a8k.app.a8ktype.param.tubefeeding.TubeFeedingModuleSetting;
import a8k.app.a8ktype.type.TubeHolderScanResult;
import a8k.app.a8ktype.error.AECodeError;
import a8k.app.a8ktype.exception.AppException;

8
src/main/java/a8k/extui/oldpage/pos_calibration/TubePreProcesPosCalibration.java

@ -10,10 +10,10 @@ import a8k.app.hardware.extdriver.MotorEnableExDriver;
import a8k.app.hardware.extdriver.MotorMoveZeroExDriver;
import a8k.app.service.lowerctrl.TubePreProcesModuleCtrlService;
import a8k.app.service.param.TubePreProcesPosParamMgr;
import a8k.app.a8ktype.param.TubePreProcessGripperPos;
import a8k.app.a8ktype.param.TubePreProcessTubeClamp;
import a8k.app.a8ktype.param.TubePreProcessYPos;
import a8k.app.a8ktype.param.TubePreProcessZAxisPos;
import a8k.app.a8ktype.param.tubepreprocess.TubePreProcessGripperPos;
import a8k.app.a8ktype.param.tubepreprocess.TubePreProcessTubeClamp;
import a8k.app.a8ktype.param.tubepreprocess.TubePreProcessYPos;
import a8k.app.a8ktype.param.tubepreprocess.TubePreProcessZAxisPos;
import a8k.app.a8ktype.exception.AppException;
import a8k.app.utils.ZJsonHelper;
import jakarta.annotation.PostConstruct;

9
src/main/java/a8k/extui/page/opt_calibration/OptModuleParamCalibration.java

@ -1,22 +1,15 @@
package a8k.extui.page.opt_calibration;
import a8k.app.a8ktype.device.BloodType;
import a8k.app.a8ktype.device.ConsumableGroup;
import a8k.app.a8ktype.device.IncubatorPos;
import a8k.app.a8ktype.type.ReactionResult;
import a8k.app.service.lowerctrl.DeviceInitCtrlService;
import a8k.extui.mgr.ExtApiPageMgr;
import a8k.extui.type.ret.A8kScanCurve;
import a8k.extui.type.ExtApiStatu;
import a8k.app.service.lowerctrl.OptScanModuleCtrlService;
import a8k.app.service.lowerctrl.PlateBoxCtrlService;
import a8k.app.hardware.driver.OptModuleDriver;
import a8k.app.hardware.driver.StepMotorCtrlDriver;
import a8k.app.hardware.driver.type.StepMotorMId;
import a8k.app.hardware.extdriver.MotorEnableExDriver;
import a8k.app.service.param.OptModuleExtParamsMgr;
import a8k.app.a8ktype.param.OptModuleExtParam;
import a8k.app.dao.db.type.Parameter;
import a8k.app.a8ktype.param.optpos.OptModuleExtParam;
import a8k.app.dao.db.type.a8kidcard.zenum.A8kOptType;
import a8k.app.a8ktype.exception.AppException;
import a8k.app.utils.ZList;

4
src/main/java/a8k/extui/page/pos_calibration/P02TubeFeedingModulePosCalibrationPage.java

@ -1,7 +1,7 @@
package a8k.extui.page.pos_calibration;
import a8k.app.a8ktype.param.TubeFeedingModulePos;
import a8k.app.a8ktype.param.TubeFeedingModuleSetting;
import a8k.app.a8ktype.param.tubefeeding.TubeFeedingModulePos;
import a8k.app.a8ktype.param.tubefeeding.TubeFeedingModuleSetting;
import a8k.app.service.param.TubeFeedingModuleParamMgr;
import a8k.extui.mgr.ExtApiPageMgr;
import jakarta.annotation.PostConstruct;

8
src/main/java/a8k/extui/page/pos_calibration/P03TubePreProcesPosCalibrationPage.java

@ -1,9 +1,9 @@
package a8k.extui.page.pos_calibration;
import a8k.app.a8ktype.param.TubePreProcessGripperPos;
import a8k.app.a8ktype.param.TubePreProcessTubeClamp;
import a8k.app.a8ktype.param.TubePreProcessYPos;
import a8k.app.a8ktype.param.TubePreProcessZAxisPos;
import a8k.app.a8ktype.param.tubepreprocess.TubePreProcessGripperPos;
import a8k.app.a8ktype.param.tubepreprocess.TubePreProcessTubeClamp;
import a8k.app.a8ktype.param.tubepreprocess.TubePreProcessYPos;
import a8k.app.a8ktype.param.tubepreprocess.TubePreProcessZAxisPos;
import a8k.app.service.param.TubePreProcesPosParamMgr;
import a8k.extui.mgr.ExtApiPageMgr;
import jakarta.annotation.PostConstruct;

2
src/main/java/a8k/extui/page/pos_calibration/P04ReactionPlatesTransmitControlerCalibrationPage.java

@ -1,6 +1,6 @@
package a8k.extui.page.pos_calibration;
import a8k.app.a8ktype.param.OptModuleParam;
import a8k.app.a8ktype.param.optpos.OptModuleParam;
import a8k.app.service.param.OptModuleParamsMgr;
import a8k.app.service.param.PlatesBoxPosParamMgr;
import a8k.app.service.param.TurntablePosParamMgr;

2
src/main/java/a8k/extui/page/pos_calibration/P21HbotLittleBSPosCalibrationPage.java

@ -1,7 +1,7 @@
package a8k.extui.page.pos_calibration;
import a8k.app.a8ktype.device.Pos2d;
import a8k.app.a8ktype.param.HbotLittleBSPos;
import a8k.app.a8ktype.param.hbotpos.HbotLittleBSPos;
import a8k.app.service.param.HbotLittleBSPosMgr;
import a8k.extui.mgr.ExtApiPageMgr;
import jakarta.annotation.PostConstruct;

2
src/main/java/a8k/extui/page/pos_calibration/P23HbotLargeBottleBSPosCalibrationPage.java

@ -1,7 +1,7 @@
package a8k.extui.page.pos_calibration;
import a8k.app.a8ktype.device.Pos2d;
import a8k.app.a8ktype.param.HbotLargeBottleBSPos;
import a8k.app.a8ktype.param.hbotpos.HbotLargeBottleBSPos;
import a8k.app.service.param.HbotLargeBottleBSPosMgr;
import a8k.extui.mgr.ExtApiPageMgr;
import jakarta.annotation.PostConstruct;

4
src/main/java/a8k/extui/page/pos_calibration/P25HbotSamplePosCalibrationPage.java

@ -1,9 +1,7 @@
package a8k.extui.page.pos_calibration;
import a8k.app.a8ktype.device.Pos2d;
import a8k.app.a8ktype.device.Pos3d;
import a8k.app.a8ktype.param.HbotSamplePos;
import a8k.app.service.param.Hbot2DCodeScanParamMgr;
import a8k.app.a8ktype.param.hbotpos.HbotSamplePos;
import a8k.app.service.param.HbotSamplePosParamMgr;
import a8k.extui.mgr.ExtApiPageMgr;
import jakarta.annotation.PostConstruct;

2
src/main/java/a8k/extui/page/verification/P33HbotSamplePosVerificationPage.java

@ -3,7 +3,7 @@ package a8k.extui.page.verification;
import a8k.app.a8ktype.exception.AppException;
import a8k.app.a8ktype.param.HbotSamplePos;
import a8k.app.a8ktype.param.hbotpos.HbotSamplePos;
import a8k.app.service.lowerctrl.HbotMoveExCtrlService;
import a8k.extui.mgr.ExtApiPageMgr;
import jakarta.annotation.PostConstruct;

2
src/main/java/a8k/extui/page/verification/P34LiquidOperationTestPage.java

@ -2,7 +2,7 @@ package a8k.extui.page.verification;
import a8k.app.a8ktype.device.*;
import a8k.app.a8ktype.exception.AppException;
import a8k.app.a8ktype.param.A8kSamplePos;
import a8k.app.a8ktype.param.type.A8kSamplePos;
import a8k.app.service.lowerctrl.LiquidOperationCtrlService;
import a8k.extui.mgr.ExtApiPageMgr;
import a8k.extui.type.ExtUIPageCfg;

4
src/main/java/a8k/extui/page/verification/P51FullFlowVerificationPage.java

@ -2,14 +2,12 @@ package a8k.extui.page.verification;
import a8k.OS;
import a8k.app.a8kproj.A8kReactionResultComputer;
import a8k.app.a8kproj.optalgo.type.OptScanResult;
import a8k.app.a8ktype.device.*;
import a8k.app.a8ktype.exception.AppException;
import a8k.app.a8ktype.param.A8kSamplePos;
import a8k.app.a8ktype.param.type.A8kSamplePos;
import a8k.app.a8ktype.state.SampleInfo;
import a8k.app.a8ktype.type.ReactionResult;
import a8k.app.a8ktype.type.TubeHolderScanResult;
import a8k.app.constant.AppConstant;
import a8k.app.dao.db.type.ProjExtInfoCard;
import a8k.app.dao.db.type.a8kidcard.zenum.A8kOptType;
import a8k.app.dao.db.type.a8kidcard.zenum.A8kReactionFlowType;

Loading…
Cancel
Save