fix:gamma交互工具解决删除核素时重新识别核素会把之前删除的核素识别出来的问题
This commit is contained in:
parent
f97e68c00e
commit
926aa9fe10
jeecg-boot-base-core/src/main/java/org/jeecg/modules/entity/vo
jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/common/util
jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl
|
@ -2,8 +2,10 @@ package org.jeecg.modules.entity.vo;
|
|||
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class PeakInfo implements Serializable {
|
||||
|
||||
|
@ -61,11 +63,17 @@ public class PeakInfo implements Serializable {
|
|||
|
||||
public List<String> nuclides;
|
||||
|
||||
/**
|
||||
* 记录peak中被删除的核素(interactiveTool)
|
||||
*/
|
||||
public Map<Double, List<String>> deletedNuclideMap;
|
||||
|
||||
public PeakInfo(){
|
||||
nuclides = new LinkedList<>();
|
||||
comments = "";
|
||||
recoilBetaChan = "nan";
|
||||
recoilDeltaChan = "nan";
|
||||
deletedNuclideMap = new HashMap<>();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -40,7 +40,6 @@ import javax.xml.parsers.ParserConfigurationException;
|
|||
import java.io.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.ParseException;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
@ -1695,8 +1694,14 @@ public class GammaFileUtil extends AbstractLogOrReport {
|
|||
for(int ii=0; ii<vFit.size(); ii++) {
|
||||
if(vFit.get(ii) >= 0) {
|
||||
// 向峰信息表中添加识别到的核素
|
||||
PeakInfo peakInfo = phd.getVPeak().get(vFit.get(ii));
|
||||
Map<Double, List<String>> deletedNuclideMap = peakInfo.deletedNuclideMap;
|
||||
if(vFit.get(ii) != peakIdx) {
|
||||
phd.getVPeak().get(vFit.get(ii)).nuclides.add(iter.getKey());
|
||||
if(deletedNuclideMap.get(peakInfo.energy) != null
|
||||
&& deletedNuclideMap.get(peakInfo.energy).contains(iter.getKey())){
|
||||
continue;
|
||||
}
|
||||
peakInfo.nuclides.add(iter.getKey());
|
||||
peakIdx = vFit.get(ii);
|
||||
}
|
||||
// 添加匹配的γ射线的信息
|
||||
|
@ -4180,6 +4185,7 @@ public class GammaFileUtil extends AbstractLogOrReport {
|
|||
for (int i=0, j=0; i<vEnergy.size(); i++) {
|
||||
for(; j<vPeakIdx.size(); j++) {
|
||||
double energy = phd.getVPeak().get(vPeakIdx.get(j)).energy;
|
||||
List<PeakInfo> vPeak = phd.getVPeak();
|
||||
if(vEnergy.get(i) < energy - energyWidth) {
|
||||
break;
|
||||
} else if(vEnergy.get(i) <= energy + energyWidth) {
|
||||
|
|
|
@ -25,10 +25,8 @@ import org.jeecg.common.api.QueryRequest;
|
|||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.cache.LocalCache;
|
||||
import org.jeecg.common.constant.DateConstant;
|
||||
import org.jeecg.common.constant.RedisConstant;
|
||||
import org.jeecg.common.properties.ParameterProperties;
|
||||
import org.jeecg.common.properties.SpectrumPathProperties;
|
||||
import org.jeecg.common.properties.TaskProperties;
|
||||
import org.jeecg.common.system.util.JwtUtil;
|
||||
import org.jeecg.common.system.vo.LoginUser;
|
||||
import org.jeecg.common.util.*;
|
||||
|
@ -44,7 +42,6 @@ import org.jeecg.modules.base.enums.*;
|
|||
import org.jeecg.modules.entity.vo.*;
|
||||
import org.jeecg.modules.entity.*;
|
||||
import org.jeecg.modules.mapper.SpectrumAnalysisMapper;
|
||||
import org.jeecg.modules.native_jni.AnalysisProcess;
|
||||
import org.jeecg.modules.native_jni.CalValuesHandler;
|
||||
import org.jeecg.modules.native_jni.struct.CalValuesOut;
|
||||
import org.jeecg.modules.service.*;
|
||||
|
@ -1686,10 +1683,16 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
|
|||
// 用户当前的核素信息新增核素名称
|
||||
list_identify.add(nuclideName);
|
||||
// 根据要进行修改的列的数据下标 操作Vpeak数据
|
||||
List<String> peakNuclides = phd.getVPeak().get(curRow).nuclides;
|
||||
PeakInfo peakInfo = phd.getVPeak().get(curRow);
|
||||
List<String> peakNuclides = peakInfo.nuclides;
|
||||
if (peakNuclides.indexOf(nuclideName) < 0 ) {
|
||||
peakNuclides.add(nuclideName);
|
||||
}
|
||||
// todo 添加核素需要把deletedNuclideMap中对应的核素删除
|
||||
List<String> deletedNuclide = peakInfo.deletedNuclideMap.get(peakInfo.energy);
|
||||
if (null != deletedNuclide) {
|
||||
deletedNuclide.remove(nuclideName);
|
||||
}
|
||||
// 查询当前用户所关心的核素名称
|
||||
Map<String, NuclideLines> mapNucLines = (Map<String, NuclideLines>) redisUtil.get(userName+StringPool.DASH+phd.getHeader().getSystem_type());
|
||||
//用户当前缓存的核素信息
|
||||
|
@ -1761,6 +1764,12 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
|
|||
//如果峰的核素名称中包含当前删除的核素
|
||||
if (peakInfo.nuclides.contains(nuclideName)) {
|
||||
peakInfo.nuclides.remove(nuclideName);
|
||||
List<String> deletedNuclide = peakInfo.deletedNuclideMap.get(energy);
|
||||
if (null == deletedNuclide) {
|
||||
deletedNuclide = new ArrayList<>();
|
||||
}
|
||||
deletedNuclide.add(nuclideName);
|
||||
peakInfo.deletedNuclideMap.put(peakInfo.energy, deletedNuclide);
|
||||
}
|
||||
}
|
||||
//从核素相关map中移除核素信息
|
||||
|
@ -1779,8 +1788,15 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
|
|||
// 更新峰信息列表和表格
|
||||
// 根据核素名称获取对应的下标并从list_identify,phd.getVPeak()移除
|
||||
list_identify.remove(index);
|
||||
PeakInfo peakInfo = phd.getVPeak().get(curRow);
|
||||
int peakNuclIndex = phd.getVPeak().get(curRow).nuclides.indexOf(nuclideName);
|
||||
phd.getVPeak().get(curRow).nuclides.remove(peakNuclIndex);
|
||||
List<String> deletedNuclide = peakInfo.deletedNuclideMap.get(energy);
|
||||
if (null == deletedNuclide) {
|
||||
deletedNuclide = new ArrayList<>();
|
||||
}
|
||||
deletedNuclide.add(nuclideName);
|
||||
peakInfo.deletedNuclideMap.put(peakInfo.energy, deletedNuclide);
|
||||
List<PeakInfo> vPeak = gammaFileUtil.InitPeakTable(phd.getVPeak());
|
||||
// 处理核素MDA、MDC
|
||||
gammaFileUtil.ReCalcMdaMdc(phd, nuclideName, curRow + 1);
|
||||
|
|
Loading…
Reference in New Issue
Block a user