人工交互,自动处理启动时查询全核素信息方法修改
This commit is contained in:
parent
63576edde8
commit
16f59f0273
|
@ -18,10 +18,8 @@ public interface GardsNuclLibMapper extends BaseMapper<GardsNuclLib> {
|
||||||
|
|
||||||
List<GardsNuclLib> getNucliLib();
|
List<GardsNuclLib> getNucliLib();
|
||||||
|
|
||||||
List<String> findNuclidesAnalysis();
|
List<HalfData> findNuclidesAnalysis();
|
||||||
|
|
||||||
List<NuclideLine> getNuclideLines(@Param("name") String name);
|
List<NuclideLine> getNuclideLines();
|
||||||
|
|
||||||
HalfData getOneHalf(@Param("name") String name);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,27 +26,19 @@
|
||||||
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 id="findNuclidesAnalysis" resultType="org.jeecg.modules.entity.vo.HalfData">
|
||||||
select NAME from CONFIGURATION.GARDS_NUCL_LIB
|
select NAME as name, HALFLIFE as half from CONFIGURATION.GARDS_NUCL_LIB
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getNuclideLines" resultType="org.jeecg.modules.entity.vo.NuclideLine">
|
<select id="getNuclideLines" resultType="org.jeecg.modules.entity.vo.NuclideLine">
|
||||||
SELECT FULLNAME as fullName,
|
SELECT NAME as name,
|
||||||
|
FULLNAME as fullName,
|
||||||
ENERGY as energy,
|
ENERGY as energy,
|
||||||
ENERGY_UNCERT as energyUncert,
|
ENERGY_UNCERT as energyUncert,
|
||||||
YIELD as yield,
|
YIELD as yield,
|
||||||
YIELD_UNCERT as yieldUncert,
|
YIELD_UNCERT as yieldUncert,
|
||||||
KEY_FLAG as keyFlag
|
KEY_FLAG as keyFlag
|
||||||
from CONFIGURATION.GARDS_NUCL_LINES_LIB WHERE NAME = #{name} ORDER BY ENERGY
|
from CONFIGURATION.GARDS_NUCL_LINES_LIB ORDER BY NAME,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>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
|
@ -60,38 +60,41 @@ public class GardsNuclLibServiceImpl extends ServiceImpl<GardsNuclLibMapper, Gar
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void getNuclideMap() {
|
public void getNuclideMap() {
|
||||||
List<String> nuclideLibs = this.baseMapper.findNuclidesAnalysis();
|
Map<String, NuclideLines> nuclideMap = GetNuclideLines();
|
||||||
Map<String, NuclideLines> nuclideMap = GetNuclideLines(nuclideLibs);
|
|
||||||
redisUtil.set("AllNuclideMap", nuclideMap);
|
redisUtil.set("AllNuclideMap", nuclideMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, NuclideLines> GetNuclideLines(List<String> nuclideList) {
|
public Map<String, NuclideLines> GetNuclideLines() {
|
||||||
|
List<HalfData> nuclideList = this.baseMapper.findNuclidesAnalysis();
|
||||||
Map<String, NuclideLines> mapLines = new HashMap<>();
|
Map<String, NuclideLines> mapLines = new HashMap<>();
|
||||||
if (nuclideList.size() < 1) {
|
if (nuclideList.size() < 1) {
|
||||||
return mapLines;
|
return mapLines;
|
||||||
}
|
}
|
||||||
for (String name : nuclideList) {
|
List<NuclideLine> nuclideLineList = this.baseMapper.getNuclideLines();
|
||||||
NuclideLines nlines = new NuclideLines();
|
for (HalfData half : nuclideList) {
|
||||||
List<NuclideLine> nuclideLineList = this.baseMapper.getNuclideLines(name);
|
String name = half.getName();
|
||||||
for (int j = 0; j < nuclideLineList.size(); j++) {
|
NuclideLines nlines = null;
|
||||||
nlines.getFullNames().add(nuclideLineList.get(j).getFullName());
|
//判断map里是否存在当前名称的核素信息
|
||||||
nlines.getVenergy().add(nuclideLineList.get(j).getEnergy());
|
if (Objects.isNull(mapLines.get(name))) {
|
||||||
nlines.getVuncertE().add(nuclideLineList.get(j).getEnergyUncert());
|
nlines = new NuclideLines();
|
||||||
nlines.getVyield().add(nuclideLineList.get(j).getYield() / 100);
|
nlines.setHalflife(half.getHalf() == null ? 0 : half.getHalf() * 86400);// 将天转换成秒
|
||||||
nlines.getVuncertY().add(nuclideLineList.get(j).getYieldUncert());
|
} else {
|
||||||
if (Objects.nonNull(nuclideLineList.get(j).getKeyFlag()) && nuclideLineList.get(j).getKeyFlag().intValue() > 0) {
|
nlines = mapLines.get(name);
|
||||||
|
}
|
||||||
|
List<NuclideLine> filterList = nuclideLineList.stream().filter(item -> item.getName().equals(name)).collect(Collectors.toList());
|
||||||
|
for (int j = 0; j < filterList.size(); j++) {
|
||||||
|
nlines.getFullNames().add(filterList.get(j).getFullName());
|
||||||
|
nlines.getVenergy().add(filterList.get(j).getEnergy());
|
||||||
|
nlines.getVuncertE().add(filterList.get(j).getEnergyUncert());
|
||||||
|
nlines.getVyield().add(filterList.get(j).getYield() / 100);
|
||||||
|
nlines.getVuncertY().add(filterList.get(j).getYieldUncert());
|
||||||
|
if (Objects.nonNull(filterList.get(j).getKeyFlag()) && filterList.get(j).getKeyFlag().intValue() > 0) {
|
||||||
nlines.key_flag = j;
|
nlines.key_flag = j;
|
||||||
nlines.maxYeildIdx = j;
|
nlines.maxYeildIdx = j;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mapLines.put(name, nlines);
|
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;
|
return mapLines;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user