14 changed files with 384 additions and 218 deletions
-
60src/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
-
210src/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.controler.filemgr.StorageControler; |
||||
import a8k.app.dao.db.DeviceActionParameterDao; |
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