From 7755b9071ea0c46a85ea13925960db0c905b6e31 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Thu, 10 Oct 2024 14:03:39 +0800 Subject: [PATCH] update --- app.db | Bin 225280 -> 225280 bytes .../mainflowctrl/action/PLATE_OPT_SCAN.java | 8 +- .../mainflowctrl/base/A8kActionStepType.java | 12 +-- .../app/appdata/AppReactionResultMgrService.java | 99 --------------------- .../app/appdata/ReactionRecordMgrService.java | 99 +++++++++++++++++++++ .../bases/appevent/AppWarningNotifyEvent.java | 21 +++-- .../a8k/service/db/ReactionRecordDBService.java | 10 +++ .../a8k/service/db/type/ReactionResultRecord.java | 5 +- .../a8k/service/debug/AppDebugHelperService.java | 92 ++++++++++++++++++- src/main/java/a8k/type/ecode/AppError.java | 2 + .../java/a8k/type/ecode/ConsumeNotEnoughError.java | 4 +- src/main/java/a8k/type/ecode/HardwareError.java | 10 +-- .../reaction_result_type/ReactionResultStatus.java | 2 +- src/main/java/a8k/utils/AppExceptionBuilder.java | 2 +- src/main/java/a8k/utils/ZDateUtils.java | 4 + 15 files changed, 237 insertions(+), 133 deletions(-) delete mode 100644 src/main/java/a8k/service/app/appdata/AppReactionResultMgrService.java create mode 100644 src/main/java/a8k/service/app/appdata/ReactionRecordMgrService.java diff --git a/app.db b/app.db index 068ea1463ff779c77f7305ab3ee1a628f1f18e81..f8db355ac2375dfdc4fadde71f81ccca1ad669ad 100644 GIT binary patch delta 216 zcmZp8z}xVEcY>6VuImwz*3 z0JDG)JJTTsel3>!?B`hD@ai!g;(oSSQD6;|K#OE!BD=V)En~ZDNn%n?>g4>F5+KZ| zIyvx-*yMRH6@`+EQWHyD5=&Cm6*BWmQqxn5CZBxi#!;M@Tac6LnKIomlu2W|Tr86; z6V#8(Ce26G@b17bb~21d(?Iz~(qUmFuz6BxH9FfGyNV&>Ol;NQhx z!mqbkQ9*&f-i29&L0y>_2sn6wniyndWr3ujxsio|iG`Vkxq+EkxQD-wYrK<>zrTx% zXRxD_k1Hn4gx3@^V{;4arl1+eh}Re+Lt{hi#-KQAn*kG}fGD3e13Tke27WCb3&yuB zcbI;0*>HT>tSG?D$kH6w$T|H(D3cST`sBbjV$-F`oWNq~{j zY&%fJLq-l$c5z)@#{THd+HY1dPj8N9N@KLx{wkWuosrRex=}2X8KWx5knKQ2Rx?ia pczJpI`d}slMiyWwzMrfp@Q9PGQJ)PIvJCB7@l4yb;+d}r005glXqEr~ diff --git a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/PLATE_OPT_SCAN.java b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/PLATE_OPT_SCAN.java index 854ea89..45f6fb7 100644 --- a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/PLATE_OPT_SCAN.java +++ b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/PLATE_OPT_SCAN.java @@ -3,7 +3,7 @@ package a8k.service.app.appctrl.mainflowctrl.action; import a8k.service.app.appctrl.mainflowctrl.CondtionMgrService; import a8k.service.app.appctrl.mainflowctrl.base.A8kActionStepType; import a8k.service.app.appctrl.mainflowctrl.base.A8kStepAction; -import a8k.service.app.appdata.AppReactionResultMgrService; +import a8k.service.app.appdata.ReactionRecordMgrService; import a8k.service.app.appstate.GStateService; import a8k.service.app.appstate.IncubationPlateMgrService; import a8k.service.app.appstate.OptScanModuleStateMgrService; @@ -42,9 +42,9 @@ public class PLATE_OPT_SCAN extends A8kStepAction { @Resource OptScanModuleStateMgrService optScanModuleStateMgrService; @Resource - TubeStateMgrService tubeStateMgrService; + TubeStateMgrService tubeStateMgrService; @Resource - AppReactionResultMgrService appReactionResultMgrService; + ReactionRecordMgrService reactionRecordMgrService; MainFlowCtrlState mfcs; @@ -63,7 +63,7 @@ public class PLATE_OPT_SCAN extends A8kStepAction { //修改板夹状态 optScanModuleStateMgrService.dropPlate(); - appReactionResultMgrService.addRecord(optScanModuleStateMgrService.getCurProjProcessContext(), + reactionRecordMgrService.addRecord(optScanModuleStateMgrService.getCurProjProcessContext(), new ReactionResult(ReactionResultStatus.SUCCESS, "12.8 mg/L"), new ReactionResult(ReactionResultStatus.ERROR_RESULT_OUT_OF_RANGE, "")); } diff --git a/src/main/java/a8k/service/app/appctrl/mainflowctrl/base/A8kActionStepType.java b/src/main/java/a8k/service/app/appctrl/mainflowctrl/base/A8kActionStepType.java index 9ea3a69..cfa70b3 100644 --- a/src/main/java/a8k/service/app/appctrl/mainflowctrl/base/A8kActionStepType.java +++ b/src/main/java/a8k/service/app/appctrl/mainflowctrl/base/A8kActionStepType.java @@ -10,19 +10,19 @@ public enum A8kActionStepType { SEQ1_ENTER_TUBEHOLDER_AND_SCAN, //入料并扫描 SEQ2_SWITCH_TO_THE_NEXT_TUBE,// 切换到下一个试管 SEQ3_APPLAY_RESOURCE,//申请资源 - SEQ4_PRE_PROCESS, - SEQ5_PROCESS, - SEQ6_POST_PROCESS, + SEQ4_PRE_PROCESS,//样本预处理 + SEQ5_PROCESS,//样本处理中 + SEQ6_POST_PROCESS,//样本后处理 SEQ7_EJECT_TUBEHOLDER, //弹出试管架 //incubate PROCESS_INCUBATE_COMPLETED_PLATE,//处理孵育完成的板 //OPT - PLATE_OPT_SCAN, + PLATE_OPT_SCAN,//光学扫描 //Error DO_CLEAR_ERROR_BEFORE_WORK,//在启动前,清除错误 - DO_PROCESS_ERROR_TUBE, - DO_PROCESS_ERROR_PLATE, + DO_PROCESS_ERROR_TUBE,//处理异常的样本 + DO_PROCESS_ERROR_PLATE,//处理异常的孵育盘 } diff --git a/src/main/java/a8k/service/app/appdata/AppReactionResultMgrService.java b/src/main/java/a8k/service/app/appdata/AppReactionResultMgrService.java deleted file mode 100644 index 15b9807..0000000 --- a/src/main/java/a8k/service/app/appdata/AppReactionResultMgrService.java +++ /dev/null @@ -1,99 +0,0 @@ -package a8k.service.app.appdata; - -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; -import a8k.service.db.ReactionRecordDBService; -import a8k.service.db.type.ReactionResultRecord; -import a8k.service.app.appstate.GStateService; -import a8k.service.app.appstate.TubeStateMgrService; -import a8k.service.app.appstate.type.ProjProcessContext; -import a8k.service.app.appstate.type.TubeProcessContext; -import a8k.type.ReactionResult; -import a8k.utils.ZJsonHelper; -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 -@ExtApiTab(cfg = ExtApiTabConfig.AppReactionResultMgrService) -public class AppReactionResultMgrService { - - final static Logger logger = LoggerFactory.getLogger(AppReactionResultMgrService.class); - - @Resource - ReactionRecordDBService reactionRecordDBService; - - @Resource - TubeStateMgrService tubeStateMgrService; - - @Resource - AppUserMgrService appUserMgrService; - - @Resource - GStateService gstate; - - @PostConstruct - public void init() { - } - - @ExtApiFn(name = "获取所有样本记录") - public List getAllRecords() { - return reactionRecordDBService.getAll(); - } - - public void addRecord(ProjProcessContext projContext, ReactionResult... reactionResults) { - ReactionResultRecord record = new ReactionResultRecord(); - TubeProcessContext tubeContext = tubeStateMgrService.getTubeContext(projContext.sampleId); - - String operator = appUserMgrService.getLoginUsr() != null ? appUserMgrService.getLoginUsr().account : "UNLOGIN"; - - record.sampleBloodType = tubeContext.bloodType; - record.sampleBarcode = tubeContext.sampleBarcode; - record.sampleUserid = tubeContext.userid; - record.sampleId = tubeContext.sampleid; - record.projName = projContext.projInfo.projName; - record.lotId = projContext.projCfg.idCardInfo.lotId; - record.projIndex = projContext.projCfg.idCardInfo.projIndex; - record.expiryDate = projContext.projCfg.idCardInfo.expiryDate; - record.operator = operator; - record.appVersion = gstate.getAppVersion(); - record.mcuVersion = gstate.getMcuVersion(); - record.sn = gstate.getSn(); - - - if (reactionResults.length == 1) { - record.subProjResultStatus1 = reactionResults[0].status; - record.subProjResult1 = reactionResults[0].result; - } else if (reactionResults.length == 2) { - record.subProjResultStatus1 = reactionResults[0].status; - record.subProjResult1 = reactionResults[0].result; - record.subProjResultStatus2 = reactionResults[1].status; - record.subProjResult2 = reactionResults[1].result; - } else if (reactionResults.length == 3) { - record.subProjResultStatus1 = reactionResults[0].status; - record.subProjResult1 = reactionResults[0].result; - record.subProjResultStatus2 = reactionResults[1].status; - record.subProjResult2 = reactionResults[1].result; - record.subProjResultStatus3 = reactionResults[2].status; - record.subProjResult3 = reactionResults[2].result; - } - - logger.info("addRecord: {}", ZJsonHelper.objectToJson(record)); - reactionRecordDBService.add(record); - } - - @ExtApiFn(name = "删除所有测试记录") - public void deleteAllRecords() { - List records = reactionRecordDBService.getAll(); - for (ReactionResultRecord record : records) { - reactionRecordDBService.delete(record.id); - } - } - - -} diff --git a/src/main/java/a8k/service/app/appdata/ReactionRecordMgrService.java b/src/main/java/a8k/service/app/appdata/ReactionRecordMgrService.java new file mode 100644 index 0000000..a9bdbce --- /dev/null +++ b/src/main/java/a8k/service/app/appdata/ReactionRecordMgrService.java @@ -0,0 +1,99 @@ +package a8k.service.app.appdata; + +import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; +import a8k.extapi_controler.utils.ExtApiFn; +import a8k.extapi_controler.utils.ExtApiTab; +import a8k.service.db.ReactionRecordDBService; +import a8k.service.db.type.ReactionResultRecord; +import a8k.service.app.appstate.GStateService; +import a8k.service.app.appstate.TubeStateMgrService; +import a8k.service.app.appstate.type.ProjProcessContext; +import a8k.service.app.appstate.type.TubeProcessContext; +import a8k.type.ReactionResult; +import a8k.utils.ZJsonHelper; +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 +@ExtApiTab(cfg = ExtApiTabConfig.AppReactionResultMgrService) +public class ReactionRecordMgrService { + + final static Logger logger = LoggerFactory.getLogger(ReactionRecordMgrService.class); + + @Resource + ReactionRecordDBService reactionRecordDBService; + + @Resource + TubeStateMgrService tubeStateMgrService; + + @Resource + AppUserMgrService appUserMgrService; + + @Resource + GStateService gstate; + + @PostConstruct + public void init() { + } + + @ExtApiFn(name = "获取所有样本记录") + public List getAllRecords() { + return reactionRecordDBService.getAll(); + } + + public void addRecord(ProjProcessContext projContext, ReactionResult... reactionResults) { + ReactionResultRecord record = new ReactionResultRecord(); + TubeProcessContext tubeContext = tubeStateMgrService.getTubeContext(projContext.sampleId); + + String operator = appUserMgrService.getLoginUsr() != null ? appUserMgrService.getLoginUsr().account : "UNLOGIN"; + + record.sampleBloodType = tubeContext.bloodType; + record.sampleBarcode = tubeContext.sampleBarcode; + record.sampleUserid = tubeContext.userid; + record.sampleId = tubeContext.sampleid; + record.projName = projContext.projInfo.projName; + record.lotId = projContext.projCfg.idCardInfo.lotId; + record.projIndex = projContext.projCfg.idCardInfo.projIndex; + record.expiryDate = projContext.projCfg.idCardInfo.expiryDate; + record.operator = operator; + record.appVersion = gstate.getAppVersion(); + record.mcuVersion = gstate.getMcuVersion(); + record.sn = gstate.getSn(); + + + if (reactionResults.length == 1) { + record.subProjResultStatus1 = reactionResults[0].status; + record.subProjResult1 = reactionResults[0].result; + } else if (reactionResults.length == 2) { + record.subProjResultStatus1 = reactionResults[0].status; + record.subProjResult1 = reactionResults[0].result; + record.subProjResultStatus2 = reactionResults[1].status; + record.subProjResult2 = reactionResults[1].result; + } else if (reactionResults.length == 3) { + record.subProjResultStatus1 = reactionResults[0].status; + record.subProjResult1 = reactionResults[0].result; + record.subProjResultStatus2 = reactionResults[1].status; + record.subProjResult2 = reactionResults[1].result; + record.subProjResultStatus3 = reactionResults[2].status; + record.subProjResult3 = reactionResults[2].result; + } + + logger.info("addRecord: {}", ZJsonHelper.objectToJson(record)); + reactionRecordDBService.add(record); + } + + @ExtApiFn(name = "删除所有测试记录") + public void deleteAllRecords() { + List records = reactionRecordDBService.getAll(); + for (ReactionResultRecord record : records) { + reactionRecordDBService.delete(record.id); + } + } + + +} diff --git a/src/main/java/a8k/service/bases/appevent/AppWarningNotifyEvent.java b/src/main/java/a8k/service/bases/appevent/AppWarningNotifyEvent.java index a8f6cf7..2f4452d 100644 --- a/src/main/java/a8k/service/bases/appevent/AppWarningNotifyEvent.java +++ b/src/main/java/a8k/service/bases/appevent/AppWarningNotifyEvent.java @@ -1,24 +1,23 @@ package a8k.service.bases.appevent; import a8k.hardware.type.a8kcanprotocol.A8kEcode; +import a8k.type.ecode.AppError; public class AppWarningNotifyEvent extends AppEvent { - public Integer errorCode; - public String errorCodeStr; + public AppError error; - public AppWarningNotifyEvent(Integer errorCode) { + public AppWarningNotifyEvent(AppError erro) { super(AppWarningNotifyEvent.class.getSimpleName()); - - this.errorCode = errorCode; - this.errorCodeStr = A8kEcode.toDisPlayString(errorCode); + this.error = erro; } - public AppWarningNotifyEvent(A8kEcode ecode) { - this(ecode.index); + public AppWarningNotifyEvent(A8kEcode errorCode) { + super(AppWarningNotifyEvent.class.getSimpleName()); + this.error = new AppError(errorCode); } - public String toString() { - return String.format("%s", errorCodeStr); + public AppWarningNotifyEvent(Integer errorCode) { + super(AppWarningNotifyEvent.class.getSimpleName()); + this.error = new AppError(A8kEcode.fromInt(errorCode)); } - } diff --git a/src/main/java/a8k/service/db/ReactionRecordDBService.java b/src/main/java/a8k/service/db/ReactionRecordDBService.java index dc32e40..f544518 100644 --- a/src/main/java/a8k/service/db/ReactionRecordDBService.java +++ b/src/main/java/a8k/service/db/ReactionRecordDBService.java @@ -1,7 +1,9 @@ package a8k.service.db; import a8k.service.db.type.ReactionResultRecord; +import a8k.service.debug.AppDebugHelperService; import a8k.utils.ZSqliteJdbcHelper; +import freemarker.debug.impl.DebuggerService; import jakarta.annotation.PostConstruct; import jakarta.annotation.Resource; import lombok.SneakyThrows; @@ -23,9 +25,17 @@ public class ReactionRecordDBService { @Resource JdbcTemplate jdbcTemplate; + @Resource + AppDebugHelperService appDebugHelperService; + + @PostConstruct void init() { + if(appDebugHelperService.isDebug()) { + ZSqliteJdbcHelper.forceDeleteTable(jdbcTemplate, tableName); + ZSqliteJdbcHelper.createTable(jdbcTemplate, tableName, tClass); + } if (!ZSqliteJdbcHelper.isTableExist(jdbcTemplate, tableName)) { ZSqliteJdbcHelper.createTable(jdbcTemplate, tableName, tClass); } diff --git a/src/main/java/a8k/service/db/type/ReactionResultRecord.java b/src/main/java/a8k/service/db/type/ReactionResultRecord.java index 42370d0..85d0655 100644 --- a/src/main/java/a8k/service/db/type/ReactionResultRecord.java +++ b/src/main/java/a8k/service/db/type/ReactionResultRecord.java @@ -2,6 +2,8 @@ package a8k.service.db.type; import a8k.type.reaction_result_type.ReactionResultStatus; import a8k.type.type.BloodType; +import a8k.utils.DateUtil; +import a8k.utils.ZDateUtils; import com.fasterxml.jackson.annotation.JsonFormat; import java.util.Date; @@ -26,8 +28,7 @@ import java.util.Date; public class ReactionResultRecord { public int id = 0; - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - public Date date = new Date(); + public Integer creatDate = ZDateUtils.getTimestamp(); //样本信息 public BloodType sampleBloodType = BloodType.WHOLE_BLOOD; //血液类型 diff --git a/src/main/java/a8k/service/debug/AppDebugHelperService.java b/src/main/java/a8k/service/debug/AppDebugHelperService.java index b5f96a9..bd08e3e 100644 --- a/src/main/java/a8k/service/debug/AppDebugHelperService.java +++ b/src/main/java/a8k/service/debug/AppDebugHelperService.java @@ -1,17 +1,29 @@ package a8k.service.debug; +import a8k.OS; import a8k.SpringBootBeanUtil; import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; import a8k.extapi_controler.utils.ExtApiFn; import a8k.extapi_controler.utils.ExtApiTab; +import a8k.hardware.type.a8kcanprotocol.A8kEcode; +import a8k.hardware.type.a8kcanprotocol.CmdId; +import a8k.hardware.type.a8kcanprotocol.MId; import a8k.service.app.appctrl.CheckPointType; +import a8k.service.app.appctrl.mainflowctrl.base.A8kActionStepType; +import a8k.service.app.appctrl.mainflowctrl.base.A8kErrorContext; +import a8k.service.app.appdata.ReactionRecordMgrService; +import a8k.service.app.appstate.GStateService; +import a8k.service.app.appstate.type.ProjProcessContext; import a8k.service.bases.AppEventBusService; -import a8k.service.bases.appevent.A8kHardwareReport; +import a8k.service.bases.appevent.*; import a8k.service.db.A8kProjIdCardDBService; import a8k.service.db.A8kProjInfoDBService; +import a8k.service.db.ReactionRecordDBService; import a8k.service.db.type.A8kIdCardInfo; import a8k.service.db.type.A8kProjOptConfig; import a8k.service.db.type.A8kProjectInfo; +import a8k.service.db.type.ReactionResultRecord; +import a8k.service.db.type.a8kidcard.zenum.A8kReactionFlowType; import a8k.service.debug.fakeprojinfo.*; import a8k.type.ConsumableGroup; import a8k.type.ConsumableOneChResult; @@ -19,15 +31,24 @@ import a8k.type.ConsumableScanRawResult; import a8k.type.checkpoint.CheckResult; import a8k.type.checkpoint.Checkpoint; import a8k.type.consumables.ConsumablesErrorType; +import a8k.type.ecode.AppCodeError; +import a8k.type.ecode.AppError; +import a8k.type.ecode.ConsumeNotEnoughError; +import a8k.type.ecode.HardwareError; import a8k.type.exception.AppException; +import a8k.type.reaction_result_type.ReactionResultStatus; +import a8k.type.type.BloodType; import a8k.utils.A8kPacketBuilder; +import a8k.utils.AppExceptionBuilder; import a8k.utils.ReactionPlate2DCodeHelper; +import a8k.utils.ZDateUtils; import jakarta.annotation.PostConstruct; import jakarta.annotation.Resource; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.List; @Component @@ -50,9 +71,12 @@ public class AppDebugHelperService { P22_PCTAndHsCRP p22_pctAndHsCRP; @Resource AppEventBusService eventBus; + @Resource + GStateService gstate; FakeProjInfo mountIdcard; + String[] consumables = new String[6]; ConsumablesErrorType[] consumablesErrorType = new ConsumablesErrorType[6]; @@ -149,6 +173,71 @@ public class AppDebugHelperService { Arrays.fill(consumables, ""); } + @ExtApiFn(name = "添加反应结果记录", group = "虚拟数据", order = 4) + public void addVirtualReactionRecord() { + ReactionRecordDBService service = SpringBootBeanUtil.getBean(ReactionRecordDBService.class); + ReactionResultRecord record = new ReactionResultRecord(); + + record.sampleBloodType = BloodType.WHOLE_BLOOD; + record.sampleBarcode = "XXXXXXXXXXXXXXX"; + record.sampleUserid = "ABCDEFG"; + record.projName = "hscrp"; + record.lotId = "CAHAC46U"; + record.projIndex = 1; + record.sampleId = "20120904_1"; + record.expiryDate = ZDateUtils.nextDay(); + record.operator = "admin"; // 操作员 + record.appVersion = gstate.getAppVersion();//上层应用版本 + record.mcuVersion = gstate.getMcuVersion(); // MCU软件版本 + record.sn = gstate.getSn(); // 仪器序列号 =; + record.subProjResultStatus1 = ReactionResultStatus.SUCCESS; + record.subProjResultStatus2 = ReactionResultStatus.ERROR_RESULT_OUT_OF_RANGE; + record.subProjResultStatus3 = ReactionResultStatus.ERROR_QUALITY_PEAK_DETECTION; + record.subProjResult1 = "12.3mg/L,12.5g/ml,125mol/L"; //子项目1 结果 + record.subProjResult2 = ""; //子项目2 结果 + record.subProjResult3 = ""; //子项目3 结果 + service.add(record); + } + //A8kEcodeContextListPromptEvent + //AppWarningNotifyEvent + //A8kErrorPromptEvent + //AppTubeholderSettingUpdateEvent + //DoA8kStepActionEvent + + + @ExtApiFn(name = "发送AppWarningNotifyEvent", group = "虚拟事件", order = 1) + public void buildAndSendAppWarningNotifyEvent() { + AppWarningNotifyEvent event = new AppWarningNotifyEvent(A8kEcode.UsrNotExitError); + eventBus.pushEvent(event); + } + + @ExtApiFn(name = "A8kErrorPromptEvent", group = "虚拟事件", order = 2) + public void buildAndSendA8kErrorPromptEvent() { + A8kErrorPromptEvent event = new A8kErrorPromptEvent(new ConsumeNotEnoughError("Hscrp")); + eventBus.pushEvent(event); + event = new A8kErrorPromptEvent(new AppCodeError("XXXX额外的错误说明XXXX")); + eventBus.pushEvent(event); + event = new A8kErrorPromptEvent(new HardwareError(A8kEcode.StepMotorOverVoltage, MId.HbotM, CmdId.step_motor_read_pos)); + eventBus.pushEvent(event); + } + + @ExtApiFn(name = "发送AppTubeholderSettingUpdateEvent", group = "虚拟事件", order = 3) + public void buildAndSendAppTubeholderSettingUpdateEvent() { + eventBus.pushEvent(new AppTubeholderSettingUpdateEvent()); + } + + @ExtApiFn(name = "发送DoA8kStepActionEvent", group = "虚拟事件", order = 4) + public void buildAndSendDoA8kStepActionEvent() { + eventBus.pushEvent(new DoA8kStepActionEvent(A8kActionStepType.SEQ1_ENTER_TUBEHOLDER_AND_SCAN)); + } + + @ExtApiFn(name = "发送A8kEcodeContextListPromptEvent", group = "虚拟事件", order = 5) + public void buildAndSendA8kEcodeContextListPromptEvent() { + List errorContexts = new ArrayList<>(); + errorContexts.add(new A8kErrorContext(A8kActionStepType.SEQ1_ENTER_TUBEHOLDER_AND_SCAN, new AppError(A8kEcode.TubeHolderTypeIsNotSupport))); + errorContexts.add(new A8kErrorContext(A8kActionStepType.SEQ5_PROCESS, new AppError(A8kEcode.NoTubeInHolder))); + eventBus.pushEvent(new A8kEcodeContextListPromptEvent(errorContexts)); + } //InterUse public Boolean getVirtualIDCard() { @@ -187,6 +276,7 @@ public class AppDebugHelperService { public ConsumableOneChResult scanOneCH(Integer ch) { + OS.forceSleep(1500); ConsumableOneChResult result = new ConsumableOneChResult(ch); switch (consumablesErrorType[ch]) { case PASS: //通过 diff --git a/src/main/java/a8k/type/ecode/AppError.java b/src/main/java/a8k/type/ecode/AppError.java index cf794e4..78620e0 100644 --- a/src/main/java/a8k/type/ecode/AppError.java +++ b/src/main/java/a8k/type/ecode/AppError.java @@ -4,9 +4,11 @@ import a8k.hardware.type.a8kcanprotocol.A8kEcode; public class AppError { public A8kEcode code; + public String errorType; public AppError(A8kEcode errorCode) { this.code = errorCode; + this.errorType = this.getClass().getSimpleName(); } public String toString() { diff --git a/src/main/java/a8k/type/ecode/ConsumeNotEnoughError.java b/src/main/java/a8k/type/ecode/ConsumeNotEnoughError.java index 6fb883d..b5b7436 100644 --- a/src/main/java/a8k/type/ecode/ConsumeNotEnoughError.java +++ b/src/main/java/a8k/type/ecode/ConsumeNotEnoughError.java @@ -3,11 +3,11 @@ package a8k.type.ecode; import a8k.hardware.type.a8kcanprotocol.A8kEcode; public class ConsumeNotEnoughError extends AppError { - public Integer projIndex; public String projName; - public ConsumeNotEnoughError(String projName, Integer projIndex) { + public ConsumeNotEnoughError(String projName) { super(A8kEcode.ConsumeNotEnough); + this.projName = projName; } } diff --git a/src/main/java/a8k/type/ecode/HardwareError.java b/src/main/java/a8k/type/ecode/HardwareError.java index 818e0dc..2900ad5 100644 --- a/src/main/java/a8k/type/ecode/HardwareError.java +++ b/src/main/java/a8k/type/ecode/HardwareError.java @@ -5,14 +5,12 @@ import a8k.hardware.type.a8kcanprotocol.CmdId; import a8k.hardware.type.a8kcanprotocol.MId; public class HardwareError extends AppError { - public MId mid; - public CmdId cmdId; + public MId mid; + public CmdId cmdId; public HardwareError(A8kEcode errorCode, MId mid, CmdId cmdId) { super(errorCode); + this.mid = mid; + this.cmdId = cmdId; } - - - - } diff --git a/src/main/java/a8k/type/reaction_result_type/ReactionResultStatus.java b/src/main/java/a8k/type/reaction_result_type/ReactionResultStatus.java index e191d35..371ffa4 100644 --- a/src/main/java/a8k/type/reaction_result_type/ReactionResultStatus.java +++ b/src/main/java/a8k/type/reaction_result_type/ReactionResultStatus.java @@ -9,5 +9,5 @@ public enum ReactionResultStatus { SUCCESS,// 成功 ERROR,// 结果异常 ERROR_RESULT_OUT_OF_RANGE,// 结果超出范围 - ERROR_DEPENDENT_VAR_OUT_OF_RANGE,// 依赖变量超出范围 + ERROR_QUALITY_PEAK_DETECTION,// 质峰检测错误 } diff --git a/src/main/java/a8k/utils/AppExceptionBuilder.java b/src/main/java/a8k/utils/AppExceptionBuilder.java index 6376974..5b15754 100644 --- a/src/main/java/a8k/utils/AppExceptionBuilder.java +++ b/src/main/java/a8k/utils/AppExceptionBuilder.java @@ -22,7 +22,7 @@ public class AppExceptionBuilder { public AppException buildConsumeNotEnoughError(Integer projIndex) { String projName = projConfigMgrService.getProjNameByLotId(projIndex); - return new AppException(new ConsumeNotEnoughError(projName, projIndex)); + return new AppException(new ConsumeNotEnoughError(projName)); } public AppException buildMutiErrorAppException(List errors) { diff --git a/src/main/java/a8k/utils/ZDateUtils.java b/src/main/java/a8k/utils/ZDateUtils.java index 624ea05..4482657 100644 --- a/src/main/java/a8k/utils/ZDateUtils.java +++ b/src/main/java/a8k/utils/ZDateUtils.java @@ -10,4 +10,8 @@ public class ZDateUtils { public static Date nextDay() { return addOneDay(new Date()); } + + public static Integer getTimestamp() { + return (int) (System.currentTimeMillis() / 1000); + } }