diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/entity/vo/PeakInfo.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/entity/vo/PeakInfo.java index f9844239..cb2642c3 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/entity/vo/PeakInfo.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/entity/vo/PeakInfo.java @@ -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 nuclides; + /** + * 记录peak中被删除的核素(interactiveTool) + */ + public Map> deletedNuclideMap; + public PeakInfo(){ nuclides = new LinkedList<>(); comments = ""; recoilBetaChan = "nan"; recoilDeltaChan = "nan"; + deletedNuclideMap = new HashMap<>(); } } diff --git a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/common/util/GammaFileUtil.java b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/common/util/GammaFileUtil.java index d6507cfd..62871895 100644 --- a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/common/util/GammaFileUtil.java +++ b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/common/util/GammaFileUtil.java @@ -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= 0) { // 向峰信息表中添加识别到的核素 + PeakInfo peakInfo = phd.getVPeak().get(vFit.get(ii)); + Map> 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 vPeak = phd.getVPeak(); if(vEnergy.get(i) < energy - energyWidth) { break; } else if(vEnergy.get(i) <= energy + energyWidth) { diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GammaServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GammaServiceImpl.java index 3cc25ab6..e2dc8c44 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GammaServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GammaServiceImpl.java @@ -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 peakNuclides = phd.getVPeak().get(curRow).nuclides; + PeakInfo peakInfo = phd.getVPeak().get(curRow); + List peakNuclides = peakInfo.nuclides; if (peakNuclides.indexOf(nuclideName) < 0 ) { peakNuclides.add(nuclideName); } + // todo 添加核素需要把deletedNuclideMap中对应的核素删除 + List deletedNuclide = peakInfo.deletedNuclideMap.get(peakInfo.energy); + if (null != deletedNuclide) { + deletedNuclide.remove(nuclideName); + } // 查询当前用户所关心的核素名称 Map mapNucLines = (Map) 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 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 deletedNuclide = peakInfo.deletedNuclideMap.get(energy); + if (null == deletedNuclide) { + deletedNuclide = new ArrayList<>(); + } + deletedNuclide.add(nuclideName); + peakInfo.deletedNuclideMap.put(peakInfo.energy, deletedNuclide); List vPeak = gammaFileUtil.InitPeakTable(phd.getVPeak()); // 处理核素MDA、MDC gammaFileUtil.ReCalcMdaMdc(phd, nuclideName, curRow + 1);