fix:修改 自动处理分析新beta保存刻度数据业务。修改从数据库加载读取刻度数据业务逻辑
This commit is contained in:
parent
2908b406d7
commit
e6d017af0b
|
@ -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,
|
||||
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,
|
||||
|
|
|
@ -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 第一列数据
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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
|
|
@ -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);
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -39,8 +39,10 @@ import org.jeecg.modules.base.entity.rnauto.GardsAnalyses;
|
|||
import org.jeecg.modules.base.entity.rnman.GardsAnalySettingRoi;
|
||||
import org.jeecg.modules.base.entity.rnman.GardsAnalysisRoi;
|
||||
import org.jeecg.modules.base.entity.rnman.GardsAnalySetting;
|
||||
import org.jeecg.modules.base.entity.rnman.GardsXeResults;
|
||||
import org.jeecg.modules.base.enums.CalName;
|
||||
import org.jeecg.modules.base.enums.CalType;
|
||||
import org.jeecg.modules.base.enums.DataTypeAbbr;
|
||||
import org.jeecg.modules.base.enums.SampleFileHeader;
|
||||
import org.jeecg.modules.entity.*;
|
||||
import org.jeecg.modules.entity.vo.*;
|
||||
|
@ -148,7 +150,7 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
@Override
|
||||
public Result loadFromDB(String dbName, Integer sampleId, String analyst, HttpServletRequest request) {
|
||||
Result result = new Result();
|
||||
Map<String, Map<String, Object>> resultMap = new HashMap<>();
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
//页面展示结果数组
|
||||
List<GardsXeResultsSpectrum> xeResultsSpectrumList = new LinkedList<>();
|
||||
List<GardsCalibrationSpectrum> gammaCalibrationSpectrumList= new LinkedList<>();
|
||||
|
@ -171,6 +173,7 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
//查询分析id,相关的分析结果
|
||||
Integer analysisID = null;
|
||||
List<RoiDto> roiPaths = new ArrayList<>();
|
||||
// 配置查询数据库
|
||||
if (dbName.equalsIgnoreCase("auto")){
|
||||
dbName = "RNAUTO";
|
||||
analyst = "RNAUTO";
|
||||
|
@ -186,11 +189,13 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
// 获取当前角色配置的颜色信息
|
||||
Map<String, String> colorMap = sysUserColorService.initColor(userName);
|
||||
try {
|
||||
if (Objects.nonNull(analysisID)) {
|
||||
//查询数据库文件信息
|
||||
SpectrumFileRecord dbSpectrumFilePath = spectrumAnalysisMapper.getDBSpectrumFilePath(dbName, sampleId, analysisID);
|
||||
//判断数据库分析结果基础信息是否为空
|
||||
if (Objects.nonNull(dbSpectrumFilePath)) {
|
||||
if (Objects.isNull(dbSpectrumFilePath)) {
|
||||
result.error500("No data found, please contact the administrator!");
|
||||
return result;
|
||||
}
|
||||
//获取sample相关信息
|
||||
GardsSampleData sample = null;
|
||||
String sampleFileName = "";
|
||||
|
@ -220,24 +225,19 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
|
||||
//从缓存中获取公用变量的数据
|
||||
SelfStationData selfStationData = selfCache.getIfPresent(sampleFileName + StringPool.DASH + userName);
|
||||
BetaDataFile betaDataFile = new BetaDataFile();
|
||||
if (Objects.isNull(selfStationData)) {
|
||||
//初始化自建台站数据对象
|
||||
selfStationData = new SelfStationData();
|
||||
if (dbName.equalsIgnoreCase("RNAUTO")) {
|
||||
xeResultsSpectrumList = spectrumAnalysisMapper.ReadXeResults(dbName, analysisID, sampleId);
|
||||
gammaCalibrationSpectrumList = spectrumAnalysisMapper.ReadGammaCalibrationParam("RNAUTO", analysisID);
|
||||
betaCalibrationSpectrumList = spectrumAnalysisMapper.ReadBetaCalibrationParam("RNAUTO", analysisID);
|
||||
roiChannelsSpectrumList = spectrumAnalysisMapper.ReadROIChannels("RNAUTO", analysisID, sampleId);
|
||||
roiResultsSpectrumList = spectrumAnalysisMapper.ReadROIResults("RNAUTO", analysisID, sampleId);
|
||||
} else {
|
||||
betaDataFile = selfStationData.getBetaDataFile();
|
||||
|
||||
if (dbName.equalsIgnoreCase("RNMAN")) {
|
||||
gammaCalibrationPairsList = spectrumAnalysisMapper.ReadGammaFitChannelEnergy(analysisID);
|
||||
betaCalibrationPairsList = spectrumAnalysisMapper.ReadBetaFitChannelEnergy(analysisID);
|
||||
xeResultsSpectrumList = spectrumAnalysisMapper.ReadXeResults(dbName, analysisID, sampleId);
|
||||
gammaCalibrationSpectrumList = spectrumAnalysisMapper.ReadGammaCalibrationParam("RNMAN", analysisID);
|
||||
betaCalibrationSpectrumList = spectrumAnalysisMapper.ReadBetaCalibrationParam("RNMAN", analysisID);
|
||||
roiChannelsSpectrumList = spectrumAnalysisMapper.ReadROIChannels("RNMAN", analysisID, sampleId);
|
||||
roiResultsSpectrumList = spectrumAnalysisMapper.ReadROIResults("RNMAN", analysisID, sampleId);
|
||||
}
|
||||
xeResultsSpectrumList = spectrumAnalysisMapper.ReadXeResults(dbName, analysisID, sampleId);
|
||||
gammaCalibrationSpectrumList = spectrumAnalysisMapper.ReadGammaCalibrationParam(dbName, analysisID);
|
||||
betaCalibrationSpectrumList = spectrumAnalysisMapper.ReadBetaCalibrationParam(dbName, analysisID);
|
||||
//判断sample文件名是否为空
|
||||
if (Objects.nonNull(sample)) {
|
||||
//拼接sample文件路径
|
||||
|
@ -263,6 +263,31 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
map.putAll(gammaByROI);
|
||||
}
|
||||
|
||||
//更新gamma道值-能量折线图
|
||||
if (CollectionUtils.isNotEmpty(gammaCalibrationPairsList) && CollectionUtils.isNotEmpty(betaCalibrationPairsList)) {
|
||||
//过滤出sample的gamma的参数
|
||||
List<GardsCalibrationPairsSpectrum> sampleGammaCalibrationPairs =
|
||||
gammaCalibrationPairsList.stream()
|
||||
.filter(item -> item.getDataType().equalsIgnoreCase(DataTypeAbbr.SAMPLEPHD.getType()))
|
||||
.collect(Collectors.toList());
|
||||
//过滤出sample的beta的参数
|
||||
List<GardsCalibrationPairsSpectrum> sampleBetaCalibrationPairs =
|
||||
betaCalibrationPairsList.stream()
|
||||
.filter(item -> item.getDataType().equalsIgnoreCase(DataTypeAbbr.SAMPLEPHD.getType()))
|
||||
.collect(Collectors.toList());
|
||||
//更新道值-能量折线图
|
||||
if (CollectionUtils.isNotEmpty(sampleGammaCalibrationPairs) && CollectionUtils.isNotEmpty(sampleBetaCalibrationPairs)) {
|
||||
phdFileUtil.updateEnergyData(betaDataFile, "sample", sampleGammaCalibrationPairs, sampleBetaCalibrationPairs, map);
|
||||
}
|
||||
}
|
||||
|
||||
//更新缓存数据对应的缓存数据
|
||||
phdFileUtil.createBgCalPara(betaDataFile, gammaCalibrationSpectrumList,
|
||||
betaCalibrationSpectrumList, gammaCalibrationPairsList, betaCalibrationPairsList);
|
||||
//第一次加载时初始化数据库数据
|
||||
betaDataFile.setGammaCalibrationSpectrumEList(gammaCalibrationSpectrumList);
|
||||
betaDataFile.setBetaCalibrationSpectrumEList(betaCalibrationSpectrumList);
|
||||
|
||||
// 将四个Gamma ROI文件对象放到缓存中
|
||||
SelfStationVueData sampleVueData = selfStationData.getSampleVueData();
|
||||
|
||||
|
@ -291,14 +316,18 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
|
||||
String path = fullPath1.substring(0, fullPath1.lastIndexOf(StrUtil.SLASH));
|
||||
|
||||
PHDFile phd1 = selfStationUtil.createGammaPHD(struct, name1, path, sampleVueData.getROIOneCounts());
|
||||
PHDFile phd2 = selfStationUtil.createGammaPHD(struct, name2, path, sampleVueData.getROITwoCounts());
|
||||
PHDFile phd3 = selfStationUtil.createGammaPHD(struct, name3, path, sampleVueData.getROIThreeCounts());
|
||||
PHDFile phd4 = selfStationUtil.createGammaPHD(struct, name4, path, sampleVueData.getROIFourCounts());
|
||||
PHDFile phd1 = SelfStationUtil.createGammaPHD(struct, name1, path, sampleVueData.getROIOneCounts());
|
||||
PHDFile phd2 = SelfStationUtil.createGammaPHD(struct, name2, path, sampleVueData.getROITwoCounts());
|
||||
PHDFile phd3 = SelfStationUtil.createGammaPHD(struct, name3, path, sampleVueData.getROIThreeCounts());
|
||||
PHDFile phd4 = SelfStationUtil.createGammaPHD(struct, name4, path, sampleVueData.getROIFourCounts());
|
||||
sampleVueData.setROIOnePHDFile(phd1);
|
||||
sampleVueData.setROITwoPHDFile(phd2);
|
||||
sampleVueData.setROIThreePHDFile(phd3);
|
||||
sampleVueData.setROIFourPHDFile(phd4);
|
||||
|
||||
// 从数据库加载 Gamma ROI信息
|
||||
this.getROIResultFromDB(dbName, sampleId, sampleVueData, analysisID);
|
||||
|
||||
// 从数据库加载 ROI信息
|
||||
List<PHDFile> phdFiles = ListUtil.toList(phd1, phd2, phd3, phd4);
|
||||
getROIResultFromDB(dbName, sampleId, phdFiles, analysisID);
|
||||
|
||||
map.put("ROI1", loadROI(phd1, analyst, colorMap));
|
||||
map.put("ROI2", loadROI(phd2, analyst, colorMap));
|
||||
|
@ -380,10 +409,6 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
redisUtil.set(userName+StringPool.DASH+systemType+"-self", nuclideMap);
|
||||
}
|
||||
|
||||
//将自建台站的数据封装到缓存对象中
|
||||
selfCache.put(sampleFileName + StringPool.DASH + userName, selfStationData);
|
||||
//将缓存对象存入到缓存中
|
||||
selfStationCache.setSelfCache(selfCache);
|
||||
} else {
|
||||
if (Objects.nonNull(sample)) {
|
||||
//返回结果map
|
||||
|
@ -435,8 +460,32 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
bGSpectrum(selfStationData.getQcStruct(), map);
|
||||
}
|
||||
}
|
||||
//Xe
|
||||
if (CollectionUtils.isNotEmpty(xeResultsSpectrumList)){
|
||||
for (GardsXeResultsSpectrum xeData:xeResultsSpectrumList) {
|
||||
Double conc = xeData.getConc();
|
||||
Double mdc = xeData.getMdc();
|
||||
if (conc < 0){
|
||||
xeData.setColor("red");
|
||||
} else if (0<conc && conc < mdc) {
|
||||
xeData.setColor("#ffcc30");
|
||||
} else if (conc > mdc) {
|
||||
xeData.setColor("green");
|
||||
}
|
||||
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()))));
|
||||
}
|
||||
}
|
||||
betaDataFile.setXeResultsSpectrumList(xeResultsSpectrumList);
|
||||
betaDataFile.setSaveAnalysisResult(true);
|
||||
resultMap.put("XeData", phdFileUtil.viewXeData(xeResultsSpectrumList));
|
||||
resultMap.put("bProcessed", betaDataFile.isBProcessed());
|
||||
resultMap.put("savedAnalysisResult", betaDataFile.isSaveAnalysisResult());
|
||||
//将自建台站的数据封装到缓存对象中
|
||||
selfCache.put(sampleFileName + StringPool.DASH + userName, selfStationData);
|
||||
//将缓存对象存入到缓存中
|
||||
selfStationCache.setSelfCache(selfCache);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
@ -608,7 +657,11 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
return map;
|
||||
}
|
||||
|
||||
public boolean getROIResultFromDB(String dbName, Integer sampleId, List<PHDFile> phdFiles, Integer idAnalysis) {
|
||||
public boolean getROIResultFromDB(String dbName, Integer sampleId, SelfStationVueData selfStationVueData, Integer idAnalysis) {
|
||||
|
||||
List<PHDFile> phdFiles = ListUtil.toList(selfStationVueData.getROIOnePHDFile(), selfStationVueData.getROITwoPHDFile(),
|
||||
selfStationVueData.getROIThreePHDFile(), selfStationVueData.getROIFourPHDFile());
|
||||
|
||||
// 判断连接的数据库
|
||||
String T_analy = "";
|
||||
String T_calib = "";
|
||||
|
@ -620,18 +673,18 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
String T_mdc = "";
|
||||
if (dbName.equals("RNAUTO")) {
|
||||
T_analy = "RNAUTO.GARDS_ANALYSIS_ROI";
|
||||
T_calib = "RNAUTO.GARDS_CALIBRATION_PAIRS_ROI";
|
||||
T_calib = "RNAUTO.GARDS_CALIBRATION_PAIRS";
|
||||
T_peaks = "RNAUTO.GARDS_PEAKS_ROI";
|
||||
T_param = "RNAUTO.GARDS_CALIBRATION_ROI";
|
||||
T_param = "RNAUTO.GARDS_CALIBRATION";
|
||||
T_nuc_line = "RNAUTO.GARDS_NUCL_LINES_IDED_ROI";
|
||||
T_nuc_act = "RNAUTO.GARDS_NUCL_IDED_ROI";
|
||||
T_qc = "RNAUTO.GARDS_QC_CHECK_ROI";
|
||||
T_mdc = "RNAUTO.GARDS_MDC_ROI";
|
||||
} else if (dbName.equals("RNMAN")) {
|
||||
T_analy = "RNMAN.GARDS_ANALYSIS_ROI";
|
||||
T_calib = "RNMAN.GARDS_CALIBRATION_PAIRS_ROI";
|
||||
T_calib = "RNMAN.GARDS_CALIBRATION_PAIRS";
|
||||
T_peaks = "RNMAN.GARDS_PEAKS_ROI";
|
||||
T_param = "RNMAN.GARDS_CALIBRATION_ROI";
|
||||
T_param = "RNMAN.GARDS_CALIBRATION";
|
||||
T_nuc_line = "RNMAN.GARDS_NUCL_LINES_IDED_ROI";
|
||||
T_nuc_act = "RNMAN.GARDS_NUCL_IDED_ROI";
|
||||
T_qc = "RNMAN.GARDS_QC_CHECK_ROI";
|
||||
|
@ -651,7 +704,7 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
List<Integer> roiIds = spectrumAnalysisMapper.roiIds(T_analy, idAnalysis);
|
||||
|
||||
// 获取峰信息列表
|
||||
List<GardsPeaksSpectrum> peaks = spectrumAnalysisMapper.getPeaksROI(T_peaks, idAnalysis);
|
||||
List<GardsPeaksSpectrum> peaks = spectrumAnalysisMapper.getPeaksROI(T_peaks, T_analy, idAnalysis);
|
||||
Map<Integer, List<GardsPeaksSpectrum>> peaksMap = peaks.stream()
|
||||
.collect(Collectors.groupingBy(GardsPeaksSpectrum::getRoiId));
|
||||
for (int i = 0; i < roiIds.size(); i++) {
|
||||
|
@ -692,19 +745,16 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
}
|
||||
|
||||
// 获取刻度点数据
|
||||
List<GardsCalibrationPairsSpectrum> calibrationPairs = spectrumAnalysisMapper.getCalibrationPairsROI(T_calib, idAnalysis);
|
||||
Map<Integer, List<GardsCalibrationPairsSpectrum>> calibrationPairsMap = calibrationPairs.stream()
|
||||
.collect(Collectors.groupingBy(GardsCalibrationPairsSpectrum::getRoiId));
|
||||
List<GardsCalibrationPairsSpectrum> calibrationPairs = spectrumAnalysisMapper.getCalibrationPairs(T_calib, idAnalysis);
|
||||
for (int i = 0; i < roiIds.size(); i++) {
|
||||
Integer roiId = roiIds.get(i);
|
||||
PHDFile phd = phdFiles.get(i);
|
||||
List<GardsCalibrationPairsSpectrum> calibrationPaireList = calibrationPairsMap.get(roiId);
|
||||
if (CollUtil.isEmpty(calibrationPaireList)) continue;
|
||||
if (CollUtil.isEmpty(calibrationPairs)) continue;
|
||||
GEnergyBlock gEnergyBlock = new GEnergyBlock();
|
||||
GResolutionBlock gResolutionBlock = new GResolutionBlock();
|
||||
GEfficiencyBlock gEfficiencyBlock = new GEfficiencyBlock();
|
||||
TotaleffBlock totaleffBlock = new TotaleffBlock();
|
||||
for (GardsCalibrationPairsSpectrum pairsSpectrum : calibrationPaireList) {
|
||||
for (GardsCalibrationPairsSpectrum pairsSpectrum : calibrationPairs) {
|
||||
String calType = pairsSpectrum.getCaltype().trim();
|
||||
if (calType.equals(CalType.ENERGY_CAL.getType())) {
|
||||
phd.setUsedEner(pairsSpectrum.getInput());
|
||||
|
@ -766,18 +816,18 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
}
|
||||
|
||||
// 获取刻度拟合系数
|
||||
List<GardsCalibrationSpectrum> paras = spectrumAnalysisMapper.getParaROI(T_param, idAnalysis);
|
||||
Map<Integer, List<GardsCalibrationSpectrum>> parasMap = paras.stream()
|
||||
.collect(Collectors.groupingBy(GardsCalibrationSpectrum::getRoiId));
|
||||
List<GardsCalibrationSpectrum> paras = spectrumAnalysisMapper.getPara(T_param, idAnalysis);
|
||||
for (int i = 0; i < roiIds.size(); i++) {
|
||||
Integer roiId = roiIds.get(i);
|
||||
PHDFile phd = phdFiles.get(i);
|
||||
List<GardsCalibrationSpectrum> parasList = parasMap.get(roiId);
|
||||
if (CollUtil.isEmpty(parasList)) continue;
|
||||
for (GardsCalibrationSpectrum calibrationSpectrum : parasList) {
|
||||
if (CollUtil.isEmpty(paras)) continue;
|
||||
for (GardsCalibrationSpectrum calibrationSpectrum : paras) {
|
||||
ParameterInfo para = new ParameterInfo();
|
||||
String calType = calibrationSpectrum.getCalType().trim();
|
||||
para.getP().add(calibrationSpectrum.getFunction().doubleValue());
|
||||
if (StrUtil.isEmpty(calibrationSpectrum.getCoeffString())) {
|
||||
continue;
|
||||
}
|
||||
String[] list_coeff = calibrationSpectrum.getCoeffString().split(StringPool.COMMA);
|
||||
for (String str : list_coeff) {
|
||||
para.getP().add(Double.valueOf(str));
|
||||
|
@ -804,7 +854,7 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
}
|
||||
|
||||
// 获取被识别核素射线信息
|
||||
List<GardsNuclLinesIdedSpectrum> nuclLinesIdeds = spectrumAnalysisMapper.getNuclLinesIdedROI(T_nuc_line, idAnalysis);
|
||||
List<GardsNuclLinesIdedSpectrum> nuclLinesIdeds = spectrumAnalysisMapper.getNuclLinesIdedROI(T_nuc_line, T_analy, idAnalysis);
|
||||
Map<Integer, List<GardsNuclLinesIdedSpectrum>> nuclLinesIdedsMap = nuclLinesIdeds.stream()
|
||||
.collect(Collectors.groupingBy(GardsNuclLinesIdedSpectrum::getRoiId));
|
||||
for (int i = 0; i < roiIds.size(); i++) {
|
||||
|
@ -849,7 +899,7 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
}
|
||||
|
||||
// 获取被识别核素的活度浓度
|
||||
List<GardsNuclIdedSpectrum> nuclIdeds = spectrumAnalysisMapper.getNuclIdedROI(T_nuc_act, idAnalysis);
|
||||
List<GardsNuclIdedSpectrum> nuclIdeds = spectrumAnalysisMapper.getNuclIdedROI(T_nuc_act, T_analy, idAnalysis);
|
||||
Map<Integer, List<GardsNuclIdedSpectrum>> nuclIdedsMap = nuclIdeds.stream()
|
||||
.collect(Collectors.groupingBy(GardsNuclIdedSpectrum::getRoiId));
|
||||
for (int i = 0; i < roiIds.size(); i++) {
|
||||
|
@ -873,27 +923,8 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
}
|
||||
}
|
||||
|
||||
// 获取 QC 结果
|
||||
List<GardsQcCheckSpectrum> qcChecks = spectrumAnalysisMapper.getQcCheckROI(T_qc, idAnalysis);
|
||||
Map<Integer, List<GardsQcCheckSpectrum>> qcChecksMap = qcChecks.stream()
|
||||
.collect(Collectors.groupingBy(GardsQcCheckSpectrum::getRoiId));
|
||||
for (int i = 0; i < roiIds.size(); i++) {
|
||||
Integer roiId = roiIds.get(i);
|
||||
PHDFile phd = phdFiles.get(i);
|
||||
List<GardsQcCheckSpectrum> qcChecksList = qcChecksMap.get(roiId);
|
||||
if (CollUtil.isEmpty(qcChecksList)) continue;
|
||||
for (GardsQcCheckSpectrum qcCheckSpectrum : qcChecksList) {
|
||||
String str_key = qcCheckSpectrum.getQcName();
|
||||
QcCheckItem qcCheckItem = new QcCheckItem();
|
||||
qcCheckItem.setValue(qcCheckSpectrum.getQcValue() == null?0.0:qcCheckSpectrum.getQcValue());
|
||||
qcCheckItem.setBPass(qcCheckSpectrum.getQcResult() == 1);
|
||||
qcCheckItem.setStandard(qcCheckSpectrum.getQcStandard());
|
||||
phd.getQcItems().put(str_key, qcCheckItem);
|
||||
}
|
||||
}
|
||||
|
||||
// 获取 MDC 结果
|
||||
List<CalMDCInfo> calMDCInfo = spectrumAnalysisMapper.getMDCROI(T_mdc, idAnalysis);
|
||||
List<CalMDCInfo> calMDCInfo = spectrumAnalysisMapper.getMDCROI(T_mdc, T_analy, idAnalysis);
|
||||
Map<Integer, List<CalMDCInfo>> calMDCInfoMap = calMDCInfo.stream()
|
||||
.collect(Collectors.groupingBy(CalMDCInfo::getRoiId));
|
||||
for (int i = 0; i < roiIds.size(); i++) {
|
||||
|
@ -1167,18 +1198,19 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
result.error500("Please select the parse file first!");
|
||||
return result;
|
||||
}
|
||||
PHDFile phd = selfStationData.getSampleVueData().getROIOnePHDFile();
|
||||
if (StringUtils.isBlank(currentText)) {
|
||||
currentText = selfStationData.getSampleVueData().getUsedEner();
|
||||
currentText = phd.getUsedEner();
|
||||
}
|
||||
List<String> dataSourceList = selfStationData.getSampleVueData().getMapEnerKD().keySet().stream().collect(Collectors.toList());
|
||||
List<String> dataSourceList = phd.getMapEnerKD().keySet().stream().collect(Collectors.toList());
|
||||
map.put("list_dataSource", dataSourceList);
|
||||
if (StringUtils.isNotBlank(currentText)) {
|
||||
map.put("currentText", currentText);
|
||||
List<Double> m_vCurCentroid = selfStationData.getSampleVueData().getMapEnerKD().get(currentText).getCentroid_channel();
|
||||
List<Double> m_vCurEnergy = selfStationData.getSampleVueData().getMapEnerKD().get(currentText).getG_energy();
|
||||
List<Double> m_vCurUncert = selfStationData.getSampleVueData().getMapEnerKD().get(currentText).getUncertainty();
|
||||
List<Double> m_vCurCentroid = phd.getMapEnerKD().get(currentText).getCentroid_channel();
|
||||
List<Double> m_vCurEnergy = phd.getMapEnerKD().get(currentText).getG_energy();
|
||||
List<Double> m_vCurUncert = phd.getMapEnerKD().get(currentText).getUncertainty();
|
||||
map.put("uncert", m_vCurUncert);
|
||||
ParameterInfo m_curParam = selfStationData.getSampleVueData().getMapEnerPara().get(currentText);
|
||||
ParameterInfo m_curParam = phd.getMapEnerPara().get(currentText);
|
||||
if (Objects.isNull(m_curParam)) {
|
||||
m_curParam = new ParameterInfo();
|
||||
}
|
||||
|
@ -1284,8 +1316,9 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
result.error500("Please select the parse file first!");
|
||||
return result;
|
||||
}
|
||||
PHDFile phd = selfStationData.getSampleVueData().getROIOnePHDFile();
|
||||
if (!curCalName.contains("Input")) {
|
||||
List<String> list_cal = selfStationData.getSampleVueData().getMapEnerKD().keySet().stream().collect(Collectors.toList());
|
||||
List<String> list_cal = phd.getMapEnerKD().keySet().stream().collect(Collectors.toList());
|
||||
curCalName = "Input " + (list_cal.stream().filter(item -> item.contains("Input")).collect(Collectors.toList()).size() + 1);
|
||||
list_cal.add(curCalName);
|
||||
result.setSuccess(true);
|
||||
|
@ -1296,8 +1329,8 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
gEnergyBlock.setG_energy(m_vCurEnergy);
|
||||
gEnergyBlock.setUncertainty(m_vCurUncert);
|
||||
gEnergyBlock.setRecord_count(m_vCurCentroid.size());
|
||||
selfStationData.getSampleVueData().getMapEnerKD().put(curCalName, gEnergyBlock);
|
||||
selfStationData.getSampleVueData().getMapEnerPara().put(curCalName, m_curParam);
|
||||
phd.getMapEnerKD().put(curCalName, gEnergyBlock);
|
||||
phd.getMapEnerPara().put(curCalName, m_curParam);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -1342,6 +1375,7 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
result.error500("Please select the parse file first");
|
||||
return result;
|
||||
}
|
||||
PHDFile phd = selfStationData.getSampleVueData().getROIOnePHDFile();
|
||||
if (Objects.nonNull(file)) {
|
||||
String fileName = file.getOriginalFilename();
|
||||
// 从最后一个。切割文件名称 获取文件名称后缀
|
||||
|
@ -1381,7 +1415,7 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
map.put("uncert", m_vCurUncert);
|
||||
ParameterInfo m_curParam = new ParameterInfo();
|
||||
if (StringUtils.isNotBlank(currentText)) {
|
||||
m_curParam = selfStationData.getSampleVueData().getMapEnerPara().get(currentText);
|
||||
m_curParam = phd.getMapEnerPara().get(currentText);
|
||||
}
|
||||
map.put("param", m_curParam);
|
||||
int num = m_vCurEnergy.size();
|
||||
|
@ -1436,8 +1470,9 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
result.error500("Please select the parse file first!");
|
||||
return result;
|
||||
}
|
||||
PHDFile phd = selfStationData.getSampleVueData().getROIOnePHDFile();
|
||||
if (StringUtils.isNotBlank(currentName)) {
|
||||
selfStationData.getSampleVueData().setNewEner(currentName);
|
||||
phd.setNewEner(currentName);
|
||||
}
|
||||
selfCache.put(fileName, selfStationData);
|
||||
selfStationCache.setSelfCache(selfCache);
|
||||
|
@ -1458,18 +1493,19 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
result.error500("Please select the parse file first!");
|
||||
return result;
|
||||
}
|
||||
PHDFile phd = selfStationData.getSampleVueData().getROIOnePHDFile();
|
||||
if (StringUtils.isBlank(currentText)) {
|
||||
currentText = selfStationData.getSampleVueData().getUsedReso();
|
||||
currentText = phd.getUsedReso();
|
||||
}
|
||||
List<String> dataSourceList = selfStationData.getSampleVueData().getMapResoKD().keySet().stream().collect(Collectors.toList());
|
||||
List<String> dataSourceList = phd.getMapResoKD().keySet().stream().collect(Collectors.toList());
|
||||
map.put("list_dataSource", dataSourceList);
|
||||
if (StringUtils.isNotBlank(currentText)) {
|
||||
map.put("currentText", currentText);
|
||||
List<Double> m_vCurReso = selfStationData.getSampleVueData().getMapResoKD().get(currentText).getFWHM();
|
||||
List<Double> m_vCurEnergy = selfStationData.getSampleVueData().getMapResoKD().get(currentText).getG_energy();
|
||||
List<Double> m_vCurUncert = selfStationData.getSampleVueData().getMapResoKD().get(currentText).getUncertainty();
|
||||
List<Double> m_vCurReso = phd.getMapResoKD().get(currentText).getFWHM();
|
||||
List<Double> m_vCurEnergy = phd.getMapResoKD().get(currentText).getG_energy();
|
||||
List<Double> m_vCurUncert = phd.getMapResoKD().get(currentText).getUncertainty();
|
||||
map.put("uncert", m_vCurUncert);
|
||||
ParameterInfo m_curParam = selfStationData.getSampleVueData().getMapResoPara().get(currentText);
|
||||
ParameterInfo m_curParam = phd.getMapResoPara().get(currentText);
|
||||
if (Objects.isNull(m_curParam)) {
|
||||
m_curParam = new ParameterInfo();
|
||||
}
|
||||
|
@ -1564,8 +1600,9 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
result.error500("Please select the parse file first!");
|
||||
return result;
|
||||
}
|
||||
PHDFile phd = selfStationData.getSampleVueData().getROIOnePHDFile();
|
||||
if (!curCalName.contains("Input")) {
|
||||
List<String> list_cal = selfStationData.getSampleVueData().getMapResoKD().keySet().stream().collect(Collectors.toList());
|
||||
List<String> list_cal = phd.getMapResoKD().keySet().stream().collect(Collectors.toList());
|
||||
curCalName = "Input " + (list_cal.stream().filter(item -> item.contains("Input")).collect(Collectors.toList()).size() + 1);
|
||||
list_cal.add(curCalName);
|
||||
result.setSuccess(true);
|
||||
|
@ -1576,8 +1613,8 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
gResolutionBlock.setG_energy(m_vCurEnergy);
|
||||
gResolutionBlock.setUncertainty(m_vCurUncert);
|
||||
gResolutionBlock.setRecord_count(m_vCurEnergy.size());
|
||||
selfStationData.getSampleVueData().getMapResoKD().put(curCalName, gResolutionBlock);
|
||||
selfStationData.getSampleVueData().getMapResoPara().put(curCalName, m_curParam);
|
||||
phd.getMapResoKD().put(curCalName, gResolutionBlock);
|
||||
phd.getMapResoPara().put(curCalName, m_curParam);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -1622,6 +1659,7 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
result.error500("Please select the parse file first");
|
||||
return result;
|
||||
}
|
||||
PHDFile phd = selfStationData.getSampleVueData().getROIOnePHDFile();
|
||||
if (Objects.nonNull(file)) {
|
||||
String fileName = file.getOriginalFilename();
|
||||
// 从最后一个。切割文件名称 获取文件名称后缀
|
||||
|
@ -1661,7 +1699,7 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
map.put("uncert", m_vCurUncert);
|
||||
ParameterInfo m_curParam = new ParameterInfo();
|
||||
if (StringUtils.isNotBlank(currentText)) {
|
||||
m_curParam = selfStationData.getSampleVueData().getMapResoPara().get(currentText);
|
||||
m_curParam = phd.getMapResoPara().get(currentText);
|
||||
}
|
||||
map.put("param", m_curParam);
|
||||
int num = m_vCurEnergy.size();
|
||||
|
@ -1716,8 +1754,9 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
result.error500("Please select the parse file first!");
|
||||
return result;
|
||||
}
|
||||
PHDFile phd = selfStationData.getSampleVueData().getROIOnePHDFile();
|
||||
if (StringUtils.isNotBlank(currentName)) {
|
||||
selfStationData.getSampleVueData().setNewReso(currentName);
|
||||
phd.setNewReso(currentName);
|
||||
}
|
||||
selfCache.put(fileName, selfStationData);
|
||||
selfStationCache.setSelfCache(selfCache);
|
||||
|
@ -1746,18 +1785,19 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
result.error500("Please select the parse file first!");
|
||||
return result;
|
||||
}
|
||||
PHDFile phd = selfStationData.getSampleVueData().getROIOnePHDFile();
|
||||
if (StringUtils.isBlank(currentText)) {
|
||||
currentText = selfStationData.getSampleVueData().getUsedEffi();
|
||||
currentText = phd.getUsedEffi();
|
||||
}
|
||||
List<String> dataSourceList = selfStationData.getSampleVueData().getMapEffiKD().keySet().stream().collect(Collectors.toList());
|
||||
List<String> dataSourceList = phd.getMapEffiKD().keySet().stream().collect(Collectors.toList());
|
||||
map.put("list_dataSource", dataSourceList);
|
||||
if (StringUtils.isNotBlank(currentText)) {
|
||||
map.put("currentText", currentText);
|
||||
List<Double> m_vCurEffi = selfStationData.getSampleVueData().getMapEffiKD().get(currentText).getEfficiency();
|
||||
List<Double> m_vCurEnergy = selfStationData.getSampleVueData().getMapEffiKD().get(currentText).getG_energy();
|
||||
List<Double> m_vCurUncert = selfStationData.getSampleVueData().getMapEffiKD().get(currentText).getUncertainty();
|
||||
List<Double> m_vCurEffi = phd.getMapEffiKD().get(currentText).getEfficiency();
|
||||
List<Double> m_vCurEnergy = phd.getMapEffiKD().get(currentText).getG_energy();
|
||||
List<Double> m_vCurUncert = phd.getMapEffiKD().get(currentText).getUncertainty();
|
||||
map.put("uncert", m_vCurUncert);
|
||||
ParameterInfo m_curParam = selfStationData.getSampleVueData().getMapEffiPara().get(currentText);
|
||||
ParameterInfo m_curParam = phd.getMapEffiPara().get(currentText);
|
||||
if (Objects.isNull(m_curParam)) {
|
||||
m_curParam = new ParameterInfo();
|
||||
}
|
||||
|
@ -1852,8 +1892,9 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
result.error500("Please select the parse file first!");
|
||||
return result;
|
||||
}
|
||||
PHDFile phd = selfStationData.getSampleVueData().getROIOnePHDFile();
|
||||
if (!curCalName.contains("Input")) {
|
||||
List<String> list_cal = selfStationData.getSampleVueData().getMapEffiKD().keySet().stream().collect(Collectors.toList());
|
||||
List<String> list_cal = phd.getMapEffiKD().keySet().stream().collect(Collectors.toList());
|
||||
curCalName = "Input " + (list_cal.stream().filter(item -> item.contains("Input")).collect(Collectors.toList()).size() + 1);
|
||||
list_cal.add(curCalName);
|
||||
result.setSuccess(true);
|
||||
|
@ -1864,8 +1905,8 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
gEfficiencyBlock.setG_energy(m_vCurEnergy);
|
||||
gEfficiencyBlock.setUncertainty(m_vCurUncert);
|
||||
gEfficiencyBlock.setRecord_count(m_vCurEnergy.size());
|
||||
selfStationData.getSampleVueData().getMapEffiKD().put(curCalName, gEfficiencyBlock);
|
||||
selfStationData.getSampleVueData().getMapEffiPara().put(curCalName, m_curParam);
|
||||
phd.getMapEffiKD().put(curCalName, gEfficiencyBlock);
|
||||
phd.getMapEffiPara().put(curCalName, m_curParam);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -1911,6 +1952,7 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
result.error500("Please select the parse file first");
|
||||
return result;
|
||||
}
|
||||
PHDFile phd = selfStationData.getSampleVueData().getROIOnePHDFile();
|
||||
if (Objects.nonNull(file)) {
|
||||
String fileName = file.getOriginalFilename();
|
||||
// 从最后一个。切割文件名称 获取文件名称后缀
|
||||
|
@ -1957,7 +1999,7 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
map.put("uncert", m_vCurUncert);
|
||||
ParameterInfo m_curParam = new ParameterInfo();
|
||||
if (StringUtils.isNotBlank(currentText)) {
|
||||
m_curParam = selfStationData.getSampleVueData().getMapEffiPara().get(currentText);
|
||||
m_curParam = phd.getMapEffiPara().get(currentText);
|
||||
}
|
||||
if (m_curParam.getP().size() > 0) {
|
||||
m_curParam.getP().set(0, m_nFunId);
|
||||
|
@ -2017,7 +2059,7 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
return result;
|
||||
}
|
||||
if (StringUtils.isNotBlank(currentName)) {
|
||||
selfStationData.getSampleVueData().setNewEffi(currentName);
|
||||
selfStationData.getSampleVueData().getROIOnePHDFile().setNewEffi(currentName);
|
||||
}
|
||||
selfCache.put(fileName, selfStationData);
|
||||
selfStationCache.setSelfCache(selfCache);
|
||||
|
@ -2532,6 +2574,8 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
this.updateROI(roiParamList, selfStationData);
|
||||
}
|
||||
|
||||
BetaDataFile betaDataFile = selfStationData.getBetaDataFile();
|
||||
|
||||
// Gamma文件内容转换为PHD实体
|
||||
SelfStationVueData sampleVueData = selfStationData.getSampleVueData();
|
||||
PHDFile phdOne = sampleVueData.getROIOnePHDFile();
|
||||
|
@ -2596,6 +2640,9 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
List<GardsXeResultsSpectrum> betaResult = this.betaAnalyse(selfStationData, nuclideLinesMap);
|
||||
resultMap.put("XeData", betaResult);
|
||||
|
||||
List<GardsXeResults> xeResults = Lists.newArrayList(betaResult);
|
||||
betaDataFile.setXeDataList(xeResults);
|
||||
|
||||
result.setSuccess(true);
|
||||
result.setResult(resultMap);
|
||||
selfStationData.setBAnalyed(true);
|
||||
|
@ -4060,26 +4107,6 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
xeMap.put("sampleGammaEnergyData", betaDataFile.getGammaNewEnergyList());
|
||||
}
|
||||
}
|
||||
if (analyseData.isGasBgData()) {
|
||||
betaDataFile.setBGammaEnergyValidGas(true);
|
||||
if (CollectionUtils.isNotEmpty(betaDataFile.getGammaNewEnergyList())) {
|
||||
betaDataFile.setGasGammaEnergyList(betaDataFile.getGammaNewEnergyList());
|
||||
xeMap.put("gasGammaEnergyData", betaDataFile.getGammaNewEnergyList());
|
||||
}
|
||||
}
|
||||
if (analyseData.isDetBgData()) {
|
||||
betaDataFile.setBGammaEnergyValidDet(true);
|
||||
if (CollectionUtils.isNotEmpty(betaDataFile.getGammaNewEnergyList())) {
|
||||
betaDataFile.setDetGammaEnergyList(betaDataFile.getGammaNewEnergyList());
|
||||
xeMap.put("detGammaEnergyData", betaDataFile.getGammaNewEnergyList());
|
||||
}
|
||||
}
|
||||
if (analyseData.isQcData()) {
|
||||
if (CollectionUtils.isNotEmpty(betaDataFile.getGammaNewEnergyList())) {
|
||||
betaDataFile.setQcGammaEnergyList(betaDataFile.getGammaNewEnergyList());
|
||||
xeMap.put("qcGammaEnergyData", betaDataFile.getGammaNewEnergyList());
|
||||
}
|
||||
}
|
||||
}
|
||||
//判断是否勾选了sample
|
||||
spectrum_group.BgCalPara.bApplyNewCalicSample = analyseData.isSampleData();
|
||||
|
@ -4087,6 +4114,25 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
if (StringUtils.isNotBlank(betaDataFile.getSampleTmpPath())) {
|
||||
sampleTmp = new File(betaDataFile.getSampleTmpPath());
|
||||
}
|
||||
|
||||
// 根据公式更新对应#energy道址数据 fix:20240918
|
||||
// CalcBgBoundaryParam calcBgBoundaryParam = new CalcBgBoundaryParam();
|
||||
// calcBgBoundaryParam.g_e_cal = spectrum_group.BgCalPara.g_e_cal;
|
||||
// calcBgBoundaryParam.b_e_cal = spectrum_group.BgCalPara.b_e_cal;
|
||||
// calcBgBoundaryParam.b_energy = struct.b_electron_energy;
|
||||
// calcBgBoundaryParam.b_channel = struct.b_channel;
|
||||
// calcBgBoundaryParam.g_channel = struct.g_centroid_channel;
|
||||
// calcBgBoundaryParam.g_energy = struct.g_energy;
|
||||
// calcBgBoundaryParam.ROI_B_start_x1 = struct.POI_B_x1;
|
||||
// calcBgBoundaryParam.ROI_B_stop_x2 = struct.POI_B_x2;
|
||||
// calcBgBoundaryParam.ROI_G_start_y1 = struct.POI_G_y1;
|
||||
// calcBgBoundaryParam.ROI_G_stop_y2 = struct.POI_G_y2;
|
||||
// BgBoundary bgBoundary = EnergySpectrumHandler.CalcBgBoundary(calcBgBoundaryParam);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// if (Objects.nonNull(sampleTmp) && Objects.nonNull(gasTmp) && Objects.nonNull(detTmp)) {
|
||||
// //调用分析方法进行分析操作
|
||||
// boolean bRet = phdFileUtil.analyzeSpectrum(sampleTmp, gasTmp, detTmp, spectrum_group.BgCalPara, xeMap, betaDataFile);
|
||||
|
@ -5547,8 +5593,8 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
// 获取Map IdAnalysis:RoiId:GStoreMiddleProcessData
|
||||
analysisManService.middleDataTable(idAnalysis, middleDatas);
|
||||
// 向 RNMAN.GARDS_CALIBRATION_PAIRS 表写入 Energy 刻度数据对
|
||||
analysisManService.saveCalibrationPairsROI(sampleId, idAnalysis);
|
||||
analysisManService.saveCalibrationROI(sampleId, idAnalysis);
|
||||
analysisManService.saveCalibrationPairs(sampleId, idAnalysis);
|
||||
analysisManService.saveCalibration(sampleId, idAnalysis);
|
||||
// 向 RNMAN.GARDS_PEAKS 表写入峰信息
|
||||
analysisManService.savePeaksROI(sampleId, idAnalysis);
|
||||
// 向 RNMAN.GARDS_NUCL_LINES_IDED 表写入被识别核素的射线信息
|
||||
|
@ -5561,6 +5607,9 @@ public class SelfStationServiceImpl extends AbstractLogOrReport implements ISelf
|
|||
analysisManService.saveAnalySettingROI(sampleId, idAnalysis, phdFiles);
|
||||
// 向 RNMAN.GARDS_MDC 表写入 MDC计算结果
|
||||
analysisManService.saveMDCROI(sampleId, mdcInfoMaps, idAnalysis);
|
||||
|
||||
//新增gards_Xe_results数据表数据
|
||||
analysisManService.saveGardsXeResults(sampleId, idAnalysis, betaDataFile.getXeDataList());
|
||||
try {
|
||||
// 存储PHD文件
|
||||
if (StringUtils.isNotBlank(sampleFilePathName)){
|
||||
|
|
Loading…
Reference in New Issue
Block a user