gamma分析部分生成报告内容中关于version描述区分颗粒物和气体

增加人工交互,自动处理启动时加载全核素信息方法
人工交互,自动处理启动时加载全核素信息方法调用接口类方法修改
This commit is contained in:
qiaoqinzheng 2024-01-11 09:00:48 +08:00
parent 3c4aae44e0
commit 8faa97d8f1
9 changed files with 96 additions and 65 deletions

View File

@ -21,6 +21,7 @@ import org.jeecg.modules.base.entity.configuration.GardsNuclLinesLib;
import org.jeecg.modules.base.enums.CalName; import org.jeecg.modules.base.enums.CalName;
import org.jeecg.modules.base.enums.CalType; import org.jeecg.modules.base.enums.CalType;
import org.jeecg.modules.base.enums.MiddleDataType; import org.jeecg.modules.base.enums.MiddleDataType;
import org.jeecg.modules.base.enums.SystemType;
import org.jeecg.modules.entity.vo.*; import org.jeecg.modules.entity.vo.*;
import org.jeecg.modules.native_jni.AnalysisProcess; import org.jeecg.modules.native_jni.AnalysisProcess;
import org.jeecg.modules.native_jni.CalValuesHandler; import org.jeecg.modules.native_jni.CalValuesHandler;
@ -59,6 +60,8 @@ public class GammaFileUtil extends AbstractLogOrReport {
private NameStandUtil nameStandUtil; private NameStandUtil nameStandUtil;
@Autowired @Autowired
private AnalysisProcess analysisProcess; private AnalysisProcess analysisProcess;
@Autowired
private RedisUtil redisUtil;
public boolean loadFile(String pathName, String fileName, PHDFile phd, String sysSource, Result result) { public boolean loadFile(String pathName, String fileName, PHDFile phd, String sysSource, Result result) {
phd.setFilepath(pathName); phd.setFilepath(pathName);
@ -2668,7 +2671,11 @@ public class GammaFileUtil extends AbstractLogOrReport {
strBuffer.append(" "+middleData.analyses_type+" RADIONUCLIDE REPORT"); strBuffer.append(" "+middleData.analyses_type+" RADIONUCLIDE REPORT");
//换行 //换行
strBuffer.append(System.lineSeparator()); strBuffer.append(System.lineSeparator());
if (middleData.sample_Type.equals(SystemType.PARTICULATE.getType())) {
strBuffer.append(" (Particulates Version) ");
} else if (middleData.sample_Type.equals(SystemType.GAMMA.getType())) {
strBuffer.append(" (Noble Gas Version) "); strBuffer.append(" (Noble Gas Version) ");
}
//换行 //换行
strBuffer.append(System.lineSeparator()); strBuffer.append(System.lineSeparator());
strBuffer.append(" Creation Date "+DateUtils.formatDate(new Date(), "yyyy/MM/dd-HH:mm:ss")); strBuffer.append(" Creation Date "+DateUtils.formatDate(new Date(), "yyyy/MM/dd-HH:mm:ss"));
@ -3198,7 +3205,9 @@ public class GammaFileUtil extends AbstractLogOrReport {
fileAnlyse.setEfficiencyParam(fileAnlyse.getUsedEffiPara().getP()); fileAnlyse.setEfficiencyParam(fileAnlyse.getUsedEffiPara().getP());
fileAnlyse.setEfficiencyEnergy(fileAnlyse.getUsedEffiKD().getG_energy()); fileAnlyse.setEfficiencyEnergy(fileAnlyse.getUsedEffiKD().getG_energy());
fileAnlyse.setEfficiencyCurRow(0); fileAnlyse.setEfficiencyCurRow(0);
getNuclideMDCValue(fileAnlyse, fileAnlyse.getMdcInfoMap(), nucline); //缓存中获取计算mdc使用的核素信息
Map<String, NuclideLines> nuclideLinesMDCMap = (Map<String, NuclideLines>) redisUtil.get("AllNuclideMap");
getNuclideMDCValue(fileAnlyse, fileAnlyse.getMdcInfoMap(), nuclideLinesMDCMap);
anylseEnd = DateUtils.formatDate(new Date(), "yyyy/MM/dd HH:mm:ss"); anylseEnd = DateUtils.formatDate(new Date(), "yyyy/MM/dd HH:mm:ss");
middleData.analyses_analysisBegin = anylseBegin; middleData.analyses_analysisBegin = anylseBegin;
middleData.analyses_analysisEnd = anylseEnd; middleData.analyses_analysisEnd = anylseEnd;

View File

@ -2,8 +2,11 @@ package org.jeecg.modules.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.base.dto.GardsNuclLibDto; import org.jeecg.modules.base.dto.GardsNuclLibDto;
import org.jeecg.modules.base.entity.configuration.GardsNuclLib; import org.jeecg.modules.base.entity.configuration.GardsNuclLib;
import org.jeecg.modules.entity.vo.HalfData;
import org.jeecg.modules.entity.vo.NuclideLine;
import java.util.List; import java.util.List;
@ -14,4 +17,11 @@ public interface GardsNuclLibMapper extends BaseMapper<GardsNuclLib> {
List<String> allName(); List<String> allName();
List<GardsNuclLib> getNucliLib(); List<GardsNuclLib> getNucliLib();
List<String> findNuclidesAnalysis();
List<NuclideLine> getNuclideLines(@Param("name") String name);
HalfData getOneHalf(@Param("name") String name);
} }

View File

@ -26,4 +26,27 @@
select a.NAME, a.num_lines, a.halflife, a.halflife_err from CONFIGURATION.GARDS_NUCL_LIB a select a.NAME, a.num_lines, a.halflife, a.halflife_err from CONFIGURATION.GARDS_NUCL_LIB a
</select> </select>
<select id="findNuclidesAnalysis" resultType="java.lang.String">
select NAME from CONFIGURATION.GARDS_NUCL_LIB
</select>
<select id="getNuclideLines" resultType="org.jeecg.modules.entity.vo.NuclideLine">
SELECT FULLNAME as fullName,
ENERGY as energy,
ENERGY_UNCERT as energyUncert,
YIELD as yield,
YIELD_UNCERT as yieldUncert,
KEY_FLAG as keyFlag
from CONFIGURATION.GARDS_NUCL_LINES_LIB WHERE NAME = #{name} ORDER BY ENERGY
</select>
<select id="getOneHalf" resultType="org.jeecg.modules.entity.vo.HalfData">
SELECT
NAME as name,
HALFLIFE as half
FROM
CONFIGURATION.GARDS_NUCL_LIB
WHERE NAME = #{name}
</select>
</mapper> </mapper>

View File

@ -13,4 +13,7 @@ public interface IGardsNuclLibService extends IService<GardsNuclLib> {
List<String> allName(); List<String> allName();
void getNucliLib(); void getNucliLib();
void getNuclideMap();
} }

View File

@ -9,6 +9,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.jeecg.common.util.RedisUtil; import org.jeecg.common.util.RedisUtil;
import org.jeecg.modules.base.dto.GardsNuclLibDto; import org.jeecg.modules.base.dto.GardsNuclLibDto;
import org.jeecg.modules.base.entity.configuration.GardsNuclLib; import org.jeecg.modules.base.entity.configuration.GardsNuclLib;
import org.jeecg.modules.entity.vo.HalfData;
import org.jeecg.modules.entity.vo.NuclideLine;
import org.jeecg.modules.entity.vo.NuclideLines;
import org.jeecg.modules.mapper.GardsNuclLibMapper; import org.jeecg.modules.mapper.GardsNuclLibMapper;
import org.jeecg.modules.service.IGardsNuclLibService; import org.jeecg.modules.service.IGardsNuclLibService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -16,8 +19,10 @@ import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -52,4 +57,42 @@ public class GardsNuclLibServiceImpl extends ServiceImpl<GardsNuclLibMapper, Gar
Map<String, GardsNuclLib> nuclLibMap = gardsNuclLibs.stream().collect(Collectors.toMap(GardsNuclLib::getName, Function.identity())); Map<String, GardsNuclLib> nuclLibMap = gardsNuclLibs.stream().collect(Collectors.toMap(GardsNuclLib::getName, Function.identity()));
redisUtil.set("nuclLibs", nuclLibMap); redisUtil.set("nuclLibs", nuclLibMap);
} }
@Override
public void getNuclideMap() {
List<String> nuclideLibs = this.baseMapper.findNuclidesAnalysis();
Map<String, NuclideLines> nuclideMap = GetNuclideLines(nuclideLibs);
redisUtil.set("AllNuclideMap", nuclideMap);
}
public Map<String, NuclideLines> GetNuclideLines(List<String> nuclideList) {
Map<String, NuclideLines> mapLines = new HashMap<>();
if (nuclideList.size() < 1) {
return mapLines;
}
for (String name : nuclideList) {
NuclideLines nlines = new NuclideLines();
List<NuclideLine> nuclideLineList = this.baseMapper.getNuclideLines(name);
for (int j = 0; j < nuclideLineList.size(); j++) {
nlines.getFullNames().add(nuclideLineList.get(j).getFullName());
nlines.getVenergy().add(nuclideLineList.get(j).getEnergy());
nlines.getVuncertE().add(nuclideLineList.get(j).getEnergyUncert());
nlines.getVyield().add(nuclideLineList.get(j).getYield() / 100);
nlines.getVuncertY().add(nuclideLineList.get(j).getYieldUncert());
if (Objects.nonNull(nuclideLineList.get(j).getKeyFlag()) && nuclideLineList.get(j).getKeyFlag().intValue() > 0) {
nlines.key_flag = j;
nlines.maxYeildIdx = j;
}
}
mapLines.put(name, nlines);
}
for (String name:nuclideList) {
HalfData half = this.baseMapper.getOneHalf(name);
NuclideLines nuclideLines = mapLines.get(half.getName());
nuclideLines.setHalflife(half.getHalf() == null ? 0 : half.getHalf() * 86400);// 将天转换成秒
mapLines.put(half.getName(), nuclideLines);
}
return mapLines;
}
} }

View File

@ -9,6 +9,4 @@ public interface IGardsNuclIdedSpectrumService extends IService<GardsNuclIded> {
int saveNuclIdedGamma(GStoreMiddleProcessData middleData, Integer sampleId, String idAnalysis); int saveNuclIdedGamma(GStoreMiddleProcessData middleData, Integer sampleId, String idAnalysis);
void getNuclideMap();
} }

View File

@ -2,40 +2,20 @@ package org.jeecg.modules.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.common.constant.RedisConstant;
import org.jeecg.common.util.RedisUtil;
import org.jeecg.modules.base.entity.rnman.GardsNuclIded; import org.jeecg.modules.base.entity.rnman.GardsNuclIded;
import org.jeecg.modules.base.enums.SystemType;
import org.jeecg.modules.entity.vo.GStoreMiddleProcessData; import org.jeecg.modules.entity.vo.GStoreMiddleProcessData;
import org.jeecg.modules.entity.vo.HalfData;
import org.jeecg.modules.entity.vo.NuclideLine;
import org.jeecg.modules.entity.vo.NuclideLines;
import org.jeecg.modules.mapper.GardsNuclIdedSpectrumMapper; import org.jeecg.modules.mapper.GardsNuclIdedSpectrumMapper;
import org.jeecg.modules.mapper.SpectrumAnalysisMapper;
import org.jeecg.modules.mapper.SysDefaultNuclideSpectrumMapper;
import org.jeecg.modules.service.IGardsNuclIdedSpectrumService; import org.jeecg.modules.service.IGardsNuclIdedSpectrumService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
@Service("gardsNuclIdedSpectrumService") @Service("gardsNuclIdedSpectrumService")
@DS("ora") @DS("ora")
public class GardsNuclIdedSpectrumServiceImpl extends ServiceImpl<GardsNuclIdedSpectrumMapper, GardsNuclIded> implements IGardsNuclIdedSpectrumService { public class GardsNuclIdedSpectrumServiceImpl extends ServiceImpl<GardsNuclIdedSpectrumMapper, GardsNuclIded> implements IGardsNuclIdedSpectrumService {
@Autowired
private SpectrumAnalysisMapper spectrumAnalysisMapper;
@Autowired
private RedisUtil redisUtil;
@Override @Override
@Transactional @Transactional
public int saveNuclIdedGamma(GStoreMiddleProcessData middleData, Integer sampleId, String idAnalysis) { public int saveNuclIdedGamma(GStoreMiddleProcessData middleData, Integer sampleId, String idAnalysis) {
@ -72,42 +52,4 @@ public class GardsNuclIdedSpectrumServiceImpl extends ServiceImpl<GardsNuclIdedS
return nuclIdedList.size(); return nuclIdedList.size();
} }
@Override
public void getNuclideMap() {
List<String> nuclideLibs = spectrumAnalysisMapper.findNuclidesAnalysis();
Map<String, NuclideLines> nuclideMap = GetNuclideLines(nuclideLibs);
redisUtil.set("AllNuclideMap", nuclideMap);
}
public Map<String, NuclideLines> GetNuclideLines(List<String> nuclideList) {
Map<String, NuclideLines> mapLines = new HashMap<>();
if (nuclideList.size() < 1) {
return mapLines;
}
for (String name : nuclideList) {
NuclideLines nlines = new NuclideLines();
List<NuclideLine> nuclideLineList = spectrumAnalysisMapper.getNuclideLines(name);
for (int j = 0; j < nuclideLineList.size(); j++) {
nlines.getFullNames().add(nuclideLineList.get(j).getFullName());
nlines.getVenergy().add(nuclideLineList.get(j).getEnergy());
nlines.getVuncertE().add(nuclideLineList.get(j).getEnergyUncert());
nlines.getVyield().add(nuclideLineList.get(j).getYield() / 100);
nlines.getVuncertY().add(nuclideLineList.get(j).getYieldUncert());
if (Objects.nonNull(nuclideLineList.get(j).getKeyFlag()) && nuclideLineList.get(j).getKeyFlag().intValue() > 0) {
nlines.key_flag = j;
nlines.maxYeildIdx = j;
}
}
mapLines.put(name, nlines);
}
for (String name:nuclideList) {
HalfData half = spectrumAnalysisMapper.getOneHalf(name);
NuclideLines nuclideLines = mapLines.get(half.getName());
nuclideLines.setHalflife(half.getHalf() == null ? 0 : half.getHalf() * 86400);// 将天转换成秒
mapLines.put(half.getName(), nuclideLines);
}
return mapLines;
}
} }

View File

@ -9,6 +9,7 @@ import org.jeecg.common.properties.SpectrumPathProperties;
import org.jeecg.common.properties.TaskProperties; import org.jeecg.common.properties.TaskProperties;
import org.jeecg.common.util.oConvertUtils; import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.*; import org.jeecg.modules.*;
import org.jeecg.modules.service.IGardsNuclLibService;
import org.jeecg.modules.email.EmailReceivePolicy; import org.jeecg.modules.email.EmailReceivePolicy;
import org.springframework.boot.CommandLineRunner; import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
@ -44,6 +45,7 @@ public class JeecgAutoProcessApplication extends SpringBootServletInitializer im
private final FileSourceHandleManager fileSourceHandleManager; private final FileSourceHandleManager fileSourceHandleManager;
private final DelFileManager delFileManager; private final DelFileManager delFileManager;
private final StatReportManager statReportManager; private final StatReportManager statReportManager;
private final IGardsNuclLibService nuclLibService;
@Override @Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
@ -69,6 +71,7 @@ public class JeecgAutoProcessApplication extends SpringBootServletInitializer im
//调用dll //调用dll
System.loadLibrary("ReadPHDFile"); System.loadLibrary("ReadPHDFile");
System.loadLibrary("GammaAnaly"); System.loadLibrary("GammaAnaly");
nuclLibService.getNuclideMap();
//根据配置文件配置邮件获取策略定义时间条件默认EmailReceivePolicy.HISTORY_ORDER_RECEIVE.getPolicy() //根据配置文件配置邮件获取策略定义时间条件默认EmailReceivePolicy.HISTORY_ORDER_RECEIVE.getPolicy()
Date systemStartupTime = null; Date systemStartupTime = null;
if(EmailReceivePolicy.CURR_DATE_ORDER_RECEIVE.getPolicy().equals(taskProperties.getReceivePolicy())){ if(EmailReceivePolicy.CURR_DATE_ORDER_RECEIVE.getPolicy().equals(taskProperties.getReceivePolicy())){

View File

@ -5,10 +5,10 @@ import org.jeecg.common.cache.BetaCache;
import org.jeecg.common.cache.LocalCache; import org.jeecg.common.cache.LocalCache;
import org.jeecg.common.cache.SelfCache; import org.jeecg.common.cache.SelfCache;
import org.jeecg.common.util.oConvertUtils; import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.service.IGardsNuclLibService;
import org.jeecg.modules.service.IDataService; import org.jeecg.modules.service.IDataService;
import org.jeecg.modules.service.IGammaService; import org.jeecg.modules.service.IGammaService;
import org.jeecg.modules.service.IGardsNuclCoincidenceSumSpectrumService; import org.jeecg.modules.service.IGardsNuclCoincidenceSumSpectrumService;
import org.jeecg.modules.service.IGardsNuclIdedSpectrumService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner; import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
@ -39,7 +39,7 @@ public class JeecgSpectrumAnalysisApplication extends SpringBootServletInitializ
@Autowired @Autowired
private IGardsNuclCoincidenceSumSpectrumService nuclCoincidenceSumSpectrumService; private IGardsNuclCoincidenceSumSpectrumService nuclCoincidenceSumSpectrumService;
@Autowired @Autowired
private IGardsNuclIdedSpectrumService nuclIdedSpectrumService; private IGardsNuclLibService nuclLibService;
@Autowired @Autowired
private IDataService dataService; private IDataService dataService;
@ -76,7 +76,7 @@ public class JeecgSpectrumAnalysisApplication extends SpringBootServletInitializ
localCache.initCache(); localCache.initCache();
selfCache.initCache(); selfCache.initCache();
gammaService.readMDCParameter(); gammaService.readMDCParameter();
nuclIdedSpectrumService.getNuclideMap(); nuclLibService.getNuclideMap();
nuclCoincidenceSumSpectrumService.getNuclCoincidenceMap(); nuclCoincidenceSumSpectrumService.getNuclCoincidenceMap();
dataService.viewStations(); dataService.viewStations();
} }