Browse Source

update

tags/v0
zhaohe 10 months ago
parent
commit
79847416ab
  1. 6
      src/main/java/a8k/service/apps/appctrl/mainflowctrl/action/DO_PROCESS_ERROR_TUBE.java
  2. 5
      src/main/java/a8k/service/apps/appctrl/mainflowctrl/action/PLATE_OPT_SCAN.java
  3. 4
      src/main/java/a8k/service/apps/appctrl/mainflowctrl/action/PROCESS_INCUBATE_COMPLETED_PLATE.java
  4. 4
      src/main/java/a8k/service/apps/appctrl/mainflowctrl/action/SEQ2_SWITCH_TO_THE_NEXT_TUBE.java
  5. 4
      src/main/java/a8k/service/apps/appctrl/mainflowctrl/action/SEQ3_APPLAY_RESOURCE.java
  6. 5
      src/main/java/a8k/service/apps/appctrl/mainflowctrl/action/SEQ4_PRE_PROCESS.java
  7. 6
      src/main/java/a8k/service/apps/appctrl/mainflowctrl/action/SEQ5_PROCESS.java
  8. 6
      src/main/java/a8k/service/apps/appctrl/mainflowctrl/action/SEQ6_POST_PROCESS.java
  9. 28
      src/main/java/a8k/service/apps/appstate/TubeProcessContextMgrService.java
  10. 46
      src/main/java/a8k/service/apps/appstate/TubeProcessStateMgrService.java

6
src/main/java/a8k/service/apps/appctrl/mainflowctrl/action/DO_PROCESS_ERROR_TUBE.java

@ -7,6 +7,7 @@ import a8k.service.apps.appctrl.mainflowctrl.base.A8kStepAction;
import a8k.service.apps.appstate.GStateService; import a8k.service.apps.appstate.GStateService;
import a8k.service.apps.appstate.IncubationPlateMgrService; import a8k.service.apps.appstate.IncubationPlateMgrService;
import a8k.service.apps.appstate.OptScanModuleStateMgrService; import a8k.service.apps.appstate.OptScanModuleStateMgrService;
import a8k.service.apps.appstate.TubeProcessContextMgrService;
import a8k.service.apps.appstate.TubeProcessStateMgrService; import a8k.service.apps.appstate.TubeProcessStateMgrService;
import a8k.service.apps.appstate.resource.A8kPublicResourceType; import a8k.service.apps.appstate.resource.A8kPublicResourceType;
import a8k.service.apps.appstate.type.MainFlowCtrlState; import a8k.service.apps.appstate.type.MainFlowCtrlState;
@ -41,8 +42,7 @@ public class DO_PROCESS_ERROR_TUBE extends A8kStepAction {
@Resource @Resource
OptScanModuleStateMgrService optScanModuleStateMgrService; OptScanModuleStateMgrService optScanModuleStateMgrService;
@Resource @Resource
TubeProcessStateMgrService tubeProcessStateMgrService;
TubeProcessContextMgrService tubeProcessContextMgrService;
MainFlowCtrlState mfcs; MainFlowCtrlState mfcs;
@ -65,7 +65,7 @@ public class DO_PROCESS_ERROR_TUBE extends A8kStepAction {
logger.info("复位HBOT"); logger.info("复位HBOT");
//复位HBOT //复位HBOT
OS.forceSleep(4000); OS.forceSleep(4000);
tubeProcessStateMgrService.setCurTubeState(TubeState.PROCESS_COMPLETE);
tubeProcessContextMgrService.setCurTubeState(TubeState.PROCESS_COMPLETE);
} }
@Override public Boolean checkCondition() { @Override public Boolean checkCondition() {

5
src/main/java/a8k/service/apps/appctrl/mainflowctrl/action/PLATE_OPT_SCAN.java

@ -7,7 +7,8 @@ import a8k.service.apps.appdata.AppReactionResultMgrService;
import a8k.service.apps.appstate.GStateService; import a8k.service.apps.appstate.GStateService;
import a8k.service.apps.appstate.IncubationPlateMgrService; import a8k.service.apps.appstate.IncubationPlateMgrService;
import a8k.service.apps.appstate.OptScanModuleStateMgrService; import a8k.service.apps.appstate.OptScanModuleStateMgrService;
import a8k.service.apps.appstate.TubeProcessStateMgrService;
import a8k.service.apps.appstate.TubeProcessContextMgrService;
import a8k.service.apps.appstate.resource.A8kPublicResourceType; import a8k.service.apps.appstate.resource.A8kPublicResourceType;
import a8k.service.apps.appstate.type.MainFlowCtrlState; import a8k.service.apps.appstate.type.MainFlowCtrlState;
import a8k.type.ReactionResult; import a8k.type.ReactionResult;
@ -41,7 +42,7 @@ public class PLATE_OPT_SCAN extends A8kStepAction {
@Resource @Resource
OptScanModuleStateMgrService optScanModuleStateMgrService; OptScanModuleStateMgrService optScanModuleStateMgrService;
@Resource @Resource
TubeProcessStateMgrService tubeProcessStateMgrService;
TubeProcessContextMgrService tubeProcessContextMgrService;
@Resource @Resource
AppReactionResultMgrService appReactionResultMgrService; AppReactionResultMgrService appReactionResultMgrService;

4
src/main/java/a8k/service/apps/appctrl/mainflowctrl/action/PROCESS_INCUBATE_COMPLETED_PLATE.java

@ -7,7 +7,7 @@ import a8k.service.apps.appctrl.mainflowctrl.base.A8kStepAction;
import a8k.service.apps.appstate.GStateService; import a8k.service.apps.appstate.GStateService;
import a8k.service.apps.appstate.IncubationPlateMgrService; import a8k.service.apps.appstate.IncubationPlateMgrService;
import a8k.service.apps.appstate.OptScanModuleStateMgrService; import a8k.service.apps.appstate.OptScanModuleStateMgrService;
import a8k.service.apps.appstate.TubeProcessStateMgrService;
import a8k.service.apps.appstate.TubeProcessContextMgrService;
import a8k.service.apps.appstate.resource.A8kPublicResourceType; import a8k.service.apps.appstate.resource.A8kPublicResourceType;
import a8k.service.apps.appstate.type.IncubationSubTank; import a8k.service.apps.appstate.type.IncubationSubTank;
import a8k.service.apps.appstate.type.MainFlowCtrlState; import a8k.service.apps.appstate.type.MainFlowCtrlState;
@ -41,7 +41,7 @@ public class PROCESS_INCUBATE_COMPLETED_PLATE extends A8kStepAction {
@Resource @Resource
OptScanModuleStateMgrService optScanModuleStateMgrService; OptScanModuleStateMgrService optScanModuleStateMgrService;
@Resource @Resource
TubeProcessStateMgrService tubeProcessStateMgrService;
TubeProcessContextMgrService tubeProcessContextMgrService;
MainFlowCtrlState mfcs; MainFlowCtrlState mfcs;

4
src/main/java/a8k/service/apps/appctrl/mainflowctrl/action/SEQ2_SWITCH_TO_THE_NEXT_TUBE.java

@ -39,7 +39,7 @@ public class SEQ2_SWITCH_TO_THE_NEXT_TUBE extends A8kStepAction {
@Resource @Resource
SampleScanTransportCtrl sstc; SampleScanTransportCtrl sstc;
@Resource @Resource
TubeProcessStateMgrService tubeProcessStateMgrService;
TubeProcessContextMgrService tubeProcessContextMgrService;
@Resource @Resource
CondtionMgrService cms; CondtionMgrService cms;
@ -93,7 +93,7 @@ public class SEQ2_SWITCH_TO_THE_NEXT_TUBE extends A8kStepAction {
sstc.moveTubeToPreProcessPos(nextTubeIndex); sstc.moveTubeToPreProcessPos(nextTubeIndex);
} }
tubeProcessStateMgrService.pendingTube(nextProcessTube);
tubeProcessContextMgrService.pendingTube(nextProcessTube);
} }
@Override public Boolean checkCondition() { @Override public Boolean checkCondition() {

4
src/main/java/a8k/service/apps/appctrl/mainflowctrl/action/SEQ3_APPLAY_RESOURCE.java

@ -51,7 +51,7 @@ public class SEQ3_APPLAY_RESOURCE extends A8kStepAction {
@Resource @Resource
AppProjInfoMgrService appProjInfoMgrService; //项目信息管理 AppProjInfoMgrService appProjInfoMgrService; //项目信息管理
@Resource @Resource
TubeProcessStateMgrService tubeProcessStateMgrService; //试管处理状态管理
TubeProcessContextMgrService tubeProcessContextMgrService;
@Resource @Resource
CondtionMgrService cms; CondtionMgrService cms;
@ -112,7 +112,7 @@ public class SEQ3_APPLAY_RESOURCE extends A8kStepAction {
tipPos.add(tips); tipPos.add(tips);
} }
//创建项目处理上下文 //创建项目处理上下文
tubeProcessStateMgrService.setTubeResourceIsReady(a8kIdCardInfo, consumables, tipPos, incubatorPoss);
tubeProcessContextMgrService.setTubeResourceIsReady(a8kIdCardInfo, consumables, tipPos, incubatorPoss);
logger.info("apply resource ok"); logger.info("apply resource ok");
} }

5
src/main/java/a8k/service/apps/appctrl/mainflowctrl/action/SEQ4_PRE_PROCESS.java

@ -75,9 +75,6 @@ public class SEQ4_PRE_PROCESS extends A8kStepAction {
HbotControlService hbotControlService; HbotControlService hbotControlService;
@Resource @Resource
TubeProcessStateMgrService tubeProcessStateMgrService;
@Resource
IncubationPlateMgrService incubationPlateMgrService; IncubationPlateMgrService incubationPlateMgrService;
@Resource @Resource
@ -198,7 +195,7 @@ public class SEQ4_PRE_PROCESS extends A8kStepAction {
throw ebuilder.buildMutiErrorAppException(errors); throw ebuilder.buildMutiErrorAppException(errors);
} }
tubeProcessStateMgrService.setCurTubeState(TubeState.PRE_PROCESSED);
tubeProcessContextMgrService.setCurTubeState(TubeState.PRE_PROCESSED);
incubationPlateMgrService.waitingForDrop(tube); incubationPlateMgrService.waitingForDrop(tube);
logger.info("pre process success"); logger.info("pre process success");
} }

6
src/main/java/a8k/service/apps/appctrl/mainflowctrl/action/SEQ5_PROCESS.java

@ -41,7 +41,7 @@ public class SEQ5_PROCESS extends A8kStepAction {
AppExceptionBuilder ebuilder; AppExceptionBuilder ebuilder;
@Resource @Resource
TubeProcessStateMgrService tubeProcessStateMgrService;
TubeProcessContextMgrService tubeProcessContextMgrService;
@Resource @Resource
IncubationPlateMgrService incubationPlateMgrService; IncubationPlateMgrService incubationPlateMgrService;
@ -63,10 +63,10 @@ public class SEQ5_PROCESS extends A8kStepAction {
// 2.取tip头 // 2.取tip头
// 3.摇匀脱帽 // 3.摇匀脱帽
// //
tubeProcessStateMgrService.setCurTubeState(TubeState.PROCESSING);
tubeProcessContextMgrService.setCurTubeState(TubeState.PROCESSING);
Tube tube = gstate.getCurProcessingTube(); Tube tube = gstate.getCurProcessingTube();
OS.forceSleep(3000); OS.forceSleep(3000);
tubeProcessStateMgrService.setCurTubeState(TubeState.PROCESSED);
tubeProcessContextMgrService.setCurTubeState(TubeState.PROCESSED);
incubationPlateMgrService.startIncubating(tube, 60 * 2); incubationPlateMgrService.startIncubating(tube, 60 * 2);
logger.info("pre process success"); logger.info("pre process success");
} }

6
src/main/java/a8k/service/apps/appctrl/mainflowctrl/action/SEQ6_POST_PROCESS.java

@ -41,7 +41,7 @@ public class SEQ6_POST_PROCESS extends A8kStepAction {
AppExceptionBuilder ebuilder; AppExceptionBuilder ebuilder;
@Resource @Resource
TubeProcessStateMgrService tubeProcessStateMgrService;
TubeProcessContextMgrService tubeProcessContextMgrService;
@Resource @Resource
IncubationPlateMgrService incubationPlateMgrService; IncubationPlateMgrService incubationPlateMgrService;
@ -61,10 +61,10 @@ public class SEQ6_POST_PROCESS extends A8kStepAction {
} }
@Override public void doaction() throws AppException { @Override public void doaction() throws AppException {
tubeProcessStateMgrService.setCurTubeState(TubeState.POST_PROCESSING);
tubeProcessContextMgrService.setCurTubeState(TubeState.POST_PROCESSING);
Tube tube = gstate.getCurProcessingTube(); Tube tube = gstate.getCurProcessingTube();
OS.forceSleep(3000); OS.forceSleep(3000);
tubeProcessStateMgrService.setCurTubeState(TubeState.POST_PROCESSED);
tubeProcessContextMgrService.setCurTubeState(TubeState.POST_PROCESSED);
} }
@Override public Boolean checkCondition() { @Override public Boolean checkCondition() {

28
src/main/java/a8k/service/apps/appstate/TubeProcessContextMgrService.java

@ -24,10 +24,13 @@ import a8k.service.apps.dbservice.SampleRecordDBService;
@Component @Component
public class TubeProcessContextMgrService { public class TubeProcessContextMgrService {
List<TubeProcessContext> contexts = new ArrayList<>();
@Resource
GStateService gstate;
@Resource @Resource
SampleRecordDBService sampleRecordDBService; SampleRecordDBService sampleRecordDBService;
List<TubeProcessContext> contexts = new ArrayList<>();
String generateSampleId(Date date, Integer tubePos) { String generateSampleId(Date date, Integer tubePos) {
String sampleid = ""; String sampleid = "";
@ -138,4 +141,27 @@ public class TubeProcessContextMgrService {
} }
synchronized public void setCurTubeState(TubeState state) {
Tube tube = gstate.getCurProcessingTube();
assert tube != null;
tube.state = state;
}
synchronized public void setTubeResourceIsReady(@NotNull List<A8kIdCardInfo> idCardInfo, @NotNull List<Consumable> consumable, @NotNull List<List<TipPos>> tipPos,
@NotNull List<IncubatorPos> incubatorPos) {
Tube tube = gstate.getCurProcessingTube();
assert tube != null;
for (int i = 0; i < tube.projIndex.size(); i++) {
createProjProcessContext(tube, idCardInfo.get(i), consumable.get(i), tipPos.get(i), incubatorPos.get(i));
}
tube.state = TubeState.RESOURCE_IS_READY;
}
synchronized public void pendingTube(Tube tube) {
tube.state = TubeState.PENDING;
gstate.curProcessingTube = tube;
}
} }

46
src/main/java/a8k/service/apps/appstate/TubeProcessStateMgrService.java

@ -1,49 +1,3 @@
package a8k.service.apps.appstate;
import a8k.service.apps.appstate.type.Tube;
import a8k.service.apps.appstate.type.state.TubeState;
import a8k.type.Consumable;
import a8k.type.IncubatorPos;
import a8k.type.TipPos;
import a8k.type.projecttype.a8kidcard.A8kIdCardInfo;
import jakarta.annotation.Resource;
import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class TubeProcessStateMgrService {
@Resource
GStateService gstate;
@Resource
TubeProcessContextMgrService tubeProcessContextMgrService;
synchronized public void setCurTubeState(TubeState state) {
Tube tube = gstate.getCurProcessingTube();
assert tube != null;
tube.state = state;
}
synchronized public void setTubeResourceIsReady(@NotNull List<A8kIdCardInfo> idCardInfo, @NotNull List<Consumable> consumable, @NotNull List<List<TipPos>> tipPos,
@NotNull List<IncubatorPos> incubatorPos) {
Tube tube = gstate.getCurProcessingTube();
assert tube != null;
for (int i = 0; i < tube.projIndex.size(); i++) {
tubeProcessContextMgrService.createProjProcessContext(tube, idCardInfo.get(i), consumable.get(i), tipPos.get(i), incubatorPos.get(i));
}
tube.state = TubeState.RESOURCE_IS_READY;
}
synchronized public void pendingTube(Tube tube) {
tube.state = TubeState.PENDING;
gstate.curProcessingTube = tube;
}
}
Loading…
Cancel
Save