diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/GardsXeResultsService.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/GardsXeResultsService.java index 59ac8321..05efdc42 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/GardsXeResultsService.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/GardsXeResultsService.java @@ -2,7 +2,7 @@ package org.jeecg.modules.service; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.base.entity.rnauto.GardsXeResults; -import org.jeecg.modules.entity.vo.SelfXeResults; +import org.jeecg.modules.entity.GardsXeResultsSpectrum; import org.jeecg.modules.native_jni.struct.BgAnalyseResult; import java.util.List; @@ -21,5 +21,5 @@ public interface GardsXeResultsService extends IService { */ public void create(BgAnalyseResult analyseResult, Integer sampleId, Integer idAnalysis); - void create(List selfXeResults, Integer sampleId, Integer idAnalysis); + void create(List selfXeResults, Integer sampleId, Integer idAnalysis); } diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsServiceImpl.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsServiceImpl.java index aa15bf43..2e12ebfa 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsServiceImpl.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsServiceImpl.java @@ -4,7 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Lists; import org.jeecg.modules.base.entity.rnauto.GardsXeResults; -import org.jeecg.modules.entity.vo.SelfXeResults; +import org.jeecg.modules.entity.GardsXeResultsSpectrum; import org.jeecg.modules.mapper.GardsXeResultsMapper; import org.jeecg.modules.native_jni.struct.BgAnalyseResult; import org.jeecg.modules.service.BlockConstant; @@ -41,9 +41,9 @@ public class GardsXeResultsServiceImpl extends ServiceImpl selfXeResults, Integer sampleId, Integer idAnalysis) { + public void create(List selfXeResults, Integer sampleId, Integer idAnalysis) { List xeResultsList = Lists.newArrayList(); - for (SelfXeResults result : selfXeResults) { + for (GardsXeResultsSpectrum result : selfXeResults) { GardsXeResults gardsXeResults = new GardsXeResults(); BeanUtil.copyProperties(result, gardsXeResults); gardsXeResults.setSampleId(sampleId); diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_C_Analysis.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_C_Analysis.java index fdb21cdb..abb6676c 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_C_Analysis.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_C_Analysis.java @@ -27,6 +27,7 @@ import org.jeecg.modules.base.entity.rnauto.*; import org.jeecg.modules.base.enums.*; import org.jeecg.modules.config.datasource.DataSourceSwitcher; import org.jeecg.modules.eneity.event.SpectrumErrorEvent; +import org.jeecg.modules.entity.GardsXeResultsSpectrum; import org.jeecg.modules.entity.vo.*; import org.jeecg.modules.enums.ErrorType; import org.jeecg.modules.exception.AnalySpectrumException; @@ -242,8 +243,9 @@ public class Sample_C_Analysis { analyseResult.setS_g_fitting_e_c(s_g_fitting_e_c); // 执行beta分析 - List selfXeResults = SelfBaseUtil.betaAnalyse(selfParameter, sampleStruct.POI_G_y1, + List selfXeResults = SelfBaseUtil.betaAnalyse(selfParameter.getNuclideMap(), sampleStruct.POI_G_y1, sampleStruct.POI_G_y2, sampleFilePathName, phdFile1, phdFile2, phdFile3, phdFile4); + analyseResult.setXeResults(selfXeResults); boolean analyFlag = analyFlag1 && analyFlag2 && analyFlag3 && analyFlag4 && !selfXeResults.isEmpty(); diff --git a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/common/util/SelfBaseUtil.java b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/common/util/SelfBaseUtil.java index b6e122ae..e594ecf1 100644 --- a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/common/util/SelfBaseUtil.java +++ b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/common/util/SelfBaseUtil.java @@ -15,6 +15,7 @@ import lombok.extern.slf4j.Slf4j; import org.jeecg.modules.base.abstracts.AbstractLogOrReport; import org.jeecg.modules.base.enums.CalName; import org.jeecg.modules.base.enums.SampleFileHeader; +import org.jeecg.modules.entity.GardsXeResultsSpectrum; import org.jeecg.modules.entity.vo.*; import org.jeecg.modules.native_jni.CalValuesHandler; import org.jeecg.modules.native_jni.EnergySpectrumHandler; @@ -719,18 +720,16 @@ public class SelfBaseUtil extends AbstractLogOrReport { /** * beta分析 - * @param selfParameter 自建台站参数 + * @param nuclideMap 核素参数 * @param POI_G_y1 limit gamma * @param POI_G_y2 limit gamma * @param betaPhdFile betaPhd文件地址 * @param gammaPhdFiles gammaPHD * @throws JsonProcessingException */ - public static List betaAnalyse(SelfParameter selfParameter, List POI_G_y1, List POI_G_y2, - String betaPhdFile, PHDFile ... gammaPhdFiles) { - - List xeDataList = Lists.newArrayList(); - HashMap nuclideMap = selfParameter.getNuclideMap(); + public static List betaAnalyse(HashMap nuclideMap, List POI_G_y1, List POI_G_y2, + String betaPhdFile, PHDFile ... gammaPhdFiles) { + List xeDataList = Lists.newArrayList(); // 获取峰面积、半衰期、发射几率 HashMap nuclideParam = getBetaAnalyseNuclideParam(nuclideMap, POI_G_y1, POI_G_y2, gammaPhdFiles); @@ -738,22 +737,27 @@ public class SelfBaseUtil extends AbstractLogOrReport { // 调用beta分析算法 String resultStr = EnergySpectrumHandler.selfBgAnalyse(betaPhdFile, JSON.toJSONString(nuclideParam)); if (StrUtil.isNotBlank(resultStr)) { - xeDataList = JSON.parseArray(resultStr, SelfXeResults.class); - xeDataList.forEach(SelfXeResults::getMdc); + xeDataList = JSON.parseArray(resultStr, GardsXeResultsSpectrum.class); + xeDataList.forEach(GardsXeResultsSpectrum::getMdc); if (CollectionUtils.isNotEmpty(xeDataList)){ - for (SelfXeResults xeData:xeDataList) { + for (GardsXeResultsSpectrum xeData:xeDataList) { Double conc = xeData.getConc(); Double mdc = xeData.getMdc(); if (conc <= 0){ -// xeData.setColor("red"); + xeData.setColor("red"); xeData.setNidFlag(0); } else if (0 mdc) { -// xeData.setColor("green"); + xeData.setColor("green"); xeData.setNidFlag(1); } + // 如果gamma谱没有识别出对应的核素 nidFlag则置为0 + if (xeData.getNidFlag() == 1) { + HashMap param = (HashMap) nuclideParam.get(xeData.getNuclideName()); + xeData.setNidFlag((boolean) param.get("exist") ? 1 : 0); + } xeData.setMdc(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getMdc())))); xeData.setConc(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getConc())))); xeData.setConcErr(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getConcErr())))); @@ -814,7 +818,10 @@ public class SelfBaseUtil extends AbstractLogOrReport { if (info.nuclides.contains(nuclideName)) { // 峰面积 nuclideParam.put("area", area+""); + nuclideParam.put("exist", true); break; + } else { + nuclideParam.put("exist", false); } } } diff --git a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/entity/vo/SelfXeResults.java b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/entity/vo/SelfXeResults.java index 18fd3080..63d38c03 100644 --- a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/entity/vo/SelfXeResults.java +++ b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/entity/vo/SelfXeResults.java @@ -1,36 +1,8 @@ package org.jeecg.modules.entity.vo; import lombok.Data; +import org.jeecg.modules.base.entity.rnman.GardsXeResults; @Data -public class SelfXeResults { - /** - * 核素名称 - */ - private String nuclideName; - /** - * 感兴趣区活度浓度 - */ - private Double conc; - - /** - * 感兴趣区活度浓度不确定度 - */ - private Double concErr; - /** - * 感兴趣区MDC - */ - private Double mdc; - /** - * 感兴趣区MDC - */ - private Double mda; - /** - * 感兴趣区LC - */ - private Double lc; - /** - * 感兴趣区识别标示;1:识别到,0,未识别到 - */ - private Integer nidFlag; +public class SelfXeResults extends GardsXeResults { } diff --git a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/native_jni/struct/SelfBgAnalyseResult.java b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/native_jni/struct/SelfBgAnalyseResult.java index 22fa8aba..440c0a6c 100644 --- a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/native_jni/struct/SelfBgAnalyseResult.java +++ b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/native_jni/struct/SelfBgAnalyseResult.java @@ -1,14 +1,14 @@ package org.jeecg.modules.native_jni.struct; import lombok.Data; -import org.jeecg.modules.entity.vo.SelfXeResults; +import org.jeecg.modules.entity.GardsXeResultsSpectrum; import java.util.List; @Data public class SelfBgAnalyseResult { - List xeResults; + List xeResults; List s_b_fitting_e_c; List s_g_fitting_e_c; diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SelfStationServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SelfStationServiceImpl.java index 134c4669..909ab6bd 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SelfStationServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SelfStationServiceImpl.java @@ -2637,15 +2637,23 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf sampleVueData.setMapResoPara(phdOne.getMapResoPara()); sampleVueData.setMapEffiPara(phdOne.getMapEffiPara()); - // 调用beta分析 - List betaResult = this.betaAnalyse(selfStationData, nuclideLinesMap); + + SelfStationVueData sampleData = selfStationData.getSampleVueData(); + EnergySpectrumStruct struct = selfStationData.getSampleStruct(); + // 获取自建台站参数 + SelfParameter selfParameter = (SelfParameter) redisUtil.get(RedisConstant.SELF_PARAMETER); + HashMap nuclideMap = selfParameter.getNuclideMap(); + + // 执行Beta分析 + List betaResult = SelfBaseUtil.betaAnalyse(nuclideMap, struct.POI_G_y1, + struct.POI_G_y2, selfStationData.getSampleTmpPath(), sampleData.getROIOnePHDFile(), sampleData.getROITwoPHDFile(), + sampleData.getROIThreePHDFile(), sampleData.getROIFourPHDFile()); resultMap.put("XeData", betaResult); List xeResults = Lists.newArrayList(betaResult); betaDataFile.setXeDataList(xeResults); betaDataFile.setXeResultsSpectrumList(betaResult); - EnergySpectrumStruct struct = selfStationData.getSampleStruct(); //横坐标 beta-gamma long bChannels = struct.b_channels; //纵坐标 gamma @@ -2679,7 +2687,7 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf result.setSuccess(true); result.setResult(resultMap); selfStationData.setBAnalyed(true); - } catch (RuntimeException | AnalyseException e) { + } catch (RuntimeException e) { Log.error("analyse error:", e); result.error500(StrUtil.replace(e.getMessage(), "%s", "ROI")); } catch (Exception e) { @@ -2689,57 +2697,6 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf return result; } - /** - * beta分析 - * @param selfStationData 自建台站缓存数据 - * @param nuclideLinesMap 核素信息 - * @throws JsonProcessingException - */ - private List betaAnalyse(SelfStationData selfStationData, Map nuclideLinesMap) throws Exception { - SelfStationVueData sampleData = selfStationData.getSampleVueData(); - EnergySpectrumStruct struct = selfStationData.getSampleStruct(); - String phdPath = selfStationData.getSampleTmpPath(); - // 获取自建台站参数 - SelfParameter selfParameter = (SelfParameter) redisUtil.get(RedisConstant.SELF_PARAMETER); - HashMap nuclideMap = selfParameter.getNuclideMap(); - - // 获取峰面积、半衰期、发射几率 - HashMap nuclideParam = selfStationUtil.getBetaAnalyseNuclideParam(nuclideMap, struct.POI_G_y1, - struct.POI_G_y2, sampleData.getROIOnePHDFile(), sampleData.getROITwoPHDFile(), - sampleData.getROIThreePHDFile(), sampleData.getROIFourPHDFile()); - - Console.log(JSON.toJSONString(nuclideParam)); - // 调用beta分析算法 - String resultStr = EnergySpectrumHandler.selfBgAnalyse(phdPath, JSON.toJSONString(nuclideParam)); - List xeDataList = new ArrayList<>(); - if (StrUtil.isNotBlank(resultStr)) { - xeDataList = JSON.parseArray(resultStr,GardsXeResultsSpectrum.class); - xeDataList.forEach(GardsXeResultsSpectrum::getMdc); - if (CollectionUtils.isNotEmpty(xeDataList)){ - for (GardsXeResultsSpectrum xeData:xeDataList) { - Double conc = xeData.getConc(); - Double mdc = xeData.getMdc(); - if (conc <= 0){ - xeData.setColor("red"); - xeData.setNidFlag(0); - } else if (0 mdc) { - xeData.setColor("green"); - xeData.setNidFlag(1); - } - xeData.setMdc(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getMdc())))); - xeData.setConc(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getConc())))); - xeData.setConcErr(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getConcErr())))); - xeData.setMda(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getMda())))); - } - } - } - Console.log(resultStr); - return xeDataList; - } - @Override public Result InteractiveTool(Integer sampleId, String fileName, int gammaROINum, HttpServletRequest request) { Result result = new Result();