Browse Source

更新错误码

tags/v0
zhaohe 10 months ago
parent
commit
c684d774f8
  1. BIN
      app.db
  2. 50
      src/main/java/a8k/hardware/type/a8kcanprotocol/A8kEcode.java
  3. 4
      src/main/java/a8k/service/app/appctrl/ConsumablesScanService.java
  4. 2
      src/main/java/a8k/service/app/appctrl/DeviceInitCtrlService.java
  5. 4
      src/main/java/a8k/service/app/appctrl/TubeSettingMgrService.java
  6. 12
      src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ1_ENTER_TUBEHOLDER_AND_SCAN.java
  7. 2
      src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ3_APPLAY_RESOURCE.java
  8. 4
      src/main/java/a8k/service/app/appdata/AppProjInfoMgrService.java
  9. 6
      src/main/java/a8k/service/app/appstate/EmergencySamplePosStateMgrService.java
  10. 8
      src/main/java/a8k/service/app/devicedriver/commonctrl/HardwareCommonCtrl.java
  11. 2
      src/main/java/a8k/service/app/devicedriver/ctrl/ConsumablesScanCtrl.java
  12. 6
      src/main/java/a8k/service/app/devicedriver/ctrl/HbotControlService.java
  13. 6
      src/main/java/a8k/service/app/devicedriver/ctrl/SampleScanTransportCtrl.java
  14. 8
      src/main/java/a8k/service/app/devicedriver/ctrl/SamplesPreProcesCtrl.java
  15. 4
      src/main/java/a8k/service/debug/AppDebugHelperService.java
  16. 2
      src/main/java/a8k/type/ecode/ConsumeNotEnoughError.java
  17. 4
      src/main/java/a8k/utils/ReactionPlate2DCodeHelper.java

BIN
app.db

50
src/main/java/a8k/hardware/type/a8kcanprotocol/A8kEcode.java

@ -14,9 +14,9 @@ public enum A8kEcode {
CODEERROR_ILLEGAL_OPERATION(15),//代码错误,非法操作
CODEERROR_PARAM_OUT_OF_RANGE(16), //代码错误,参数超出范围
CODEERROR_CMD_NOT_SUPPORT(17), //代码错误,命令不支持
CODEERROR_ZMNotAtZPosWhenHbotTryMove(18),//Z轴电机不在Z轴位置
CODEERROR_ShakeModGripperZMNotInZeroPos(19), //摇匀模组Z轴向电机不在零点
CODEERROR_MNotInZeroPos(20),//电机不在零点
CODEERROR_ZM_NOT_AT_ZERO_POS_WHEN_HBOT_TRY_MOVE(18),//Z轴电机不在Z轴位置
CODEERROR_SHAKE_MOD_GRIPPER_ZMOTOR_NOT_IN_ZERO_POS(19), //摇匀模组Z轴向电机不在零点
CODEERROR_MOTOR_NOT_IN_ZERO_POS(20),//电机不在零点
CODEERROR_END(50),
@ -37,29 +37,29 @@ public enum A8kEcode {
APPE_PUSHERM_INIT_POS_ERROR(204),//初始化阶段推板电机处于错误位置没有在零点
APPE_PULL_PLATE_FAIL(205),//推板失败
APPE_SCAN_TIMEOUT(206),//扫描超时
APPE_ScanTubeholderTypeTimeout(207),//扫描试管架类型超时
APPE_TubeXChannelIsNotEmpty(208),//试管架通道有异物
APPE_InfeedOvertimeFail(209),//入料超时失败
APPE_EjectTubeholderTimeout(210),//弹出试管架超时
APPE_PlateBoxNotCover(211),//板夹仓未盖
APPE_RecycleBinOverflow(212),//废料箱满
APPE_DeviceNotInited(213), //设备未初始化
APPE_A8kIdCardNotMounted(214),//ID卡未挂载
APPE_A8kPlate2DCodeFormatError(215),//巴迪泰反应板2D码格式错误
APPE_A8kIdCardLotIdIsEmpty(216),//ID卡批号为空
APPE_NoTubeInHolder(217),//试管架中没有试管
APPE_TubeHolderSettingIsLocked(218),//试管架设置被锁定
APPE_TubeHolderSettingNotFound(219),//试管架设置未找到
APPE_TubeHolderTypeIsNotSupport(220),//试管架类型不支持
APPE_EmergencySampleIsProcessing(221),//急诊样本正在处理中
APPE_ConsumeNotEnough(222),//耗材不足
APPE_TipNotEnough(223),//tip不足
APPE_TakeTubeFail(224),//取试管失败
APPE_ProjIndexIsEmpty(225),//项目ID为空
APPE_CanNotFindProjInfo(226),//找不到项目信息
APPE_ProjInfoIsNotExist(227),//项目信息不存在
APPE_SCAN_TUBEHOLDER_TYPE_TIMEOUT(207),//扫描试管架类型超时
APPE_TUBE_X_CHANNEL_IS_NOT_EMPTY(208),//试管架通道有异物
APPE_INFEED_OVERTIME_FAIL(209),//入料超时失败
APPE_EJECT_TUBEHOLDER_TIMEOUT(210),//弹出试管架超时
APPE_PLATE_BOX_NOT_COVER(211),//板夹仓未盖
APPE_RECYCLE_BIN_OVERFLOW(212),//废料箱满
APPE_DEVICE_NOT_INITED(213), //设备未初始化
APPE_A8K_ID_CARD_NOT_MOUNTED(214),//ID卡未挂载
APPE_A8K_PLATE_2D_CODE_FORMAT_ERROR(215),//巴迪泰反应板2D码格式错误
APPE_A8K_ID_CARD_LOT_ID_IS_EMPTY(216),//ID卡批号为空
APPE_NO_TUBE_IN_HOLDER(217),//试管架中没有试管
APPE_TUBE_HOLDER_SETTING_IS_LOCKED(218),//试管架设置被锁定
APPE_TUBE_HOLDER_SETTING_NOT_FOUND(219),//试管架设置未找到
APPE_TUBE_HOLDER_TYPE_IS_NOT_SUPPORT(220),//试管架类型不支持
APPE_EMERGENCY_SAMPLE_IS_PROCESSING(221),//急诊样本正在处理中
APPE_CONSUME_NOT_ENOUGH(222),//耗材不足
APPE_TIP_NOT_ENOUGH(223),//tip不足
APPE_TAKE_TUBE_FAIL(224),//取试管失败
APPE_PROJ_INDEX_IS_EMPTY(225),//项目ID为空
APPE_CAN_NOT_FIND_PROJ_INFO(226),//找不到项目信息
APPE_PROJ_INFO_IS_NOT_EXIST(227),//项目信息不存在
APPE_ACTION_IS_NOT_ALLOWED_WHEN_WORKING(228),//设备运行中下不允许执行该操作
APPE_CheckPoint_checkFail(229), //检查点检查失败
APPE_CHECK_POINT_CHECK_FAIL(229), //检查点检查失败
/**

4
src/main/java/a8k/service/app/appctrl/ConsumablesScanService.java

@ -192,7 +192,7 @@ public class ConsumablesScanService {
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
public Map<String, Object> scanConsumables() throws AppException {
if (!gstate.isDeviceInited()) {
throw new AppException(A8kEcode.APPE_DeviceNotInited);
throw new AppException(A8kEcode.APPE_DEVICE_NOT_INITED);
}
List<ConsumablesScanResult> scanResult = new java.util.ArrayList<>();
//执行扫描耗材动作
@ -227,7 +227,7 @@ public class ConsumablesScanService {
public Map<String, Object> scanOneGroupConsumables(ConsumableGroup group) throws AppException {
if (!gstate.isDeviceInited()) {
throw new AppException(A8kEcode.APPE_DeviceNotInited);
throw new AppException(A8kEcode.APPE_DEVICE_NOT_INITED);
}
Integer chNum = group.off;

2
src/main/java/a8k/service/app/appctrl/DeviceInitCtrlService.java

@ -77,7 +77,7 @@ public class DeviceInitCtrlService {
public void deviceMoveToZero() throws AppException {
Boolean suc = checkBeforeInitDevicePass();
if (!suc) {
throw new AppException(A8kEcode.APPE_CheckPoint_checkFail);
throw new AppException(A8kEcode.APPE_CHECK_POINT_CHECK_FAIL);
}
//进出料初始化

4
src/main/java/a8k/service/app/appctrl/TubeSettingMgrService.java

@ -55,10 +55,10 @@ public class TubeSettingMgrService {
TubeHolderSetting getTubeHolderSettingAndCheckIsEditable(String uuid) throws AppException {
TubeHolderSetting setting = getTubeHolderSetting(uuid);
if (setting == null) {
throw new AppException(A8kEcode.APPE_TubeHolderSettingNotFound);
throw new AppException(A8kEcode.APPE_TUBE_HOLDER_SETTING_NOT_FOUND);
}
if (setting.lock) {
throw new AppException(A8kEcode.APPE_TubeHolderSettingIsLocked);
throw new AppException(A8kEcode.APPE_TUBE_HOLDER_SETTING_IS_LOCKED);
}
return setting;
}

12
src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ1_ENTER_TUBEHOLDER_AND_SCAN.java

@ -91,13 +91,13 @@ public class SEQ1_ENTER_TUBEHOLDER_AND_SCAN extends A8kStepAction {
if (!enterSuc) {
logger.warn("进料超时,从入料口,弹出试管架");
stc.ejectTubeHolderInEnterPos();
throw new AppException(A8kEcode.APPE_InfeedOvertimeFail);
throw new AppException(A8kEcode.APPE_INFEED_OVERTIME_FAIL);
}
//扫描试管架类型
String tubeType = stc.moveTubeRackToScanPosAndScan();
if (tubeType.isEmpty()) {
logger.warn("扫描试管架类型失败,弹出试管架");
ebus.pushEvent(new AppWarningNotifyEvent(A8kEcode.APPE_ScanTubeholderTypeTimeout));
ebus.pushEvent(new AppWarningNotifyEvent(A8kEcode.APPE_SCAN_TUBEHOLDER_TYPE_TIMEOUT));
return null;
}
logger.info("扫描试管架类型成功,{}", tubeType);
@ -120,7 +120,7 @@ public class SEQ1_ENTER_TUBEHOLDER_AND_SCAN extends A8kStepAction {
//处理扫描结果
if (!hasTube) {
logger.error("试管架中没有试管");
ebus.pushEvent(new AppWarningNotifyEvent(A8kEcode.APPE_TubeHolderTypeIsNotSupport));
ebus.pushEvent(new AppWarningNotifyEvent(A8kEcode.APPE_TUBE_HOLDER_TYPE_IS_NOT_SUPPORT));
return null;
}
result.tubeHolderType = tubeType;
@ -154,8 +154,8 @@ public class SEQ1_ENTER_TUBEHOLDER_AND_SCAN extends A8kStepAction {
tube.projInfo = appProjInfoMgr.getProjBrifInfo(setting.tubeSettings[i].projIndex);
if (tube.projInfo == null) {
logger.error("项目信息不存在,{}", setting.tubeSettings[i].projIndex);
ebus.pushEvent(new AppWarningNotifyEvent(A8kEcode.APPE_ProjInfoIsNotExist));
return A8kEcode.APPE_ProjInfoIsNotExist;
ebus.pushEvent(new AppWarningNotifyEvent(A8kEcode.APPE_PROJ_INFO_IS_NOT_EXIST));
return A8kEcode.APPE_PROJ_INFO_IS_NOT_EXIST;
}
}
@ -183,7 +183,7 @@ public class SEQ1_ENTER_TUBEHOLDER_AND_SCAN extends A8kStepAction {
A8kTubeHolderType tubeHolderType = A8kTubeHolderType.of(scanResult.tubeHolderType);
if (tubeHolderType == null) {
logger.error("不支持的试管架类型");
ebus.pushEvent(new AppWarningNotifyEvent(A8kEcode.APPE_TubeHolderTypeIsNotSupport));
ebus.pushEvent(new AppWarningNotifyEvent(A8kEcode.APPE_TUBE_HOLDER_TYPE_IS_NOT_SUPPORT));
return null;
}

2
src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ3_APPLAY_RESOURCE.java

@ -85,7 +85,7 @@ public class SEQ3_APPLAY_RESOURCE extends A8kStepAction {
tipNum += flow.tipUseNum;
}
if (!consumablesMgrService.isHasEnoughTips(tipNum)) {
throw ebuilder.buildAppException(A8kEcode.APPE_TipNotEnough);
throw ebuilder.buildAppException(A8kEcode.APPE_TIP_NOT_ENOUGH);
}
logger.info("check tips ok");

4
src/main/java/a8k/service/app/appdata/AppProjInfoMgrService.java

@ -114,7 +114,7 @@ public class AppProjInfoMgrService {
//校验解析结果
//TODO: 检查解析结果如果解析结果存在异常则抛出错误事件给前端
if (mountedIdCardInfo.lotId.isEmpty()) {
eventBus.pushEvent(new A8kErrorPromptEvent(A8kEcode.APPE_A8kIdCardLotIdIsEmpty));
eventBus.pushEvent(new A8kErrorPromptEvent(A8kEcode.APPE_A8K_ID_CARD_LOT_ID_IS_EMPTY));
return;
}
@ -131,7 +131,7 @@ public class AppProjInfoMgrService {
@ExtApiFn(name = "读取当前挂载的ID卡信息", order = ORDER.readIDCardInfo)
public A8kIdCardInfo readMountedIDCardInfo() throws AppException {
if (mountedIdCardInfo == null) {
throw new AppException(A8kEcode.APPE_A8kIdCardNotMounted);
throw new AppException(A8kEcode.APPE_A8K_ID_CARD_NOT_MOUNTED);
}
return mountedIdCardInfo;
}

6
src/main/java/a8k/service/app/appstate/EmergencySamplePosStateMgrService.java

@ -61,12 +61,12 @@ public class EmergencySamplePosStateMgrService {
}
if (projIndex.isEmpty()) {
throw new AppException(A8kEcode.APPE_ProjIndexIsEmpty);
throw new AppException(A8kEcode.APPE_PROJ_INDEX_IS_EMPTY);
}
projInfo = appProjInfoMgrService.getProjBrifInfo(projIndex);
if (projInfo == null || projInfo.size() != projIndex.size()) {
throw new AppException(A8kEcode.APPE_CanNotFindProjInfo);
throw new AppException(A8kEcode.APPE_CAN_NOT_FIND_PROJ_INFO);
}
if (tube.state.equals(TubeState.EMPTY) || tube.state.equals(TubeState.PROCESS_COMPLETE) || tube.state.equals(TubeState.ERROR)) {
@ -87,7 +87,7 @@ public class EmergencySamplePosStateMgrService {
tubeStateMgrService.updateTubeContext(tube);
logger.info("更新紧急样本设置成功 {}", ZJsonHelper.objectToJson(tube));
} else {
throw new AppException(A8kEcode.APPE_EmergencySampleIsProcessing);
throw new AppException(A8kEcode.APPE_EMERGENCY_SAMPLE_IS_PROCESSING);
}
}

8
src/main/java/a8k/service/app/devicedriver/commonctrl/HardwareCommonCtrl.java

@ -49,12 +49,12 @@ public class HardwareCommonCtrl {
//试管平移通道是否有障碍
if (canBus.getIOState(IOId.THChInterPPS) || canBus.getIOState(IOId.THChOuterPPS)) {
logger.warn("THChInterPPS or THChOuterPPS is trigger");
throw new AppException(A8kEcode.APPE_TubeXChannelIsNotEmpty);
throw new AppException(A8kEcode.APPE_TUBE_X_CHANNEL_IS_NOT_EMPTY);
}
//板夹仓盖子是否盖上
if (!canBus.getIOState(IOId.PlateBoxCoverClosurePPS)) {
throw new AppException(A8kEcode.APPE_PlateBoxNotCover);
throw new AppException(A8kEcode.APPE_PLATE_BOX_NOT_COVER);
}
//板夹仓卡板检测
@ -73,7 +73,7 @@ public class HardwareCommonCtrl {
}
//板夹仓光电
if (canBus.getIOState(IOId.RecycleBinOverflowPPS)) {
throw new AppException(A8kEcode.APPE_RecycleBinOverflow);
throw new AppException(A8kEcode.APPE_PLATE_BOX_NOT_COVER);
}
}
@ -353,7 +353,7 @@ public class HardwareCommonCtrl {
public void checkBeforeMove(MId mId) throws AppException {
//板夹仓盖子是否盖上
if (!canBus.getIOState(IOId.PlateBoxCoverClosurePPS)) {
throw new AppException(A8kEcode.APPE_PlateBoxNotCover);
throw new AppException(A8kEcode.APPE_PLATE_BOX_NOT_COVER);
}
}

2
src/main/java/a8k/service/app/devicedriver/ctrl/ConsumablesScanCtrl.java

@ -64,7 +64,7 @@ public class ConsumablesScanCtrl {
@ExtApiFn(name = "扫描耗材")
public ConsumableScanRawResult doScanConsumablesAction() throws AppException {
if (!stateMgrService.isDeviceInited()) {
throw new AppException(A8kEcode.APPE_DeviceNotInited);
throw new AppException(A8kEcode.APPE_DEVICE_NOT_INITED);
}
ConsumableScanRawResult result = new ConsumableScanRawResult();
for (int i = 0; i < 6; i++) {

6
src/main/java/a8k/service/app/devicedriver/ctrl/HbotControlService.java

@ -49,7 +49,7 @@ public class HbotControlService {
// 检查盖板是否关闭
if (!canBus.getIOState(IOId.PlateBoxCoverClosurePPS)) {
throw new AppException(A8kEcode.APPE_PlateBoxNotCover);
throw new AppException(A8kEcode.APPE_PLATE_BOX_NOT_COVER);
}
boolean zEnable = true;
@ -67,7 +67,7 @@ public class HbotControlService {
pipetteCtrlModule.zMotorMoveToZeroPointQuickBlock();
}
if (!pipetteCtrlModule.zAixsZeroPointIsTrigger()) {
throw new AppException(A8kEcode.CODEERROR_ZMNotAtZPosWhenHbotTryMove);
throw new AppException(A8kEcode.CODEERROR_ZM_NOT_AT_ZERO_POS_WHEN_HBOT_TRY_MOVE);
}
// HBot移动
@ -130,7 +130,7 @@ public class HbotControlService {
private void modGroupMoveToZero() throws AppException {
if (!canBus.getIOState(IOId.PlateBoxCoverClosurePPS)) {
throw new AppException(A8kEcode.APPE_PlateBoxNotCover);
throw new AppException(A8kEcode.APPE_PLATE_BOX_NOT_COVER);
}
pipetteCtrlModule.zMotorEnable(1);

6
src/main/java/a8k/service/app/devicedriver/ctrl/SampleScanTransportCtrl.java

@ -91,7 +91,7 @@ public class SampleScanTransportCtrl {
@ExtApiFn(name = "移动到坐标", group = "基础方法", order = ORDER.moveTubeRackTo)
public void moveTubeRackTo(Integer pos, TargetPosMeasureDirection moveDiretion, Boolean moveToZero) throws AppException {
if (!canBus.stepMotorReadIoState(MId.ShakeModGripperZM, 0)) {
throw new AppException(A8kEcode.CODEERROR_ShakeModGripperZMNotInZeroPos);
throw new AppException(A8kEcode.CODEERROR_SHAKE_MOD_GRIPPER_ZMOTOR_NOT_IN_ZERO_POS);
}
//打开扫码夹具
scanClampModRelease();
@ -172,7 +172,7 @@ public class SampleScanTransportCtrl {
@ExtApiFn(name = "入料", group = "单步", order = ORDER.moveTubeRackToExitPos)
public Boolean enterTubeHolder() throws AppException {
if (getTHchInterPPS() || getTHchOuterPPS()) {
throw new AppException(A8kEcode.APPE_TubeXChannelIsNotEmpty);
throw new AppException(A8kEcode.APPE_TUBE_X_CHANNEL_IS_NOT_EMPTY);
}
moveTubeRackMoveToEnterPos();
try {
@ -217,7 +217,7 @@ public class SampleScanTransportCtrl {
OS.hsleep(1000);
canBus.stepMotorStop(MId.FeedingModOutfeedM);
if (getTHchInterPPS() || getTHchOuterPPS()) {
throw new AppException(A8kEcode.APPE_EjectTubeholderTimeout);
throw new AppException(A8kEcode.APPE_EJECT_TUBEHOLDER_TIMEOUT);
}
} finally {
canBus.moduleStop(MId.FeedingModOutfeedM);

8
src/main/java/a8k/service/app/devicedriver/ctrl/SamplesPreProcesCtrl.java

@ -120,22 +120,22 @@ public class SamplesPreProcesCtrl {
//Z轴在原点
if (!canBus.stepMotorReadIoState(MId.ShakeModGripperZM, 0)) {
throw new AppException(A8kEcode.CODEERROR_MNotInZeroPos,MId.ShakeModGripperZM);
throw new AppException(A8kEcode.CODEERROR_MOTOR_NOT_IN_ZERO_POS,MId.ShakeModGripperZM);
}
//Y轴在零点附近
if (!ZEQ.IntEq(canBus.miniServoReadPos(MId.ShakeModGripperYSV), pp.getGripperZeroYPos(), 30)) {
throw new AppException(A8kEcode.CODEERROR_MNotInZeroPos,MId.ShakeModGripperYSV);
throw new AppException(A8kEcode.CODEERROR_MOTOR_NOT_IN_ZERO_POS,MId.ShakeModGripperYSV);
}
//夹爪没有零位置
if (!ZEQ.IntEq(canBus.miniServoReadPos(MId.ShakeModGripperSV), pp.getGripperClosePos(), 30)) {
throw new AppException(A8kEcode.CODEERROR_MNotInZeroPos,MId.ShakeModGripperSV);
throw new AppException(A8kEcode.CODEERROR_MOTOR_NOT_IN_ZERO_POS,MId.ShakeModGripperSV);
}
//检查摇匀夹紧是否在零位
if (!canBus.stepMotorReadIoState(MId.ShakeModClampingM, 0)) {
throw new AppException(A8kEcode.CODEERROR_MNotInZeroPos,MId.ShakeModClampingM);
throw new AppException(A8kEcode.CODEERROR_MOTOR_NOT_IN_ZERO_POS,MId.ShakeModClampingM);
}
boolean isHighBlood = highTube;

4
src/main/java/a8k/service/debug/AppDebugHelperService.java

@ -228,8 +228,8 @@ public class AppDebugHelperService {
@ExtApiFn(name = "发送A8kEcodeContextListPromptEvent", group = "虚拟事件", order = 5)
public void buildAndSendA8kEcodeContextListPromptEvent() {
List<A8kErrorContext> errorContexts = new ArrayList<>();
errorContexts.add(new A8kErrorContext(A8kActionStepType.SEQ1_ENTER_TUBEHOLDER_AND_SCAN, new AppError(A8kEcode.APPE_TubeHolderTypeIsNotSupport)));
errorContexts.add(new A8kErrorContext(A8kActionStepType.SEQ5_PROCESS, new AppError(A8kEcode.APPE_NoTubeInHolder)));
errorContexts.add(new A8kErrorContext(A8kActionStepType.SEQ1_ENTER_TUBEHOLDER_AND_SCAN, new AppError(A8kEcode.APPE_TUBE_HOLDER_TYPE_IS_NOT_SUPPORT)));
errorContexts.add(new A8kErrorContext(A8kActionStepType.SEQ5_PROCESS, new AppError(A8kEcode.APPE_NO_TUBE_IN_HOLDER)));
eventBus.pushEvent(new A8kEcodeContextListPromptEvent(errorContexts));
}

2
src/main/java/a8k/type/ecode/ConsumeNotEnoughError.java

@ -6,7 +6,7 @@ public class ConsumeNotEnoughError extends AppError {
public String projName;
public ConsumeNotEnoughError(String projName) {
super(A8kEcode.APPE_ConsumeNotEnough);
super(A8kEcode.APPE_CONSUME_NOT_ENOUGH);
this.projName = projName;
}

4
src/main/java/a8k/utils/ReactionPlate2DCodeHelper.java

@ -12,7 +12,7 @@ public class ReactionPlate2DCodeHelper {
String[] parts = code.split("\\|\\|");
ReactionPlate2DCode ret = new ReactionPlate2DCode();
if (parts.length != 5) {
throw new AppException(A8kEcode.APPE_A8kPlate2DCodeFormatError);
throw new AppException(A8kEcode.APPE_A8K_PLATE_2D_CODE_FORMAT_ERROR);
}
ret.projIndex = Integer.parseInt(parts[0]);
ret.lotId = parts[1];
@ -21,7 +21,7 @@ public class ReactionPlate2DCodeHelper {
try {
ret.expDate = sdf.parse(parts[2]);
} catch (ParseException e) {
throw new AppException(A8kEcode.APPE_A8kPlate2DCodeFormatError);
throw new AppException(A8kEcode.APPE_A8K_PLATE_2D_CODE_FORMAT_ERROR);
}
ret.ID0 = Integer.parseInt(parts[3]);
ret.ID1 = Integer.parseInt(parts[4]);

Loading…
Cancel
Save