21 changed files with 302 additions and 240 deletions
-
12README.md
-
4src/main/java/a8k/service/appdata/AppSampleMgrService.java
-
47src/main/java/a8k/service/appdevicectrl/action/DO_CHECK_THE_QUANTITY_OF_CONSUMABLES.java
-
4src/main/java/a8k/service/appdevicectrl/action/base/A8kStepAction.java
-
39src/main/java/a8k/service/appdevicectrl/action/mainflow/SEQ1_ENTER_TUBEHOLDER_AND_SCAN.java
-
20src/main/java/a8k/service/appdevicectrl/action/mainflow/SEQ2_SWITCH_TO_THE_NEXT_TUBE.java
-
62src/main/java/a8k/service/appdevicectrl/action/mainflow/SEQ3_CHECK_THE_QUANTITY_OF_CONSUMABLES.java
-
141src/main/java/a8k/service/appdevicectrl/scheduler/MainFlowCtrlScheduler.java
-
12src/main/java/a8k/service/appstate/AppA8kGStateService.java
-
26src/main/java/a8k/service/appstate/type/IncubationPlate.java
-
11src/main/java/a8k/service/appstate/type/IncubationPlateStatus.java
-
14src/main/java/a8k/service/appstate/type/IncubationSubTank.java
-
6src/main/java/a8k/service/appstate/type/Tube.java
-
10src/main/java/a8k/service/appstate/type/TubeHolder.java
-
2src/main/java/a8k/service/appstate/type/state/IncubationSubTankState.java
-
2src/main/java/a8k/service/appstate/type/state/TubeState.java
-
10src/main/java/a8k/type/IncubatorPos.java
@ -1,47 +0,0 @@ |
|||||
package a8k.service.appdevicectrl.action; |
|
||||
|
|
||||
import a8k.service.appdevicectrl.action.base.A8kActionStepType; |
|
||||
import a8k.service.appdevicectrl.action.base.A8kStepAction; |
|
||||
import a8k.service.appstate.AppA8kGStateService; |
|
||||
import a8k.service.appstate.resource.A8kPublicResourceType; |
|
||||
import a8k.type.exception.AppException; |
|
||||
import jakarta.annotation.PostConstruct; |
|
||||
import jakarta.annotation.Resource; |
|
||||
import org.slf4j.Logger; |
|
||||
import org.slf4j.LoggerFactory; |
|
||||
import org.springframework.stereotype.Component; |
|
||||
|
|
||||
import java.util.List; |
|
||||
|
|
||||
/** |
|
||||
* 检查耗材是否充足 |
|
||||
*/ |
|
||||
@Component |
|
||||
public class DO_CHECK_THE_QUANTITY_OF_CONSUMABLES extends A8kStepAction { |
|
||||
static Logger logger = LoggerFactory.getLogger(DO_CHECK_THE_QUANTITY_OF_CONSUMABLES.class); |
|
||||
|
|
||||
DO_CHECK_THE_QUANTITY_OF_CONSUMABLES() { |
|
||||
super(A8kActionStepType.DO_CHECK_THE_QUANTITY_OF_CONSUMABLES); |
|
||||
} |
|
||||
|
|
||||
@Resource |
|
||||
AppA8kGStateService gstate; |
|
||||
|
|
||||
@PostConstruct |
|
||||
void init() { |
|
||||
} |
|
||||
|
|
||||
@Override public void doaction() throws AppException { |
|
||||
|
|
||||
} |
|
||||
|
|
||||
@Override public Boolean checkCondition() { |
|
||||
|
|
||||
|
|
||||
return false; |
|
||||
} |
|
||||
|
|
||||
@Override public List<A8kPublicResourceType> getDeplyResourceList() { |
|
||||
return List.of(); |
|
||||
} |
|
||||
} |
|
@ -0,0 +1,62 @@ |
|||||
|
package a8k.service.appdevicectrl.action.mainflow; |
||||
|
|
||||
|
import a8k.service.appdevicectrl.action.base.A8kActionStepType; |
||||
|
import a8k.service.appdevicectrl.action.base.A8kStepAction; |
||||
|
import a8k.service.appstate.AppA8kGStateService; |
||||
|
import a8k.service.appstate.resource.A8kPublicResourceType; |
||||
|
import a8k.service.appstate.type.state.TubeHolderState; |
||||
|
import a8k.service.appstate.type.state.TubeState; |
||||
|
import a8k.type.exception.AppException; |
||||
|
import jakarta.annotation.PostConstruct; |
||||
|
import jakarta.annotation.Resource; |
||||
|
import org.slf4j.Logger; |
||||
|
import org.slf4j.LoggerFactory; |
||||
|
import org.springframework.stereotype.Component; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* 检查耗材是否充足 |
||||
|
*/ |
||||
|
@Component |
||||
|
public class SEQ3_CHECK_THE_QUANTITY_OF_CONSUMABLES extends A8kStepAction { |
||||
|
static Logger logger = LoggerFactory.getLogger(SEQ3_CHECK_THE_QUANTITY_OF_CONSUMABLES.class); |
||||
|
|
||||
|
SEQ3_CHECK_THE_QUANTITY_OF_CONSUMABLES() { |
||||
|
super(A8kActionStepType.DO_CHECK_THE_QUANTITY_OF_CONSUMABLES); |
||||
|
} |
||||
|
|
||||
|
@Resource |
||||
|
AppA8kGStateService gstate; |
||||
|
|
||||
|
@PostConstruct |
||||
|
void init() { |
||||
|
} |
||||
|
|
||||
|
@Override public void doaction() throws AppException { |
||||
|
//检查孵育盘是否有空位 |
||||
|
// if(gstate.getIncubationPlate().getEmptyPos())){ |
||||
|
// } |
||||
|
//检查当前试管的待做项目所需要的资源是否充足 |
||||
|
} |
||||
|
|
||||
|
@Override public Boolean checkCondition() { |
||||
|
// 仪器是否在工作 |
||||
|
Boolean cond1 = gstate.isWorking(); |
||||
|
// 试管架是否在处理中 |
||||
|
Boolean cond2 = gstate.getTubeHolder().state.equals(TubeHolderState.PROCESSING); |
||||
|
// 试管是否待处理 |
||||
|
Boolean cond3 = gstate.getTubeHolder().getProcessingTube() != null && gstate.getTubeHolder().getProcessingTube().state.equals(TubeState.TO_BE_PROCESSED); |
||||
|
// 孵育盘是否有空位 |
||||
|
Boolean cond4 = gstate.getIncubationPlate().getEmptyPos() != null; |
||||
|
return cond1 && cond2 && cond3 && cond4; |
||||
|
} |
||||
|
|
||||
|
@Override public List<A8kPublicResourceType> getDeplyResourceList() { |
||||
|
return List.of(); |
||||
|
} |
||||
|
|
||||
|
@Override public Boolean isAllowsParallelRunning() { |
||||
|
return false; |
||||
|
} |
||||
|
} |
@ -0,0 +1,26 @@ |
|||||
|
package a8k.service.appstate.type; |
||||
|
|
||||
|
import a8k.service.appstate.type.state.IncubationSubTankState; |
||||
|
import a8k.type.IncubatorPos; |
||||
|
|
||||
|
public class IncubationPlate { |
||||
|
public IncubationSubTank[] subtanks = new IncubationSubTank[20]; |
||||
|
public IncubatorPos incubationPos = IncubatorPos.SPACE01; |
||||
|
|
||||
|
public IncubationPlate() { |
||||
|
for (int i = 0; i < 20; i++) { |
||||
|
subtanks[i] = new IncubationSubTank(IncubatorPos.of(i)); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
public IncubatorPos getEmptyPos() { |
||||
|
for (IncubationSubTank subtank : subtanks) { |
||||
|
if (subtank.state.equals(IncubationSubTankState.EMPTY)) { |
||||
|
return subtank.pos; |
||||
|
} |
||||
|
} |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
@ -1,11 +0,0 @@ |
|||||
package a8k.service.appstate.type; |
|
||||
|
|
||||
public class IncubationPlateStatus { |
|
||||
public ReactingPlateState[] plateStates = new ReactingPlateState[20]; |
|
||||
public Integer incubationPos = 0;//0->360,只做显示,不参与任何业务 |
|
||||
public IncubationPlateStatus() { |
|
||||
for (int i = 0; i < plateStates.length; i++) { |
|
||||
plateStates[i] = new ReactingPlateState(i); |
|
||||
} |
|
||||
} |
|
||||
} |
|
@ -1,7 +1,7 @@ |
|||||
package a8k.service.appstate.type.state; |
package a8k.service.appstate.type.state; |
||||
|
|
||||
//反应板条状态 |
//反应板条状态 |
||||
public enum ReactionPlateState { |
|
||||
|
public enum IncubationSubTankState { |
||||
EMPTY,//板夹仓中 |
EMPTY,//板夹仓中 |
||||
WAITING_FOR_DROP,//等待滴液 |
WAITING_FOR_DROP,//等待滴液 |
||||
INCUBATING, //孵育中 |
INCUBATING, //孵育中 |
@ -1,6 +1,6 @@ |
|||||
package a8k.service.appstate.type.state; |
package a8k.service.appstate.type.state; |
||||
|
|
||||
public enum TubeProcessState { |
|
||||
|
public enum TubeState { |
||||
// |
// |
||||
TO_BE_PROCESSED,//待处理 |
TO_BE_PROCESSED,//待处理 |
||||
PRE_PROCESSING, //预处理 |
PRE_PROCESSING, //预处理 |
Write
Preview
Loading…
Cancel
Save
Reference in new issue