beta增加页面折线图缓存信息内容与原格式不符合问题修改

gamma获取核素缓存修改,gamma操作核素后更新缓存
gamma功能增加峰数据时部分字段空指针导致算法崩溃问题修改
This commit is contained in:
qiaoqinzheng 2023-11-10 17:19:00 +08:00
parent c4ba5341c3
commit a732b24c27
3 changed files with 35 additions and 18 deletions

View File

@ -3040,7 +3040,7 @@ public class GammaFileUtil extends AbstractLogOrReport {
qsScacPath = qsScacPath.replace(StringPool.BACK_SLASH, StringPool.SLASH);
String savePath = StringPool.SLASH + spectrumPathProperties.getSaveFilePath();
String savePath = spectrumPathProperties.getSaveFilePath();
String rootPath = spectrumPathProperties.getRootPath();
String qsSaveBaseLine = savePath + StringPool.SLASH + qsBaseLinePath;
@ -3867,6 +3867,12 @@ public class GammaFileUtil extends AbstractLogOrReport {
List<PeakInfo> result = new LinkedList<>();
for(int i=0; i<vPeak.size(); i++) {
PeakInfo peakInfo = new PeakInfo();
if (StringUtils.isBlank(vPeak.get(i).recoilDeltaChan)) {
vPeak.get(i).recoilDeltaChan = vPeak.get(i-1).recoilDeltaChan;
}
if (StringUtils.isBlank(vPeak.get(i).recoilBetaChan)) {
vPeak.get(i).recoilBetaChan = vPeak.get(i-1).recoilBetaChan;
}
peakInfo.index = i+1;
peakInfo.left = vPeak.get(i).left;
peakInfo.right = vPeak.get(i).right;

View File

@ -232,7 +232,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
result.error500("Please select the parse file first");
return result;
}
Map<String, NuclideLines> nuclideLinesMap = (Map<String, NuclideLines>) redisUtil.get(userName+"-"+phd.getHeader().getSystem_type());//GetNuclideLines(nuclides);
Map<String, NuclideLines> nuclideLinesMap = (Map<String, NuclideLines>) redisUtil.get(userName+"-"+phd.getHeader().getSystem_type());
// 解析获取临时文件信息
File tmpFile = gammaFileUtil.analyzeFile(ftpUtil.getFtpRootPath() + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName, fileName);
ObjectMapper mapper = new ObjectMapper();
@ -572,9 +572,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
int peakNum = 0;
if (Objects.nonNull(analysis)) {
phd.setId_analysis(analysis.getIdAnalysis().toString());
phd.setBaseline_path(StringPool.SLASH + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + analysis.getBaselinePath());
phd.setLc_path(StringPool.SLASH + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + analysis.getLcPath());
phd.setScac_path(StringPool.SLASH + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + analysis.getScacPath());
phd.setBaseline_path(spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + analysis.getBaselinePath());
phd.setLc_path(spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + analysis.getLcPath());
phd.setScac_path(spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + analysis.getScacPath());
peakNum = analysis.getNumberOfPeaks();
phd.setTotalCmt(analysis.getComments());
phd.getBaseCtrls().setRg_low(analysis.getSearchStartChannel());
@ -1060,7 +1060,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
"2. You didn't change any setting or calibration.";
result.error500(warning);
} else if (flag == -1) {
Map<String, NuclideLines> nuclideLinesMap = (Map<String, NuclideLines>) redisUtil.get(userName+"-"+phd.getHeader().getSystem_type());//GetNuclideLines(nuclides);
Map<String, NuclideLines> nuclideLinesMap = (Map<String, NuclideLines>) redisUtil.get(userName+"-"+phd.getHeader().getSystem_type());
gammaFileUtil.NuclidesIdent(phd, nuclideLinesMap);
gammaFileUtil.RunQC(phd);
String warning = "Finish three tasks:\n" +
@ -1069,7 +1069,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
"\t3.Test QC again.";
result.error500(warning);
} else {
Map<String, NuclideLines> nuclideLinesMap = (Map<String, NuclideLines>) redisUtil.get(userName+"-"+phd.getHeader().getSystem_type());//GetNuclideLines(nuclides);
Map<String, NuclideLines> nuclideLinesMap = (Map<String, NuclideLines>) redisUtil.get(userName+"-"+phd.getHeader().getSystem_type());
gammaFileUtil.AnalyseSpectrum(phd, nuclideLinesMap);
// 重新分析各峰值对应的核素信息
gammaFileUtil.NuclidesIdent(phd, nuclideLinesMap);
@ -1416,6 +1416,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
HashMap<String, Object> map = new HashMap<>();
// 根据boolean 决定是否保留本次数据 如果保留则不需要操作vPeak 并重新拟合线
if (accept) {
Map<String, NuclideLines> nuclideLinesMap = (Map<String, NuclideLines>) redisUtil.get(userName+"-"+phd.getHeader().getSystem_type());
if (flag.equalsIgnoreCase("fit")) {// 如果传递的flag标识 fit则进行修改峰值等数据
for (int j = 0; j < newPeak.size(); j++) {
PeakInfo peakInfo = newPeak.get(j);
@ -1488,9 +1489,16 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
List<PeakInfo> value = JSON.parseArray(JSON.toJSONString(entry.getValue()), PeakInfo.class);
phd.setVPeak(value);
}
if (entry.getKey().equalsIgnoreCase("vBase")) {
List<Double> vBase = JSON.parseArray(JSON.toJSONString(entry.getValue()), Double.class);
phd.setVBase(vBase);
phd.getBaseCtrls().setBaseline(vBase);
}
}
// 重新计算peak的改变
gammaFileUtil.PeaksChanged(phd);
//重新计算核素活度浓度
gammaFileUtil.NuclidesIdent(phd, nuclideLinesMap);
List<PeakInfo> vPeak = gammaFileUtil.InitPeakTable(phd.getVPeak());
map.put("table", vPeak);
@ -1578,6 +1586,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
phd.getVPeak().remove(curRow);
//重新计算核素活度浓度
gammaFileUtil.NuclidesIdent(phd, nuclideMap);
redisUtil.set(userName+"-"+phd.getHeader().getSystem_type(), nuclideMap);
//重新分析数据
gammaFileUtil.PeaksChanged(phd);
for (int i = 0; i < phd.getVPeak().size(); i++) {
@ -1706,13 +1715,6 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
// 根据要进行修改的列的数据下标 操作Vpeak数据
phd.getVPeak().get(curRow).nuclides.add(nuclideName);
// 查询当前用户所关心的核素名称
// // 查询当前用户关联的核素信息
// List<String> userLib = new LinkedList<>();
// // 从postgreSql中获取当前用户关注的核素信息 如果当前用户没有 则返回管理员的
// userLib = defaultNuclideSpectrumService.findNuclidesByUserName(userName, phd.getHeader().getSystem_type().toUpperCase());
// if (CollectionUtils.isEmpty(userLib)) {
// userLib = defaultNuclideSpectrumService.findNuclidesByUserName("admin", phd.getHeader().getSystem_type().toUpperCase());
// }
Map<String, NuclideLines> mapNucLines = (Map<String, NuclideLines>) redisUtil.get(userName+"-"+phd.getHeader().getSystem_type());//GetNuclideLines(userLib);
// 查询出核素信息
NuclideLines it_line = mapNucLines.get(nuclideName);
@ -1781,6 +1783,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
nuclideMap.remove(nuclideName);
//重新计算核素活度浓度
gammaFileUtil.NuclidesIdent(phd, nuclideMap);
redisUtil.set(userName+"-"+phd.getHeader().getSystem_type(), nuclideMap);
//从核素的选中列表中移除对应下标的核素信息
list_identify.remove(index);
//重新初始化峰列表信息
@ -2391,8 +2394,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
data.setPeakEffi(null);
}
} else {
effi = Math.exp(coeffData.Effciency1 * ener + coeffData.Effciency2 + coeffData.Effciency3 / ener + coeffData.Effciency4 / Math.pow(ener, 2) + coeffData.Effciency5 / Math.pow(ener, 3) + coeffData.Effciency6 / Math.pow(ener, 4));
totE = Math.exp(coeffData.totalEf1 * ener + coeffData.totalEf2 + coeffData.totalEf3 / ener + coeffData.totalEf4 / Math.pow(ener, 2) + coeffData.totalEf5 / Math.pow(ener, 3) + coeffData.totalEf6 / Math.pow(ener, 4));
effi = Math.exp( coeffData.Effciency1 * ener + coeffData.Effciency2 + coeffData.Effciency3 / ener + coeffData.Effciency4 / Math.pow(ener, 2) + coeffData.Effciency5 / Math.pow(ener, 3) + coeffData.Effciency6 / Math.pow(ener, 4) );
totE = Math.exp( coeffData.totalEf1 * ener + coeffData.totalEf2 + coeffData.totalEf3 / ener + coeffData.totalEf4 / Math.pow(ener, 2) + coeffData.totalEf5 / Math.pow(ener, 3) + coeffData.totalEf6 / Math.pow(ener, 4) );
data.setTotalEffi(Double.parseDouble(NumberFormatUtil.numberFormat(String.valueOf(totE))));
data.setPeakEffi(Double.parseDouble(NumberFormatUtil.numberFormat(String.valueOf(effi))));
}

View File

@ -2538,7 +2538,11 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements
List<Double> energys = EnergySpectrumHandler.GetFileFittingData(channels,fittingPara);
List<SeriseData> newLineSeries = new LinkedList<>();
List<List<Double>> energyList = new LinkedList<>();
energyList.add(energys);
for (Double calEnergy:energys) {
List<Double> newEnergy = new LinkedList<>();
newEnergy.add(calEnergy);
energyList.add(newEnergy);
}
for (int i=0; i<channels.size(); ++i) {
SeriseData seriseData = new SeriseData();
seriseData.setX(channels.get(i));
@ -2622,7 +2626,11 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements
List<Double> energys = EnergySpectrumHandler.GetFileFittingData(channels,fittingPara);
List<SeriseData> newLineSeries = new LinkedList<>();
List<List<Double>> energyList = new LinkedList<>();
energyList.add(energys);
for (Double calEnergy:energys) {
List<Double> newEnergy = new LinkedList<>();
newEnergy.add(calEnergy);
energyList.add(newEnergy);
}
for (int i=0; i<channels.size(); ++i) {
SeriseData seriseData = new SeriseData();
seriseData.setX(channels.get(i));