From a210b75205757513472fb70e7fbcda2054d2c107 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Tue, 5 Sep 2023 22:37:09 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9ASample=5FG=5FAnalysis?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/modules/base/dto/GardsPeaksDto.java | 39 ++ .../org/jeecg/modules/base/dto/PairsEDto.java | 13 + .../jeecg/modules/base/dto/PairsEFDto.java | 13 + .../org/jeecg/modules/base/dto/PairsRDto.java | 13 + .../org/jeecg/modules/base/dto/PairsTDto.java | 13 + .../modules/spectrum/Sample_G_Analysis.java | 473 +++++++++--------- 6 files changed, 327 insertions(+), 237 deletions(-) create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/GardsPeaksDto.java create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/PairsEDto.java create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/PairsEFDto.java create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/PairsRDto.java create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/PairsTDto.java diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/GardsPeaksDto.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/GardsPeaksDto.java new file mode 100644 index 00000000..08092dff --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/GardsPeaksDto.java @@ -0,0 +1,39 @@ +package org.jeecg.modules.base.dto; + +import lombok.Data; + +import java.util.List; + +@Data +public class GardsPeaksDto { + + private List peaks_idPeak; //峰序号 + private List peaks_peakCentroid; //峰中心道(道址) + private List peaks_uncpeakCentroid; //峰中心道不确定度(道址) + private List peaks_Energy; //峰中心道能量(keV) + private List peaks_uncEnergy; //峰中心道能量不确定度(keV) + private List peaks_Area; //峰面积(计数)。已扣除基线面积,但未扣除空白样品计数和探测器本底计数 + private List peaks_areaErr; //峰面积不确定度(以计数为单位) + private List peaks_netCountRate; //峰的净计数率(1/s)=峰面积/活时间 未知 + private List peaks_uncNetCountRate; //峰的净计数率的不确定度(1/s) 未知 + private List peaks_Efficiency; //测量系统在峰能量处的绝对效率 + private List peaks_Uncefficiency; //测量系统在峰能量处的绝对效率的不确定度 + private List peaks_Fwhm; //峰的半高宽(keV) + private List peaks_Fwhmc; //峰的半高宽(Channel) + private List peaks_Significance; //峰的灵敏度 + private List peaks_Sensitivity; //重峰序号 + private List peaks_multiIndex; //峰的感兴趣区的起始道left + private List peaks_ROIstart; //峰的感兴趣区的结束道right + private List peaks_ROIend; //峰序号 + private List peaks_tail; // + private List peaks_tailAlpha; // + private List peaks_upperTail; // + private List peaks_upperTailAlpha; // + private List peaks_BWWidthChan; // + private List peaks_recoilDeltaChan; // + private List peaks_stepRatio; // + private List peaks_backgroundArea; //在峰区域下的基线面积(计数) + private List peaks_meanBackCount; //基线面积/道数(计数) + private List peaks_Lc; //峰的可探测线Lc + private List peaks_Ld; //峰的可探测线Ld +} diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/PairsEDto.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/PairsEDto.java new file mode 100644 index 00000000..0d732ee1 --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/PairsEDto.java @@ -0,0 +1,13 @@ +package org.jeecg.modules.base.dto; + +import lombok.Data; +import java.util.List; + +@Data +public class PairsEDto { + + private List calibration_pairs_E_idCalPoint; + private List calibration_pairs_E_xValue; + private List calibration_pairs_E_yValue; + private List calibration_pairs_E_uncYValue; +} diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/PairsEFDto.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/PairsEFDto.java new file mode 100644 index 00000000..804a14ac --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/PairsEFDto.java @@ -0,0 +1,13 @@ +package org.jeecg.modules.base.dto; + +import lombok.Data; +import java.util.List; + +@Data +public class PairsEFDto { + + private List calibration_pairs_EF_idCalPoint; + private List calibration_pairs_EF_xValue; + private List calibration_pairs_EF_yValue; + private List calibration_pairs_EF_uncYValue; +} diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/PairsRDto.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/PairsRDto.java new file mode 100644 index 00000000..09feefc9 --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/PairsRDto.java @@ -0,0 +1,13 @@ +package org.jeecg.modules.base.dto; + +import lombok.Data; +import java.util.List; + +@Data +public class PairsRDto { + + private List calibration_pairs_R_idCalPoint; + private List calibration_pairs_R_xValue; + private List calibration_pairs_R_yValue; + private List calibration_pairs_R_uncYValue; +} diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/PairsTDto.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/PairsTDto.java new file mode 100644 index 00000000..47533b0b --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/PairsTDto.java @@ -0,0 +1,13 @@ +package org.jeecg.modules.base.dto; + +import lombok.Data; +import java.util.List; + +@Data +public class PairsTDto { + + private List calibration_pairs_T_idCalPoint; + private List calibration_pairs_T_xValue; + private List calibration_pairs_T_yValue; + private List calibration_pairs_T_uncYValue; +} diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_G_Analysis.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_G_Analysis.java index 85e269cc..69a6394b 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_G_Analysis.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_G_Analysis.java @@ -9,8 +9,7 @@ import cn.hutool.core.util.StrUtil; import lombok.Data; import org.jeecg.common.constant.DateConstant; import org.jeecg.common.constant.Setting; -import org.jeecg.modules.base.dto.GardsNuclIdedDto; -import org.jeecg.modules.base.dto.QcCheckDto; +import org.jeecg.modules.base.dto.*; import org.jeecg.modules.base.entity.original.GardsSampleData; import org.jeecg.modules.base.entity.rnauto.*; import org.jeecg.modules.entity.vo.*; @@ -21,6 +20,8 @@ import java.util.*; @Data public class Sample_G_Analysis { + private final Map fieldMap = fieldMap(); + // Sample谱原始数据 private GardsSampleData sampleData; @@ -38,111 +39,143 @@ public class Sample_G_Analysis { } public void analysis(){ - /* 准备Gamma分析需要的数据 */ - PHDFile phdFile = getSettingFromDB(); + try { + /* 准备Gamma分析需要的数据 */ + GStoreMiddleProcessData middleData = new GStoreMiddleProcessData(); + Integer sampleId = sampleData.getSampleId(); - Map fieldMap = fieldMap(); + // 保存分析结果 ==> INSERT INTO RNAUTO.GARDS_ANALYSES + saveAnalysis(middleData,sampleId); + // 获取分析结果ID ==> SELECT IDANALYSIS + Integer IdAnalysis = getIdAnalysis(sampleId); + // 修改保存结果状态 ==> UPDATE ORIGINAL.GARDS_SAMPLE_DATA + serviceQuotes.getSampleDataService().updateStatus(null,null); + /* GARDS_CALIBRATION_PAIRS 数据表保存 */ + saveCalibrationPairs(middleData,sampleId,IdAnalysis); + /* GARDS_CALIBRATION 数据表保存 */ + saveCalibration(middleData,sampleId,IdAnalysis); + /* Gards_Peaks 数据表保存 */ + savePeaks(middleData); + /* Gards_Nucl_Lines_Ided 数据表保存 */ + saveNuclLinesIded(middleData,sampleId,IdAnalysis); + /* Gards_Nucl_Ided 数据表保存 */ + saveNuclIded(middleData,sampleId,IdAnalysis); + /* Gards_Qc_Check 数据表保存 */ + saveQcCheck(middleData,sampleId,IdAnalysis); + // 收尾处理 ==> 写日志文件和报告文件 + }catch (Exception e){ + e.printStackTrace(); - /** 从MiddleData获取需要的数据 **/ - GStoreMiddleProcessData middleData = new GStoreMiddleProcessData(); - String pairsSampleType = middleData.getCalibration_pairs_sample_type(); - String calibrationSampleType = middleData.getCalibration_sample_type(); - // Energy - String pairsECaltype = middleData.getCalibration_pairs_E_Caltype(); - String pairsEInput = middleData.getCalibration_pairs_E_Input(); - List pairsEIdCalPoint = middleData.getCalibration_pairs_E_idCalPoint(); - List pairsEXValue = middleData.getCalibration_pairs_E_xValue(); - List pairsEYValue = middleData.getCalibration_pairs_E_yValue(); - List pairsEUncYValue = middleData.getCalibration_pairs_E_uncYValue(); - // Efficiency - String pairsEfCaltype = middleData.getCalibration_pairs_EF_Caltype(); - String pairsEfInput = middleData.getCalibration_pairs_EF_Input(); - List pairsEfIdCalPoint = middleData.getCalibration_pairs_EF_idCalPoint(); - List pairsEfXValue = middleData.getCalibration_pairs_EF_xValue(); - List pairsEfYValue = middleData.getCalibration_pairs_EF_yValue(); - List pairsEfUncYValue = middleData.getCalibration_pairs_EF_uncYValue(); - // Resolution - String pairsRCaltype = middleData.getCalibration_pairs_R_Caltype(); - String pairsRInput = middleData.getCalibration_pairs_R_Input(); - List pairsRIdCalPoint = middleData.getCalibration_pairs_R_idCalPoint(); - List pairsRXValue = middleData.getCalibration_pairs_R_xValue(); - List pairsRYValue = middleData.getCalibration_pairs_R_yValue(); - List pairsRUncYValue = middleData.getCalibration_pairs_R_uncYValue(); - // TotalEfficiency - String pairsTCaltype = middleData.getCalibration_pairs_T_Caltype(); - String pairsTInput = middleData.getCalibration_pairs_T_Input(); - List pairsTIdCalPoint = middleData.getCalibration_pairs_T_idCalPoint(); - List pairsTXValue = middleData.getCalibration_pairs_T_xValue(); - List pairsTYValue = middleData.getCalibration_pairs_T_yValue(); - List pairsTUncYValue = middleData.getCalibration_pairs_T_uncYValue(); + }finally { - // 保存分析结果 ==> INSERT INTO RNAUTO.GARDS_ANALYSES + } + } + + public void saveAnalysis(GStoreMiddleProcessData middleData,Integer sampleId){ GardsAnalyses analysis = toAnalysis(middleData); - Integer sampleId = sampleData.getSampleId(); analysis.setSampleId(sampleId); serviceQuotes.getAnalysesService().save(analysis); - // 获取分析结果ID ==> SELECT IDANALYSIS - Integer IdAnalysis = serviceQuotes.getAnalysesService().getIdAnalysis(sampleId); - // ==> UPDATE ORIGINAL.GARDS_SAMPLE_DATA - serviceQuotes.getSampleDataService().updateStatus(null,null); - // Energy ==> INSERT INTO RNAUTO.GARDS_CALIBRATION_PAIRS - GardsCalibrationPairs calibrationPairs = new GardsCalibrationPairs(); - calibrationPairs.setSampleId(sampleId); - calibrationPairs.setIdAnalysis(IdAnalysis); - calibrationPairs.setSampleType(pairsSampleType); - calibrationPairs.setCaltype(pairsECaltype); - calibrationPairs.setInput(pairsEInput); - calibrationPairs.setIdCalPoint(null); - calibrationPairs.setXValue(null); - calibrationPairs.setYValue(null); - calibrationPairs.setUncYValue(null); - serviceQuotes.getGardsCalibrationPairsService().save(calibrationPairs); - // Efficiency ==> INSERT INTO RNAUTO.GARDS_CALIBRATION_PAIRS - calibrationPairs.setCaltype(pairsEfCaltype); - calibrationPairs.setInput(pairsEfInput); - calibrationPairs.setIdCalPoint(null); - calibrationPairs.setXValue(null); - calibrationPairs.setYValue(null); - calibrationPairs.setUncYValue(null); - serviceQuotes.getGardsCalibrationPairsService().save(calibrationPairs); - // Resolution ==> INSERT INTO RNAUTO.GARDS_CALIBRATION_PAIRS - calibrationPairs.setCaltype(pairsRCaltype); - calibrationPairs.setInput(pairsRInput); - calibrationPairs.setIdCalPoint(null); - calibrationPairs.setXValue(null); - calibrationPairs.setYValue(null); - calibrationPairs.setUncYValue(null); - serviceQuotes.getGardsCalibrationPairsService().save(calibrationPairs); - // TotalEfficiency ==> INSERT INTO RNAUTO.GARDS_CALIBRATION_PAIRS - calibrationPairs.setCaltype(pairsTCaltype); - calibrationPairs.setInput(pairsTInput); - calibrationPairs.setIdCalPoint(null); - calibrationPairs.setXValue(null); - calibrationPairs.setYValue(null); - calibrationPairs.setUncYValue(null); - serviceQuotes.getGardsCalibrationPairsService().save(calibrationPairs); - // E ==> INSERT INTO RNAUTO.GARDS_CALIBRATION - GardsCalibration calibration = new GardsCalibration(); - calibration.setSampleId(sampleId); - calibration.setIdAnalysis(IdAnalysis); - calibration.setSampleType(calibrationSampleType); - if (CollUtil.isNotEmpty(pairsEIdCalPoint)){ - String eCaltype = middleData.getCalibration_E_Caltype(); - double eFunction = middleData.getCalibration_E_function(); - String eFunctionDef = middleData.getCalibration_E_functionDef(); - double eStartOfRange = middleData.getCalibration_E_startOfRange(); - double eEndOfRange = middleData.getCalibration_E_endOfRange(); - String eCoeffString = middleData.getCalibration_E_coeff_string(); - calibration.setCalType(eCaltype); - calibration.setFunction((int)eFunction); - calibration.setFunctionDef(eFunctionDef); - calibration.setStartOfRange((int)eStartOfRange); - calibration.setEndOfRange((int)eEndOfRange); - calibration.setCoeffString(eCoeffString); - serviceQuotes.getGardsCalibrationService().save(calibration); + } + + public Integer getIdAnalysis(Integer sampleId){ + return serviceQuotes.getAnalysesService().getIdAnalysis(sampleId); + } + + public void saveCalibrationPairs(GStoreMiddleProcessData middleData, + Integer sampleId, Integer IdAnalysis){ + String pairsSampleType = middleData.getCalibration_pairs_sample_type(); + GardsCalibrationPairs pairs = new GardsCalibrationPairs(); + // GARDS_CALIBRATION_PAIRS (Energy) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION_PAIRS + String base_E_Paris = "calibration_pairs_E_idCalPoint"; + PairsEDto pairsEDto = new PairsEDto(); + BeanUtil.copyProperties(middleData,pairsEDto); + List pairsE = mapFields(pairsEDto, pairs, base_E_Paris, fieldMap); + String pairsECaltype = middleData.getCalibration_pairs_E_Caltype(); + String pairsEInput = middleData.getCalibration_pairs_E_Input(); + for (GardsCalibrationPairs onePairs : pairsE) { + onePairs.setSampleId(sampleId); + onePairs.setIdAnalysis(IdAnalysis); + onePairs.setSampleType(pairsSampleType); + onePairs.setCaltype(pairsECaltype); + onePairs.setInput(pairsEInput); } - // EF ==> INSERT INTO RNAUTO.GARDS_CALIBRATION - if (CollUtil.isNotEmpty(pairsEfIdCalPoint)){ + // GARDS_CALIBRATION_PAIRS (Efficiency) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION_PAIRS + String base_EF_Paris = "calibration_pairs_EF_idCalPoint"; + PairsEFDto pairsEFDto = new PairsEFDto(); + BeanUtil.copyProperties(middleData,pairsEFDto); + List pairsEF = mapFields(pairsEFDto, pairs, base_EF_Paris, fieldMap); + String pairsEFCaltype = middleData.getCalibration_pairs_EF_Caltype(); + String pairsEFInput = middleData.getCalibration_pairs_EF_Input(); + for (GardsCalibrationPairs onePairs : pairsEF) { + onePairs.setSampleId(sampleId); + onePairs.setIdAnalysis(IdAnalysis); + onePairs.setSampleType(pairsSampleType); + onePairs.setCaltype(pairsEFCaltype); + onePairs.setInput(pairsEFInput); + } + // GARDS_CALIBRATION_PAIRS (Resolution) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION_PAIRS + String base_R_Paris = "calibration_pairs_R_idCalPoint"; + PairsRDto pairsRDto = new PairsRDto(); + BeanUtil.copyProperties(middleData,pairsRDto); + List pairsR = mapFields(pairsRDto, pairs, base_R_Paris, fieldMap); + String pairsRCaltype = middleData.getCalibration_pairs_R_Caltype(); + String pairsRInput = middleData.getCalibration_pairs_R_Input(); + for (GardsCalibrationPairs onePairs : pairsR) { + onePairs.setSampleId(sampleId); + onePairs.setIdAnalysis(IdAnalysis); + onePairs.setSampleType(pairsSampleType); + onePairs.setCaltype(pairsRCaltype); + onePairs.setInput(pairsRInput); + } + // GARDS_CALIBRATION_PAIRS (TotalEfficiency) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION_PAIRS + String base_T_Paris = "calibration_pairs_T_idCalPoint"; + PairsTDto pairsTDto = new PairsTDto(); + BeanUtil.copyProperties(middleData,pairsTDto); + List pairsT = mapFields(pairsTDto, pairs, base_T_Paris, fieldMap); + String pairsTCaltype = middleData.getCalibration_pairs_T_Caltype(); + String pairsTInput = middleData.getCalibration_pairs_T_Input(); + for (GardsCalibrationPairs onePairs : pairsT) { + onePairs.setSampleId(sampleId); + onePairs.setIdAnalysis(IdAnalysis); + onePairs.setSampleType(pairsSampleType); + onePairs.setCaltype(pairsTCaltype); + onePairs.setInput(pairsTInput); + } + // GARDS_CALIBRATION_PAIRS 汇总保存 + List allPairs = new ArrayList<>(); + allPairs.addAll(pairsE);allPairs.addAll(pairsEF); + allPairs.addAll(pairsR);allPairs.addAll(pairsT); + serviceQuotes.getGardsCalibrationPairsService().saveBatch(allPairs); + } + + public void saveCalibration(GStoreMiddleProcessData middleData, + Integer sampleId, Integer IdAnalysis){ + String calibrationSampleType = middleData.getCalibration_sample_type(); + List pairsEIdCalPoint = middleData.getCalibration_pairs_E_idCalPoint(); + List pairsEFIdCalPoint = middleData.getCalibration_pairs_EF_idCalPoint(); + List pairsRIdCalPoint = middleData.getCalibration_pairs_R_idCalPoint(); + List pairsTIdCalPoint = middleData.getCalibration_pairs_T_idCalPoint(); + List calibrations = new ArrayList<>(); + // GARDS_CALIBRATION (E) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION + if (CollUtil.isNotEmpty(pairsEIdCalPoint)){ + GardsCalibration calibration = new GardsCalibration(); + calibration.setSampleId(sampleId); + calibration.setIdAnalysis(IdAnalysis); + calibration.setSampleType(calibrationSampleType); + calibration.setCalType(middleData.getCalibration_E_Caltype()); + calibration.setFunction((int)middleData.getCalibration_E_function()); + calibration.setFunctionDef(middleData.getCalibration_E_functionDef()); + calibration.setStartOfRange((int)middleData.getCalibration_E_startOfRange()); + calibration.setEndOfRange((int)middleData.getCalibration_E_endOfRange()); + calibration.setCoeffString(middleData.getCalibration_E_coeff_string()); + calibrations.add(calibration); + } + // GARDS_CALIBRATION (EF) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION + if (CollUtil.isNotEmpty(pairsEFIdCalPoint)){ + GardsCalibration calibration = new GardsCalibration(); + calibration.setSampleId(sampleId); + calibration.setIdAnalysis(IdAnalysis); + calibration.setSampleType(calibrationSampleType); String efCaltype = middleData.getCalibration_EF_Caltype(); double efFunction = middleData.getCalibration_EF_function(); String efFunctionDef = middleData.getCalibration_EF_functionDef(); @@ -155,10 +188,14 @@ public class Sample_G_Analysis { calibration.setStartOfRange((int)efStartOfRange); calibration.setEndOfRange((int)efEndOfRange); calibration.setCoeffString(efCoeffString); - serviceQuotes.getGardsCalibrationService().save(calibration); + calibrations.add(calibration); } - // R ==> INSERT INTO RNAUTO.GARDS_CALIBRATION + // GARDS_CALIBRATION (R) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION if (CollUtil.isNotEmpty(pairsRIdCalPoint)){ + GardsCalibration calibration = new GardsCalibration(); + calibration.setSampleId(sampleId); + calibration.setIdAnalysis(IdAnalysis); + calibration.setSampleType(calibrationSampleType); String rCaltype = middleData.getCalibration_R_Caltype(); double rFunction = middleData.getCalibration_R_function(); String rFunctionDef = middleData.getCalibration_R_functionDef(); @@ -171,10 +208,14 @@ public class Sample_G_Analysis { calibration.setStartOfRange((int)rStartOfRange); calibration.setEndOfRange((int)rEndOfRange); calibration.setCoeffString(rCoeffString); - serviceQuotes.getGardsCalibrationService().save(calibration); + calibrations.add(calibration); } - // T ==> INSERT INTO RNAUTO.GARDS_CALIBRATION + // GARDS_CALIBRATION (T) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION if (CollUtil.isNotEmpty(pairsTIdCalPoint)){ + GardsCalibration calibration = new GardsCalibration(); + calibration.setSampleId(sampleId); + calibration.setIdAnalysis(IdAnalysis); + calibration.setSampleType(calibrationSampleType); String tCaltype = middleData.getCalibration_T_Caltype(); double tFunction = middleData.getCalibration_T_function(); String tFunctionDef = middleData.getCalibration_T_functionDef(); @@ -182,121 +223,38 @@ public class Sample_G_Analysis { double tEndOfRange = middleData.getCalibration_T_endOfRange(); String tCoeffString = middleData.getCalibration_T_coeff_string(); calibration.setCalType(tCaltype); - calibration.setFunction((int)tFunction); + calibration.setFunction((int)middleData.getCalibration_T_function()); calibration.setFunctionDef(tFunctionDef); calibration.setStartOfRange((int)tStartOfRange); calibration.setEndOfRange((int)tEndOfRange); calibration.setCoeffString(tCoeffString); - serviceQuotes.getGardsCalibrationService().save(calibration); + calibrations.add(calibration); } + serviceQuotes.getGardsCalibrationService().saveBatch(calibrations); + } + + public void savePeaks(GStoreMiddleProcessData middleData){ // Gards_Peaks数据表 ==> INSERT INTO RNAUTO.GARDS_PEAKS - List idPeak = middleData.getPeaks_idPeak(); - if (CollUtil.isNotEmpty(idPeak)){ - List peakCentroid = middleData.getPeaks_peakCentroid(); - List uncpeakCentroid = middleData.getPeaks_uncpeakCentroid(); - List energy = middleData.getPeaks_Energy(); - List uncEnergy = middleData.getPeaks_uncEnergy(); - List area = middleData.getPeaks_Area(); - List areaErr = middleData.getPeaks_areaErr(); - List efficiency = middleData.getPeaks_Efficiency(); - List uncefficiency = middleData.getPeaks_Uncefficiency(); - List fwhm = middleData.getPeaks_Fwhm(); - List fwhmc = middleData.getPeaks_Fwhmc(); - List significance = middleData.getPeaks_Significance(); - List sensitivity = middleData.getPeaks_Sensitivity(); - List multiIndex = middleData.getPeaks_multiIndex(); - List roIstart = middleData.getPeaks_ROIstart(); - List roIend = middleData.getPeaks_ROIend(); - List tail = middleData.getPeaks_tail(); - List tailAlpha = middleData.getPeaks_tailAlpha(); - List upperTail = middleData.getPeaks_upperTail(); - List upperTailAlpha = middleData.getPeaks_upperTailAlpha(); - List bwWidthChan = middleData.getPeaks_BWWidthChan(); - List recoilDeltaChan = middleData.getPeaks_recoilDeltaChan(); - List stepRatio = middleData.getPeaks_stepRatio(); - List backgroundArea = middleData.getPeaks_backgroundArea(); - List meanBackCount = middleData.getPeaks_meanBackCount(); - List lc = middleData.getPeaks_Lc(); - List ld = middleData.getPeaks_Ld(); - List netCountRate = middleData.getPeaks_netCountRate(); - List uncNetCountRate = middleData.getPeaks_uncNetCountRate(); - List peaks = new ArrayList<>(); - for (int i = 0; i < idPeak.size(); i++) { - GardsPeaks peak = new GardsPeaks(); - peak.setSampleId(sampleId); - peak.setIdAnalysis(IdAnalysis); - if (StrUtil.isNotBlank(idPeak.get(i))) - peak.setIdPeak(Integer.valueOf(idPeak.get(i))); - if (StrUtil.isNotBlank(peakCentroid.get(i))) - peak.setCentroidChannel(Double.valueOf(peakCentroid.get(i))); - if (StrUtil.isNotBlank(uncpeakCentroid.get(i))) - peak.setUncCentroidChannel(Double.valueOf(uncpeakCentroid.get(i))); - if (StrUtil.isNotBlank(energy.get(i))) - peak.setEnergy(Double.valueOf(energy.get(i))); - if (StrUtil.isNotBlank(uncEnergy.get(i))) - peak.setUncEnergy(Double.valueOf(uncEnergy.get(i))); - if (StrUtil.isNotBlank(area.get(i))) - peak.setArea(Double.valueOf(area.get(i))); - if (StrUtil.isNotBlank(areaErr.get(i))) - peak.setUncArea(Double.valueOf(areaErr.get(i))); - if (StrUtil.isNotBlank(efficiency.get(i))) - peak.setEfficiency(Double.valueOf(efficiency.get(i))); - if (StrUtil.isNotBlank(uncefficiency.get(i))) - peak.setUncefficiency(Double.valueOf(uncefficiency.get(i))); - if (StrUtil.isNotBlank(fwhm.get(i))) - peak.setFwhm(Double.valueOf(fwhm.get(i))); - if (StrUtil.isNotBlank(fwhmc.get(i))) - peak.setFwtm(Double.valueOf(fwhmc.get(i))); - if (StrUtil.isNotBlank(significance.get(i))) - peak.setSignificance(Double.valueOf(significance.get(i))); - if (StrUtil.isNotBlank(sensitivity.get(i))) - peak.setSensitivity(Double.valueOf(sensitivity.get(i))); - if (StrUtil.isNotBlank(multiIndex.get(i))) - peak.setMulitiIndex(Double.valueOf(multiIndex.get(i))); - if (StrUtil.isNotBlank(roIstart.get(i))) - peak.setRoiStart(Double.valueOf(roIstart.get(i))); - if (StrUtil.isNotBlank(roIend.get(i))) - peak.setRoiEnd(Double.valueOf(roIend.get(i))); - if (StrUtil.isNotBlank(tail.get(i))) - peak.setTail(Double.valueOf(tail.get(i))); - if (StrUtil.isNotBlank(tailAlpha.get(i))) - peak.setTailAlpha(Double.valueOf(tailAlpha.get(i))); - if (StrUtil.isNotBlank(upperTail.get(i))) - peak.setUpperTail(Double.valueOf(upperTail.get(i))); - if (StrUtil.isNotBlank(upperTailAlpha.get(i))) - peak.setUpperTailAlpha(Double.valueOf(upperTailAlpha.get(i))); - if (StrUtil.isNotBlank(bwWidthChan.get(i))) - peak.setBwwidthchan(Double.valueOf(bwWidthChan.get(i))); - if (StrUtil.isNotBlank(recoilDeltaChan.get(i))) - peak.setRecoildeltachan(Double.valueOf(recoilDeltaChan.get(i))); - if (StrUtil.isNotBlank(stepRatio.get(i))) - peak.setStepraio(Double.valueOf(stepRatio.get(i))); - if (StrUtil.isNotBlank(backgroundArea.get(i))) - peak.setBackgroundarea(Double.valueOf(backgroundArea.get(i))); - if (StrUtil.isNotBlank(meanBackCount.get(i))) - peak.setMeanbackcount(Double.valueOf(meanBackCount.get(i))); - if (StrUtil.isNotBlank(lc.get(i))) - peak.setLc(Double.valueOf(lc.get(i))); - if (StrUtil.isNotBlank(ld.get(i))) - peak.setLd(Double.valueOf(ld.get(i))); - if (StrUtil.isNotBlank(netCountRate.get(i))) - peak.setNetCountRate(Double.valueOf(netCountRate.get(i))); - if (StrUtil.isNotBlank(uncNetCountRate.get(i))) - peak.setUncNetCountRate(Double.valueOf(uncNetCountRate.get(i))); - peaks.add(peak); - } - serviceQuotes.getGardsPeaksAutoService().saveBatch(peaks); - } + String base_P_IdPeak = "peaks_idPeak"; + GardsPeaksDto gardsPeaksDto = new GardsPeaksDto(); + BeanUtil.copyProperties(middleData,gardsPeaksDto); + GardsPeaks gardsPeaks = new GardsPeaks(); + List peaks = mapFields(gardsPeaksDto, gardsPeaks, base_P_IdPeak, fieldMap); + serviceQuotes.getGardsPeaksAutoService().saveBatch(peaks); + } + + public void saveNuclLinesIded(GStoreMiddleProcessData middleData, + Integer sampleId, Integer IdAnalysis){ // Gards_Nucl_Lines_Ided数据表 ==> INSERT INTO RNAUTO.GARDS_NUCL_LINES_IDED Map nuclLinesIdedData = middleData.getNucl_lines_ided_data(); - String base_idPeak = "idPeak"; + String base_IdPeak = "idPeak"; List allNuclLinesIdeds = new ArrayList<>(); for (Map.Entry entry : nuclLinesIdedData.entrySet()) { String nuclideName = entry.getKey(); GStoreMiddleProcessDataNuclLinesIded nuclLinesIded = entry.getValue(); GardsNuclLinesIded gardsNuclLinesIded = new GardsNuclLinesIded(); List gardsNuclLinesIdeds = - mapFields(nuclLinesIded, gardsNuclLinesIded, base_idPeak, fieldMap); + mapFields(nuclLinesIded, gardsNuclLinesIded, base_IdPeak, fieldMap); if (CollUtil.isNotEmpty(gardsNuclLinesIdeds)){ for (GardsNuclLinesIded ided : gardsNuclLinesIdeds) { ided.setSampleId(sampleId); @@ -307,19 +265,28 @@ public class Sample_G_Analysis { } } serviceQuotes.getGardsNuclLinesIdedAutoService().saveBatch(allNuclLinesIdeds); + } + + public void saveNuclIded(GStoreMiddleProcessData middleData, + Integer sampleId, Integer IdAnalysis){ // Gards_Nucl_Ided数据表 ==> INSERT INTO RNAUTO.GARDS_NUCL_IDED GardsNuclIdedDto gardsNuclIdedDto = new GardsNuclIdedDto(); GardsNuclIded gardsNuclIded = new GardsNuclIded(); BeanUtil.copyProperties(middleData,gardsNuclIdedDto); - String base_nuclideName = "nucl_ided_Nuclidename"; + String base_NuclideName = "nucl_ided_Nuclidename"; List gardsNuclIdeds = - mapFields(gardsNuclIdedDto, gardsNuclIded, base_nuclideName, fieldMap); + mapFields(gardsNuclIdedDto, gardsNuclIded, base_NuclideName, fieldMap); for (GardsNuclIded ided : gardsNuclIdeds) { ided.setSampleId(sampleId); ided.setIdAnalysis(IdAnalysis); } // serviceQuotes.get + } + + public void saveQcCheck(GStoreMiddleProcessData middleData, + Integer sampleId, Integer IdAnalysis){ // Gards_Qc_Check数据表 ==> INSERT INTO RNAUTO.GARDS_QC_CHECK + PHDFile phdFile = getSettingFromDB(); Map qcItems = phdFile.getQcItems(); if (MapUtil.isNotEmpty(qcItems)){ String base_QC = String.valueOf(qcItems.size()); @@ -333,7 +300,6 @@ public class Sample_G_Analysis { } serviceQuotes.getGardsQcCheckAutoService().saveBatch(gardsQcChecks); } - } public void getNuclideLinesG(){ @@ -347,42 +313,75 @@ public class Sample_G_Analysis { public Map fieldMap(){ Map fieldMap = new HashMap<>(); // Gards_Nucl_Lines_Ided - fieldMap.put("nuclideFullname","nuclidefullname"); - fieldMap.put("Energy","energy"); - fieldMap.put("Abundance","abundance"); - fieldMap.put("Activity","activity"); - fieldMap.put("Effic","effic"); - fieldMap.put("uncEffic","unEffic"); - fieldMap.put("Mda","mda"); - fieldMap.put("key_flag","keyFlag"); - fieldMap.put("csc_ratio","cscRatio"); - fieldMap.put("csc_ratio_err","cscRatioErr"); - fieldMap.put("csc_mod_flag","cscModFlag"); - fieldMap.put("MDC","mdc"); + fieldMap.put("nuclideFullname","nuclidefullname");fieldMap.put("Energy","energy"); + fieldMap.put("Abundance","abundance");fieldMap.put("Activity","activity"); + fieldMap.put("Effic","effic");fieldMap.put("uncEffic","unEffic"); + fieldMap.put("Mda","mda");fieldMap.put("key_flag","keyFlag"); + fieldMap.put("csc_ratio","cscRatio");fieldMap.put("csc_ratio_err","cscRatioErr"); + fieldMap.put("csc_mod_flag","cscModFlag");fieldMap.put("MDC","mdc"); fieldMap.put("Concentration","concentration"); // Gards_Nucl_Ided - fieldMap.put("nucl_ided_Nucidename","nuclideName"); - fieldMap.put("nucl_ided_Type","type"); - fieldMap.put("nucl_ided_Halflife","halflife"); - fieldMap.put("nucl_ided_ave_activ","aveActiv"); - fieldMap.put("nucl_ided_ave_activ_err","aveActivErr"); - fieldMap.put("nucl_ided_activ_key","activKey"); - fieldMap.put("nucl_ided_activ_key_err","activKeyErr"); - fieldMap.put("nucl_ided_mda","mda"); - fieldMap.put("nucl_ided_mda_err","mdaErr"); - fieldMap.put("nucl_ided_nid_flag","nidFlag"); - fieldMap.put("nucl_ided_csc_ratio","cscRatio"); - fieldMap.put("nucl_ided_csc_ratio_err","cscRatioErr"); - fieldMap.put("nucl_ided_csc_mod_flag","cscModFlag"); - fieldMap.put("nucl_ided_MDC","mdc"); - fieldMap.put("nucl_ided_Concentration","concentration"); - fieldMap.put("nucl_ided_Key_Energy","keyEnergy"); + fieldMap.put("nucl_ided_Nucidename","nuclideName");fieldMap.put("nucl_ided_Type","type"); + fieldMap.put("nucl_ided_Halflife","halflife");fieldMap.put("nucl_ided_ave_activ","aveActiv"); + fieldMap.put("nucl_ided_ave_activ_err","aveActivErr");fieldMap.put("nucl_ided_activ_key","activKey"); + fieldMap.put("nucl_ided_activ_key_err","activKeyErr");fieldMap.put("nucl_ided_mda","mda"); + fieldMap.put("nucl_ided_mda_err","mdaErr");fieldMap.put("nucl_ided_nid_flag","nidFlag"); + fieldMap.put("nucl_ided_csc_ratio","cscRatio");fieldMap.put("nucl_ided_csc_ratio_err","cscRatioErr"); + fieldMap.put("nucl_ided_csc_mod_flag","cscModFlag");fieldMap.put("nucl_ided_MDC","mdc"); + fieldMap.put("nucl_ided_Concentration","concentration");fieldMap.put("nucl_ided_Key_Energy","keyEnergy"); fieldMap.put("nucl_ided_Key_Yield","keyYield"); // Gards_Qc_Check fieldMap.put("QC_CHECK_QC_NAME","qcName"); fieldMap.put("QC_CHECK_QC_VALUE","qcValue"); fieldMap.put("QC_CHECK_QC_STANDARD","qcStandard"); fieldMap.put("QC_CHECK_QC_RESULT","qcResult"); + // Gards_Peaks + fieldMap.put("peaks_idPeak", "idPeak"); + fieldMap.put("peaks_peakCentroid", "centroidChannel"); + fieldMap.put("peaks_uncpeakCentroid", "uncCentroidChannel"); + fieldMap.put("peaks_Energy", "energy"); + fieldMap.put("peaks_uncEnergy", "uncEnergy"); + fieldMap.put("peaks_Area", "area"); + fieldMap.put("peaks_areaErr", "uncArea"); + fieldMap.put("peaks_netCountRate", "netCountRate"); + fieldMap.put("peaks_uncNetCountRate", "uncNetCountRate"); + fieldMap.put("peaks_Efficiency", "efficiency"); + fieldMap.put("peaks_Uncefficiency", "uncefficiency"); + fieldMap.put("peaks_Fwhm", "fwhm"); + fieldMap.put("peaks_Fwhmc", "fwtm"); + fieldMap.put("peaks_Significance", "significance"); + fieldMap.put("peaks_Sensitivity", "sensitivity"); + fieldMap.put("peaks_multiIndex", "mulitiIndex"); + fieldMap.put("peaks_ROIstart", "roiStart"); + fieldMap.put("peaks_ROIend", "roiEnd"); + fieldMap.put("peaks_tail", "tail"); + fieldMap.put("peaks_tailAlpha", "tailAlpha"); + fieldMap.put("peaks_upperTail", "upperTail"); + fieldMap.put("peaks_upperTailAlpha", "upperTailAlpha"); + fieldMap.put("peaks_BWWidthChan", "bwwidthchan"); + fieldMap.put("peaks_recoilDeltaChan", "recoildeltachan"); + fieldMap.put("peaks_stepRatio", "stepraio"); + fieldMap.put("peaks_backgroundArea", "backgroundarea"); + fieldMap.put("peaks_meanBackCount", "meanbackcount"); + fieldMap.put("peaks_Lc", "lc"); + fieldMap.put("peaks_Ld", "ld"); + // GARDS_CALIBRATION_PAIRS + fieldMap.put("calibration_pairs_E_idCalPoint","idCalPoint"); + fieldMap.put("calibration_pairs_E_xValue","xValue"); + fieldMap.put("calibration_pairs_E_yValue","yValue"); + fieldMap.put("calibration_pairs_E_uncYValue","uncYValue"); + fieldMap.put("calibration_pairs_EF_idCalPoint","idCalPoint"); + fieldMap.put("calibration_pairs_EF_xValue","xValue"); + fieldMap.put("calibration_pairs_EF_yValue","yValue"); + fieldMap.put("calibration_pairs_EF_uncYValue","uncYValue"); + fieldMap.put("calibration_pairs_R_idCalPoint","idCalPoint"); + fieldMap.put("calibration_pairs_R_xValue","xValue"); + fieldMap.put("calibration_pairs_R_yValue","yValue"); + fieldMap.put("calibration_pairs_R_uncYValue","uncYValue"); + fieldMap.put("calibration_pairs_T_idCalPoint","idCalPoint"); + fieldMap.put("calibration_pairs_T_xValue","xValue"); + fieldMap.put("calibration_pairs_T_yValue","yValue"); + fieldMap.put("calibration_pairs_T_uncYValue","uncYValue"); return fieldMap; } @@ -472,7 +471,7 @@ public class Sample_G_Analysis { return gardsAnalyses; } - public static List mapFields(T1 source, T2 tartget, String baseLine, Map fieldMap) { + public List mapFields(T1 source, T2 tartget, String baseLine, Map fieldMap) { try { List result = new ArrayList<>(); Class sourceClass = source.getClass();