|
@ -2,6 +2,7 @@ package a8k.extui.page.test.verification; |
|
|
|
|
|
|
|
|
import a8k.OS; |
|
|
import a8k.OS; |
|
|
import a8k.app.a8kproj.A8kReactionResultComputer; |
|
|
import a8k.app.a8kproj.A8kReactionResultComputer; |
|
|
|
|
|
import a8k.app.a8kproj.optalgo.type.OptScanResult; |
|
|
import a8k.app.a8ktype.device.*; |
|
|
import a8k.app.a8ktype.device.*; |
|
|
import a8k.app.a8ktype.exception.AppException; |
|
|
import a8k.app.a8ktype.exception.AppException; |
|
|
import a8k.app.a8ktype.param.type.A8kSamplePos; |
|
|
import a8k.app.a8ktype.param.type.A8kSamplePos; |
|
@ -17,6 +18,7 @@ import a8k.app.service.bases.AppEventBusService; |
|
|
import a8k.app.service.bases.FrontEndMessageBoxAndEventMgr; |
|
|
import a8k.app.service.bases.FrontEndMessageBoxAndEventMgr; |
|
|
import a8k.app.service.data.ProjIdCardInfoMgrService; |
|
|
import a8k.app.service.data.ProjIdCardInfoMgrService; |
|
|
import a8k.app.service.data.ProjInfoMgrService; |
|
|
import a8k.app.service.data.ProjInfoMgrService; |
|
|
|
|
|
import a8k.app.service.data.ReactionRecordMgrService; |
|
|
import a8k.app.service.lowerctrl.*; |
|
|
import a8k.app.service.lowerctrl.*; |
|
|
import a8k.app.utils.ProjBuildinInfo; |
|
|
import a8k.app.utils.ProjBuildinInfo; |
|
|
import a8k.app.utils.ProjInfo; |
|
|
import a8k.app.utils.ProjInfo; |
|
@ -26,6 +28,7 @@ import a8k.extui.mgr.ExtApiPageMgr; |
|
|
import a8k.extui.type.ExtApiStatu; |
|
|
import a8k.extui.type.ExtApiStatu; |
|
|
import jakarta.annotation.PostConstruct; |
|
|
import jakarta.annotation.PostConstruct; |
|
|
import jakarta.annotation.Resource; |
|
|
import jakarta.annotation.Resource; |
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.stereotype.Component; |
|
|
import org.springframework.stereotype.Component; |
|
|
import org.springframework.util.Assert; |
|
|
import org.springframework.util.Assert; |
|
|
|
|
|
|
|
@ -68,6 +71,8 @@ public class P51FullFlowVerificationPage { |
|
|
|
|
|
|
|
|
@Resource |
|
|
@Resource |
|
|
FrontEndMessageBoxAndEventMgr frontEndMessageBoxAndEventMgr; |
|
|
FrontEndMessageBoxAndEventMgr frontEndMessageBoxAndEventMgr; |
|
|
|
|
|
@Autowired |
|
|
|
|
|
private ReactionRecordMgrService reactionRecordMgrService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// |
|
|
// |
|
@ -162,7 +167,8 @@ public class P51FullFlowVerificationPage { |
|
|
|
|
|
|
|
|
void procesSample() throws AppException { |
|
|
void procesSample() throws AppException { |
|
|
liquidOperationCtrlService.setProjContext(cxt.projBuildinInfo, cxt.projExtInfoCard); |
|
|
liquidOperationCtrlService.setProjContext(cxt.projBuildinInfo, cxt.projExtInfoCard); |
|
|
takeTip(); |
|
|
|
|
|
|
|
|
if (!hbotMoveExCtrlService.isHasTip()) |
|
|
|
|
|
takeTip(); |
|
|
if (cxt.projBuildinInfo.reactionFlowType.equals(A8kReactionFlowType.SampleAndBS)) { |
|
|
if (cxt.projBuildinInfo.reactionFlowType.equals(A8kReactionFlowType.SampleAndBS)) { |
|
|
//param 小瓶缓冲液位置 |
|
|
//param 小瓶缓冲液位置 |
|
|
var preReactionPos = new PreReactionPos(ConsumableType.SmallBottleBuffer, cxt.consumableGroup, cxt.consumablePosOff); |
|
|
var preReactionPos = new PreReactionPos(ConsumableType.SmallBottleBuffer, cxt.consumableGroup, cxt.consumablePosOff); |
|
@ -209,20 +215,21 @@ public class P51FullFlowVerificationPage { |
|
|
|
|
|
|
|
|
void scanAndDrop() throws AppException { |
|
|
void scanAndDrop() throws AppException { |
|
|
optScanModuleCtrlService.pullPlate(cxt.incubatorPos); |
|
|
optScanModuleCtrlService.pullPlate(cxt.incubatorPos); |
|
|
|
|
|
ProjInfo projInfo = new ProjInfo(); |
|
|
|
|
|
projInfo.buildIn = cxt.projBuildinInfo; |
|
|
|
|
|
projInfo.ext = cxt.projExtInfoCard; |
|
|
|
|
|
|
|
|
for (int i = 0; i < cxt.projBuildinInfo.subProjNum; i++) { |
|
|
|
|
|
A8kOptType optType = cxt.projBuildinInfo.getOptType(i); |
|
|
|
|
|
var optScanResult = optScanModuleCtrlService.optScan(cxt.projBuildinInfo, i); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ProjInfo projInfo = new ProjInfo(); |
|
|
|
|
|
projInfo.buildIn = cxt.projBuildinInfo; |
|
|
|
|
|
projInfo.ext = cxt.projExtInfoCard; |
|
|
|
|
|
|
|
|
List<OptScanResult> optScanResults = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < cxt.projBuildinInfo.subProjNum; i++) { |
|
|
|
|
|
var optScanResult = optScanModuleCtrlService.optScan(cxt.projBuildinInfo, i); |
|
|
|
|
|
|
|
|
ReactionResult result = A8kReactionResultComputer.optComputeResult(cxt.sampleInfo, projInfo, i, optScanResult.analysResult); |
|
|
ReactionResult result = A8kReactionResultComputer.optComputeResult(cxt.sampleInfo, projInfo, i, optScanResult.analysResult); |
|
|
cxt.results.add(result); |
|
|
cxt.results.add(result); |
|
|
|
|
|
optScanResults.add(optScanResult); |
|
|
} |
|
|
} |
|
|
|
|
|
reactionRecordMgrService.addRecord(cxt.sampleInfo, projInfo, optScanResults, cxt.results); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|