diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/common/util/PHDFileUtil.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/common/util/PHDFileUtil.java index 20feb26b..054e34e9 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/common/util/PHDFileUtil.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/common/util/PHDFileUtil.java @@ -7,6 +7,7 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.vo.HistogramData; import org.jeecg.modules.entity.vo.SeriseData; import org.jeecg.modules.entity.vo.SpectrumData; +import org.jeecg.modules.entity.vo.XeData; import org.jeecg.modules.native_jni.EnergySpectrumHandler; import org.jeecg.modules.native_jni.struct.EnergySpectrumStruct; import org.springframework.stereotype.Component; @@ -82,65 +83,126 @@ public class PHDFileUtil { } if (CollectionUtils.isNotEmpty(list)){ for (int j=0; j< list.size(); j++){ - HistogramData his = new HistogramData(); - his.setB(i); - his.setG(j); Long count = list.get(j); - his.setC(count); - histogramDataList.add(his); + if (count > 0){ + HistogramData his = new HistogramData(); + his.setB(i); + his.setG(j); + his.setC(count); + histogramDataList.add(his); + } + } } } map.put("histogramDataList", histogramDataList); //Gamma Spectrum Original - List gammaOriginalData = new LinkedList<>(); + long numGChannel = struct.num_g_channel; + List gCounts = struct.g_counts; + List gammaOriginalSeriseData = new LinkedList<>(); + for (int i=0; i gammaProjectedData = new LinkedList<>(); for (int i=0; i gammaSeriseData = new LinkedList<>(); - for (int i=0; i gammaProjectedSeriseData = new LinkedList<>(); + for (int i=0; i> gammaEnergyList = new LinkedList<>(); List gCentroidChannel = struct.g_centroid_channel; List gEnergy = struct.g_energy; - List gammaProjectedData = EnergySpectrumHandler.GetFileFittingPara(gCentroidChannel, gEnergy); - map.put("gammaProjectedData", gammaProjectedData); + List gammaParam = EnergySpectrumHandler.GetFileFittingPara(gCentroidChannel, gEnergy); + List gchannels = new ArrayList<>(); + for (int i=0; i gammaEnergy = EnergySpectrumHandler.GetFileFittingData(gchannels, gammaParam); + gammaEnergyList.add(gammaEnergy); + } + map.put("gammaEnergyData", gammaEnergyList); + //Beta Spectrum Original - List betaOriginalData = new LinkedList<>(); + long numBChannel = struct.num_b_channel; + List bCounts = struct.b_counts; + List betaOriginalSeriseData = new LinkedList<>(); + for (int i=0; i betaProjectedData = new LinkedList<>(); for (int j=0; j betaSeriseData = new LinkedList<>(); - for (int i=0; i betaProjectedSeriseData = new LinkedList<>(); + for (int i=0; i> betaEnergyList = new LinkedList<>(); List bChannel = struct.b_channel; List bElectronEnergy = struct.b_electron_energy; - List betaProjectedData = EnergySpectrumHandler.GetFileFittingPara(bChannel, bElectronEnergy); - map.put("betaProjectedData", betaProjectedData); + List betaParam = EnergySpectrumHandler.GetFileFittingPara(bChannel, bElectronEnergy); + List bchannels = new ArrayList<>(); + for (int i=0; i betaEnergy = EnergySpectrumHandler.GetFileFittingData(bchannels, betaParam); + betaEnergyList.add(betaEnergy); + } + map.put("betaEnergyData", betaEnergyList); + + //Xe + List xeDataList = new LinkedList<>(); + List bgNuclideName = struct.bg_nuclide_name; + List bgRoiNumber = struct.bg_ROI_number; + List bgEfficiency = struct.bg_efficiency; + List bgUncertainty = struct.bg_uncertainty; + for (int i=0; i< bgNuclideName.size(); i++){ + XeData xeData = new XeData(); + xeData.setIsotope(bgNuclideName.get(i)); + xeData.setConcentration(bgRoiNumber.get(i)); + xeData.setUncertainty(bgUncertainty.get(i)); + xeData.setMDC(bgEfficiency.get(i)); + xeDataList.add(xeData); + } + map.put("XeData", xeDataList); } catch (ParseException e) { throw new RuntimeException(e); diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/SpectrumAnalysesController.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/SpectrumAnalysesController.java index 808f9294..00a4082c 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/SpectrumAnalysesController.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/SpectrumAnalysesController.java @@ -37,7 +37,7 @@ public class SpectrumAnalysesController { @GetMapping("getDBSpectrumChart") @ApiOperation(value = "查询折线图相关信息接口", notes = "查询折线图相关信息接口") - public Result getDBSpectrumPie(String dbName, Integer[] sampleId){ + public Result getDBSpectrumPie(String dbName, Integer sampleId){ return spectrumAnalysisService.getDBSpectrumPie(dbName, sampleId); } diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/entity/vo/SpectrumFileRecord.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/entity/vo/SpectrumFileRecord.java index 9a291088..9fa58cc6 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/entity/vo/SpectrumFileRecord.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/entity/vo/SpectrumFileRecord.java @@ -1,6 +1,8 @@ package org.jeecg.modules.entity.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; @@ -24,6 +26,8 @@ public class SpectrumFileRecord implements Serializable { private String siteDetCode; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date collectStart; } diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/entity/vo/XeData.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/entity/vo/XeData.java new file mode 100644 index 00000000..4eeba472 --- /dev/null +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/entity/vo/XeData.java @@ -0,0 +1,18 @@ +package org.jeecg.modules.entity.vo; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class XeData implements Serializable { + + private String Isotope; + + private String Concentration; + + private Double Uncertainty; + + private Double MDC; + +} diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/SpectrumAnalysisMapper.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/SpectrumAnalysisMapper.java index 2ff06281..aefb6792 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/SpectrumAnalysisMapper.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/SpectrumAnalysisMapper.java @@ -4,13 +4,17 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.base.entity.GardsSampleData; import org.jeecg.modules.entity.vo.SpectrumFileRecord; +import org.springframework.format.annotation.DateTimeFormat; +import java.util.Date; import java.util.List; public interface SpectrumAnalysisMapper { Page getDBSpectrumList(IPage page, GardsSampleData gardsSampleData, String dbName, List stationTypes, boolean CollectStop, boolean AcqStart, String startTime, String endTime); - SpectrumFileRecord getDBSpectrumFilePath(String dbName, List sampleIds); + SpectrumFileRecord getDBSpectrumFilePath(String dbName, Integer sampleId); + + String getQCFilePath(String siteDetCode, String collectStartStr); } diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/SpectrumAnalysisMapper.xml b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/SpectrumAnalysisMapper.xml index ae78d1d5..7d5d5d67 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/SpectrumAnalysisMapper.xml +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/SpectrumAnalysisMapper.xml @@ -4,8 +4,8 @@ + \ No newline at end of file diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/ISpectrumAnalysisService.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/ISpectrumAnalysisService.java index a4e0b441..800fd422 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/ISpectrumAnalysisService.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/ISpectrumAnalysisService.java @@ -12,6 +12,6 @@ public interface ISpectrumAnalysisService { Result getDBSpectrumList(QueryRequest queryRequest, GardsSampleData gardsSampleData, String dbName, String[] menuTypes, boolean CollectStop, boolean AcqStart, Date startDate, Date endDate); - Result getDBSpectrumPie(String dbName, Integer[] sampleId); + Result getDBSpectrumPie(String dbName, Integer sampleId); } diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java index 668b22e4..0437a173 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java @@ -113,6 +113,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService { result.error500("请勾选数据库类型"); return result; } + String tempDBName = dbName; if (dbName.equalsIgnoreCase("auto")){ dbName = "RNAUTO.GARDS_ANALYSES"; }else if (dbName.equalsIgnoreCase("man")){ @@ -124,18 +125,26 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService { //声明分页page Page page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize()); Page sampleDataPage = spectrumAnalysisMapper.getDBSpectrumList(page, gardsSampleData, dbName, stationTypes, CollectStop, AcqStart, startTime, endTime); + sampleDataPage.getRecords().stream().forEach(item->{ + item.setDbName(tempDBName); + }); result.setSuccess(true); result.setResult(sampleDataPage); return result; } @Override - public Result getDBSpectrumPie(String dbName, Integer[] sampleId) { + public Result getDBSpectrumPie(String dbName, Integer sampleId) { Result result = new Result(); Map> resultMap = new HashMap<>(); - List sampleIds = Arrays.asList(sampleId); - if (CollectionUtils.isEmpty(sampleIds)){ - result.error500("至少需要选择一个数据"); + if (redisUtil.hasKey("Spectrum_"+sampleId)){ + resultMap = (Map>) redisUtil.get("Spectrum_" + sampleId); + result.setSuccess(true); + result.setResult(resultMap); + return result; + } + if (Objects.isNull(sampleId)){ + result.error500("请选择一条数据"); return result; } if (dbName.equalsIgnoreCase("auto")){ @@ -147,31 +156,40 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService { return result; } //查询数据库文件信息 - SpectrumFileRecord dbSpectrumFilePath = spectrumAnalysisMapper.getDBSpectrumFilePath(dbName, sampleIds); - if(StringUtils.isNotBlank(dbSpectrumFilePath.getSampleFilePath())){ - String sampleFilePath = dbSpectrumFilePath.getSampleFilePath(); - String pathName = sampleFilePath.substring(0, sampleFilePath.lastIndexOf(StringPool.SLASH)); - String fileName = sampleFilePath.substring(sampleFilePath.lastIndexOf(StringPool.SLASH)+1); - Map map = this.fenxi(pathName, fileName); - resultMap.put("sample",map); - } - if(StringUtils.isNotBlank(dbSpectrumFilePath.getGasBgFilePath())){ - String gasBgFilePath = dbSpectrumFilePath.getGasBgFilePath(); - String pathName = gasBgFilePath.substring(0, gasBgFilePath.lastIndexOf(StringPool.SLASH)); - String fileName = gasBgFilePath.substring(gasBgFilePath.lastIndexOf(StringPool.SLASH)+1); - Map map = this.fenxi(pathName, fileName); - } - if(StringUtils.isNotBlank(dbSpectrumFilePath.getDetBgFilePath())){ - String detBgFilePath = dbSpectrumFilePath.getDetBgFilePath(); - String pathName = detBgFilePath.substring(0, detBgFilePath.lastIndexOf(StringPool.SLASH)); - String fileName = detBgFilePath.substring(detBgFilePath.lastIndexOf(StringPool.SLASH)+1); - Map map = this.fenxi(pathName, fileName); - } - if(StringUtils.isNotBlank(dbSpectrumFilePath.getQcFilePath())){ - String qcFilePath = dbSpectrumFilePath.getQcFilePath(); - String pathName = qcFilePath.substring(0, qcFilePath.lastIndexOf(StringPool.SLASH)); - String fileName = qcFilePath.substring(qcFilePath.lastIndexOf(StringPool.SLASH)+1); - Map map = this.fenxi(pathName, fileName); + SpectrumFileRecord dbSpectrumFilePath = spectrumAnalysisMapper.getDBSpectrumFilePath(dbName, sampleId); + if (Objects.nonNull(dbSpectrumFilePath)) { + if(StringUtils.isNotBlank(dbSpectrumFilePath.getSampleFilePath())){ + String sampleFilePath = dbSpectrumFilePath.getSampleFilePath(); + String pathName = sampleFilePath.substring(0, sampleFilePath.lastIndexOf(StringPool.SLASH)); + String fileName = sampleFilePath.substring(sampleFilePath.lastIndexOf(StringPool.SLASH)+1); + Map map = this.fenxi(pathName, fileName); + resultMap.put("sample",map); + } + if(StringUtils.isNotBlank(dbSpectrumFilePath.getGasBgFilePath())){ + String gasBgFilePath = dbSpectrumFilePath.getGasBgFilePath(); + String pathName = gasBgFilePath.substring(0, gasBgFilePath.lastIndexOf(StringPool.SLASH)); + String fileName = gasBgFilePath.substring(gasBgFilePath.lastIndexOf(StringPool.SLASH)+1); + Map map = this.fenxi(pathName, fileName); + resultMap.put("gasBg",map); + } + if(StringUtils.isNotBlank(dbSpectrumFilePath.getDetBgFilePath())){ + String detBgFilePath = dbSpectrumFilePath.getDetBgFilePath(); + String pathName = detBgFilePath.substring(0, detBgFilePath.lastIndexOf(StringPool.SLASH)); + String fileName = detBgFilePath.substring(detBgFilePath.lastIndexOf(StringPool.SLASH)+1); + Map map = this.fenxi(pathName, fileName); + resultMap.put("detBg",map); + } + String collectStartStr = DateUtils.formatDate(dbSpectrumFilePath.getCollectStart(), "yyyy-MM-dd HH:mm:ss"); + String dbQcFilePath = spectrumAnalysisMapper.getQCFilePath(dbSpectrumFilePath.getSiteDetCode(), collectStartStr); + dbSpectrumFilePath.setQcFilePath(dbQcFilePath); + if(StringUtils.isNotBlank(dbSpectrumFilePath.getQcFilePath())){ + String qcFilePath = dbSpectrumFilePath.getQcFilePath(); + String pathName = qcFilePath.substring(0, qcFilePath.lastIndexOf(StringPool.SLASH)); + String fileName = qcFilePath.substring(qcFilePath.lastIndexOf(StringPool.SLASH)+1); + Map map = this.fenxi(pathName, fileName); + resultMap.put("qc",map); + } + redisUtil.set("Spectrum_"+sampleId, resultMap); } result.setSuccess(true); result.setResult(resultMap);