14 changed files with 384 additions and 218 deletions
-
72src/main/java/a8k/app/a8kproj/A8kReactionResultComputer.java
-
4src/main/java/a8k/app/a8ktype/exception/AppException.java
-
3src/main/java/a8k/app/service/data/ProjIdCardInfoMgrService.java
-
2src/main/java/a8k/app/service/mainctrl/mainflowctrl/action/PLATE_OPT_SCAN.java
-
218src/main/java/a8k/extui/mgr/ExtApiTabCfgMgr.java
-
2src/main/java/a8k/extui/page/data/DeviceActionParameterSettingPage.java
-
31src/main/java/a8k/extui/page/data/ProjInfoMgrPage.java
-
124src/main/java/a8k/extui/page/test/OptFormulaTestPage.java
-
27src/main/java/a8k/extui/type/ExUIFunction.java
-
11src/main/java/a8k/extui/type/ExtUITab.java
-
19src/main/java/a8k/extui/type/TabCfg.java
-
5src/main/java/a8k/extui/type/ret/AppRetV1.java
-
2src/main/java/a8k/unittest/TestOptAnalyzer.java
@ -1,4 +1,4 @@ |
|||
package a8k.extui.page; |
|||
package a8k.extui.page.data; |
|||
|
|||
import a8k.app.controler.filemgr.StorageControler; |
|||
import a8k.app.dao.db.DeviceActionParameterDao; |
@ -0,0 +1,31 @@ |
|||
package a8k.extui.page.data; |
|||
|
|||
import a8k.app.controler.filemgr.StorageControler; |
|||
import a8k.app.dao.db.DeviceActionParameterDao; |
|||
import a8k.extui.mgr.ExtApiPageMgr; |
|||
import a8k.extui.type.ExtUIPageCfg; |
|||
import a8k.extui.type.param.ExtUIFile; |
|||
import a8k.extui.type.ret.FileToBeDownload; |
|||
import jakarta.annotation.PostConstruct; |
|||
import jakarta.annotation.Resource; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
@Component |
|||
@Slf4j |
|||
public class ProjInfoMgrPage { |
|||
@Resource |
|||
ExtApiPageMgr extApiPageMgr; |
|||
|
|||
// |
|||
// 1. 查询设备支持的项目信息 |
|||
// 2. 查询设备支持的单位范围 |
|||
// 3. 查询设备支持的未知数X的范围 |
|||
|
|||
|
|||
@PostConstruct |
|||
void init() throws NoSuchMethodException { |
|||
ExtUIPageCfg page = new ExtUIPageCfg(this); |
|||
extApiPageMgr.addPage(page); |
|||
} |
|||
} |
@ -0,0 +1,124 @@ |
|||
package a8k.extui.page.test; |
|||
|
|||
|
|||
import a8k.app.a8kproj.A8kReactionResultComputer; |
|||
import a8k.app.a8kproj.optalgo.type.OptAlgoAnalysResult; |
|||
import a8k.app.a8ktype.device.BloodType; |
|||
import a8k.app.a8ktype.exception.AppException; |
|||
import a8k.app.a8ktype.state.SampleInfo; |
|||
import a8k.app.a8ktype.type.ReactionResult; |
|||
import a8k.app.hardware.type.a8kcanprotocol.A8kEcode; |
|||
import a8k.app.service.data.ProjIdCardInfoMgrService; |
|||
import a8k.app.service.data.ProjInfoMgrService; |
|||
import a8k.app.utils.ProjInfo; |
|||
import a8k.extui.mgr.ExtApiPageMgr; |
|||
import a8k.extui.type.ExtUIPageCfg; |
|||
import jakarta.annotation.PostConstruct; |
|||
import jakarta.annotation.Resource; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
@Component |
|||
@Slf4j |
|||
public class OptFormulaTestPage { |
|||
|
|||
@Resource |
|||
ProjInfoMgrService projInfoMgrService; |
|||
@Resource |
|||
ProjIdCardInfoMgrService projIdCardInfoMgrService; |
|||
|
|||
@FunctionalInterface |
|||
public interface TEST { |
|||
Boolean test(); |
|||
} |
|||
|
|||
OptAlgoAnalysResult optAlgoAnalysResult = new OptAlgoAnalysResult(); |
|||
|
|||
|
|||
public void setR(Double val) { |
|||
optAlgoAnalysResult.pdR = val; |
|||
} |
|||
|
|||
public void setAR(Double val) { |
|||
optAlgoAnalysResult.pdAR = val; |
|||
} |
|||
|
|||
public void setATR(Double val) { |
|||
optAlgoAnalysResult.pdATR = val; |
|||
} |
|||
|
|||
public void setRFR(Double val) { |
|||
optAlgoAnalysResult.pdRFR = val; |
|||
} |
|||
|
|||
public void setT4R(Double val) { |
|||
optAlgoAnalysResult.pdT4R = val; |
|||
} |
|||
|
|||
public void setT4T3R(Double val) { |
|||
optAlgoAnalysResult.pdT4T3R = val; |
|||
} |
|||
|
|||
public ProjInfo getProjInfo() throws AppException { |
|||
ProjInfo projInfoContext = new ProjInfo(); |
|||
var extProjInfo = projIdCardInfoMgrService.getMountedProjInfoCard(); |
|||
if (extProjInfo == null) { |
|||
throw AppException.of(A8kEcode.APPE_A8K_ID_CARD_NOT_MOUNTED); |
|||
} |
|||
|
|||
projInfoContext.projExtInfoCard = extProjInfo; |
|||
projInfoContext.projOptInfoList = projInfoMgrService.getProjBuildInInfo(extProjInfo.projId).projOptInfos; |
|||
projInfoContext.projBaseInfo = projInfoMgrService.getProjBuildInInfo(extProjInfo.projId).projBaseInfo; |
|||
return projInfoContext; |
|||
} |
|||
|
|||
|
|||
public ReactionResult computeResult(BloodType bloodType, Integer optIndex) throws AppException { |
|||
SampleInfo sampleInfo = new SampleInfo(); |
|||
sampleInfo.sampleId = "TEST_SAMPLE"; |
|||
sampleInfo.sampleBarcode = "TEST_BARCODE"; |
|||
sampleInfo.bloodType = bloodType; |
|||
|
|||
ProjInfo projInfoContext = getProjInfo(); |
|||
|
|||
if (projInfoContext.projOptInfoList.size() <= optIndex) { |
|||
throw AppException.of(A8kEcode.CODEERROR, "当前项目没有第%s个子项目", optIndex); |
|||
} |
|||
return A8kReactionResultComputer.optComputeResult(sampleInfo, projInfoContext, optIndex, optAlgoAnalysResult); |
|||
} |
|||
|
|||
@Resource |
|||
ExtApiPageMgr extApiPageMgr; |
|||
|
|||
@PostConstruct |
|||
void init() { |
|||
optAlgoAnalysResult.pdR = 0.0; |
|||
optAlgoAnalysResult.pdAR = 0.0; |
|||
optAlgoAnalysResult.pdATR = 0.0; |
|||
optAlgoAnalysResult.pdRFR = 0.0; |
|||
optAlgoAnalysResult.pdT4R = 0.0; |
|||
optAlgoAnalysResult.pdT4T3R = 0.0; |
|||
|
|||
|
|||
ExtUIPageCfg cfg = extApiPageMgr.newPage(this); |
|||
|
|||
|
|||
cfg.newGroup("项目信息"); |
|||
cfg.addFunction("打印项目信息", this::getProjInfo); |
|||
|
|||
cfg.newGroup("设置参数"); |
|||
cfg.addFunction("设置R", this::setR).setParamVal("val", () -> optAlgoAnalysResult.pdR); |
|||
cfg.addFunction("设置AR", this::setAR).setParamVal("val", () -> optAlgoAnalysResult.pdAR); |
|||
cfg.addFunction("设置ATR", this::setATR).setParamVal("val", () -> optAlgoAnalysResult.pdATR); |
|||
cfg.addFunction("设置RFR", this::setRFR).setParamVal("val", () -> optAlgoAnalysResult.pdRFR); |
|||
cfg.addFunction("设置T4R", this::setT4R).setParamVal("val", () -> optAlgoAnalysResult.pdT4R); |
|||
cfg.addFunction("设置T4T3R", this::setT4T3R).setParamVal("val", () -> optAlgoAnalysResult.pdT4T3R); |
|||
|
|||
cfg.newGroup("计算"); |
|||
cfg.addFunction("计算结果", this::computeResult); |
|||
extApiPageMgr.addPage(cfg); |
|||
|
|||
|
|||
} |
|||
|
|||
} |
@ -0,0 +1,11 @@ |
|||
package a8k.extui.type; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
public class ExtUITab { |
|||
public String tabName; |
|||
public List<TabCfg> tabCfgList = new ArrayList<>(); |
|||
|
|||
|
|||
} |
@ -0,0 +1,19 @@ |
|||
package a8k.extui.type; |
|||
|
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class TabCfg { |
|||
static int staticIndex; |
|||
|
|||
public Class<?> service; |
|||
public String chName; |
|||
public Boolean display; |
|||
public int index = staticIndex++; |
|||
|
|||
public TabCfg(Class<?> service, String chName) { |
|||
this.service = service; |
|||
this.display = true; |
|||
this.chName = chName; |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue