Browse Source

update

tags/v0
zhaohe 7 months ago
parent
commit
6329f28c19
  1. 2
      src/main/java/a8k/app/controler/api/v1/app/data/ReactionResultControler.java
  2. 2
      src/main/java/a8k/app/dao/db/type/ReactionReport.java
  3. 11
      src/main/java/a8k/app/factory/FakeOptScanResultFactory.java
  4. 6
      src/main/java/a8k/app/service/data/ReactionRecordMgrService.java
  5. 22
      src/main/java/a8k/app/utils/ProjBuildinInfo.java
  6. 3
      src/main/java/a8k/app/utils/ZSqlite.java
  7. 25
      src/main/java/a8k/extui/factory/A8kScanCurveFactory.java
  8. 8
      src/main/java/a8k/extui/mgr/ExtApiPageGroupCfgMgr.java
  9. 17
      src/main/java/a8k/extui/page/extapp/A8kOptVerification.java
  10. 23
      src/main/java/a8k/extui/page/extapp/OptModuleParamCalibration.java
  11. 22
      src/main/java/a8k/extui/page/extsetting/db/ReactionRecordDebugPage.java
  12. 26
      src/main/java/a8k/extui/page/test/frond_end_test/FakeReactionRecordGeneratorPage.java
  13. 16
      src/main/java/a8k/extui/type/ExtUiTable.java

2
src/main/java/a8k/app/controler/api/v1/app/data/ReactionResultControler.java

@ -31,7 +31,7 @@ public class ReactionResultControler {
@PostMapping("/getAllRecords") @PostMapping("/getAllRecords")
public ApiRet<List<ReactionReport>> getAllRecords() { public ApiRet<List<ReactionReport>> getAllRecords() {
return ApiRet.success(reactionRecordMgrService.getAll());
return ApiRet.success(reactionRecordMgrService.getAllDesc());
} }
@PostMapping("/deleteAllRecords") @PostMapping("/deleteAllRecords")

2
src/main/java/a8k/app/dao/db/type/ReactionReport.java

@ -35,7 +35,7 @@ public class ReactionReport { //记录单个反应板的反应结果
public int id = 0; public int id = 0;
@Schema(description = "记录创建时间(ms)") @Schema(description = "记录创建时间(ms)")
public Long creatDate = ZDateUtils.getTimestamp();
public Date creatDate = new Date();
@Schema(description = "血液类型") @Schema(description = "血液类型")
public BloodType sampleBloodType = BloodType.WHOLE_BLOOD; //血液类型 public BloodType sampleBloodType = BloodType.WHOLE_BLOOD; //血液类型

11
src/main/java/a8k/app/factory/FakeOptScanResultFactory.java

@ -21,9 +21,16 @@ public class FakeOptScanResultFactory {
rawData.lasterGain = 1; rawData.lasterGain = 1;
rawData.scanGain = 1; rawData.scanGain = 1;
rawData.rawData = new Integer[1200]; rawData.rawData = new Integer[1200];
if (optType.equals(A8kOptType.FOPT)) {
for (int i = 0; i < 1200; i++) { for (int i = 0; i < 1200; i++) {
rawData.rawData[i] = i; rawData.rawData[i] = i;
} }
} else {
for (int i = 0; i < 1200; i++) {
rawData.rawData[i] = 1200 - i;
}
}
optScanResult.rawData = rawData; optScanResult.rawData = rawData;
//OptAlgoAnalysResult //OptAlgoAnalysResult
@ -41,8 +48,10 @@ public class FakeOptScanResultFactory {
optAlgoAnalysResult.pdT4T3R = 1.6; optAlgoAnalysResult.pdT4T3R = 1.6;
optAlgoAnalysResult.resultData = new double[250]; optAlgoAnalysResult.resultData = new double[250];
for (int i = 0; i < 250; i++) { for (int i = 0; i < 250; i++) {
optAlgoAnalysResult.resultData[i] = i;
optAlgoAnalysResult.resultData[i] = optType.equals(A8kOptType.FOPT) ? i : 250 - i;
} }
optScanResult.analysResult = optAlgoAnalysResult; optScanResult.analysResult = optAlgoAnalysResult;
//return //return

6
src/main/java/a8k/app/service/data/ReactionRecordMgrService.java

@ -83,10 +83,12 @@ public class ReactionRecordMgrService {
} }
public List<ReactionReport> getAll() {
return reactionReportDao.getAll();
public List<ReactionReport> getAllDesc() {
return reactionReportDao.getAllDesc();
} }
public void deleteAll() { public void deleteAll() {
List<ReactionReport> records = reactionReportDao.getAll(); List<ReactionReport> records = reactionReportDao.getAll();
for (ReactionReport record : records) { for (ReactionReport record : records) {

22
src/main/java/a8k/app/utils/ProjBuildinInfo.java

@ -4,6 +4,7 @@ import a8k.app.dao.db.type.OptCfg;
import a8k.app.dao.db.type.ProjectBaseInfo; import a8k.app.dao.db.type.ProjectBaseInfo;
import a8k.app.dao.db.type.a8kidcard.zenum.A8kOptType; import a8k.app.dao.db.type.a8kidcard.zenum.A8kOptType;
import a8k.app.dao.db.type.a8kidcard.zenum.A8kReactionFlowType; import a8k.app.dao.db.type.a8kidcard.zenum.A8kReactionFlowType;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data; import lombok.Data;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -56,6 +57,27 @@ public class ProjBuildinInfo implements Serializable {
return null; return null;
} }
@JsonIgnore
public OptCfg getFoptCfg() {
for (OptCfg optCfg : optcfg) {
if (optCfg.optType.equals(A8kOptType.FOPT)) {
return optCfg;
}
}
return null;
}
@JsonIgnore
public OptCfg getToptCfg() {
for (OptCfg optCfg : optcfg) {
if (optCfg.optType.equals(A8kOptType.TOPT)) {
return optCfg;
}
}
return null;
}
public ProjBuildinInfo(ProjectBaseInfo baseInfo, List<OptCfg> optInfos) { public ProjBuildinInfo(ProjectBaseInfo baseInfo, List<OptCfg> optInfos) {
//遍历所有ProjectBaseInfo字段赋值给ProjBuildinInfo //遍历所有ProjectBaseInfo字段赋值给ProjBuildinInfo
for (var field : baseInfo.getClass().getDeclaredFields()) { for (var field : baseInfo.getClass().getDeclaredFields()) {

3
src/main/java/a8k/app/utils/ZSqlite.java

@ -43,7 +43,6 @@ public class ZSqlite<T> {
return jdbcTemplate.query("select * from " + tableName, this::rowMapperList); return jdbcTemplate.query("select * from " + tableName, this::rowMapperList);
} }
public List<T> getAllDesc() { public List<T> getAllDesc() {
return jdbcTemplate.query("select * from " + tableName + " order by id desc", this::rowMapperList); return jdbcTemplate.query("select * from " + tableName + " order by id desc", this::rowMapperList);
} }
@ -195,8 +194,6 @@ public class ZSqlite<T> {
} }
public void resetDBData() { public void resetDBData() {
deleteAll(); deleteAll();
tryInitDBData(); tryInitDBData();

25
src/main/java/a8k/extui/factory/A8kScanCurveFactory.java

@ -0,0 +1,25 @@
package a8k.extui.factory;
import a8k.app.utils.ZList;
import a8k.extui.type.ret.A8kScanCurve;
import java.util.ArrayList;
import java.util.List;
public class A8kScanCurveFactory {
public static A8kScanCurve createScanCurve1200Point(Integer[] optScanResult) {
List<Integer> refCurve = new ArrayList<>();
for (int i = 1; i < 6; i++) {
refCurve.add((int) (40 * 4.8 * i));
}
var result = new A8kScanCurve();
result.refCurve = refCurve;
result.scanDataCurve = ZList.of(optScanResult);
return result;
}
}

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

@ -128,9 +128,7 @@ public class ExtApiPageGroupCfgMgr {
new Menu("高级应用", List.of( new Menu("高级应用", List.of(
new Menu("光学标定与验证", List.of( new Menu("光学标定与验证", List.of(
new Menu(A8kOptVerification.class, "光学模组验证"), new Menu(A8kOptVerification.class, "光学模组验证"),
new Menu(OptModuleParamCalibration.class, "光学模块参数校准"),
new Menu(OptFormulaTestPageV2.class, "光学公式测试1"),
new Menu(OptFormulaTestPage.class, "光学公式测试2")
new Menu(OptModuleParamCalibration.class, "光学模块参数校准")
)), )),
new Menu("验证(过检专用)", List.of( new Menu("验证(过检专用)", List.of(
new Menu(P01PipetteGunVerification.class, "移液枪验证"), new Menu(P01PipetteGunVerification.class, "移液枪验证"),
@ -187,6 +185,10 @@ public class ExtApiPageGroupCfgMgr {
)), )),
new Menu("压力测试", List.of( new Menu("压力测试", List.of(
new Menu(PipetteGunStressTest.class, "移液枪压力测试") new Menu(PipetteGunStressTest.class, "移液枪压力测试")
)),
new Menu("代码测试", List.of(
new Menu(OptFormulaTestPageV2.class, "光学公式测试1"),
new Menu(OptFormulaTestPage.class, "光学公式测试2")
)) ))
)) ))
); );

17
src/main/java/a8k/extui/page/extapp/A8kOptVerification.java

@ -5,8 +5,8 @@ import a8k.app.a8kproj.optalgo.type.OptScanResult;
import a8k.app.a8ktype.device.BloodType; import a8k.app.a8ktype.device.BloodType;
import a8k.app.a8ktype.state.SampleInfo; import a8k.app.a8ktype.state.SampleInfo;
import a8k.app.a8ktype.type.ReactionResult; import a8k.app.a8ktype.type.ReactionResult;
import a8k.app.controler.filemgr.StorageControler;
import a8k.app.dao.db.type.ProjExtInfoCard; import a8k.app.dao.db.type.ProjExtInfoCard;
import a8k.extui.factory.A8kScanCurveFactory;
import a8k.app.service.data.ProjIdCardInfoMgrService; import a8k.app.service.data.ProjIdCardInfoMgrService;
import a8k.app.service.lowerctrl.DeviceInitCtrlService; import a8k.app.service.lowerctrl.DeviceInitCtrlService;
import a8k.app.utils.ProjInfo; import a8k.app.utils.ProjInfo;
@ -24,7 +24,6 @@ import a8k.app.a8ktype.device.ConsumableGroup;
import a8k.app.a8ktype.device.IncubatorPos; import a8k.app.a8ktype.device.IncubatorPos;
import a8k.app.a8ktype.exception.AppException; import a8k.app.a8ktype.exception.AppException;
import a8k.app.utils.ProjBuildinInfo; import a8k.app.utils.ProjBuildinInfo;
import a8k.app.utils.ZList;
import jakarta.annotation.PostConstruct; import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -34,7 +33,6 @@ import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
@Component @Component
public class A8kOptVerification { public class A8kOptVerification {
@ -131,16 +129,7 @@ public class A8kOptVerification {
} }
A8kScanCurve createScanCurve1200Point(Integer[] optScanResult) {
List<Integer> refCurve = new ArrayList<>();
for (int i = 1; i < 6; i++) {
refCurve.add((int) (40 * 4.8 * i));
}
var result = new A8kScanCurve();
result.refCurve = refCurve;
result.scanDataCurve = ZList.of(optScanResult);
return result;
}
static class OptScanReport { static class OptScanReport {
public A8kOptType optType; public A8kOptType optType;
@ -164,7 +153,7 @@ public class A8kOptVerification {
public void generateOptReport(ProjBuildinInfo info, Integer subProjIndex, OptScanResult optScanResult) public void generateOptReport(ProjBuildinInfo info, Integer subProjIndex, OptScanResult optScanResult)
throws IOException { throws IOException {
OptScanReport report = new OptScanReport(); OptScanReport report = new OptScanReport();
report.optScanCurve = createScanCurve1200Point(optScanResult.rawData.rawData);
report.optScanCurve = A8kScanCurveFactory.createScanCurve1200Point(optScanResult.rawData.rawData);
report.optType = info.optcfg.get(subProjIndex).optType; report.optType = info.optcfg.get(subProjIndex).optType;
report.optScanResult = optScanResult; report.optScanResult = optScanResult;
report.projInfo = info; report.projInfo = info;

23
src/main/java/a8k/extui/page/extapp/OptModuleParamCalibration.java

@ -2,6 +2,7 @@ package a8k.extui.page.extapp;
import a8k.app.a8ktype.device.ConsumableGroup; import a8k.app.a8ktype.device.ConsumableGroup;
import a8k.app.a8ktype.device.IncubatorPos; import a8k.app.a8ktype.device.IncubatorPos;
import a8k.extui.factory.A8kScanCurveFactory;
import a8k.app.service.lowerctrl.DeviceInitCtrlService; import a8k.app.service.lowerctrl.DeviceInitCtrlService;
import a8k.extui.mgr.ExtApiPageMgr; import a8k.extui.mgr.ExtApiPageMgr;
import a8k.extui.type.ret.A8kScanCurve; import a8k.extui.type.ret.A8kScanCurve;
@ -12,7 +13,6 @@ import a8k.app.service.param.optparam.OptModuleExtParamsMgr;
import a8k.app.a8ktype.param.optpos.OptModuleExtParam; import a8k.app.a8ktype.param.optpos.OptModuleExtParam;
import a8k.app.dao.db.type.a8kidcard.zenum.A8kOptType; import a8k.app.dao.db.type.a8kidcard.zenum.A8kOptType;
import a8k.app.a8ktype.exception.AppException; import a8k.app.a8ktype.exception.AppException;
import a8k.app.utils.ZList;
import a8k.app.utils.opt_gain_convert.OptGainConvert; import a8k.app.utils.opt_gain_convert.OptGainConvert;
import jakarta.annotation.PostConstruct; import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
@ -20,9 +20,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
@ -101,22 +99,7 @@ public class OptModuleParamCalibration {
optScanModuleCtrlService.dropPlate(); optScanModuleCtrlService.dropPlate();
} }
A8kScanCurve createScanCurve1200Point(Integer[] optScanResult) {
// Integer[] optScanResult250 = A8kOptAlgoUtils.supperSamplingAndSubSampling(optScanResult);
List<Integer> refCurve = new ArrayList<>();
for (int i = 1; i < 6; i++) {
refCurve.add((int) (40 * 4.8 * i));
}
var result = new A8kScanCurve();
result.refCurve = refCurve;
result.scanDataCurve = ZList.of(optScanResult);
return result;
}
A8kScanCurve fcurveCache = null; A8kScanCurve fcurveCache = null;
public void setFOptScanShift(Integer shift) throws AppException { public void setFOptScanShift(Integer shift) throws AppException {
if (shift < 0) { if (shift < 0) {
throw AppException.ofAECodeError("扫描偏移量必须大于0"); throw AppException.ofAECodeError("扫描偏移量必须大于0");
@ -153,7 +136,7 @@ public class OptModuleParamCalibration {
Integer rawScanGain = OptGainConvert.scanerToRawGain(A8kOptType.FOPT, scanGain); Integer rawScanGain = OptGainConvert.scanerToRawGain(A8kOptType.FOPT, scanGain);
Integer rawLasterGain = optModuleExtParamsMgr.getOptLasterRawGain(A8kOptType.FOPT); Integer rawLasterGain = optModuleExtParamsMgr.getOptLasterRawGain(A8kOptType.FOPT);
var result = optScanModuleCtrlService.startOptScan(A8kOptType.FOPT, rawLasterGain, rawScanGain); var result = optScanModuleCtrlService.startOptScan(A8kOptType.FOPT, rawLasterGain, rawScanGain);
fcurveCache = createScanCurve1200Point(result);
fcurveCache = A8kScanCurveFactory.createScanCurve1200Point(result);
return fcurveCache; return fcurveCache;
} }
@ -191,7 +174,7 @@ public class OptModuleParamCalibration {
Integer rawLasterGain = optModuleExtParamsMgr.getOptLasterRawGain(A8kOptType.TOPT); Integer rawLasterGain = optModuleExtParamsMgr.getOptLasterRawGain(A8kOptType.TOPT);
var result = optScanModuleCtrlService.startOptScan(A8kOptType.TOPT, rawLasterGain, rawScanGain); var result = optScanModuleCtrlService.startOptScan(A8kOptType.TOPT, rawLasterGain, rawScanGain);
return createScanCurve1200Point(result);
return A8kScanCurveFactory.createScanCurve1200Point(result);
} }

22
src/main/java/a8k/extui/page/extsetting/db/ReactionRecordDebugPage.java

@ -3,6 +3,8 @@ package a8k.extui.page.extsetting.db;
import a8k.app.a8ktype.exception.AppException; import a8k.app.a8ktype.exception.AppException;
import a8k.app.controler.filemgr.StorageControler; import a8k.app.controler.filemgr.StorageControler;
import a8k.app.dao.db.type.ReactionReport; import a8k.app.dao.db.type.ReactionReport;
import a8k.app.dao.db.type.a8kidcard.zenum.A8kOptType;
import a8k.extui.factory.A8kScanCurveFactory;
import a8k.app.service.data.FileMgrService; import a8k.app.service.data.FileMgrService;
import a8k.app.service.data.ProjIdCardInfoMgrService; import a8k.app.service.data.ProjIdCardInfoMgrService;
import a8k.app.service.data.ProjInfoMgrService; import a8k.app.service.data.ProjInfoMgrService;
@ -10,6 +12,7 @@ import a8k.app.service.data.ReactionRecordMgrService;
import a8k.extui.mgr.ExtApiPageMgr; import a8k.extui.mgr.ExtApiPageMgr;
import a8k.extui.type.ExtUIPageCfg; import a8k.extui.type.ExtUIPageCfg;
import a8k.extui.type.ExtUiTable; import a8k.extui.type.ExtUiTable;
import a8k.extui.type.ret.A8kScanCurve;
import a8k.extui.type.ret.ExtUIDownloadTasks; import a8k.extui.type.ret.ExtUIDownloadTasks;
import a8k.extui.type.ret.FileToBeDownload; import a8k.extui.type.ret.FileToBeDownload;
import jakarta.annotation.PostConstruct; import jakarta.annotation.PostConstruct;
@ -38,7 +41,7 @@ public class ReactionRecordDebugPage {
FileMgrService fileMgrService; FileMgrService fileMgrService;
public ExtUiTable getReactionRecordList() { public ExtUiTable getReactionRecordList() {
var results = reactionRecordMgrService.getAll();
var results = reactionRecordMgrService.getAllDesc();
return new ExtUiTable(ReactionReport.class, results); return new ExtUiTable(ReactionReport.class, results);
} }
@ -67,6 +70,20 @@ public class ReactionRecordDebugPage {
} }
public A8kScanCurve displayOptCurve(Integer id, A8kOptType optType) throws AppException {
ReactionReport report = reactionRecordMgrService.findById(id);
if (report == null) {
throw AppException.ofSimplePrompt("没有找到记录");
}
for (var optdate : report.detailOptData) {
if (optdate.rawData.optType.equals(optType)) {
return A8kScanCurveFactory.createScanCurve1200Point(optdate.rawData.rawData);
}
}
throw AppException.ofSimplePrompt("当前项目没有%s光学扫描曲线", optType);
}
@PostConstruct @PostConstruct
void init() { void init() {
ExtUIPageCfg page = new ExtUIPageCfg(this); ExtUIPageCfg page = new ExtUIPageCfg(this);
@ -79,6 +96,9 @@ public class ReactionRecordDebugPage {
page.addFunction("导出所有记录", this::exportReactionRecords); page.addFunction("导出所有记录", this::exportReactionRecords);
page.addFunction("导出指定项目光学数据", this::downloadOptData); page.addFunction("导出指定项目光学数据", this::downloadOptData);
page.newGroup("光学曲线");
page.addFunction("查看光学曲线", this::displayOptCurve);
extApiPageMgr.addPage(page); extApiPageMgr.addPage(page);
} }
} }

26
src/main/java/a8k/extui/page/test/frond_end_test/FakeReactionRecordGeneratorPage.java

@ -44,17 +44,18 @@ public class FakeReactionRecordGeneratorPage {
void init() { void init() {
ExtUIPageCfg page = new ExtUIPageCfg(this); ExtUIPageCfg page = new ExtUIPageCfg(this);
page.addFunction("添加1条反应结果记录", this::addVirtualReactionRecord); page.addFunction("添加1条反应结果记录", this::addVirtualReactionRecord);
page.addFunction("添加100条反应结果记录", this::add100VirtualReactionRecord);
page.addFunction("添加多条反应记录(每个项目添加一条)", this::addSomeVirtualReactionRecord);
extApiPageMgr.addPage(page); extApiPageMgr.addPage(page);
} }
public void add100VirtualReactionRecord() throws AppException {
for (int i = 0; i < 100; i++) {
addVirtualReactionRecord(String.format("SAMPLE%03d", i));
public void addSomeVirtualReactionRecord() throws AppException {
var allproj = projInfoMgrService.getAllProjBuildInInfo();
for (var proj : allproj) {
addVirtualReactionRecord("SAMPLEID-123456", proj.projId);
} }
} }
public void addVirtualReactionRecord(String sampleId) throws AppException {
public void addVirtualReactionRecord(String sampleId, Integer projNum) throws AppException {
SampleInfo sampleInfo = new SampleInfo(); SampleInfo sampleInfo = new SampleInfo();
sampleInfo.sampleId = sampleId; sampleInfo.sampleId = sampleId;
@ -64,7 +65,7 @@ public class FakeReactionRecordGeneratorPage {
sampleInfo.sampleBarcode = "BARCODE-111222333"; sampleInfo.sampleBarcode = "BARCODE-111222333";
sampleInfo.userid = "USERID-ABCDEFG"; sampleInfo.userid = "USERID-ABCDEFG";
ProjInfo projInfo = new ProjInfo(projInfoMgrService.getProjBuildInInfo(1), ProjExtInfoCardFactory.buildProjExtInfoCard(1, "LOTID123"));
ProjInfo projInfo = new ProjInfo(projInfoMgrService.getProjBuildInInfo(projNum), ProjExtInfoCardFactory.buildProjExtInfoCard(1, "LOTID123"));
A8kResultBuilderFn resultBuilder0 = new A8kResultBuilderFn(A8kResultUnit.coi, A8kResultUnit.iuPml, A8kResultUnit.iuPml, 2.0, 2.0, 3.0, 3.0); A8kResultBuilderFn resultBuilder0 = new A8kResultBuilderFn(A8kResultUnit.coi, A8kResultUnit.iuPml, A8kResultUnit.iuPml, 2.0, 2.0, 3.0, 3.0);
A8kResultBuilderFn resultBuilder1 = new A8kResultBuilderFn(A8kResultUnit.coi, A8kResultUnit.iuPml, A8kResultUnit.iuPml, 2.0, 2.0, 3.0, 3.0); A8kResultBuilderFn resultBuilder1 = new A8kResultBuilderFn(A8kResultUnit.coi, A8kResultUnit.iuPml, A8kResultUnit.iuPml, 2.0, 2.0, 3.0, 3.0);
@ -72,18 +73,25 @@ public class FakeReactionRecordGeneratorPage {
List<ReactionResult> reactionResults = new ArrayList<>(); List<ReactionResult> reactionResults = new ArrayList<>();
for (int i = 0; i < projInfo.buildIn.getSubProjNum(); i++) {
if (i == 0)
reactionResults.add(new ReactionResult("Tn-I", "Tn-I", 1.0, resultBuilder0.toResultUnitConverters())); reactionResults.add(new ReactionResult("Tn-I", "Tn-I", 1.0, resultBuilder0.toResultUnitConverters()));
if (i == 1)
reactionResults.add(new ReactionResult("CK-MB", "CK-MB", 2.0, resultBuilder1.toResultUnitConverters())); reactionResults.add(new ReactionResult("CK-MB", "CK-MB", 2.0, resultBuilder1.toResultUnitConverters()));
if (i == 2)
reactionResults.add(new ReactionResult("Myoglobin", "MG", 3.0, resultBuilder2.toResultUnitConverters())); reactionResults.add(new ReactionResult("Myoglobin", "MG", 3.0, resultBuilder2.toResultUnitConverters()));
}
List<OptScanResult> optScanResults = new ArrayList<>(); List<OptScanResult> optScanResults = new ArrayList<>();
if (projInfo.buildIn.getFoptCfg() != null) {
optScanResults.add(FakeOptScanResultFactory.buildOptScanResult(A8kOptType.FOPT)); optScanResults.add(FakeOptScanResultFactory.buildOptScanResult(A8kOptType.FOPT));
}
if (projInfo.buildIn.getToptCfg() != null) {
optScanResults.add(FakeOptScanResultFactory.buildOptScanResult(A8kOptType.TOPT)); optScanResults.add(FakeOptScanResultFactory.buildOptScanResult(A8kOptType.TOPT));
}
reactionRecordMgrService.addRecord(sampleInfo, projInfo, optScanResults, reactionResults); reactionRecordMgrService.addRecord(sampleInfo, projInfo, optScanResults, reactionResults);
} }
} }

16
src/main/java/a8k/extui/type/ExtUiTable.java

@ -2,13 +2,12 @@ package a8k.extui.type;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.text.SimpleDateFormat;
import java.util.*;
public class ExtUiTable { public class ExtUiTable {
@ -81,6 +80,7 @@ public class ExtUiTable {
|| field.getType().equals(Boolean.class) || field.getType().equals(Boolean.class)
|| field.getType().equals(Character.class) || field.getType().equals(Character.class)
|| field.getType().equals(Byte.class) || field.getType().equals(Byte.class)
|| field.getType().equals(Date.class)
|| field.getType().equals(Short.class)) { || field.getType().equals(Short.class)) {
this.columns.add(new TableColumn(field.getName(), field.getName())); this.columns.add(new TableColumn(field.getName(), field.getName()));
if (this.columns.size() == 1) { if (this.columns.size() == 1) {
@ -94,7 +94,13 @@ public class ExtUiTable {
if (datas == null || datas.isEmpty()) { if (datas == null || datas.isEmpty()) {
this.datas.add(emptyData); this.datas.add(emptyData);
} else { } else {
this.datas.addAll(datas);
ObjectMapper mapper = new ObjectMapper();
mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"));
for (Object data : datas) {
var val = mapper.valueToTree(data);
this.datas.add(val);
}
} }

Loading…
Cancel
Save