|
|
@ -38,12 +38,14 @@ import a8k.app.type.exception.AppException; |
|
|
|
import a8k.app.type.param.type.A8kSamplePos; |
|
|
|
import a8k.app.type.ui.TubeHolderSetting; |
|
|
|
import a8k.app.type.ui.TubeSetting; |
|
|
|
import a8k.app.utils.ZJsonHelper; |
|
|
|
import a8k.app.utils.ZList; |
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.stereotype.Component; |
|
|
|
import org.springframework.util.Assert; |
|
|
|
|
|
|
|
import javax.swing.*; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Objects; |
|
|
|
|
|
|
@ -111,6 +113,7 @@ public class ExperimentConsistencyTestingService { |
|
|
|
if (tubeExTubeHolderExConfig != null) { |
|
|
|
this.tubeHolderExConfig = tubeExTubeHolderExConfig; |
|
|
|
} |
|
|
|
log.info("更新试管架配置 {}", ZJsonHelper.objectToJson(tubeHolderExConfig)); |
|
|
|
} |
|
|
|
|
|
|
|
synchronized public TubeHolderExConfig getTubeExConfig() { |
|
|
@ -160,7 +163,7 @@ public class ExperimentConsistencyTestingService { |
|
|
|
int testTotalTimes = 0; |
|
|
|
for (TubeSetting tubeSetting : tubeHolderSetting.tubeSettings) { |
|
|
|
for (Integer ignored : tubeSetting.projId) { |
|
|
|
testTotalTimes++; |
|
|
|
testTotalTimes += tubeHolderExConfig.tubeExConfigs.get(tubeSetting.tubeIndex).repeatTimes; |
|
|
|
} |
|
|
|
} |
|
|
|
if (consumablesMgrService.getConsumableNum(1/*hscrp项目*/) < testTotalTimes) { |
|
|
@ -289,12 +292,13 @@ public class ExperimentConsistencyTestingService { |
|
|
|
} |
|
|
|
Assert.isTrue(scanResult.tube[tubeoff].isTubeExist, String.format("位置[%d]未放入是试管", tubeoff + 1)); |
|
|
|
|
|
|
|
|
|
|
|
//移动试管架到预处理位置 |
|
|
|
int finalTubeoff = tubeoff; |
|
|
|
UISender.txInfoMsg(log, "开始处理第%d个试管", finalTubeoff + 1); |
|
|
|
docmd("移动试管到处理位", () -> tubeFeedingCtrlService.moveTubeToPreProcessPos(finalTubeoff)); |
|
|
|
|
|
|
|
for (int j = 0; j < getRepeatTimes(tubeoff); j++) { |
|
|
|
|
|
|
|
//尝试处理孵育完成的反应板 |
|
|
|
incubationPlateProcess(false); |
|
|
|
|
|
|
@ -326,7 +330,6 @@ public class ExperimentConsistencyTestingService { |
|
|
|
tube.setSampleId(sampleId); |
|
|
|
|
|
|
|
|
|
|
|
for (int j = 0; j < getRepeatTimes(tubeoff); j++) { |
|
|
|
//处理试管 |
|
|
|
processTube(tube, tubeoff, consumableInfo, tubeSetting); |
|
|
|
if (!tube.getErrors().isEmpty()) { |
|
|
|