Browse Source

update

tags/v0
zhaohe 6 months ago
parent
commit
11214f2c6e
  1. 4
      src/main/java/a8k/app/dao/db/type/DeviceAdvanceSettingIterm.java
  2. 1
      src/main/java/a8k/app/dao/db/type/DeviceAdvancedSetting.java
  3. 8
      src/main/java/a8k/app/service/data/ProjIdCardInfoMgrService.java
  4. 5
      src/main/java/a8k/app/service/statemgr/GStateMgrService.java
  5. 24
      src/main/java/a8k/extui/mgr/ExtApiPageGroupCfgMgr.java
  6. 43
      src/main/java/a8k/extui/page/debug/P01ProjInfoDebugPage.java
  7. 296
      src/main/java/a8k/extui/page/debug/P02ConsumablesMgrDebugPage.java
  8. 25
      src/main/java/a8k/extui/page/debug/P02TubeSettingDebugPage.java
  9. 61
      src/main/java/a8k/extui/page/debug/P22UserOperaionInRunOnlyModePage.java
  10. 60
      src/main/java/a8k/extui/page/extapp/CodeGeneratorPage.java
  11. 128
      src/main/java/a8k/extui/page/extapp/UsrOperationSimulation.java
  12. 6
      src/main/java/a8k/extui/page/extapp/debug_assistant/FakeReactionRecordGeneratorPage.java
  13. 2
      src/main/java/a8k/extui/page/extapp/debug_assistant/FakeStateGeneratorPage.java
  14. 81
      src/main/java/a8k/extui/page/extapp/debug_assistant/IDCardDataGeneratorPage.java
  15. 2
      src/main/java/a8k/extui/page/extapp/debug_assistant/VirtualEventGeneratorPage.java

4
src/main/java/a8k/app/dao/db/type/DeviceAdvanceSettingIterm.java

@ -0,0 +1,4 @@
package a8k.app.dao.db.type;
public class DeviceAdvanceSettingIterm {
}

1
src/main/java/a8k/app/dao/db/type/DeviceAdvancedSetting.java

@ -0,0 +1 @@
package a8k.app.dao.db.type;

8
src/main/java/a8k/app/service/data/ProjIdCardInfoMgrService.java

@ -108,6 +108,14 @@ public class ProjIdCardInfoMgrService {
return projIDCardCtrlAndMonitorService.getMountedIdCardInfo();
}
public String getMountedLotId() {
var mountedProjInfoCard = getMountedProjInfoCard();
if (mountedProjInfoCard == null) {
return "";
}
return mountedProjInfoCard.lotId;
}
//
//VERIFY

5
src/main/java/a8k/app/service/statemgr/GStateMgrService.java

@ -60,6 +60,11 @@ public class GStateMgrService {
}
}
public synchronized void checkIfIsInVirtualModeOrRunOnlyMode() throws AppException {
if (isInMode(DeviceRunMode.VirtualMode, DeviceRunMode.RunOnlyMode)) {
throw AppException.of(A8kEcode.CODEERROR, "只有在虚拟模式,或者空转模式,才能进行当前操作");
}
}
@PostConstruct
public void init() {

24
src/main/java/a8k/extui/mgr/ExtApiPageGroupCfgMgr.java

@ -3,10 +3,10 @@ package a8k.extui.mgr;
import a8k.app.utils.ZList;
import a8k.extui.page.debug.*;
import a8k.extui.page.extapp.*;
import a8k.extui.page.extapp.debug_assistant.IDCardDataGeneratorPage;
import a8k.extui.page.extsetting.db.DeviceActionParameterSettingPage;
import a8k.extui.page.extsetting.db.ProjInfoMgrPage;
import a8k.extui.page.extsetting.db.ReactionRecordMgrDebugPage;
import a8k.extui.page.init.BackgroudProcessCtrlPage;
import a8k.extui.page.init.DeviceInitPage;
import a8k.extui.page.measurement.*;
import a8k.extui.page.test.driver.LowLevelBoardVersionPreviewPage;
@ -15,9 +15,9 @@ import a8k.extui.page.test.codetest.OptFormulaTestPage;
import a8k.extui.page.test.codetest.OptFormulaTestPageV2;
import a8k.extui.page.test.driver.MotorCtrlPage;
import a8k.extui.page.test.driver.PipetteCtrlDriverPage;
import a8k.extui.page.test.frond_end_test.FakeReactionRecordGeneratorPage;
import a8k.extui.page.extapp.debug_assistant.FakeReactionRecordGeneratorPage;
import a8k.extui.page.test.frond_end_test.VirtualEventGeneratorPage;
import a8k.extui.page.extapp.debug_assistant.VirtualEventGeneratorPage;
import a8k.extui.page.extsetting.pos_calibration.*;
import a8k.extui.page.test.stress_test.PipetteGunStressTest;
import a8k.extui.page.test.verification.*;
@ -142,8 +142,7 @@ public class ExtApiPageGroupCfgMgr {
new Menu(P02ConsumablesMgrDebugPage.class, "耗材"),
new Menu(P01EmergencyTubeDebugPage.class, "急诊"),
new Menu(P02TubeSettingDebugPage.class, "试管配置"),
new Menu(P01ProjInfoDebugPage.class, "ID卡操作"),
new Menu(P22UserOperaionInRunOnlyModePage.class, "空转模式用户操作")
new Menu(P01ProjInfoDebugPage.class, "ID卡操作")
)));
pushMenu(new Menu("子模块管理", ZList.of(
@ -154,10 +153,7 @@ public class ExtApiPageGroupCfgMgr {
pushMenu(new Menu("高级应用", ZList.of(
new Menu("前端测试助手", ZList.of(
new Menu(FakeReactionRecordGeneratorPage.class, "虚拟反应记录生成"),
new Menu(VirtualEventGeneratorPage.class, "虚拟事件生成")
)),
new Menu("光学标定与验证", ZList.of(
new Menu(A8kOptVerification.class, "光学模组验证"),
new Menu(OptModuleParamCalibration.class, "光学模块参数校准"),
@ -192,9 +188,17 @@ public class ExtApiPageGroupCfgMgr {
new Menu("代码测试", ZList.of(
new Menu(OptFormulaTestPageV2.class, "光学公式测试1"),
new Menu(OptFormulaTestPage.class, "光学公式测试2")
))
)),
new Menu("前端测试助手", ZList.of(
new Menu(FakeReactionRecordGeneratorPage.class, "虚拟反应记录生成"),
new Menu(VirtualEventGeneratorPage.class, "虚拟事件生成"),
new Menu(IDCardDataGeneratorPage.class, "ID卡数据生成器")
)),
new Menu(UsrOperationSimulation.class, "用户行为模拟器"),
new Menu(CodeGeneratorPage.class, "条码字符生成工具")
)));
////////////////////////////////////////////////////////////////////////////////////////////
}

43
src/main/java/a8k/extui/page/debug/P01ProjInfoDebugPage.java

@ -102,36 +102,6 @@ public class P01ProjInfoDebugPage {
@Resource
ProjIDCardCtrlAndMonitorService projIDCardCtrlAndMonitorService;
public void insertVirtualIdCard(Integer projId, String lotId) throws AppException {
gstate.checkIfIsInVirtualMode();
ProjExtInfoCard newInfoCard = ProjExtInfoCardFactory.buildProjExtInfoCard(projId, lotId);
projIDCardCtrlAndMonitorService.setVirtualMountedIdCardInfo(newInfoCard);
}
public void removeVirtualIdCard() throws AppException {
gstate.checkIfIsInVirtualMode();
projIDCardCtrlAndMonitorService.setVirtualMountedIdCardInfo(null);
}
public String createPlateBox2dCodeByIDCard() {
if (projIdCardInfoMgrService.getMountedProjInfoCard() == null) {
return "没有挂载的项目卡信息";
}
String lotId = projIdCardInfoMgrService.getMountedProjInfoCard().lotId;
return ReactionPlate2DCodeHelper.build2DCode(lotId);
}
public String createLittleBuffer2dCodeByIDCard() {
if (projIdCardInfoMgrService.getMountedProjInfoCard() == null) {
return "没有挂载的项目卡信息";
}
return projIdCardInfoMgrService.getMountedProjInfoCard().lotId;
}
@Resource
ExtApiPageMgr extApiPageMgr;
@PostConstruct
@ -139,20 +109,17 @@ public class P01ProjInfoDebugPage {
var page = extApiPageMgr.newPage(this);
page.newGroup("新建ID卡信息");
page.addFunction("保存挂载的项目信息", this::saveMountedProjInfoCard);
page.addFunction("添加所有项目的假项目信息", this::addAllProjFakeProjInfoCard);
page.addFunction("添加指定项目的假项目信息", this::addProjFakeProjInfoCard);
page.newGroup("查询ID卡信息");
page.addFunction("获取列表", this::getBreifAll);
page.addFunction("通过ProjID查询详细信息", this::getByProjId);
page.addFunction("通过LotID查询详细信息", this::getByLotId);
page.newGroup("删除");
page.addFunction("删除所有", this::deleteAll);
page.newGroup("ID卡模拟操作(虚拟模式)");
page.addFunction("插入ID卡", this::insertVirtualIdCard);
page.addFunction("拔出ID卡", this::removeVirtualIdCard);
page.newGroup("二维码生成");
page.addFunction("生成反应板二维码(参考)", this::createPlateBox2dCodeByIDCard);
page.addFunction("生成缓冲液二维码(参考)", this::createLittleBuffer2dCodeByIDCard);
page.newGroup("调试助手");
page.addFunction("添加所有项目的假项目信息", this::addAllProjFakeProjInfoCard);
page.addFunction("添加指定项目的假项目信息", this::addProjFakeProjInfoCard);
extApiPageMgr.addPage(page);

296
src/main/java/a8k/extui/page/debug/P02ConsumablesMgrDebugPage.java

@ -41,113 +41,241 @@ public class P02ConsumablesMgrDebugPage {
GStateMgrService gstate;
@ExtApiStatu(name = "", group = "耗材-反应板状态1", minWidth = "16%", order = 1)
public ReactionPlateGroup getReactionPlateGroupState0() {
return consumablesMgrService.getState().reactionPlateGroup[0];
// @ExtApiStatu(name = "", group = "反应板状态1", minWidth = "16%", order = 1)
// public ReactionPlateGroup getReactionPlateGroupState0() {
// return consumablesMgrService.getState().reactionPlateGroup[0];
// }
//
// @ExtApiStatu(name = "", group = "反应板状态2", minWidth = "16%", order = 2)
// public ReactionPlateGroup getReactionPlateGroupState1() {
// return consumablesMgrService.getState().reactionPlateGroup[1];
// }
//
// @ExtApiStatu(name = "", group = "反应板状态3", minWidth = "16%", order = 3)
// public ReactionPlateGroup getReactionPlateGroupState2() {
// return consumablesMgrService.getState().reactionPlateGroup[2];
// }
//
// @ExtApiStatu(name = "", group = "反应板状态4", minWidth = "16%", order = 4)
// public ReactionPlateGroup getReactionPlateGroupState3() {
// return consumablesMgrService.getState().reactionPlateGroup[3];
// }
//
// @ExtApiStatu(name = "", group = "反应板状态5", minWidth = "16%", order = 5)
// public ReactionPlateGroup getReactionPlateGroupState4() {
// return consumablesMgrService.getState().reactionPlateGroup[4];
// }
//
// @ExtApiStatu(name = "", group = "反应板状态6", minWidth = "16%", order = 6)
// public ReactionPlateGroup getReactionPlateGroupState5() {
// return consumablesMgrService.getState().reactionPlateGroup[5];
// }
//
//
// // LittBottleGroup
// @ExtApiStatu(name = "", group = "小瓶缓冲液1", minWidth = "16%", order = 7)
// public LittBottleGroup getLittBottleGroupState0() {
// return consumablesMgrService.getState().littBottleGroup[0];
// }
//
// @ExtApiStatu(name = "", group = "小瓶缓冲液2", minWidth = "16%", order = 8)
// public LittBottleGroup getLittBottleGroupState1() {
// return consumablesMgrService.getState().littBottleGroup[1];
// }
//
// @ExtApiStatu(name = "", group = "小瓶缓冲液3", minWidth = "16%", order = 9)
// public LittBottleGroup getLittBottleGroupState2() {
// return consumablesMgrService.getState().littBottleGroup[2];
// }
//
// @ExtApiStatu(name = "", group = "小瓶缓冲液4", minWidth = "16%", order = 10)
// public LittBottleGroup getLittBottleGroupState3() {
// return consumablesMgrService.getState().littBottleGroup[3];
// }
//
// @ExtApiStatu(name = "", group = "小瓶缓冲液5", minWidth = "16%", order = 11)
// public LittBottleGroup getLittBottleGroupState4() {
// return consumablesMgrService.getState().littBottleGroup[4];
// }
//
// @ExtApiStatu(name = "", group = "小瓶缓冲液6", minWidth = "16%", order = 12)
// public LittBottleGroup getLittBottleGroupState5() {
// return consumablesMgrService.getState().littBottleGroup[5];
// }
//
//
// // LarBottleGroup
// @ExtApiStatu(name = "", group = "大瓶缓冲液1", minWidth = "16%", order = 13)
// public LarBottleGroup getLarBottleGroupState0() {
// return consumablesMgrService.getState().larBottleGroup[0];
// }
//
// @ExtApiStatu(name = "", group = "大瓶缓冲液2", minWidth = "16%", order = 14)
// public LarBottleGroup getLarBottleGroupState1() {
// return consumablesMgrService.getState().larBottleGroup[1];
// }
//
// @ExtApiStatu(name = "", group = "大瓶缓冲液3", minWidth = "16%", order = 15)
// public LarBottleGroup getLarBottleGroupState2() {
// return consumablesMgrService.getState().larBottleGroup[2];
// }
//
// @ExtApiStatu(name = "", group = "大瓶缓冲液4", minWidth = "16%", order = 16)
// public LarBottleGroup getLarBottleGroupState3() {
// return consumablesMgrService.getState().larBottleGroup[3];
// }
//
// @ExtApiStatu(name = "", group = "大瓶缓冲液5", minWidth = "16%", order = 17)
// public LarBottleGroup getLarBottleGroupState4() {
// return consumablesMgrService.getState().larBottleGroup[4];
// }
//
// @ExtApiStatu(name = "", group = "大瓶缓冲液6", minWidth = "16%", order = 18)
// public LarBottleGroup getLarBottleGroupState5() {
// return consumablesMgrService.getState().larBottleGroup[5];
// }
//
// @ExtApiStatu(name = "", group = "Tip状态1", minWidth = "16%", order = 19)
// public Tips getTipState0() {
// return consumablesMgrService.getState().tips[0];
// }
//
// @ExtApiStatu(name = "", group = "耗材-Tip状态2", minWidth = "16%", order = 20)
// public Tips getTipState1() {
// return consumablesMgrService.getState().tips[1];
// }
//
// @ExtApiStatu(name = "", group = "耗材-Tip状态3", minWidth = "16%", order = 21)
// public Tips getTipState2() {
// return consumablesMgrService.getState().tips[2];
// }
//
//
//
String formatState(ReactionPlateGroup state) {
return String.format("%s %s [%d/25]", state.projName, state.lotId, state.num);
}
String formatState(LittBottleGroup state) {
return String.format("%s %s [%d/25]", state.projName, state.lotId, state.num);
}
@ExtApiStatu(name = "", group = "耗材-反应板状态2", minWidth = "16%", order = 2)
public ReactionPlateGroup getReactionPlateGroupState1() {
return consumablesMgrService.getState().reactionPlateGroup[1];
String formatState(LarBottleGroup state) {
return String.format("%s %s [%d/25]", state.projName, state.lotId, state.num);
}
@ExtApiStatu(name = "", group = "耗材-反应板状态3", minWidth = "16%", order = 3)
public ReactionPlateGroup getReactionPlateGroupState2() {
return consumablesMgrService.getState().reactionPlateGroup[2];
@ExtApiStatu(name = "", group = "反应板状态1", minWidth = "33%", order = 100)
public String getReactionPlateGroupState0() {
return formatState(consumablesMgrService.getState().reactionPlateGroup[0]);
}
@ExtApiStatu(name = "", group = "反应板状态2", minWidth = "33%", order = 200)
public String getReactionPlateGroupState1() {
return formatState(consumablesMgrService.getState().reactionPlateGroup[1]);
}
@ExtApiStatu(name = "", group = "耗材-反应板状态4", minWidth = "16%", order = 4)
public ReactionPlateGroup getReactionPlateGroupState3() {
return consumablesMgrService.getState().reactionPlateGroup[3];
@ExtApiStatu(name = "", group = "反应板状态3", minWidth = "33%", order = 300)
public String getReactionPlateGroupState2() {
return formatState(consumablesMgrService.getState().reactionPlateGroup[2]);
}
@ExtApiStatu(name = "", group = "耗材-反应板状态5", minWidth = "16%", order = 5)
public ReactionPlateGroup getReactionPlateGroupState4() {
return consumablesMgrService.getState().reactionPlateGroup[4];
@ExtApiStatu(name = "", group = "反应板状态4", minWidth = "33%", order = 400)
public String getReactionPlateGroupState3() {
return formatState(consumablesMgrService.getState().reactionPlateGroup[3]);
}
@ExtApiStatu(name = "", group = "耗材-反应板状态6", minWidth = "16%", order = 6)
public ReactionPlateGroup getReactionPlateGroupState5() {
return consumablesMgrService.getState().reactionPlateGroup[5];
@ExtApiStatu(name = "", group = "反应板状态5", minWidth = "33%", order = 500)
public String getReactionPlateGroupState4() {
return formatState(consumablesMgrService.getState().reactionPlateGroup[4]);
}
@ExtApiStatu(name = "", group = "反应板状态6", minWidth = "33%", order = 600)
public String getReactionPlateGroupState5() {
return formatState(consumablesMgrService.getState().reactionPlateGroup[5]);
}
// LittBottleGroup
@ExtApiStatu(name = "", group = "耗材-小瓶缓冲液1", minWidth = "16%", order = 7)
public LittBottleGroup getLittBottleGroupState0() {
return consumablesMgrService.getState().littBottleGroup[0];
@ExtApiStatu(name = "", group = "小瓶缓冲液1", minWidth = "33%", order = 101)
public String getLittBottleGroupState0() {
return formatState(consumablesMgrService.getState().littBottleGroup[0]);
}
@ExtApiStatu(name = "", group = "耗材-小瓶缓冲液2", minWidth = "16%", order = 8)
public LittBottleGroup getLittBottleGroupState1() {
return consumablesMgrService.getState().littBottleGroup[1];
@ExtApiStatu(name = "", group = "小瓶缓冲液2", minWidth = "33%", order = 201)
public String getLittBottleGroupState1() {
return formatState(consumablesMgrService.getState().littBottleGroup[1]);
}
@ExtApiStatu(name = "", group = "耗材-小瓶缓冲液3", minWidth = "16%", order = 9)
public LittBottleGroup getLittBottleGroupState2() {
return consumablesMgrService.getState().littBottleGroup[2];
@ExtApiStatu(name = "", group = "小瓶缓冲液3", minWidth = "33%", order = 301)
public String getLittBottleGroupState2() {
return formatState(consumablesMgrService.getState().littBottleGroup[2]);
}
@ExtApiStatu(name = "", group = "耗材-小瓶缓冲液4", minWidth = "16%", order = 10)
public LittBottleGroup getLittBottleGroupState3() {
return consumablesMgrService.getState().littBottleGroup[3];
@ExtApiStatu(name = "", group = "小瓶缓冲液4", minWidth = "33%", order = 401)
public String getLittBottleGroupState3() {
return formatState(consumablesMgrService.getState().littBottleGroup[3]);
}
@ExtApiStatu(name = "", group = "耗材-小瓶缓冲液5", minWidth = "16%", order = 11)
public LittBottleGroup getLittBottleGroupState4() {
return consumablesMgrService.getState().littBottleGroup[4];
@ExtApiStatu(name = "", group = "小瓶缓冲液5", minWidth = "33%", order = 501)
public String getLittBottleGroupState4() {
return formatState(consumablesMgrService.getState().littBottleGroup[4]);
}
@ExtApiStatu(name = "", group = "耗材-小瓶缓冲液6", minWidth = "16%", order = 12)
public LittBottleGroup getLittBottleGroupState5() {
return consumablesMgrService.getState().littBottleGroup[5];
@ExtApiStatu(name = "", group = "小瓶缓冲液6", minWidth = "33%", order = 601)
public String getLittBottleGroupState5() {
return formatState(consumablesMgrService.getState().littBottleGroup[5]);
}
// LarBottleGroup
@ExtApiStatu(name = "", group = "耗材-大瓶缓冲液1", minWidth = "16%", order = 13)
public LarBottleGroup getLarBottleGroupState0() {
return consumablesMgrService.getState().larBottleGroup[0];
@ExtApiStatu(name = "", group = "大瓶缓冲液1", minWidth = "33%", order = 102)
public String getLarBottleGroupState0() {
return formatState(consumablesMgrService.getState().larBottleGroup[0]);
}
@ExtApiStatu(name = "", group = "耗材-大瓶缓冲液2", minWidth = "16%", order = 14)
public LarBottleGroup getLarBottleGroupState1() {
return consumablesMgrService.getState().larBottleGroup[1];
@ExtApiStatu(name = "", group = "大瓶缓冲液2", minWidth = "33%", order = 202)
public String getLarBottleGroupState1() {
return formatState(consumablesMgrService.getState().larBottleGroup[1]);
}
@ExtApiStatu(name = "", group = "耗材-大瓶缓冲液3", minWidth = "16%", order = 15)
public LarBottleGroup getLarBottleGroupState2() {
return consumablesMgrService.getState().larBottleGroup[2];
@ExtApiStatu(name = "", group = "大瓶缓冲液3", minWidth = "33%", order = 302)
public String getLarBottleGroupState2() {
return formatState(consumablesMgrService.getState().larBottleGroup[2]);
}
@ExtApiStatu(name = "", group = "耗材-大瓶缓冲液4", minWidth = "16%", order = 16)
public LarBottleGroup getLarBottleGroupState3() {
return consumablesMgrService.getState().larBottleGroup[3];
@ExtApiStatu(name = "", group = "大瓶缓冲液4", minWidth = "33%", order = 402)
public String getLarBottleGroupState3() {
return formatState(consumablesMgrService.getState().larBottleGroup[3]);
}
@ExtApiStatu(name = "", group = "耗材-大瓶缓冲液5", minWidth = "16%", order = 17)
public LarBottleGroup getLarBottleGroupState4() {
return consumablesMgrService.getState().larBottleGroup[4];
@ExtApiStatu(name = "", group = "大瓶缓冲液5", minWidth = "33%", order = 502)
public String getLarBottleGroupState4() {
return formatState(consumablesMgrService.getState().larBottleGroup[4]);
}
@ExtApiStatu(name = "", group = "耗材-大瓶缓冲液6", minWidth = "16%", order = 18)
public LarBottleGroup getLarBottleGroupState5() {
return consumablesMgrService.getState().larBottleGroup[5];
@ExtApiStatu(name = "", group = "大瓶缓冲液6", minWidth = "33%", order = 602)
public String getLarBottleGroupState5() {
return formatState(consumablesMgrService.getState().larBottleGroup[5]);
}
@ExtApiStatu(name = "", group = "耗材-Tip状态1", minWidth = "16%", order = 19)
public Tips getTipState0() {
return consumablesMgrService.getState().tips[0];
@ExtApiStatu(name = "", group = "Tip状态1", minWidth = "16%", order = 701)
public String getTipState0() {
return String.format("[%d/%d]", consumablesMgrService.getState().tips[0].tipNum, consumablesMgrService.getState().tips[0].totalNum);
}
@ExtApiStatu(name = "", group = "耗材-Tip状态2", minWidth = "16%", order = 20)
public Tips getTipState1() {
return consumablesMgrService.getState().tips[1];
@ExtApiStatu(name = "", group = "Tip状态2", minWidth = "16%", order = 702)
public String getTipState1() {
return String.format("[%d/%d]", consumablesMgrService.getState().tips[1].tipNum, consumablesMgrService.getState().tips[1].totalNum);
}
@ExtApiStatu(name = "", group = "耗材-Tip状态3", minWidth = "16%", order = 21)
public Tips getTipState2() {
return consumablesMgrService.getState().tips[2];
@ExtApiStatu(name = "", group = "Tip状态3", minWidth = "16%", order = 703)
public String getTipState2() {
return String.format("[%d/%d]", consumablesMgrService.getState().tips[2].tipNum, consumablesMgrService.getState().tips[2].totalNum);
}
@ -172,9 +300,9 @@ public class P02ConsumablesMgrDebugPage {
consumablesMgrService.unInstallAllConsumable();
}
// public ConsumablesOneChannelScanResultPacket scanOneConsumables(ConsumableGroup group) throws AppException {
// return appConsumablesScanService.scanOneGroupConsumables(group);
// }
// public ConsumablesOneChannelScanResultPacket scanOneConsumables(ConsumableGroup group) throws AppException {
// return appConsumablesScanService.scanOneGroupConsumables(group);
// }
public void setTipNum(TipGroup tipGroup, Integer tiNum) throws AppException {
consumablesMgrService.setTipNum(tipGroup, tiNum);
@ -210,34 +338,17 @@ public class P02ConsumablesMgrDebugPage {
}
@Resource
TestStateMgrService testStateMgrService;
//
// 耗材模拟操作
//
public void putInVirtualConsumable(ConsumableGroup group, String lotid) throws AppException {
gstate.checkIfIsInVirtualMode();
testStateMgrService.putVirtualConsumable(group.off, lotid);
}
public void takeAwayVirtualConsumable() throws AppException {
gstate.checkIfIsInVirtualMode();
testStateMgrService.takeAwayVirtualConsumable(0);
testStateMgrService.takeAwayVirtualConsumable(1);
testStateMgrService.takeAwayVirtualConsumable(2);
testStateMgrService.takeAwayVirtualConsumable(3);
testStateMgrService.takeAwayVirtualConsumable(4);
testStateMgrService.takeAwayVirtualConsumable(5);
}
@PostConstruct
public void init() {
var page = extApiPageMgr.newPage(this);
page.newGroup("耗材操作");
page.newGroup("自动挂载耗材");
page.addFunction("扫描耗材", this::scanConsumables);
// page.addFunction("扫描耗材(单通道)", this::scanOneConsumables);
page.newGroup("手动挂载耗材");
page.addFunction("挂载耗材", this::loadConsumablesManual).setParamVal("lotid", () -> projIdCardInfoMgrService.getMountedLotId());
page.newGroup("耗材数量设置");
page.addFunction("设置Tip数量", this::setTipNum);
page.addFunction("设置耗材数量", this::setConsumableNum);
@ -245,13 +356,6 @@ public class P02ConsumablesMgrDebugPage {
page.addFunction("卸载耗材", this::unInstallConsumable);
page.addFunction("卸载耗材(全部)", this::unInstallAllConsumable);
page.newGroup("辅助调试");
page.addFunction("手动加载耗材", this::loadConsumablesManual);
page.addFunction("手动加载挂载项目卡耗材", this::loadMountProjIDCardConsumablesManual);
page.newGroup("虚拟模式用户操作");
page.addFunction("放入虚拟耗材", this::putInVirtualConsumable);
page.addFunction("拿走虚拟耗材", this::takeAwayVirtualConsumable);
extApiPageMgr.addPage(page);

25
src/main/java/a8k/extui/page/debug/P02TubeSettingDebugPage.java

@ -122,28 +122,6 @@ public class P02TubeSettingDebugPage {
}
//
// 样本模拟操作
//
@Resource
TestStateMgrService testStateMgrService;
public void putInVirtualBloodTubeHolder() throws AppException {
gstate.checkIfIsInVirtualMode();
TubeHolderScanResult scanResult = new TubeHolderScanResult();
scanResult.tubeHolderType = A8kTubeHolderType.BloodTube.scanCode;
scanResult.tube[0] = new TubesScanResult(true, true, "");
scanResult.tube[1] = new TubesScanResult(true, true, "");
scanResult.tube[2] = new TubesScanResult(true, true, "");
scanResult.tube[3] = new TubesScanResult(true, true, "");
scanResult.tube[4] = new TubesScanResult(true, true, "");
scanResult.tube[5] = new TubesScanResult(true, true, "");
scanResult.tube[6] = new TubesScanResult(true, true, "");
scanResult.tube[7] = new TubesScanResult(true, true, "");
scanResult.tube[8] = new TubesScanResult(true, true, "");
scanResult.tube[9] = new TubesScanResult(true, true, "");
testStateMgrService.insertVirtualBloodTubeHolder(scanResult);
}
@Resource
ExtApiPageMgr extApiPageMgr;
@ -168,9 +146,6 @@ public class P02TubeSettingDebugPage {
page.addFunction("设置项目ID", this::setTubeSettingProjId);
page.addFunction("设置血液类型", this::setTubeSettingBloodType);
page.newGroup("样本模拟操作");
page.addFunction("放入一个全血高试管架", this::putInVirtualBloodTubeHolder);
extApiPageMgr.addPage(page);
}
}

61
src/main/java/a8k/extui/page/debug/P22UserOperaionInRunOnlyModePage.java

@ -1,61 +0,0 @@
package a8k.extui.page.debug;
import a8k.app.a8ktype.DeviceRunMode;
import a8k.app.a8ktype.device.A8kTubeHolderType;
import a8k.app.a8ktype.exception.AppException;
import a8k.app.a8ktype.type.TubeHolderScanResult;
import a8k.app.a8ktype.type.TubesScanResult;
import a8k.app.hardware.type.a8kcanprotocol.A8kEcode;
import a8k.app.service.statemgr.GStateMgrService;
import a8k.extui.mgr.ExtApiPageMgr;
import a8k.extui.type.ExtUIPageCfg;
import a8k.teststate.TestStateMgrService;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Component;
@Component
public class P22UserOperaionInRunOnlyModePage {
@Resource
GStateMgrService gstate;
@Resource
TestStateMgrService testStateMgrService;
@Resource
ExtApiPageMgr extApiPageMgr;
@PostConstruct
void init() {
ExtUIPageCfg page = new ExtUIPageCfg(this);
page.newGroup("样本模拟操作");
page.addFunction("放入一个全血高试管架(10个试管)", this::putInVirtualBloodTubeHolder);
extApiPageMgr.addPage(page);
}
private void checkInRunOnlyMode() throws AppException {
if (!gstate.getDeviceRunMode().equals(DeviceRunMode.RunOnlyMode)) {
throw AppException.of(A8kEcode.CODEERROR, "只有在空转模式下才能进行当前操作");
}
}
//
// 样本模拟操作
//
public void putInVirtualBloodTubeHolder() throws AppException {
checkInRunOnlyMode();
TubeHolderScanResult scanResult = new TubeHolderScanResult();
scanResult.tubeHolderType = A8kTubeHolderType.BloodTube.scanCode;
scanResult.tube[0] = new TubesScanResult(true, true, "");
scanResult.tube[1] = new TubesScanResult(true, true, "");
scanResult.tube[2] = new TubesScanResult(true, true, "");
scanResult.tube[3] = new TubesScanResult(true, true, "");
scanResult.tube[4] = new TubesScanResult(true, true, "");
scanResult.tube[5] = new TubesScanResult(true, true, "");
scanResult.tube[6] = new TubesScanResult(true, true, "");
scanResult.tube[7] = new TubesScanResult(true, true, "");
scanResult.tube[8] = new TubesScanResult(true, true, "");
scanResult.tube[9] = new TubesScanResult(true, true, "");
testStateMgrService.insertVirtualBloodTubeHolder(scanResult);
}
}

60
src/main/java/a8k/extui/page/extapp/CodeGeneratorPage.java

@ -0,0 +1,60 @@
package a8k.extui.page.extapp;
import a8k.app.a8ktype.exception.AppException;
import a8k.app.dao.db.type.A8kProjInfoCardBreif;
import a8k.app.dao.db.type.ProjExtInfoCard;
import a8k.app.factory.ProjExtInfoCardFactory;
import a8k.app.service.data.ProjIdCardInfoMgrService;
import a8k.app.service.data.ProjInfoMgrService;
import a8k.app.service.statemgr.GStateMgrService;
import a8k.app.utils.ProjBuildinInfo;
import a8k.app.utils.ReactionPlate2DCodeHelper;
import a8k.app.utils.ZDateUtils;
import a8k.extui.mgr.ExtApiPageMgr;
import a8k.extui.type.ExtApiStatu;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component
@Slf4j
public class CodeGeneratorPage {
@Resource
ProjIdCardInfoMgrService projIdCardInfoMgrService;
public String createPlateBox2dCodeByIDCard() {
if (projIdCardInfoMgrService.getMountedProjInfoCard() == null) {
return "没有挂载的项目卡信息";
}
String lotId = projIdCardInfoMgrService.getMountedProjInfoCard().lotId;
return ReactionPlate2DCodeHelper.build2DCode(lotId);
}
public String createLittleBuffer2dCodeByIDCard() {
if (projIdCardInfoMgrService.getMountedProjInfoCard() == null) {
return "没有挂载的项目卡信息";
}
return projIdCardInfoMgrService.getMountedProjInfoCard().lotId;
}
@Resource
ExtApiPageMgr extApiPageMgr;
@PostConstruct
public void init() {
var page = extApiPageMgr.newPage(this);
page.newGroup("二维码生成");
page.addFunction("生成反应板二维码(参考)", this::createPlateBox2dCodeByIDCard);
page.addFunction("生成缓冲液二维码(参考)", this::createLittleBuffer2dCodeByIDCard);
extApiPageMgr.addPage(page);
}
}

128
src/main/java/a8k/extui/page/extapp/UsrOperationSimulation.java

@ -0,0 +1,128 @@
package a8k.extui.page.extapp;
import a8k.app.a8ktype.DeviceRunMode;
import a8k.app.a8ktype.device.A8kTubeHolderType;
import a8k.app.a8ktype.device.ConsumableGroup;
import a8k.app.a8ktype.device.TipGroup;
import a8k.app.a8ktype.device.consumables.LarBottleGroup;
import a8k.app.a8ktype.device.consumables.LittBottleGroup;
import a8k.app.a8ktype.device.consumables.ReactionPlateGroup;
import a8k.app.a8ktype.device.consumables.Tips;
import a8k.app.a8ktype.error.ConsumablesScanReportErrorType;
import a8k.app.a8ktype.exception.AppException;
import a8k.app.a8ktype.type.ConsumablesScanReport;
import a8k.app.a8ktype.type.ConsumablesScanResultPacket;
import a8k.app.a8ktype.type.TubeHolderScanResult;
import a8k.app.a8ktype.type.TubesScanResult;
import a8k.app.dao.db.type.ProjExtInfoCard;
import a8k.app.factory.ProjExtInfoCardFactory;
import a8k.app.hardware.type.a8kcanprotocol.A8kEcode;
import a8k.app.service.data.ProjIdCardInfoMgrService;
import a8k.app.service.data.ProjInfoMgrService;
import a8k.app.service.lowerctrl.ProjIDCardCtrlAndMonitorService;
import a8k.app.service.mainctrl.AppConsumablesScanService;
import a8k.app.service.statemgr.ConsumablesMgrService;
import a8k.app.service.statemgr.GStateMgrService;
import a8k.extui.mgr.ExtApiPageMgr;
import a8k.extui.type.ExtApiStatu;
import a8k.teststate.TestStateMgrService;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Component;
@Component
public class UsrOperationSimulation {
@Resource
ConsumablesMgrService consumablesMgrService;
@Resource
AppConsumablesScanService appConsumablesScanService;
@Resource
ProjIdCardInfoMgrService projIdCardInfoMgrService;
@Resource
GStateMgrService gstate;
@Resource
ProjInfoMgrService projInfoMgrService;
@Resource
ExtApiPageMgr extApiPageMgr;
@Resource
TestStateMgrService testStateMgrService;
//
// 耗材模拟操作
//
public void putInVirtualConsumable(ConsumableGroup group, String lotid) throws AppException {
gstate.checkIfIsInVirtualMode();
testStateMgrService.putVirtualConsumable(group.off, lotid);
}
public void takeAwayVirtualConsumable() throws AppException {
gstate.checkIfIsInVirtualMode();
testStateMgrService.takeAwayVirtualConsumable(0);
testStateMgrService.takeAwayVirtualConsumable(1);
testStateMgrService.takeAwayVirtualConsumable(2);
testStateMgrService.takeAwayVirtualConsumable(3);
testStateMgrService.takeAwayVirtualConsumable(4);
testStateMgrService.takeAwayVirtualConsumable(5);
}
//
// 样本模拟操作
//
public void putInVirtualBloodTubeHolder() throws AppException {
gstate.checkIfIsInVirtualModeOrRunOnlyMode();
TubeHolderScanResult scanResult = new TubeHolderScanResult();
scanResult.tubeHolderType = A8kTubeHolderType.BloodTube.scanCode;
scanResult.tube[0] = new TubesScanResult(true, true, "");
scanResult.tube[1] = new TubesScanResult(true, true, "");
scanResult.tube[2] = new TubesScanResult(true, true, "");
scanResult.tube[3] = new TubesScanResult(true, true, "");
scanResult.tube[4] = new TubesScanResult(true, true, "");
scanResult.tube[5] = new TubesScanResult(true, true, "");
scanResult.tube[6] = new TubesScanResult(true, true, "");
scanResult.tube[7] = new TubesScanResult(true, true, "");
scanResult.tube[8] = new TubesScanResult(true, true, "");
scanResult.tube[9] = new TubesScanResult(true, true, "");
testStateMgrService.insertVirtualBloodTubeHolder(scanResult);
}
@Resource
ProjIDCardCtrlAndMonitorService projIDCardCtrlAndMonitorService;
public void insertVirtualIdCard(Integer projId, String lotId) throws AppException {
gstate.checkIfIsInVirtualMode();
ProjExtInfoCard newInfoCard = ProjExtInfoCardFactory.buildProjExtInfoCard(projId, lotId);
projIDCardCtrlAndMonitorService.setVirtualMountedIdCardInfo(newInfoCard);
}
public void removeVirtualIdCard() throws AppException {
gstate.checkIfIsInVirtualMode();
projIDCardCtrlAndMonitorService.setVirtualMountedIdCardInfo(null);
}
@PostConstruct
public void init() {
var page = extApiPageMgr.newPage(this);
page.newGroup("耗材操作行为");
page.addFunction("放入虚拟耗材", this::putInVirtualConsumable);
page.addFunction("拿走虚拟耗材", this::takeAwayVirtualConsumable);
page.newGroup("ID卡");
page.addFunction("插入ID卡", this::insertVirtualIdCard);
page.addFunction("拔出ID卡", this::removeVirtualIdCard);
page.newGroup("样本模拟操作");
page.addFunction("放入一个全血高试管架", this::putInVirtualBloodTubeHolder);
extApiPageMgr.addPage(page);
}
}

6
src/main/java/a8k/extui/page/test/frond_end_test/FakeReactionRecordGeneratorPage.java → src/main/java/a8k/extui/page/extapp/debug_assistant/FakeReactionRecordGeneratorPage.java

@ -1,14 +1,11 @@
package a8k.extui.page.test.frond_end_test;
package a8k.extui.page.extapp.debug_assistant;
import a8k.SpringBootBeanUtil;
import a8k.app.a8kproj.optalgo.type.OptScanResult;
import a8k.app.a8ktype.device.BloodType;
import a8k.app.a8ktype.exception.AppException;
import a8k.app.a8ktype.opttype.ReactionResultStatus;
import a8k.app.a8ktype.state.SampleInfo;
import a8k.app.a8ktype.type.ReactionResult;
import a8k.app.dao.db.ReactionReportDao;
import a8k.app.dao.db.type.ReactionReport;
import a8k.app.dao.db.type.a8kidcard.A8kResultBuilderFn;
import a8k.app.dao.db.type.a8kidcard.zenum.A8kOptType;
import a8k.app.dao.db.type.a8kidcard.zenum.A8kResultUnit;
@ -18,7 +15,6 @@ import a8k.app.service.data.ProjInfoMgrService;
import a8k.app.service.data.ReactionRecordMgrService;
import a8k.app.service.statemgr.GStateMgrService;
import a8k.app.utils.ProjInfo;
import a8k.app.utils.ZDateUtils;
import a8k.extui.mgr.ExtApiPageMgr;
import a8k.extui.type.ExtUIPageCfg;
import jakarta.annotation.PostConstruct;

2
src/main/java/a8k/extui/page/test/frond_end_test/FakeStateGeneratorPage.java → src/main/java/a8k/extui/page/extapp/debug_assistant/FakeStateGeneratorPage.java

@ -1,4 +1,4 @@
package a8k.extui.page.test.frond_end_test;
package a8k.extui.page.extapp.debug_assistant;
import a8k.SpringBootBeanUtil;
import a8k.app.a8ktype.device.BloodType;

81
src/main/java/a8k/extui/page/extapp/debug_assistant/IDCardDataGeneratorPage.java

@ -0,0 +1,81 @@
package a8k.extui.page.extapp.debug_assistant;
import a8k.app.a8ktype.exception.AppException;
import a8k.app.dao.db.type.A8kProjInfoCardBreif;
import a8k.app.dao.db.type.ProjExtInfoCard;
import a8k.app.factory.ProjExtInfoCardFactory;
import a8k.app.service.data.ProjIdCardInfoMgrService;
import a8k.app.service.data.ProjInfoMgrService;
import a8k.app.service.statemgr.GStateMgrService;
import a8k.app.utils.ProjBuildinInfo;
import a8k.app.utils.ZDateUtils;
import a8k.extui.mgr.ExtApiPageMgr;
import a8k.extui.type.ExtApiStatu;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component
@Slf4j
public class IDCardDataGeneratorPage {
@Resource
ProjIdCardInfoMgrService projIdCardInfoMgrService;
@Resource
ProjInfoMgrService projInfoMgrService;
@Resource
GStateMgrService gstate;
@ExtApiStatu(name = "", group = "挂载的项目信息", order = 1)
public ProjExtInfoCard getMountedProjInfoCard() {
return projIdCardInfoMgrService.getMountedProjInfoCard();
}
//
// 新建
//
public String saveMountedProjInfoCard() throws AppException {
projIdCardInfoMgrService.saveMountedProjInfoCard();
return "保存成功";
}
public String addAllProjFakeProjInfoCard() throws AppException {
List<ProjBuildinInfo> projBuildinInfos = projInfoMgrService.getAllProjBuildInInfo();
for (ProjBuildinInfo projBuildinInfo : projBuildinInfos) {
ProjExtInfoCard projExtInfoCard = ProjExtInfoCardFactory.buildProjExtInfoCard(projBuildinInfo.projId, null);
projIdCardInfoMgrService.saveProjExtInfoCard(projExtInfoCard);
}
return "添加成功";
}
public String addProjFakeProjInfoCard(String projids) throws AppException {
String[] projidArr = projids.split(",");
for (String projid : projidArr) {
ProjExtInfoCard projExtInfoCard = ProjExtInfoCardFactory.buildProjExtInfoCard(Integer.parseInt(projid), null);
projIdCardInfoMgrService.saveProjExtInfoCard(projExtInfoCard);
}
return "添加成功";
}
@Resource
ExtApiPageMgr extApiPageMgr;
@PostConstruct
public void init() {
var page = extApiPageMgr.newPage(this);
page.addFunction("保存当前插入的ID卡信息", this::saveMountedProjInfoCard);
page.addFunction("创建并保存ID卡", this::addProjFakeProjInfoCard).setParamVal("projids", "1");
page.addFunction("创建并保存ID卡(所有项目)", this::addAllProjFakeProjInfoCard);
extApiPageMgr.addPage(page);
}
}

2
src/main/java/a8k/extui/page/test/frond_end_test/VirtualEventGeneratorPage.java → src/main/java/a8k/extui/page/extapp/debug_assistant/VirtualEventGeneratorPage.java

@ -1,4 +1,4 @@
package a8k.extui.page.test.frond_end_test;
package a8k.extui.page.extapp.debug_assistant;
import a8k.app.a8ktype.appevent.*;
import a8k.app.a8ktype.ui.*;
Loading…
Cancel
Save