fix:修改 自动处理分析新beta保存刻度数据业务。修改从数据库加载读取刻度数据业务逻辑

This commit is contained in:
xiaoguangbin 2024-09-30 15:24:39 +08:00
parent 2908b406d7
commit e6d017af0b
12 changed files with 911 additions and 523 deletions

View File

@ -554,7 +554,7 @@ public class Sample_C_Analysis {
// 修改保存结果状态 ==> UPDATE ORIGINAL.GARDS_SAMPLE_DATA
// serviceQuotes.getSampleDataService().updateStatus(null,null);
/* GARDS_CALIBRATION_PAIRS_ROI 数据表保存 */
saveCalibrationPairsROI(sampleId, idAnalysis);
saveCalibrationPairs(sampleId, idAnalysis);
/* GARDS_CALIBRATION_ROI 数据表保存 */
saveCalibrationROI(sampleId, idAnalysis);
/* Gards_Peaks_ROI 数据表保存 */
@ -919,22 +919,21 @@ public class Sample_C_Analysis {
this.middleDataMap = middleDataMap;
}
public List<GardsCalibrationPairsRoi> saveCalibrationPairsROI(Integer sampleId, Integer IdAnalysis,
Integer roiId, GStoreMiddleProcessData middleData){
public List<GardsCalibrationPairs> saveCalibrationPairs(Integer sampleId, Integer IdAnalysis,
Integer roiId, GStoreMiddleProcessData middleData){
String pairsSampleType = middleData.getCalibration_pairs_sample_type();
GardsCalibrationPairsRoi pairs = new GardsCalibrationPairsRoi();
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<GardsCalibrationPairsRoi> pairsE = Lists.newArrayList();
List<GardsCalibrationPairs> pairsE = Lists.newArrayList();
if (!pairsEDto.getCalibration_pairs_E_idCalPoint().isEmpty()) {
pairsE = mapFields(pairsEDto, pairs, base_E_Paris, fieldMap);
String pairsECaltype = middleData.getCalibration_pairs_E_Caltype();
String pairsEInput = middleData.getCalibration_pairs_E_Input();
for (GardsCalibrationPairsRoi onePairs : pairsE) {
for (GardsCalibrationPairs onePairs : pairsE) {
onePairs.setSampleId(sampleId);
onePairs.setRoiId(roiId);
onePairs.setIdAnalysis(IdAnalysis);
onePairs.setSampleType(pairsSampleType);
onePairs.setCaltype(pairsECaltype);
@ -945,14 +944,13 @@ public class Sample_C_Analysis {
String base_EF_Paris = "calibration_pairs_EF_idCalPoint";
PairsEFDto pairsEFDto = new PairsEFDto();
BeanUtil.copyProperties(middleData, pairsEFDto);
List<GardsCalibrationPairsRoi> pairsEF = Lists.newArrayList();
List<GardsCalibrationPairs> pairsEF = Lists.newArrayList();
if (!pairsEFDto.getCalibration_pairs_EF_idCalPoint().isEmpty()) {
pairsEF = mapFields(pairsEFDto, pairs, base_EF_Paris, fieldMap);
String pairsEFCaltype = middleData.getCalibration_pairs_EF_Caltype();
String pairsEFInput = middleData.getCalibration_pairs_EF_Input();
for (GardsCalibrationPairsRoi onePairs : pairsEF) {
for (GardsCalibrationPairs onePairs : pairsEF) {
onePairs.setSampleId(sampleId);
onePairs.setRoiId(roiId);
onePairs.setIdAnalysis(IdAnalysis);
onePairs.setSampleType(pairsSampleType);
onePairs.setCaltype(pairsEFCaltype);
@ -963,14 +961,13 @@ public class Sample_C_Analysis {
String base_R_Paris = "calibration_pairs_R_idCalPoint";
PairsRDto pairsRDto = new PairsRDto();
BeanUtil.copyProperties(middleData,pairsRDto);
List<GardsCalibrationPairsRoi> pairsR = Lists.newArrayList();
List<GardsCalibrationPairs> pairsR = Lists.newArrayList();
if (!pairsRDto.getCalibration_pairs_R_idCalPoint().isEmpty()) {
pairsR = mapFields(pairsRDto, pairs, base_R_Paris, fieldMap);
String pairsRCaltype = middleData.getCalibration_pairs_R_Caltype();
String pairsRInput = middleData.getCalibration_pairs_R_Input();
for (GardsCalibrationPairsRoi onePairs : pairsR) {
for (GardsCalibrationPairs onePairs : pairsR) {
onePairs.setSampleId(sampleId);
onePairs.setRoiId(roiId);
onePairs.setIdAnalysis(IdAnalysis);
onePairs.setSampleType(pairsSampleType);
onePairs.setCaltype(pairsRCaltype);
@ -981,14 +978,13 @@ public class Sample_C_Analysis {
String base_T_Paris = "calibration_pairs_T_idCalPoint";
PairsTDto pairsTDto = new PairsTDto();
BeanUtil.copyProperties(middleData,pairsTDto);
List<GardsCalibrationPairsRoi> pairsT = Lists.newArrayList();
List<GardsCalibrationPairs> pairsT = Lists.newArrayList();
if (!pairsTDto.getCalibration_pairs_T_idCalPoint().isEmpty()) {
pairsT = mapFields(pairsTDto, pairs, base_T_Paris, fieldMap);
String pairsTCaltype = middleData.getCalibration_pairs_T_Caltype();
String pairsTInput = middleData.getCalibration_pairs_T_Input();
for (GardsCalibrationPairsRoi onePairs : pairsT) {
for (GardsCalibrationPairs onePairs : pairsT) {
onePairs.setSampleId(sampleId);
onePairs.setRoiId(roiId);
onePairs.setIdAnalysis(IdAnalysis);
onePairs.setSampleType(pairsSampleType);
onePairs.setCaltype(pairsTCaltype);
@ -996,21 +992,21 @@ public class Sample_C_Analysis {
}
}
// GARDS_CALIBRATION_PAIRS 汇总保存
List<GardsCalibrationPairsRoi> allPairs = new ArrayList<>();
List<GardsCalibrationPairs> allPairs = new ArrayList<>();
allPairs.addAll(pairsE);allPairs.addAll(pairsEF);
allPairs.addAll(pairsR);allPairs.addAll(pairsT);
return allPairs;
}
public void saveCalibrationPairsROI(Integer sampleId, Integer IdAnalysis){
List<GardsCalibrationPairsRoi> pairsRois = new ArrayList<>();
public void saveCalibrationPairs(Integer sampleId, Integer IdAnalysis){
List<GardsCalibrationPairs> pairsRois = new ArrayList<>();
Set<Map.Entry<Integer, GStoreMiddleProcessData>> entries = this.middleDataMap.entrySet();
for (Map.Entry<Integer, GStoreMiddleProcessData> entry : entries) {
Integer roiId = entry.getKey();
GStoreMiddleProcessData middleData = entry.getValue();
pairsRois.addAll(saveCalibrationPairsROI(sampleId, IdAnalysis, roiId, middleData));
pairsRois.addAll(saveCalibrationPairs(sampleId, IdAnalysis, roiId, middleData));
}
this.serviceQuotes.getCalibrationPairsRoiAutoService().saveBatch(pairsRois);
this.serviceQuotes.getGardsCalibrationPairsService().saveBatch(pairsRois);
}
public List<GardsCalibrationRoi> saveCalibrationROI(Integer sampleId, Integer IdAnalysis, Integer roiId,
@ -1106,16 +1102,105 @@ public class Sample_C_Analysis {
return calibrations;
}
public List<GardsCalibration> saveCalibration(Integer sampleId, Integer IdAnalysis, Integer roiId,
GStoreMiddleProcessData middleData){
String calibrationSampleType = middleData.getCalibration_sample_type();
List<String> pairsEIdCalPoint = middleData.getCalibration_pairs_E_idCalPoint();
List<String> pairsEFIdCalPoint = middleData.getCalibration_pairs_EF_idCalPoint();
List<String> pairsRIdCalPoint = middleData.getCalibration_pairs_R_idCalPoint();
List<String> pairsTIdCalPoint = middleData.getCalibration_pairs_T_idCalPoint();
List<GardsCalibration> 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());
calibration.setModdate(new Date());
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();
double efStartOfRange = middleData.getCalibration_EF_startOfRange();
double efEndOfRange = middleData.getCalibration_EF_endOfRange();
String efCoeffString = middleData.getCalibration_EF_coeff_string();
calibration.setCalType(efCaltype);
calibration.setFunction((int)efFunction);
calibration.setFunctionDef(efFunctionDef);
calibration.setStartOfRange((int)efStartOfRange);
calibration.setEndOfRange((int)efEndOfRange);
calibration.setCoeffString(efCoeffString);
calibration.setModdate(new Date());
calibrations.add(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();
double rStartOfRange = middleData.getCalibration_R_startOfRange();
double rEndOfRange = middleData.getCalibration_R_endOfRange();
String rCoeffString = middleData.getCalibration_R_coeff_string();
calibration.setCalType(rCaltype);
calibration.setFunction((int)rFunction);
calibration.setFunctionDef(rFunctionDef);
calibration.setStartOfRange((int)rStartOfRange);
calibration.setEndOfRange((int)rEndOfRange);
calibration.setCoeffString(rCoeffString);
calibration.setModdate(new Date());
calibrations.add(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();
double tStartOfRange = middleData.getCalibration_T_startOfRange();
double tEndOfRange = middleData.getCalibration_T_endOfRange();
String tCoeffString = middleData.getCalibration_T_coeff_string();
calibration.setCalType(tCaltype);
calibration.setFunction((int)middleData.getCalibration_T_function());
calibration.setFunctionDef(tFunctionDef);
calibration.setStartOfRange((int)tStartOfRange);
calibration.setEndOfRange((int)tEndOfRange);
calibration.setCoeffString(tCoeffString);
calibration.setModdate(new Date());
calibrations.add(calibration);
}
return calibrations;
}
public void saveCalibrationROI(Integer sampleId, Integer IdAnalysis){
List<GardsCalibrationRoi> calibrationRois = new ArrayList<>();
List<GardsCalibration> calibrationRois = new ArrayList<>();
Set<Map.Entry<Integer, GStoreMiddleProcessData>> entries = this.middleDataMap.entrySet();
for (Map.Entry<Integer, GStoreMiddleProcessData> entry : entries) {
Integer roiId = entry.getKey();
GStoreMiddleProcessData middleData = entry.getValue();
calibrationRois.addAll(saveCalibrationROI(sampleId, IdAnalysis, roiId, middleData));
calibrationRois.addAll(saveCalibration(sampleId, IdAnalysis, roiId, middleData));
}
if (CollUtil.isNotEmpty(calibrationRois))
this.serviceQuotes.getCalibrationRoiAutoService().createBatch(calibrationRois);
this.serviceQuotes.getGardsCalibrationService().createBatch(calibrationRois);
}
public List<GardsPeaksRoi> savePeaksROI(Integer sampleId, Integer IdAnalysis,

View File

@ -336,83 +336,6 @@ public class SelfBaseUtil extends AbstractLogOrReport {
return equation;
}
/**
* 根据ROI卡出来的Gamma数据生成新的GammaPHD文件
* @param pathName 文件存储路径
* @param fileName GammaPHD名称
* @param struct BetaPHD内容
* @param g_counts ROI卡出来的Gamma数据
*/
public static void createGammaFile(String pathName,String fileName, EnergySpectrumStruct struct, List<Long> g_counts) {
File file = new File(pathName + "\\" + fileName);
// 创建PrintWriter对象
PrintWriter out = null;
DecimalFormat decimalFormat = new DecimalFormat("0.000000");
try {
out = new PrintWriter(file);
out.println("BEGIN IMS2.0");
out.println("MSG_TYPE DATA");
// todo msg_type用的不对dll没解析出这个字段
out.println("MSG_ID " + struct.msg_id + " " + struct.msg_type + "\n" + "DATA_TYPE " + struct.data_type);
out.println("#Header 3");
// 解析出的Gamma谱 系统类型暂时使用G
out.println(struct.site_code + " " + struct.detector_code + " G " +
struct.sample_geometry + " " + struct.spectrum_quantity);
out.println(struct.sample_ref_id);
out.println(struct.measurement_id + " " + struct.detector_bk_measurement_id + " 0");
out.println(struct.transmit_date + " " + struct.transmit_time);
out.println("#Collection");
out.println(struct.collection_start_date + " " + struct.collection_start_time + " " +
struct.collection_stop_date + " " + struct.collection_stop_time + " "
+ decimalFormat.format(struct.air_volume));
out.println("#Acquisition");
out.println(struct.acquisition_start_date + " " + struct.acquisition_start_time + " " +
decimalFormat.format(struct.acquisition_real_time) + " " +
decimalFormat.format(struct.acquisition_live_time));
out.println("#g_Energy");
format(struct.g_energy, struct.g_centroid_channel, struct.g_uncertainty, out);
out.println("#g_Resolution");
format(struct.g_r_energy, struct.g_r_FWHM, struct.g_r_uncertainty, out);
out.println("#g_Efficiency");
format(struct.g_e_energy, struct.g_e_efficiency, struct.g_e_uncertainty, out);
out.println("#g_Spectrum");
// num_g_channel 根据g_counts数量得来和PHD写的数字没有关系g_energy_span是PHD写的值
out.println(struct.num_g_channel + " " + struct.g_energy_span);
// 存储前一个数字
String beforeStr = "";
for (int i = 0; i < g_counts.size(); i++) {
String str = g_counts.get(i).toString();
if(i % 5 == 0) {
if (i == 0) {
out.printf((i+1)+"");
} else {
out.printf("\n" + (i+1) );
}
beforeStr = i+"";
}
if(StrUtil.isEmpty(beforeStr)){
beforeStr = str;
}
// 根据前一个字符长度计算需要的空格
out.printf("%" + (str.length() + (6 - beforeStr.length()))+ "s" , g_counts.get(i));
if(i == g_counts.size() - 1) {
out.println();
}
beforeStr = str;
}
out.print("STOP");
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
} finally {
if (null != out) {
out.close();
}
}
}
/**
* 根据DLL解析GammaPHD内容 得到PHDFile实体
* @param struct dll解析后的实体
@ -618,6 +541,83 @@ public class SelfBaseUtil extends AbstractLogOrReport {
return phd;
}
/**
* 根据ROI卡出来的Gamma数据生成新的GammaPHD文件
* @param pathName 文件存储路径
* @param fileName GammaPHD名称
* @param struct BetaPHD内容
* @param g_counts ROI卡出来的Gamma数据
*/
public static void createGammaFile(String pathName,String fileName, EnergySpectrumStruct struct, List<Long> g_counts) {
File file = new File(pathName + "\\" + fileName);
// 创建PrintWriter对象
PrintWriter out = null;
DecimalFormat decimalFormat = new DecimalFormat("0.000000");
try {
out = new PrintWriter(file);
out.println("BEGIN IMS2.0");
out.println("MSG_TYPE DATA");
// todo msg_type用的不对dll没解析出这个字段
out.println("MSG_ID " + struct.msg_id + " " + struct.msg_type + "\n" + "DATA_TYPE " + struct.data_type);
out.println("#Header 3");
// 解析出的Gamma谱 系统类型暂时使用G
out.println(struct.site_code + " " + struct.detector_code + " G " +
struct.sample_geometry + " " + struct.spectrum_quantity);
out.println(struct.sample_ref_id);
out.println(struct.measurement_id + " " + struct.detector_bk_measurement_id + " 0");
out.println(struct.transmit_date + " " + struct.transmit_time);
out.println("#Collection");
out.println(struct.collection_start_date + " " + struct.collection_start_time + " " +
struct.collection_stop_date + " " + struct.collection_stop_time + " "
+ decimalFormat.format(struct.air_volume));
out.println("#Acquisition");
out.println(struct.acquisition_start_date + " " + struct.acquisition_start_time + " " +
decimalFormat.format(struct.acquisition_real_time) + " " +
decimalFormat.format(struct.acquisition_live_time));
out.println("#g_Energy");
format(struct.g_energy, struct.g_centroid_channel, struct.g_uncertainty, out);
out.println("#g_Resolution");
format(struct.g_r_energy, struct.g_r_FWHM, struct.g_r_uncertainty, out);
out.println("#g_Efficiency");
format(struct.g_e_energy, struct.g_e_efficiency, struct.g_e_uncertainty, out);
out.println("#g_Spectrum");
// num_g_channel 根据g_counts数量得来和PHD写的数字没有关系g_energy_span是PHD写的值
out.println(struct.num_g_channel + " " + struct.g_energy_span);
// 存储前一个数字
String beforeStr = "";
for (int i = 0; i < g_counts.size(); i++) {
String str = g_counts.get(i).toString();
if(i % 5 == 0) {
if (i == 0) {
out.printf((i+1)+"");
} else {
out.printf("\n" + (i+1) );
}
beforeStr = i+"";
}
if(StrUtil.isEmpty(beforeStr)){
beforeStr = str;
}
// 根据前一个字符长度计算需要的空格
out.printf("%" + (str.length() + (6 - beforeStr.length()))+ "s" , g_counts.get(i));
if(i == g_counts.size() - 1) {
out.println();
}
beforeStr = str;
}
out.print("STOP");
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
} finally {
if (null != out) {
out.close();
}
}
}
/**
* 数据格式化
* @param aList 第一列数据

View File

@ -1,11 +1,10 @@
package org.jeecg.modules.service;
import org.jeecg.modules.base.entity.rnman.GardsAnalyses;
import org.jeecg.modules.base.entity.rnman.GardsXeResults;
import org.jeecg.modules.entity.vo.CalMDCInfo;
import org.jeecg.modules.entity.vo.GStoreMiddleProcessData;
import org.jeecg.modules.entity.vo.PHDFile;
import org.jeecg.modules.entity.vo.QcCheckItem;
import org.jeecg.modules.native_jni.struct.EnergySpectrumStruct;
import java.util.List;
import java.util.Map;
@ -40,6 +39,10 @@ public interface AnalysisManService {
void saveCalibrationROI(Integer sampleId, Integer idAnalysis);
void saveCalibrationPairs(Integer sampleId, Integer idAnalysis);
void saveCalibration(Integer sampleId, Integer idAnalysis);
void savePeaksROI(Integer sampleId, Integer idAnalysis);
void saveNuclLinesIdedROI(Integer sampleId, Integer idAnalysis);
@ -51,4 +54,6 @@ public interface AnalysisManService {
void saveMDCROI(Integer sampleId, List<Map<String, CalMDCInfo>> mdcInfoMaps, Integer idAnalysis);
void saveAnalySettingROI(Integer sampleId, Integer idAnalysis, List<PHDFile> phdFiles);
void saveGardsXeResults(Integer sampleId, Integer idAnalysis, List<GardsXeResults> xeResultsList);
}

View File

@ -402,6 +402,17 @@ public class PHDFileUtil extends AbstractLogOrReport {
}
}
public List<String> readLine(String filePath) {
List<String> allLines = new ArrayList<>();
try {
File file = new File(filePath);
return FileUtils.readLines(file, "UTF-8");
}catch (IOException e){
e.printStackTrace();
return allLines;
}
}
public void createBgCalPara(BetaDataFile betaDataFile, List<GardsCalibrationSpectrum> gammaCalibrationSpectrumList,List<GardsCalibrationSpectrum> betaCalibrationSpectrumList,
List<GardsCalibrationPairsSpectrum> gammaCalibrationPairsList,List<GardsCalibrationPairsSpectrum> betaCalibrationPairsList) {
SpectrumGroup spectrum_group = new SpectrumGroup();
@ -663,17 +674,6 @@ public class PHDFileUtil extends AbstractLogOrReport {
}
}
public List<String> readLine(String filePath) {
List<String> allLines = new ArrayList<>();
try {
File file = new File(filePath);
return FileUtils.readLines(file, "UTF-8");
}catch (IOException e){
e.printStackTrace();
return allLines;
}
}
public void getLightColor(Map<String, Object> sampleMap, Map<String, Object> gasBgMap, Map<String, Object> detBgMap, Map<String, Object> qcMap) {
SpectrumData sampleSpectrumData = (SpectrumData)sampleMap.get("spectrumData");
SpectrumData gasBgSpectrumData = (SpectrumData)gasBgMap.get("spectrumData");

View File

@ -18,10 +18,7 @@ import org.jeecg.modules.base.abstracts.AbstractLogOrReport;
import org.jeecg.modules.base.enums.CalName;
import org.jeecg.modules.base.enums.DataTypeAbbr;
import org.jeecg.modules.base.enums.SampleFileHeader;
import org.jeecg.modules.entity.GardsCalibrationSpectrum;
import org.jeecg.modules.entity.GardsROIChannelsSpectrum;
import org.jeecg.modules.entity.GardsROIResultsSpectrum;
import org.jeecg.modules.entity.GardsXeResultsSpectrum;
import org.jeecg.modules.entity.*;
import org.jeecg.modules.entity.vo.*;
import org.jeecg.modules.native_jni.CalValuesHandler;
import org.jeecg.modules.native_jni.EnergySpectrumHandler;
@ -1421,4 +1418,56 @@ public class SelfStationUtil extends SelfBaseUtil {
return baseLineCount;
}
public void updateEnergyData(BetaDataFile betaDataFile, String type, int channel,
List<GardsCalibrationPairsSpectrum> gammaCalibrationPairs,
List<GardsCalibrationPairsSpectrum> betaCalibrationPairs, Map<String, Object> map) {
List<Double> channels = new LinkedList<>();
List<List<Double>> gammaNewEnergyList = new LinkedList<>();
List<List<Double>> betaNewEnergyList = new LinkedList<>();
//填充道值数组的数据
for (int i = 0; i < channel; i++) {
channels.add(Double.valueOf(i));
}
//过滤出Gamma对应的表单数据
List<Double> gammaChannelList = gammaCalibrationPairs.stream().map(GardsCalibrationPairsSpectrum::getXValue).collect(Collectors.toList());
List<Double> gammaEnergyList = gammaCalibrationPairs.stream().map(GardsCalibrationPairsSpectrum::getYValue).collect(Collectors.toList());
//计算gamma对应的数据
List<Double> gammaFittingPara = EnergySpectrumHandler.GetFileFittingPara(gammaChannelList, gammaEnergyList);
//计算道值的能量
List<Double> gammaEnergys = EnergySpectrumHandler.GetFileFittingData(channels,gammaFittingPara);
//将新计算的能量封装到数组
for (Double calEnergy:gammaEnergys) {
List<Double> newEnergy = new LinkedList<>();
newEnergy.add(calEnergy);
gammaNewEnergyList.add(newEnergy);
}
map.put("gammaEnergyData", gammaNewEnergyList);
//过滤出Beta对应的表单数据
List<Double> betaChannelList = betaCalibrationPairs.stream().map(GardsCalibrationPairsSpectrum::getXValue).collect(Collectors.toList());
List<Double> betaEnergyList = betaCalibrationPairs.stream().map(GardsCalibrationPairsSpectrum::getYValue).collect(Collectors.toList());
//计算beta对应的数据
List<Double> betaFittingPara = EnergySpectrumHandler.GetFileFittingPara(betaChannelList, betaEnergyList);
//计算道值的能量
List<Double> betaEnergys = EnergySpectrumHandler.GetFileFittingData(channels,betaFittingPara);
//将新计算的能量封装到数组
for (Double calEnergy:betaEnergys) {
List<Double> newEnergy = new LinkedList<>();
newEnergy.add(calEnergy);
betaNewEnergyList.add(newEnergy);
}
map.put("betaEnergyData", betaNewEnergyList);
if (type.equalsIgnoreCase("sample")) {
betaDataFile.setSampleGammaEnergyList(gammaNewEnergyList);
betaDataFile.setSampleBetaEnergyList(betaNewEnergyList);
} else if (type.equalsIgnoreCase("gas")) {
betaDataFile.setGasGammaEnergyList(gammaNewEnergyList);
betaDataFile.setGasBetaEnergyList(betaNewEnergyList);
} else if (type.equalsIgnoreCase("det")) {
betaDataFile.setDetGammaEnergyList(gammaNewEnergyList);
betaDataFile.setDetBetaEnergyList(betaNewEnergyList);
}
}
}

View File

@ -1,59 +1,17 @@
package org.jeecg.modules.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecg.modules.base.entity.rnman.GardsXeResults;
import java.io.Serializable;
import java.util.Date;
@Data
public class GardsXeResultsSpectrum implements Serializable {
/**
* 样品id
*/
private Integer sampleId;
/**
* 分析ID号
*/
private Integer idAnalysis;
/**
* 核素名称
*/
private String nuclideName;
/**
* 感兴趣区活度浓度
*/
private Double conc;
/**
* 感兴趣区活度浓度不确定度
*/
private Double concErr;
/**
* 感兴趣区MDC
*/
private Double mdc;
public class GardsXeResultsSpectrum extends GardsXeResults implements Serializable {
/**
* 感兴趣区MDC
*/
private Double mda;
/**
* 感兴趣区LC
*/
private Double lc;
/**
* 感兴趣区识别标示1识别到0未识别到
*/
private Integer nidFlag;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date moddate;
private String color;

View File

@ -61,14 +61,18 @@ public class BetaDataFile implements Serializable {
private List<SeriseData> betaList;
/** e2c */
private List<String> betaFittingPara;
/** c2e*/
private List<String> betaFittingParaToUi;
private List<SeriseData> gammaList;
/** e2c */
private List<String> gammaFittingPara;
/** c2e*/
private List<String> gammaFittingParaToUi;
private List<SeriseData> betaListNow;

View File

@ -70,23 +70,29 @@ public interface SpectrumAnalysisMapper {
List<GardsPeaksSpectrum> getPeaks(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis);
List<GardsPeaksSpectrum> getPeaksROI(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis);
List<GardsPeaksSpectrum> getPeaksROI(@Param(value = "dbName") String dbName, @Param(value = "dbAnalyRoi") String dbAnalyRoi,
@Param(value = "idAnalysis") Integer idAnalysis);
List<GardsCalibrationPairsSpectrum> getCalibrationPairs(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis);
List<GardsCalibrationPairsSpectrum> getCalibrationPairsROI(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis);
List<GardsCalibrationPairsSpectrum> getCalibrationPairsROI(@Param(value = "dbName") String dbName,
@Param(value = "dbAnalyRoi") String dbAnalyRoi,
@Param(value = "idAnalysis") Integer idAnalysis);
List<GardsCalibrationSpectrum> getPara(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis);
List<GardsCalibrationSpectrum> getParaROI(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis);
List<GardsCalibrationSpectrum> getParaROI(@Param(value = "dbName") String dbName, @Param(value = "dbAnalyRoi") String dbAnalyRoi,
@Param(value = "idAnalysis") Integer idAnalysis);
List<GardsNuclLinesIdedSpectrum> getNuclLinesIded(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis);
List<GardsNuclLinesIdedSpectrum> getNuclLinesIdedROI(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis);
List<GardsNuclLinesIdedSpectrum> getNuclLinesIdedROI(@Param(value = "dbName") String dbName, @Param(value = "dbAnalyRoi") String dbAnalyRoi,
@Param(value = "idAnalysis") Integer idAnalysis);
List<GardsNuclIdedSpectrum> getNuclIded(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis);
List<GardsNuclIdedSpectrum> getNuclIdedROI(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis);
List<GardsNuclIdedSpectrum> getNuclIdedROI(@Param(value = "dbName") String dbName, @Param(value = "dbAnalyRoi") String dbAnalyRoi,
@Param(value = "idAnalysis") Integer idAnalysis);
List<GardsQcCheckSpectrum> getQcCheck(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis);
@ -94,7 +100,8 @@ public interface SpectrumAnalysisMapper {
List<CalMDCInfo> getMDC(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis);
List<CalMDCInfo> getMDCROI(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis);
List<CalMDCInfo> getMDCROI(@Param(value = "dbName") String dbName, @Param(value = "dbAnalyRoi") String dbAnalyRoi,
@Param(value = "idAnalysis") Integer idAnalysis);
GardsAnalySetting getAnalySetting(@Param(value = "idAnalysis") Integer idAnalysis);

View File

@ -1,4 +1,4 @@
package org.jeecg.modules.service.impl;
package org.jeecg.modules.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
@ -7,17 +7,13 @@ import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.google.common.collect.HashBasedTable;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.google.common.collect.Lists;
import com.google.common.collect.Table;
import org.jeecg.modules.base.dto.*;
import org.jeecg.modules.base.entity.rnman.*;
import org.jeecg.modules.entity.vo.*;
import org.jeecg.modules.native_jni.struct.EnergySpectrumStruct;
import org.jeecg.modules.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.lang.reflect.Field;
@ -46,6 +42,12 @@ public class AnalysisManServiceImpl implements AnalysisManService {
private IGardsQcCheckRoiManService qcCheckRoiManService;
@Autowired
private IGardsAnalySettingRoiService analySettingRoiService;
@Autowired
private IGardsCalibrationSpectrumService calibrationSpectrumService;
@Autowired
private IGardsCalibrationPairsSpectrumService calibrationPairsSpectrumService;
@Autowired
private IGardsXeResultsSpectrumService xeResultsSpectrumService;
private Map<Integer, GStoreMiddleProcessData> middleDataMap;
@ -101,16 +103,22 @@ public class AnalysisManServiceImpl implements AnalysisManService {
@Override
public void deleteCalibrationPairs(Integer idAnalysis) {
LambdaUpdateWrapper<GardsCalibrationPairsRoi> wrapper = new LambdaUpdateWrapper<>();
/*LambdaUpdateWrapper<GardsCalibrationPairsRoi> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(GardsCalibrationPairsRoi::getIdAnalysis, idAnalysis);
calibrationPairsRoiManService.remove(wrapper);
calibrationPairsRoiManService.remove(wrapper);*/
LambdaUpdateWrapper<GardsCalibrationPairs> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(GardsCalibrationPairs::getIdAnalysis, idAnalysis);
calibrationPairsSpectrumService.remove(wrapper);
}
@Override
public void deleteCalibration(Integer idAnalysis) {
LambdaUpdateWrapper<GardsCalibrationRoi> wrapper = new LambdaUpdateWrapper<>();
/*LambdaUpdateWrapper<GardsCalibrationRoi> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(GardsCalibrationRoi::getIdAnalysis, idAnalysis);
calibrationRoiManService.remove(wrapper);
calibrationRoiManService.remove(wrapper);*/
LambdaUpdateWrapper<GardsCalibration> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(GardsCalibration::getIdAnalysis, idAnalysis);
calibrationSpectrumService.remove(wrapper);
}
@Override
@ -263,6 +271,110 @@ public class AnalysisManServiceImpl implements AnalysisManService {
calibrationRoiManService.createBatch(calibrationRois);
}
@Override
public void saveCalibrationPairs(Integer sampleId, Integer idAnalysis) {
Set<Map.Entry<Integer, GStoreMiddleProcessData>> entries = this.middleDataMap.entrySet();
for (Map.Entry<Integer, GStoreMiddleProcessData> entry : entries) {
Integer roiId = entry.getKey();
GStoreMiddleProcessData middleData = entry.getValue();
List<GardsCalibrationPairs> gardsCalibrationPairs = saveCalibrationPairs(sampleId, idAnalysis, roiId, middleData);
calibrationPairsSpectrumService.saveBatch(gardsCalibrationPairs);
return;
}
}
public List<GardsCalibrationPairs> saveCalibrationPairs(Integer sampleId, Integer IdAnalysis,
Integer roiId, GStoreMiddleProcessData middleData){
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<GardsCalibrationPairs> pairsE = Lists.newArrayList();
if (pairsEDto.getCalibration_pairs_E_idCalPoint().size() > 0) {
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);
}
}
// 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<GardsCalibrationPairs> pairsEF = Lists.newArrayList();
if (pairsEFDto.getCalibration_pairs_EF_idCalPoint().size() > 0) {
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<GardsCalibrationPairs> pairsR = Lists.newArrayList();
if (pairsRDto.getCalibration_pairs_R_idCalPoint().size() > 0) {
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<GardsCalibrationPairs> pairsT = Lists.newArrayList();
if (pairsTDto.getCalibration_pairs_T_idCalPoint().size() > 0) {
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<GardsCalibrationPairs> allPairs = new ArrayList<>();
allPairs.addAll(pairsE);
allPairs.addAll(pairsEF);
allPairs.addAll(pairsR);
allPairs.addAll(pairsT);
return allPairs;
}
@Override
public void saveCalibration(Integer sampleId, Integer idAnalysis) {
Set<Map.Entry<Integer, GStoreMiddleProcessData>> entries = this.middleDataMap.entrySet();
for (Map.Entry<Integer, GStoreMiddleProcessData> entry : entries) {
Integer roiId = entry.getKey();
GStoreMiddleProcessData middleData = entry.getValue();
List<GardsCalibration> gardsCalibrations = saveCalibration(sampleId, idAnalysis, roiId, middleData);
return;
}
}
public List<GardsCalibrationRoi> saveCalibrationROI(Integer sampleId, Integer IdAnalysis, Integer roiId,
GStoreMiddleProcessData middleData){
String calibrationSampleType = middleData.getCalibration_sample_type();
@ -356,6 +468,100 @@ public class AnalysisManServiceImpl implements AnalysisManService {
return calibrations;
}
public List<GardsCalibration> saveCalibration(Integer sampleId, Integer IdAnalysis, Integer roiId,
GStoreMiddleProcessData middleData){
String calibrationSampleType = middleData.getCalibration_sample_type();
List<String> pairsEIdCalPoint = middleData.getCalibration_pairs_E_idCalPoint();
List<String> pairsEFIdCalPoint = middleData.getCalibration_pairs_EF_idCalPoint();
List<String> pairsRIdCalPoint = middleData.getCalibration_pairs_R_idCalPoint();
List<String> pairsTIdCalPoint = middleData.getCalibration_pairs_T_idCalPoint();
List<GardsCalibration> 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());
calibration.setModdate(new Date());
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();
double efStartOfRange = middleData.getCalibration_EF_startOfRange();
double efEndOfRange = middleData.getCalibration_EF_endOfRange();
String efCoeffString = middleData.getCalibration_EF_coeff_string();
calibration.setCalType(efCaltype);
calibration.setFunction((int)efFunction);
calibration.setFunctionDef(efFunctionDef);
calibration.setStartOfRange((int)efStartOfRange);
calibration.setEndOfRange((int)efEndOfRange);
calibration.setCoeffString(efCoeffString);
calibration.setModdate(new Date());
calibrations.add(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();
double rStartOfRange = middleData.getCalibration_R_startOfRange();
double rEndOfRange = middleData.getCalibration_R_endOfRange();
String rCoeffString = middleData.getCalibration_R_coeff_string();
calibration.setCalType(rCaltype);
calibration.setFunction((int)rFunction);
calibration.setFunctionDef(rFunctionDef);
calibration.setStartOfRange((int)rStartOfRange);
calibration.setEndOfRange((int)rEndOfRange);
calibration.setCoeffString(rCoeffString);
calibration.setModdate(new Date());
calibrations.add(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();
double tStartOfRange = middleData.getCalibration_T_startOfRange();
double tEndOfRange = middleData.getCalibration_T_endOfRange();
String tCoeffString = middleData.getCalibration_T_coeff_string();
calibration.setCalType(tCaltype);
calibration.setFunction((int)middleData.getCalibration_T_function());
calibration.setFunctionDef(tFunctionDef);
calibration.setStartOfRange((int)tStartOfRange);
calibration.setEndOfRange((int)tEndOfRange);
calibration.setCoeffString(tCoeffString);
calibration.setModdate(new Date());
calibrations.add(calibration);
}
if (CollectionUtils.isNotEmpty(calibrations)) {
for (GardsCalibration calibration:calibrations) {
calibrationSpectrumService.insertCalibration(calibration);
}
}
return calibrations;
}
@Override
public void savePeaksROI(Integer sampleId, Integer idAnalysis) {
List<GardsPeaksRoi> peaksRois = new ArrayList<>();
@ -536,6 +742,18 @@ public class AnalysisManServiceImpl implements AnalysisManService {
analySettingRoiService.saveBatch(analySettingRois);
}
@Override
@Transactional
public void saveGardsXeResults(Integer sampleId, Integer idAnalysis, List<GardsXeResults> xeResultsList) {
for (GardsXeResults xeResults:xeResultsList) {
xeResults.setIdAnalysis(idAnalysis);
xeResults.setSampleId(sampleId);
}
if (CollectionUtils.isNotEmpty(xeResultsList)) {
xeResultsSpectrumService.saveBatch(xeResultsList);
}
}
public Map<String,String> fieldMap(){
Map<String,String> fieldMap = new HashMap<>();
// Gards_Nucl_Lines_Ided

View File

@ -1,6 +1,7 @@
package org.jeecg.modules.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.base.entity.rnman.GardsCalibration;
import org.jeecg.modules.entity.vo.BgDataAnlyseResultIn;
import org.jeecg.modules.entity.vo.GStoreMiddleProcessData;
@ -9,6 +10,8 @@ import java.util.List;
public interface IGardsCalibrationSpectrumService extends IService<GardsCalibration> {
void insertCalibration(GardsCalibration calibration);
int saveGardsCalibration(BgDataAnlyseResultIn anlyseResultIn, Integer sampleId, Integer gasId, Integer detId, Integer idAnalysis);
int saveCalibrationGamma(GStoreMiddleProcessData middleData, Integer sampleId, String idAnalysis);

View File

@ -26,6 +26,16 @@ import java.util.stream.Collectors;
public class GardsCalibrationSpectrumServiceImpl extends ServiceImpl<GardsCalibrationSpectrumMapper, GardsCalibration> implements IGardsCalibrationSpectrumService {
@Override
public void insertCalibration(GardsCalibration calibration) {
this.baseMapper.insertCalibration(calibration);
}
@Override
public void insertCalibrationGamma(GardsCalibration calibration) {
this.baseMapper.insertCalibrationGamma(calibration);
}
@Override
@Transactional
public int saveGardsCalibration(BgDataAnlyseResultIn anlyseResultIn, Integer sampleId, Integer gasId, Integer detId, Integer idAnalysis) {