fix: gamma自动处理

This commit is contained in:
orgin 2023-09-22 17:17:59 +08:00
parent e08f3d4208
commit 2d0ea1e754

View File

@ -23,7 +23,6 @@ import org.jeecg.modules.base.entity.rnauto.*;
import org.jeecg.modules.entity.vo.*; import org.jeecg.modules.entity.vo.*;
import org.jeecg.modules.native_jni.struct.EnergySpectrumStruct; import org.jeecg.modules.native_jni.struct.EnergySpectrumStruct;
import java.io.File;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.*; import java.util.*;
@ -104,10 +103,11 @@ public class Sample_G_Analysis {
GammaFileUtil gammaFileUtil = new GammaFileUtil(); GammaFileUtil gammaFileUtil = new GammaFileUtil();
PHDFile phdFile = new PHDFile(); PHDFile phdFile = new PHDFile();
// todo 获取数据库 Gamma 默认参数 // 获取数据库 Gamma 默认参数
// todo 文件路径 getSettingFromDB(phdFile);
// 文件路径
middleData.setAnalyses_save_filePath(this.sampleInputFilename); middleData.setAnalyses_save_filePath(this.sampleInputFilename);
// todo 读取文件内容并附值 // 读取文件内容并附值
this.setPHDFile(phdFile, this.energySpectrumStruct); this.setPHDFile(phdFile, this.energySpectrumStruct);
// todo 根据系统类型传入不同的核素参数 // todo 根据系统类型传入不同的核素参数
Map<String, NuclideLines> nuclideLibs = new HashMap<>(); Map<String, NuclideLines> nuclideLibs = new HashMap<>();
@ -124,22 +124,22 @@ public class Sample_G_Analysis {
// 获取分析结果ID ==> SELECT IDANALYSIS // 获取分析结果ID ==> SELECT IDANALYSIS
Integer IdAnalysis = getIdAnalysis(sampleId); Integer IdAnalysis = getIdAnalysis(sampleId);
// 修改保存结果状态 ==> UPDATE ORIGINAL.GARDS_SAMPLE_DATA // 修改保存结果状态 ==> UPDATE ORIGINAL.GARDS_SAMPLE_DATA
// serviceQuotes.getSampleDataService().updateStatus(null,null); serviceQuotes.getSampleDataService().updateStatus(null,null);
/* GARDS_CALIBRATION_PAIRS 数据表保存 */ /* GARDS_CALIBRATION_PAIRS 数据表保存 */
// saveCalibrationPairs(middleData,sampleId,IdAnalysis); saveCalibrationPairs(middleData, sampleId, IdAnalysis);
/* GARDS_CALIBRATION 数据表保存 */ /* GARDS_CALIBRATION 数据表保存 */
// saveCalibration(middleData,sampleId,IdAnalysis); saveCalibration(middleData, sampleId, IdAnalysis);
/* Gards_Peaks 数据表保存 */ /* Gards_Peaks 数据表保存 */
// savePeaks(middleData); savePeaks(middleData);
/* Gards_Nucl_Lines_Ided 数据表保存 */ /* Gards_Nucl_Lines_Ided 数据表保存 */
// saveNuclLinesIded(middleData,sampleId,IdAnalysis); saveNuclLinesIded(middleData, sampleId, IdAnalysis);
/* Gards_Nucl_Ided 数据表保存 */ /* Gards_Nucl_Ided 数据表保存 */
// saveNuclIded(middleData,sampleId,IdAnalysis); saveNuclIded(middleData, sampleId, IdAnalysis);
/* Gards_Qc_Check 数据表保存 */ /* Gards_Qc_Check 数据表保存 */
// saveQcCheck(middleData,sampleId,IdAnalysis); saveQcCheck(middleData, sampleId, IdAnalysis, phdFile.getQcItems());
/* */ // 生成日志文件
/** 收尾处理 ==> 写日志文件和报告文件 **/
writeLog(middleData.getAnalyses_LogPath(), middleData); writeLog(middleData.getAnalyses_LogPath(), middleData);
// todo 报告文件
}catch (Exception e){ }catch (Exception e){
e.printStackTrace(); e.printStackTrace();
@ -148,6 +148,11 @@ public class Sample_G_Analysis {
} }
} }
/**
* 生成日志文件
* @param logFilePath
* @param middleData
*/
private void writeLog(String logFilePath, GStoreMiddleProcessData middleData) { private void writeLog(String logFilePath, GStoreMiddleProcessData middleData) {
String sampleId = middleData.getSample_id(); String sampleId = middleData.getSample_id();
MyLogFormatUtil myLogFormatUtil = new MyLogFormatUtil(); MyLogFormatUtil myLogFormatUtil = new MyLogFormatUtil();
@ -411,51 +416,6 @@ public class Sample_G_Analysis {
FileUtil.writeLines(writes, logFilePath, "utf8"); FileUtil.writeLines(writes, logFilePath, "utf8");
} }
private static List<String> getAttribute(List<String> channel, String channelUnit, List<String> energys, String energyUnit,
List<String> errors, String errorUnit){
List<List<String>> data = new ArrayList<>();
List<String> result = new ArrayList<>();
// 初始化数据
for (int i = 0; i < channel.size(); i++) {
data.add(Arrays.asList(
"Channel : " + channel.get(i) + " " + channelUnit,
"Energy : " + energys.get(i) + " " + energyUnit,
"Error : " + errors.get(i) + " " + errorUnit)
);
}
// 计算每列数据中最长的字符串长度
int[] columnWidths = new int[data.get(0).size()];
for (List<String> row : data) {
for (int i = 0; i < row.size(); i++) {
columnWidths[i] = Math.max(columnWidths[i], row.get(i).length());
}
}
// 构造格式化字符串
StringBuilder formatBuilder = new StringBuilder();
for (int i = 0; i < columnWidths.length; i++) {
formatBuilder.append("%-" + (columnWidths[i] + 4) + "s");
}
formatBuilder.append("\n");
String format = formatBuilder.toString();
// 格式化输出日志
for (List<String> row : data) {
String log = String.format(format, row.toArray());
result.add(log);
System.out.print(log);
}
return result;
}
public static void main(String[] args) {
List<String> channels = Arrays.asList("59.541", "88.034", "122.061", "165.857", "391.698", "661.657", "834.838", "898.036", "1115.540", "1173.230", "1332.490", "1836.050");
List<String> energies = Arrays.asList("0.168", "0.176", "0.174", "0.155", "0.092", "0.059", "0.051", "0.040", "0.040", "0.031", "0.028", "0.022");
List<String> errors = Arrays.asList("0.003", "0.004", "0.003", "0.003", "0.002", "0.001", "0.001", "0.001", "0.001", "0.001", "0.001", "0.000");
getAttribute(channels,"",energies,"",errors,"");
}
public void saveAnalysis(GStoreMiddleProcessData middleData,Integer sampleId){ public void saveAnalysis(GStoreMiddleProcessData middleData,Integer sampleId){
GardsAnalyses analysis = toAnalysis(middleData); GardsAnalyses analysis = toAnalysis(middleData);
analysis.setSampleId(sampleId); analysis.setSampleId(sampleId);
@ -669,10 +629,8 @@ public class Sample_G_Analysis {
} }
public void saveQcCheck(GStoreMiddleProcessData middleData, public void saveQcCheck(GStoreMiddleProcessData middleData,
Integer sampleId, Integer IdAnalysis){ Integer sampleId, Integer IdAnalysis,Map<String, QcCheckItem> qcItems){
// Gards_Qc_Check数据表 ==> INSERT INTO RNAUTO.GARDS_QC_CHECK // Gards_Qc_Check数据表 ==> INSERT INTO RNAUTO.GARDS_QC_CHECK
PHDFile phdFile = getSettingFromDB();
Map<String, QcCheckItem> qcItems = phdFile.getQcItems();
if (MapUtil.isNotEmpty(qcItems)){ if (MapUtil.isNotEmpty(qcItems)){
String base_QC = String.valueOf(qcItems.size()); String base_QC = String.valueOf(qcItems.size());
QcCheckDto qcCheckDto = new QcCheckDto(); QcCheckDto qcCheckDto = new QcCheckDto();
@ -772,10 +730,9 @@ public class Sample_G_Analysis {
return fieldMap; return fieldMap;
} }
public PHDFile getSettingFromDB(){ public PHDFile getSettingFromDB(PHDFile phdFile){
Map<String, String> mapSetting = serviceQuotes.getGammaDefaultParamsService() Map<String, String> mapSetting = serviceQuotes.getGammaDefaultParamsService()
.mapSetting(); .mapSetting();
PHDFile phdFile = new PHDFile();
SpecSetup setting = phdFile.getSetting(); SpecSetup setting = phdFile.getSetting();
String BaseImprovePSS = mapSetting.get(Setting.BASEIMPROVEPSS); String BaseImprovePSS = mapSetting.get(Setting.BASEIMPROVEPSS);
if (StrUtil.isNotBlank(BaseImprovePSS)) if (StrUtil.isNotBlank(BaseImprovePSS))