beta功能实现分析以及重新分析功能,以及相关的页面数据变化
gamma实现InteractiveTool页面的fitPeak功能 gamma新增InteractiveTool页面的acceptBaseLine接口 gamma功能修改log,report文本内容的对齐格式 AbstractLogOrReport新增相关gamma的log,report需要的独立的对齐方法 AcceptInfo新增newPeak,flag字段用来控制InteractiveTool页面的peak变化 新增BaseLineCtrls实体类
This commit is contained in:
parent
0e4d702b96
commit
2714989491
|
@ -1,5 +1,13 @@
|
|||
package org.jeecg.modules.base.abstracts;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringPool;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 日志/报告格式化抽象类
|
||||
*/
|
||||
|
@ -39,4 +47,98 @@ public abstract class AbstractLogOrReport {
|
|||
return String.format(source,args);
|
||||
}
|
||||
|
||||
public String attributeFormat(String[] titles, String[] contents) {
|
||||
//得到第一列的最大宽度
|
||||
int a_width=0;
|
||||
for(int pos=0;pos<titles.length;pos++) {
|
||||
if(titles[pos].length()>a_width) {
|
||||
a_width = titles[pos].length();
|
||||
}
|
||||
}
|
||||
//得到第二列的最大宽度
|
||||
int c_width=0;
|
||||
for(int pos=0;pos<contents.length;pos++) {
|
||||
if(contents[pos].length()>c_width) {
|
||||
c_width = contents[pos].length();
|
||||
}
|
||||
}
|
||||
//拼接最终结果
|
||||
StringBuilder rData = new StringBuilder();
|
||||
for(int pos=0;pos<titles.length;pos++) {
|
||||
if(pos<contents.length) {
|
||||
String model = "%s%s%-"+String.valueOf(a_width-titles[pos].length()+4)+"s%s%-"+String.valueOf(c_width-contents[pos].length()+4)+"s";
|
||||
rData.append(String.format(model, titles[pos], " : ", " ", contents[pos], " "));
|
||||
rData.append(System.lineSeparator());
|
||||
rData.append(System.lineSeparator());
|
||||
}
|
||||
}
|
||||
return rData.toString();
|
||||
}
|
||||
|
||||
public String attributeGFormat(String[] titles, String[] contents) {
|
||||
//得到第一列的最大宽度
|
||||
int a_width=0;
|
||||
for(int pos=0;pos<titles.length;pos++) {
|
||||
if(titles[pos].length()>a_width) {
|
||||
a_width = titles[pos].length();
|
||||
}
|
||||
}
|
||||
//得到第二列的最大宽度
|
||||
int c_width=0;
|
||||
for(int pos=0;pos<contents.length;pos++) {
|
||||
if(contents[pos].length()>c_width) {
|
||||
c_width = contents[pos].length();
|
||||
}
|
||||
}
|
||||
//拼接最终结果
|
||||
StringBuilder rData = new StringBuilder();
|
||||
for(int pos=0;pos<titles.length;pos++) {
|
||||
if(pos<contents.length) {
|
||||
String model = "%s%s%-"+String.valueOf(a_width-titles[pos].length()+4)+"s%s%-"+String.valueOf(c_width-contents[pos].length()+4)+"s";
|
||||
rData.append(String.format(model, titles[pos], "", " ", contents[pos], " "));
|
||||
//换行
|
||||
rData.append(System.lineSeparator());
|
||||
//换行
|
||||
rData.append(System.lineSeparator());
|
||||
}
|
||||
}
|
||||
return rData.toString();
|
||||
}
|
||||
|
||||
public Map<String, List<String>> GetReportFixedWidth(String[] cells, String[] datas, int maxWidth) {
|
||||
Map<String, List<String>> map =new HashMap<>();
|
||||
List<String> titles = new LinkedList<>();
|
||||
List<String> contents = new LinkedList<>();
|
||||
//根据固定宽度切割过长的数据
|
||||
for (int i=0; i<datas.length; i++) {
|
||||
String cell = cells[i];
|
||||
String data = datas[i];
|
||||
if (data.length()> maxWidth) {
|
||||
//计算需要切割成多少份
|
||||
double numParts = Math.ceil(data.length() / maxWidth);
|
||||
for (int j=0; j<numParts; j++) {
|
||||
String dataSub = "";
|
||||
//如果本次截取的末端下标没有越界 正常截取
|
||||
if (((j + 1) * maxWidth) < data.length()) {
|
||||
dataSub = data.substring(j * maxWidth, (j + 1) * maxWidth);
|
||||
} else {
|
||||
dataSub = data.substring(j * maxWidth, data.length());
|
||||
}
|
||||
if (j==0) {
|
||||
titles.add(cell);
|
||||
} else {
|
||||
titles.add(" ");
|
||||
}
|
||||
contents.add(dataSub);
|
||||
}
|
||||
} else {
|
||||
titles.add(cell);
|
||||
contents.add(data);
|
||||
}
|
||||
}
|
||||
map.put("title", titles);
|
||||
map.put("content", contents);
|
||||
return map;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -10,6 +10,8 @@ public class AnalyseData implements Serializable {
|
|||
|
||||
private String applyType;
|
||||
|
||||
private String currentFileName;
|
||||
|
||||
private boolean sampleData;
|
||||
|
||||
private boolean gasBgData;
|
||||
|
|
|
@ -16,6 +16,7 @@ public class GStoreMiddleProcessData implements Serializable {
|
|||
public String ErrorInfo; //错误信息
|
||||
//gards_analyses数据表数据
|
||||
public String IdAnalysis; //分析ID号
|
||||
|
||||
public String sample_id; //样品ID号
|
||||
public String analyses_analysisBegin; //分析开始时
|
||||
public String analyses_analysisEnd; //分析的结束时间
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -3,11 +3,13 @@ package org.jeecg.common.util;
|
|||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringPool;
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||
import com.google.common.cache.Cache;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.net.ftp.FTP;
|
||||
import org.apache.commons.net.ftp.FTPClient;
|
||||
import org.apache.commons.net.ftp.FTPFile;
|
||||
import org.jeecg.common.properties.SpectrumPathProperties;
|
||||
import org.jeecg.modules.base.entity.rnman.GardsXeResults;
|
||||
import org.jeecg.modules.base.enums.DataType;
|
||||
import org.jeecg.modules.base.enums.DataTypeAbbr;
|
||||
import org.jeecg.modules.base.enums.XeNuclideName;
|
||||
|
@ -269,6 +271,7 @@ public class PHDFileUtil {
|
|||
throw new RuntimeException("ftp连接失败!");
|
||||
}
|
||||
InputStream iStream= null;
|
||||
File file = null;
|
||||
try {
|
||||
//被动模式
|
||||
ftpClient.enterLocalPassiveMode();
|
||||
|
@ -283,7 +286,7 @@ public class PHDFileUtil {
|
|||
iStream=ftpClient.retrieveFileStream(fileName);
|
||||
if (Objects.nonNull(iStream)) {
|
||||
//声明一个临时文件
|
||||
File file = File.createTempFile("betaGamma", null);
|
||||
file = File.createTempFile("betaGamma", null);
|
||||
//将ftp文件的输入流复制给临时文件
|
||||
FileUtils.copyInputStreamToFile(iStream, file);
|
||||
List<String> allLines = FileUtils.readLines(file, ftpUtil.getEncoding());
|
||||
|
@ -299,6 +302,9 @@ public class PHDFileUtil {
|
|||
if (Objects.nonNull(iStream)){
|
||||
iStream.close();
|
||||
}
|
||||
if (Objects.nonNull(file)) {
|
||||
file.delete();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
@ -455,6 +461,7 @@ public class PHDFileUtil {
|
|||
return map;
|
||||
}
|
||||
InputStream inputStream = null;
|
||||
File file = null;
|
||||
try {
|
||||
//切换被动模式
|
||||
ftpClient.enterLocalPassiveMode();
|
||||
|
@ -468,7 +475,7 @@ public class PHDFileUtil {
|
|||
inputStream = ftpClient.retrieveFileStream(sampleFileName);
|
||||
if (Objects.nonNull(inputStream)) {
|
||||
//声明一个临时文件
|
||||
File file = File.createTempFile("betaGamma", null);
|
||||
file = File.createTempFile("betaGamma", null);
|
||||
//将ftp文件的输入流复制给临时文件
|
||||
FileUtils.copyInputStreamToFile(inputStream, file);
|
||||
//加载sampleFile内容
|
||||
|
@ -501,7 +508,9 @@ public class PHDFileUtil {
|
|||
if (inputStream!=null){
|
||||
inputStream.close();
|
||||
}
|
||||
|
||||
if (Objects.nonNull(file)) {
|
||||
file.delete();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
@ -514,6 +523,7 @@ public class PHDFileUtil {
|
|||
FTPClient ftpClient = ftpUtil.LoginFTP();
|
||||
InputStream inputStream = null;
|
||||
File file = null;
|
||||
StringBuffer path = new StringBuffer();
|
||||
try {
|
||||
//被动模式
|
||||
ftpClient.enterLocalPassiveMode();
|
||||
|
@ -529,27 +539,9 @@ public class PHDFileUtil {
|
|||
file = File.createTempFile("betaGamma", null);
|
||||
//将ftp文件的输入流复制给临时文件
|
||||
FileUtils.copyInputStreamToFile(inputStream, file);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
} finally {
|
||||
try {
|
||||
if (Objects.nonNull(ftpClient)){
|
||||
ftpClient.disconnect();
|
||||
}
|
||||
if (inputStream != null){
|
||||
inputStream.close();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
//加载动态库
|
||||
//System.loadLibrary("ReadPHDFile");
|
||||
EnergySpectrumStruct sourceData = EnergySpectrumHandler.getSourceData(file.getAbsolutePath());
|
||||
String systemType = sourceData.system_type;
|
||||
String dataType = sourceData.data_type;
|
||||
StringBuffer path = new StringBuffer();
|
||||
if(systemType.contains("B")) {
|
||||
path.append("Spectrum");
|
||||
path.append(StringPool.SLASH+"Xenon");
|
||||
|
@ -576,29 +568,6 @@ public class PHDFileUtil {
|
|||
path.append(StringPool.SLASH+fileName.substring(pos+5,pos+7));
|
||||
}
|
||||
path.append(StringPool.SLASH+fileName);
|
||||
return path.toString();
|
||||
}
|
||||
|
||||
public BgBoundary CalBoundary(String filePath, String fileName){
|
||||
//连接ftp
|
||||
FTPClient ftpClient = ftpUtil.LoginFTP();
|
||||
InputStream inputStream = null;
|
||||
File file = null;
|
||||
try {
|
||||
//被动模式
|
||||
ftpClient.enterLocalPassiveMode();
|
||||
//设置文件类型--二进制文件
|
||||
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
|
||||
//
|
||||
ftpClient.setControlEncoding("UTF-8");
|
||||
ftpClient.setFileTransferMode(FTPClient.STREAM_TRANSFER_MODE);
|
||||
//切换文件路径
|
||||
ftpClient.changeWorkingDirectory(filePath);
|
||||
inputStream = ftpClient.retrieveFileStream(fileName);
|
||||
if (Objects.nonNull(inputStream)){
|
||||
file = File.createTempFile("betaGamma", null);
|
||||
//将ftp文件的输入流复制给临时文件
|
||||
FileUtils.copyInputStreamToFile(inputStream, file);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
|
@ -610,31 +579,14 @@ public class PHDFileUtil {
|
|||
if (inputStream != null){
|
||||
inputStream.close();
|
||||
}
|
||||
if (Objects.nonNull(file)) {
|
||||
file.delete();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
//加载dll工具库
|
||||
//System.loadLibrary("ReadPHDFile");
|
||||
EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(file.getAbsolutePath());
|
||||
//计算边界值
|
||||
List<Double> gCentroidChannel = struct.g_centroid_channel;
|
||||
List<Double> gEnergy = struct.g_energy;
|
||||
List<Double> bChannel = struct.b_channel;
|
||||
List<Double> bElectronEnergy = struct.b_electron_energy;
|
||||
CalcBgBoundaryParam calcBgBoundaryParam = new CalcBgBoundaryParam();
|
||||
calcBgBoundaryParam.g_e_cal = EnergySpectrumHandler.GetFileFittingPara(gEnergy, gCentroidChannel);
|
||||
calcBgBoundaryParam.b_e_cal = EnergySpectrumHandler.GetFileFittingPara(bElectronEnergy, bChannel);
|
||||
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);
|
||||
return bgBoundary;
|
||||
return path.toString();
|
||||
}
|
||||
|
||||
public List<String> FileNameByStandardForm(String filePath, String sampleFileName){
|
||||
|
@ -744,35 +696,114 @@ public class PHDFileUtil {
|
|||
return file;
|
||||
}
|
||||
|
||||
public BgDataAnlyseResultIn analyzeSpectrum(File sampleTmp, File gasTmp, File detTmp, Map<String, Object> map) {
|
||||
//加载dll工具库
|
||||
//System.loadLibrary("ReadPHDFile");
|
||||
public void analyzeSpectrum(File sampleTmp, File gasTmp, File detTmp, BgCalibratePara BgCalPara, Map<String, Object> map) {
|
||||
//调用动态库解析文件
|
||||
BgAnalyseResult bgAnalyseResult = EnergySpectrumHandler.bgAnalyse(sampleTmp.getAbsolutePath(), gasTmp.getAbsolutePath(), detTmp.getAbsolutePath());
|
||||
BgDataAnlyseResultIn resultIn = new BgDataAnlyseResultIn();
|
||||
resultIn.setXe131m_con(bgAnalyseResult.Xe131m_con);
|
||||
resultIn.setXe131m_uncer(bgAnalyseResult.Xe131m_uncer);
|
||||
resultIn.setMdc_Xe131m(bgAnalyseResult.MDC_Xe131m);
|
||||
resultIn.setLc_Xe131m(bgAnalyseResult.LC_Xe131m);
|
||||
resultIn.setXe131mFlag(bgAnalyseResult.XE_131m_NID_FLAG);
|
||||
resultIn.setXe133_con(bgAnalyseResult.Xe133_con);
|
||||
resultIn.setXe133_uncer(bgAnalyseResult.Xe133_uncer);
|
||||
resultIn.setMdc_Xe133(bgAnalyseResult.MDC_Xe133);
|
||||
resultIn.setLc_Xe133(bgAnalyseResult.LC_Xe133);
|
||||
resultIn.setXe133Flag(bgAnalyseResult.XE_133_NID_FLAG);
|
||||
resultIn.setXe133m_con(bgAnalyseResult.Xe133m_con);
|
||||
resultIn.setXe133m_uncer(bgAnalyseResult.Xe133m_uncer);
|
||||
resultIn.setMdc_Xe133m(bgAnalyseResult.MDC_Xe133m);
|
||||
resultIn.setLc_Xe133m(bgAnalyseResult.LC_Xe133m);
|
||||
resultIn.setXe133mFlag(bgAnalyseResult.XE_133m_NID_FLAG);
|
||||
resultIn.setXe135_con(bgAnalyseResult.Xe135_con);
|
||||
resultIn.setXe135_uncer(bgAnalyseResult.Xe135_uncer);
|
||||
resultIn.setMdc_Xe135(bgAnalyseResult.MDC_Xe135);
|
||||
resultIn.setLc_Xe135(bgAnalyseResult.LC_Xe135);
|
||||
resultIn.setXe135Flag(bgAnalyseResult.XE_135_NID_FLAG);
|
||||
map.put("bProcessed", true);
|
||||
return resultIn;
|
||||
BgAnalyseResult analyseResult = null;
|
||||
if (Objects.isNull(BgCalPara)) {
|
||||
analyseResult = EnergySpectrumHandler.bgAnalyse(sampleTmp.getAbsolutePath(), gasTmp.getAbsolutePath(), detTmp.getAbsolutePath());
|
||||
} else {
|
||||
analyseResult = EnergySpectrumHandler.bgReAnalyse(sampleTmp.getAbsolutePath(), gasTmp.getAbsolutePath(), detTmp.getAbsolutePath(), BgCalPara);
|
||||
}
|
||||
//需要返回到前端的XeData数据
|
||||
List<GardsXeResultsSpectrum> xeResultsSpectrumList = new LinkedList<>();
|
||||
//存入计算后得到的xeData数据
|
||||
GardsXeResultsSpectrum xe131m = new GardsXeResultsSpectrum();
|
||||
xe131m.setNuclideName(XeNuclideName.XE_131m.getType());
|
||||
xe131m.setConc(analyseResult.Xe131m_con);
|
||||
xe131m.setConcErr(analyseResult.Xe131m_uncer);
|
||||
xe131m.setLc(analyseResult.LC_Xe131m);
|
||||
xe131m.setMdc(analyseResult.MDC_Xe131m);
|
||||
xe131m.setNidFlag(analyseResult.XE_131m_NID_FLAG);
|
||||
xeResultsSpectrumList.add(xe131m);
|
||||
GardsXeResultsSpectrum xe133 = new GardsXeResultsSpectrum();
|
||||
xe133.setNuclideName(XeNuclideName.XE_133.getType());
|
||||
xe133.setConc(analyseResult.Xe133_con);
|
||||
xe133.setConcErr(analyseResult.Xe133_uncer);
|
||||
xe133.setLc(analyseResult.LC_Xe133);
|
||||
xe133.setMdc(analyseResult.MDC_Xe133);
|
||||
xe133.setNidFlag(analyseResult.XE_133_NID_FLAG);
|
||||
xeResultsSpectrumList.add(xe133);
|
||||
GardsXeResultsSpectrum xe133m = new GardsXeResultsSpectrum();
|
||||
xe133m.setNuclideName(XeNuclideName.XE_133m.getType());
|
||||
xe133m.setConc(analyseResult.Xe133m_con);
|
||||
xe133m.setConcErr(analyseResult.Xe133m_uncer);
|
||||
xe133m.setLc(analyseResult.LC_Xe133m);
|
||||
xe133m.setMdc(analyseResult.MDC_Xe133m);
|
||||
xe133m.setNidFlag(analyseResult.XE_133m_NID_FLAG);
|
||||
xeResultsSpectrumList.add(xe133m);
|
||||
GardsXeResultsSpectrum xe135 = new GardsXeResultsSpectrum();
|
||||
xe135.setNuclideName(XeNuclideName.XE_135.getType());
|
||||
xe135.setConc(analyseResult.Xe135_con);
|
||||
xe135.setConcErr(analyseResult.Xe135_uncer);
|
||||
xe135.setLc(analyseResult.LC_Xe135);
|
||||
xe135.setMdc(analyseResult.MDC_Xe135);
|
||||
xe135.setNidFlag(analyseResult.XE_135_NID_FLAG);
|
||||
xeResultsSpectrumList.add(xe135);
|
||||
map.put("XeData", xeResultsSpectrumList);
|
||||
//新计算得到的边界值
|
||||
if (CollectionUtils.isNotEmpty(analyseResult.S_ROI_B_Boundary_start)) {
|
||||
List<Boundary> boundaryList = new LinkedList<>();
|
||||
for (int i=0; i<analyseResult.S_ROI_B_Boundary_start.size(); i++) {
|
||||
Boundary boundary = new Boundary();
|
||||
boundary.setMinX(analyseResult.S_ROI_B_Boundary_start.get(i));
|
||||
boundary.setMaxX(analyseResult.S_ROI_B_Boundary_stop.get(i));
|
||||
boundary.setMinY(analyseResult.S_ROI_G_Boundary_start.get(i));
|
||||
boundary.setMaxY(analyseResult.S_ROI_G_Boundary_stop.get(i));
|
||||
boundaryList.add(boundary);
|
||||
}
|
||||
map.put("SampleBoundary", boundaryList);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(analyseResult.G_ROI_B_Boundary_start)) {
|
||||
List<Boundary> boundaryList = new LinkedList<>();
|
||||
for (int i=0; i<analyseResult.G_ROI_B_Boundary_start.size(); i++) {
|
||||
Boundary boundary = new Boundary();
|
||||
boundary.setMinX(analyseResult.G_ROI_B_Boundary_start.get(i));
|
||||
boundary.setMaxX(analyseResult.G_ROI_B_Boundary_stop.get(i));
|
||||
boundary.setMinY(analyseResult.G_ROI_G_Boundary_start.get(i));
|
||||
boundary.setMaxY(analyseResult.G_ROI_G_Boundary_stop.get(i));
|
||||
boundaryList.add(boundary);
|
||||
}
|
||||
map.put("GasBoundary", boundaryList);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(analyseResult.D_ROI_B_Boundary_start)) {
|
||||
List<Boundary> boundaryList = new LinkedList<>();
|
||||
for (int i=0; i<analyseResult.D_ROI_B_Boundary_start.size(); i++) {
|
||||
Boundary boundary = new Boundary();
|
||||
boundary.setMinX(analyseResult.D_ROI_B_Boundary_start.get(i));
|
||||
boundary.setMaxX(analyseResult.D_ROI_B_Boundary_stop.get(i));
|
||||
boundary.setMinY(analyseResult.D_ROI_G_Boundary_start.get(i));
|
||||
boundary.setMaxY(analyseResult.D_ROI_G_Boundary_stop.get(i));
|
||||
boundaryList.add(boundary);
|
||||
}
|
||||
map.put("DetBoundary", boundaryList);
|
||||
}
|
||||
}
|
||||
|
||||
// public void CalQCBoundary() {
|
||||
// //QC需要独立计算
|
||||
// //从本地缓存获取beta gamma的数组
|
||||
// Cache<String, Map<String, Object>> cache = betaCache.getBetaCache();
|
||||
// //根据qc文件名称-用户名-beta的方式获取beta的内容
|
||||
// Map<String, Object> betaMap = cache.getIfPresent(anlyseResultIn.getQcFileName() + "-" + userName + "-beta");
|
||||
// List<SeriseData> betaList = new LinkedList<>();
|
||||
// List<String> betaFittingPara = new LinkedList<>();
|
||||
// List<String> betaFittingParaToUi = new LinkedList<>();
|
||||
// if (CollectionUtils.isNotEmpty(betaMap)) {
|
||||
// betaList = (List<SeriseData>)betaMap.get("Series");
|
||||
// betaFittingPara = (List<String>) betaMap.get("fittingPara");
|
||||
// betaFittingParaToUi = (List<String>) betaMap.get("fittingParaToUi");
|
||||
// }
|
||||
// //根据qc文件名称-用户名-gamma的方式获取gamma的内容
|
||||
// Map<String, Object> gammaMap = cache.getIfPresent(anlyseResultIn.getQcFileName() + "-" + userName + "-gamma");
|
||||
// List<SeriseData> gammaList = new LinkedList<>();
|
||||
// List<String> gammaFittingPara = new LinkedList<>();
|
||||
// List<String> gammaFittingParaToUi = new LinkedList<>();
|
||||
// if (CollectionUtils.isNotEmpty(gammaMap)) {
|
||||
// gammaList = (List<SeriseData>)gammaMap.get("Series");
|
||||
// gammaFittingPara = (List<String>) gammaMap.get("fittingPara");
|
||||
// gammaFittingParaToUi = (List<String>) gammaMap.get("fittingParaToUi");
|
||||
// }
|
||||
// }
|
||||
|
||||
public EnergySpectrumStruct analyzeFileSourceData(String filePath, String fileName) {
|
||||
//加载dll工具库
|
||||
|
@ -780,6 +811,7 @@ public class PHDFileUtil {
|
|||
EnergySpectrumStruct struct = new EnergySpectrumStruct();
|
||||
FTPClient ftpClient = ftpUtil.LoginFTP();
|
||||
InputStream inputStream = null;
|
||||
File file = null;
|
||||
try {
|
||||
//切换被动模式
|
||||
ftpClient.enterLocalPassiveMode();
|
||||
|
@ -791,7 +823,7 @@ public class PHDFileUtil {
|
|||
inputStream = ftpClient.retrieveFileStream(fileName);
|
||||
if (Objects.nonNull(inputStream)){
|
||||
//声明一个临时文件
|
||||
File file = File.createTempFile("betaGamma", null);
|
||||
file = File.createTempFile("betaGamma", null);
|
||||
//将ftp文件的输入流复制给临时文件
|
||||
FileUtils.copyInputStreamToFile(inputStream, file);
|
||||
struct = EnergySpectrumHandler.getSourceData(file.getAbsolutePath());
|
||||
|
@ -806,6 +838,9 @@ public class PHDFileUtil {
|
|||
if (Objects.nonNull(inputStream)){
|
||||
inputStream.close();
|
||||
}
|
||||
if (Objects.nonNull(file)) {
|
||||
file.delete();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
@ -945,4 +980,5 @@ public class PHDFileUtil {
|
|||
result.put("xeResults", xeResultsSpectrumList);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -7,7 +7,6 @@ import org.jeecg.common.base.BaseMap;
|
|||
import org.jeecg.common.constant.GlobalConstants;
|
||||
import org.jeecg.common.constant.WebSocketHandlerConst;
|
||||
import org.jeecg.modules.base.bizVo.GammaRLR;
|
||||
import org.jeecg.modules.base.entity.postgre.SysUser;
|
||||
import org.jeecg.modules.entity.vo.*;
|
||||
import org.jeecg.modules.feignclient.SystemClient;
|
||||
import org.jeecg.modules.service.IGammaService;
|
||||
|
@ -110,7 +109,7 @@ public class GammaController {
|
|||
@PostMapping("acceptResults")
|
||||
@ApiOperation(value = "InteractiveTool页面Insert页面save", notes = "InteractiveTool页面Insert页面save")
|
||||
public Result acceptResults(@RequestBody AcceptInfo acceptInfo, HttpServletRequest request) {
|
||||
return gammaService.acceptResults(acceptInfo.getFileName(), acceptInfo.isAccept(), acceptInfo.getOldPeak(), request);
|
||||
return gammaService.acceptResults(acceptInfo.getFileName(), acceptInfo.isAccept(), acceptInfo.getOldPeak(), acceptInfo.getNewPeak(), acceptInfo.getFlag(), request);
|
||||
}
|
||||
|
||||
@GetMapping("deletePeak")
|
||||
|
@ -119,6 +118,11 @@ public class GammaController {
|
|||
return gammaService.deletePeak(fileName, curRow, request);
|
||||
}
|
||||
|
||||
@GetMapping("fitPeak")
|
||||
public Result fitPeak(int left, int right, String fileName, HttpServletRequest request) {
|
||||
return gammaService.fitPeak(left, right, fileName, request);
|
||||
}
|
||||
|
||||
@GetMapping("getSelPosNuclide")
|
||||
@ApiOperation(value = "InteractiveTool页面选择channel加载对应核素信息接口", notes = "InteractiveTool页面选择channel加载对应核素信息接口")
|
||||
public Result getSelPosNuclide(Integer sampleId, String fileName, int channel, HttpServletRequest request) {
|
||||
|
@ -179,6 +183,16 @@ public class GammaController {
|
|||
return gammaService.searchNuclide(sampleId, fileName, energy, tolerance, request);
|
||||
}
|
||||
|
||||
@PostMapping("replotBaseLine")
|
||||
public Result replotBaseLine(@RequestBody BaseLineCtrls baseLineCtrls, HttpServletRequest request) {
|
||||
return gammaService.replotBaseLine(baseLineCtrls, request);
|
||||
}
|
||||
|
||||
@PostMapping("acceptBaseLine")
|
||||
public Result acceptBaseLine(@RequestBody BaseLineCtrls baseLineCtrls, HttpServletRequest request) {
|
||||
return gammaService.acceptBaseLine(baseLineCtrls, request);
|
||||
}
|
||||
|
||||
@GetMapping("ZeroTime")
|
||||
@ApiOperation(value = "Zero Time页面数据", notes = "Zero Time页面数据")
|
||||
public Result ZeroTime() {
|
||||
|
@ -477,6 +491,7 @@ public class GammaController {
|
|||
}
|
||||
|
||||
@GetMapping("saveToTxt")
|
||||
@ApiOperation(value = "Save To TXT接口", notes = "Save To TXT接口")
|
||||
public void saveToTxt(String fileName, HttpServletRequest request, HttpServletResponse response) {
|
||||
gammaService.saveToTxt(fileName, request, response);
|
||||
}
|
||||
|
@ -485,4 +500,10 @@ public class GammaController {
|
|||
public void saveToExcel(String fileName, HttpServletResponse response) {
|
||||
gammaService.saveToExcel(fileName, response);
|
||||
}
|
||||
@GetMapping("saveToPHD")
|
||||
@ApiOperation(value = "Save To PHD接口", notes = "Save To PHD接口")
|
||||
public void saveToPHD(String fileName, HttpServletRequest request, HttpServletResponse response) {
|
||||
gammaService.saveToPHD(fileName, request, response);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -197,13 +197,14 @@ public class SpectrumAnalysesController {
|
|||
String sampleFileName = analyseBetaInfo.getSampleFileNames().get(0);
|
||||
String gasFileName = analyseBetaInfo.getGasFileNames().get(0);
|
||||
String detFileName = analyseBetaInfo.getDetFileNames().get(0);
|
||||
return spectrumAnalysisService.analyseCurrentSpectrum(dbName, sampleId, sampleFileName, gasFileName, detFileName, request);
|
||||
String qcFileName = analyseBetaInfo.getQcFileNames().get(0);
|
||||
return spectrumAnalysisService.analyseCurrentSpectrum(dbName, sampleId, sampleFileName, gasFileName, detFileName, qcFileName, request);
|
||||
}
|
||||
|
||||
@PostMapping("analyseAllSpectrum")
|
||||
@ApiOperation(value = "解析全部加载文件数据", notes = "解析全部加载文件数据")
|
||||
public Result analyseAllSpectrum(@RequestBody AnalyseBetaInfo analyseBetaInfo, HttpServletRequest request) {
|
||||
return spectrumAnalysisService.analyseAllSpectrum(analyseBetaInfo.getDbNames(), analyseBetaInfo.getSampleIds(), analyseBetaInfo.getSampleFileNames(), analyseBetaInfo.getGasFileNames(), analyseBetaInfo.getDetFileNames(), request);
|
||||
return spectrumAnalysisService.analyseAllSpectrum(analyseBetaInfo.getDbNames(), analyseBetaInfo.getSampleIds(), analyseBetaInfo.getSampleFileNames(), analyseBetaInfo.getGasFileNames(), analyseBetaInfo.getDetFileNames(), analyseBetaInfo.getQcFileNames(), analyseBetaInfo.getCurrentFileName(), request);
|
||||
}
|
||||
|
||||
@PostMapping("saveToDB")
|
||||
|
|
|
@ -14,4 +14,8 @@ public class AcceptInfo implements Serializable {
|
|||
|
||||
private List<PeakInfo> oldPeak;
|
||||
|
||||
private List<PeakInfo> newPeak;
|
||||
|
||||
private String flag;
|
||||
|
||||
}
|
||||
|
|
|
@ -18,4 +18,8 @@ public class AnalyseBetaInfo implements Serializable {
|
|||
|
||||
private List<String> detFileNames;
|
||||
|
||||
private List<String> qcFileNames;
|
||||
|
||||
private String currentFileName;
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
package org.jeecg.modules.entity.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class BaseLineCtrls extends BaseControls {
|
||||
|
||||
private String fileName;
|
||||
|
||||
}
|
|
@ -8,6 +8,7 @@ import org.jeecg.modules.entity.GardsROIResultsSpectrum;
|
|||
import org.jeecg.modules.entity.GardsXeResultsSpectrum;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
|
@ -263,4 +264,90 @@ public class BgDataAnlyseResultIn implements Serializable {
|
|||
|
||||
List<GardsXeResults> XeData;
|
||||
|
||||
public BgDataAnlyseResultIn() {
|
||||
comment = "";
|
||||
bProcessed = false;
|
||||
userName = "";
|
||||
stationName = "";
|
||||
dbName = "";
|
||||
sampleFilePath = "";
|
||||
sampleFileName = "";
|
||||
gasFilePath = "";
|
||||
gasFileName = "";
|
||||
detFilePath = "";
|
||||
detFileName = "";
|
||||
qcFilePath = "";
|
||||
qcFileName = "";
|
||||
bGammaEnergyValidSample = false;
|
||||
bBetaEnergyValidSample = false;
|
||||
bGammaEnergyValidGas = false;
|
||||
bBetaEnergyValidGas = false;
|
||||
bGammaEnergyValidDet = false;
|
||||
bBetaEnergyValidDet = false;
|
||||
checkSample = false;
|
||||
checkGas = false;
|
||||
checkDet = false;
|
||||
g_channel_sample = new LinkedList<>();
|
||||
g_energy_sample = new LinkedList<>();
|
||||
b_channel_sample = new LinkedList<>();
|
||||
b_energy_sample = new LinkedList<>();
|
||||
g_channel_gas = new LinkedList<>();
|
||||
g_energy_gas = new LinkedList<>();
|
||||
b_channel_gas = new LinkedList<>();
|
||||
b_energy_gas = new LinkedList<>();
|
||||
g_channel_det = new LinkedList<>();
|
||||
g_energy_det = new LinkedList<>();
|
||||
b_channel_det = new LinkedList<>();
|
||||
b_energy_det = new LinkedList<>();
|
||||
param_a_c2e_g_sample = "";
|
||||
param_b_c2e_g_sample = "";
|
||||
param_c_c2e_g_sample = "";
|
||||
param_a_c2e_g_gas = "";
|
||||
param_b_c2e_g_gas = "";
|
||||
param_c_c2e_g_gas = "";
|
||||
param_a_c2e_g_det = "";
|
||||
param_b_c2e_g_det = "";
|
||||
param_c_c2e_g_det = "";
|
||||
param_a_c2e_b = "";
|
||||
param_b_c2e_b = "";
|
||||
param_c_c2e_b = "";
|
||||
mdc_Xe135 = 0.0;
|
||||
mdc_Xe131m = 0.0;
|
||||
mdc_Xe133m = 0.0;
|
||||
mdc_Xe133 = 0.0;
|
||||
xe135_con = 0.0;
|
||||
xe135_uncer = 0.0;
|
||||
xe131m_con = 0.0;
|
||||
xe131m_uncer = 0.0;
|
||||
xe133m_con = 0.0;
|
||||
xe133m_uncer = 0.0;
|
||||
xe133_con = 0.0;
|
||||
xe133_uncer = 0.0;
|
||||
lc_Xe135 = 0.0;
|
||||
lc_Xe131m = 0.0;
|
||||
lc_Xe133m = 0.0;
|
||||
lc_Xe133 = 0.0;
|
||||
xe131mFlag = 0;
|
||||
xe133Flag = 0;
|
||||
xe133mFlag = 0;
|
||||
xe135Flag = 0;
|
||||
gammaCalibrationSpectrumList = new LinkedList<>();
|
||||
gammaCalibrationSCE = new GardsCalibrationSpectrum();
|
||||
gammaCalibrationSEC = new GardsCalibrationSpectrum();
|
||||
gammaCalibrationGCE = new GardsCalibrationSpectrum();
|
||||
gammaCalibrationGEC = new GardsCalibrationSpectrum();
|
||||
gammaCalibrationDCE = new GardsCalibrationSpectrum();
|
||||
gammaCalibrationDEC = new GardsCalibrationSpectrum();
|
||||
betaCalibrationSpectrumList = new LinkedList<>();
|
||||
betaCalibrationSCE = new GardsCalibrationSpectrum();
|
||||
betaCalibrationSEC = new GardsCalibrationSpectrum();
|
||||
betaCalibrationGCE = new GardsCalibrationSpectrum();
|
||||
betaCalibrationGEC = new GardsCalibrationSpectrum();
|
||||
betaCalibrationDCE= new GardsCalibrationSpectrum();
|
||||
betaCalibrationDEC = new GardsCalibrationSpectrum();
|
||||
roiChannelsSpectrumList = new LinkedList<>();
|
||||
roiResultsSpectrumList = new LinkedList<>();
|
||||
XeData = new LinkedList<>();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -34,10 +34,12 @@ public interface IGammaService{
|
|||
|
||||
Result insertPeak(Integer sampleId, String fileName, Integer curChan, HttpServletRequest request);
|
||||
|
||||
Result acceptResults(String fileName, boolean accept, List<PeakInfo> oldPeak, HttpServletRequest request);
|
||||
Result acceptResults(String fileName, boolean accept, List<PeakInfo> oldPeak, List<PeakInfo> newPeak, String flag, HttpServletRequest request);
|
||||
|
||||
Result deletePeak(String fileName, int curRow, HttpServletRequest request);
|
||||
|
||||
Result fitPeak(int left, int right, String fileName, HttpServletRequest request);
|
||||
|
||||
Result getSelPosNuclide(Integer sampleId, String fileName, int channel, HttpServletRequest request);
|
||||
|
||||
Result addNuclide(Integer curRow, String nuclideName, String fileName, List<String> list_identify, HttpServletRequest request);
|
||||
|
@ -58,6 +60,10 @@ public interface IGammaService{
|
|||
|
||||
Result searchNuclide(Integer sampleId, String fileName, Double energy, Double tolerance, HttpServletRequest request);
|
||||
|
||||
Result replotBaseLine(BaseLineCtrls baseLineCtrls, HttpServletRequest request);
|
||||
|
||||
Result acceptBaseLine(BaseLineCtrls baseLineCtrls, HttpServletRequest request);
|
||||
|
||||
Result ZeroTime();
|
||||
|
||||
Result ZeroTimeAnalyse(String nuclide1, String nuclide2, Double product1, Double product2, String target, String energyTFH, String date, String time);
|
||||
|
@ -163,4 +169,7 @@ public interface IGammaService{
|
|||
void saveToTxt(String fileName, HttpServletRequest request, HttpServletResponse response);
|
||||
|
||||
void saveToExcel(String fileName, HttpServletResponse response);
|
||||
|
||||
void saveToPHD(String fileName, HttpServletRequest request, HttpServletResponse response);
|
||||
|
||||
}
|
||||
|
|
|
@ -66,9 +66,9 @@ public interface ISpectrumAnalysisService {
|
|||
|
||||
Result ReAnalyse(AnalyseData analyseData, HttpServletRequest request);
|
||||
|
||||
Result analyseCurrentSpectrum(String dbName, Integer sampleId, String sampleFileName, String gasFileName, String detFileName, HttpServletRequest request);
|
||||
Result analyseCurrentSpectrum(String dbName, Integer sampleId, String sampleFileName, String gasFileName, String detFileName, String qcFileName, HttpServletRequest request);
|
||||
|
||||
Result analyseAllSpectrum(List<String> dbNames, List<Integer> sampleIds, List<String> sampleFileNames, List<String> gasFileNames, List<String> detFileNames, HttpServletRequest request);
|
||||
Result analyseAllSpectrum(List<String> dbNames, List<Integer> sampleIds, List<String> sampleFileNames, List<String> gasFileNames, List<String> detFileNames, List<String> qcFileNames, String currentFileName, HttpServletRequest request);
|
||||
|
||||
Result saveToDB(BgDataAnlyseResultIn anlyseResultIn, HttpServletRequest request);
|
||||
|
||||
|
|
|
@ -371,6 +371,16 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
|
|||
ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class);
|
||||
phd.setUsedTotEPara(value);
|
||||
}
|
||||
if (entry.getKey().equalsIgnoreCase("mapNucActMda")) {
|
||||
HashMap<String, Object> jsonMap = JSON.parseObject(JSON.toJSONString(entry.getValue()), HashMap.class);
|
||||
Map<String, NuclideActMda> value = new HashMap<>();
|
||||
for (Map.Entry<String, Object> objectEntry:jsonMap.entrySet()) {
|
||||
String key = objectEntry.getKey();
|
||||
NuclideActMda entryValue = JSON.parseObject(JSON.toJSONString(objectEntry.getValue()), NuclideActMda.class);
|
||||
value.put(key, entryValue);
|
||||
}
|
||||
phd.setMapNucActMda(value);
|
||||
}
|
||||
}
|
||||
BeanUtils.copyProperties(phd.getSetting(), phd.getUsedSetting());
|
||||
|
||||
|
@ -382,7 +392,6 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
|
|||
peak.recoilDeltaChan = "1";
|
||||
}
|
||||
}
|
||||
gammaFileUtil.NuclidesIdent(phd, nuclideLinesMap);
|
||||
gammaFileUtil.RunQC(phd);
|
||||
result.setResult(phd);
|
||||
} catch (JsonProcessingException e) {
|
||||
|
@ -1137,15 +1146,10 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
|
|||
insertInput.rg_high = phd.getBaseCtrls().getRg_high();
|
||||
insertInput.curChan = curChan;
|
||||
insertInput.vCount = m_vCount;
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
try {
|
||||
String value = mapper.writeValueAsString(insertInput);
|
||||
System.out.println(value);
|
||||
} catch (JsonProcessingException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
StructInsertOutput structInsertOutput = CalValuesHandler.insertPeaks(insertInput);
|
||||
List<Integer> indexs = new LinkedList<>();
|
||||
List<PeakInfo> newPeak = new LinkedList<>();
|
||||
List<PeakInfo> newPeaks = new LinkedList<>();
|
||||
newPeaks.addAll(phd.getVPeak());
|
||||
if (structInsertOutput.vIdx.size()>0){
|
||||
for (int j=0; j<structInsertOutput.vIdx.size(); j++) {
|
||||
int a = 0;
|
||||
|
@ -1153,6 +1157,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
|
|||
a++;
|
||||
}
|
||||
PeakInfo peak = new PeakInfo();
|
||||
peak.index = a;
|
||||
peak.left = structInsertOutput.vLeft.get(j).intValue();;
|
||||
peak.right = structInsertOutput.vRight.get(j).intValue();;
|
||||
peak.peakCentroid = structInsertOutput.peakCentroid.get(j);
|
||||
|
@ -1171,17 +1176,16 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
|
|||
peak.BWWidthChan = 0;
|
||||
peak.recoilBetaChan = String.valueOf(structInsertOutput.recoilBetaChan.get(j));
|
||||
peak.recoilDeltaChan = String.valueOf(structInsertOutput.recoilDeltaChan.get(j));
|
||||
phd.getVPeak().add(a, peak);
|
||||
indexs.add(a);
|
||||
newPeaks.add(a, peak);
|
||||
newPeak.add(peak);
|
||||
}
|
||||
}
|
||||
int peakIdx = structInsertOutput.vIdx.get(0).intValue();
|
||||
int left = structInsertOutput.vLeft.get(0).intValue();
|
||||
int right = structInsertOutput.vRight.get(0).intValue();
|
||||
|
||||
List<Integer> vIdx = new LinkedList<>();
|
||||
int ii = 0;
|
||||
for (PeakInfo peak:phd.getVPeak()){
|
||||
for (PeakInfo peak: newPeaks){
|
||||
if(peak.peakCentroid >= right){
|
||||
break;
|
||||
} else if(peak.peakCentroid > left) {
|
||||
|
@ -1190,21 +1194,21 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
|
|||
ii++;
|
||||
}
|
||||
|
||||
List<TablePeaks> tablePeaksList = FitPeakBaseLine(phd, vIdx);
|
||||
List<TablePeaks> tablePeaksList = FitPeakBaseLine(newPeaks, phd.getUsedEnerPara().getP(), vIdx);
|
||||
map.put("tablePeaksList", tablePeaksList);
|
||||
map.put("oldPeaks", vOriPeaks);
|
||||
map.put("newPeaks", newPeak);
|
||||
result.setSuccess(true);
|
||||
result.setResult(map);
|
||||
return result;
|
||||
}
|
||||
|
||||
public List<TablePeaks> FitPeakBaseLine(PHDFile phd, List<Integer> vIdx) {
|
||||
public List<TablePeaks> FitPeakBaseLine(List<PeakInfo> vPeaks, List<Double> p, List<Integer> vIdx) {
|
||||
List<TablePeaks> tablePeaksList = new LinkedList<>();
|
||||
int peakNum = vIdx.size();
|
||||
for (int i=0; i<peakNum; i++) {
|
||||
int peakIdx = vIdx.get(i);
|
||||
int row = i+1;
|
||||
PeakInfo peak = phd.getVPeak().get(peakIdx);
|
||||
PeakInfo peak = vPeaks.get(peakIdx);
|
||||
TablePeaks tablePeaks = new TablePeaks();
|
||||
tablePeaks.setLab(String.valueOf(peakIdx + 1));
|
||||
String nuclide = "";
|
||||
|
@ -1217,7 +1221,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
|
|||
tablePeaks.setNetArea(NumberFormatUtil.numberFormat(String.valueOf(peak.area)));
|
||||
tablePeaks.setFwhm(NumberFormatUtil.numberFormat(String.valueOf(peak.fwhm)));
|
||||
tablePeaks.setStep(NumberFormatUtil.numberFormat(String.valueOf(peak.area * peak.stepRatio)));
|
||||
double deriva = CalValuesHandler.calDerivaOut(peak.peakCentroid, phd.getUsedEnerPara().getP());
|
||||
double deriva = CalValuesHandler.calDerivaOut(peak.peakCentroid, p);
|
||||
tablePeaks.setBwGamma(NumberFormatUtil.numberFormat(String.valueOf(peak.BWWidthChan * deriva)));
|
||||
tablePeaks.setNetAreaB(false);
|
||||
tablePeaks.setCentroid(true);
|
||||
|
@ -1228,7 +1232,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
|
|||
}
|
||||
|
||||
@Override
|
||||
public Result acceptResults(String fileName, boolean accept, List<PeakInfo> oldPeak, HttpServletRequest request) {
|
||||
public Result acceptResults(String fileName, boolean accept, List<PeakInfo> oldPeak, List<PeakInfo> newPeak, String flag, HttpServletRequest request) {
|
||||
Result result = new Result();
|
||||
String userName = JwtUtil.getUserNameByToken(request);
|
||||
Cache<String, PHDFile> phdCache = localCache.getPHDCache();
|
||||
|
@ -1256,7 +1260,28 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
|
|||
HashMap<String, Object> map = new HashMap<>();
|
||||
//根据boolean 决定是否保留本次数据 如果保留则不需要操作vPeak 并重新拟合线
|
||||
if (accept){
|
||||
//算法有问题 --- 需要等等处理
|
||||
if (flag.equalsIgnoreCase("fit")) {//如果传递的flag标识 是 fit则进行修改峰值等数据
|
||||
for (int j=0; j<newPeak.size(); j++) {
|
||||
PeakInfo peakInfo = newPeak.get(j);
|
||||
phd.getVPeak().set(peakInfo.index-1, peakInfo);
|
||||
}
|
||||
} else if (flag.equalsIgnoreCase("insert")){//如果传递的flag标识 是 Insert则进行峰值的插入
|
||||
for (int j=0; j<newPeak.size(); j++) {
|
||||
//获取需要插入的第一个峰值信息
|
||||
PeakInfo peakInfo = newPeak.get(j);
|
||||
//根据下标获取旧的峰值数据
|
||||
PeakInfo info = oldPeak.get(peakInfo.index - 1);
|
||||
String newEnergy = NumberFormatUtil.numberFormat(String.valueOf(peakInfo.energy));
|
||||
String oldEnergy = NumberFormatUtil.numberFormat(String.valueOf(info.energy));
|
||||
//将旧的峰值能量与新的峰值能量格式化后 比较 如果一致则覆盖 不一致则在对应下标插入峰值
|
||||
if (oldEnergy.equals(newEnergy) && peakInfo.index == info.index) {
|
||||
phd.getVPeak().set(peakInfo.index-1, peakInfo);
|
||||
} else {
|
||||
phd.getVPeak().add(peakInfo.index-1, peakInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
//重新计算peak的改变
|
||||
gammaFileUtil.PeaksChanged(phd);
|
||||
|
||||
List<PeakInfo> vPeak = gammaFileUtil.InitPeakTable(phd.getVPeak());
|
||||
|
@ -1303,7 +1328,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
|
|||
if(curRow >= 0 && curRow < peakNum) {
|
||||
phd.getVPeak().remove(curRow);
|
||||
|
||||
// gammaFileUtil.PeaksChanged(phd);
|
||||
gammaFileUtil.PeaksChanged(phd);
|
||||
for (int i=0;i<phd.getVPeak().size(); i++) {
|
||||
PeakInfo peakInfo = phd.getVPeak().get(i);
|
||||
peakInfo.index = i+1;
|
||||
|
@ -1319,6 +1344,62 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
|
|||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result fitPeak(int left, int right, String fileName, HttpServletRequest request) {
|
||||
Result result = new Result();
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
//获取用户名
|
||||
String userName = JwtUtil.getUserNameByToken(request);
|
||||
Cache<String, PHDFile> phdCache = localCache.getPHDCache();
|
||||
PHDFile phd = phdCache.getIfPresent(fileName+"-"+userName);
|
||||
if (Objects.isNull(phd)){
|
||||
result.error500("请先选择解析文件!");
|
||||
return result;
|
||||
}
|
||||
//判断当前phd文件对应的peak的数据是否小于1
|
||||
if(phd.getVPeak().size() < 1) {
|
||||
result.error500("No peak to fit.");
|
||||
return result;
|
||||
}
|
||||
//判断当前选择的左侧道值是否大于右侧道值
|
||||
if(left > right) {
|
||||
int temp = left;
|
||||
left = right;
|
||||
right = temp;
|
||||
}
|
||||
|
||||
// 找出与插入峰相关联的峰的索引
|
||||
List<Integer> vIdx = new LinkedList<>();
|
||||
int ii = 0;
|
||||
for(PeakInfo peak: phd.getVPeak()) {
|
||||
if(peak.peakCentroid >= right) {
|
||||
break;
|
||||
} else if(peak.peakCentroid > left) {
|
||||
vIdx.add(ii);
|
||||
}
|
||||
ii++;
|
||||
}
|
||||
if(CollectionUtils.isEmpty(vIdx)) {
|
||||
result.error500("There are 0 peak between channel "+left+" and "+right);
|
||||
return result;
|
||||
}
|
||||
// 备份原来的峰列表
|
||||
List<PeakInfo> vOriPeaks = phd.getVPeak();
|
||||
List<PeakInfo> newPeak = new LinkedList<>();
|
||||
for (int i=0; i<vIdx.size(); i++) {
|
||||
int peakIdx = vIdx.get(i);
|
||||
PeakInfo peak = phd.getVPeak().get(peakIdx);
|
||||
newPeak.add(peak);
|
||||
}
|
||||
List<TablePeaks> tablePeaksList = FitPeakBaseLine(phd.getVPeak(), phd.getUsedEnerPara().getP(), vIdx);
|
||||
map.put("tablePeaksList", tablePeaksList);
|
||||
map.put("oldPeaks", vOriPeaks);
|
||||
map.put("newPeaks", newPeak);
|
||||
result.setSuccess(true);
|
||||
result.setResult(map);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result getSelPosNuclide(Integer sampleId, String fileName, int channel, HttpServletRequest request) {
|
||||
Result result = new Result();
|
||||
|
@ -1674,6 +1755,102 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
|
|||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result replotBaseLine(BaseLineCtrls baseLineCtrls, HttpServletRequest request) {
|
||||
// Result result = new Result();
|
||||
// HashMap<String, Object> map = new HashMap<>();
|
||||
// //获取用户名
|
||||
// String userName = JwtUtil.getUserNameByToken(request);
|
||||
// //获取文件名称
|
||||
// String fileName = baseLineCtrls.getFileName();
|
||||
// Cache<String, PHDFile> phdCache = localCache.getPHDCache();
|
||||
// PHDFile phd = phdCache.getIfPresent(fileName+"-"+userName);
|
||||
// if (Objects.isNull(phd)){
|
||||
// result.error500("请先选择解析文件!");
|
||||
// return result;
|
||||
// }
|
||||
// List<Long> m_vCount = new LinkedList<>();
|
||||
// long m_nCount = phd.getSpec().getNum_g_channel();
|
||||
// long m_nSChan = phd.getSpec().getBegin_channel();
|
||||
// //获取当前角色的颜色配置
|
||||
// Map<String, String> colorMap = sysUserColorService.initColor(userName);
|
||||
// // 确保绘制曲线时所有谱都是从1道开始
|
||||
// int i = 0;
|
||||
// if(m_nSChan == 0){
|
||||
// i = 1;
|
||||
// }
|
||||
// for(; i<m_nCount; ++i) {
|
||||
// m_vCount.add(phd.getSpec().getCounts().get(i));
|
||||
// }
|
||||
// if(m_nSChan == 0) {
|
||||
// m_vCount.add(0L);
|
||||
// }
|
||||
// if(baseLineCtrls.isReplotNeeded()) {
|
||||
// baseLineCtrls.setReplotNeeded(false);
|
||||
// List<ChartData> peakSet = gammaFileUtil.PeakSet(phd.getVPeak(), baseLineCtrls.getBaseline(), colorMap.get("Color_peak"), m_nCount, null, false);
|
||||
// m_chart->AddData(CreateTempBaseLine(m_data->m_Color[Color_base], "BaseLine"));
|
||||
// CreateShapeCP(MyChartSpace::Shape_Round);
|
||||
//
|
||||
// if(m_baseCtrl.BaseStack.size() > 2) m_baseCtrl.BaseStack.remove(1, m_baseCtrl.BaseStack.size()-2);
|
||||
// }
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result acceptBaseLine(BaseLineCtrls baseLineCtrls, HttpServletRequest request) {
|
||||
Result result = new Result();
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
//获取用户名
|
||||
String userName = JwtUtil.getUserNameByToken(request);
|
||||
//获取文件名称
|
||||
String fileName = baseLineCtrls.getFileName();
|
||||
Cache<String, PHDFile> phdCache = localCache.getPHDCache();
|
||||
PHDFile phd = phdCache.getIfPresent(fileName+"-"+userName);
|
||||
if (Objects.isNull(phd)){
|
||||
result.error500("请先选择解析文件!");
|
||||
return result;
|
||||
}
|
||||
if(baseLineCtrls.getBaseStack().size() > 1) {
|
||||
for (int i=0; i<baseLineCtrls.getBaseStack().size(); i++) {
|
||||
baseLineCtrls.getBaseStack().remove(i);
|
||||
}
|
||||
BaseControls m_baseCtrl = new BaseLineCtrls();
|
||||
BeanUtils.copyProperties(baseLineCtrls, m_baseCtrl);
|
||||
phd.setBaseCtrls(m_baseCtrl);
|
||||
phd.setVBase(m_baseCtrl.getBaseline());
|
||||
}
|
||||
List<Long> m_vCount = new LinkedList<>();
|
||||
long m_nCount = phd.getSpec().getNum_g_channel();
|
||||
long m_nSChan = phd.getSpec().getBegin_channel();
|
||||
//获取当前角色的颜色配置
|
||||
Map<String, String> colorMap = sysUserColorService.initColor(userName);
|
||||
// 确保绘制曲线时所有谱都是从1道开始
|
||||
int i = 0;
|
||||
if(m_nSChan == 0){
|
||||
i = 1;
|
||||
}
|
||||
for(; i<m_nCount; ++i) {
|
||||
m_vCount.add(phd.getSpec().getCounts().get(i));
|
||||
}
|
||||
if(m_nSChan == 0) {
|
||||
m_vCount.add(0L);
|
||||
}
|
||||
List<SeriseData> differance = gammaFileUtil.Differance(phd, phd.getVPeak(), m_vCount, m_nCount);
|
||||
map.put("barChart", differance);
|
||||
ChartData channelBaseLine = gammaFileUtil.Channel_BaseLine(phd, m_nCount, colorMap.get("Color_Base"));
|
||||
map.put("channelBaseLineChart", channelBaseLine);
|
||||
List<ChartData> peakSet = gammaFileUtil.PeakSet(phd.getVPeak(), phd.getVBase(), colorMap.get("Color_peak"), m_nCount, null, false);
|
||||
map.put("peakSet", peakSet);
|
||||
List<ShapeData> shapeData = gammaFileUtil.CreateShapeCP(phd.getBaseCtrls());
|
||||
map.put("shapeData", shapeData);
|
||||
//更新主界面的 Chart
|
||||
gammaFileUtil.UpdateChart(phd, map, colorMap);
|
||||
result.setSuccess(true);
|
||||
result.setResult(map);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result ZeroTime() {
|
||||
Result result = new Result();
|
||||
|
@ -3269,7 +3446,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
|
|||
result.error500("请先选择解析文件!");
|
||||
return result;
|
||||
}
|
||||
String spectrum = gammaFileUtil.MakeUpSpectrum(phd);
|
||||
String spectrum = gammaFileUtil.makeUpSpectrum(phd);
|
||||
result.setSuccess(true);
|
||||
result.setResult(spectrum);
|
||||
return result;
|
||||
|
@ -3929,6 +4106,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
|
|||
String userName = JwtUtil.getUserNameByToken(request);
|
||||
Cache<String, PHDFile> phdCache = localCache.getPHDCache();
|
||||
PHDFile phd = phdCache.getIfPresent(fileName+"-"+userName);
|
||||
if (Objects.nonNull(phd)) {
|
||||
StringBuilder strBuild = new StringBuilder();
|
||||
//txt文本内容
|
||||
//文本内容第一块头部信息
|
||||
|
@ -3948,8 +4126,6 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
|
|||
strBuild.append(rowFormat(title2, titleArgs2));
|
||||
//换行
|
||||
strBuild.append(System.lineSeparator());
|
||||
//换行
|
||||
strBuild.append(System.lineSeparator());
|
||||
//遍历数组进行文本内容第二块数据匹配
|
||||
for (int i=0; i<phd.getVPeak().size(); i++) {
|
||||
PeakInfo peakInfo = phd.getVPeak().get(i);
|
||||
|
@ -3975,8 +4151,6 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
|
|||
strBuild.append(titleFormat(title3, 12, StringPool.ASTERISK, StringPool.ASTERISK));
|
||||
//换行
|
||||
strBuild.append(System.lineSeparator());
|
||||
//换行
|
||||
strBuild.append(System.lineSeparator());
|
||||
//文本内容第三块数据
|
||||
List<List<String>> peakNuclides = phd.getVPeak().stream().map(item -> item.nuclides).collect(Collectors.toList());
|
||||
List<String> nuclides = new LinkedList<>();
|
||||
|
@ -4013,6 +4187,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
|
|||
strBuild.append(rowFormat(data2, concRefTime));
|
||||
//换行
|
||||
strBuild.append(System.lineSeparator());
|
||||
//换行
|
||||
strBuild.append(System.lineSeparator());
|
||||
//文本内容第五块
|
||||
//文本内容第五块头部信息
|
||||
String title5 = "%-12s %-12s %-12s %-12s %-12s %-12s %-12s %-12s %-12s %-12s";
|
||||
|
@ -4087,6 +4263,46 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveToPHD(String fileName, HttpServletRequest request, HttpServletResponse response) {
|
||||
//获取当前登陆用户名
|
||||
String userName = JwtUtil.getUserNameByToken(request);
|
||||
//读取本地缓存的phd文件信息
|
||||
Cache<String, PHDFile> phdCache = localCache.getPHDCache();
|
||||
PHDFile phd = phdCache.getIfPresent(fileName+"-"+userName);
|
||||
if (Objects.nonNull(phd)) {
|
||||
String detectorCode = phd.getHeader().getDetector_code();
|
||||
String date = phd.getAcq().getAcquisition_start_date().replace("/", "");
|
||||
String time = phd.getAcq().getAcquisition_start_time().replace(":", "").substring(0, 4);
|
||||
String dataType = phd.getMsgInfo().getData_type().substring(0, 1);
|
||||
String phdFileName = String.format("%s-%s_%s_%s.PHD", detectorCode, date, time, dataType);
|
||||
String spectrum = gammaFileUtil.makeUpSpectrum(phd);
|
||||
//导出数据内容到txt文本
|
||||
OutputStream fos = null;
|
||||
try {
|
||||
//设置响应类型
|
||||
response.setContentType("application/octet-stream");
|
||||
//解决中文不能生成文件
|
||||
response.setHeader("Content-Disposition", "attachment; fileName=" + URLEncoder.encode(phdFileName,"UTF-8"));
|
||||
fos = response.getOutputStream();
|
||||
fos.write(spectrum.getBytes());
|
||||
} catch (FileNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
} finally {
|
||||
try {
|
||||
if (Objects.nonNull(fos)) {
|
||||
fos.close();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveToExcel(String fileName, HttpServletResponse response) {
|
||||
|
|
|
@ -219,10 +219,12 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
List<Map<String, Object>> resultList = new LinkedList<>();
|
||||
String userName = JwtUtil.getUserNameByToken(request);
|
||||
String filePath = StringPool.SLASH + spectrumPathProperties.getUploadPath() + StringPool.SLASH +userName;
|
||||
String sampleRx = "[a-zA-Z]{3}[0-9]{2}_[0-9]{3}-[0-9]{8}_[0-9]{4}_S.*.PHD";
|
||||
String sampleRx = "[a-zA-Z]{3}[0-9]{2}_[0-9]{3}-[0-9]{8}_[0-9]{4}_S_(FULL_|PREL_)\\d+\\.PHD";
|
||||
Pattern regexPattern = Pattern.compile(sampleRx);
|
||||
String sampleRx1 = "[a-zA-Z]{3}[0-9]{2}_[0-9]{3}-[0-9]{8}_[0-9]{4}_S_(FULL_|PREL_)\\d+\\.\\d+\\.PHD";
|
||||
Pattern regexPattern1 = Pattern.compile(sampleRx1);
|
||||
String sampleRx2 = "[a-zA-Z]{3}[0-9]{2}_[0-9]{3}-[0-9]{8}_[0-9]{4}_S_.PHD";
|
||||
Pattern regexPattern2 = Pattern.compile(sampleRx2);
|
||||
//判断传递的文件名称是否包含,
|
||||
List<String> matchFileNames = new LinkedList<>();
|
||||
if (fileName.contains(StringPool.COMMA)) {
|
||||
|
@ -234,7 +236,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
for (String matchFileName :matchFileNames) {
|
||||
Map<String, Object> map =new HashMap<>();
|
||||
//判断sample文件名称是否匹配正则表达式 如果满足 则查询出对应的文件信息
|
||||
if ( regexPattern.matcher(matchFileName).find()){
|
||||
if ( regexPattern.matcher(matchFileName).find() || regexPattern1.matcher(matchFileName).find() || regexPattern2.matcher(matchFileName).find() ){
|
||||
//查询sampleFile文件内容信息 获取文件内容 获取大致的gas det文件名称
|
||||
Map<String, String> fileData = phdFileUtil.getFileData(filePath, matchFileName);
|
||||
if (CollectionUtils.isEmpty(fileData)) {
|
||||
|
@ -299,17 +301,14 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
@Override
|
||||
public Result getDBSpectrumChart(String dbName, Integer sampleId, HttpServletRequest request) {
|
||||
Result result = new Result();
|
||||
//获取当前的用户名称
|
||||
String userName = JwtUtil.getUserNameByToken(request);
|
||||
Cache<String, Map<String, Object>> cache = betaCache.getBetaCache();
|
||||
Map<String, Object> cacheMap = new HashMap<>();
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
List<GardsCalibrationSpectrum> gammaCalibrationSpectrumList= new LinkedList<>();
|
||||
List<GardsCalibrationSpectrum> betaCalibrationSpectrumList = new LinkedList<>();
|
||||
List<GardsROIChannelsSpectrum> roiChannelsSpectrumList = new LinkedList<>();
|
||||
List<GardsROIResultsSpectrum> roiResultsSpectrumList = new LinkedList<>();
|
||||
List<GardsCalibrationPairsSpectrum> gammaCalibrationPairsList = new LinkedList<>();
|
||||
List<GardsCalibrationPairsSpectrum> betaCalibrationPairsList = new LinkedList<>();
|
||||
boolean bProcessed = false;
|
||||
List<GardsXeResultsSpectrum> xeResultsSpectrumList = new LinkedList<>();
|
||||
List<Boundary> sampleBoundary = new LinkedList<>();
|
||||
List<Boundary> gasBoundary = new LinkedList<>();
|
||||
List<Boundary> detBoundary = new LinkedList<>();
|
||||
if (Objects.isNull(sampleId)){
|
||||
result.error500("请选择一条数据");
|
||||
return result;
|
||||
|
@ -317,51 +316,16 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
Integer analysisID = null;
|
||||
if (dbName.equalsIgnoreCase("auto")){
|
||||
dbName = "RNAUTO";
|
||||
analysisID = spectrumAnalysisMapper.getAnalysisID("RNAUTO", sampleId, "RNAUTO");
|
||||
gammaCalibrationSpectrumList = spectrumAnalysisMapper.ReadGammaCalibrationParam("RNAUTO", analysisID, sampleId);
|
||||
betaCalibrationSpectrumList = spectrumAnalysisMapper.ReadBetaCalibrationParam("RNAUTO", analysisID, sampleId);
|
||||
roiChannelsSpectrumList = spectrumAnalysisMapper.ReadROIChannels("RNAUTO", analysisID, sampleId);
|
||||
roiResultsSpectrumList = spectrumAnalysisMapper.ReadROIResults("RNAUTO", analysisID, sampleId);
|
||||
xeResultsSpectrumList = spectrumAnalysisMapper.ReadXeResults("RNAUTO", analysisID, sampleId);
|
||||
analysisID = spectrumAnalysisMapper.getAnalysisID(dbName, sampleId, "RNAUTO");
|
||||
xeResultsSpectrumList = spectrumAnalysisMapper.ReadXeResults(dbName, analysisID, sampleId);
|
||||
} else if (dbName.equalsIgnoreCase("man")){
|
||||
dbName = "RNMAN";
|
||||
analysisID = spectrumAnalysisMapper.getAnalysisID("RNMAN", sampleId, userName);
|
||||
gammaCalibrationPairsList = spectrumAnalysisMapper.ReadGammaFitChannelEnergy(analysisID, sampleId);
|
||||
gammaCalibrationSpectrumList = spectrumAnalysisMapper.ReadGammaCalibrationParam("RNMAN", analysisID, sampleId);
|
||||
betaCalibrationPairsList = spectrumAnalysisMapper.ReadBetaFitChannelEnergy(analysisID, sampleId);
|
||||
betaCalibrationSpectrumList = spectrumAnalysisMapper.ReadBetaCalibrationParam("RNMAN", analysisID, sampleId);
|
||||
roiChannelsSpectrumList = spectrumAnalysisMapper.ReadROIChannels("RNMAN", analysisID, sampleId);
|
||||
roiResultsSpectrumList = spectrumAnalysisMapper.ReadROIResults("RNMAN", analysisID, sampleId);
|
||||
xeResultsSpectrumList = spectrumAnalysisMapper.ReadXeResults("RNMAN", analysisID, sampleId);
|
||||
cacheMap.put("gammaCalibrationPairsList", gammaCalibrationPairsList);
|
||||
cacheMap.put("betaCalibrationPairsList", betaCalibrationPairsList);
|
||||
analysisID = spectrumAnalysisMapper.getAnalysisID(dbName, sampleId, userName);
|
||||
xeResultsSpectrumList = spectrumAnalysisMapper.ReadXeResults(dbName, analysisID, sampleId);
|
||||
}else {
|
||||
result.error500("数据库类型不存在");
|
||||
return result;
|
||||
}
|
||||
cacheMap.put("gammaCalibrationSpectrumList", gammaCalibrationSpectrumList);
|
||||
cacheMap.put("betaCalibrationSpectrumList", betaCalibrationSpectrumList);
|
||||
cacheMap.put("roiChannelsSpectrumList", roiChannelsSpectrumList);
|
||||
cacheMap.put("roiResultsSpectrumList", roiResultsSpectrumList);
|
||||
cacheMap.put("xeResultsSpectrumList", xeResultsSpectrumList);
|
||||
//Xe
|
||||
if (CollectionUtils.isNotEmpty(xeResultsSpectrumList)){
|
||||
for (GardsXeResultsSpectrum xeData:xeResultsSpectrumList) {
|
||||
Double conc = xeData.getConc();
|
||||
Double mdc = xeData.getMdc();
|
||||
if (conc < 0){
|
||||
xeData.setColor("red");
|
||||
xeData.setNidFlag(0);
|
||||
} else if (0<conc && conc < mdc) {
|
||||
xeData.setColor("#ffcc30");
|
||||
xeData.setNidFlag(0);
|
||||
} else if (conc > mdc) {
|
||||
xeData.setColor("green");
|
||||
xeData.setNidFlag(1);
|
||||
}
|
||||
}
|
||||
resultMap.put("XeData", xeResultsSpectrumList);
|
||||
}
|
||||
//查询数据库文件信息
|
||||
SpectrumFileRecord dbSpectrumFilePath = spectrumAnalysisMapper.getDBSpectrumFilePath(dbName, sampleId, analysisID);
|
||||
List<String> filePath = new LinkedList<>();
|
||||
|
@ -378,8 +342,6 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
String fileName = sampleFilePath.substring(sampleFilePath.lastIndexOf(StringPool.SLASH)+1);
|
||||
sampleMap = this.fenxi(pathName, fileName, sample.getSampleId(), sample.getStatus());
|
||||
resultMap.put("sample",sampleMap);
|
||||
cache.put(fileName+"-"+userName, cacheMap);
|
||||
betaCache.setBetaCache(cache);
|
||||
}
|
||||
if(StringUtils.isNotBlank(dbSpectrumFilePath.getGasBgFilePath())){
|
||||
String gasBgFilePath = dbSpectrumFilePath.getGasBgFilePath();
|
||||
|
@ -417,11 +379,47 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
}
|
||||
}
|
||||
phdFileUtil.getLightColor(sampleMap,gasBgMap,detBgMap,qcMap);
|
||||
resultMap.put("bProcessed", false);
|
||||
String sampleFileName = String.valueOf(sampleMap.get("fileName"));
|
||||
Cache<String, Map<String, Object>> cache = betaCache.getBetaCache();
|
||||
Map<String, Object> xeDataMap = cache.getIfPresent(sampleFileName + "-" + userName + "-xeData");
|
||||
if (CollectionUtils.isNotEmpty(xeDataMap)) {
|
||||
xeResultsSpectrumList = (List<GardsXeResultsSpectrum>) xeDataMap.get("XeData");
|
||||
sampleBoundary = (List<Boundary>) xeDataMap.get("SampleBoundary");
|
||||
gasBoundary = (List<Boundary>) xeDataMap.get("GasBoundary");
|
||||
detBoundary = (List<Boundary>) xeDataMap.get("DetBoundary");
|
||||
bProcessed = true;
|
||||
if (CollectionUtils.isNotEmpty(sampleBoundary)) {
|
||||
sampleMap.put("Boundary", sampleBoundary);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(gasBoundary)) {
|
||||
gasBgMap.put("Boundary", gasBoundary);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(detBoundary)) {
|
||||
detBgMap.put("Boundary", detBoundary);
|
||||
}
|
||||
}
|
||||
//Xe
|
||||
if (CollectionUtils.isNotEmpty(xeResultsSpectrumList)){
|
||||
for (GardsXeResultsSpectrum xeData:xeResultsSpectrumList) {
|
||||
Double conc = xeData.getConc();
|
||||
Double mdc = xeData.getMdc();
|
||||
if (conc < 0){
|
||||
xeData.setColor("red");
|
||||
xeData.setNidFlag(0);
|
||||
} else if (0<conc && conc < mdc) {
|
||||
xeData.setColor("#ffcc30");
|
||||
xeData.setNidFlag(0);
|
||||
} else if (conc > mdc) {
|
||||
xeData.setColor("green");
|
||||
xeData.setNidFlag(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
resultMap.put("XeData", xeResultsSpectrumList);
|
||||
resultMap.put("bProcessed", bProcessed);
|
||||
resultMap.put("savedAnalysisResult", true);
|
||||
} else {
|
||||
resultMap.clear();
|
||||
cacheMap.clear();
|
||||
}
|
||||
result.setSuccess(true);
|
||||
result.setResult(resultMap);
|
||||
|
@ -434,11 +432,17 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
String userName = JwtUtil.getUserNameByToken(request);
|
||||
String path = StringPool.SLASH + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName;
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
List<GardsXeResultsSpectrum> xeResultsSpectrumList = new LinkedList<>();
|
||||
List<Boundary> sampleBoundary = new LinkedList<>();
|
||||
List<Boundary> gasBoundary = new LinkedList<>();
|
||||
List<Boundary> detBoundary = new LinkedList<>();
|
||||
List<String> filePath = new LinkedList<>();
|
||||
Map<String, Object> sampleMap = new HashMap<>();
|
||||
Map<String, Object> gasBgMap = new HashMap<>();
|
||||
Map<String, Object> detBgMap = new HashMap<>();
|
||||
Map<String, Object> qcMap = new HashMap<>();
|
||||
boolean bProcessed = false;
|
||||
boolean savedAnalysisResult = false;
|
||||
if(StringUtils.isNotBlank(sampleFileName)){
|
||||
String sampleFilePath = path + sampleFileName;
|
||||
filePath.add(sampleFilePath);
|
||||
|
@ -464,9 +468,48 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
resultMap.put("qc", qcMap);
|
||||
}
|
||||
phdFileUtil.getLightColor(sampleMap,gasBgMap,detBgMap,qcMap);
|
||||
resultMap.put("XeData", new LinkedList<>());
|
||||
resultMap.put("bProcessed", false);
|
||||
resultMap.put("savedAnalysisResult", false);
|
||||
//获取本地缓存信息
|
||||
Cache<String, Map<String, Object>> cache = betaCache.getBetaCache();
|
||||
//根据key获取缓存数据
|
||||
Map<String, Object> xeDataMap = cache.getIfPresent(sampleFileName + "-" + userName + "-xeData");
|
||||
//如果缓存数据存在 则将缓存数据取出使用
|
||||
if (CollectionUtils.isNotEmpty(xeDataMap)) {
|
||||
xeResultsSpectrumList = (List<GardsXeResultsSpectrum>) xeDataMap.get("XeData");
|
||||
sampleBoundary = (List<Boundary>) xeDataMap.get("SampleBoundary");
|
||||
gasBoundary = (List<Boundary>) xeDataMap.get("GasBoundary");
|
||||
detBoundary = (List<Boundary>) xeDataMap.get("DetBoundary");
|
||||
bProcessed = true;
|
||||
savedAnalysisResult = true;
|
||||
//Xe
|
||||
if (CollectionUtils.isNotEmpty(xeResultsSpectrumList)){
|
||||
for (GardsXeResultsSpectrum xeData:xeResultsSpectrumList) {
|
||||
Double conc = xeData.getConc();
|
||||
Double mdc = xeData.getMdc();
|
||||
if (conc < 0){
|
||||
xeData.setColor("red");
|
||||
xeData.setNidFlag(0);
|
||||
} else if (0<conc && conc < mdc) {
|
||||
xeData.setColor("#ffcc30");
|
||||
xeData.setNidFlag(0);
|
||||
} else if (conc > mdc) {
|
||||
xeData.setColor("green");
|
||||
xeData.setNidFlag(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(sampleBoundary)) {
|
||||
sampleMap.put("Boundary", sampleBoundary);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(gasBoundary)) {
|
||||
gasBgMap.put("Boundary", gasBoundary);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(detBoundary)) {
|
||||
detBgMap.put("Boundary", detBoundary);
|
||||
}
|
||||
}
|
||||
resultMap.put("XeData", xeResultsSpectrumList);
|
||||
resultMap.put("bProcessed", bProcessed);
|
||||
resultMap.put("savedAnalysisResult", savedAnalysisResult);
|
||||
result.setSuccess(true);
|
||||
result.setResult(resultMap);
|
||||
return result;
|
||||
|
@ -1276,8 +1319,6 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
file = File.createTempFile("betaGamma", null);
|
||||
//将ftp文件的输入流复制给临时文件
|
||||
FileUtils.copyInputStreamToFile(inputStream, file);
|
||||
//加载dll工具库
|
||||
//System.loadLibrary("ReadPHDFile");
|
||||
EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(file.getAbsolutePath());
|
||||
rlrDataValues.setSrid(struct.sample_ref_id);
|
||||
rlrDataValues.setColloct_start_date(struct.collection_start_date);
|
||||
|
@ -2411,6 +2452,9 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
@Override
|
||||
public Result ReAnalyse(AnalyseData analyseData, HttpServletRequest request) {
|
||||
Result result = new Result();
|
||||
//声明接收当前分析后的返回结果的map
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
//获取当前登陆的用户名
|
||||
String userName = JwtUtil.getUserNameByToken(request);
|
||||
if ("CurrentSpectrum".equals(analyseData.getApplyType())) {
|
||||
String dbName = analyseData.getDbNames().get(0);
|
||||
|
@ -2429,17 +2473,25 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
String sampleFilePath = dbSpectrumFilePath.getSampleFilePath().substring(0, dbSpectrumFilePath.getSampleFilePath().lastIndexOf(StringPool.SLASH));
|
||||
String gasFilePath = dbSpectrumFilePath.getGasBgFilePath().substring(0, dbSpectrumFilePath.getGasBgFilePath().lastIndexOf(StringPool.SLASH));
|
||||
String detFilePath = dbSpectrumFilePath.getDetBgFilePath().substring(0, dbSpectrumFilePath.getDetBgFilePath().lastIndexOf(StringPool.SLASH));
|
||||
BgAnalyseResult analyseResult = BetaGammaAnalyzeCurrentProcess(analyseData, sampleFilePath, gasFilePath, detFilePath, userName);
|
||||
List<GardsXeResults> analyseResult = BetaGammaAnalyzeCurrentProcess(analyseData, sampleFilePath, gasFilePath, detFilePath, userName);
|
||||
map.put("xeData", analyseResult);
|
||||
map.put("bProcessed", true);
|
||||
map.put("savedAnalysisResult", true);
|
||||
result.setSuccess(true);
|
||||
result.setResult(analyseResult);
|
||||
result.setResult(map);
|
||||
}
|
||||
} else {
|
||||
String path = StringPool.SLASH + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName;
|
||||
BgAnalyseResult analyseResult = BetaGammaAnalyzeCurrentProcess(analyseData, path, path, path, userName);
|
||||
List<GardsXeResults> analyseResult = BetaGammaAnalyzeCurrentProcess(analyseData, path, path, path, userName);
|
||||
map.put("XeData", analyseResult);
|
||||
map.put("bProcessed", true);
|
||||
map.put("savedAnalysisResult", true);
|
||||
result.setSuccess(true);
|
||||
result.setResult(analyseResult);
|
||||
result.setResult(map);
|
||||
}
|
||||
} else if ("AllSpectrum".equals(analyseData.getApplyType())) {
|
||||
//获取当前选中的文件名称
|
||||
String currentFileName = analyseData.getCurrentFileName();
|
||||
List<Map<String, String>> loadDataList = new LinkedList<>();
|
||||
for (int i=0; i<analyseData.getSampleIds().size(); i++) {
|
||||
Map<String, String> m_loadData = new HashMap<>();
|
||||
|
@ -2481,66 +2533,61 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
m_loadData.put("qcFileName", qcFileName);
|
||||
loadDataList.add(m_loadData);
|
||||
}
|
||||
BetaGammaAnalyzeAllProcess(loadDataList, analyseData, userName);
|
||||
List<GardsXeResults> analyseResultList = BetaGammaAnalyzeAllProcess(loadDataList, analyseData, userName, currentFileName);
|
||||
map.put("XeData", analyseResultList);
|
||||
map.put("bProcessed", true);
|
||||
map.put("savedAnalysisResult", true);
|
||||
result.setSuccess(true);
|
||||
result.setResult(map);
|
||||
}
|
||||
// if (analyseData.isBBetaEnergyValid()) {
|
||||
// ui->BetaOriginalChartView->SetFittingParam(fit_analy_param.b_calibration_param.param_a_c2e_new,
|
||||
// fit_analy_param.b_calibration_param.param_b_c2e_new,
|
||||
// fit_analy_param.b_calibration_param.param_c_c2e_new);
|
||||
// ui->BetaProjectedChartView->SetFittingParam(fit_analy_param.b_calibration_param.param_a_c2e_new,
|
||||
// fit_analy_param.b_calibration_param.param_b_c2e_new,
|
||||
// fit_analy_param.b_calibration_param.param_c_c2e_new);
|
||||
// }
|
||||
// if (analyseData.isBGammaEnergyValid()) {
|
||||
// ui->GammaOriginalChartView->SetFittingParam(fit_analy_param.g_calibration_param.param_a_c2e_new,
|
||||
// fit_analy_param.g_calibration_param.param_b_c2e_new,
|
||||
// fit_analy_param.g_calibration_param.param_c_c2e_new);
|
||||
// ui->GammaProjectedChartView->SetFittingParam(fit_analy_param.g_calibration_param.param_a_c2e_new,
|
||||
// fit_analy_param.g_calibration_param.param_b_c2e_new,
|
||||
// fit_analy_param.g_calibration_param.param_c_c2e_new);
|
||||
// }
|
||||
return result;
|
||||
}
|
||||
|
||||
private BgAnalyseResult BetaGammaAnalyzeCurrentProcess(AnalyseData analyseData, String sampleFilePath, String gasFilePath, String detFilePath, String userName) {
|
||||
//System.loadLibrary("ReadPHDFile");
|
||||
private List<GardsXeResults> BetaGammaAnalyzeCurrentProcess(AnalyseData analyseData, String sampleFilePath, String gasFilePath, String detFilePath, String userName) {
|
||||
//根据文件路径 文件名称获取对应的临时文件
|
||||
File sampleTmp = null;
|
||||
File gasTmp = null;
|
||||
File detTmp = null;
|
||||
BgAnalyseResult analyseResult = null;
|
||||
//需要返回到前端的XeData数据
|
||||
List<GardsXeResults> xeResultsSpectrumList = new LinkedList<>();
|
||||
try {
|
||||
//sample文件名称
|
||||
List<String> sampleFileNames = analyseData.getSampleFileNames();
|
||||
String sampleFileName = sampleFileNames.get(0);
|
||||
//gas文件名称
|
||||
List<String> gasFileNames = analyseData.getGasFileNames();
|
||||
String gasFileName = gasFileNames.get(0);
|
||||
//det文件名称
|
||||
List<String> detFileNames = analyseData.getDetFileNames();
|
||||
String detFileName = detFileNames.get(0);
|
||||
//qc文件名称
|
||||
List<String> qcFileNames = analyseData.getQcFileNames();
|
||||
String qcFileName = qcFileNames.get(0);
|
||||
//存储重新分析字段的实体类
|
||||
SpectrumGroup spectrum_group = new SpectrumGroup();
|
||||
//声明一个map 缓存重新分析用到的数据
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
//声明一个map 缓存xeData计算后的结果
|
||||
Map<String, Object> xeMap = new HashMap<>();
|
||||
//从本地缓存获取beta gamma的数组
|
||||
Cache<String, Map<String, Object>> cache = betaCache.getBetaCache();
|
||||
//根据qc文件名称-用户名-beta的方式获取beta的内容
|
||||
Map<String, Object> betaMap = cache.getIfPresent(qcFileName + "-" + userName + "-beta");
|
||||
List<SeriseData> betaList = new LinkedList<>();
|
||||
List<String> betaFittingPara = new LinkedList<>();
|
||||
List<String> betaFittingParaToUi = new LinkedList<>();
|
||||
if (CollectionUtils.isNotEmpty(betaMap)) {
|
||||
betaList = (List<SeriseData>)betaMap.get("Series");
|
||||
betaFittingPara = (List<String>) betaMap.get("fittingPara");
|
||||
betaFittingParaToUi = (List<String>) betaMap.get("fittingParaToUi");
|
||||
}
|
||||
//根据qc文件名称-用户名-gamma的方式获取gamma的内容
|
||||
Map<String, Object> gammaMap = cache.getIfPresent(qcFileName + "-" + userName + "-gamma");
|
||||
List<SeriseData> gammaList = new LinkedList<>();
|
||||
List<String> gammaFittingPara = new LinkedList<>();
|
||||
List<String> gammaFittingParaToUi = new LinkedList<>();
|
||||
if (CollectionUtils.isNotEmpty(gammaMap)) {
|
||||
gammaList = (List<SeriseData>)gammaMap.get("Series");
|
||||
gammaFittingPara = (List<String>) gammaMap.get("fittingPara");
|
||||
gammaFittingParaToUi = (List<String>) gammaMap.get("fittingParaToUi");
|
||||
}
|
||||
//判断是否对beta页面进行过分析
|
||||
if (analyseData.isBetaEnergyValid()) {
|
||||
List<Double> beCal = new LinkedList<>();
|
||||
beCal.add(Double.valueOf(betaFittingParaToUi.get(0)));
|
||||
|
@ -2552,7 +2599,23 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
bc2e.add(Double.valueOf(betaFittingPara.get(1)));
|
||||
bc2e.add(Double.valueOf(betaFittingPara.get(2)));
|
||||
spectrum_group.b_c2e = bc2e;
|
||||
if (analyseData.isSampleData()) {
|
||||
map.put("bBetaEnergyValidSample", true);
|
||||
} else {
|
||||
map.put("bBetaEnergyValidSample", false);
|
||||
}
|
||||
if (analyseData.isGasBgData()) {
|
||||
map.put("bBetaEnergyValidGas", true);
|
||||
} else {
|
||||
map.put("bBetaEnergyValidGas", false);
|
||||
}
|
||||
if (analyseData.isDetBgData()) {
|
||||
map.put("bBetaEnergyValidDet", true);
|
||||
} else {
|
||||
map.put("bBetaEnergyValidDet", false);
|
||||
}
|
||||
}
|
||||
//判断是否对gamma页面进行过分析
|
||||
if (analyseData.isGammaEnergyValid()) {
|
||||
List<Double> geCal = new LinkedList<>();
|
||||
geCal.add(Double.valueOf(gammaFittingParaToUi.get(0)));
|
||||
|
@ -2564,15 +2627,115 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
gc2e.add(Double.valueOf(gammaFittingPara.get(1)));
|
||||
gc2e.add(Double.valueOf(gammaFittingPara.get(2)));
|
||||
spectrum_group.g_c2e = gc2e;
|
||||
if (analyseData.isSampleData()) {
|
||||
map.put("bGammaEnergyValidSample", true);
|
||||
} else {
|
||||
map.put("bGammaEnergyValidSample", false);
|
||||
}
|
||||
if (analyseData.isGasBgData()) {
|
||||
map.put("bGammaEnergyValidGas", true);
|
||||
} else {
|
||||
map.put("bGammaEnergyValidGas", false);
|
||||
}
|
||||
if (analyseData.isDetBgData()) {
|
||||
map.put("bGammaEnergyValidDet", true);
|
||||
} else {
|
||||
map.put("bGammaEnergyValidDet", false);
|
||||
}
|
||||
}
|
||||
//判断是否勾选了sample
|
||||
spectrum_group.BgCalPara.bApplyNewCalicSample = analyseData.isSampleData();
|
||||
//判断是否勾选了gas
|
||||
spectrum_group.BgCalPara.bApplyNewCalicGasBg = analyseData.isGasBgData();
|
||||
//判断是否勾选了det
|
||||
spectrum_group.BgCalPara.bApplyNewCalicDetBg = analyseData.isDetBgData();
|
||||
//判断是否勾选了qc
|
||||
spectrum_group.BgCalPara.bApplyNewCalicQc = analyseData.isQcData();
|
||||
//获取sample文件
|
||||
sampleTmp = phdFileUtil.analyzeFile(sampleFilePath, sampleFileName);
|
||||
//获取gas文件
|
||||
gasTmp = phdFileUtil.analyzeFile(gasFilePath, gasFileName);
|
||||
//获取det文件
|
||||
detTmp = phdFileUtil.analyzeFile(detFilePath, detFileName);
|
||||
analyseResult = EnergySpectrumHandler.bgReAnalyse(sampleTmp.getAbsolutePath(), gasTmp.getAbsolutePath(), detTmp.getAbsolutePath(), spectrum_group.BgCalPara);
|
||||
//调用重新分析算法 获取算法结果
|
||||
BgAnalyseResult analyseResult = EnergySpectrumHandler.bgReAnalyse(sampleTmp.getAbsolutePath(), gasTmp.getAbsolutePath(), detTmp.getAbsolutePath(), spectrum_group.BgCalPara);
|
||||
//存入分析用到的数据
|
||||
map.put("reAnalyseParam", spectrum_group.BgCalPara);
|
||||
//存入计算后得到的xeData数据
|
||||
GardsXeResults xe131m = new GardsXeResults();
|
||||
xe131m.setNuclideName(XeNuclideName.XE_131m.getType());
|
||||
xe131m.setConc(analyseResult.Xe131m_con);
|
||||
xe131m.setConcErr(analyseResult.Xe131m_uncer);
|
||||
xe131m.setLc(analyseResult.LC_Xe131m);
|
||||
xe131m.setMdc(analyseResult.MDC_Xe131m);
|
||||
xe131m.setNidFlag(analyseResult.XE_131m_NID_FLAG);
|
||||
xeResultsSpectrumList.add(xe131m);
|
||||
GardsXeResults xe133 = new GardsXeResults();
|
||||
xe133.setNuclideName(XeNuclideName.XE_133.getType());
|
||||
xe133.setConc(analyseResult.Xe133_con);
|
||||
xe133.setConcErr(analyseResult.Xe133_uncer);
|
||||
xe133.setLc(analyseResult.LC_Xe133);
|
||||
xe133.setMdc(analyseResult.MDC_Xe133);
|
||||
xe133.setNidFlag(analyseResult.XE_133_NID_FLAG);
|
||||
xeResultsSpectrumList.add(xe133);
|
||||
GardsXeResults xe133m = new GardsXeResults();
|
||||
xe133m.setNuclideName(XeNuclideName.XE_133m.getType());
|
||||
xe133m.setConc(analyseResult.Xe133m_con);
|
||||
xe133m.setConcErr(analyseResult.Xe133m_uncer);
|
||||
xe133m.setLc(analyseResult.LC_Xe133m);
|
||||
xe133m.setMdc(analyseResult.MDC_Xe133m);
|
||||
xe133m.setNidFlag(analyseResult.XE_133m_NID_FLAG);
|
||||
xeResultsSpectrumList.add(xe133m);
|
||||
GardsXeResults xe135 = new GardsXeResults();
|
||||
xe135.setNuclideName(XeNuclideName.XE_135.getType());
|
||||
xe135.setConc(analyseResult.Xe135_con);
|
||||
xe135.setConcErr(analyseResult.Xe135_uncer);
|
||||
xe135.setLc(analyseResult.LC_Xe135);
|
||||
xe135.setMdc(analyseResult.MDC_Xe135);
|
||||
xe135.setNidFlag(analyseResult.XE_135_NID_FLAG);
|
||||
xeResultsSpectrumList.add(xe135);
|
||||
xeMap.put("XeData", xeResultsSpectrumList);
|
||||
//新计算得到的边界值
|
||||
if (CollectionUtils.isNotEmpty(analyseResult.S_ROI_B_Boundary_start)) {
|
||||
List<Boundary> boundaryList = new LinkedList<>();
|
||||
for (int i=0; i<analyseResult.S_ROI_B_Boundary_start.size(); i++) {
|
||||
Boundary boundary = new Boundary();
|
||||
boundary.setMinX(analyseResult.S_ROI_B_Boundary_start.get(i));
|
||||
boundary.setMaxX(analyseResult.S_ROI_B_Boundary_stop.get(i));
|
||||
boundary.setMinY(analyseResult.S_ROI_G_Boundary_start.get(i));
|
||||
boundary.setMaxY(analyseResult.S_ROI_G_Boundary_stop.get(i));
|
||||
boundaryList.add(boundary);
|
||||
}
|
||||
xeMap.put("SampleBoundary", boundaryList);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(analyseResult.G_ROI_B_Boundary_start)) {
|
||||
List<Boundary> boundaryList = new LinkedList<>();
|
||||
for (int i=0; i<analyseResult.G_ROI_B_Boundary_start.size(); i++) {
|
||||
Boundary boundary = new Boundary();
|
||||
boundary.setMinX(analyseResult.G_ROI_B_Boundary_start.get(i));
|
||||
boundary.setMaxX(analyseResult.G_ROI_B_Boundary_stop.get(i));
|
||||
boundary.setMinY(analyseResult.G_ROI_G_Boundary_start.get(i));
|
||||
boundary.setMaxY(analyseResult.G_ROI_G_Boundary_stop.get(i));
|
||||
boundaryList.add(boundary);
|
||||
}
|
||||
xeMap.put("GasBoundary", boundaryList);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(analyseResult.D_ROI_B_Boundary_start)) {
|
||||
List<Boundary> boundaryList = new LinkedList<>();
|
||||
for (int i=0; i<analyseResult.D_ROI_B_Boundary_start.size(); i++) {
|
||||
Boundary boundary = new Boundary();
|
||||
boundary.setMinX(analyseResult.D_ROI_B_Boundary_start.get(i));
|
||||
boundary.setMaxX(analyseResult.D_ROI_B_Boundary_stop.get(i));
|
||||
boundary.setMinY(analyseResult.D_ROI_G_Boundary_start.get(i));
|
||||
boundary.setMaxY(analyseResult.D_ROI_G_Boundary_stop.get(i));
|
||||
boundaryList.add(boundary);
|
||||
}
|
||||
xeMap.put("DetBoundary", boundaryList);
|
||||
}
|
||||
//将重新计算的参数以及重新计算后的xeData的数据缓存到本地缓存中
|
||||
cache.put(sampleFileName + "-" + userName + "-reAnalyseParam", map);
|
||||
cache.put(sampleFileName + "-" + userName + "-xeData", xeMap);
|
||||
betaCache.setBetaCache(cache);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
|
@ -2586,11 +2749,11 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
detTmp.delete();
|
||||
}
|
||||
}
|
||||
return analyseResult;
|
||||
return xeResultsSpectrumList;
|
||||
}
|
||||
|
||||
private void BetaGammaAnalyzeAllProcess(List<Map<String, String>> loadDataList, AnalyseData analyseData, String userName){
|
||||
List<BgAnalyseResult> analyseResultList = new LinkedList<>();
|
||||
private List<GardsXeResults> BetaGammaAnalyzeAllProcess(List<Map<String, String>> loadDataList, AnalyseData analyseData, String userName, String currentFileName){
|
||||
Map<String, List<GardsXeResults>> analyseResultMap = new HashMap<>();
|
||||
File sampleTmp = null;
|
||||
File gasTmp = null;
|
||||
File detTmp = null;
|
||||
|
@ -2603,26 +2766,27 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
String sampleFilePath = m_loadData.get("sampleFilePath");
|
||||
String gasFilePath = m_loadData.get("gasFilePath");
|
||||
String detFilePath = m_loadData.get("detFilePath");
|
||||
//存储重新分析字段的实体类
|
||||
SpectrumGroup spectrum_group = new SpectrumGroup();
|
||||
//声明一个map 缓存重新分析用到的数据
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
//声明一个map 缓存xeData计算后的结果
|
||||
Map<String, Object> xeMap = new HashMap<>();
|
||||
//从本地缓存获取beta gamma的数组
|
||||
Cache<String, Map<String, Object>> cache = betaCache.getBetaCache();
|
||||
//根据qc文件名称-用户名-beta的方式获取beta的内容
|
||||
Map<String, Object> betaMap = cache.getIfPresent(qcFileName + "-" + userName + "-beta");
|
||||
List<SeriseData> betaList = new LinkedList<>();
|
||||
List<String> betaFittingPara = new LinkedList<>();
|
||||
List<String> betaFittingParaToUi = new LinkedList<>();
|
||||
if (CollectionUtils.isNotEmpty(betaMap)) {
|
||||
betaList = (List<SeriseData>)betaMap.get("Series");
|
||||
betaFittingPara = (List<String>) betaMap.get("fittingPara");
|
||||
betaFittingParaToUi = (List<String>) betaMap.get("fittingParaToUi");
|
||||
}
|
||||
//根据qc文件名称-用户名-gamma的方式获取gamma的内容
|
||||
Map<String, Object> gammaMap = cache.getIfPresent(qcFileName + "-" + userName + "-gamma");
|
||||
List<SeriseData> gammaList = new LinkedList<>();
|
||||
List<String> gammaFittingPara = new LinkedList<>();
|
||||
List<String> gammaFittingParaToUi = new LinkedList<>();
|
||||
if (CollectionUtils.isNotEmpty(gammaMap)) {
|
||||
gammaList = (List<SeriseData>)gammaMap.get("Series");
|
||||
gammaFittingPara = (List<String>) gammaMap.get("fittingPara");
|
||||
gammaFittingParaToUi = (List<String>) gammaMap.get("fittingParaToUi");
|
||||
}
|
||||
|
@ -2638,6 +2802,21 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
bc2e.add(Double.valueOf(betaFittingPara.get(1)));
|
||||
bc2e.add(Double.valueOf(betaFittingPara.get(2)));
|
||||
spectrum_group.b_c2e = bc2e;
|
||||
if (analyseData.isSampleData()) {
|
||||
map.put("bBetaEnergyValidSample", true);
|
||||
} else {
|
||||
map.put("bBetaEnergyValidSample", false);
|
||||
}
|
||||
if (analyseData.isGasBgData()) {
|
||||
map.put("bBetaEnergyValidGas", true);
|
||||
} else {
|
||||
map.put("bBetaEnergyValidGas", false);
|
||||
}
|
||||
if (analyseData.isDetBgData()) {
|
||||
map.put("bBetaEnergyValidDet", true);
|
||||
} else {
|
||||
map.put("bBetaEnergyValidDet", false);
|
||||
}
|
||||
}
|
||||
if (analyseData.isGammaEnergyValid()) {
|
||||
List<Double> geCal = new LinkedList<>();
|
||||
|
@ -2650,17 +2829,109 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
gc2e.add(Double.valueOf(gammaFittingPara.get(1)));
|
||||
gc2e.add(Double.valueOf(gammaFittingPara.get(2)));
|
||||
spectrum_group.g_c2e = gc2e;
|
||||
if (analyseData.isSampleData()) {
|
||||
map.put("bGammaEnergyValidSample", true);
|
||||
} else {
|
||||
map.put("bGammaEnergyValidSample", false);
|
||||
}
|
||||
if (analyseData.isGasBgData()) {
|
||||
map.put("bGammaEnergyValidGas", true);
|
||||
} else {
|
||||
map.put("bGammaEnergyValidGas", false);
|
||||
}
|
||||
if (analyseData.isDetBgData()) {
|
||||
map.put("bGammaEnergyValidDet", true);
|
||||
} else {
|
||||
map.put("bGammaEnergyValidDet", false);
|
||||
}
|
||||
}
|
||||
spectrum_group.BgCalPara.bApplyNewCalicSample = analyseData.isSampleData();
|
||||
spectrum_group.BgCalPara.bApplyNewCalicGasBg = analyseData.isGasBgData();
|
||||
spectrum_group.BgCalPara.bApplyNewCalicDetBg = analyseData.isDetBgData();
|
||||
spectrum_group.BgCalPara.bApplyNewCalicQc = analyseData.isQcData();
|
||||
|
||||
sampleTmp = phdFileUtil.analyzeFile(sampleFilePath, sampleFileName);
|
||||
gasTmp = phdFileUtil.analyzeFile(gasFilePath, gasFileName);
|
||||
detTmp = phdFileUtil.analyzeFile(detFilePath, detFileName);
|
||||
BgAnalyseResult analyseResult = EnergySpectrumHandler.bgReAnalyse(sampleTmp.getAbsolutePath(), gasTmp.getAbsolutePath(), detTmp.getAbsolutePath(), spectrum_group.BgCalPara);
|
||||
analyseResultList.add(analyseResult);
|
||||
//存入重新分析的参数
|
||||
map.put("reAnalyseParam", spectrum_group.BgCalPara);
|
||||
//存入xeData数据
|
||||
List<GardsXeResults> xeResultsSpectrumList = new LinkedList<>();
|
||||
GardsXeResults xe131m = new GardsXeResults();
|
||||
xe131m.setNuclideName(XeNuclideName.XE_131m.getType());
|
||||
xe131m.setConc(analyseResult.Xe131m_con);
|
||||
xe131m.setConcErr(analyseResult.Xe131m_uncer);
|
||||
xe131m.setLc(analyseResult.LC_Xe131m);
|
||||
xe131m.setMdc(analyseResult.MDC_Xe131m);
|
||||
xe131m.setNidFlag(analyseResult.XE_131m_NID_FLAG);
|
||||
xeResultsSpectrumList.add(xe131m);
|
||||
GardsXeResults xe133 = new GardsXeResults();
|
||||
xe133.setNuclideName(XeNuclideName.XE_133.getType());
|
||||
xe133.setConc(analyseResult.Xe133_con);
|
||||
xe133.setConcErr(analyseResult.Xe133_uncer);
|
||||
xe133.setLc(analyseResult.LC_Xe133);
|
||||
xe133.setMdc(analyseResult.MDC_Xe133);
|
||||
xe133.setNidFlag(analyseResult.XE_133_NID_FLAG);
|
||||
xeResultsSpectrumList.add(xe133);
|
||||
GardsXeResults xe133m = new GardsXeResults();
|
||||
xe133m.setNuclideName(XeNuclideName.XE_133m.getType());
|
||||
xe133m.setConc(analyseResult.Xe133m_con);
|
||||
xe133m.setConcErr(analyseResult.Xe133m_uncer);
|
||||
xe133m.setLc(analyseResult.LC_Xe133m);
|
||||
xe133m.setMdc(analyseResult.MDC_Xe133m);
|
||||
xe133m.setNidFlag(analyseResult.XE_133m_NID_FLAG);
|
||||
xeResultsSpectrumList.add(xe133m);
|
||||
GardsXeResults xe135 = new GardsXeResults();
|
||||
xe135.setNuclideName(XeNuclideName.XE_135.getType());
|
||||
xe135.setConc(analyseResult.Xe135_con);
|
||||
xe135.setConcErr(analyseResult.Xe135_uncer);
|
||||
xe135.setLc(analyseResult.LC_Xe135);
|
||||
xe135.setMdc(analyseResult.MDC_Xe135);
|
||||
xe135.setNidFlag(analyseResult.XE_135_NID_FLAG);
|
||||
xeResultsSpectrumList.add(xe135);
|
||||
xeMap.put("XeData", xeResultsSpectrumList);
|
||||
//新计算得到的边界值
|
||||
if (CollectionUtils.isNotEmpty(analyseResult.S_ROI_B_Boundary_start)) {
|
||||
List<Boundary> boundaryList = new LinkedList<>();
|
||||
for (int i=0; i<analyseResult.S_ROI_B_Boundary_start.size(); i++) {
|
||||
Boundary boundary = new Boundary();
|
||||
boundary.setMinX(analyseResult.S_ROI_B_Boundary_start.get(i));
|
||||
boundary.setMaxX(analyseResult.S_ROI_B_Boundary_stop.get(i));
|
||||
boundary.setMinY(analyseResult.S_ROI_G_Boundary_start.get(i));
|
||||
boundary.setMaxY(analyseResult.S_ROI_G_Boundary_stop.get(i));
|
||||
boundaryList.add(boundary);
|
||||
}
|
||||
xeMap.put("SampleBoundary", boundaryList);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(analyseResult.G_ROI_B_Boundary_start)) {
|
||||
List<Boundary> boundaryList = new LinkedList<>();
|
||||
for (int i=0; i<analyseResult.G_ROI_B_Boundary_start.size(); i++) {
|
||||
Boundary boundary = new Boundary();
|
||||
boundary.setMinX(analyseResult.G_ROI_B_Boundary_start.get(i));
|
||||
boundary.setMaxX(analyseResult.G_ROI_B_Boundary_stop.get(i));
|
||||
boundary.setMinY(analyseResult.G_ROI_G_Boundary_start.get(i));
|
||||
boundary.setMaxY(analyseResult.G_ROI_G_Boundary_stop.get(i));
|
||||
boundaryList.add(boundary);
|
||||
}
|
||||
xeMap.put("GasBoundary", boundaryList);
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(analyseResult.D_ROI_B_Boundary_start)) {
|
||||
List<Boundary> boundaryList = new LinkedList<>();
|
||||
for (int i=0; i<analyseResult.D_ROI_B_Boundary_start.size(); i++) {
|
||||
Boundary boundary = new Boundary();
|
||||
boundary.setMinX(analyseResult.D_ROI_B_Boundary_start.get(i));
|
||||
boundary.setMaxX(analyseResult.D_ROI_B_Boundary_stop.get(i));
|
||||
boundary.setMinY(analyseResult.D_ROI_G_Boundary_start.get(i));
|
||||
boundary.setMaxY(analyseResult.D_ROI_G_Boundary_stop.get(i));
|
||||
boundaryList.add(boundary);
|
||||
}
|
||||
xeMap.put("DetBoundary", boundaryList);
|
||||
}
|
||||
//将重新计算的参数以及重新计算后的xeData的数据缓存到本地缓存中
|
||||
cache.put(sampleFileName + "-" + userName + "-reAnalyseParam", map);
|
||||
cache.put(sampleFileName + "-" + userName + "-xeData", xeMap);
|
||||
betaCache.setBetaCache(cache);
|
||||
analyseResultMap.put(sampleFileName, xeResultsSpectrumList);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
|
@ -2675,12 +2946,13 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
detTmp.delete();
|
||||
}
|
||||
}
|
||||
|
||||
return analyseResultMap.get(currentFileName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result analyseCurrentSpectrum(String dbName, Integer sampleId, String sampleFileName, String gasFileName, String detFileName, HttpServletRequest request) {
|
||||
public Result analyseCurrentSpectrum(String dbName, Integer sampleId, String sampleFileName, String gasFileName, String detFileName, String qcFileName, HttpServletRequest request) {
|
||||
Result result = new Result();
|
||||
//获取用户名
|
||||
String userName = JwtUtil.getUserNameByToken(request);
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
//拼接ftp上传临时文件路径
|
||||
|
@ -2694,6 +2966,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
File sampleTmp = null;
|
||||
File gasTmp = null;
|
||||
File detTmp = null;
|
||||
BgCalibratePara BgCalPara = null;
|
||||
try {
|
||||
//如果sampleId不为空 说明数据来源数据库 查询出对应的文件路径
|
||||
if (Objects.nonNull(sampleId) && StringUtils.isNotBlank(dbName)){
|
||||
|
@ -2725,9 +2998,18 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
return result;
|
||||
}
|
||||
map.put("sampleFileName", sampleFileName);
|
||||
BgDataAnlyseResultIn resultIn = phdFileUtil.analyzeSpectrum(sampleTmp, gasTmp, detTmp, map);
|
||||
if (Objects.nonNull(resultIn)) {
|
||||
List<GardsXeResultsSpectrum> xeDataList = getXeDataList(resultIn, sampleId, analysisID);
|
||||
//获取本地缓存的数据信息
|
||||
Cache<String, Map<String, Object>> cache = betaCache.getBetaCache();
|
||||
//根据key获取重新分析的参数
|
||||
Map<String, Object> reAnalyseParam = cache.getIfPresent(sampleFileName + "-" + userName + "-reAnalyseParam");
|
||||
//判断重新分析的参数信息是否为空
|
||||
if (CollectionUtils.isNotEmpty(reAnalyseParam)) {
|
||||
BgCalPara = (BgCalibratePara) reAnalyseParam.get("reAnalyseParam");
|
||||
}
|
||||
//调用分析方法
|
||||
phdFileUtil.analyzeSpectrum(sampleTmp, gasTmp, detTmp, BgCalPara, map);
|
||||
if (CollectionUtils.isNotEmpty(map)) {
|
||||
List<GardsXeResultsSpectrum> xeDataList = (List<GardsXeResultsSpectrum>) map.get("XeData");
|
||||
if (CollectionUtils.isNotEmpty(xeDataList)){
|
||||
for (GardsXeResultsSpectrum xeData:xeDataList) {
|
||||
Double conc = xeData.getConc();
|
||||
|
@ -2743,8 +3025,11 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
xeData.setNidFlag(1);
|
||||
}
|
||||
}
|
||||
map.put("XeData", xeDataList);
|
||||
}
|
||||
//更新分析后的缓存信息
|
||||
cache.put(sampleFileName + "-" + userName + "-xeData", map);
|
||||
betaCache.setBetaCache(cache);
|
||||
map.put("bProcessed", true);
|
||||
map.put("savedAnalysisResult", true);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
@ -2766,10 +3051,10 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Result analyseAllSpectrum(List<String> dbNames, List<Integer> sampleIds, List<String> sampleFileNames, List<String> gasFileNames, List<String> detFileNames, HttpServletRequest request) {
|
||||
public Result analyseAllSpectrum(List<String> dbNames, List<Integer> sampleIds, List<String> sampleFileNames, List<String> gasFileNames, List<String> detFileNames, List<String> qcFileNames, String currentFileName, HttpServletRequest request) {
|
||||
Result result = new Result();
|
||||
String userName = JwtUtil.getUserNameByToken(request);
|
||||
List<Map<String, Object>> mapList = new LinkedList<>();
|
||||
Map<String, Map<String, Object>> mapList = new HashMap<>();
|
||||
File sampleTmp = null;
|
||||
File gasTmp = null;
|
||||
File detTmp = null;
|
||||
|
@ -2781,6 +3066,8 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
String sampleFileName = sampleFileNames.get(i);
|
||||
String gasFileName = gasFileNames.get(i);
|
||||
String detFileName = detFileNames.get(i);
|
||||
String qcFileName = qcFileNames.get(i);
|
||||
BgCalibratePara BgCalPara = null;
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
//声明一个实体类获取数据库中文件路径
|
||||
SpectrumFileRecord dbSpectrumFilePath = new SpectrumFileRecord();
|
||||
|
@ -2819,8 +3106,17 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
gasTmp = phdFileUtil.analyzeFile(gasPath, gasFileName);
|
||||
detTmp = phdFileUtil.analyzeFile(detPath, detFileName);
|
||||
map.put("sampleFileName", sampleFileName);
|
||||
BgDataAnlyseResultIn resultIn = phdFileUtil.analyzeSpectrum(sampleTmp, gasTmp, detTmp, map);
|
||||
List<GardsXeResultsSpectrum> xeDataList = getXeDataList(resultIn, sampleId, analysisID);
|
||||
//获取本地缓存的数据信息
|
||||
Cache<String, Map<String, Object>> cache = betaCache.getBetaCache();
|
||||
//根据key获取重新分析的参数
|
||||
Map<String, Object> reAnalyseParam = cache.getIfPresent(sampleFileName + "-" + userName + "-reAnalyseParam");
|
||||
//判断重新分析的参数信息是否为空
|
||||
if (CollectionUtils.isNotEmpty(reAnalyseParam)) {
|
||||
BgCalPara = (BgCalibratePara) reAnalyseParam.get("reAnalyseParam");
|
||||
}
|
||||
//调用分析方法
|
||||
phdFileUtil.analyzeSpectrum(sampleTmp, gasTmp, detTmp, BgCalPara, map);
|
||||
List<GardsXeResultsSpectrum> xeDataList = (List<GardsXeResultsSpectrum>) map.get("XeData");
|
||||
if (CollectionUtils.isNotEmpty(xeDataList)){
|
||||
for (GardsXeResultsSpectrum xeData:xeDataList) {
|
||||
Double conc = xeData.getConc();
|
||||
|
@ -2836,10 +3132,13 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
xeData.setNidFlag(1);
|
||||
}
|
||||
}
|
||||
map.put("XeData", xeDataList);
|
||||
}
|
||||
//更新分析后的缓存信息
|
||||
cache.put(sampleFileName + "-" + userName + "-xeData", map);
|
||||
betaCache.setBetaCache(cache);
|
||||
map.put("bProcessed", true);
|
||||
map.put("savedAnalysisResult", true);
|
||||
mapList.add(map);
|
||||
mapList.put(sampleFileName, map);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
@ -2856,7 +3155,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
}
|
||||
}
|
||||
result.setSuccess(true);
|
||||
result.setResult(mapList);
|
||||
result.setResult(mapList.get(currentFileName));
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -2886,6 +3185,36 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
gammaList = (List<SeriseData>)gammaMap.get("Series");
|
||||
gammaFittingPara = (List<String>) gammaMap.get("fittingPara");
|
||||
}
|
||||
//根据qc文件名称-用户名-reAnalyseParam获取重新分析用到的参数
|
||||
Map<String, Object> reAnalyseParam = cache.getIfPresent(anlyseResultIn.getSampleFileName() + "-" + userName + "-reAnalyseParam");
|
||||
BgCalibratePara BgCalPara = null;
|
||||
if (CollectionUtils.isNotEmpty(reAnalyseParam)) {
|
||||
BgCalPara = (BgCalibratePara) reAnalyseParam.get("reAnalyseParam");
|
||||
Boolean bGammaEnergyValidSample = (Boolean) reAnalyseParam.get("bGammaEnergyValidSample");
|
||||
if (Objects.nonNull(bGammaEnergyValidSample)) {
|
||||
anlyseResultIn.setBGammaEnergyValidSample(bGammaEnergyValidSample);
|
||||
}
|
||||
Boolean bBetaEnergyValidSample = (Boolean) reAnalyseParam.get("bBetaEnergyValidSample");
|
||||
if (Objects.nonNull(bBetaEnergyValidSample)) {
|
||||
anlyseResultIn.setBBetaEnergyValidSample(bBetaEnergyValidSample);
|
||||
}
|
||||
Boolean bGammaEnergyValidGas = (Boolean) reAnalyseParam.get("bGammaEnergyValidGas");
|
||||
if (Objects.nonNull(bGammaEnergyValidGas)) {
|
||||
anlyseResultIn.setBGammaEnergyValidGas(bGammaEnergyValidGas);
|
||||
}
|
||||
Boolean bBetaEnergyValidGas = (Boolean) reAnalyseParam.get("bBetaEnergyValidGas");
|
||||
if (Objects.nonNull(bBetaEnergyValidGas)) {
|
||||
anlyseResultIn.setBBetaEnergyValidGas(bBetaEnergyValidGas);
|
||||
}
|
||||
Boolean bGammaEnergyValidDet = (Boolean) reAnalyseParam.get("bGammaEnergyValidDet");
|
||||
if (Objects.nonNull(bGammaEnergyValidDet)) {
|
||||
anlyseResultIn.setBGammaEnergyValidDet(bGammaEnergyValidDet);
|
||||
}
|
||||
Boolean bBetaEnergyValidDet = (Boolean) reAnalyseParam.get("bBetaEnergyValidDet");
|
||||
if (Objects.nonNull(bBetaEnergyValidDet)) {
|
||||
anlyseResultIn.setBBetaEnergyValidDet(bBetaEnergyValidDet);
|
||||
}
|
||||
}
|
||||
//获取当前时间作为人工分析开始时间
|
||||
String beginDate = DateUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss");
|
||||
//获取当前时间作为人工分析结束时间
|
||||
|
@ -2940,7 +3269,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
//处理数据 获取对应的channel/energy值
|
||||
getChannelAndEnergy(anlyseResultIn, betaList, gammaList);
|
||||
//分析文件内容
|
||||
analyzePHDFile(anlyseResultIn, betaFittingPara, gammaFittingPara);
|
||||
analyzePHDFile(anlyseResultIn, BgCalPara, betaFittingPara, gammaFittingPara);
|
||||
//处理文件名称
|
||||
String sampleFilePathName = phdFileUtil.NameStandardBy(anlyseResultIn.getSampleFilePath(), anlyseResultIn.getSampleFileName());
|
||||
String gasFilePathName = phdFileUtil.NameStandardBy(anlyseResultIn.getGasFilePath(), anlyseResultIn.getGasFileName());
|
||||
|
@ -3128,6 +3457,36 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
gammaFittingPara = (List<String>) gammaMap.get("fittingPara");
|
||||
gammaFittingParaToUi = (List<String>) gammaMap.get("fittingParaToUi");
|
||||
}
|
||||
//根据qc文件名称-用户名-reAnalyseParam获取重新分析用到的参数
|
||||
Map<String, Object> reAnalyseParam = cache.getIfPresent(anlyseResultIn.getSampleFileName() + "-" + userName + "-reAnalyseParam");
|
||||
BgCalibratePara BgCalPara = null;
|
||||
if (CollectionUtils.isNotEmpty(reAnalyseParam)) {
|
||||
BgCalPara = (BgCalibratePara) reAnalyseParam.get("reAnalyseParam");
|
||||
Boolean bGammaEnergyValidSample = (Boolean) reAnalyseParam.get("bGammaEnergyValidSample");
|
||||
if (Objects.nonNull(bGammaEnergyValidSample)) {
|
||||
anlyseResultIn.setBGammaEnergyValidSample(bGammaEnergyValidSample);
|
||||
}
|
||||
Boolean bBetaEnergyValidSample = (Boolean) reAnalyseParam.get("bBetaEnergyValidSample");
|
||||
if (Objects.nonNull(bBetaEnergyValidSample)) {
|
||||
anlyseResultIn.setBBetaEnergyValidSample(bBetaEnergyValidSample);
|
||||
}
|
||||
Boolean bGammaEnergyValidGas = (Boolean) reAnalyseParam.get("bGammaEnergyValidGas");
|
||||
if (Objects.nonNull(bGammaEnergyValidGas)) {
|
||||
anlyseResultIn.setBGammaEnergyValidGas(bGammaEnergyValidGas);
|
||||
}
|
||||
Boolean bBetaEnergyValidGas = (Boolean) reAnalyseParam.get("bBetaEnergyValidGas");
|
||||
if (Objects.nonNull(bBetaEnergyValidGas)) {
|
||||
anlyseResultIn.setBBetaEnergyValidGas(bBetaEnergyValidGas);
|
||||
}
|
||||
Boolean bGammaEnergyValidDet = (Boolean) reAnalyseParam.get("bGammaEnergyValidDet");
|
||||
if (Objects.nonNull(bGammaEnergyValidDet)) {
|
||||
anlyseResultIn.setBGammaEnergyValidDet(bGammaEnergyValidDet);
|
||||
}
|
||||
Boolean bBetaEnergyValidDet = (Boolean) reAnalyseParam.get("bBetaEnergyValidDet");
|
||||
if (Objects.nonNull(bBetaEnergyValidDet)) {
|
||||
anlyseResultIn.setBBetaEnergyValidDet(bBetaEnergyValidDet);
|
||||
}
|
||||
}
|
||||
if (StringUtils.isNotBlank(anlyseResultIn.getDbName())) {
|
||||
Integer sampleId = spectrumAnalysisMapper.getSampleIdLikeFileName(anlyseResultIn.getSampleFileName());
|
||||
Integer analysisID = null;
|
||||
|
@ -3164,7 +3523,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
//处理数据 获取对应的channel/energy值
|
||||
getChannelAndEnergy(anlyseResultIn, betaList, gammaList);
|
||||
//分析文件内容
|
||||
analyzeSavePHDFile(anlyseResultIn, betaFittingPara, gammaFittingPara, betaFittingParaToUi, gammaFittingParaToUi);
|
||||
analyzeSavePHDFile(anlyseResultIn, BgCalPara, betaFittingPara, gammaFittingPara, betaFittingParaToUi, gammaFittingParaToUi);
|
||||
// 返回需要Save的数据
|
||||
return anlyseResultIn;
|
||||
}
|
||||
|
@ -3598,7 +3957,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
}
|
||||
}
|
||||
|
||||
public void analyzeSavePHDFile(BgDataAnlyseResultIn anlyseResultIn,List<String> betaFittingPara, List<String> gammaFittingPara,List<String> betaFittingParaToUi, List<String> gammaFittingParaToUi) {
|
||||
public void analyzeSavePHDFile(BgDataAnlyseResultIn anlyseResultIn, BgCalibratePara BgCalPara, List<String> betaFittingPara, List<String> gammaFittingPara,List<String> betaFittingParaToUi, List<String> gammaFittingParaToUi) {
|
||||
File sampleTmp = null;
|
||||
File gasTmp = null;
|
||||
File detTmp = null;
|
||||
|
@ -3613,10 +3972,10 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
//Gamma Energy Calibration页面 如果点击过fitting使BGammaEnergyValid并且有勾选
|
||||
//如果三个sampleData,GasData,DetData数据都是被勾选状态 则需要传递新的参数重新分析 否则不需要改变数据分析当前文件内容
|
||||
BgAnalyseResult bgAnalyseResult = null;
|
||||
if (anlyseResultIn.isCheckSample() && anlyseResultIn.isCheckGas() && anlyseResultIn.isCheckDet()) {
|
||||
if (Objects.isNull(BgCalPara)) {
|
||||
bgAnalyseResult = EnergySpectrumHandler.bgAnalyse(sampleTmp.getAbsolutePath(), gasTmp.getAbsolutePath(), detTmp.getAbsolutePath());
|
||||
} else {
|
||||
bgAnalyseResult = EnergySpectrumHandler.bgAnalyse(sampleTmp.getAbsolutePath(), gasTmp.getAbsolutePath(), detTmp.getAbsolutePath());
|
||||
bgAnalyseResult = EnergySpectrumHandler.bgReAnalyse(sampleTmp.getAbsolutePath(), gasTmp.getAbsolutePath(), detTmp.getAbsolutePath(), BgCalPara);
|
||||
}
|
||||
List<GardsXeResults> xeResultsSpectrumList = new LinkedList<>();
|
||||
GardsXeResults xe131m = new GardsXeResults();
|
||||
|
@ -3862,7 +4221,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
}
|
||||
}
|
||||
|
||||
public void analyzePHDFile(BgDataAnlyseResultIn anlyseResultIn,List<String> betaFittingPara, List<String> gammaFittingPara) {
|
||||
public void analyzePHDFile(BgDataAnlyseResultIn anlyseResultIn, BgCalibratePara BgCalPara, List<String> betaFittingPara, List<String> gammaFittingPara) {
|
||||
File sampleTmp = null;
|
||||
File gasTmp = null;
|
||||
File detTmp = null;
|
||||
|
@ -3875,11 +4234,12 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
//Gamma Energy Calibration页面 如果点击过fitting使BGammaEnergyValid并且有勾选
|
||||
//如果三个sampleData,GasData,DetData数据都是被勾选状态 则需要传递新的参数重新分析 否则不需要改变数据分析当前文件内容
|
||||
BgAnalyseResult bgAnalyseResult = null;
|
||||
if (anlyseResultIn.isCheckSample() && anlyseResultIn.isCheckGas() && anlyseResultIn.isCheckDet()) {
|
||||
if (Objects.isNull(BgCalPara)) {
|
||||
bgAnalyseResult = EnergySpectrumHandler.bgAnalyse(sampleTmp.getAbsolutePath(), gasTmp.getAbsolutePath(), detTmp.getAbsolutePath());
|
||||
} else {
|
||||
bgAnalyseResult = EnergySpectrumHandler.bgAnalyse(sampleTmp.getAbsolutePath(), gasTmp.getAbsolutePath(), detTmp.getAbsolutePath());
|
||||
bgAnalyseResult = EnergySpectrumHandler.bgReAnalyse(sampleTmp.getAbsolutePath(), gasTmp.getAbsolutePath(), detTmp.getAbsolutePath(), BgCalPara);
|
||||
}
|
||||
//处理XeData的数据
|
||||
List<GardsXeResults> xeResultsSpectrumList = new LinkedList<>();
|
||||
GardsXeResults xe131m = new GardsXeResults();
|
||||
xe131m.setNuclideName(XeNuclideName.XE_131m.getType());
|
||||
|
@ -3914,6 +4274,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
xe135.setNidFlag(anlyseResultIn.getXe135Flag());
|
||||
xeResultsSpectrumList.add(xe135);
|
||||
anlyseResultIn.setXeData(xeResultsSpectrumList);
|
||||
//处理GammaCalibration的数据
|
||||
List<GardsCalibrationSpectrum> gammaCalibrationSpectrumList = new LinkedList<>();
|
||||
if (anlyseResultIn.isBGammaEnergyValidSample()) {
|
||||
GardsCalibrationSpectrum gammaCalibrationS = new GardsCalibrationSpectrum();
|
||||
|
@ -3961,6 +4322,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
gammaCalibrationSpectrumList.add(gammaCalibrationD);
|
||||
}
|
||||
anlyseResultIn.setGammaCalibrationSpectrumList(gammaCalibrationSpectrumList);
|
||||
//处理BetaCalibration数据
|
||||
List<GardsCalibrationSpectrum> betaCalibrationSpectrumList = new LinkedList<>();
|
||||
if (anlyseResultIn.isBBetaEnergyValidSample()) {
|
||||
GardsCalibrationSpectrum betaCalibrationS = new GardsCalibrationSpectrum();
|
||||
|
@ -4008,6 +4370,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
betaCalibrationSpectrumList.add(betaCalibrationD);
|
||||
}
|
||||
anlyseResultIn.setBetaCalibrationSpectrumList(betaCalibrationSpectrumList);
|
||||
//存储roiChannel数据
|
||||
List<GardsROIChannelsSpectrum> roiChannelsSpectrumList = new LinkedList<>();
|
||||
for (int i=0; i<bgAnalyseResult.S_ROI_B_Boundary_start.size(); i++) {
|
||||
GardsROIChannelsSpectrum roiChannels = new GardsROIChannelsSpectrum();
|
||||
|
@ -4042,6 +4405,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
anlyseResultIn.setRoiChannelsSpectrumList(roiChannelsSpectrumList);
|
||||
bgAnalyseResult.LC.add(0, 0.0);
|
||||
bgAnalyseResult.MDC.add(0, 0.0);
|
||||
//存储roiResult的数据
|
||||
List<GardsROIResultsSpectrum> roiResultsSpectrumList = new LinkedList<>();
|
||||
for (int i=0; i<bgAnalyseResult.s_roi_cts.size(); i++) {
|
||||
GardsROIResultsSpectrum roiResults = new GardsROIResultsSpectrum();
|
||||
|
@ -4080,7 +4444,6 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
public List<GardsCalibrationPairs> getCalibrationPairs(BgDataAnlyseResultIn anlyseResultIn, Integer sampleId, Integer gasId, Integer detId, Integer idAnalysis) {
|
||||
List<GardsCalibrationPairs> calibrationPairsList = new LinkedList<>();
|
||||
for (int i=0; i< anlyseResultIn.getB_channel_sample().size(); i++){
|
||||
|
@ -4440,9 +4803,6 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
file = File.createTempFile("betaGamma", null);
|
||||
//将ftp文件的输入流复制给临时文件
|
||||
FileUtils.copyInputStreamToFile(inputStream, file);
|
||||
}
|
||||
//加载动态库
|
||||
//System.loadLibrary("ReadPHDFile");
|
||||
//读取文件内容
|
||||
EnergySpectrumStruct sourceData = EnergySpectrumHandler.getSourceData(file.getAbsolutePath());
|
||||
//获取文件中块名信息
|
||||
|
@ -4493,6 +4853,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
|
|||
if (readLines.contains(SampleFileHeader.HISTOGRAM.getMessage())){
|
||||
histogramService.saveHistogram(sourceData, sampleId, filePathName);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
|
|
Loading…
Reference in New Issue
Block a user