From cf0325a63bf908e4d308075082b827437b1fdec2 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 10 Jan 2024 14:10:46 +0800 Subject: [PATCH 01/47] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=EF=BC=8C=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E6=97=B6=E7=BC=93=E5=AD=98=E5=85=A8=E6=A0=B8=E7=B4=A0=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E7=94=A8=E4=BA=8E=E8=AE=A1=E7=AE=97mdc=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=20=E5=85=AC=E7=94=A8=E5=8C=85=E4=B8=8B=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=A0=B8=E7=B4=A0service=E5=B1=82=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E5=85=AC=E7=94=A8=E8=B0=83=E7=94=A8=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=85=A8=E6=A0=B8=E7=B4=A0sql=EF=BC=8C?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=A0=B8=E7=B4=A0=E5=85=B3=E8=81=94=E5=B3=B0?= =?UTF-8?q?=E6=A0=B8=E7=B4=A0sql=EF=BC=8C=E6=9F=A5=E8=AF=A2=E5=85=B3?= =?UTF-8?q?=E8=81=94=E5=8D=8A=E8=A1=B0=E6=9C=9Fsql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/mapper/GardsNuclLibMapper.java | 18 ++++++ .../base/mapper/xml/GardsNuclLibMapper.xml | 28 ++++++++ .../base/service/IGardsNuclLibService.java | 10 +++ .../service/impl/GardsNuclLibServiceImpl.java | 64 +++++++++++++++++++ .../org/jeecg/common/util/GammaFileUtil.java | 6 +- .../IGardsNuclIdedSpectrumService.java | 2 - .../GardsNuclIdedSpectrumServiceImpl.java | 58 ----------------- .../jeecg/JeecgAutoProcessApplication.java | 3 + .../JeecgSpectrumAnalysisApplication.java | 5 +- 9 files changed, 131 insertions(+), 63 deletions(-) create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/mapper/GardsNuclLibMapper.java create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/mapper/xml/GardsNuclLibMapper.xml create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/service/IGardsNuclLibService.java create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/service/impl/GardsNuclLibServiceImpl.java diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/mapper/GardsNuclLibMapper.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/mapper/GardsNuclLibMapper.java new file mode 100644 index 00000000..8f2be541 --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/mapper/GardsNuclLibMapper.java @@ -0,0 +1,18 @@ +package org.jeecg.modules.base.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +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; + +public interface GardsNuclLibMapper extends BaseMapper { + + List findNuclidesAnalysis(); + + List getNuclideLines(@Param("name") String name); + + HalfData getOneHalf(@Param("name") String name); +} diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/mapper/xml/GardsNuclLibMapper.xml b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/mapper/xml/GardsNuclLibMapper.xml new file mode 100644 index 00000000..7ae95311 --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/mapper/xml/GardsNuclLibMapper.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/service/IGardsNuclLibService.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/service/IGardsNuclLibService.java new file mode 100644 index 00000000..2d089a70 --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/service/IGardsNuclLibService.java @@ -0,0 +1,10 @@ +package org.jeecg.modules.base.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.base.entity.configuration.GardsNuclLib; + +public interface IGardsNuclLibService extends IService { + + void getNuclideMap(); + +} diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/service/impl/GardsNuclLibServiceImpl.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/service/impl/GardsNuclLibServiceImpl.java new file mode 100644 index 00000000..a06f1a37 --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/service/impl/GardsNuclLibServiceImpl.java @@ -0,0 +1,64 @@ +package org.jeecg.modules.base.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.common.util.RedisUtil; +import org.jeecg.modules.base.entity.configuration.GardsNuclLib; +import org.jeecg.modules.base.mapper.GardsNuclLibMapper; +import org.jeecg.modules.base.service.IGardsNuclLibService; +import org.jeecg.modules.entity.vo.HalfData; +import org.jeecg.modules.entity.vo.NuclideLine; +import org.jeecg.modules.entity.vo.NuclideLines; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +@Service +@DS("ora") +public class GardsNuclLibServiceImpl extends ServiceImpl implements IGardsNuclLibService { + + @Autowired + private RedisUtil redisUtil; + + @Override + public void getNuclideMap() { + List nuclideLibs = this.baseMapper.findNuclidesAnalysis(); + Map nuclideMap = GetNuclideLines(nuclideLibs); + redisUtil.set("AllNuclideMap", nuclideMap); + } + + public Map GetNuclideLines(List nuclideList) { + Map mapLines = new HashMap<>(); + if (nuclideList.size() < 1) { + return mapLines; + } + for (String name : nuclideList) { + NuclideLines nlines = new NuclideLines(); + List 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; + } + +} 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 d709ca18..db966246 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 @@ -59,6 +59,8 @@ public class GammaFileUtil extends AbstractLogOrReport { private NameStandUtil nameStandUtil; @Autowired private AnalysisProcess analysisProcess; + @Autowired + private RedisUtil redisUtil; public boolean loadFile(String pathName, String fileName, PHDFile phd, String sysSource, Result result) { phd.setFilepath(pathName); @@ -3198,7 +3200,9 @@ public class GammaFileUtil extends AbstractLogOrReport { fileAnlyse.setEfficiencyParam(fileAnlyse.getUsedEffiPara().getP()); fileAnlyse.setEfficiencyEnergy(fileAnlyse.getUsedEffiKD().getG_energy()); fileAnlyse.setEfficiencyCurRow(0); - getNuclideMDCValue(fileAnlyse, fileAnlyse.getMdcInfoMap(), nucline); + //缓存中获取计算mdc使用的核素信息 + Map nuclideLinesMDCMap = (Map) redisUtil.get("AllNuclideMap"); + getNuclideMDCValue(fileAnlyse, fileAnlyse.getMdcInfoMap(), nuclideLinesMDCMap); anylseEnd = DateUtils.formatDate(new Date(), "yyyy/MM/dd HH:mm:ss"); middleData.analyses_analysisBegin = anylseBegin; middleData.analyses_analysisEnd = anylseEnd; diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsNuclIdedSpectrumService.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsNuclIdedSpectrumService.java index 93aeb9cf..fe63c6ef 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsNuclIdedSpectrumService.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsNuclIdedSpectrumService.java @@ -9,6 +9,4 @@ public interface IGardsNuclIdedSpectrumService extends IService { int saveNuclIdedGamma(GStoreMiddleProcessData middleData, Integer sampleId, String idAnalysis); - void getNuclideMap(); - } diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsNuclIdedSpectrumServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsNuclIdedSpectrumServiceImpl.java index f230d55e..af7ffd10 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsNuclIdedSpectrumServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsNuclIdedSpectrumServiceImpl.java @@ -2,40 +2,20 @@ package org.jeecg.modules.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; -import com.baomidou.mybatisplus.core.toolkit.StringPool; 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.enums.SystemType; 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.SpectrumAnalysisMapper; -import org.jeecg.modules.mapper.SysDefaultNuclideSpectrumMapper; import org.jeecg.modules.service.IGardsNuclIdedSpectrumService; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; 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.stream.Collectors; @Service("gardsNuclIdedSpectrumService") @DS("ora") public class GardsNuclIdedSpectrumServiceImpl extends ServiceImpl implements IGardsNuclIdedSpectrumService { - @Autowired - private SpectrumAnalysisMapper spectrumAnalysisMapper; - @Autowired - private RedisUtil redisUtil; - @Override @Transactional public int saveNuclIdedGamma(GStoreMiddleProcessData middleData, Integer sampleId, String idAnalysis) { @@ -72,42 +52,4 @@ public class GardsNuclIdedSpectrumServiceImpl extends ServiceImpl nuclideLibs = spectrumAnalysisMapper.findNuclidesAnalysis(); - Map nuclideMap = GetNuclideLines(nuclideLibs); - redisUtil.set("AllNuclideMap", nuclideMap); - } - - public Map GetNuclideLines(List nuclideList) { - Map mapLines = new HashMap<>(); - if (nuclideList.size() < 1) { - return mapLines; - } - for (String name : nuclideList) { - NuclideLines nlines = new NuclideLines(); - List 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; - } - - } diff --git a/jeecg-server-cloud/armd-auto-process-start/src/main/java/org/jeecg/JeecgAutoProcessApplication.java b/jeecg-server-cloud/armd-auto-process-start/src/main/java/org/jeecg/JeecgAutoProcessApplication.java index e42df08b..950bf372 100644 --- a/jeecg-server-cloud/armd-auto-process-start/src/main/java/org/jeecg/JeecgAutoProcessApplication.java +++ b/jeecg-server-cloud/armd-auto-process-start/src/main/java/org/jeecg/JeecgAutoProcessApplication.java @@ -9,6 +9,7 @@ import org.jeecg.common.properties.SpectrumPathProperties; import org.jeecg.common.properties.TaskProperties; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.*; +import org.jeecg.modules.base.service.IGardsNuclLibService; import org.jeecg.modules.email.EmailReceivePolicy; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; @@ -44,6 +45,7 @@ public class JeecgAutoProcessApplication extends SpringBootServletInitializer im private final FileSourceHandleManager fileSourceHandleManager; private final DelFileManager delFileManager; private final StatReportManager statReportManager; + private final IGardsNuclLibService nuclLibService; @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { @@ -69,6 +71,7 @@ public class JeecgAutoProcessApplication extends SpringBootServletInitializer im //调用dll System.loadLibrary("ReadPHDFile"); System.loadLibrary("GammaAnaly"); + nuclLibService.getNuclideMap(); //根据配置文件配置邮件获取策略定义时间条件,默认EmailReceivePolicy.HISTORY_ORDER_RECEIVE.getPolicy() Date systemStartupTime = null; if(EmailReceivePolicy.CURR_DATE_ORDER_RECEIVE.getPolicy().equals(taskProperties.getReceivePolicy())){ diff --git a/jeecg-server-cloud/armd-spectrum-analysis-start/src/main/java/org/jeecg/JeecgSpectrumAnalysisApplication.java b/jeecg-server-cloud/armd-spectrum-analysis-start/src/main/java/org/jeecg/JeecgSpectrumAnalysisApplication.java index 09def5e3..8f32c573 100644 --- a/jeecg-server-cloud/armd-spectrum-analysis-start/src/main/java/org/jeecg/JeecgSpectrumAnalysisApplication.java +++ b/jeecg-server-cloud/armd-spectrum-analysis-start/src/main/java/org/jeecg/JeecgSpectrumAnalysisApplication.java @@ -4,6 +4,7 @@ import lombok.extern.slf4j.Slf4j; import org.jeecg.common.cache.BetaCache; import org.jeecg.common.cache.LocalCache; import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.base.service.IGardsNuclLibService; import org.jeecg.modules.service.IDataService; import org.jeecg.modules.service.IGammaService; import org.jeecg.modules.service.IGardsNuclCoincidenceSumSpectrumService; @@ -36,7 +37,7 @@ public class JeecgSpectrumAnalysisApplication extends SpringBootServletInitializ @Autowired private IGardsNuclCoincidenceSumSpectrumService nuclCoincidenceSumSpectrumService; @Autowired - private IGardsNuclIdedSpectrumService nuclIdedSpectrumService; + private IGardsNuclLibService nuclLibService; @Autowired private IDataService dataService; @@ -72,7 +73,7 @@ public class JeecgSpectrumAnalysisApplication extends SpringBootServletInitializ betaCache.initCache(); localCache.initCache(); gammaService.readMDCParameter(); - nuclIdedSpectrumService.getNuclideMap(); + nuclLibService.getNuclideMap(); nuclCoincidenceSumSpectrumService.getNuclCoincidenceMap(); dataService.viewStations(); } From df5cfd5fd1abfb842dd2cff7c44a4b28523e57ab Mon Sep 17 00:00:00 2001 From: xiaoguangbin Date: Wed, 10 Jan 2024 14:30:44 +0800 Subject: [PATCH 02/47] =?UTF-8?q?fix:=20=E8=AE=A1=E7=AE=97mdc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/mapper/GardsNuclLibMapper.java | 18 ------ .../base/mapper/xml/GardsNuclLibMapper.xml | 28 -------- .../base/service/IGardsNuclLibService.java | 10 --- .../service/impl/GardsNuclLibServiceImpl.java | 64 ------------------- .../modules/mapper/GardsNuclLibMapper.java | 10 +++ .../modules/mapper/xml/GardsNuclLibMapper.xml | 23 +++++++ .../modules/service/IGardsNuclLibService.java | 3 + .../service/impl/GardsNuclLibServiceImpl.java | 43 +++++++++++++ 8 files changed, 79 insertions(+), 120 deletions(-) delete mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/mapper/GardsNuclLibMapper.java delete mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/mapper/xml/GardsNuclLibMapper.xml delete mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/service/IGardsNuclLibService.java delete mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/service/impl/GardsNuclLibServiceImpl.java diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/mapper/GardsNuclLibMapper.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/mapper/GardsNuclLibMapper.java deleted file mode 100644 index 8f2be541..00000000 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/mapper/GardsNuclLibMapper.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.jeecg.modules.base.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.apache.ibatis.annotations.Param; -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; - -public interface GardsNuclLibMapper extends BaseMapper { - - List findNuclidesAnalysis(); - - List getNuclideLines(@Param("name") String name); - - HalfData getOneHalf(@Param("name") String name); -} diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/mapper/xml/GardsNuclLibMapper.xml b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/mapper/xml/GardsNuclLibMapper.xml deleted file mode 100644 index 7ae95311..00000000 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/mapper/xml/GardsNuclLibMapper.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/service/IGardsNuclLibService.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/service/IGardsNuclLibService.java deleted file mode 100644 index 2d089a70..00000000 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/service/IGardsNuclLibService.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.jeecg.modules.base.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import org.jeecg.modules.base.entity.configuration.GardsNuclLib; - -public interface IGardsNuclLibService extends IService { - - void getNuclideMap(); - -} diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/service/impl/GardsNuclLibServiceImpl.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/service/impl/GardsNuclLibServiceImpl.java deleted file mode 100644 index a06f1a37..00000000 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/service/impl/GardsNuclLibServiceImpl.java +++ /dev/null @@ -1,64 +0,0 @@ -package org.jeecg.modules.base.service.impl; - -import com.baomidou.dynamic.datasource.annotation.DS; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.jeecg.common.util.RedisUtil; -import org.jeecg.modules.base.entity.configuration.GardsNuclLib; -import org.jeecg.modules.base.mapper.GardsNuclLibMapper; -import org.jeecg.modules.base.service.IGardsNuclLibService; -import org.jeecg.modules.entity.vo.HalfData; -import org.jeecg.modules.entity.vo.NuclideLine; -import org.jeecg.modules.entity.vo.NuclideLines; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; - -@Service -@DS("ora") -public class GardsNuclLibServiceImpl extends ServiceImpl implements IGardsNuclLibService { - - @Autowired - private RedisUtil redisUtil; - - @Override - public void getNuclideMap() { - List nuclideLibs = this.baseMapper.findNuclidesAnalysis(); - Map nuclideMap = GetNuclideLines(nuclideLibs); - redisUtil.set("AllNuclideMap", nuclideMap); - } - - public Map GetNuclideLines(List nuclideList) { - Map mapLines = new HashMap<>(); - if (nuclideList.size() < 1) { - return mapLines; - } - for (String name : nuclideList) { - NuclideLines nlines = new NuclideLines(); - List 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; - } - -} diff --git a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/mapper/GardsNuclLibMapper.java b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/mapper/GardsNuclLibMapper.java index e75ed8fd..85cac395 100644 --- a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/mapper/GardsNuclLibMapper.java +++ b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/mapper/GardsNuclLibMapper.java @@ -2,8 +2,11 @@ package org.jeecg.modules.mapper; 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.entity.configuration.GardsNuclLib; +import org.jeecg.modules.entity.vo.HalfData; +import org.jeecg.modules.entity.vo.NuclideLine; import java.util.List; @@ -14,4 +17,11 @@ public interface GardsNuclLibMapper extends BaseMapper { List allName(); List getNucliLib(); + + List findNuclidesAnalysis(); + + List getNuclideLines(@Param("name") String name); + + HalfData getOneHalf(@Param("name") String name); + } diff --git a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclLibMapper.xml b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclLibMapper.xml index e59a0426..72513b3f 100644 --- a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclLibMapper.xml +++ b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclLibMapper.xml @@ -26,4 +26,27 @@ select a.NAME, a.num_lines, a.halflife, a.halflife_err from CONFIGURATION.GARDS_NUCL_LIB a + + + + + + \ No newline at end of file diff --git a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/service/IGardsNuclLibService.java b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/service/IGardsNuclLibService.java index 4472e165..c93423f2 100644 --- a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/service/IGardsNuclLibService.java +++ b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/service/IGardsNuclLibService.java @@ -13,4 +13,7 @@ public interface IGardsNuclLibService extends IService { List allName(); void getNucliLib(); + + void getNuclideMap(); + } diff --git a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/service/impl/GardsNuclLibServiceImpl.java b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/service/impl/GardsNuclLibServiceImpl.java index 1881b7a1..2acbff31 100644 --- a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/service/impl/GardsNuclLibServiceImpl.java +++ b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/service/impl/GardsNuclLibServiceImpl.java @@ -9,6 +9,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.jeecg.common.util.RedisUtil; import org.jeecg.modules.base.dto.GardsNuclLibDto; 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.service.IGardsNuclLibService; 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 java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.function.Function; import java.util.stream.Collectors; @@ -52,4 +57,42 @@ public class GardsNuclLibServiceImpl extends ServiceImpl nuclLibMap = gardsNuclLibs.stream().collect(Collectors.toMap(GardsNuclLib::getName, Function.identity())); redisUtil.set("nuclLibs", nuclLibMap); } + + @Override + public void getNuclideMap() { + List nuclideLibs = this.baseMapper.findNuclidesAnalysis(); + Map nuclideMap = GetNuclideLines(nuclideLibs); + redisUtil.set("AllNuclideMap", nuclideMap); + } + + public Map GetNuclideLines(List nuclideList) { + Map mapLines = new HashMap<>(); + if (nuclideList.size() < 1) { + return mapLines; + } + for (String name : nuclideList) { + NuclideLines nlines = new NuclideLines(); + List 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; + } + } From 17fa3b55081e7a634e77e2a6147efabd4879cab7 Mon Sep 17 00:00:00 2001 From: xiaoguangbin Date: Wed, 10 Jan 2024 14:31:39 +0800 Subject: [PATCH 03/47] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3163=E6=99=AE?= =?UTF-8?q?=E9=80=9A=E9=82=AE=E7=AE=B1=E6=97=A0=E6=B3=95=E5=BB=BA=E7=AB=8B?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/common/email/EmailServiceManager.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailServiceManager.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailServiceManager.java index 58a6fdfc..c2f8bfe1 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailServiceManager.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailServiceManager.java @@ -121,13 +121,23 @@ public class EmailServiceManager { properties.put("mail.imap.ssl.enable", "false"); } + HashMap IAM = new HashMap(); + //带上IMAP ID信息,由key和value组成,例如name,version,vendor,support-email等。 + IAM.put("name","myname"); + IAM.put("version","1.0.0"); + IAM.put("vendor","myclient"); + IAM.put("support-email","testmail@test.com"); + //获取邮件回话 final Session session = Session.getDefaultInstance(properties); + //获取smtp协议的存储对象 store = (IMAPStore) session.getStore(); //连接 store.connect(email.getUsername(),email.getPassword()); + // 解决163普通邮箱无法建立连接问题 + store.id(IAM); //获取收件箱 folder = store.getFolder("INBOX");//INBOX folder.open(Folder.READ_WRITE); From b76d4fd32567b05ddac7f34408bec29abd5347af Mon Sep 17 00:00:00 2001 From: xiaoguangbin Date: Wed, 10 Jan 2024 15:56:19 +0800 Subject: [PATCH 04/47] =?UTF-8?q?fix:=20=E8=AE=A1=E7=AE=97mdc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/jeecg/JeecgAutoProcessApplication.java | 2 +- .../main/java/org/jeecg/JeecgSpectrumAnalysisApplication.java | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/jeecg-server-cloud/armd-auto-process-start/src/main/java/org/jeecg/JeecgAutoProcessApplication.java b/jeecg-server-cloud/armd-auto-process-start/src/main/java/org/jeecg/JeecgAutoProcessApplication.java index 950bf372..ab22ec69 100644 --- a/jeecg-server-cloud/armd-auto-process-start/src/main/java/org/jeecg/JeecgAutoProcessApplication.java +++ b/jeecg-server-cloud/armd-auto-process-start/src/main/java/org/jeecg/JeecgAutoProcessApplication.java @@ -9,7 +9,7 @@ import org.jeecg.common.properties.SpectrumPathProperties; import org.jeecg.common.properties.TaskProperties; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.*; -import org.jeecg.modules.base.service.IGardsNuclLibService; +import org.jeecg.modules.service.IGardsNuclLibService; import org.jeecg.modules.email.EmailReceivePolicy; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; diff --git a/jeecg-server-cloud/armd-spectrum-analysis-start/src/main/java/org/jeecg/JeecgSpectrumAnalysisApplication.java b/jeecg-server-cloud/armd-spectrum-analysis-start/src/main/java/org/jeecg/JeecgSpectrumAnalysisApplication.java index 8f32c573..135ddf28 100644 --- a/jeecg-server-cloud/armd-spectrum-analysis-start/src/main/java/org/jeecg/JeecgSpectrumAnalysisApplication.java +++ b/jeecg-server-cloud/armd-spectrum-analysis-start/src/main/java/org/jeecg/JeecgSpectrumAnalysisApplication.java @@ -4,11 +4,10 @@ import lombok.extern.slf4j.Slf4j; import org.jeecg.common.cache.BetaCache; import org.jeecg.common.cache.LocalCache; import org.jeecg.common.util.oConvertUtils; -import org.jeecg.modules.base.service.IGardsNuclLibService; +import org.jeecg.modules.service.IGardsNuclLibService; import org.jeecg.modules.service.IDataService; import org.jeecg.modules.service.IGammaService; import org.jeecg.modules.service.IGardsNuclCoincidenceSumSpectrumService; -import org.jeecg.modules.service.IGardsNuclIdedSpectrumService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; From 8d52f93a8f5f474ea4175586874199f5ca31d969 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 10 Jan 2024 18:31:30 +0800 Subject: [PATCH 05/47] =?UTF-8?q?=E6=95=A3=E7=82=B9=E5=9B=BEB,G=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE=E9=A2=A0=E5=80=92=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/jeecg/common/util/PHDFileUtil.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/common/util/PHDFileUtil.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/common/util/PHDFileUtil.java index b9d944e1..84f78490 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/common/util/PHDFileUtil.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/common/util/PHDFileUtil.java @@ -115,8 +115,8 @@ public class PHDFileUtil extends AbstractLogOrReport { List hCounts = struct.h_counts; List histogramDataList = new LinkedList<>(); List histogramDataDList = new LinkedList<>(); - for (int i=0; i 0){ From 4e2313945a4d0094f29540107c7ced2278c8af0f Mon Sep 17 00:00:00 2001 From: nieziyan Date: Wed, 10 Jan 2024 20:15:42 +0800 Subject: [PATCH 06/47] =?UTF-8?q?fix=EF=BC=9A1.=E6=8E=A2=E6=B5=8B=E5=99=A8?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2bug=E4=BF=AE=E5=A4=8D2.Web=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/configuration/GardsDetectors.java | 7 +- .../modules/base/enums/DetectorStatus.java | 12 +++ .../controller/GardsDetectorsController.java | 4 + .../system/mapper/GardsDetectorsMapper.java | 2 - .../mapper/xml/GardsDetectorsMapper.xml | 19 +---- .../service/IGardsDetectorsService.java | 5 +- .../impl/GardsDetectorsServiceImpl.java | 81 +++++++++---------- .../mapper/xml/GardsSampleDataWebMapper.xml | 3 +- 8 files changed, 66 insertions(+), 67 deletions(-) create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/DetectorStatus.java diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/configuration/GardsDetectors.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/configuration/GardsDetectors.java index 288ecd1e..493ab957 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/configuration/GardsDetectors.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/configuration/GardsDetectors.java @@ -12,6 +12,7 @@ import org.springframework.format.annotation.DateTimeFormat; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.io.Serializable; +import java.time.LocalDateTime; import java.util.Date; @Data @@ -22,14 +23,14 @@ public class GardsDetectors implements Serializable { * 探测器id */ @TableId(value = "DETECTOR_ID") - @NotNull(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) + @NotNull(message = "The detector id cannot be empty", groups = {InsertGroup.class, UpdateGroup.class}) private Integer detectorId; /** * 探测器编码 */ @TableField(value = "DETECTOR_CODE") - @NotBlank(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) + @NotBlank(message = "The detector code cannot be empty", groups = {InsertGroup.class, UpdateGroup.class}) private String detectorCode; /** @@ -100,7 +101,6 @@ public class GardsDetectors implements Serializable { * 操作时间 */ @TableField(value = "MODDATE") - @NotNull(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date moddate; @@ -110,5 +110,4 @@ public class GardsDetectors implements Serializable { */ @TableField(value = "STATION_ID") private Integer stationId; - } diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/DetectorStatus.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/DetectorStatus.java new file mode 100644 index 00000000..6f48c888 --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/DetectorStatus.java @@ -0,0 +1,12 @@ +package org.jeecg.modules.base.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum DetectorStatus { + ON("Operating"), OFF("Unoperating"); + + private final String value; +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsDetectorsController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsDetectorsController.java index f986567f..5e95b332 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsDetectorsController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsDetectorsController.java @@ -71,4 +71,8 @@ public class GardsDetectorsController { return gardsDetectorsService.findStationDetectors(stationIds); } + @GetMapping("duplicateCheck") + public Result duplicateCheck(String field, String value){ + return gardsDetectorsService.duplicateCheck(field, value); + } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/GardsDetectorsMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/GardsDetectorsMapper.java index 6b430814..ac93aa94 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/GardsDetectorsMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/GardsDetectorsMapper.java @@ -22,6 +22,4 @@ public interface GardsDetectorsMapper extends BaseMapper { * @return */ List findType(); - - List list(Integer stationId, String status); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/GardsDetectorsMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/GardsDetectorsMapper.xml index 3f9d5ecb..201fc2cf 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/GardsDetectorsMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/GardsDetectorsMapper.xml @@ -23,30 +23,19 @@ CONFIGURATION.GARDS_DETECTORS - and DETECTOR_CODE like CONCAT('%',#{gardsDetectors.detectorCode},'%') + DETECTOR_CODE LIKE CONCAT(CONCAT('%', #{gardsDetectors.detectorCode}), '%') - and TYPE = #{gardsDetectors.type} + AND TYPE = #{gardsDetectors.type} - and RTRIM(STATUS, ' ') = #{gardsDetectors.status} + AND RTRIM(STATUS, ' ') = #{gardsDetectors.status} - order by DETECTOR_ID asc + Order By DETECTOR_ID ASC - - \ No newline at end of file diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java index e2e30219..15a8b422 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java @@ -36,14 +36,14 @@ public interface IGardsDetectorsService extends IService { * @param gardsDetectors * @return */ - Result create(GardsDetectorsSystem gardsDetectors); + Result create(GardsDetectorsSystem gardsDetectors); /** * 修改监测器信息 * @param gardsDetectors * @return */ - Result update(GardsDetectorsSystem gardsDetectors); + Result update(GardsDetectorsSystem gardsDetectors); /** * 删除监测器信息 @@ -65,4 +65,5 @@ public interface IGardsDetectorsService extends IService { */ Map> findStationDetectors(List stationIds); + Result duplicateCheck(String field, String value); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java index bc4bce47..3532589c 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java @@ -17,6 +17,7 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.Prompt; import org.jeecg.common.util.RedisUtil; import org.jeecg.modules.base.entity.configuration.GardsDetectors; +import org.jeecg.modules.base.enums.DetectorStatus; import org.jeecg.modules.system.entity.GardsDetectorsSystem; import org.jeecg.modules.system.mapper.GardsDetectorsMapper; import org.jeecg.modules.system.service.IGardsDetectorsService; @@ -31,6 +32,7 @@ import java.util.stream.Collectors; @Service("gardsDetectorsService") @DS("ora") public class GardsDetectorsServiceImpl extends ServiceImpl implements IGardsDetectorsService { + @Autowired private RedisUtil redisUtil; @@ -76,25 +78,23 @@ public class GardsDetectorsServiceImpl extends ServiceImpl findType() { - List type = this.baseMapper.findType(); - return type; + return this.baseMapper.findType(); } @Override @Transactional public Result create(GardsDetectorsSystem detector) { - Integer detectorId = detector.getDetectorId(); - String detectorCode = detector.getDetectorCode(); - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(GardsDetectors::getDetectorId, detectorId); - wrapper.or().eq(GardsDetectors::getDetectorCode, detectorCode); - if (CollUtil.isNotEmpty(this.list(wrapper))) - return Result.error("The detector id or code cannot be repeated"); Integer stationId = detector.getStationId(); if (ObjectUtil.isNull(stationId)) - return Result.error("Station id of the detector cannot be empty"); + return Result.error("Station Id Of The Detector Cannot Be Empty"); // 查询相同台站下所有工作的探测器 按照探测器Id升序排序 - List detectors = this.baseMapper.list(stationId, "Operating"); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(GardsDetectors::getStationId, stationId); + List detectors = this.list(wrapper); + detectors = detectors.stream() + .filter(item -> StrUtil.equals(StrUtil.trim(item.getStatus()), DetectorStatus.ON.getValue())) + .sorted(Comparator.comparingInt(GardsDetectorsSystem::getDetectorId)) + .collect(Collectors.toList()); // 如果相同台站下没有工作探测器 if (CollUtil.isEmpty(detectors)){ boolean success = this.save(detector); @@ -106,7 +106,7 @@ public class GardsDetectorsServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(GardsDetectorsSystem::getDetectorId, gardsDetectors.getDetectorId()); - GardsDetectorsSystem stations = this.baseMapper.selectOne(wrapper); - if (Objects.isNull(stations)) { - result.error500("The current data does not exist,Modification failure"); - return result; + public Result update(GardsDetectorsSystem detector) { + boolean success = this.updateById(detector); + if (success){ + this.findDetectors(); + return Result.OK(Prompt.UPDATE_SUCC); } - if (StringUtils.isNotBlank(gardsDetectors.getDetectorCode())){ - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(GardsDetectorsSystem::getDetectorCode, gardsDetectors.getDetectorCode()); - GardsDetectorsSystem detectors = this.baseMapper.selectOne(queryWrapper); - if (Objects.nonNull(detectors) && !detectors.getDetectorId().equals(gardsDetectors.getDetectorId())) { - result.error500("Current data "+gardsDetectors.getDetectorCode()+" Already exist,Modification failure!"); - return result; - } - } - LambdaQueryWrapper detectorsQueryWrapper = new LambdaQueryWrapper<>(); - detectorsQueryWrapper.eq(GardsDetectorsSystem::getDetectorId, gardsDetectors.getDetectorId()); - this.baseMapper.update(gardsDetectors, detectorsQueryWrapper); - result.success("Modified successfully"); - this.findDetectors(); - return result; + return Result.error(Prompt.UPDATE_ERR); } @Override - public Result deleteById(Integer id) { - Result result = new Result(); - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(GardsDetectorsSystem::getDetectorId, id); - this.baseMapper.delete(queryWrapper); - result.success("Successfully deleted"); - this.findDetectors(); - return result; + public Result deleteById(Integer id) { + boolean success = this.removeById(id); + if (success){ + this.findDetectors(); + return Result.OK(Prompt.DELETE_SUCC); + } + return Result.error(Prompt.DELETE_ERR); } @Override @@ -180,4 +162,17 @@ public class GardsDetectorsServiceImpl extends ServiceImpl duplicateCheck(String field, String value) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + if (StrUtil.equals(field, "DETECTOR_ID")){ + wrapper.eq(GardsDetectors::getDetectorId, value); + return this.list(wrapper).isEmpty() ? Result.OK() : Result.error("Id Cannot Be Repeated"); + }else if (StrUtil.equals(field, "DETECTOR_CODE")){ + wrapper.eq(GardsDetectors::getDetectorCode, value); + return this.list(wrapper).isEmpty() ? Result.OK() : Result.error("Code Cannot Be Repeated"); + }else { + return Result.OK(); + } + } } diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/xml/GardsSampleDataWebMapper.xml b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/xml/GardsSampleDataWebMapper.xml index 99520a71..065c2899 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/xml/GardsSampleDataWebMapper.xml +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/xml/GardsSampleDataWebMapper.xml @@ -73,7 +73,8 @@ INNER JOIN RNMAN.GARDS_ANALYSES ana on ana.SAMPLE_ID = sam.SAMPLE_ID sam.COLLECT_START >= TO_DATE(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') - and sam.COLLECT_STOP <= TO_DATE(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') + AND sam.COLLECT_STOP <= TO_DATE(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') + AND ana.REPORT_PAHT IS NOT NULL and sam.STATION_ID in ('') From fc26d7ffd401a8c1e28bf8b3efee1fd98929f21a Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 11 Jan 2024 08:48:39 +0800 Subject: [PATCH 07/47] =?UTF-8?q?gamma=E5=88=86=E6=9E=90=E9=83=A8=E5=88=86?= =?UTF-8?q?=E7=94=9F=E6=88=90=E6=8A=A5=E5=91=8A=E5=86=85=E5=AE=B9=E4=B8=AD?= =?UTF-8?q?=E5=85=B3=E4=BA=8Eversion=E6=8F=8F=E8=BF=B0=E5=8C=BA=E5=88=86?= =?UTF-8?q?=E9=A2=97=E7=B2=92=E7=89=A9=E5=92=8C=E6=B0=94=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/jeecg/common/util/GammaFileUtil.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 db966246..f367ddce 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 @@ -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.CalType; import org.jeecg.modules.base.enums.MiddleDataType; +import org.jeecg.modules.base.enums.SystemType; import org.jeecg.modules.entity.vo.*; import org.jeecg.modules.native_jni.AnalysisProcess; import org.jeecg.modules.native_jni.CalValuesHandler; @@ -2670,7 +2671,11 @@ public class GammaFileUtil extends AbstractLogOrReport { strBuffer.append(" "+middleData.analyses_type+" RADIONUCLIDE REPORT"); //换行 strBuffer.append(System.lineSeparator()); - strBuffer.append(" (Noble Gas Version) "); + 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(System.lineSeparator()); strBuffer.append(" Creation Date "+DateUtils.formatDate(new Date(), "yyyy/MM/dd-HH:mm:ss")); From 62d448c294495a07e8b06f7b2e6ca2c335b5577d Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 11 Jan 2024 09:59:43 +0800 Subject: [PATCH 08/47] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E6=9F=A5=E8=AF=A2=E5=8F=B0=E7=AB=99=EF=BC=8C?= =?UTF-8?q?=E6=8E=A2=E6=B5=8B=E5=99=A8=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=A0=B9=E6=8D=AE=E7=B3=BB=E7=BB=9F=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E6=9F=A5=E8=AF=A2=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SpectrumAnalysesController.java | 4 +- .../service/ISpectrumAnalysisService.java | 2 +- .../impl/SpectrumAnalysisServiceImpl.java | 58 +++++++++++++++---- 3 files changed, 49 insertions(+), 15 deletions(-) diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/SpectrumAnalysesController.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/SpectrumAnalysesController.java index 2545beae..a77d5e8e 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/SpectrumAnalysesController.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/SpectrumAnalysesController.java @@ -32,8 +32,8 @@ public class SpectrumAnalysesController { @GetMapping("getDBSearchList") @ApiOperation(value = "查询查询条件数据接口", notes = "查询查询条件数据接口") - public Result getDBSearchList(HttpServletRequest request, boolean AllUsers) { - return spectrumAnalysisService.getDBSearchList(request, AllUsers); + public Result getDBSearchList(HttpServletRequest request, boolean AllUsers, String sampleType) { + return spectrumAnalysisService.getDBSearchList(request, AllUsers, sampleType); } @GetMapping("getDBSpectrumList") diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/ISpectrumAnalysisService.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/ISpectrumAnalysisService.java index ee0248af..a6fcbfcb 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/ISpectrumAnalysisService.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/ISpectrumAnalysisService.java @@ -16,7 +16,7 @@ public interface ISpectrumAnalysisService { Result initValue(String dbName, Integer sampleId, String analyst, String sampleFileName, String gasFileName, String detFileName, String qcFileName, HttpServletRequest request); - Result getDBSearchList(HttpServletRequest request, boolean AllUsers); + Result getDBSearchList(HttpServletRequest request, boolean AllUsers, String sampleType); Result getDBSpectrumList(QueryRequest queryRequest, GardsSampleDataSpectrum gardsSampleData, String dbName, String[] menuTypes, boolean AllUsers, boolean CollectStopB, boolean AcqStartB, Date startDate, Date endDate, HttpServletRequest request); diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java index dced9e2f..bcfede07 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java @@ -31,6 +31,7 @@ import org.jeecg.modules.base.abstracts.AbstractLogOrReport; import org.jeecg.modules.base.bizVo.BetaRLR; import org.jeecg.modules.base.dto.*; import org.jeecg.modules.base.entity.configuration.GardsDetectors; +import org.jeecg.modules.base.entity.configuration.GardsStations; import org.jeecg.modules.base.entity.original.GardsSampleData; import org.jeecg.modules.base.entity.rnman.*; import org.jeecg.modules.base.enums.*; @@ -126,14 +127,34 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } @Override - public Result getDBSearchList(HttpServletRequest request, boolean AllUsers) { + public Result getDBSearchList(HttpServletRequest request, boolean AllUsers, String sampleType) { Result result = new Result(); + //接收返回结果 Map> map = new HashMap<>(); + //查询谱对应的台站类型 + if (StringUtils.isBlank(sampleType)){ + result.error500("谱类型不能为空"); + return result; + } + List menuTypes = new LinkedList<>(); + if (sampleType.equalsIgnoreCase("All")) { + menuTypes.add(SystemType.BETA.getType()); + menuTypes.add(SystemType.GAMMA.getType()); + } else if (sampleType.equalsIgnoreCase("Beta")) { + menuTypes.add(SystemType.BETA.getType()); + } else if (sampleType.equalsIgnoreCase("Gamma")) { + menuTypes.add(SystemType.GAMMA.getType()); + } + List stationTypes = sysDictService.findStationType(menuTypes); + if (CollectionUtils.isEmpty(stationTypes)) { + result.error500("请先补充数据字典中当前系统类型对应的台站类型信息"); + return result; + } //获取台站编码 List stationCodes = new LinkedList<>(); List detectorCodes = new LinkedList<>(); - //根据台站id查询台站名称 - Map stationMap = (Map)redisUtil.get("stationMap"); + //查询台站信息接口 + HashMap stationMap = (HashMap)redisUtil.get("stationInfoMap"); //从redis中获取探测器信息 Map detectorInfoMap = (Map)redisUtil.get("detectorsMap"); //获取台站信息 @@ -145,24 +166,26 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements result.error500("Description Failed to obtain the current login user information!"); return result; } + //查询用户当天排班的台站信息 userStations = userTaskUtil.findUserStation(userName); //判断当前用户在当天是否有排班任务的台站信息 if (CollectionUtils.isNotEmpty(userStations)) { if (CollectionUtils.isNotEmpty(stationMap)){ - for (Map.Entry entry:stationMap.entrySet()) { - if (userStations.contains(entry.getKey())) { - stationCodes.add(entry.getValue()); + for (Map.Entry entry:stationMap.entrySet()) { + GardsStations value = (GardsStations)entry.getValue(); + if (userStations.contains(entry.getKey()) && StringUtils.isNotBlank(value.getType()) && stationTypes.contains(value.getType())) { + stationCodes.add(value.getStationCode()); } } } if (CollectionUtils.isNotEmpty(detectorInfoMap)) { for (Map.Entry entry:detectorInfoMap.entrySet()) { - if (String.valueOf(entry.getKey()).length() <= 3) { - if (userStations.contains(String.valueOf(entry.getKey()))) { + if (String.valueOf(entry.getValue()).length() <= 5) { + if (stationCodes.contains(String.valueOf(entry.getValue()))) { detectorCodes.add(entry.getValue()); } } else { - if (userStations.contains(String.valueOf(entry.getKey()).substring(0, 3))) { + if (stationCodes.contains(String.valueOf(entry.getValue()).substring(0, 5))) { detectorCodes.add(entry.getValue()); } } @@ -171,13 +194,24 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } } else { if (CollectionUtils.isNotEmpty(stationMap)) { - for (Map.Entry entry: stationMap.entrySet()) { - stationCodes.add(entry.getValue()); + for (Map.Entry entry: stationMap.entrySet()) { + GardsStations value = (GardsStations) entry.getValue(); + if (StringUtils.isNotBlank(value.getType()) && stationTypes.contains(value.getType())) { + stationCodes.add(value.getStationCode()); + } } } if (CollectionUtils.isNotEmpty(detectorInfoMap)) { for (Map.Entry entry: detectorInfoMap.entrySet()) { - detectorCodes.add(entry.getValue()); + if (String.valueOf(entry.getValue()).length() <= 5) { + if (stationCodes.contains(String.valueOf(entry.getValue()))) { + detectorCodes.add(entry.getValue()); + } + } else { + if (stationCodes.contains(String.valueOf(entry.getValue()).substring(0, 5))) { + detectorCodes.add(entry.getValue()); + } + } } } } From 4e6bd1dd6eef7126a053a4bc2ad9195685f39c32 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 11 Jan 2024 11:09:56 +0800 Subject: [PATCH 09/47] =?UTF-8?q?undeal=E5=90=91redis=E4=B8=AD=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E7=AC=AC=E4=B8=80=E6=AC=A1=E5=BC=80=E5=A7=8B=E5=A4=84?= =?UTF-8?q?=E7=90=86=E6=97=B6=E9=97=B4=E6=88=B3=EF=BC=8Ckey=E5=80=BC?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/jeecg/modules/UndealHandleManager.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/UndealHandleManager.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/UndealHandleManager.java index 63129990..0d289f29 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/UndealHandleManager.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/UndealHandleManager.java @@ -128,9 +128,9 @@ public class UndealHandleManager{ long createMillis = currentMillis; //判断redis是否包含文件名称 key if (spectrumServiceQuotes.getRedisStreamUtil().hasKey(spectrumFile.getName())) { - createMillis = (long) spectrumServiceQuotes.getRedisStreamUtil().get(spectrumFile.getName()); + createMillis = (long) spectrumServiceQuotes.getRedisStreamUtil().get(spectrumFile.getName()+"-undeal"); } else { - spectrumServiceQuotes.getRedisStreamUtil().set(spectrumFile.getName(), currentMillis); + spectrumServiceQuotes.getRedisStreamUtil().set(spectrumFile.getName()+"-undeal", currentMillis); } try { //解析文件 @@ -148,7 +148,7 @@ public class UndealHandleManager{ this.taskLatch.countDown(); //满足undeal文件处理周期时长会删除源文件 if ((currentMillis - createMillis) >= taskProperties.getUndealFileTimeOut()) { - spectrumServiceQuotes.getRedisStreamUtil().del(spectrumFile.getName()); + spectrumServiceQuotes.getRedisStreamUtil().del(spectrumFile.getName()+"-undeal"); spectrumFile.delete(); } } From 05250c0758a0cd8ddd778b621e467d996db87111 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 11 Jan 2024 11:13:45 +0800 Subject: [PATCH 10/47] =?UTF-8?q?Undeal=E5=A2=9E=E5=8A=A0=E6=96=B0?= =?UTF-8?q?=E7=9A=84redis=E7=BC=93=E5=AD=98=E6=A0=87=E8=AF=86=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9undeal=E7=BC=93=E5=AD=98key?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/jeecg/common/constant/RedisConstant.java | 2 ++ .../main/java/org/jeecg/modules/UndealHandleManager.java | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/RedisConstant.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/RedisConstant.java index 3f00a7b9..30122674 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/RedisConstant.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/RedisConstant.java @@ -40,4 +40,6 @@ public interface RedisConstant { String QIYE_EMAIL_TOKEN = "Token:QiyeEmail"; // 网易企业邮箱Token String PREFIX_TEMPLATE = "Template:"; // 消息模板 + + String UNDEAL_FILE = "Undeal:"; } diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/UndealHandleManager.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/UndealHandleManager.java index 0d289f29..c62f7ce1 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/UndealHandleManager.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/UndealHandleManager.java @@ -2,6 +2,7 @@ package org.jeecg.modules; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.constant.RedisConstant; import org.jeecg.common.properties.TaskProperties; import org.jeecg.modules.enums.SpectrumSource; import org.jeecg.modules.service.BlockConstant; @@ -128,9 +129,9 @@ public class UndealHandleManager{ long createMillis = currentMillis; //判断redis是否包含文件名称 key if (spectrumServiceQuotes.getRedisStreamUtil().hasKey(spectrumFile.getName())) { - createMillis = (long) spectrumServiceQuotes.getRedisStreamUtil().get(spectrumFile.getName()+"-undeal"); + createMillis = (long) spectrumServiceQuotes.getRedisStreamUtil().get(RedisConstant.UNDEAL_FILE + spectrumFile.getName()); } else { - spectrumServiceQuotes.getRedisStreamUtil().set(spectrumFile.getName()+"-undeal", currentMillis); + spectrumServiceQuotes.getRedisStreamUtil().set(RedisConstant.UNDEAL_FILE + spectrumFile.getName(), currentMillis); } try { //解析文件 @@ -148,7 +149,7 @@ public class UndealHandleManager{ this.taskLatch.countDown(); //满足undeal文件处理周期时长会删除源文件 if ((currentMillis - createMillis) >= taskProperties.getUndealFileTimeOut()) { - spectrumServiceQuotes.getRedisStreamUtil().del(spectrumFile.getName()+"-undeal"); + spectrumServiceQuotes.getRedisStreamUtil().del(RedisConstant.UNDEAL_FILE + spectrumFile.getName()); spectrumFile.delete(); } } From e0139e2d8920b7c767d020a199e5900b78e3644e Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 11 Jan 2024 11:58:53 +0800 Subject: [PATCH 11/47] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=EF=BC=8C=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E5=85=A8=E6=A0=B8=E7=B4=A0=E4=BF=A1=E6=81=AF=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E9=80=9F=E5=BA=A6=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/mapper/GardsNuclLibMapper.java | 6 +-- .../modules/mapper/xml/GardsNuclLibMapper.xml | 18 +++----- .../service/impl/GardsNuclLibServiceImpl.java | 41 ++++++++++--------- 3 files changed, 29 insertions(+), 36 deletions(-) diff --git a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/mapper/GardsNuclLibMapper.java b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/mapper/GardsNuclLibMapper.java index 85cac395..3bd8eeb5 100644 --- a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/mapper/GardsNuclLibMapper.java +++ b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/mapper/GardsNuclLibMapper.java @@ -18,10 +18,8 @@ public interface GardsNuclLibMapper extends BaseMapper { List getNucliLib(); - List findNuclidesAnalysis(); + List findNuclidesAnalysis(); - List getNuclideLines(@Param("name") String name); - - HalfData getOneHalf(@Param("name") String name); + List getNuclideLines(); } diff --git a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclLibMapper.xml b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclLibMapper.xml index 72513b3f..e5369528 100644 --- a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclLibMapper.xml +++ b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclLibMapper.xml @@ -26,27 +26,19 @@ select a.NAME, a.num_lines, a.halflife, a.halflife_err from CONFIGURATION.GARDS_NUCL_LIB a - + select NAME as name, HALFLIFE as half from CONFIGURATION.GARDS_NUCL_LIB - - \ No newline at end of file diff --git a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/service/impl/GardsNuclLibServiceImpl.java b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/service/impl/GardsNuclLibServiceImpl.java index 2acbff31..e3beec7c 100644 --- a/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/service/impl/GardsNuclLibServiceImpl.java +++ b/jeecg-module-beta-gamma-analyser/src/main/java/org/jeecg/modules/service/impl/GardsNuclLibServiceImpl.java @@ -60,38 +60,41 @@ public class GardsNuclLibServiceImpl extends ServiceImpl nuclideLibs = this.baseMapper.findNuclidesAnalysis(); - Map nuclideMap = GetNuclideLines(nuclideLibs); + Map nuclideMap = GetNuclideLines(); redisUtil.set("AllNuclideMap", nuclideMap); } - public Map GetNuclideLines(List nuclideList) { + public Map GetNuclideLines() { + List nuclideList = this.baseMapper.findNuclidesAnalysis(); Map mapLines = new HashMap<>(); if (nuclideList.size() < 1) { return mapLines; } - for (String name : nuclideList) { - NuclideLines nlines = new NuclideLines(); - List 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) { + List nuclideLineList = this.baseMapper.getNuclideLines(); + for (HalfData half : nuclideList) { + String name = half.getName(); + NuclideLines nlines = null; + //判断map里是否存在当前名称的核素信息 + if (Objects.isNull(mapLines.get(name))) { + nlines = new NuclideLines(); + nlines.setHalflife(half.getHalf() == null ? 0 : half.getHalf() * 86400);// 将天转换成秒 + } else { + nlines = mapLines.get(name); + } + List 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.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; } From f67db42995adc9f88b83a76d1a25b6af4bb228a5 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Thu, 11 Jan 2024 16:37:56 +0800 Subject: [PATCH 12/47] =?UTF-8?q?feat=EF=BC=9A=E6=8E=A2=E6=B5=8B=E5=99=A8I?= =?UTF-8?q?d=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/properties/DetectorIdFormat.java | 28 +++++++++++++++++++ .../controller/GardsDetectorsController.java | 5 ---- .../service/IGardsDetectorsService.java | 2 -- .../impl/GardsDetectorsServiceImpl.java | 27 ++++++++---------- 4 files changed, 39 insertions(+), 23 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/DetectorIdFormat.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/DetectorIdFormat.java index 835897aa..bcca18cf 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/DetectorIdFormat.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/DetectorIdFormat.java @@ -1,11 +1,15 @@ package org.jeecg.common.properties; +import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.StrUtil; import io.swagger.models.auth.In; import lombok.Data; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.constant.StringConstant; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; + +import java.util.HashMap; import java.util.Map; @Data @@ -46,6 +50,30 @@ public class DetectorIdFormat { return detectorId; } + public Integer detectorCodeToId(String detectorCode){ + if (!StrUtil.contains(detectorCode, StrUtil.UNDERLINE)) + return null; + String[] split = StrUtil.split(detectorCode, StrUtil.UNDERLINE); + String prefix = split[0]; + String suffix = split[1]; + // 根据台站code即prefix解析出Id的前半部分 + prefix = StrUtil.sub(prefix, 2, prefix.length()); + for (Map.Entry entry : suffixMap.entrySet()) { + String key = entry.getKey(); + String value = entry.getValue(); + if (!StrUtil.contains(prefix, key)) + continue; + prefix = StrUtil.replace(prefix, key, value); + } + if (!NumberUtil.isNumber(prefix)) + return null; + // 根据探测器序号即suffix解析出Id的后半部分 + if (!NumberUtil.isNumber(suffix)) + return null; + suffix = String.format("%02d", Integer.valueOf(suffix)); + return Integer.valueOf(prefix + suffix); + } + /** * 格式化探测器id解析出台站id * @param detectorCode diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsDetectorsController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsDetectorsController.java index 5e95b332..e24cae7e 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsDetectorsController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsDetectorsController.java @@ -70,9 +70,4 @@ public class GardsDetectorsController { public Map> findStationDetectors(@RequestBody List stationIds){ return gardsDetectorsService.findStationDetectors(stationIds); } - - @GetMapping("duplicateCheck") - public Result duplicateCheck(String field, String value){ - return gardsDetectorsService.duplicateCheck(field, value); - } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java index 15a8b422..05a0bf87 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java @@ -64,6 +64,4 @@ public interface IGardsDetectorsService extends IService { * @return */ Map> findStationDetectors(List stationIds); - - Result duplicateCheck(String field, String value); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java index 3532589c..7ff3aabe 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java @@ -15,6 +15,7 @@ import com.google.common.collect.Lists; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.Prompt; +import org.jeecg.common.properties.DetectorIdFormat; import org.jeecg.common.util.RedisUtil; import org.jeecg.modules.base.entity.configuration.GardsDetectors; import org.jeecg.modules.base.enums.DetectorStatus; @@ -36,6 +37,9 @@ public class GardsDetectorsServiceImpl extends ServiceImpl> findPage(QueryRequest queryRequest, GardsDetectorsSystem gardsDetectors) { Result> result = new Result<>(); @@ -84,9 +88,14 @@ public class GardsDetectorsServiceImpl extends ServiceImpl create(GardsDetectorsSystem detector) { + String detectorCode = detector.getDetectorCode(); + Integer detectorId = idFormat.detectorCodeToId(detectorCode); + if (ObjectUtil.isNull(detectorId)) + return Result.error("Detector Code Is Invalid"); + if (ObjectUtil.isNotNull(getById(detectorId))) + return Result.error("Detector Code Cannot Repeated"); + detector.setDetectorId(detectorId); Integer stationId = detector.getStationId(); - if (ObjectUtil.isNull(stationId)) - return Result.error("Station Id Of The Detector Cannot Be Empty"); // 查询相同台站下所有工作的探测器 按照探测器Id升序排序 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(GardsDetectors::getStationId, stationId); @@ -161,18 +170,4 @@ public class GardsDetectorsServiceImpl extends ServiceImpl duplicateCheck(String field, String value) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - if (StrUtil.equals(field, "DETECTOR_ID")){ - wrapper.eq(GardsDetectors::getDetectorId, value); - return this.list(wrapper).isEmpty() ? Result.OK() : Result.error("Id Cannot Be Repeated"); - }else if (StrUtil.equals(field, "DETECTOR_CODE")){ - wrapper.eq(GardsDetectors::getDetectorCode, value); - return this.list(wrapper).isEmpty() ? Result.OK() : Result.error("Code Cannot Be Repeated"); - }else { - return Result.OK(); - } - } } From 115731a24c86b2d0642c987b9f0ad0f8cf81873d Mon Sep 17 00:00:00 2001 From: nieziyan Date: Thu, 11 Jan 2024 17:14:10 +0800 Subject: [PATCH 13/47] =?UTF-8?q?fix=EF=BC=9A=E5=8F=96=E6=B6=88=E6=8E=A2?= =?UTF-8?q?=E6=B5=8B=E5=99=A8null=E5=80=BC=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/modules/base/entity/configuration/GardsDetectors.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/configuration/GardsDetectors.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/configuration/GardsDetectors.java index 493ab957..32d317ed 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/configuration/GardsDetectors.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/configuration/GardsDetectors.java @@ -23,14 +23,12 @@ public class GardsDetectors implements Serializable { * 探测器id */ @TableId(value = "DETECTOR_ID") - @NotNull(message = "The detector id cannot be empty", groups = {InsertGroup.class, UpdateGroup.class}) private Integer detectorId; /** * 探测器编码 */ @TableField(value = "DETECTOR_CODE") - @NotBlank(message = "The detector code cannot be empty", groups = {InsertGroup.class, UpdateGroup.class}) private String detectorCode; /** From 1bea5eb58b1770b8555e7dc09addcdf7a77d7718 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Thu, 11 Jan 2024 19:32:38 +0800 Subject: [PATCH 14/47] =?UTF-8?q?feat=EF=BC=9A=E6=8E=A2=E6=B5=8B=E5=99=A8c?= =?UTF-8?q?heck?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/properties/DetectorIdFormat.java | 27 ++++++++- .../modules/base/enums/DetectorsStatus.java | 26 --------- .../impl/GardsDetectorsServiceImpl.java | 56 ++++++++++++++++--- .../impl/GardsDetectorsServiceImpl.java | 3 +- 4 files changed, 75 insertions(+), 37 deletions(-) delete mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/DetectorsStatus.java diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/DetectorIdFormat.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/DetectorIdFormat.java index bcca18cf..257c2d75 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/DetectorIdFormat.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/DetectorIdFormat.java @@ -2,7 +2,6 @@ package org.jeecg.common.properties; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.StrUtil; -import io.swagger.models.auth.In; import lombok.Data; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.constant.StringConstant; @@ -50,7 +49,10 @@ public class DetectorIdFormat { return detectorId; } - public Integer detectorCodeToId(String detectorCode){ + /** + * 探测器Code解析出探测器Id + */ + public Integer codeToId(String detectorCode){ if (!StrUtil.contains(detectorCode, StrUtil.UNDERLINE)) return null; String[] split = StrUtil.split(detectorCode, StrUtil.UNDERLINE); @@ -100,4 +102,25 @@ public class DetectorIdFormat { return stationId; } + + /** + * 探测器Id解析出台站Id + */ + public Integer codeToStationId(String detectorCode){ + if (!StrUtil.contains(detectorCode, StrUtil.UNDERLINE)) + return null; + String[] split = StrUtil.split(detectorCode, StrUtil.UNDERLINE); + String stationCode = split[0]; + stationCode = StrUtil.sub(stationCode, 2, stationCode.length()); + for (Map.Entry entry : suffixMap.entrySet()) { + String key = entry.getKey(); + String value = entry.getValue(); + if (!StrUtil.contains(stationCode, key)) + continue; + stationCode = StrUtil.replace(stationCode, key, value); + } + if (!NumberUtil.isNumber(stationCode)) + return null; + return Integer.valueOf(stationCode); + } } diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/DetectorsStatus.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/DetectorsStatus.java deleted file mode 100644 index e5b9c45f..00000000 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/DetectorsStatus.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.jeecg.modules.base.enums; - -/** - * 探测器运行状态 - */ -public enum DetectorsStatus { - - /** - * 未运行 - */ - UNOPERATING("Unoperating"), - /** - * 在运行 - */ - OPERATING("Operating"); - - private String status; - - DetectorsStatus(String type) { - this.status = type; - } - - public String getStatus(){ - return this.status; - } -} diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/GardsDetectorsServiceImpl.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/GardsDetectorsServiceImpl.java index 9a70a65f..d30086eb 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/GardsDetectorsServiceImpl.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/GardsDetectorsServiceImpl.java @@ -1,32 +1,74 @@ package org.jeecg.modules.service.impl; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.ListUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.Prompt; import org.jeecg.common.properties.DetectorIdFormat; import org.jeecg.modules.base.entity.configuration.GardsDetectors; -import org.jeecg.modules.base.enums.DetectorsStatus; +import org.jeecg.modules.base.enums.DetectorStatus; import org.jeecg.modules.mapper.GardsDetectorsMapper; import org.jeecg.modules.service.GardsDetectorsService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Date; -import java.util.Objects; + +import java.util.*; +import java.util.stream.Collectors; @DS("ora") @Service @RequiredArgsConstructor public class GardsDetectorsServiceImpl extends ServiceImpl implements GardsDetectorsService { - private final DetectorIdFormat format; + private final DetectorIdFormat idFormat; /** - * 校验探测器是否存在,不存在则创建 - * @param detectorCode + * 校验探测器是否存在,不存在则创建 */ @Transactional @Override + public GardsDetectors check(String detectorCode) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(GardsDetectors::getDetectorCode, detectorCode); + Optional optional = this.list(wrapper).stream().findFirst(); + if (optional.isPresent()) + return optional.get(); + Integer detectorId = idFormat.codeToId(detectorCode); + Integer stationId = idFormat.codeToStationId(detectorCode); + if (ObjectUtil.isNull(detectorId) || ObjectUtil.isNull(stationId)) + throw new RuntimeException("Invalid Detector Code: " + detectorCode); + GardsDetectors detector = new GardsDetectors(); + detector.setDetectorId(detectorId); + detector.setStationId(stationId); + detector.setDetectorCode(detectorCode); + detector.setStatus(DetectorStatus.ON.getValue()); + + // 查询相同台站下所有工作的探测器 按照探测器Id升序排序 + wrapper.clear(); + wrapper.eq(GardsDetectors::getStationId, stationId); + List detectors = this.list(wrapper); + detectors = detectors.stream() + .filter(item -> StrUtil.equals(StrUtil.trim(item.getStatus()), DetectorStatus.ON.getValue())) + .sorted(Comparator.comparingInt(GardsDetectors::getDetectorId)) + .collect(Collectors.toList()); + // 如果相同台站下没有工作探测器 + if (CollUtil.isEmpty(detectors)) + return this.save(detector) ? detector : null; + // 如果相同台站下有工作探测器 将Id最小的探测器状态置为 Unoperating + GardsDetectors detectorMin = detectors.get(0); + detectorMin.setStatus(DetectorStatus.OFF.getValue()); + detectors = ListUtil.toList(detectorMin, detector); + return this.saveOrUpdateBatch(detectors) ? detector : null; + } + + /*@Transactional + @Override public GardsDetectors check(String detectorCode) { LambdaQueryWrapper detectorsQuery = new LambdaQueryWrapper<>(); detectorsQuery.select(GardsDetectors::getDetectorId); @@ -42,5 +84,5 @@ public class GardsDetectorsServiceImpl extends ServiceImpl create(GardsDetectorsSystem detector) { String detectorCode = detector.getDetectorCode(); - Integer detectorId = idFormat.detectorCodeToId(detectorCode); + Integer detectorId = idFormat.codeToId(detectorCode); if (ObjectUtil.isNull(detectorId)) return Result.error("Detector Code Is Invalid"); if (ObjectUtil.isNotNull(getById(detectorId))) From a7343f19c11c2ea5d4d66ea76a46f13ce6b27825 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Fri, 12 Jan 2024 11:41:56 +0800 Subject: [PATCH 15/47] =?UTF-8?q?feat=EF=BC=9A=E6=8E=A2=E6=B5=8B=E5=99=A8c?= =?UTF-8?q?heck?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/common/properties/DetectorIdFormat.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/DetectorIdFormat.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/DetectorIdFormat.java index 257c2d75..51f0b436 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/DetectorIdFormat.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/DetectorIdFormat.java @@ -63,9 +63,9 @@ public class DetectorIdFormat { for (Map.Entry entry : suffixMap.entrySet()) { String key = entry.getKey(); String value = entry.getValue(); - if (!StrUtil.contains(prefix, key)) - continue; + if (!StrUtil.contains(prefix, key)) continue; prefix = StrUtil.replace(prefix, key, value); + break; } if (!NumberUtil.isNumber(prefix)) return null; @@ -104,7 +104,7 @@ public class DetectorIdFormat { } /** - * 探测器Id解析出台站Id + * 探测器Code解析出台站Id */ public Integer codeToStationId(String detectorCode){ if (!StrUtil.contains(detectorCode, StrUtil.UNDERLINE)) @@ -115,9 +115,9 @@ public class DetectorIdFormat { for (Map.Entry entry : suffixMap.entrySet()) { String key = entry.getKey(); String value = entry.getValue(); - if (!StrUtil.contains(stationCode, key)) - continue; + if (!StrUtil.contains(stationCode, key)) continue; stationCode = StrUtil.replace(stationCode, key, value); + break; } if (!NumberUtil.isNumber(stationCode)) return null; From f44ba359d906a8ccd877cb3c3cf985431cb5cd97 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 12 Jan 2024 14:42:16 +0800 Subject: [PATCH 16/47] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E5=A2=9E=E5=8A=A0=E8=87=AA=E5=8A=A8=E5=A4=84?= =?UTF-8?q?=E7=90=86=E5=88=86=E6=9E=90=E5=BA=93=E8=A1=A8=E5=94=AF=E4=B8=80?= =?UTF-8?q?=E7=BA=A6=E6=9D=9F=E5=BC=82=E5=B8=B8=E7=9A=84=E5=88=A4=E6=96=AD?= =?UTF-8?q?=EF=BC=8C=E4=BB=A5=E5=8F=8A=E8=BF=9D=E5=8F=8D=E5=94=AF=E4=B8=80?= =?UTF-8?q?=E7=BA=A6=E6=9D=9F=E6=80=A7=E9=94=99=E8=AF=AF=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E4=B9=A6=E5=86=99=EF=BC=8C=E8=BF=9D=E5=8F=8D?= =?UTF-8?q?=E5=94=AF=E4=B8=80=E7=BA=A6=E6=9D=9F=E6=80=A7=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/common/constant/RedisConstant.java | 5 ++- .../common/email/EmailServiceManager.java | 35 +++++++++++++++- .../properties/MaximumPoolSizeProperties.java | 2 + .../jeecg/modules/EmailParsingActuator.java | 17 +++++--- .../org/jeecg/modules/enums/ErrorType.java | 3 +- .../modules/exception/AnalyseException.java | 19 +++++++++ .../modules/exception/BAnalyseException.java | 7 +++- .../modules/exception/GAnalyseException.java | 7 +++- .../spectrum/AbstractSpectrumHandler.java | 20 +++++++++- .../jeecg/modules/spectrum/AlertSpectrum.java | 4 +- .../modules/spectrum/DetbkphdSpectrum.java | 4 +- .../modules/spectrum/GasbkphdSpectrum.java | 4 +- .../spectrum/HealthStatusSpectrum.java | 4 +- .../jeecg/modules/spectrum/MetSpectrum.java | 4 +- .../jeecg/modules/spectrum/QcphdSpectrum.java | 4 +- .../modules/spectrum/Sample_B_Analysis.java | 7 +++- .../modules/spectrum/Sample_G_Analysis.java | 15 +++++-- .../modules/spectrum/SamplephdSpectrum.java | 40 ++++++++++++++++--- .../modules/spectrum/SpectrumLogManager.java | 10 +++-- .../spectrum/SpectrumParsingActuator.java | 1 - .../spectrum/SpectrumServiceQuotes.java | 4 ++ 21 files changed, 175 insertions(+), 41 deletions(-) create mode 100644 jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/AnalyseException.java diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/RedisConstant.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/RedisConstant.java index 30122674..f86d600b 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/RedisConstant.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/RedisConstant.java @@ -41,5 +41,8 @@ public interface RedisConstant { String PREFIX_TEMPLATE = "Template:"; // 消息模板 - String UNDEAL_FILE = "Undeal:"; + /** + * 删除失败邮件KEY + */ + String DELETE_FAIL_EMAILS = "delete_fail_emails"; } diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailServiceManager.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailServiceManager.java index c2f8bfe1..faa63a2f 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailServiceManager.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailServiceManager.java @@ -8,14 +8,16 @@ import com.sun.mail.smtp.SMTPAddressFailedException; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.dto.message.MessageDTO; +import org.jeecg.common.constant.RedisConstant; import org.jeecg.common.constant.StringConstant; import org.jeecg.common.constant.SymbolConstant; import org.jeecg.common.email.emuns.MailContentType; import org.jeecg.common.properties.SpectrumPathProperties; import org.jeecg.common.util.DateUtils; +import org.jeecg.common.util.Md5Util; +import org.jeecg.common.util.RedisUtil; import org.jeecg.modules.base.entity.postgre.SysEmail; import org.jetbrains.annotations.NotNull; - import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; @@ -55,6 +57,8 @@ public class EmailServiceManager { /** 收件箱 */ private Folder folder = null; + private RedisUtil redisUtil; + @NotNull public static EmailServiceManager getInstance(){ return new EmailServiceManager(); @@ -72,12 +76,15 @@ public class EmailServiceManager { * 初始化邮件服务管理器 * @param email 邮件属性 */ - public void init(SysEmail email,Integer receiveNum,String temporaryStoragePath,Date systemStartupTime, SpectrumPathProperties pathProperties){ + public void init(SysEmail email, Integer receiveNum, String temporaryStoragePath, + Date systemStartupTime, SpectrumPathProperties pathProperties, + RedisUtil redisUtil){ this.email = email; this.receiveNum = receiveNum; this.temporaryStoragePath = temporaryStoragePath; this.systemStartupTime = systemStartupTime; this.spectrumPathProperties = pathProperties; + this.redisUtil = redisUtil; } /** @@ -569,6 +576,8 @@ public class EmailServiceManager { } catch (MessagingException | UnsupportedEncodingException e) { status = EmailLogManager.STATUS_ERROR; log.error("Email deletion failed, the subject of the email is :{}, the reason is :{}.",subject,e.getMessage()); + String emlName = subject+StringConstant.UNDER_LINE+DateUtils.formatDate(receivedDate,"yyyy-MM-dd HH:mm:ss"); + redisUtil.hset(RedisConstant.DELETE_FAIL_EMAILS,Md5Util.md5Encode(emlName,"UTF-8"),emlName); e.printStackTrace(); }finally { EmailLogEvent removeEvent = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,status,EmailLogManager.DELETEID,subject,receivedDate); @@ -594,4 +603,26 @@ public class EmailServiceManager { e.printStackTrace(); } } + + /** + * 校验邮件 + * 若此次获取的邮件是上次删除失败的邮件直接删除 + * @param message + */ + public boolean check(Message message){ + boolean exist = false; + try { + String subject = MimeUtility.decodeText(message.getSubject()); + Date receivedDate = message.getReceivedDate(); + String emlName = subject+StringConstant.UNDER_LINE+DateUtils.formatDate(receivedDate,"yyyy-MM-dd HH:mm:ss"); + exist = redisUtil.hHasKey(RedisConstant.DELETE_FAIL_EMAILS,Md5Util.md5Encode(emlName,"UTF-8")); + if(exist){ + message.setFlag(Flags.Flag.DELETED,true); + redisUtil.hdel(RedisConstant.DELETE_FAIL_EMAILS,Md5Util.md5Encode(emlName,"UTF-8")); + } + } catch (MessagingException | UnsupportedEncodingException e) { + return exist; + } + return exist; + } } diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/MaximumPoolSizeProperties.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/MaximumPoolSizeProperties.java index 81b10e7b..a2883eaa 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/MaximumPoolSizeProperties.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/MaximumPoolSizeProperties.java @@ -11,4 +11,6 @@ public class MaximumPoolSizeProperties { private Integer station; + private Integer auto; + } diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/EmailParsingActuator.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/EmailParsingActuator.java index 2d2c0ca5..7d6fe72f 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/EmailParsingActuator.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/EmailParsingActuator.java @@ -6,7 +6,6 @@ import org.jeecg.common.email.EmailLogManager; import org.jeecg.common.email.EmailServiceManager; import org.jeecg.common.properties.TaskProperties; import org.jeecg.modules.email.EmailProperties; -import org.jeecg.modules.eneity.event.SpectrumLog; import org.jeecg.modules.spectrum.EmailCounter; import org.jeecg.modules.spectrum.SpectrumLogManager; import org.jeecg.modules.spectrum.SpectrumParsingActuator; @@ -39,7 +38,7 @@ public class EmailParsingActuator extends Thread{ this.systemStartupTime = systemStartupTime; //获取机器可用核心数 - int systemCores = Runtime.getRuntime().availableProcessors(); + int systemCores = spectrumServiceQuotes.getMaximumPoolSizeProperties().getAuto(); int maximumPoolSize = taskProperties.getReceiveNum() > systemCores?taskProperties.getReceiveNum():systemCores; //初始化线程池 @@ -60,10 +59,18 @@ public class EmailParsingActuator extends Thread{ } long start = System.currentTimeMillis(); final EmailServiceManager emailServiceManager = EmailServiceManager.getInstance(); - emailServiceManager.init(this.emailProperties,this.taskProperties.getReceiveNum(),this.taskProperties.getTemporaryStoragePath(),this.systemStartupTime, spectrumServiceQuotes.getSpectrumPathProperties()); + emailServiceManager.init(this.emailProperties,this.taskProperties.getReceiveNum(),this.taskProperties.getTemporaryStoragePath(), + this.systemStartupTime, spectrumServiceQuotes.getSpectrumPathProperties(),spectrumServiceQuotes.getRedisUtil()); try { - final Message[] messages = emailServiceManager.receiveMail(); + Message[] messages = emailServiceManager.receiveMail(); if(ArrayUtils.isNotEmpty(messages)){ + //检验获取的邮件是否在之前删除失败列表中,若在直接调用邮件API删除,并且此次数组里元素也删除 + for(int i=messages.length-1;i>=0;i--){ + final boolean exist = emailServiceManager.check(messages[i]); + if(exist){ + messages = ArrayUtils.remove(messages,i); + } + } CountDownLatch taskLatch = new CountDownLatch(messages.length); for(Message message : messages){ SpectrumParsingActuator spectrumParsingActuator = new SpectrumParsingActuator(); @@ -98,6 +105,4 @@ public class EmailParsingActuator extends Thread{ } } } - - } diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/enums/ErrorType.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/enums/ErrorType.java index 9c002fe4..bc385a57 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/enums/ErrorType.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/enums/ErrorType.java @@ -7,7 +7,8 @@ public enum ErrorType { STATION_ERROR("station_code:%s=0"), FILE_REPEAT("file repeat"), GAS_OR_DET_ERROR("gas or det file is no exist or is error"), - AIR_SAMPLER_FLOW_ERROR("this is no ariSamplerFlow data"); + AIR_SAMPLER_FLOW_ERROR("this is no ariSamplerFlow data"), + INSERT_ERROR("The sample_id:%s has been reported missing in the database"); private String content; diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/AnalyseException.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/AnalyseException.java new file mode 100644 index 00000000..bdc00859 --- /dev/null +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/AnalyseException.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.exception; + +import lombok.Getter; + +public class AnalyseException extends Exception{ + + @Getter + private boolean isDuplicateKeyException = false; + + public AnalyseException(String message) { + super(message); + } + + public AnalyseException(String message, boolean isDuplicateKeyException) { + super(message); + this.isDuplicateKeyException = isDuplicateKeyException; + } + +} diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/BAnalyseException.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/BAnalyseException.java index d0125608..c9270fae 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/BAnalyseException.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/BAnalyseException.java @@ -3,7 +3,7 @@ package org.jeecg.modules.exception; /** * B谱分析异常 */ -public class BAnalyseException extends Exception{ +public class BAnalyseException extends AnalyseException{ /** * Constructs a new exception with the specified detail message. The @@ -16,4 +16,9 @@ public class BAnalyseException extends Exception{ public BAnalyseException(String message) { super(message); } + + public BAnalyseException(String message, boolean isDuplicateKeyException) { + super(message,isDuplicateKeyException); + } + } diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/GAnalyseException.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/GAnalyseException.java index 406dc605..2f69fdfa 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/GAnalyseException.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/GAnalyseException.java @@ -3,7 +3,7 @@ package org.jeecg.modules.exception; /** * B谱分析异常 */ -public class GAnalyseException extends Exception{ +public class GAnalyseException extends AnalyseException{ /** * Constructs a new exception with the specified detail message. The @@ -16,4 +16,9 @@ public class GAnalyseException extends Exception{ public GAnalyseException(String message) { super(message); } + + public GAnalyseException(String message, boolean isDuplicateKeyException) { + super(message,isDuplicateKeyException); + } + } diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AbstractSpectrumHandler.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AbstractSpectrumHandler.java index d2bd62f5..9b8dd0ca 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AbstractSpectrumHandler.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AbstractSpectrumHandler.java @@ -16,6 +16,7 @@ import org.jeecg.modules.eneity.event.SpectrumErrorEvent; import org.jeecg.modules.eneity.event.SpectrumLog; import org.jeecg.modules.enums.ErrorType; import org.jeecg.modules.enums.SpectrumSource; +import org.jeecg.modules.exception.AnalyseException; import org.jeecg.modules.exception.FileRepeatException; import org.jeecg.modules.exception.HeaderBlockException; import org.jeecg.modules.file.FileOperation; @@ -272,9 +273,26 @@ public abstract class AbstractSpectrumHandler extends AbstractChain { final String rootPath = spectrumServiceQuotes.getSpectrumPathProperties().getRootPath(); final String undealPath = spectrumServiceQuotes.getSpectrumPathProperties().getUndealPath(); final String finalPath = rootPath+File.separator+undealPath; - FileOperation.moveFile(spectrumFile,finalPath,true); + //判断文件是否在savefile下已经保存过 + final String savefileName = spectrumServiceQuotes.getSpectrumPathProperties().getSaveFilePath().substring(1); + //若文件已经在savefile了进行复制 + if(spectrumFile.getAbsolutePath().contains(savefileName)){ + FileOperation.copyFile(spectrumFile,finalPath,true); + }else { + //若文件不在savefile 则判断异常是否属于违反唯一约束性 + if (e instanceof AnalyseException) { + AnalyseException exception = (AnalyseException) e; + if (exception.isDuplicateKeyException()) { + this.spectrumFile.delete(); + } + } else { + //如果文件在savefile中没有 并且 不属于违反唯一约束性的异常 将文件移动到undeal + FileOperation.moveFile(spectrumFile,finalPath,true); + } + } } } catch (IOException ex) { + log.error("An error occurred during the process of processing the failed parsing file. The file is: {}, and the reason is: {}",this.spectrumFile.getAbsolutePath(),e.getMessage()); ex.printStackTrace(); } }else if(SpectrumSource.FROM_FILE_SOURCE.getSourceType().equals(spectrumSource) && (e instanceof FileRepeatException)){ diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AlertSpectrum.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AlertSpectrum.java index c91496d6..c0ccad74 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AlertSpectrum.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AlertSpectrum.java @@ -81,10 +81,10 @@ public class AlertSpectrum extends AbstractSpectrumHandler{ this.parseingEmail(); //修改能谱文件名称 this.updateSpectrumFileName(); - //结构体数据入库 - this.handlerOriginalData(); //保存PHD文件到savefile super.saveFileToSavefile(); + //结构体数据入库 + this.handlerOriginalData(); //若本次文件来自于undel目录,解析成功则删除 deleteIfFromUndelFile(); }catch (Exception e){ diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/DetbkphdSpectrum.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/DetbkphdSpectrum.java index a61b6fd0..5995047e 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/DetbkphdSpectrum.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/DetbkphdSpectrum.java @@ -41,10 +41,10 @@ public class DetbkphdSpectrum extends AbstractS_D_Q_G_SpectrumHandler { super.readFileLabel(); //修改能谱文件名称 super.updateSpectrumFileName(); - //结构体数据入库 - super.handlerOriginalData(); //保存PHD文件到savefile super.saveFileToSavefile(); + //结构体数据入库 + super.handlerOriginalData(); //修改状态为解析完成 super.status = SampleStatus.COMPLETE.getValue(); super.updateStatus(); diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/GasbkphdSpectrum.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/GasbkphdSpectrum.java index 8bc4088e..dea30f27 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/GasbkphdSpectrum.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/GasbkphdSpectrum.java @@ -43,10 +43,10 @@ public class GasbkphdSpectrum extends AbstractS_D_Q_G_SpectrumHandler { super.readFileLabel(); //修改能谱文件名称 super.updateSpectrumFileName(); - //结构体数据入库 - super.handlerOriginalData(); //保存PHD文件到savefile super.saveFileToSavefile(); + //结构体数据入库 + super.handlerOriginalData(); //修改状态为解析完成 super.status = SampleStatus.COMPLETE.getValue(); super.updateStatus(); diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/HealthStatusSpectrum.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/HealthStatusSpectrum.java index 13f4af23..b85c6c0c 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/HealthStatusSpectrum.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/HealthStatusSpectrum.java @@ -80,10 +80,10 @@ public class HealthStatusSpectrum extends AbstractSpectrumHandler{ this.parseingEmail(); //修改能谱文件名称 this.updateSpectrumFileName(); - //结构体数据入库 - this.handlerOriginalData(); //保存PHD文件到savefile super.saveFileToSavefile(); + //结构体数据入库 + this.handlerOriginalData(); //把流程日志保存到日志目录 this.saveLogToLogDir(); //若本次文件来自于undel目录,解析成功则删除 diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/MetSpectrum.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/MetSpectrum.java index 7c0141d6..7125a537 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/MetSpectrum.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/MetSpectrum.java @@ -71,10 +71,10 @@ public class MetSpectrum extends AbstractSpectrumHandler{ this.parseingEmail(); //修改能谱文件名称 this.updateSpectrumFileName(); - //结构体数据入库 - this.handlerOriginalData(); //保存PHD文件到savefile super.saveFileToSavefile(); + //结构体数据入库 + this.handlerOriginalData(); //把流程日志保存到日志目录 this.saveLogToLogDir(); //若本次文件来自于undel目录,解析成功则删除 diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/QcphdSpectrum.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/QcphdSpectrum.java index d2444204..d75b6a9a 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/QcphdSpectrum.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/QcphdSpectrum.java @@ -42,10 +42,10 @@ public class QcphdSpectrum extends AbstractS_D_Q_G_SpectrumHandler { super.readFileLabel(); //修改能谱文件名称 super.updateSpectrumFileName(); - //结构体数据入库 - super.handlerOriginalData(); //保存PHD文件到savefile super.saveFileToSavefile(); + //结构体数据入库 + super.handlerOriginalData(); //修改状态为解析完成 super.status = SampleStatus.COMPLETE.getValue(); super.updateStatus(); diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_B_Analysis.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_B_Analysis.java index dad40675..5a052851 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_B_Analysis.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_B_Analysis.java @@ -23,6 +23,7 @@ import org.jeecg.modules.native_jni.EnergySpectrumHandler; import org.jeecg.modules.native_jni.struct.BgAnalyseResult; import org.jeecg.modules.native_jni.struct.EnergySpectrumStruct; import org.jeecg.modules.service.BlockConstant; +import org.springframework.dao.DuplicateKeyException; import org.springframework.transaction.TransactionStatus; import java.io.*; import java.time.Instant; @@ -170,7 +171,11 @@ public class Sample_B_Analysis implements BlockConstant { pushToRedis(); }catch (Exception e){ analyseFail = true; - throw new BAnalyseException(e.getMessage()); + if (e instanceof DuplicateKeyException) { + throw new BAnalyseException(e.getMessage(), true); + } else { + throw new BAnalyseException(e.getMessage()); + } }finally { this.endAnalysisTime = new Date(); //如果分析成功并且analyses对象不为空 diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_G_Analysis.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_G_Analysis.java index ce1c6a2e..f5fc6e9e 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_G_Analysis.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_G_Analysis.java @@ -3,7 +3,6 @@ package org.jeecg.modules.spectrum; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.io.FileUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.StrUtil; @@ -20,6 +19,7 @@ import org.jeecg.common.constant.enums.SpectrumSystemType; import org.jeecg.common.properties.ParameterProperties; import org.jeecg.common.properties.SpectrumPathProperties; import org.jeecg.common.util.*; +import org.jeecg.modules.ErrorLogManager; import org.jeecg.modules.base.bizVo.AttributeItemVo; import org.jeecg.modules.base.dto.*; import org.jeecg.modules.base.entity.original.GardsSampleData; @@ -28,11 +28,14 @@ import org.jeecg.modules.base.enums.DSType; import org.jeecg.modules.base.enums.MiddleDataType; import org.jeecg.modules.base.enums.SpectrumType; import org.jeecg.modules.config.datasource.DataSourceSwitcher; +import org.jeecg.modules.eneity.event.SpectrumErrorEvent; import org.jeecg.modules.entity.vo.*; +import org.jeecg.modules.enums.ErrorType; import org.jeecg.modules.exception.GAnalyseException; import org.jeecg.modules.file.FileOperation; import org.jeecg.modules.native_jni.struct.EnergySpectrumStruct; import org.jeecgframework.core.util.ApplicationContextUtil; +import org.springframework.dao.DuplicateKeyException; import org.springframework.transaction.TransactionStatus; import org.w3c.dom.*; import org.xml.sax.SAXException; @@ -43,13 +46,13 @@ import javax.xml.parsers.ParserConfigurationException; import java.io.File; import java.io.IOException; import java.lang.reflect.Field; +import java.sql.SQLIntegrityConstraintViolationException; import java.text.ParseException; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; import java.util.*; -import static org.jeecg.modules.service.BlockConstant.XE_131m; @Data @Slf4j @@ -124,7 +127,7 @@ public class Sample_G_Analysis { this.dataType = energySpectrumStruct.data_type; this.sampleInputFilename = sampleData.getInputFileName(); this.sampleFilename = StringUtils.substring(sampleData.getInputFileName(), - sampleData.getInputFileName().lastIndexOf((StringConstant.SLASH)+1)); + sampleData.getInputFileName().lastIndexOf((StringConstant.SLASH))+1); } public void analysis() throws GAnalyseException{ @@ -194,7 +197,11 @@ public class Sample_G_Analysis { }catch (Exception e){ e.printStackTrace(); log.error("Sample_G_Analysis", e); - throw new GAnalyseException("Sample Analyse Error at "+DateUtils.formatDate(new Date(),"yyyy-MM-dd HH:mm:ss")); + if (e instanceof DuplicateKeyException) { + throw new GAnalyseException("Sample Analyse Error at "+DateUtils.formatDate(new Date(),"yyyy-MM-dd HH:mm:ss"), true); + } else { + throw new GAnalyseException("Sample Analyse Error at "+DateUtils.formatDate(new Date(),"yyyy-MM-dd HH:mm:ss")); + } } log.info("Gamma自动处理分析--End"); } diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SamplephdSpectrum.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SamplephdSpectrum.java index fe2a68d1..8cd0b4d4 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SamplephdSpectrum.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SamplephdSpectrum.java @@ -1,8 +1,18 @@ package org.jeecg.modules.spectrum; +import org.jeecg.modules.ErrorLogManager; import org.jeecg.modules.base.enums.DataType; import org.jeecg.modules.base.enums.SampleStatus; import org.jeecg.modules.base.enums.SystemType; +import org.jeecg.modules.eneity.event.SpectrumErrorEvent; +import org.jeecg.modules.enums.ErrorType; +import org.jeecg.modules.enums.SpectrumSource; +import org.jeecg.modules.exception.AnalyseException; +import org.jeecg.modules.exception.GAnalyseException; +import org.springframework.dao.DuplicateKeyException; + +import java.sql.SQLIntegrityConstraintViolationException; +import java.util.Date; import java.util.Objects; /** @@ -42,12 +52,20 @@ public class SamplephdSpectrum extends AbstractS_D_Q_G_SpectrumHandler { super.readFileLabel(); //修改能谱文件名称 super.updateSpectrumFileName(); + //保存PHD文件到savefile + //如果文件来自于邮箱或filesource则在存储原始库之前需移动到savefile,便于和input_file_name字段对应 + if(!SpectrumSource.FORM_FILE_UNDEL.getSourceType().equals(super.spectrumSource)){ + super.saveFileToSavefile(); + } //结构体数据入库 super.handlerOriginalData(); //进行B、G(P)谱分析 this.autoAnalysis(); //保存PHD文件到savefile - super.saveFileToSavefile(); + //如果文件来自于undel必须到分析结束后才能移动到savefile,否则可能导致本次处理再次失败然后就移动到savefile了 + if(SpectrumSource.FORM_FILE_UNDEL.getSourceType().equals(super.spectrumSource)){ + super.saveFileToSavefile(); + } //修改状态为解析完成 super.status = SampleStatus.COMPLETE.getValue(); super.updateStatus(); @@ -56,12 +74,22 @@ public class SamplephdSpectrum extends AbstractS_D_Q_G_SpectrumHandler { }catch (Exception e){ //异常返回文件名称用于报错日志 super.returnFileName.append(super.spectrumFile.getName()); - //修改状态为解析失败 - super.status = SampleStatus.FAIL.getValue(); - super.updateStatus(); - //处理解析失败的文件 - super.handleParseingFailFile(e); + if (e instanceof AnalyseException) { + AnalyseException exception = (AnalyseException) e; + if (exception.isDuplicateKeyException()) { + ErrorLogManager.getInstance().write(new SpectrumErrorEvent(new Date(), ErrorType.INSERT_ERROR, super.spectrumFile.getName(), String.valueOf(this.sampleData.getSampleId()))); + } + //处理解析失败的文件 + super.handleParseingFailFile(e); + } else { + //修改状态为解析失败 + super.status = SampleStatus.FAIL.getValue(); + super.updateStatus(); + + //处理解析失败的文件 + super.handleParseingFailFile(e); + } throw e; }finally { if(Objects.nonNull(this.parsingProcessLog)){ diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumLogManager.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumLogManager.java index dea3e018..3e814be2 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumLogManager.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumLogManager.java @@ -65,10 +65,12 @@ public class SpectrumLogManager { * 保存所有日志 */ public void saveAllLog(){ - if(!execLogMap.isEmpty()){ - execLogMap.forEach((k,v)->{ - this.saveLog(k); - }); + synchronized (execLogMap){ + if(!execLogMap.isEmpty()){ + execLogMap.forEach((k,v)->{ + this.saveLog(k); + }); + } } } } diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumParsingActuator.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumParsingActuator.java index e382fd6f..dc6a46b9 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumParsingActuator.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumParsingActuator.java @@ -25,7 +25,6 @@ public class SpectrumParsingActuator implements Runnable{ private final static String MSG_TYPE = "MSG_TYPE DATA"; private final static String EMAIL_STOP = "STOP"; - /** * 邮件对象 */ diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumServiceQuotes.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumServiceQuotes.java index ea4dc666..9158d08c 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumServiceQuotes.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumServiceQuotes.java @@ -5,6 +5,7 @@ import lombok.RequiredArgsConstructor; import org.jeecg.common.properties.*; import org.jeecg.common.util.NameStandUtil; import org.jeecg.common.util.RedisStreamUtil; +import org.jeecg.common.util.RedisUtil; import org.jeecg.modules.datasource.OraDataSourceProperties; import org.jeecg.modules.service.*; import org.springframework.context.ApplicationContext; @@ -81,6 +82,9 @@ public class SpectrumServiceQuotes { private final ApplicationContext applicationContext; + private final RedisUtil redisUtil; + + private final MaximumPoolSizeProperties maximumPoolSizeProperties; /** * 原始库插入数据锁 */ From ba810df5d21d821326a4dc67ac6debdff51a1c5d Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 12 Jan 2024 14:48:01 +0800 Subject: [PATCH 17/47] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E6=8F=92=E5=85=A5=E6=95=B0=E6=8D=AE=E8=BF=9D?= =?UTF-8?q?=E5=8F=8D=E5=94=AF=E4=B8=80=E7=BA=A6=E6=9D=9F=E6=80=A7=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E5=86=85=E5=AE=B9sampleId=E6=9C=AA=E6=9B=BF=E6=8D=A2?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/jeecg/common/constant/RedisConstant.java | 2 ++ .../src/main/java/org/jeecg/modules/ErrorLogManager.java | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/RedisConstant.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/RedisConstant.java index f86d600b..9cd85b76 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/RedisConstant.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/RedisConstant.java @@ -45,4 +45,6 @@ public interface RedisConstant { * 删除失败邮件KEY */ String DELETE_FAIL_EMAILS = "delete_fail_emails"; + + String UNDEAL_FILE = "Undeal:"; } diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/ErrorLogManager.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/ErrorLogManager.java index 6f6d03bc..5e830a23 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/ErrorLogManager.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/ErrorLogManager.java @@ -51,7 +51,9 @@ public class ErrorLogManager { //台站找不到,格式化报错信息 if(event.getErrorType().equals(ErrorType.STATION_ERROR)){ errorContent = String.format(ErrorType.STATION_ERROR.getContent(),event.getFormatArgs()); - }else{ + } else if (event.getErrorType().equals(ErrorType.INSERT_ERROR)) { + errorContent = String.format(ErrorType.INSERT_ERROR.getContent(), event.getFormatArgs()); + } else{ errorContent = event.getErrorType().getContent(); } //header、acquisition、ariSamplerFlow错误使用mesg_id生成文件名称 From 00a61f60c697d6059c00682b6242b4376bc493ab Mon Sep 17 00:00:00 2001 From: panbaolin <123456> Date: Fri, 12 Jan 2024 15:07:39 +0800 Subject: [PATCH 18/47] =?UTF-8?q?fix:1.=E4=BF=AE=E6=94=B9Sample=E5=88=86?= =?UTF-8?q?=E6=9E=90=E5=BC=82=E5=B8=B8=E6=97=B6=E9=92=88=E5=AF=B9=E8=BF=9D?= =?UTF-8?q?=E5=8F=8D=E5=94=AF=E4=B8=80=E6=80=A7=E7=BA=A6=E6=9D=9F=E7=9A=84?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/modules/spectrum/SamplephdSpectrum.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SamplephdSpectrum.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SamplephdSpectrum.java index 8cd0b4d4..3680d36f 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SamplephdSpectrum.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SamplephdSpectrum.java @@ -75,21 +75,20 @@ public class SamplephdSpectrum extends AbstractS_D_Q_G_SpectrumHandler { //异常返回文件名称用于报错日志 super.returnFileName.append(super.spectrumFile.getName()); + //修改状态为解析失败 + super.status = SampleStatus.FAIL.getValue(); if (e instanceof AnalyseException) { AnalyseException exception = (AnalyseException) e; if (exception.isDuplicateKeyException()) { ErrorLogManager.getInstance().write(new SpectrumErrorEvent(new Date(), ErrorType.INSERT_ERROR, super.spectrumFile.getName(), String.valueOf(this.sampleData.getSampleId()))); + }else{ + super.updateStatus(); } - //处理解析失败的文件 - super.handleParseingFailFile(e); } else { - //修改状态为解析失败 - super.status = SampleStatus.FAIL.getValue(); super.updateStatus(); - - //处理解析失败的文件 - super.handleParseingFailFile(e); } + //处理解析失败的文件 + super.handleParseingFailFile(e); throw e; }finally { if(Objects.nonNull(this.parsingProcessLog)){ From f7e51db3bcedd47465a8d42b665e7988efd5bb27 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 12 Jan 2024 15:49:11 +0800 Subject: [PATCH 19/47] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E7=A7=BB=E5=8A=A8=E6=96=87=E4=BB=B6=E5=9C=A8?= =?UTF-8?q?savefile=E5=B7=B2=E7=BB=8F=E6=9C=89=E7=9A=84=E6=83=85=E5=86=B5?= =?UTF-8?q?=E4=B8=8B=E5=A2=9E=E5=8A=A0=E5=88=A4=E6=96=AD=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E4=B8=8D=E6=98=AF=E8=BF=9D=E5=8F=8D=E5=94=AF=E4=B8=80=E7=BA=A6?= =?UTF-8?q?=E6=9D=9F=E6=80=A7=E7=9A=84=E5=BC=82=E5=B8=B8=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=EF=BC=8C=E4=B8=8D=E6=98=AF=E5=B0=B1=E7=A7=BB=E5=8A=A8=E5=88=B0?= =?UTF-8?q?undeal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/modules/spectrum/AbstractSpectrumHandler.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AbstractSpectrumHandler.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AbstractSpectrumHandler.java index 9b8dd0ca..2da09334 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AbstractSpectrumHandler.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AbstractSpectrumHandler.java @@ -277,7 +277,9 @@ public abstract class AbstractSpectrumHandler extends AbstractChain { final String savefileName = spectrumServiceQuotes.getSpectrumPathProperties().getSaveFilePath().substring(1); //若文件已经在savefile了进行复制 if(spectrumFile.getAbsolutePath().contains(savefileName)){ - FileOperation.copyFile(spectrumFile,finalPath,true); + if (!(e instanceof AnalyseException)) { + FileOperation.copyFile(spectrumFile,finalPath,true); + } }else { //若文件不在savefile 则判断异常是否属于违反唯一约束性 if (e instanceof AnalyseException) { From 9a01e503d4936d841f7a50b5f802fef7709c0781 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 15 Jan 2024 10:47:00 +0800 Subject: [PATCH 20/47] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86SOH,M?= =?UTF-8?q?ET=E6=96=87=E4=BB=B6=E5=AD=98=E5=82=A8=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E4=B8=AD=E5=A6=82=E6=9E=9C=E6=98=AF=E5=8D=A0=E4=BD=8D=E6=95=B0?= =?UTF-8?q?=E6=8D=AE-999999=E5=AD=98=E5=82=A8=E6=97=B6=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E8=B6=85=E5=87=BA=E7=B2=BE=E5=BA=A6=E8=8C=83?= =?UTF-8?q?=E5=9B=B4=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/common/util/NumberFormatUtil.java | 28 +++++++++++++++++++ .../service/impl/MetSpectrumServiceImpl.java | 14 ++++++---- .../service/impl/SOHSpectrumServiceImpl.java | 8 ++++-- .../impl/GardsStationsServiceImpl.java | 6 ---- 4 files changed, 41 insertions(+), 15 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/NumberFormatUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/NumberFormatUtil.java index 36e1043e..94b60649 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/NumberFormatUtil.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/NumberFormatUtil.java @@ -6,6 +6,8 @@ import org.springframework.stereotype.Component; import java.math.BigDecimal; import java.math.MathContext; +import java.util.Arrays; +import java.util.List; @Component public class NumberFormatUtil { @@ -115,4 +117,30 @@ public class NumberFormatUtil { return value; } + public Double DoubleLimit(double data) { + BigDecimal number = new BigDecimal(data); + String limit = number.toPlainString(); + double rData=DoubleLimit(limit); + return rData; + } + + public double DoubleLimit(String data) { + double rData = Double.parseDouble(data); + String first = data; + List lstTemp = Arrays.asList(data.split("\\.")); + if(lstTemp.size()>1) { + first = lstTemp.get(0); + } + if(first.length()>3) { + StringBuffer temp= new StringBuffer("-"); + for(int pos=1;pos implements IMetSpectrumService { private final GardsStationsService stationsService; + private final NumberFormatUtil numberFormatUtil; /** * 保存气象谱数据 @@ -54,12 +56,12 @@ public class MetSpectrumServiceImpl extends ServiceImpl getGardsStations() { - if (redisUtil.hasKey("stationMap")){ - redisUtil.del("stationMap"); - } - if (redisUtil.hasKey("stationInfoMap")) { - redisUtil.del("stationInfoMap"); - } List gardsStations = this.baseMapper.selectList(new LambdaQueryWrapper<>()); Map stationMap = gardsStations.stream().collect(Collectors.toMap(GardsStations::getStationId, GardsStations::getStationCode)).entrySet().stream() .collect(Collectors.toMap(entry -> entry.getKey().toString(), Map.Entry::getValue));; From bd3f76d8a47d3d969592dd995419514687408e30 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Mon, 15 Jan 2024 13:54:19 +0800 Subject: [PATCH 21/47] =?UTF-8?q?fix=EF=BC=9A=E5=87=BA/=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/modules/spectrum/AlertSpectrum.java | 6 ++++++ .../org/jeecg/modules/spectrum/HealthStatusSpectrum.java | 7 +++++++ .../main/java/org/jeecg/modules/spectrum/MetSpectrum.java | 7 +++++++ 3 files changed, 20 insertions(+) diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AlertSpectrum.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AlertSpectrum.java index c0ccad74..c701086f 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AlertSpectrum.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AlertSpectrum.java @@ -1,5 +1,6 @@ package org.jeecg.modules.spectrum; +import cn.hutool.core.util.ObjectUtil; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.constant.StringConstant; import org.jeecg.common.properties.SpectrumPathProperties; @@ -88,6 +89,11 @@ public class AlertSpectrum extends AbstractSpectrumHandler{ //若本次文件来自于undel目录,解析成功则删除 deleteIfFromUndelFile(); }catch (Exception e){ + // 如果解析流程异常 入库开始/结束时间赋初始值 + if (ObjectUtil.isNull(this.startIntoDatabaseTime)) + this.startIntoDatabaseTime = new Date(); + if (ObjectUtil.isNull(this.endIntoDatabaseTime)) + this.endIntoDatabaseTime = new Date(); //异常返回文件名称用于报错日志 super.returnFileName.append(super.spectrumFile.getName()); diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/HealthStatusSpectrum.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/HealthStatusSpectrum.java index b85c6c0c..2fea9251 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/HealthStatusSpectrum.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/HealthStatusSpectrum.java @@ -1,5 +1,6 @@ package org.jeecg.modules.spectrum; +import cn.hutool.core.util.ObjectUtil; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.constant.StringConstant; import org.jeecg.common.properties.SpectrumPathProperties; @@ -89,6 +90,12 @@ public class HealthStatusSpectrum extends AbstractSpectrumHandler{ //若本次文件来自于undel目录,解析成功则删除 deleteIfFromUndelFile(); }catch (Exception e){ + // 如果解析流程异常 入库开始/结束时间赋初始值 + if (ObjectUtil.isNull(this.startIntoDatabaseTime)) + this.startIntoDatabaseTime = new Date(); + if (ObjectUtil.isNull(this.endIntoDatabaseTime)) + this.endIntoDatabaseTime = new Date(); + //异常返回文件名称用于报错日志 super.returnFileName.append(super.spectrumFile.getName()); //处理解析失败的文件 diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/MetSpectrum.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/MetSpectrum.java index 7125a537..4bd5d96c 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/MetSpectrum.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/MetSpectrum.java @@ -1,5 +1,6 @@ package org.jeecg.modules.spectrum; +import cn.hutool.core.util.ObjectUtil; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.constant.StringConstant; import org.jeecg.common.properties.SpectrumPathProperties; @@ -80,6 +81,12 @@ public class MetSpectrum extends AbstractSpectrumHandler{ //若本次文件来自于undel目录,解析成功则删除 deleteIfFromUndelFile(); }catch (Exception e){ + // 如果解析流程异常 入库开始/结束时间赋初始值 + if (ObjectUtil.isNull(this.startIntoDatabaseTime)) + this.startIntoDatabaseTime = new Date(); + if (ObjectUtil.isNull(this.endIntoDatabaseTime)) + this.endIntoDatabaseTime = new Date(); + //异常返回文件名称用于报错日志 super.returnFileName.append(super.spectrumFile.getName()); throw e; From f9211a5bacedabe495126a6b91b8f64ee1fa426c Mon Sep 17 00:00:00 2001 From: panbaolin <123456> Date: Mon, 15 Jan 2024 17:08:15 +0800 Subject: [PATCH 22/47] =?UTF-8?q?fix:1.=E4=BF=AE=E6=94=B9=E5=A4=84?= =?UTF-8?q?=E7=90=86=E5=A4=B1=E8=B4=A5=E6=96=87=E4=BB=B6=E6=97=B6=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E5=88=A4=E6=96=AD=E9=80=BB=E8=BE=91=EF=BC=8C=E8=A7=A3?= =?UTF-8?q?=E5=86=B3get=20or=20get=E5=BC=82=E5=B8=B8=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=B8=8D=E8=BF=9Bundel=E7=9B=AE=E5=BD=95=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/spectrum/AbstractSpectrumHandler.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AbstractSpectrumHandler.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AbstractSpectrumHandler.java index 2da09334..88a0e361 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AbstractSpectrumHandler.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AbstractSpectrumHandler.java @@ -277,7 +277,16 @@ public abstract class AbstractSpectrumHandler extends AbstractChain { final String savefileName = spectrumServiceQuotes.getSpectrumPathProperties().getSaveFilePath().substring(1); //若文件已经在savefile了进行复制 if(spectrumFile.getAbsolutePath().contains(savefileName)){ - if (!(e instanceof AnalyseException)) { + boolean copyFlag = false; + if (e instanceof AnalyseException) { + AnalyseException exception = (AnalyseException) e; + if (!exception.isDuplicateKeyException()) { + copyFlag = true; + } + }else{ + copyFlag = true; + } + if(copyFlag){ FileOperation.copyFile(spectrumFile,finalPath,true); } }else { From 33f164a96f7edd31d6e1ceccf6ed1a9b22d5f959 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 15 Jan 2024 19:16:12 +0800 Subject: [PATCH 23/47] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92beta?= =?UTF-8?q?=EF=BC=8Cgamma=E7=94=9F=E6=88=90=E5=B9=B6=E5=AD=98=E5=82=A8?= =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92=E7=9A=84=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E6=8A=A5=E5=91=8A=E6=96=87=E4=BB=B6=E5=88=B0?= =?UTF-8?q?ftp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/common/util/NameStandUtil.java | 6 + .../org/jeecg/common/util/PHDFileUtil.java | 484 ++++++++++++++++-- .../mapper/xml/GardsAnalysesManMapper.xml | 4 +- .../mapper/xml/SpectrumAnalysisMapper.xml | 12 +- .../service/impl/GammaServiceImpl.java | 161 +++--- .../GardsAnalysesSpectrumServiceImpl.java | 4 + .../impl/SpectrumAnalysisServiceImpl.java | 156 +++--- 7 files changed, 629 insertions(+), 198 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/NameStandUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/NameStandUtil.java index 07b92660..778d06e3 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/NameStandUtil.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/NameStandUtil.java @@ -79,6 +79,12 @@ public class NameStandUtil { return path.toString(); } + public Map NameStandard(String dataType, String spectrumQuantity, Double acqusitionLiveTime, String sampleFileName, String measurementId) { + String suffix = GetSuffix(dataType, spectrumQuantity,String.valueOf(acqusitionLiveTime)); + Map fileNames = NameStandardByName(sampleFileName, measurementId,suffix); + return fileNames; + } + public Map NameStandard(PHDFile fileAnlyse) { String suffix = GetSuffix(fileAnlyse.getMsgInfo().getData_type(), fileAnlyse.getHeader().getSpectrum_quantity(),String.valueOf(fileAnlyse.getAcq().getAcquisition_live_time())); Map fileNames = NameStandardByName(fileAnlyse.getFilename(), fileAnlyse.getHeader().getMeasurement_id(),suffix); diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/common/util/PHDFileUtil.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/common/util/PHDFileUtil.java index 84f78490..82dddbcd 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/common/util/PHDFileUtil.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/common/util/PHDFileUtil.java @@ -27,6 +27,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.io.*; +import java.text.DecimalFormat; import java.text.ParseException; import java.util.*; import java.util.stream.Collectors; @@ -628,44 +629,6 @@ public class PHDFileUtil extends AbstractLogOrReport { return rData; } -// public File analyzeFile(String path, String fileName) { -// //连接ftp -// FTPClient ftpClient = ftpUtil.LoginFTP(); -// InputStream inputStream = null; -// File file = null; -// try { -// //被动模式 -// ftpClient.enterLocalPassiveMode(); -// //设置文件类型--二进制文件 -// ftpClient.setFileType(FTP.BINARY_FILE_TYPE); -// // -// ftpClient.setControlEncoding("UTF-8"); -// ftpClient.setFileTransferMode(FTPClient.STREAM_TRANSFER_MODE); -// //切换文件路径 -// ftpClient.changeWorkingDirectory(path); -// inputStream = ftpClient.retrieveFileStream(fileName); -// if (Objects.nonNull(inputStream)){ -// file = File.createTempFile("betaGamma", null); -// //将ftp文件的输入流复制给临时文件 -// FileUtils.copyInputStreamToFile(inputStream, file); -// } -// } catch (IOException e) { -// throw new RuntimeException(e); -// } finally { -// try { -// if (Objects.nonNull(ftpClient)){ -// ftpClient.disconnect(); -// } -// if (Objects.nonNull(inputStream)){ -// inputStream.close(); -// } -// } catch (IOException e) { -// throw new RuntimeException(e); -// } -// } -// return file; -// } - public boolean analyzeSpectrum(File sampleTmp, File gasTmp, File detTmp, BgCalibratePara BgCalPara, Map map, BetaDataFile betaDataFile) { boolean bRet = true; //调用动态库解析文件 @@ -1987,6 +1950,449 @@ public class PHDFileUtil extends AbstractLogOrReport { } } + public String OutPutRnRpt(BetaDataFile betaDataFile) { + GardsCalibrationSpectrum gammaCalibrationParamS = new GardsCalibrationSpectrum(); + GardsCalibrationSpectrum gammaCalibrationParamG = new GardsCalibrationSpectrum(); + GardsCalibrationSpectrum gammaCalibrationParamD = new GardsCalibrationSpectrum(); + GardsCalibrationSpectrum gammaCalibrationParamES = new GardsCalibrationSpectrum(); + GardsCalibrationSpectrum gammaCalibrationParamEG = new GardsCalibrationSpectrum(); + GardsCalibrationSpectrum gammaCalibrationParamED = new GardsCalibrationSpectrum(); + + GardsCalibrationSpectrum betaCalibrationParamS = new GardsCalibrationSpectrum(); + GardsCalibrationSpectrum betaCalibrationParamG = new GardsCalibrationSpectrum(); + GardsCalibrationSpectrum betaCalibrationParamD = new GardsCalibrationSpectrum(); + GardsCalibrationSpectrum betaCalibrationParamES = new GardsCalibrationSpectrum(); + GardsCalibrationSpectrum betaCalibrationParamEG = new GardsCalibrationSpectrum(); + GardsCalibrationSpectrum betaCalibrationParamED = new GardsCalibrationSpectrum(); + + StringBuffer strBuffer = new StringBuffer(); + //对分析后的内容进行数据获取 + List channelsSpectrums = betaDataFile.getRoiChannelsSpectrumList(); + List roiChannelsSpectrumsSample = channelsSpectrums.stream().filter(item -> item.getDataType().equalsIgnoreCase("S")).collect(Collectors.toList()); + List roiChannelsSpectrumsGas = channelsSpectrums.stream().filter(item -> item.getDataType().equalsIgnoreCase("G")).collect(Collectors.toList()); + List roiChannelsSpectrumsDet = channelsSpectrums.stream().filter(item -> item.getDataType().equalsIgnoreCase("D")).collect(Collectors.toList()); + List resultsSpectrums = betaDataFile.getRoiResultsSpectrumList(); + List xeResultsSpectrums = betaDataFile.getXeResultsSpectrumList(); + //#SAMPLE: LIMITS PER ROI GAMMA + List gammaCalibrationParamList = betaDataFile.getGammaCalibrationSpectrumList(); + List gammaCalibrationSpectrumEList = betaDataFile.getGammaCalibrationSpectrumEList(); + for (int i=0; i betaCalibrationParamList = betaDataFile.getBetaCalibrationSpectrumList(); + List betaCalibrationSpectrumEList = betaDataFile.getBetaCalibrationSpectrumEList(); + for (int i=0; i viewXeData(List xeResultsSpectrumList) { List xeResultsViewList = new LinkedList<>(); if (CollectionUtils.isNotEmpty(xeResultsSpectrumList)) { @@ -2004,4 +2410,6 @@ public class PHDFileUtil extends AbstractLogOrReport { return xeResultsViewList; } + + } diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/GardsAnalysesManMapper.xml b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/GardsAnalysesManMapper.xml index d913861a..5578527d 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/GardsAnalysesManMapper.xml +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/GardsAnalysesManMapper.xml @@ -17,7 +17,9 @@ TOTALCOUNTS = #{analyses.totalCounts}, BASELINE_PATH = #{analyses.baselinePath}, LC_PATH = #{analyses.lcPath}, - SCAC_PATH = #{analyses.scacPath} + SCAC_PATH = #{analyses.scacPath}, + LOG_PATH = #{analyses.logPath}, + REPORT_PAHT = #{analyses.reportPath} WHERE IDANALYSIS = #{analyses.idAnalysis} diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/SpectrumAnalysisMapper.xml b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/SpectrumAnalysisMapper.xml index 081eae55..d9203460 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/SpectrumAnalysisMapper.xml +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/SpectrumAnalysisMapper.xml @@ -900,7 +900,9 @@ USEDGASPHD=#{gardsAnalyses.usedgasphd}, USEDDETPHD=#{gardsAnalyses.useddetphd}, USEDGASPHD_ID=#{gardsAnalyses.usedgasphdId}, - USEDDETPHD_ID=#{gardsAnalyses.useddetphdId} + USEDDETPHD_ID=#{gardsAnalyses.useddetphdId}, + LOG_PATH = #{gardsAnalyses.logPath}, + REPORT_PAHT = #{gardsAnalyses.reportPath} WHERE SAMPLE_ID=#{gardsAnalyses.sampleId} AND ANALYST=#{gardsAnalyses.analyst} @@ -921,7 +923,9 @@ USEDGASPHD, USEDDETPHD, USEDGASPHD_ID, - USEDDETPHD_ID) + USEDDETPHD_ID, + LOG_PATH, + REPORT_PAHT) VALUES(#{gardsAnalyses.sampleId}, to_date(#{gardsAnalyses.analysisBeginStr},'YYYY-MM-DD hh24:mi:ss'), to_date(#{gardsAnalyses.analysisEndStr},'YYYY-MM-DD hh24:mi:ss'), @@ -934,7 +938,9 @@ #{gardsAnalyses.usedgasphd}, #{gardsAnalyses.useddetphd}, #{gardsAnalyses.usedgasphdId}, - #{gardsAnalyses.useddetphdId}) + #{gardsAnalyses.useddetphdId}, + #{gardsAnalyses.logPath}, + #{gardsAnalyses.reportPath}) 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 55a945d6..8bc2f59d 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 @@ -3,6 +3,7 @@ package org.jeecg.modules.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.FileUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ReUtil; @@ -27,6 +28,7 @@ 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.*; @@ -187,6 +189,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi // 从数据库中读取phd其他相关信息 boolean bRet = getResultFromDB(dbName, analyst, sampleId, phd, result); if (!redisUtil.hasKey(userName+StringPool.DASH+phd.getHeader().getSystem_type()) || !redisUtil.hasKey(userName+StringPool.DASH+phd.getHeader().getSystem_type()+"-list")) { + //读取缓存的全部核素信息 + Map allNuclideMap = (Map) redisUtil.get("AllNuclideMap"); // 查询当前用户关联的核素信息 List userLib = new LinkedList<>(); // 从postgreSql中获取当前用户关注的核素信息 如果当前用户没有 则返回管理员的 @@ -195,7 +199,12 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi userLib = defaultNuclideSpectrumService.findNuclidesByUserName("admin", phd.getHeader().getSystem_type().toUpperCase()); } userLib = userLib.stream().sorted().collect(Collectors.toList()); - Map nuclideMap = GetNuclideLines(userLib); + Map nuclideMap = new HashMap<>(); + for (Map.Entry entry:allNuclideMap.entrySet()) { + if (userLib.contains(entry.getKey())) { + nuclideMap.put(entry.getKey(), entry.getValue()); + } + } redisUtil.set(userName+StringPool.DASH+phd.getHeader().getSystem_type()+"-list", userLib); redisUtil.set(userName+StringPool.DASH+phd.getHeader().getSystem_type(), nuclideMap); } @@ -219,6 +228,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi return result; } if (!redisUtil.hasKey(userName+StringPool.DASH+phd.getHeader().getSystem_type()) || !redisUtil.hasKey(userName+StringPool.DASH+phd.getHeader().getSystem_type()+"-list")) { + //读取缓存的全部核素信息 + Map allNuclideMap = (Map) redisUtil.get("AllNuclideMap"); // 查询当前用户关联的核素信息 List userLib = new LinkedList<>(); // 从postgreSql中获取当前用户关注的核素信息 如果当前用户没有 则返回管理员的 @@ -227,7 +238,12 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi userLib = defaultNuclideSpectrumService.findNuclidesByUserName("admin", phd.getHeader().getSystem_type().toUpperCase()); } userLib = userLib.stream().sorted().collect(Collectors.toList()); - Map nuclideMap = GetNuclideLinesLocal(userLib); + Map nuclideMap = new HashMap<>(); + for (Map.Entry entry:allNuclideMap.entrySet()) { + if (userLib.contains(entry.getKey())) { + nuclideMap.put(entry.getKey(), entry.getValue()); + } + } redisUtil.set(userName+StringPool.DASH+phd.getHeader().getSystem_type()+"-list", userLib); redisUtil.set(userName+StringPool.DASH+phd.getHeader().getSystem_type(), nuclideMap); } @@ -497,6 +513,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi // 从数据库中读取phd其他相关信息 boolean bRet = getResultFromDB(dbName, analyst, sampleId, phd, result); if (!redisUtil.hasKey(userName+StringPool.DASH+phd.getHeader().getSystem_type()) || !redisUtil.hasKey(userName+StringPool.DASH+phd.getHeader().getSystem_type()+"-list")) { + //读取缓存的全部核素信息 + Map allNuclideMap = (Map) redisUtil.get("AllNuclideMap"); // 查询当前用户关联的核素信息 List userLib = new LinkedList<>(); // 从postgreSql中获取当前用户关注的核素信息 如果当前用户没有 则返回管理员的 @@ -505,7 +523,12 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi userLib = defaultNuclideSpectrumService.findNuclidesByUserName("admin", phd.getHeader().getSystem_type().toUpperCase()); } userLib = userLib.stream().sorted().collect(Collectors.toList()); - Map nuclideMap = GetNuclideLines(userLib); + Map nuclideMap = new HashMap<>(); + for (Map.Entry entry:allNuclideMap.entrySet()) { + if (userLib.contains(entry.getKey())) { + nuclideMap.put(entry.getKey(), entry.getValue()); + } + } redisUtil.set(userName+StringPool.DASH+phd.getHeader().getSystem_type()+"-list", userLib); redisUtil.set(userName+StringPool.DASH+phd.getHeader().getSystem_type(), nuclideMap); } @@ -879,6 +902,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi return result; } if (!redisUtil.hasKey(userName+StringPool.DASH+phd.getHeader().getSystem_type()) || !redisUtil.hasKey(userName+StringPool.DASH+phd.getHeader().getSystem_type()+"-list")) { + //读取缓存的全部核素信息 + Map allNuclideMap = (Map) redisUtil.get("AllNuclideMap"); // 查询当前用户关联的核素信息 List userLib = new LinkedList<>(); // 从postgreSql中获取当前用户关注的核素信息 如果当前用户没有 则返回管理员的 @@ -887,7 +912,12 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi userLib = defaultNuclideSpectrumService.findNuclidesByUserName("admin", phd.getHeader().getSystem_type().toUpperCase()); } userLib = userLib.stream().sorted().collect(Collectors.toList()); - Map nuclideMap = GetNuclideLinesLocal(userLib); + Map nuclideMap = new HashMap<>(); + for (Map.Entry entry:allNuclideMap.entrySet()) { + if (userLib.contains(entry.getKey())) { + nuclideMap.put(entry.getKey(), entry.getValue()); + } + } redisUtil.set(userName+StringPool.DASH+phd.getHeader().getSystem_type()+"-list", userLib); redisUtil.set(userName+StringPool.DASH+phd.getHeader().getSystem_type(), nuclideMap); } @@ -1317,85 +1347,6 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi return result; } - public Map GetNuclideLines(List nuclideList) { - Map mapLines = new HashMap<>(); - if (nuclideList.size() < 1) { - return mapLines; - } - for (String name : nuclideList) { - NuclideLines nlines = new NuclideLines(); - List 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); - } - List halfs = spectrumAnalysisMapper.getHalf(nuclideList); - for (int m = 0; m < halfs.size(); m++) { - NuclideLines nuclideLines = mapLines.get(halfs.get(m).getName()); - nuclideLines.setHalflife(halfs.get(m).getHalf() == null ? 0 : halfs.get(m).getHalf() * 86400);// 将天转换成秒 - mapLines.put(halfs.get(m).getName(), nuclideLines); - } - return mapLines; - } - - public Map GetNuclideLinesLocal(List nuclideList) { - Map mapLines = new HashMap<>(); - if (nuclideList.size() < 1) { - return mapLines; - } - //需要查询的两个表的名称 - String table_lines = "lines"; - String table_lib = "libdata"; - // 建立数据库连接 - Connection conn = dbUtil.openDB(); - Statement statement = null; - try { - statement = conn.createStatement(); - for (String name : nuclideList) { - NuclideLines nlines = new NuclideLines(); - //根据核素名称查询相关核素信息 - String sql1 = "select fullname, energy, energy_uncert, yield, yield_uncert, key_flag from "+table_lines+" where name = '"+name+"' Order by energy"; - ResultSet resultSet = statement.executeQuery(sql1); - int j=0; - while (resultSet.next()) { - nlines.getFullNames().add(resultSet.getString("fullname")); - nlines.getVenergy().add(resultSet.getDouble("energy")); - nlines.getVuncertE().add(resultSet.getDouble("energy_uncert")); - nlines.getVyield().add(resultSet.getDouble("yield") / 100); - nlines.getVuncertY().add(resultSet.getDouble("yield_uncert")); - if (Objects.nonNull(resultSet.getInt("key_flag")) && resultSet.getInt("key_flag") > 0) { - nlines.key_flag = j; - nlines.maxYeildIdx = j; - } - ++j; - } - mapLines.put(name, nlines); - } - String names = "'" + String.join("','", nuclideList) + "'"; - String sql2 = "select name, halflife from "+table_lib+" where name in ("+names+")"; - ResultSet executeQuery = statement.executeQuery(sql2); - while (executeQuery.next()) { - NuclideLines nuclideLines = mapLines.get(executeQuery.getString("name")); - nuclideLines.setHalflife(Double.valueOf(executeQuery.getDouble("halflife")) == null ? 0 : executeQuery.getDouble("halflife") * 86400);// 将天转换成秒 - mapLines.put(executeQuery.getString("name"), nuclideLines); - } - } catch (SQLException e) { - throw new RuntimeException(e); - } finally { - dbUtil.close(statement, conn); - } - return mapLines; - } - @Override public Result InteractiveTool(Integer sampleId, String fileName, HttpServletRequest request) { Result result = new Result(); @@ -4149,6 +4100,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi boolean save = defaultNuclideSpectrumService.saveNuclidesByUserName(userLibraryName, userName, phd.getHeader().getSystem_type().toUpperCase()); if (save) { result.success("Modified successfully!"); + // 重新计算峰值 + Map allNuclideMap = (Map) redisUtil.get("AllNuclideMap"); // 查询当前用户关联的核素信息 List userLib = new LinkedList<>(); // 从postgreSql中获取当前用户关注的核素信息 如果当前用户没有 则返回管理员的 @@ -4156,7 +4109,12 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi if (CollectionUtils.isEmpty(userLib)) { userLib = defaultNuclideSpectrumService.findNuclidesByUserName("admin", phd.getHeader().getSystem_type().toUpperCase()); } - Map nuclideMap = GetNuclideLines(userLib); + Map nuclideMap = new HashMap<>(); + for (Map.Entry entry:allNuclideMap.entrySet()) { + if (userLib.contains(entry.getKey())) { + nuclideMap.put(entry.getKey(), entry.getValue()); + } + } redisUtil.set(userName+StringPool.DASH+phd.getHeader().getSystem_type()+"-list", userLib); redisUtil.set(userName+StringPool.DASH+phd.getHeader().getSystem_type(), nuclideMap); } else { @@ -4977,7 +4935,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public Result saveToDB(String fileName, HttpServletRequest request) { Result result = new Result(); String userName = JwtUtil.getUserNameByToken(request); @@ -5088,6 +5046,39 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi mdcSpectrumService.saveMDCGamma(phd, idAnalysis); if (bRet) { phd.setStatus("R"); + //分析成功后存储日志文件和报告文件 + { + String logPathName = middleData.analyses_absolute_LogPath.substring(0, middleData.analyses_absolute_LogPath.lastIndexOf(StringPool.SLASH)); + String logFileName = middleData.analyses_absolute_LogPath.substring(middleData.analyses_absolute_LogPath.lastIndexOf(StringPool.SLASH)+1); + File logFile = new File(logFileName); + try { + FileUtil.writeString(gammaFileUtil.GetLogContent(middleData), logFile, "UTF-8"); + FileInputStream in = new FileInputStream(logFile); + ftpUtil.saveFile(logPathName, logFileName, in); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } finally { + if (Objects.nonNull(logFile)) { + logFile.delete(); + } + } + } + { + String rptPathName = middleData.analyses_absolute_ReportPath.substring(0, middleData.analyses_absolute_ReportPath.lastIndexOf(StringPool.SLASH)); + String rptFileName = middleData.analyses_absolute_ReportPath.substring(middleData.analyses_absolute_ReportPath.lastIndexOf(StringPool.SLASH)+1); + File rptFile = new File(rptFileName); + try { + FileUtil.writeString(gammaFileUtil.GetReportContent(middleData), rptFile, "UTF-8"); + FileInputStream in = new FileInputStream(rptFile); + ftpUtil.saveFile(rptPathName, rptFileName, in); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } finally { + if (Objects.nonNull(rptFile)) { + rptFile.delete(); + } + } + } List paths = new LinkedList<>(); paths.add(middleData.analyses_lc_filePath); paths.add(middleData.analyses_scac_filePath); diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsAnalysesSpectrumServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsAnalysesSpectrumServiceImpl.java index 1d71bf85..d1543cef 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsAnalysesSpectrumServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsAnalysesSpectrumServiceImpl.java @@ -40,6 +40,8 @@ public class GardsAnalysesSpectrumServiceImpl extends ServiceImpl fileNames = phdFileUtil.FileNameByStandardForm(filePath, sampleFileName); + //匹配detFile + boolean detStatus = false; + String detaFileName = fileData.get("detaFileName"); + String detphd = phdFileUtil.GetMatchFile(detaFileName, fileNames, DataTypeAbbr.DETBKPHD.getType()); + if (StringUtils.isNotBlank(detphd)) { + detaFileName = detphd; + detStatus = true; + } + map.put("sampleFileName", sampleFileName); + map.put("gasFileName", ""); + map.put("detFileName", detaFileName); + map.put("detFileStatus", detStatus); + map.put("qcFileName", ""); + map.put("sampleSystemType", sampleSystemType); } } if (CollectionUtils.isNotEmpty(map)) { @@ -3771,7 +3791,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public Result saveToDB(BgDataAnlyseResultIn anlyseResultIn, HttpServletRequest request) { Result result = new Result(); Map map = new HashMap<>(); @@ -3885,6 +3905,22 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements result.error500("sampleFile save failed"); return result; } + //获取日志,报告文件存放路径 + EnergySpectrumStruct sampleStruct = betaDataFile.getSampleStruct(); + String dataType = sampleStruct.data_type; + String subDirSavePath = ""; + subDirSavePath+=nameStandUtil.GetSysTemSubdir(sampleStruct.system_type); + subDirSavePath+=nameStandUtil.GetDateTypeSubdir(dataType); + String path = nameStandUtil.SetFileDir(subDirSavePath, betaDataFile.getSampleFileName()); + Map fileNameMap = nameStandUtil.NameStandard(dataType, sampleStruct.spectrum_quantity, sampleStruct.acquisition_live_time, betaDataFile.getSampleFileName(), sampleStruct.measurement_id); + String logName = fileNameMap.get("log"); + String qsLogPath= path+StringPool.SLASH+userName+"_"+logName; + qsLogPath = qsLogPath.replace(StringPool.BACK_SLASH, StringPool.SLASH); + String rptName = fileNameMap.get("rpt"); + String qsReportPath="Arr"+StringPool.SLASH+path+StringPool.SLASH+userName+"_"+rptName; + qsReportPath = qsReportPath.replace(StringPool.BACK_SLASH, StringPool.SLASH); + String analyses_absolute_LogPath=spectrumPathProperties.getLogPath()+StringPool.SLASH+qsLogPath; + String analyses_absolute_ReportPath=spectrumPathProperties.getSaveFilePath()+StringPool.SLASH+qsReportPath; //根据文件名称查询对应的sampleId--- sampleFile gasFile detFile sampleId = spectrumAnalysisMapper.getSampleId(sampleFilePathName); gasId = spectrumAnalysisMapper.getSampleId(gasFilePathName); @@ -3904,6 +3940,8 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements gardsAnalyses.setUsedgasphdId(gasId); gardsAnalyses.setUseddetphdId(detId); gardsAnalyses.setAnalyst(anlyseResultIn.getUserName()); + gardsAnalyses.setLogPath(qsLogPath); + gardsAnalyses.setReportPath(qsReportPath); if (Objects.nonNull(isExist)){ spectrumAnalysisMapper.updateGardsAnalyses(gardsAnalyses); }else {//如果没有分析过就新增--GARDS_ANALYSES @@ -4012,6 +4050,40 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements File qcTmp = new File(betaDataFile.getQcTmpPath()); ftpUtil.saveFile(StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + qcFilePathName.substring(0, qcFilePathName.lastIndexOf(StringPool.SLASH)), anlyseResultIn.getQcFileName(), new FileInputStream(qcTmp)); } + //分析成功后存储日志文件和报告文件 + { + String logPathName = analyses_absolute_LogPath.substring(0, analyses_absolute_LogPath.lastIndexOf(StringPool.SLASH)); + String logFileName = analyses_absolute_LogPath.substring(analyses_absolute_LogPath.lastIndexOf(StringPool.SLASH)+1); + String logFilePath = parameterProperties.getLogFilePath() + File.separator + DateUtils.formatDate(new Date(), "yyyy-MM-dd") + File.separator + betaDataFile.getSampleFileName().replace("PHD", "log"); + File logFile = new File(logFilePath); + try { + FileInputStream in = new FileInputStream(logFile); + ftpUtil.saveFile(logPathName, logFileName, in); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } finally { + if (Objects.nonNull(logFile)) { + logFile.delete(); + } + } + } + { + String rptContent = phdFileUtil.OutPutRnRpt(betaDataFile); + String rptPathName = analyses_absolute_ReportPath.substring(0, analyses_absolute_ReportPath.lastIndexOf(StringPool.SLASH)); + String rptFileName = analyses_absolute_ReportPath.substring(analyses_absolute_ReportPath.lastIndexOf(StringPool.SLASH)+1); + File rptFile = new File(rptFileName); + try { + FileUtil.writeString(rptContent, rptFile, "UTF-8"); + FileInputStream in = new FileInputStream(rptFile); + ftpUtil.saveFile(rptPathName, rptFileName, in); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } finally { + if (Objects.nonNull(rptFile)) { + rptFile.delete(); + } + } + } } catch (FileNotFoundException e) { throw new RuntimeException(e); } @@ -5471,6 +5543,17 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements roiResultsSpectrumList.add(roiResults); } anlyseResultIn.setRoiResultsSpectrumList(roiResultsSpectrumList); + betaDataFile.getXeResultsSpectrumList().forEach(item -> { + if (item.getNuclideName().equals(XeNuclideName.XE_131m.getType())) { + item.setNidFlag(anlyseResultIn.getXe131mFlag()); + } else if (item.getNuclideName().equals(XeNuclideName.XE_133.getType())) { + item.setNidFlag(anlyseResultIn.getXe133Flag()); + } else if (item.getNuclideName().equals(XeNuclideName.XE_133m.getType())) { + item.setNidFlag(anlyseResultIn.getXe133mFlag()); + } else if (item.getNuclideName().equals(XeNuclideName.XE_135.getType())) { + item.setNidFlag(anlyseResultIn.getXe135Flag()); + } + }); } } } catch (Exception e) { @@ -5559,75 +5642,6 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements return calibrationPairsList; } -// public void getROILimit(BgDataAnlyseResultIn anlyseResultIn) { -// File sampleTmp = null; -// try { -// //获取ftp文件路径下临时文件 -// sampleTmp = phdFileUtil.analyzeFile(anlyseResultIn.getSampleFilePath(), anlyseResultIn.getSampleFileName()); -// if (Objects.nonNull(sampleTmp)){ -// EnergySpectrumStruct sourceData = EnergySpectrumHandler.getSourceData(sampleTmp.getAbsolutePath()); -// List poiBX1 = sourceData.POI_B_x1; -// List poiBX2 = sourceData.POI_B_x2; -// List poiGY1 = sourceData.POI_G_y1; -// List poiGY2 = sourceData.POI_G_y2; -// //ROI Limit -// List report_limit_roi = new LinkedList<>(); -// for(int pos=1;pos<=poiBX1.size();pos++) { -// report_limit_roi.add(String.valueOf(pos)); -// } -// List beginB = new LinkedList<>(); -// for(int pos=1;pos<=poiBX1.size();pos++) { -// beginB.add(String.valueOf(poiBX1.get(pos))); -// } -// List endB = new LinkedList<>(); -// for(int pos=0;pos beginG = new LinkedList<>(); -// for(int pos=1;pos<=poiGY1.size();pos++) { -// beginG.add(String.valueOf(poiGY1.get(pos))); -// } -// List endG = new LinkedList<>(); -// for(int pos=0;pos ratio_id = sourceData.ratio_id; -// List ROI_num_highter_G_energy_ROI = sourceData.ROI_num_highter_G_energy_ROI; -// List ROI_num_lower_G_energy_ROI = sourceData.ROI_num_lower_G_energy_ROI; -// List count_ratio = sourceData.count_ratio; -// List count_ratio_uncertainty = sourceData.count_ratio_uncertainty; -// List countRatioList = new LinkedList<>(); -// for(int pos=0;pos countRatioUncertaintyList = new LinkedList<>(); -// for(int pos=0;pos bg_efficiency = sourceData.bg_efficiency; -// List nuclide_name = sourceData.nuclide_name; -// List ROI_number = sourceData.ROI_number; -// List uncertainty = sourceData.uncertainty; -// List efficiencyList = new LinkedList<>(); -// for(int pos=0;pos uncertaintyList = new LinkedList<>(); -// for(int pos=0;pos getCalibration(BgDataAnlyseResultIn anlyseResultIn, Integer sampleId, Integer gasId, Integer detId, Integer idAnalysis) { List calibrationSpectrumList = new LinkedList<>(); if (Objects.nonNull(sampleId)) { From 46c79e8ade58bc5b94c8479ce8915889af08e063 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 15 Jan 2024 19:20:46 +0800 Subject: [PATCH 24/47] =?UTF-8?q?=E8=87=AA=E5=BB=BA=E5=8F=B0=E7=AB=99?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E4=B8=8D=E5=AD=98=E5=9C=A8=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SpectrumAnalysisServiceImpl.java | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java index f116b60c..9edf7d59 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java @@ -348,29 +348,12 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements map.put("qcFileName", qcphd); map.put("qcFileStatus", qcStatus); map.put("sampleSystemType", sampleSystemType); - } else if (sampleSystemType.equals(SystemType.GAMMA.getType()) || sampleSystemType.equals(SystemType.PARTICULATE.getType())) { + } else { map.put("sampleFileName", sampleFileName); map.put("gasFileName", ""); map.put("detFileName", ""); map.put("qcFileName", ""); map.put("sampleSystemType", sampleSystemType); - } else if (sampleSystemType.equals(SystemType.SELFSTATION.getType())) { - //加载并获取当前路径下所有的文件名称并进行名称格式化 仅需要格式化和sample文件同一个台站 名称格式化为最终名称 - List fileNames = phdFileUtil.FileNameByStandardForm(filePath, sampleFileName); - //匹配detFile - boolean detStatus = false; - String detaFileName = fileData.get("detaFileName"); - String detphd = phdFileUtil.GetMatchFile(detaFileName, fileNames, DataTypeAbbr.DETBKPHD.getType()); - if (StringUtils.isNotBlank(detphd)) { - detaFileName = detphd; - detStatus = true; - } - map.put("sampleFileName", sampleFileName); - map.put("gasFileName", ""); - map.put("detFileName", detaFileName); - map.put("detFileStatus", detStatus); - map.put("qcFileName", ""); - map.put("sampleSystemType", sampleSystemType); } } if (CollectionUtils.isNotEmpty(map)) { From bf7aa121db045cd87f30462858c7b5fa6ce82b81 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 15 Jan 2024 19:47:42 +0800 Subject: [PATCH 25/47] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E5=88=86=E6=9E=90=E4=BF=9D=E5=AD=98=E5=85=A5=E5=BA=93=E5=90=8E?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A5=E5=BF=97=E6=96=87=E4=BB=B6=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E6=97=A0=E6=B3=95=E5=86=8D=E6=9F=A5=E7=9C=8B=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/service/impl/SpectrumAnalysisServiceImpl.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java index 9edf7d59..59cf8f53 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java @@ -4044,10 +4044,6 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements ftpUtil.saveFile(logPathName, logFileName, in); } catch (FileNotFoundException e) { throw new RuntimeException(e); - } finally { - if (Objects.nonNull(logFile)) { - logFile.delete(); - } } } { From 78840a6470c0051495e2ed68bf74e12cbeb8d690 Mon Sep 17 00:00:00 2001 From: xiaoguangbin Date: Tue, 16 Jan 2024 16:01:02 +0800 Subject: [PATCH 26/47] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0Docker=E7=9A=84?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../armd-abnormal-alarm-start/Dockerfile | 15 ++ .../armd-auto-process-start/Dockerfile | 24 +++ .../armd-cloud-gateway/Dockerfile | 12 +- .../armd-cloud-nacos/Dockerfile | 24 ++- .../armd-log-manage-start/Dockerfile | 15 ++ .../armd-spectrum-analysis-start/Dockerfile | 26 +++ .../armd-station-operation-start/Dockerfile | 21 ++ .../armd-system-cloud-start/Dockerfile | 12 +- jeecg-server-cloud/docker-compose-base.yml | 76 ++++--- jeecg-server-cloud/docker-compose.yml | 186 +++++++++++++----- 10 files changed, 314 insertions(+), 97 deletions(-) create mode 100644 jeecg-server-cloud/armd-abnormal-alarm-start/Dockerfile create mode 100644 jeecg-server-cloud/armd-auto-process-start/Dockerfile create mode 100644 jeecg-server-cloud/armd-log-manage-start/Dockerfile create mode 100644 jeecg-server-cloud/armd-spectrum-analysis-start/Dockerfile create mode 100644 jeecg-server-cloud/armd-station-operation-start/Dockerfile diff --git a/jeecg-server-cloud/armd-abnormal-alarm-start/Dockerfile b/jeecg-server-cloud/armd-abnormal-alarm-start/Dockerfile new file mode 100644 index 00000000..b1e66ddb --- /dev/null +++ b/jeecg-server-cloud/armd-abnormal-alarm-start/Dockerfile @@ -0,0 +1,15 @@ +FROM armd-jdk64:latest + +MAINTAINER armd@163.com + +RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime + +RUN mkdir -p /armd-abnormal-alarm-cloud + +WORKDIR /armd-abnormal-alarm-cloud + +EXPOSE 7006 + +ADD armd-abnormal-alarm-start-3.5.1.jar ./ + +CMD sleep 1;java -Xms512m -Xmx1g -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar armd-abnormal-alarm-start-3.5.1.jar diff --git a/jeecg-server-cloud/armd-auto-process-start/Dockerfile b/jeecg-server-cloud/armd-auto-process-start/Dockerfile new file mode 100644 index 00000000..30e2b5a4 --- /dev/null +++ b/jeecg-server-cloud/armd-auto-process-start/Dockerfile @@ -0,0 +1,24 @@ +FROM armd-jdk64:latest + +MAINTAINER armd@163.com + +RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime + +COPY --from=armd-jdk64 /usr/local/jdk/lib/ /usr/local/jdk/lib/ + +RUN mkdir -p /armd-auto-process + +WORKDIR /armd-auto-process + +EXPOSE 7004 + +ADD armd-auto-process-start-3.5.1.jar ./ + +COPY setup.tar ./ +RUN ls ./ +RUN tar -C ./ -xvf ./setup.tar && \ + rm ./setup.tar + +ENV LD_LIBRARY_PATH /usr/local/jdk/lib + +CMD sleep 1;java -Xms512m -Xmx1g -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar armd-auto-process-start-3.5.1.jar diff --git a/jeecg-server-cloud/armd-cloud-gateway/Dockerfile b/jeecg-server-cloud/armd-cloud-gateway/Dockerfile index 84c9b490..4ff4437a 100644 --- a/jeecg-server-cloud/armd-cloud-gateway/Dockerfile +++ b/jeecg-server-cloud/armd-cloud-gateway/Dockerfile @@ -1,15 +1,15 @@ -FROM anapsix/alpine-java:8_server-jre_unlimited +FROM armd-jdk64:latest -MAINTAINER jeecgos@163.com +MAINTAINER armd@163.com RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime -RUN mkdir -p /jeecg-cloud-gateway +RUN mkdir -p /armd-cloud-gateway -WORKDIR /jeecg-cloud-gateway +WORKDIR /armd-cloud-gateway EXPOSE 9999 -ADD ./target/jeecg-cloud-gateway-3.5.1.jar ./ +ADD armd-cloud-gateway-3.5.1.jar ./ -CMD sleep 1;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-gateway-3.5.1.jar \ No newline at end of file +CMD sleep 1;java-Xms512m -Xmx1g -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar armd-cloud-gateway-3.5.1.jar \ No newline at end of file diff --git a/jeecg-server-cloud/armd-cloud-nacos/Dockerfile b/jeecg-server-cloud/armd-cloud-nacos/Dockerfile index 881dd9ed..eaa54267 100644 --- a/jeecg-server-cloud/armd-cloud-nacos/Dockerfile +++ b/jeecg-server-cloud/armd-cloud-nacos/Dockerfile @@ -1,25 +1,23 @@ -#FROM anapsix/alpine-java:8_server-jre_unlimited -FROM openjdk:8 +FROM jdk64:latest -MAINTAINER jeecgos@163.com +MAINTAINER armd@163.com RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime -RUN mkdir -p /jeecg-cloud-nacos +RUN mkdir -p /armd-cloud-nacos -WORKDIR /jeecg-cloud-nacos +WORKDIR /armd-cloud-nacos EXPOSE 8848 - -ENV DB_URL="" -ENV DB_USER="" -ENV DB_PASSWORD="" -ENV DB_PLATFORM="" -ENV SERVER_PORT="" +ENV DB_URL="jdbc:postgresql://192.168.8.103:5432/nacos" +ENV DB_USER="postgres" +ENV DB_PASSWORD="123456" +ENV DB_PLATFORM="postgresql" +ENV SERVER_PORT="8848" EXPOSE $SERVER_PORT -ADD ./target/jeecg-cloud-nacos-3.5.1.jar ./ +ADD armd-cloud-nacos-3.5.1.jar ./ -CMD sleep 5;java -DSERVER_PORT=$SERVER_PORT -DDB_URL=$DB_URL -DDB_USER=$DB_USER -DDB_PASSWORD=$DB_PASSWORD -DDB_PLATFORM=$DB_PLATFORM -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar jeecg-cloud-nacos-3.5.1.jar \ No newline at end of file +CMD sleep 5;java -DSERVER_PORT=$SERVER_PORT -DDB_URL=$DB_URL -DDB_USER=$DB_USER -DDB_PASSWORD=$DB_PASSWORD -DDB_PLATFORM=$DB_PLATFORM -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar armd-cloud-nacos-3.5.1.jar \ No newline at end of file diff --git a/jeecg-server-cloud/armd-log-manage-start/Dockerfile b/jeecg-server-cloud/armd-log-manage-start/Dockerfile new file mode 100644 index 00000000..15c8ab5e --- /dev/null +++ b/jeecg-server-cloud/armd-log-manage-start/Dockerfile @@ -0,0 +1,15 @@ +FROM armd-jdk64:latest + +MAINTAINER armd@163.com + +RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime + +RUN mkdir -p /armd-log-manage + +WORKDIR /armd-log-manage + +EXPOSE 7005 + +ADD armd-log-manage-start-3.5.1.jar ./ + +CMD sleep 1;java -Xms512m -Xmx1g -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar armd-log-manage-start-3.5.1.jar diff --git a/jeecg-server-cloud/armd-spectrum-analysis-start/Dockerfile b/jeecg-server-cloud/armd-spectrum-analysis-start/Dockerfile new file mode 100644 index 00000000..f8038290 --- /dev/null +++ b/jeecg-server-cloud/armd-spectrum-analysis-start/Dockerfile @@ -0,0 +1,26 @@ +FROM armd-jdk:latest + +MAINTAINER armd@163.com + +RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime + +# 将共享库复制到容器中 +COPY --from=armd-jdk /usr/local/jdk/lib/ /usr/local/jdk/lib/ + +RUN mkdir -p /armd-spectrum-analysis + +WORKDIR /armd-spectrum-analysis + +EXPOSE 7007 + +ADD armd-spectrum-analysis-start-3.5.1.jar ./ +# 将所有配置文件复制到armd-spectrum-analysis同级目录并解压 +COPY setup.tar ./ +RUN ls ./ +RUN tar -C ./ -xvf ./setup.tar && \ + rm ./setup.tar + +# 设置LD_LIBRARY_PATH环境变量 +ENV LD_LIBRARY_PATH /usr/local/jdk/lib + +CMD sleep 1;java -Xms512m -Xmx1g -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar armd-spectrum-analysis-start-3.5.1.jar diff --git a/jeecg-server-cloud/armd-station-operation-start/Dockerfile b/jeecg-server-cloud/armd-station-operation-start/Dockerfile new file mode 100644 index 00000000..6e2acfed --- /dev/null +++ b/jeecg-server-cloud/armd-station-operation-start/Dockerfile @@ -0,0 +1,21 @@ +FROM armd-jdk64:latest + +MAINTAINER armd@163.com + +RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime + +RUN mkdir -p /armd-station-operation + +WORKDIR /armd-station-operation + +EXPOSE 7002 + +ADD armd-station-operation-start-3.5.1.jar ./ + +# 将所有配置文件复制到armd-spectrum-analysis同级目录并解压 +COPY setup.tar ./ +RUN ls ./ +RUN tar -C ./ -xvf ./setup.tar && \ + rm ./setup.tar + +CMD sleep 1;java -Xms512m -Xmx1g -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar armd-station-operation-start-3.5.1.jar diff --git a/jeecg-server-cloud/armd-system-cloud-start/Dockerfile b/jeecg-server-cloud/armd-system-cloud-start/Dockerfile index 21f83d9f..553b57ed 100644 --- a/jeecg-server-cloud/armd-system-cloud-start/Dockerfile +++ b/jeecg-server-cloud/armd-system-cloud-start/Dockerfile @@ -1,15 +1,15 @@ -FROM anapsix/alpine-java:8_server-jre_unlimited +FROM armd-jdk64:latest -MAINTAINER jeecgos@163.com +MAINTAINER armd@163.com RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime -RUN mkdir -p /jeecg-system-cloud +RUN mkdir -p /armd-system-cloud -WORKDIR /jeecg-system-cloud +WORKDIR /armd-system-cloud EXPOSE 7001 -ADD ./target/jeecg-system-cloud-start-3.5.1.jar ./ +ADD armd-system-cloud-start-3.5.1.jar ./ -CMD sleep 1;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar jeecg-system-cloud-start-3.5.1.jar \ No newline at end of file +CMD sleep 1;java -Xms512m -Xmx1g -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar armd-system-cloud-start-3.5.1.jar diff --git a/jeecg-server-cloud/docker-compose-base.yml b/jeecg-server-cloud/docker-compose-base.yml index 2c9efd11..8d7c8a80 100644 --- a/jeecg-server-cloud/docker-compose-base.yml +++ b/jeecg-server-cloud/docker-compose-base.yml @@ -1,31 +1,63 @@ version: '2' services: - jeecg-boot-mysql: + jdk64: build: - context: ../db - environment: - MYSQL_ROOT_PASSWORD: root - MYSQL_ROOT_HOST: '%' - TZ: Asia/Shanghai - restart: always - container_name: jeecg-boot-mysql - command: - --character-set-server=utf8mb4 - --collation-server=utf8mb4_general_ci - --explicit_defaults_for_timestamp=true - --lower_case_table_names=1 - --max_allowed_packet=128M - --default-authentication-plugin=caching_sha2_password - ports: - - 3306:3306 + context: ./jdk64 + container_name: jdk64 + profiles: + - jdk64 - jeecg-boot-redis: - image: redis:5.0 + armd-redis: + build: + context: ./redis ports: - 6379:6379 - restart: always - container_name: jeecg-boot-redis - hostname: jeecg-boot-redis + container_name: armd-redis + hostname: armd-redis + restart: on-failure + environment: + - TZ=Asia/Shanghai + extra_hosts: + - "armd-redis:172.18.0.2" + profiles: + - redis + + armd-vue: + build: + context: ./nginx + ports: + - 443:443 + restart: on-failure + environment: + - TZ=Asia/Shanghai + container_name: armd-vue + profiles: + - nginx + volumes: + - "/home/rmsops/nginx/vue-config:/usr/share/nginx/html/static" + - "/home/rmsops/nginx/map:/usr/share/nginx/map" + - "/home/rmsops/nginx/logs:/etc/nginx/logs/" + - "/home/rmsops/nginx/config:/etc/nginx/conf.d/" + +# jeecg-boot-mysql: +# build: +# context: ../db +# environment: +# MYSQL_ROOT_PASSWORD: root +# MYSQL_ROOT_HOST: '%' +# TZ: Asia/Shanghai +# restart: always +# container_name: jeecg-boot-mysql +# command: +# --character-set-server=utf8mb4 +# --collation-server=utf8mb4_general_ci +# --explicit_defaults_for_timestamp=true +# --lower_case_table_names=1 +# --max_allowed_packet=128M +# --default-authentication-plugin=caching_sha2_password +# ports: +# - 3306:3306 + # jeecg-boot-rabbitmq: # image: rabbitmq:3.7.7-management diff --git a/jeecg-server-cloud/docker-compose.yml b/jeecg-server-cloud/docker-compose.yml index 3e595947..11039753 100644 --- a/jeecg-server-cloud/docker-compose.yml +++ b/jeecg-server-cloud/docker-compose.yml @@ -1,72 +1,158 @@ version: '2' services: - jeecg-boot-nacos: + nacos: + container_name: armd-nacos + hostname: armd-nacos restart: always build: - context: ./jeecg-cloud-nacos + context: ./nacos ports: - 8848:8848 + profiles: + - nacos environment: - SERVER_PORT=8848 - DB_URL=jdbc:postgresql://182.92.183.230:5432/nacos - DB_USER=temp - DB_PASSWORD=123456 - DB_PLATFORM=postgresql - container_name: jeecg-boot-nacos - hostname: jeecg-boot-nacos - - jeecg-boot-system: - depends_on: - - jeecg-boot-nacos + extra_hosts: + - "armd-nacos:192.168.31.23" + + armd-gateway: + container_name: armd-gateway-start + hostname: armd-gateway + # depends_on: + # - armd-nacos + profiles: + - gateway build: - context: ./jeecg-system-cloud-start - container_name: jeecg-system-start - hostname: jeecg-boot-system + context: ./gateway + ports: + - 9999:9999 restart: on-failure environment: - TZ=Asia/Shanghai + extra_hosts: + - "armd-gateway:192.168.31.23" + volumes: + - "/home/rmsops/armd-logs:/armd-gateway/logs" -# jeecg-boot-demo: -# depends_on: -# - jeecg-boot-nacos -# build: -# context: ./jeecg-demo-cloud-start -# container_name: jeecg-demo-start -# hostname: jeecg-boot-demo -# restart: on-failure -# environment: -# - TZ=Asia/Shanghai + armd-system: + container_name: armd-system + hostname: armd-system + profiles: + - service + build: + context: ./system + ports: + - 7001:7001 + restart: on-failure + environment: + - TZ=Asia/Shanghai + extra_hosts: + - "armd-system:192.168.31.23" + volumes: + - "/home/rmsops/armd-logs:/armd-system-cloud/logs" - jeecg-boot-gateway: + armd-station-operation: + container_name: armd-station-operation + hostname: armd-station-operation + depends_on: + # - armd-nacos + - armd-system + profiles: + - service restart: on-failure build: - context: ./jeecg-cloud-gateway + context: ./station-operation ports: - - 9999:9999 - depends_on: - - jeecg-boot-nacos - - jeecg-boot-system - container_name: jeecg-boot-gateway - hostname: jeecg-boot-gateway + - 7002:7002 + extra_hosts: + - "armd-station-operation:192.168.31.23" + volumes: + - "/home/rmsops/armd-logs:/armd-station-operation/logs" + + armd-web-statistics: + container_name: armd-web-statistics + hostname: armd-web-statistics + depends_on: + - armd-system + profiles: + - service + restart: on-failure + build: + context: ./web-statistics + ports: + - 7003:7003 + extra_hosts: + - "armd-web-statistics:192.168.31.23" + volumes: + - "/home/rmsops/armd-logs:/armd-web-statistics/logs" + + armd-abnormal-alarm: + container_name: armd-abnormal-alarm + hostname: armd-abnormal-alarm + depends_on: + - armd-system + profiles: + - service + restart: on-failure + build: + context: ./abnormal-alarm + ports: + - 7005:7005 + extra_hosts: + - "armd-abnormal-alarm:192.168.31.23" + volumes: + - "/home/rmsops/armd-logs:/armd-abnormal-alarm/logs" + + armd-log-manage: + container_name: armd-log-manage + hostname: armd-log-manage + depends_on: + - armd-system + profiles: + - service + restart: on-failure + build: + context: ./log-manage + ports: + - 7006:7006 + extra_hosts: + - "armd-log-manage:192.168.31.23" + volumes: + - "/home/rmsops/armd-logs:/armd-log-manage/logs" + + armd-spectrum-analysis: + restart: on-failure + build: + context: ./spectrum-analysis + ports: + - 7007:7007 + profiles: + - service + depends_on: + - armd-system + container_name: armd-spectrum-analysis + hostname: armd-spectrum-analysis + extra_hosts: + - "armd-spectrum-analysis:127.0.0.1" + + auto-process: + restart: on-failure + build: + context: ./auto-process + ports: + - 7004:7004 + profiles: + - auto-process + container_name: auto-process + hostname: armd-auto-process + extra_hosts: + - "armd-auto-process:127.0.0.1" + volumes: + - "/home/rmsops/ftp:/armd-auto-process/ftp" + - "/home/rmsops/armd-logs:/armd-auto-process/logs" + -# jeecg-boot-sentinel: -# restart: on-failure -# build: -# context: ./jeecg-visual/jeecg-cloud-sentinel -# ports: -# - 9000:9000 -# depends_on: -# - jeecg-boot-nacos -# - jeecg-boot-demo -# - jeecg-boot-system -# - jeecg-boot-gateway -# container_name: jeecg-boot-sentinel -# hostname: jeecg-boot-sentinel -# -# jeecg-boot-xxljob: -# build: -# context: ./jeecg-visual/jeecg-cloud-xxljob -# ports: -# - 9080:9080 -# container_name: jeecg-boot-xxljob -# hostname: jeecg-boot-xxljob From 57c4c1ed9f4206ece6dc68f7c6eaa9cf9ca83aae Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Tue, 16 Jan 2024 19:08:04 +0800 Subject: [PATCH 27/47] =?UTF-8?q?MDC=E5=88=86=E6=9E=90=E7=BB=93=E6=9E=9C?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E6=94=B9=E4=B8=BA=E5=AD=97=E7=AC=A6=E4=B8=B2?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E4=B8=8E=E6=95=B0=E6=8D=AE=E5=BA=93=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E5=8C=B9=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/modules/base/entity/rnauto/GardsMDC.java | 4 ++-- .../java/org/jeecg/modules/base/entity/rnman/GardsMDC.java | 4 ++-- .../java/org/jeecg/modules/spectrum/Sample_G_Analysis.java | 2 +- .../modules/service/impl/GardsMDCSpectrumServiceImpl.java | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/rnauto/GardsMDC.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/rnauto/GardsMDC.java index 2dac8a62..640ee416 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/rnauto/GardsMDC.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/rnauto/GardsMDC.java @@ -32,10 +32,10 @@ public class GardsMDC implements Serializable { private Double efficiency; @TableField(value = "MDC") - private Double mdc; + private String mdc; @TableField(value = "MDC_ERR") - private Double mdcErr; + private String mdcErr; @TableField(value = "MODDATE") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/rnman/GardsMDC.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/rnman/GardsMDC.java index 72052994..59f77159 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/rnman/GardsMDC.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/rnman/GardsMDC.java @@ -32,10 +32,10 @@ public class GardsMDC implements Serializable { private Double efficiency; @TableField(value = "MDC") - private Double mdc; + private String mdc; @TableField(value = "MDC_ERR") - private Double mdcErr; + private String mdcErr; @TableField(value = "MODDATE") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_G_Analysis.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_G_Analysis.java index f5fc6e9e..bd548e41 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_G_Analysis.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_G_Analysis.java @@ -895,7 +895,7 @@ public class Sample_G_Analysis { mdc.setYield(mdcInfo.getYield()); mdc.setEfficiency(mdcInfo.getEfficiency()); if (Objects.nonNull(mdcInfo.getMdc()) && Double.isFinite(mdcInfo.getMdc())) { - mdc.setMdc(mdcInfo.getMdc()); + mdc.setMdc(String.valueOf(mdcInfo.getMdc())); } else { mdc.setMdc(null); } diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsMDCSpectrumServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsMDCSpectrumServiceImpl.java index 298ea55f..11f69a0e 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsMDCSpectrumServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsMDCSpectrumServiceImpl.java @@ -32,7 +32,7 @@ public class GardsMDCSpectrumServiceImpl extends ServiceImpl Date: Tue, 16 Jan 2024 19:28:36 +0800 Subject: [PATCH 28/47] =?UTF-8?q?=E6=9F=A5=E8=AF=A2MDC=E7=BB=93=E6=9E=9C?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E6=95=B0=E6=8D=AE=E5=BA=93=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E7=9A=84mdc=E6=95=B0=E6=8D=AE=E7=BC=BA=E5=A4=B1halflife?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9=EF=BC=8C=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E5=8A=A0=E8=BD=BD=E5=8E=86=E5=8F=B2=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E5=AF=B9=E5=BA=94mdc=E5=80=BC=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/GammaServiceImpl.java | 38 +++++++++++++++++-- 1 file changed, 34 insertions(+), 4 deletions(-) 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 8bc2f59d..e2b6c028 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 @@ -214,8 +214,23 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } //读取redis缓存的计算mdc信息 Map mdcInfoMap = (Map) redisUtil.get("mdcInfoMap-"+phd.getHeader().getSystem_type()); - if (CollectionUtils.isNotEmpty(mdcInfoMap)) { - phd.setMdcInfoMap(mdcInfoMap); + //如果是数据库加载 判断如果mdc计算结果是空的 就加入新的 否则使用数据库加载的mdc数据 + if (CollectionUtils.isEmpty(phd.getMdcInfoMap())) { + if (CollectionUtils.isNotEmpty(mdcInfoMap)) { + phd.setMdcInfoMap(mdcInfoMap); + } + } else { + if (CollectionUtils.isNotEmpty(mdcInfoMap)) { + Map infoMap = phd.getMdcInfoMap(); + for (Map.Entry entry:infoMap.entrySet()) { + String nuclName = entry.getKey(); + CalMDCInfo info = mdcInfoMap.get(nuclName); + if (Objects.nonNull(info)) { + CalMDCInfo mdcInfo = entry.getValue(); + mdcInfo.setHalflife(info.getHalflife()); + } + } + } } gammaFileUtil.Qcstate(phd); key = fileName + StringPool.DASH + userName; @@ -538,8 +553,23 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } //读取redis缓存的计算mdc信息 Map mdcInfoMap = (Map) redisUtil.get("mdcInfoMap-"+phd.getHeader().getSystem_type()); - if (CollectionUtils.isNotEmpty(mdcInfoMap)) { - phd.setMdcInfoMap(mdcInfoMap); + //如果是数据库加载 判断如果mdc计算结果是空的 就加入新的 否则使用数据库加载的mdc数据 + if (CollectionUtils.isEmpty(phd.getMdcInfoMap())) { + if (CollectionUtils.isNotEmpty(mdcInfoMap)) { + phd.setMdcInfoMap(mdcInfoMap); + } + } else { + if (CollectionUtils.isNotEmpty(mdcInfoMap)) { + Map infoMap = phd.getMdcInfoMap(); + for (Map.Entry entry:infoMap.entrySet()) { + String nuclName = entry.getKey(); + CalMDCInfo info = mdcInfoMap.get(nuclName); + if (Objects.nonNull(info)) { + CalMDCInfo mdcInfo = entry.getValue(); + mdcInfo.setHalflife(info.getHalflife()); + } + } + } } } // 获取当前角色配置的颜色信息 From 749559ad1951efe105021f29ac5c6abd44976095 Mon Sep 17 00:00:00 2001 From: panbaolin <123456> Date: Wed, 17 Jan 2024 08:55:09 +0800 Subject: [PATCH 29/47] =?UTF-8?q?fix:1.=E4=BF=AE=E6=94=B9=E9=82=AE?= =?UTF-8?q?=E4=BB=B6=E5=88=A0=E9=99=A4=E5=A4=B1=E8=B4=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/common/constant/RedisConstant.java | 2 +- .../common/email/EmailServiceManager.java | 25 ++++++++++--------- .../org/jeecg/modules/AutoProcessManager.java | 6 ++++- .../jeecg/modules/EmailParsingActuator.java | 21 +++++++++++----- .../modules/FileSourceHandleManager.java | 2 +- .../jeecg/modules/UndealHandleManager.java | 2 +- .../spectrum/SpectrumParsingActuator.java | 18 +++++++++++-- 7 files changed, 52 insertions(+), 24 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/RedisConstant.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/RedisConstant.java index 9cd85b76..8a1fa80f 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/RedisConstant.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/RedisConstant.java @@ -44,7 +44,7 @@ public interface RedisConstant { /** * 删除失败邮件KEY */ - String DELETE_FAIL_EMAILS = "delete_fail_emails"; + String EMAIL_MSG_ID = "email_msg_id"; String UNDEAL_FILE = "Undeal:"; } diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailServiceManager.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailServiceManager.java index faa63a2f..d701893e 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailServiceManager.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailServiceManager.java @@ -576,8 +576,6 @@ public class EmailServiceManager { } catch (MessagingException | UnsupportedEncodingException e) { status = EmailLogManager.STATUS_ERROR; log.error("Email deletion failed, the subject of the email is :{}, the reason is :{}.",subject,e.getMessage()); - String emlName = subject+StringConstant.UNDER_LINE+DateUtils.formatDate(receivedDate,"yyyy-MM-dd HH:mm:ss"); - redisUtil.hset(RedisConstant.DELETE_FAIL_EMAILS,Md5Util.md5Encode(emlName,"UTF-8"),emlName); e.printStackTrace(); }finally { EmailLogEvent removeEvent = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,status,EmailLogManager.DELETEID,subject,receivedDate); @@ -591,15 +589,21 @@ public class EmailServiceManager { /** * 关闭邮件服务连接资源 */ - public void close(){ + public void close(List messageIds){ try { if(null != folder){ - folder.close(true); + folder.expunge(); + folder.close(); } if(null != store){ store.close(); } + for(String messageId : messageIds){ + String key = RedisConstant.EMAIL_MSG_ID+StringConstant.COLON+messageId; + redisUtil.del(key); + } } catch (MessagingException e) { + log.error("Email closure failed, email address is: {}, reason is: {}",email.getUsername(),e.getMessage()); e.printStackTrace(); } } @@ -609,20 +613,17 @@ public class EmailServiceManager { * 若此次获取的邮件是上次删除失败的邮件直接删除 * @param message */ - public boolean check(Message message){ + public boolean check(Message message,String messageId){ boolean exist = false; try { - String subject = MimeUtility.decodeText(message.getSubject()); - Date receivedDate = message.getReceivedDate(); - String emlName = subject+StringConstant.UNDER_LINE+DateUtils.formatDate(receivedDate,"yyyy-MM-dd HH:mm:ss"); - exist = redisUtil.hHasKey(RedisConstant.DELETE_FAIL_EMAILS,Md5Util.md5Encode(emlName,"UTF-8")); + String key = RedisConstant.EMAIL_MSG_ID+StringConstant.COLON+messageId; + exist = redisUtil.hasKey(key); if(exist){ message.setFlag(Flags.Flag.DELETED,true); - redisUtil.hdel(RedisConstant.DELETE_FAIL_EMAILS,Md5Util.md5Encode(emlName,"UTF-8")); } - } catch (MessagingException | UnsupportedEncodingException e) { return exist; + } catch (MessagingException e) { + return false; } - return exist; } } diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/AutoProcessManager.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/AutoProcessManager.java index 9d9eaeac..4472ca79 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/AutoProcessManager.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/AutoProcessManager.java @@ -2,6 +2,8 @@ package org.jeecg.modules; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.constant.RedisConstant; +import org.jeecg.common.constant.StringConstant; import org.jeecg.common.email.EmailServiceManager; import org.jeecg.common.properties.TaskProperties; import org.jeecg.common.util.RedisUtil; @@ -57,7 +59,9 @@ public class AutoProcessManager{ final MailServerMonitor monitorThread = new MailServerMonitor(); monitorThread.setName("mail-server-monitor"); monitorThread.start(); - + //邮箱执行线程前给redis中添加一个default key,及default value,便于查看及排查 + String defaultKey = RedisConstant.EMAIL_MSG_ID+ StringConstant.COLON+"default"; + redisUtil.set(defaultKey,"default"); //邮件执行线程管理 final MailExecManager autoProcessThread = new MailExecManager(); autoProcessThread.setName("mail-exec-thread-manage"); diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/EmailParsingActuator.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/EmailParsingActuator.java index 7d6fe72f..00351894 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/EmailParsingActuator.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/EmailParsingActuator.java @@ -12,7 +12,11 @@ import org.jeecg.modules.spectrum.SpectrumParsingActuator; import org.jeecg.modules.spectrum.SpectrumServiceQuotes; import org.springframework.scheduling.concurrent.CustomizableThreadFactory; import javax.mail.Message; +import javax.mail.MessagingException; +import javax.mail.internet.MimeMessage; +import java.util.ArrayList; import java.util.Date; +import java.util.List; import java.util.concurrent.*; /** @@ -61,14 +65,19 @@ public class EmailParsingActuator extends Thread{ final EmailServiceManager emailServiceManager = EmailServiceManager.getInstance(); emailServiceManager.init(this.emailProperties,this.taskProperties.getReceiveNum(),this.taskProperties.getTemporaryStoragePath(), this.systemStartupTime, spectrumServiceQuotes.getSpectrumPathProperties(),spectrumServiceQuotes.getRedisUtil()); + List messageIds = new ArrayList<>(); try { Message[] messages = emailServiceManager.receiveMail(); if(ArrayUtils.isNotEmpty(messages)){ //检验获取的邮件是否在之前删除失败列表中,若在直接调用邮件API删除,并且此次数组里元素也删除 for(int i=messages.length-1;i>=0;i--){ - final boolean exist = emailServiceManager.check(messages[i]); - if(exist){ - messages = ArrayUtils.remove(messages,i); + if (!messages[i].isExpunged()){ + String messageId = ((MimeMessage) messages[i]).getMessageID(); + final boolean exist = emailServiceManager.check(messages[i],messageId); + messageIds.add(messageId); + if(exist){ + messages = ArrayUtils.remove(messages,i); + } } } CountDownLatch taskLatch = new CountDownLatch(messages.length); @@ -80,9 +89,9 @@ public class EmailParsingActuator extends Thread{ } taskLatch.await(); } - }catch (InterruptedException e) { + }catch (InterruptedException | MessagingException e) { e.printStackTrace(); - }finally { + } finally { //清除本批次邮件日志缓存 EmailLogManager.getInstance().clear(); //保存本批次所有能谱日志 @@ -90,7 +99,7 @@ public class EmailParsingActuator extends Thread{ //清除本批次能谱日志缓存 SpectrumLogManager.mailSpectrumLogManager.clear(); //关闭资源 - emailServiceManager.close(); + emailServiceManager.close(messageIds); } long end = System.currentTimeMillis(); long sleepTime = taskProperties.getMailThreadExecCycle() - (end-start); diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/FileSourceHandleManager.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/FileSourceHandleManager.java index 0127b1d7..0eccdbc1 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/FileSourceHandleManager.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/FileSourceHandleManager.java @@ -52,7 +52,7 @@ public class FileSourceHandleManager{ public void init(){ //获取机器可用核心数 - int systemCores = Runtime.getRuntime().availableProcessors(); + int systemCores = spectrumServiceQuotes.getMaximumPoolSizeProperties().getAuto(); int maximumPoolSize = taskProperties.getFilesourceDirReceiveNum() > systemCores?taskProperties.getFilesourceDirReceiveNum():systemCores; //初始化线程池 diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/UndealHandleManager.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/UndealHandleManager.java index c62f7ce1..12d16596 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/UndealHandleManager.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/UndealHandleManager.java @@ -53,7 +53,7 @@ public class UndealHandleManager{ public void init(){ //获取机器可用核心数 - int systemCores = Runtime.getRuntime().availableProcessors(); + int systemCores = spectrumServiceQuotes.getMaximumPoolSizeProperties().getAuto(); int maximumPoolSize = taskProperties.getUndealDirReceiveNum() > systemCores?taskProperties.getUndealDirReceiveNum():systemCores; //初始化线程池 diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumParsingActuator.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumParsingActuator.java index dc6a46b9..4af40e0a 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumParsingActuator.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumParsingActuator.java @@ -3,12 +3,16 @@ package org.jeecg.modules.spectrum; import cn.hutool.core.io.FileUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.jeecg.common.constant.RedisConstant; +import org.jeecg.common.constant.StringConstant; import org.jeecg.common.email.EmailLogEvent; import org.jeecg.common.email.EmailLogManager; import org.jeecg.common.email.EmailServiceManager; +import org.jeecg.common.util.DateUtils; import org.jeecg.modules.email.EmailProperties; import org.jeecg.modules.enums.SpectrumSource; import javax.mail.Message; +import javax.mail.internet.MimeMessage; import java.io.File; import java.util.Objects; import java.util.concurrent.CountDownLatch; @@ -49,6 +53,10 @@ public class SpectrumParsingActuator implements Runnable{ * 邮件计数器 */ private EmailCounter emailCounter; + /** + * 一天秒数 + */ + private final int expiryTime = 86400; public void init(Message message, EmailProperties emailProperties,EmailServiceManager emailServiceManager, CountDownLatch taskLatch, SpectrumServiceQuotes spectrumServiceQuotes, @@ -65,11 +73,17 @@ public class SpectrumParsingActuator implements Runnable{ public void run() { String subject = null; try { - //线程开始初始化时,初始本线程负责的能谱日志事件 - SpectrumLogManager.mailSpectrumLogManager.offer(Thread.currentThread().getId(),null); //获取邮件主题 subject = emailServiceManager.getMailSubject(message); + //解析之前先把邮件唯一信息存储到redis + String messageId = ((MimeMessage) message).getMessageID(); + String emlName = subject+ StringConstant.UNDER_LINE+ DateUtils.formatDate(message.getReceivedDate(),"yyyy-MM-dd HH:mm:ss"); + String key = RedisConstant.EMAIL_MSG_ID+StringConstant.COLON+messageId; + spectrumServiceQuotes.getRedisUtil().set(key,emlName,expiryTime); + //线程开始初始化时,初始本线程负责的能谱日志事件 + SpectrumLogManager.mailSpectrumLogManager.offer(Thread.currentThread().getId(),null); + //所有邮件都需以.eml格式存储到eml文件夹中 final File emlFile = emailServiceManager.downloadEmailToEmlDir(message, emailCounter.getCurrValue()); //保存邮件日志到PG数据库 From 3f0b7137f1c37a9a3d199dab6fbfbaf9dd7989fd Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 17 Jan 2024 14:03:10 +0800 Subject: [PATCH 30/47] =?UTF-8?q?=E5=8F=B0=E7=AB=99=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=9F=A5=E8=AF=A2=E5=8F=B0=E7=AB=99=EF=BC=8C?= =?UTF-8?q?=E6=A0=B8=E8=AE=BE=E6=96=BD=E5=88=97=E8=A1=A8=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9=EF=BC=8C=E5=8F=B0=E7=AB=99?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E6=94=BE=E7=BD=AE=E5=9C=A8=E6=A0=B8=E8=AE=BE?= =?UTF-8?q?=E6=96=BD=E5=89=8D=E5=B9=B6=E5=88=86=E5=88=AB=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/StationOperationServiceImpl.java | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java index 1bc071de..e8559a4e 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java @@ -1,6 +1,7 @@ package org.jeecg.modules.service.impl; import cn.hutool.core.util.StrUtil; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; @@ -14,6 +15,7 @@ import org.jeecg.common.CalculateStationData; import org.jeecg.common.PointUtil; import org.jeecg.common.StationTypeUtil; import org.jeecg.common.api.vo.Result; +import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.RedisUtil; import org.jeecg.modules.base.entity.configuration.GardsDetectors; import org.jeecg.modules.base.entity.configuration.GardsNuclearfacility; @@ -66,6 +68,7 @@ public class StationOperationServiceImpl extends ServiceImpl stationInfoMap = (HashMap) redisUtil.get("stationInfoMap"); //查询全部核设施信息 HashMap nuclearFacilityMap = (HashMap) redisUtil.get("nuclearFacilityMap"); + List stationList = new LinkedList<>(); //遍历台站信息 if (CollectionUtils.isNotEmpty(stationInfoMap)){ for (Map.Entry gardsStations:stationInfoMap.entrySet()) { @@ -78,9 +81,14 @@ public class StationOperationServiceImpl extends ServiceImpl nuclearFacilityList = new LinkedList<>(); if (CollectionUtils.isNotEmpty(nuclearFacilityMap)){ //遍历核设施信息 for (Map.Entry nuclearfacilities:nuclearFacilityMap.entrySet()) { @@ -93,9 +101,15 @@ public class StationOperationServiceImpl extends ServiceImpl StringUtils.isNotBlank(item.getStatus()) && item.getStatus().equalsIgnoreCase(status)).collect(Collectors.toList()); @@ -104,10 +118,6 @@ public class StationOperationServiceImpl extends ServiceImpl StringUtils.isNotBlank(item.getStationType()) && item.getStationType().equalsIgnoreCase(stationType)).collect(Collectors.toList()); } - // 根据StationId排序 - result = result.stream() - .sorted(Comparator.comparingInt(StationOperation::getStationId)) - .collect(Collectors.toList()); return result; } From e34725f4469db609e030093d038aeadc3eb1978b Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 18 Jan 2024 11:41:04 +0800 Subject: [PATCH 31/47] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E5=88=86=E6=9E=90beta=E6=97=A5=E5=BF=97=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E5=88=9B=E5=BB=BA=E5=AF=BC=E8=87=B4=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E4=B8=8A=E4=BC=A0=E7=9A=84=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SpectrumAnalysisServiceImpl.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java index 59cf8f53..aba45529 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java @@ -4037,9 +4037,19 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements { String logPathName = analyses_absolute_LogPath.substring(0, analyses_absolute_LogPath.lastIndexOf(StringPool.SLASH)); String logFileName = analyses_absolute_LogPath.substring(analyses_absolute_LogPath.lastIndexOf(StringPool.SLASH)+1); - String logFilePath = parameterProperties.getLogFilePath() + File.separator + DateUtils.formatDate(new Date(), "yyyy-MM-dd") + File.separator + betaDataFile.getSampleFileName().replace("PHD", "log"); - File logFile = new File(logFilePath); + //获取日志的文件存放路径 + String logFilePath = parameterProperties.getLogFilePath() + File.separator + DateUtils.formatDate(new Date(), "yyyy-MM-dd"); + //判断文件路径是否存在 + File logPath = new File(logFilePath); + if (!logPath.exists()) { + logPath.mkdirs(); + } + File logFile = new File(logFilePath + File.separator +logFileName); try { + //判断日志文件是否存在 如果不存在创建一个空的文件 上传到ftp + if (!logFile.exists()) { + FileUtil.writeString("", logFile, "UTF-8"); + } FileInputStream in = new FileInputStream(logFile); ftpUtil.saveFile(logPathName, logFileName, in); } catch (FileNotFoundException e) { From 128e0b6a50055488adab3fe460a2d43254e76b7b Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 18 Jan 2024 13:49:34 +0800 Subject: [PATCH 32/47] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E5=88=86=E6=9E=90=E4=B8=8A=E4=BC=A0=E6=8A=A5=E5=91=8A=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=9C=A8=E6=96=87=E4=BB=B6=E5=90=8D=E7=A7=B0=E5=90=8E?= =?UTF-8?q?=E6=8B=BC=E6=8E=A5.txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/modules/service/impl/GammaServiceImpl.java | 2 +- .../jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 e2b6c028..3a166ad9 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 @@ -5095,7 +5095,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } { String rptPathName = middleData.analyses_absolute_ReportPath.substring(0, middleData.analyses_absolute_ReportPath.lastIndexOf(StringPool.SLASH)); - String rptFileName = middleData.analyses_absolute_ReportPath.substring(middleData.analyses_absolute_ReportPath.lastIndexOf(StringPool.SLASH)+1); + String rptFileName = middleData.analyses_absolute_ReportPath.substring(middleData.analyses_absolute_ReportPath.lastIndexOf(StringPool.SLASH)+1)+".txt"; File rptFile = new File(rptFileName); try { FileUtil.writeString(gammaFileUtil.GetReportContent(middleData), rptFile, "UTF-8"); diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java index aba45529..0208d752 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java @@ -4059,7 +4059,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements { String rptContent = phdFileUtil.OutPutRnRpt(betaDataFile); String rptPathName = analyses_absolute_ReportPath.substring(0, analyses_absolute_ReportPath.lastIndexOf(StringPool.SLASH)); - String rptFileName = analyses_absolute_ReportPath.substring(analyses_absolute_ReportPath.lastIndexOf(StringPool.SLASH)+1); + String rptFileName = analyses_absolute_ReportPath.substring(analyses_absolute_ReportPath.lastIndexOf(StringPool.SLASH)+1)+".txt"; File rptFile = new File(rptFileName); try { FileUtil.writeString(rptContent, rptFile, "UTF-8"); From ca744c524b02c62fdb663a1b641d6f8a5fc743f4 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 18 Jan 2024 14:03:25 +0800 Subject: [PATCH 33/47] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E5=88=86=E6=9E=90=E6=8A=A5=E5=91=8A=E5=AD=98=E6=94=BE=E5=9C=B0?= =?UTF-8?q?=E5=9D=80=E6=94=B9=E4=B8=BARrr=E6=96=87=E4=BB=B6=E5=A4=B9?= =?UTF-8?q?=E4=B8=8EArr=E5=8C=BA=E5=88=86=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/jeecg/common/util/GammaFileUtil.java | 7 ++++++- .../modules/service/impl/SpectrumAnalysisServiceImpl.java | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) 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 f367ddce..42b11a82 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 @@ -3189,7 +3189,12 @@ public class GammaFileUtil extends AbstractLogOrReport { qsSaveFile = qsSaveFile.replace(StringPool.BACK_SLASH, StringPool.SLASH); String qsLogPath= path+StringPool.SLASH+middleData.analyses_analyst+"_"+logName; qsLogPath = qsLogPath.replace(StringPool.BACK_SLASH, StringPool.SLASH); - String qsReportPath="Arr"+StringPool.SLASH+path+StringPool.SLASH+middleData.analyses_analyst+"_"+rptName; + String qsReportPath= ""; + if(type.equals(MiddleDataType.Auto.getType())) { + qsReportPath="Arr"+StringPool.SLASH+path+StringPool.SLASH+middleData.analyses_analyst+"_"+rptName; + } else if (type.equals(MiddleDataType.InterAction.getType()) && flag.equalsIgnoreCase("save")){ + qsReportPath="Rrr"+StringPool.SLASH+path+StringPool.SLASH+middleData.analyses_analyst+"_"+rptName; + } qsReportPath = qsReportPath.replace(StringPool.BACK_SLASH, StringPool.SLASH); middleData.analyses_save_filePath = qsSaveFile; diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java index 0208d752..6c7818ca 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java @@ -3900,7 +3900,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements String qsLogPath= path+StringPool.SLASH+userName+"_"+logName; qsLogPath = qsLogPath.replace(StringPool.BACK_SLASH, StringPool.SLASH); String rptName = fileNameMap.get("rpt"); - String qsReportPath="Arr"+StringPool.SLASH+path+StringPool.SLASH+userName+"_"+rptName; + String qsReportPath="Rrr"+StringPool.SLASH+path+StringPool.SLASH+userName+"_"+rptName; qsReportPath = qsReportPath.replace(StringPool.BACK_SLASH, StringPool.SLASH); String analyses_absolute_LogPath=spectrumPathProperties.getLogPath()+StringPool.SLASH+qsLogPath; String analyses_absolute_ReportPath=spectrumPathProperties.getSaveFilePath()+StringPool.SLASH+qsReportPath; From 92f7180f31ee1c4731123e77a6d2a54a2b932f29 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Thu, 18 Jan 2024 16:52:43 +0800 Subject: [PATCH 34/47] =?UTF-8?q?fix=EF=BC=9A=E5=A2=9E=E5=8A=A0arTime/crTi?= =?UTF-8?q?me?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/controller/GammaController.java | 7 +++++-- .../jeecg/modules/service/IGammaService.java | 2 +- .../service/impl/GammaServiceImpl.java | 20 ++++++++++++------- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/GammaController.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/GammaController.java index 0a776fbd..999628f0 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/GammaController.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/GammaController.java @@ -436,8 +436,11 @@ public class GammaController { } @GetMapping("exportRadionuclideActivity") - public void exportRadionuclideActivity(Integer sampleId, String fileName, HttpServletRequest request, HttpServletResponse response){ - gammaService.exportRadionuclideActivity(sampleId, fileName, request, response); + public void exportRadionuclideActivity(Integer sampleId, String fileName, + String arTime, String crTime, + HttpServletRequest request, + HttpServletResponse response){ + gammaService.exportRadionuclideActivity(sampleId, fileName, arTime, crTime, request, response); } @GetMapping("Spectrum") diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGammaService.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGammaService.java index 7edf6462..ea573b19 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGammaService.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGammaService.java @@ -153,7 +153,7 @@ public interface IGammaService{ Result radionuclideActivity(Integer sampleId, String fileName, HttpServletRequest request); - void exportRadionuclideActivity(Integer sampleId, String fileName, HttpServletRequest request, HttpServletResponse response); + void exportRadionuclideActivity(Integer sampleId, String fileName, String arTime, String crTime,HttpServletRequest request, HttpServletResponse response); Result Spectrum(Integer sampleId, String fileName, HttpServletRequest request); 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 3a166ad9..a367ec7f 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 @@ -4383,20 +4383,26 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public void exportRadionuclideActivity(Integer sampleId, String fileName, HttpServletRequest request, HttpServletResponse response) { + public void exportRadionuclideActivity(Integer sampleId, String fileName, String arTime, String crTime, HttpServletRequest request, HttpServletResponse response) { Result> result = radionuclideActivity(sampleId, fileName, request); Map dataMap = result.getResult(); if (MapUtil.isEmpty(dataMap)) return; + String formater = DateConstant.DATE_TIME; Date actRef = (Date) dataMap.get("dateTime_act_ref"); Date conRef = (Date) dataMap.get("dateTime_con_ref"); - if (ObjectUtil.isNotNull(actRef)) { - String actTime = DateUtil.format(actRef, DateConstant.DATE_TIME); - dataMap.put("dateTime_act_ref", actTime); + if (StrUtil.isNotBlank(arTime)) { + dataMap.put("dateTime_act_ref", arTime); + } else { + if (ObjectUtil.isNotNull(actRef)) + dataMap.put("dateTime_act_ref", DateUtil.format(actRef, formater)); } - if (ObjectUtil.isNotNull(conRef)) { - String conTime = DateUtil.format(conRef, DateConstant.DATE_TIME); - dataMap.put("dateTime_con_ref", conTime); + if (StrUtil.isNotBlank(crTime)) { + dataMap.put("dateTime_con_ref", crTime); + } else { + if (ObjectUtil.isNotNull(conRef)) + dataMap.put("dateTime_con_ref", DateUtil.format(conRef, formater)); } + String export = "RadionuclideActivity-Gamma.xls"; String template = ExportTemplate.RadionuclideActivity_G.getName(); ExportUtil.exportXls(response, template, dataMap, export); From 469f15f48f18158005a964b8ca06c08e3e43bd16 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 18 Jan 2024 16:57:25 +0800 Subject: [PATCH 35/47] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E5=88=86=E6=9E=90=E6=9F=A5=E8=AF=A2gamma=E5=AF=B9=E6=AF=94?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3=E5=B3=B0=E5=AF=B9=E6=AF=94?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E8=BF=94=E5=9B=9E=E7=B1=BB=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=20=E6=96=B0=E5=A2=9E=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E5=88=86=E6=9E=90beta=E9=83=A8=E5=88=86=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=AF=B9=E6=AF=94=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SpectrumAnalysesController.java | 5 + .../jeecg/modules/service/IDataService.java | 7 +- .../service/ISpectrumAnalysisService.java | 3 + .../modules/service/impl/DataServiceImpl.java | 109 +++++++++++++++--- .../service/impl/GammaServiceImpl.java | 2 +- .../impl/SpectrumAnalysisServiceImpl.java | 67 +++++++++++ 6 files changed, 173 insertions(+), 20 deletions(-) diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/SpectrumAnalysesController.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/SpectrumAnalysesController.java index a77d5e8e..c323d808 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/SpectrumAnalysesController.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/SpectrumAnalysesController.java @@ -260,4 +260,9 @@ public class SpectrumAnalysesController { spectrumAnalysisService.saveToTxt(rrrLogInfo, request, response); } + @GetMapping("xeComparison") + public Result xeComparison(String sampleFileName, HttpServletRequest request) { + return spectrumAnalysisService.xeComparison(sampleFileName, request); + } + } diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IDataService.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IDataService.java index 85ff90c9..a6c3abcc 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IDataService.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IDataService.java @@ -1,7 +1,8 @@ package org.jeecg.modules.service; -import org.jeecg.modules.entity.vo.PeakInfo; +import org.jeecg.modules.entity.GardsXeResultsView; import org.jeecg.modules.entity.vo.TableNuclideActivity; +import org.jeecg.modules.entity.vo.TablePeak; import java.sql.Connection; import java.util.List; @@ -12,10 +13,12 @@ public interface IDataService { Connection connectOverSea(); - List viewPeaks(String siteDetCode, String spectralQualifier, Integer stationId, String collectStart, String acquisitionStop, Connection conn); + List viewPeaks(String siteDetCode, String spectralQualifier, Integer stationId, String collectStart, String acquisitionStop, Connection conn); List viewNucl(String siteDetCode, String spectralQualifier, Integer stationId, String collectStart, String acquisitionStop, Connection conn); + List viewBetaXeResult(String siteDetCode, String spectralQualifier, Integer stationId, String collectStart, String acquisitionStop, Connection conn); + void viewStations(); } diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/ISpectrumAnalysisService.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/ISpectrumAnalysisService.java index a6fcbfcb..39dac872 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/ISpectrumAnalysisService.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/ISpectrumAnalysisService.java @@ -91,4 +91,7 @@ public interface ISpectrumAnalysisService { void saveToExcel(RRRLogInfo rrrLogInfo, HttpServletRequest request, HttpServletResponse response); void saveToTxt(RRRLogInfo rrrLogInfo, HttpServletRequest request, HttpServletResponse response); + + Result xeComparison(String sampleFileName, HttpServletRequest request); + } diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/DataServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/DataServiceImpl.java index ae2a7a9e..765002e3 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/DataServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/DataServiceImpl.java @@ -2,10 +2,13 @@ package org.jeecg.modules.service.impl; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.StringPool; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import org.jeecg.common.util.NumberFormatUtil; import org.jeecg.common.util.RedisUtil; +import org.jeecg.modules.entity.GardsXeResultsView; import org.jeecg.modules.entity.vo.PeakInfo; import org.jeecg.modules.entity.vo.TableNuclideActivity; +import org.jeecg.modules.entity.vo.TablePeak; import org.jeecg.modules.service.IDataService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -62,10 +65,10 @@ public class DataServiceImpl implements IDataService { } @Override - public List viewPeaks(String siteDetCode, String spectralQualifier, Integer stationId, String collectStart, String acquisitionStop, Connection conn) { + public List viewPeaks(String siteDetCode, String spectralQualifier, Integer stationId, String collectStart, String acquisitionStop, Connection conn) { Statement statement = null; Integer sampleId = null; - List peakInfoList = new LinkedList<>(); + List peakInfoList = new LinkedList<>(); try { statement = conn.createStatement(); //拼接sql根据探测器编码,台站id,采样开始时间,采集结束时间 查询 sampleId @@ -99,21 +102,22 @@ public class DataServiceImpl implements IDataService { double significance = executeQuery.getDouble("DETECTABILITY"); int peakId = executeQuery.getInt("PEAK_ID"); //声明一个PeakInfo实体类存储查询出的数据 - PeakInfo peak = new PeakInfo(); - peak.index = peakId; - peak.area = area; - peak.areaErr = areaErr; - peak.peakCentroid = centroChannel; - peak.energy = energy; - peak.fwhm = fwhm; - peak.multiIndex = multiplet; - peak.significance = significance; + TablePeak peak = new TablePeak(); + peak.setNo(peakId); + peak.setNetArea(String.format("%.3f", area)); + peak.setAreaErr(String.format("%.3f", areaErr)); + peak.setCentroid(String.format("%.3f", centroChannel)); + peak.setEnergy(String.format("%.3f", energy)); + peak.setFwhm(String.format("%.3f", fwhm)); + peak.setMultiplet(String.valueOf(multiplet)); + peak.setSignificant(String.format("%.3f", significance)); + peak.setIndentify(""); peakInfoList.add(peak); } //判断峰信息是否为空 if (CollectionUtils.isNotEmpty(peakInfoList)) { //根据峰下标进行排序 - peakInfoList = peakInfoList.stream().sorted(Comparator.comparing(item-> item.index)).collect(Collectors.toList()); + peakInfoList = peakInfoList.stream().sorted(Comparator.comparing(item-> item.getNo())).collect(Collectors.toList()); //峰信息不为空 查询峰核素信息表 读取峰关联核素名称 String nuclIdedSql = "SELECT NAME,PEAK FROM RMSMAN.GARDS_NUCL_LINES_IDED " + "WHERE SAMPLE_ID = "+sampleId; @@ -121,11 +125,13 @@ public class DataServiceImpl implements IDataService { while (resultSet.next()) { String name = resultSet.getString("NAME"); int peak = resultSet.getInt("PEAK"); - peakInfoList.stream().forEach(item->{ - if (item.index == peak) { - item.nuclides.add(name+ StringPool.SEMICOLON); + for (TablePeak item : peakInfoList) { + if (item.getNo() == peak) { + String indentify = item.getIndentify(); + indentify+=name + StringPool.SEMICOLON; + item.setIndentify(indentify); } - }); + } } } } @@ -168,7 +174,7 @@ public class DataServiceImpl implements IDataService { if(Objects.nonNull(sampleId)) { //拼接sql查询核素信息表 String nuclSql = "SELECT NAME,HALFLIFE,MDA,ACTIV_DECAY,ACTIV_KEY,ACTIV_KEY_ERR FROM RMSMAN.GARDS_NUCL_IDED " + - "WHERE SAMPLE_ID = "+sampleId; + "WHERE SAMPLE_ID = "+sampleId + " AND NID_FLAG = 1"; //执行sql查询结果 ResultSet executeQuery = statement.executeQuery(nuclSql); while (executeQuery.next()) { @@ -223,6 +229,75 @@ public class DataServiceImpl implements IDataService { return nuclideActivityList; } + @Override + public List viewBetaXeResult(String siteDetCode, String spectralQualifier, Integer stationId, String collectStart, String acquisitionStop, Connection conn) { + Statement statement = null; + Integer sampleId = null; + List xeResultsViewList = new LinkedList<>(); + try { + statement = conn.createStatement(); + //拼接sql根据探测器编码,台站id,采样开始时间,采集结束时间 查询 sampleId + String sql = ""; + sql+="SELECT SAMPLE_ID FROM RMSMAN.GARDS_SAMPLE_DATA "; + sql+="WHERE TRIM(SITE_DET_CODE) = '"+siteDetCode+"' "; + if (Objects.nonNull(stationId)) { + sql+="AND STATION_ID = "+stationId+" "; + } + sql+="AND SPECTRAL_QUALIFIER = '" + spectralQualifier +"' "; + sql+="AND COLLECT_START = TO_DATE( '"+collectStart+"', 'YYYY-MM-DD HH24:MI:SS' ) "; + sql+="AND ACQUISITION_STOP = TO_DATE( '"+acquisitionStop+"', 'YYYY-MM-DD HH24:MI:SS' )"; + ResultSet query = statement.executeQuery(sql); + while (query.next()) { + sampleId = query.getInt("SAMPLE_ID"); + } + //判断条件查询到的sampleId是否为空 如果不为空 则继续查询 + if(Objects.nonNull(sampleId)) { + //拼接sql根据sampleId查询beta分析结果表内容数据 + String xeResultSql = "SELECT NUCLIDE_ID,CONC,CONC_ERR,MDC,NID_FLAG FROM RMSMAN.GARDS_BG_ISOTOPE_CONCS " + + "WHERE SAMPLE_ID = "+sampleId; + //执行sql得到查询结果 + ResultSet executeQuery = statement.executeQuery(xeResultSql); + while (executeQuery.next()) { + int nuclideId = executeQuery.getInt("NUCLIDE_ID"); + double conc = executeQuery.getDouble("CONC"); + double concErr = executeQuery.getDouble("CONC_ERR"); + double mdc = executeQuery.getDouble("MDC"); + int nidFlag = executeQuery.getInt("NID_FLAG"); + //声明一个XeResult实体类存储查询出的数据 + GardsXeResultsView xeResultsView = new GardsXeResultsView(); + if (8 == nuclideId) { + xeResultsView.setNuclideName("XE131M"); + } else if (9 == nuclideId) { + xeResultsView.setNuclideName("XE133M"); + } else if (10 == nuclideId) { + xeResultsView.setNuclideName("XE133"); + } else if (11 == nuclideId) { + xeResultsView.setNuclideName("XE135"); + } + xeResultsView.setConc(NumberFormatUtil.numberFormat(String.valueOf(conc))); + xeResultsView.setConcErr(NumberFormatUtil.numberFormat(String.valueOf(concErr))); + xeResultsView.setMdc(NumberFormatUtil.numberFormat(String.valueOf(mdc))); + xeResultsView.setNidFlag(nidFlag); + xeResultsViewList.add(xeResultsView); + } + if (CollectionUtils.isNotEmpty(xeResultsViewList)) { + xeResultsViewList = xeResultsViewList.stream().sorted(Comparator.comparing(GardsXeResultsView::getNuclideName)).collect(Collectors.toList()); + } + } + } catch (SQLException e) { + throw new RuntimeException(e); + } finally { + try { + if (Objects.nonNull(statement)) { + statement.close(); + } + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + return xeResultsViewList; + } + @Override public void viewStations() { Map stationMap = new HashMap<>(); 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 a367ec7f..c8b16606 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 @@ -5948,7 +5948,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi public Result peakComparison(String fileName, HttpServletRequest request) { Result result = new Result(); Connection conn = null; - List peakInfoList = new LinkedList<>(); + List peakInfoList = new LinkedList<>(); //获取用户名 String userName = JwtUtil.getUserNameByToken(request); //读取缓存内容 diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java index 6c7818ca..225d7d1d 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java @@ -57,6 +57,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URLEncoder; +import java.sql.Connection; +import java.sql.SQLException; import java.text.ParseException; import java.time.Instant; import java.time.LocalDateTime; @@ -118,6 +120,8 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements private RedisStreamUtil redisStreamUtil; @Autowired private NameStandUtil nameStandUtil; + @Autowired + private IDataService dataService; @Override @@ -6019,4 +6023,67 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements return spectrumData; } + @Override + public Result xeComparison(String sampleFileName, HttpServletRequest request) { + Result result = new Result(); + Connection conn = null; + List xeResultsViewList = new LinkedList<>(); + //获取用户名称 + String userName = JwtUtil.getUserNameByToken(request); + //获取本地缓存 + Cache cache = betaCache.getBetaCache(); + BetaDataFile betaDataFile = cache.getIfPresent(sampleFileName + "-" + userName); + if (Objects.isNull(betaDataFile)) { + result.error500("Load basic file information first!"); + return result; + } + Map idcStationMap = (Map) redisUtil.get("idcStationMap"); + try { + EnergySpectrumStruct struct = betaDataFile.getSampleStruct(); + String collectStart = ""; + if (struct.collection_start_time.indexOf(StringPool.DOT) > 0) { + collectStart = struct.collection_start_date + " " + struct.collection_start_time.substring(0, struct.collection_start_time.indexOf(StringPool.DOT)); + } else { + collectStart = struct.collection_start_date + " " + struct.collection_start_time; + } + //获取采集开始时间 + Date acqStart = DateUtils.parseDate(struct.acquisition_start_date + " " + struct.acquisition_start_time); + //计算得到采集结束时间对应的毫秒数 + long stopTime = (long) (acqStart.getTime() + (struct.acquisition_real_time * 1000)); + //根据毫秒数得到采集结束时间 + Date acquisitionStopDate = new Date(stopTime); + //格式化得到采集结束时间的字符串 + String acquisitionStop = DateUtils.formatDate(acquisitionStopDate, "yyyy-MM-dd HH:mm:ss"); + //从缓存的idc台站信息中获取当前台站对应的台站id + Integer stationId = null; + if (CollectionUtils.isNotEmpty(idcStationMap)) { + stationId = idcStationMap.get(struct.site_code); + } + //连接本地同步的idc数据库 + conn = dataService.connectInland(); + //连接对象为空 则连接idc国际库 + if (Objects.isNull(conn)) { + conn = dataService.connectOverSea(); + } + //判断是否连接成功 + if (Objects.nonNull(conn)) { + //查询获取beta分析后的xe结果表的对比数据内容 + xeResultsViewList = dataService.viewBetaXeResult(struct.detector_code, struct.spectrum_quantity, stationId, collectStart, acquisitionStop, conn); + } + result.setSuccess(true); + result.setResult(xeResultsViewList); + } catch (ParseException e) { + throw new RuntimeException(e); + } finally { + try { + if (Objects.nonNull(conn)) { + conn.close(); + } + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + return result; + } + } From f22bc172fca7c0d03a6ed53ae75d5ccfccd3d177 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 18 Jan 2024 18:27:40 +0800 Subject: [PATCH 36/47] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E5=AD=98=E5=82=A8gamma=E5=88=86=E6=9E=90=E7=BB=93=E6=9E=9Cmdc?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=A6=82=E6=9E=9C=E5=B7=B2=E7=BB=8F=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=E6=95=B0=E6=8D=AE=E9=9C=80=E8=A6=81=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=AF=B9=E5=BA=94=E7=9A=84mdc=E7=BB=93=E6=9E=9C=E5=90=8E?= =?UTF-8?q?=E9=87=8D=E6=96=B0=E6=8F=92=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/modules/mapper/SpectrumAnalysisMapper.java | 2 ++ .../org/jeecg/modules/mapper/xml/SpectrumAnalysisMapper.xml | 4 ++++ .../java/org/jeecg/modules/service/impl/GammaServiceImpl.java | 2 ++ 3 files changed, 8 insertions(+) diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/SpectrumAnalysisMapper.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/SpectrumAnalysisMapper.java index 60d255a3..7660872d 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/SpectrumAnalysisMapper.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/SpectrumAnalysisMapper.java @@ -173,6 +173,8 @@ public interface SpectrumAnalysisMapper { void deleteQCCheck(Integer idAnalysis); + void deleteMDC(Integer idAnalysis); + void deleteAnalySetting(Integer idAnalysis); Integer getSampleIdLikeFileName(@Param(value = "fileName") String fileName); diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/SpectrumAnalysisMapper.xml b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/SpectrumAnalysisMapper.xml index d9203460..35789a62 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/SpectrumAnalysisMapper.xml +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/SpectrumAnalysisMapper.xml @@ -1091,6 +1091,10 @@ DELETE FROM RNMAN.GARDS_QC_CHECK WHERE IDANALYSIS= #{idAnalysis} + + DELETE FROM RNMAN.GARDS_MDC WHERE IDANALYSIS= #{idAnalysis} + + DELETE FROM RNMAN.GARDS_ANALY_SETTING WHERE IDANALYSIS= #{idAnalysis} 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 c8b16606..a25d9bd0 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 @@ -5062,6 +5062,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi spectrumAnalysisMapper.deleteNucl(Integer.valueOf(idAnalysis)); // 删除GARDS_QC_CHECK表数据 spectrumAnalysisMapper.deleteQCCheck(Integer.valueOf(idAnalysis)); + // 删除GARDS_MDC表数据 + spectrumAnalysisMapper.deleteMDC(Integer.valueOf(idAnalysis)); // 删除GARDS_ANALY_SETTING表数据 spectrumAnalysisMapper.deleteAnalySetting(Integer.valueOf(idAnalysis)); } From 7cb6cf4960e58a5628f51626b13c0006800abb89 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 18 Jan 2024 18:59:52 +0800 Subject: [PATCH 37/47] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E5=88=86=E6=9E=90gamma=E9=83=A8=E5=88=86baseline=EF=BC=8Clc?= =?UTF-8?q?=EF=BC=8Cscac=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=E5=88=B0ftp?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/common/util/GammaFileUtil.java | 2 +- .../service/impl/GammaServiceImpl.java | 46 +++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) 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 42b11a82..e8ab7db3 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 @@ -3269,7 +3269,7 @@ public class GammaFileUtil extends AbstractLogOrReport { middleData.analyses_lc_filePath = qsLcPath; middleData.analyses_scac_filePath = qsScacPath; - middleData.analyses_baseline_absolute_filePath =qsSaveLc; + middleData.analyses_baseline_absolute_filePath =qsSaveBaseLine; middleData.analyses_lc_absolute_filePath=qsSaveLc; middleData.analyses_scac_absolute_filePath=qsSaveScac; middleData.analyses_save_absolute_filePath=spectrumPathProperties.getSaveFilePath()+StringPool.SLASH+qsSaveFile; 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 a25d9bd0..d2e08462 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 @@ -5085,6 +5085,52 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi if (bRet) { phd.setStatus("R"); //分析成功后存储日志文件和报告文件 + String rootPath = spectrumPathProperties.getRootPath(); + { + String baselinePathName = ftpUtil.getFtpRootPath()+middleData.analyses_baseline_absolute_filePath.substring(0, middleData.analyses_baseline_absolute_filePath.lastIndexOf(StringPool.SLASH)); + String baselineFileName = middleData.analyses_baseline_absolute_filePath.substring(middleData.analyses_baseline_absolute_filePath.lastIndexOf(StringPool.SLASH) + 1); + File baselineFile = new File(rootPath+middleData.analyses_baseline_absolute_filePath); + try { + FileInputStream in = new FileInputStream(baselineFile); + ftpUtil.saveFile(baselinePathName, baselineFileName, in); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } finally { + if (Objects.nonNull(baselineFile)) { + baselineFile.delete(); + } + } + } + { + String lcPathName = ftpUtil.getFtpRootPath()+middleData.analyses_lc_absolute_filePath.substring(0, middleData.analyses_lc_absolute_filePath.lastIndexOf(StringPool.SLASH)); + String lcFileName = middleData.analyses_lc_absolute_filePath.substring(middleData.analyses_lc_absolute_filePath.lastIndexOf(StringPool.SLASH) + 1); + File lcFile = new File(rootPath+middleData.analyses_lc_absolute_filePath); + try { + FileInputStream in = new FileInputStream(lcFile); + ftpUtil.saveFile(lcPathName, lcFileName, in); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } finally { + if (Objects.nonNull(lcFile)) { + lcFile.delete(); + } + } + } + { + String scacPathName = ftpUtil.getFtpRootPath()+middleData.analyses_scac_absolute_filePath.substring(0, middleData.analyses_scac_absolute_filePath.lastIndexOf(StringPool.SLASH)); + String scacFileName = middleData.analyses_scac_absolute_filePath.substring(middleData.analyses_scac_absolute_filePath.lastIndexOf(StringPool.SLASH) + 1); + File scacFile = new File(rootPath+middleData.analyses_scac_absolute_filePath); + try { + FileInputStream in = new FileInputStream(scacFile); + ftpUtil.saveFile(scacPathName, scacFileName, in); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } finally { + if (Objects.nonNull(scacFile)) { + scacFile.delete(); + } + } + } { String logPathName = middleData.analyses_absolute_LogPath.substring(0, middleData.analyses_absolute_LogPath.lastIndexOf(StringPool.SLASH)); String logFileName = middleData.analyses_absolute_LogPath.substring(middleData.analyses_absolute_LogPath.lastIndexOf(StringPool.SLASH)+1); From 227a7d19752d4949cb04e43d08c499428f7d6d39 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Mon, 22 Jan 2024 11:03:37 +0800 Subject: [PATCH 38/47] =?UTF-8?q?fix=EF=BC=9ASQL=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=EF=BC=9AERROR:=20could=20not=20determine=20data=20type=20of=20?= =?UTF-8?q?parameter=20$1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/system/mapper/xml/SysAnnouncementSendMapper.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysAnnouncementSendMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysAnnouncementSendMapper.xml index 9925f50a..e767ee33 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysAnnouncementSendMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysAnnouncementSendMapper.xml @@ -46,10 +46,10 @@ and sa.del_flag = '0' and sas.user_id = #{announcementSendModel.userId} - and sa.titile LIKE concat(concat('%',#{announcementSendModel.titile}),'%') + and sa.titile LIKE concat(concat('%',#{announcementSendModel.titile,javaType=String,jdbcType=VARCHAR}::text),'%') - and sa.sender LIKE concat(concat('%',#{announcementSendModel.sender}),'%') + and sa.sender LIKE concat(concat('%',#{announcementSendModel.sender,javaType=String,jdbcType=VARCHAR}::text),'%') and sas.read_flag = #{announcementSendModel.readFlag} From 3ed1af0b33f8d3a32596c598c1ec97308076cdbb Mon Sep 17 00:00:00 2001 From: nieziyan Date: Tue, 23 Jan 2024 10:53:27 +0800 Subject: [PATCH 39/47] =?UTF-8?q?fix=EF=BC=9Afile=20delete?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/GammaServiceImpl.java | 20 ------------------- .../impl/SpectrumAnalysisServiceImpl.java | 4 ---- 2 files changed, 24 deletions(-) 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 d2e08462..c95bdf81 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 @@ -5095,10 +5095,6 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi ftpUtil.saveFile(baselinePathName, baselineFileName, in); } catch (FileNotFoundException e) { throw new RuntimeException(e); - } finally { - if (Objects.nonNull(baselineFile)) { - baselineFile.delete(); - } } } { @@ -5110,10 +5106,6 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi ftpUtil.saveFile(lcPathName, lcFileName, in); } catch (FileNotFoundException e) { throw new RuntimeException(e); - } finally { - if (Objects.nonNull(lcFile)) { - lcFile.delete(); - } } } { @@ -5125,10 +5117,6 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi ftpUtil.saveFile(scacPathName, scacFileName, in); } catch (FileNotFoundException e) { throw new RuntimeException(e); - } finally { - if (Objects.nonNull(scacFile)) { - scacFile.delete(); - } } } { @@ -5141,10 +5129,6 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi ftpUtil.saveFile(logPathName, logFileName, in); } catch (FileNotFoundException e) { throw new RuntimeException(e); - } finally { - if (Objects.nonNull(logFile)) { - logFile.delete(); - } } } { @@ -5157,10 +5141,6 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi ftpUtil.saveFile(rptPathName, rptFileName, in); } catch (FileNotFoundException e) { throw new RuntimeException(e); - } finally { - if (Objects.nonNull(rptFile)) { - rptFile.delete(); - } } } List paths = new LinkedList<>(); diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java index 225d7d1d..74aece7f 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java @@ -4071,10 +4071,6 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements ftpUtil.saveFile(rptPathName, rptFileName, in); } catch (FileNotFoundException e) { throw new RuntimeException(e); - } finally { - if (Objects.nonNull(rptFile)) { - rptFile.delete(); - } } } } catch (FileNotFoundException e) { From 6b69e226d4773ac0d8b69a3219890c3e0ba6f57e Mon Sep 17 00:00:00 2001 From: nieziyan Date: Tue, 23 Jan 2024 15:12:24 +0800 Subject: [PATCH 40/47] =?UTF-8?q?fix=EF=BC=9A=E4=BD=BF=E7=94=A8=E5=8F=B0?= =?UTF-8?q?=E7=AB=99=E7=8A=B6=E6=80=81=E6=9E=9A=E4=B8=BE=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/service/impl/GardsDetectorsServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java index ce834aed..806b63f3 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java @@ -150,7 +150,7 @@ public class GardsDetectorsServiceImpl extends ServiceImpl gardsDetectors = this.baseMapper.selectList(new LambdaQueryWrapper<>()); Map detectorsMap = gardsDetectors.stream().collect(Collectors.toMap(GardsDetectorsSystem::getDetectorId, GardsDetectorsSystem::getDetectorCode)); - List detectorsUsedList = gardsDetectors.stream().filter(item -> item.getStatus()!=null && "Operating".equals(item.getStatus().trim())).map(GardsDetectorsSystem::getStationId).collect(Collectors.toList()); + List detectorsUsedList = gardsDetectors.stream().filter(item -> item.getStatus()!=null && DetectorStatus.ON.getValue().equals(item.getStatus().trim())).map(GardsDetectorsSystem::getStationId).collect(Collectors.toList()); redisUtil.set("detectorsMap",detectorsMap); redisUtil.set("detectorsUsedList", detectorsUsedList); } @@ -163,7 +163,7 @@ public class GardsDetectorsServiceImpl extends ServiceImpl detectorsList = this.baseMapper.selectList(queryWrapper); for (String stationId:stationIds) { - List detectors = detectorsList.stream().filter(item -> item.getStationId()!=null && item.getStationId().equals(Integer.valueOf(stationId)) && item.getStatus()!=null && item.getStatus().trim().equals("Operating")).collect(Collectors.toList()); + List detectors = detectorsList.stream().filter(item -> item.getStationId()!=null && item.getStationId().equals(Integer.valueOf(stationId)) && item.getStatus()!=null && item.getStatus().trim().equals(DetectorStatus.ON.getValue())).collect(Collectors.toList()); map.put(stationId, detectors); } } From 0d7000058df1084153df6e7668db629c40b1b5c7 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Tue, 23 Jan 2024 15:43:23 +0800 Subject: [PATCH 41/47] =?UTF-8?q?=E5=8F=B0=E7=AB=99=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=88=9D=E5=A7=8B=E5=8C=96=E5=8F=B0=E7=AB=99?= =?UTF-8?q?=E8=BF=90=E8=A1=8C=E7=8A=B6=E6=80=81=EF=BC=8C=E5=8F=B0=E7=AB=99?= =?UTF-8?q?=E8=BF=90=E8=A1=8C=E6=95=88=E7=8E=87=E6=96=B0=E5=A2=9E=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E5=8F=B0=E7=AB=99=E7=8A=B6=E6=80=81=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/DataProvisionEfficiencyManager.java | 3 ++- .../org/jeecg/DataReceivingStatusManager.java | 17 +++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/DataProvisionEfficiencyManager.java b/jeecg-module-station-operation/src/main/java/org/jeecg/DataProvisionEfficiencyManager.java index 3af394fb..a41d4788 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/DataProvisionEfficiencyManager.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/DataProvisionEfficiencyManager.java @@ -6,6 +6,7 @@ import org.jeecg.common.CalculateStationData; import org.jeecg.common.properties.MaximumPoolSizeProperties; import org.jeecg.common.util.RedisUtil; import org.jeecg.modules.base.entity.configuration.GardsStations; +import org.jeecg.modules.base.enums.DetectorStatus; import org.jeecg.modules.entity.data.RateParam; import org.jeecg.modules.entity.data.StationInfo; import org.springframework.scheduling.concurrent.CustomizableThreadFactory; @@ -61,7 +62,7 @@ public class DataProvisionEfficiencyManager { HashMap stationInfoMap = (HashMap) redisUtil.get("stationInfoMap"); List detectorsUsedList = (List) redisUtil.get("detectorsUsedList"); // 获取所有的台站信息 - List stations = stationInfoMap.values().stream().filter(item-> item.getLon()!=null && item.getLat()!=null).sorted(Comparator.comparing(GardsStations::getStationId)).collect(Collectors.toList()); + List stations = stationInfoMap.values().stream().filter(item-> item.getLon()!=null && item.getLat()!=null && item.getStatus() != null && item.getStatus().equalsIgnoreCase(DetectorStatus.ON.getValue())).sorted(Comparator.comparing(GardsStations::getStationId)).collect(Collectors.toList()); List stationInfos = new ArrayList<>(); for (GardsStations gardsStations : stations) { StationInfo stationInfo = new StationInfo(); diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/DataReceivingStatusManager.java b/jeecg-module-station-operation/src/main/java/org/jeecg/DataReceivingStatusManager.java index 50760a4a..39ee71b5 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/DataReceivingStatusManager.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/DataReceivingStatusManager.java @@ -10,9 +10,11 @@ import org.jeecg.common.config.mqtoken.UserTokenContext; import org.jeecg.common.properties.MaximumPoolSizeProperties; import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.RedisUtil; +import org.jeecg.modules.base.entity.configuration.GardsStations; import org.jeecg.modules.base.entity.original.GardsMetData; import org.jeecg.modules.base.entity.original.GardsSampleData; import org.jeecg.modules.base.entity.original.GardsSohData; +import org.jeecg.modules.base.enums.DetectorStatus; import org.jeecg.modules.entity.data.*; import org.jeecg.modules.mapper.StationMetDataMapper; import org.jeecg.modules.mapper.StationSampleDataMapper; @@ -88,8 +90,14 @@ public class DataReceivingStatusManager { } } //从redis中获取台站信息 - Map stationInfoMap = (Map)redisUtil.get("stationMap"); - List stationIds = stationInfoMap.keySet().stream().collect(Collectors.toList()); + Map stationInfoMap = (HashMap) redisUtil.get("stationInfoMap"); + List stationIds = new LinkedList<>(); + for (Map.Entry stationInfo:stationInfoMap.entrySet()) { + GardsStations infoValue = stationInfo.getValue(); + if (infoValue.getStatus() != null && infoValue.getStatus().equalsIgnoreCase(DetectorStatus.ON.getValue())) { + stationIds.add(infoValue.getStationId().toString()); + } + } //从redis中获取探测器信息 Map detectorInfoMap = (Map)redisUtil.get("detectorsMap"); //声明存储所有台站id对应的数据信息的集合 @@ -216,8 +224,9 @@ public class DataReceivingStatusManager { stationMap.put(stationId, detectorDataList); stationData.setStationId(stationId); if (CollectionUtils.isNotEmpty(stationInfoMap)) { - if (StringUtils.isNotBlank(stationInfoMap.get(stationId))) { - stationData.setStationCode(stationInfoMap.get(stationId)); + if (Objects.nonNull(stationInfoMap.get(stationId))) { + GardsStations stations = stationInfoMap.get(stationId); + stationData.setStationCode(stations.getStationCode()); } } stationData.setDetectors(stationMap); From e166a470bed371810cefa09aa64063f7b4b46984 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 24 Jan 2024 14:22:33 +0800 Subject: [PATCH 42/47] =?UTF-8?q?=E5=8F=B0=E7=AB=99=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=90=AF=E5=8A=A8=E6=97=B6=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=89=80=E6=9C=89=E7=94=A8=E6=88=B7=E6=9C=80?= =?UTF-8?q?=E5=A4=A7=E7=BC=93=E5=AD=98=E6=97=B6=E9=97=B4=E7=9A=84=E6=96=B9?= =?UTF-8?q?=E6=B3=95=20=E5=8F=B0=E7=AB=99=E8=BF=90=E8=A1=8C=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E6=9F=A5=E8=AF=A2=E5=8F=B0=E7=AB=99=E7=9A=84=E8=BF=90?= =?UTF-8?q?=E8=A1=8C=E7=8A=B6=E6=80=81=E6=8E=A5=E5=8F=A3=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=AE=BE=E7=BD=AE=E7=9A=84=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E8=BF=9B=E8=A1=8C=E7=BB=93=E6=9E=9C=E5=88=87?= =?UTF-8?q?=E5=89=B2=E8=BF=94=E5=9B=9E=20=E7=B3=BB=E7=BB=9F=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E7=B1=BB=E6=96=B0=E5=A2=9E=E5=8A=A0=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E5=8F=B0=E7=AB=99id=E5=8F=8A=E5=8F=B0=E7=AB=99id=E5=85=B3?= =?UTF-8?q?=E8=81=94=E7=9A=84=E6=8E=A2=E6=B5=8B=E5=99=A8=E6=95=B0=E7=BB=84?= =?UTF-8?q?=E6=96=B9=E6=B3=95=20=E5=8F=B0=E7=AB=99=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=95=B0=E6=8D=AE=E7=8A=B6=E6=80=81=E7=BA=BF?= =?UTF-8?q?=E7=A8=8B=E5=90=91redis=E7=BC=93=E5=AD=98=E8=BF=87=E4=BA=8E?= =?UTF-8?q?=E9=A2=91=E7=B9=81=E5=AF=BC=E8=87=B4=E8=A7=A6=E5=8F=91redis?= =?UTF-8?q?=E5=BA=8F=E5=88=97=E5=8C=96=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/DataReceivingStatusManager.java | 31 +-- .../jeecg/common/CalculateDataRateThread.java | 10 +- .../jeecg/common/CalculateStationData.java | 78 +----- .../mapper/StationReceivingConfigMapper.java | 7 + .../xml/stationReceivingConfigMapper.xml | 12 + .../modules/service/ICacheTimeService.java | 3 - .../service/IStationOperationService.java | 2 +- .../service/ISysUserFocusStationService.java | 5 + .../impl/StationOperationServiceImpl.java | 258 +++++------------- .../impl/SysUserFocusStationServiceImpl.java | 11 + .../controller/GardsDetectorsController.java | 5 - .../service/IGardsDetectorsService.java | 7 - .../impl/GardsDetectorsServiceImpl.java | 33 +-- .../JeecgStationOperationApplication.java | 3 + 14 files changed, 137 insertions(+), 328 deletions(-) create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationReceivingConfigMapper.xml diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/DataReceivingStatusManager.java b/jeecg-module-station-operation/src/main/java/org/jeecg/DataReceivingStatusManager.java index 39ee71b5..af035bdd 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/DataReceivingStatusManager.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/DataReceivingStatusManager.java @@ -15,8 +15,10 @@ import org.jeecg.modules.base.entity.original.GardsMetData; import org.jeecg.modules.base.entity.original.GardsSampleData; import org.jeecg.modules.base.entity.original.GardsSohData; import org.jeecg.modules.base.enums.DetectorStatus; +import org.jeecg.modules.entity.StationReceivingConfigStation; import org.jeecg.modules.entity.data.*; import org.jeecg.modules.mapper.StationMetDataMapper; +import org.jeecg.modules.mapper.StationReceivingConfigMapper; import org.jeecg.modules.mapper.StationSampleDataMapper; import org.jeecg.modules.mapper.StationSohDataMapper; import org.jeecg.modules.service.ICacheTimeService; @@ -42,8 +44,6 @@ public class DataReceivingStatusManager { private final RedisUtil redisUtil; - private final ICacheTimeService cacheTimeService; - private final StationMetDataMapper stationMetDataMapper; private final StationSampleDataMapper stationSampleDataMapper; @@ -69,7 +69,7 @@ public class DataReceivingStatusManager { //获取机器可用核心数 int systemCores = maximumPoolSizeProperties.getStation();//Runtime.getRuntime().availableProcessors(); //初始化线程池 - ThreadFactory threadFactory = new CustomizableThreadFactory("undeal-file-parsing-"); + ThreadFactory threadFactory = new CustomizableThreadFactory("data-receiving-status-"); poolExecutor = new ThreadPoolExecutor(systemCores-1,systemCores,5, TimeUnit.SECONDS, new LinkedBlockingQueue<>(),threadFactory); } @@ -77,18 +77,8 @@ public class DataReceivingStatusManager { public void run() { for(;;){ long start = System.currentTimeMillis(); - // start:生成临时Token到线程中 - UserTokenContext.setToken(getTempToken()); - //获取四项缓存数据的对应内容 - List> cacheList = cacheTimeService.findCacheTime(); - //缓存时间 - String cacheTime = ""; - for (int i=0; i< cacheList.size(); i++) { - if ( StringUtils.isNotBlank(cacheList.get(i).get(CacheName.cacheTime)) ) { - cacheTime = cacheList.get(i).get(CacheName.cacheTime); - break; - } - } + //读取缓存 + String cacheTime = (String) redisUtil.get("maxCacheTime"); //从redis中获取台站信息 Map stationInfoMap = (HashMap) redisUtil.get("stationInfoMap"); List stationIds = new LinkedList<>(); @@ -100,6 +90,7 @@ public class DataReceivingStatusManager { } //从redis中获取探测器信息 Map detectorInfoMap = (Map)redisUtil.get("detectorsMap"); + Map> stationDetectorMap = (Map>) redisUtil.get("stationDetectorMap"); //声明存储所有台站id对应的数据信息的集合 Map stationDataMap = Objects.nonNull(redisUtil.get("stationDataMap"))?(Map) redisUtil.get("stationDataMap"):new HashMap<>(); //遍历台站id @@ -112,21 +103,21 @@ public class DataReceivingStatusManager { //根据台站id,开始时间查询出台站下的气象数据 List metDataList = stationMetDataMapper.findMetDataList(stationIds, startDateTime); //根据台站id查询出当前台站下处于运行状态的数据 - Map> stationDetectors = cacheTimeService.findStationDetectors(stationIds); +// Map> stationDetectors = cacheTimeService.findStationDetectors(stationIds); //遍历台站id 获取台站下的探测器数据 - if (CollectionUtils.isNotEmpty(stationDetectors)) { + if (CollectionUtils.isNotEmpty(stationDetectorMap)) { for (String stationId : stationIds) { Map>> stationMap = new HashMap<>(); //获取台站下对应的探测器数据 - List detectors = stationDetectors.get(stationId); + List detectors = stationDetectorMap.get(stationId); if (CollectionUtils.isNotEmpty(detectors)) { StationData stationData = new StationData(); //stream流获取探测器id List detectorIds = detectors.stream().map(GardsDetectorsSystem::getDetectorId).collect(Collectors.toList()); - //探测器加上NA 无效探测器id - detectorIds.add(1); //根据探测器id 开始时间查询样品基础数据 List sampleDataList = stationSampleDataMapper.findSampleDataList(detectorIds, startDateTime); + //探测器加上NA 无效探测器id + detectorIds.add(1); //根据台站id,探测器id,开始时间 List sohDataList = stationSohDataMapper.findSohDataList(stationId, detectorIds, startDateTime); //移除掉最后一个探测器 diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/common/CalculateDataRateThread.java b/jeecg-module-station-operation/src/main/java/org/jeecg/common/CalculateDataRateThread.java index 417e0ff0..af396cb8 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/common/CalculateDataRateThread.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/common/CalculateDataRateThread.java @@ -20,11 +20,9 @@ public class CalculateDataRateThread implements Runnable{ private ICalCulStationDataService calCulStationDataService = ApplicationContextUtil.getContext().getBean(ICalCulStationDataService.class); - private RedisUtil redisUtil = ApplicationContextUtil.getContext().getBean(RedisUtil.class); + private GetStationinfoAndDataRate stationinfoAndDataRate; - private final GetStationinfoAndDataRate stationinfoAndDataRate; - - private final Map finallySta; + private Map finallySta; private CountDownLatch countDownLatch; @@ -64,10 +62,8 @@ public class CalculateDataRateThread implements Runnable{ CalculateDataRate calculateDataRate = new CalculateDataRate(); calculateDataRate.setParameter(mRateparam); //根据台站编码 查询 台站信息 -// StationInfo stationInfo = calCulStationDataService.getStationInfo(originalstationsinfo.getStationCode()); StationInfo stationInfo = new StationInfo(); BeanUtils.copyProperties(originalstationsinfo, stationInfo); -// stationInfo.setUsed(calCulStationDataService.getUsed(Integer.valueOf(stationInfo.getId()))); //赋值台站信息 calculateDataRate.setMStationId(stationInfo.getId()); calculateDataRate.setMStationCode(stationInfo.getStationCode()); @@ -88,7 +84,7 @@ public class CalculateDataRateThread implements Runnable{ } //赋值最后的结果 finallySta.put(stationInfo.getStationCode(), stationInfo); - redisUtil.set("dataStationInfoList", finallySta); +// redisUtil.set("dataStationInfoList", finallySta); } } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/common/CalculateStationData.java b/jeecg-module-station-operation/src/main/java/org/jeecg/common/CalculateStationData.java index 4ed0a2d3..41cce466 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/common/CalculateStationData.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/common/CalculateStationData.java @@ -825,18 +825,9 @@ public class CalculateStationData { CountDownLatch countDownLatch = null; //初始化线程数量=0 int threadNum = 0; -// //获取当前设备的理想线程数 -// int idealnum = Runtime.getRuntime().availableProcessors(); //获取需要处理的台站信息数量 int works = stationInfos.size(); -// // 如果需要工作处理的数量 小于 理想线程数 -// if(works < idealnum) { - //将需要处理的工作数量赋值给线程数,按照需要处理的工作数量处理数据 - threadNum = works; -// } else { -// //否则按照理想线程数 处理数据 -// threadNum = idealnum; -// } + threadNum = works; // 如果线程数不等于0 if (threadNum != 0){ //获取机器可用核心数 @@ -852,12 +843,7 @@ public class CalculateStationData { } }; poolExecutor = new ThreadPoolExecutor(15,maximumPoolSize,10, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(),threadFactory); - //初始化线程池 -// poolExecutor = new ThreadPoolExecutor(16, 32, 1, TimeUnit.SECONDS, new LinkedBlockingQueue<>()); } -// else { -// return finallySta; -// } // 线程数 等于 需要处理的台站数量 if( threadNum == works ){ countDownLatch = new CountDownLatch(threadNum); @@ -883,67 +869,7 @@ public class CalculateStationData { poolExecutor.shutdownNow(); } } + redisUtil.set("dataStationInfoList", finallySta); } -// else { // 线程数 不等于 需要处理的台站数量时 -// //将台站数组按照线程数分成多组 -// //声明一个变量 看当前台站信息需要分为多少组 -// int Tworks = 0; -// //如果当前需要处理的台站数量是线程数量的整数倍 -// if(works % threadNum == 0){ -// //变量值 等于 需要处理的台站数量与线程数的商 -// Tworks = works / threadNum; // 300 30 10 -// } else { -// // 变量值 等于 需要处理的台站数量与线程数的商 +1 -// Tworks = works / threadNum + 1; // 301 30 11 -// } -// //遍历需要查询的组数 -// for (int i = 0; i < Tworks; i++){ -// long start = System.currentTimeMillis(); -// //根据每组的台站大小 分割台站数组 -// List infos = new ArrayList<>(); -// int startIndex = i * threadNum; -// int endIndex = ((i + 1) * threadNum); -// //判断当前结束下标是否超出台站数量 没有超出说明还在范围内 正常截取数组 -// if (endIndex <= works){ -// infos = stationInfos.subList(startIndex, endIndex); -// }else {//如果超出台站数量 则从截取开始下标 截取到台站数组长度 -// infos = stationInfos.subList(startIndex, works); -// } -// countDownLatch = new CountDownLatch(infos.size()); -// //遍历当前组的台站并进行计算 -// for (int j = 0; j < infos.size(); j++){ -// //获取台站信息 -// StationInfo stationInfo = infos.get(j); -// //声明一个实体类 -// GetStationinfoAndDataRate stationinfoAndDataRate = new GetStationinfoAndDataRate(); -// stationinfoAndDataRate.setMOriginalstationsinfo(stationInfo); -// stationinfoAndDataRate.setMRateparam(mRateParam); -// CalculateDataRateThread calculateDataRateThread = new CalculateDataRateThread(finallySta, stationinfoAndDataRate, countDownLatch); -// //调用线程计算率值 -// poolExecutor.execute(calculateDataRateThread); -// } -// if (i == Tworks - 1){ -// try { -// countDownLatch.await(); -// } catch (InterruptedException e) { -// throw new RuntimeException(e); -// } finally { -// //关闭线程池 -// if(poolExecutor != null) { -// poolExecutor.shutdownNow(); -// } -// } -// }else { -// try { -// countDownLatch.await(); -// } catch (InterruptedException e) { -// throw new RuntimeException(e); -// } -// } -// long end = System.currentTimeMillis(); -// System.out.println("单次线程执行总时长:"+ (end-start)); -// } -// } -// return finallySta; } } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationReceivingConfigMapper.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationReceivingConfigMapper.java index a89adf78..7ed275ca 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationReceivingConfigMapper.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationReceivingConfigMapper.java @@ -1,7 +1,14 @@ package org.jeecg.modules.mapper; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; import org.jeecg.modules.entity.StationReceivingConfigStation; +@Mapper +@DS("master") public interface StationReceivingConfigMapper extends BaseMapper { + + String findMaxCacheTime(); + } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationReceivingConfigMapper.xml b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationReceivingConfigMapper.xml new file mode 100644 index 00000000..b39ef042 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationReceivingConfigMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java index 65657c2e..ee98e075 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java @@ -19,9 +19,6 @@ public interface ICacheTimeService { @RequestMapping("/sys/dictItem/findCacheTime") List> findCacheTime(); - @RequestMapping("/gardsDetectors/findStationDetectors") - Map> findStationDetectors(@RequestBody List stationIds); - @RequestMapping("/sys/user/findUserByName") SysUser findUserByName(@RequestParam String userName); diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java index 9d7c5768..058df0d8 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java @@ -46,7 +46,7 @@ public interface IStationOperationService extends IService { /** * 查询台站监测数据 * @param userId - * @param stationId + * @param oneStationId * @return */ Result getDataReceivingStatus(String userId, String oneStationId); diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ISysUserFocusStationService.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ISysUserFocusStationService.java index 1e3ab12c..309f9ea3 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ISysUserFocusStationService.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ISysUserFocusStationService.java @@ -34,4 +34,9 @@ public interface ISysUserFocusStationService extends IService stationDataMap = (Map) redisUtil.get("stationDataMap"); -// //获取四项缓存数据的对应内容 -// List> cacheList = cacheTimeService.findCacheTime(); -// //缓存时间 -// String cacheTime = ""; -// for (int i=0; i< cacheList.size(); i++) { -// if ( StringUtils.isNotBlank(cacheList.get(i).get(CacheName.cacheTime)) ) { -// cacheTime = cacheList.get(i).get(CacheName.cacheTime); -// break; -// } -// } -// if (StringUtils.isBlank(cacheTime)) { -// result.error500("The cache time cannot be empty"); -// return result; -// } + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(StationReceivingConfig::getUserId, userId); + StationReceivingConfigStation configStation = stationReceivingConfigMapper.selectOne(queryWrapper); + Double cacheTime = configStation.getCacheTime(); + //获取当前日期时间 作为结束查询时间 + LocalDateTime endDate = LocalDateTime.now(); + //根据缓存日期 得到开始查询时间 + LocalDateTime startDate = endDate.minusDays(cacheTime.intValue()); + //获取到开始时间的秒数 + long startMill = startDate.toInstant(ZoneOffset.UTC).toEpochMilli(); //过滤出当前用户关注的台站信息 List stationDataList = new LinkedList<>(); - if (StringUtils.isNotBlank(oneStationId)) { - StationData stationData = stationDataMap.get(oneStationId); - stationDataList.add(stationData); - } else { - //根据用户id查询出当前用户关注的台站信息 - LambdaQueryWrapper userFocusStationQueryWrapper = new LambdaQueryWrapper<>(); - userFocusStationQueryWrapper.eq(SysUserFocusStationStation::getUserId, userId); - List userFocusStations = sysUserFocusStationMapper.selectList(userFocusStationQueryWrapper); - List stationIds = userFocusStations.stream().map(SysUserFocusStation::getStationId).collect(Collectors.toList()); - for (String stationId:stationIds) { - if (Objects.nonNull(stationDataMap.get(stationId))) { - stationDataList.add(stationDataMap.get(stationId)); + if (CollectionUtils.isNotEmpty(stationDataMap)) { + if (StringUtils.isNotBlank(oneStationId)) { + StationData stationData = stationDataMap.get(oneStationId); + if (Objects.nonNull(stationData)) { + //读取探测器的数据集合 + Map>> detectors = stationData.getDetectors(); + //遍历探测器的集合 + for (Map.Entry>> detector:detectors.entrySet()) { + //获取探测器对应的数组 + List> detectorValue = detector.getValue(); + //遍历探测器数组 + for (Map detectorDataMap:detectorValue) { + for (String key :detectorDataMap.keySet()) { + DetectorData detectorData = detectorDataMap.get(key); + //通过流过滤出数据的开始时间戳在用户统计的开始时间戳之后的数据 + detectorData.getDataList().stream().filter(item -> item.getBeginTime() >= startMill).collect(Collectors.toList()); + } + } + } + } + stationDataList.add(stationData); + } else { + //根据用户id查询出当前用户关注的台站信息 + LambdaQueryWrapper userFocusStationQueryWrapper = new LambdaQueryWrapper<>(); + userFocusStationQueryWrapper.eq(SysUserFocusStationStation::getUserId, userId); + List userFocusStations = sysUserFocusStationMapper.selectList(userFocusStationQueryWrapper); + List stationIds = userFocusStations.stream().map(SysUserFocusStation::getStationId).collect(Collectors.toList()); + for (String stationId:stationIds) { + StationData stationData = stationDataMap.get(stationId); + if (Objects.nonNull(stationData)) { + //读取探测器的数据集合 + Map>> detectors = stationData.getDetectors(); + //遍历探测器的集合 + for (Map.Entry>> detector:detectors.entrySet()) { + //获取探测器对应的数组 + List> detectorValue = detector.getValue(); + //遍历探测器数组 + for (Map detectorDataMap:detectorValue) { + for (String key :detectorDataMap.keySet()) { + DetectorData detectorData = detectorDataMap.get(key); + //通过流过滤出数据的开始时间戳在用户统计的开始时间戳之后的数据 + detectorData.getDataList().stream().filter(item -> item.getBeginTime() >= startMill).collect(Collectors.toList()); + } + } + } + stationDataList.add(stationData); + } } } } - -// //从redis中获取台站信息 -// Map stationInfoMap = (Map)redisUtil.get("stationMap"); -// //从redis中获取探测器信息 -// Map detectorInfoMap = (Map)redisUtil.get("detectorsMap"); -// //遍历台站id -// if (CollectionUtils.isNotEmpty(stationIds)) { -// //获取当前日期时间 作为结束查询时间 -// LocalDateTime endDate = LocalDateTime.now(); -// //根据缓存日期 得到开始查询时间 -// LocalDateTime startDate = endDate.minusDays(Integer.valueOf(cacheTime)); -// String startDateTime = startDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); -// //根据台站id,开始时间查询出台站下的气象数据 -// List metDataList = stationMetDataMapper.findMetDataList(stationIds, startDateTime); -// //根据台站id查询出当前台站下处于运行状态的数据 -// Map> stationDetectors = cacheTimeService.findStationDetectors(stationIds); -// //声明存储所有台站id对应的数据信息的集合 -// List stationDataList = new LinkedList<>(); -// //遍历台站id 获取台站下的探测器数据 -// if (CollectionUtils.isNotEmpty(stationDetectors)) { -// for (String stationId:stationIds) { -// Map>> stationMap = new HashMap<>(); -// //获取台站下对应的探测器数据 -// List detectors = stationDetectors.get(stationId); -// if (CollectionUtils.isNotEmpty(detectors)) { -// StationData stationData = new StationData(); -// //stream流获取探测器id -// List detectorIds = detectors.stream().map(GardsDetectorsSystem::getDetectorId).collect(Collectors.toList()); -// //根据探测器id 开始时间查询样品基础数据 -// List sampleDataList = stationSampleDataMapper.findSampleDataList(detectorIds, startDateTime); -// //根据台站id,探测器id,开始时间 -// List sohDataList = stationSohDataMapper.findSohDataList(stationId, detectorIds, startDateTime); -// //用于接收当前台站下所有探测器及探测器所有的样品数据,气体数据,状态数据集合 -// List> detectorDataList = new LinkedList<>(); -// -// for (Integer detectorId:detectorIds) { -// Map detectorMap = new HashMap<>(); -// DetectorData detectorData = new DetectorData(); -// detectorData.setDetectorId(detectorId); -// //声明数据实体实体类 根据参数存储 样品基础数据对应的数据 气体数据 状态数据 -// List dataInfoList = new LinkedList<>(); -// if (CollectionUtils.isNotEmpty(sampleDataList)) { -// //根据探测器id过滤出对应的样品数据 并进行遍历封装进dataInfo -// List dataListSample = sampleDataList.stream().filter(item -> item.getDetectorId().equals(detectorId)).collect(Collectors.toList()); -// if (CollectionUtils.isNotEmpty(dataListSample)) { -// for (GardsSampleData sampleData:dataListSample) { -// DataInfoVo dataInfo = new DataInfoVo(); -// //根据样品数据类型判断 数据类型 根据不同的样品数据状态 -// String dataType = sampleData.getDataType(); -// String spectralQualifie = sampleData.getSpectralQualifie(); -// if (StrUtil.equals(dataType,"S")){ -// dataInfo.setType("PHD"); -// if (StrUtil.equals(spectralQualifie,"PREL")){ -// dataInfo.setStatus("SPREL"); -// } else if (StrUtil.equals(spectralQualifie,"FULL")) { -// dataInfo.setStatus("SFULL"); -// } -// } else if (StrUtil.equals(dataType,"Q")){ -// dataInfo.setType("QC"); -// dataInfo.setStatus("QC"); -// } else if (StrUtil.equals(dataType,"G")){ -// dataInfo.setType("PHD"); -// if (StrUtil.equals(spectralQualifie,"PREL")){ -// dataInfo.setStatus("GPREL"); -// } else if (StrUtil.equals(spectralQualifie,"FULL")) { -// dataInfo.setStatus("GFULL"); -// } -// } else { -// continue; -// } -// //处理开始时间 -// Date acquisitionStart = sampleData.getAcquisitionStart(); -// dataInfo.setBeginTime(Double.valueOf(acquisitionStart.getTime()/1000)); -// //处理结束时间 -// Date acquisitionStop = sampleData.getAcquisitionStop(); -// dataInfo.setEndTime(Double.valueOf(acquisitionStop.getTime()/1000)); -// //时间间隔 -// Double span = Double.valueOf(acquisitionStop.getTime()/1000) - Double.valueOf(acquisitionStart.getTime()/1000); -// dataInfo.setSpanTime(span); -// dataInfoList.add(dataInfo); -// } -// } -// } -// if (CollectionUtils.isNotEmpty(sohDataList)) { -// List dataListSoh = sohDataList.stream().filter(item -> item.getDetectorId().equals(detectorId)).collect(Collectors.toList()); -// //根据探测器id 台站id 开始时间查询状态数据 -// if (CollectionUtils.isNotEmpty(dataListSoh)) { -// for (GardsSohData sohData:dataListSoh) { -// DataInfoVo dataInfo = new DataInfoVo(); -// dataInfo.setType("SOH"); -// dataInfo.setStatus("SOH"); -// Date startTime = sohData.getStartTime(); -// dataInfo.setBeginTime(Double.valueOf(startTime.getTime()/1000)); -// dataInfo.setSpanTime(Double.valueOf(sohData.getTime())); -// dataInfoList.add(dataInfo); -// } -// } -// } -// if (CollectionUtils.isNotEmpty(metDataList)) { -// List dataListMet = metDataList.stream().filter(item -> item.getStationId().equals(stationId)).collect(Collectors.toList()); -// if (CollectionUtils.isNotEmpty(dataListMet)) { -// for (GardsMetData metData:dataListMet) { -// DataInfoVo dataInfo = new DataInfoVo(); -// dataInfo.setType("MET"); -// dataInfo.setStatus("MET"); -// Date startTime = metData.getStartTime(); -// dataInfo.setBeginTime(Double.valueOf(startTime.getTime()/1000)); -// Date endTime = metData.getEndTime(); -// dataInfo.setEndTime(Double.valueOf(endTime.getTime()/1000)); -// Double span = Double.valueOf(startTime.getTime() / 1000) - Double.valueOf(endTime.getTime() / 1000); -// dataInfo.setSpanTime(span); -// dataInfoList.add(dataInfo); -// } -// } -// } -// detectorData.setDataList(dataInfoList); -// if (CollectionUtils.isNotEmpty(detectorInfoMap)) { -// if (StringUtils.isNotBlank(detectorInfoMap.get(detectorId.toString()))) { -// detectorData.setDetectorCode(detectorInfoMap.get(detectorId.toString())); -// } -// } -// detectorMap.put(String.valueOf(detectorId), detectorData); -// detectorDataList.add(detectorMap); -// } -// -// stationMap.put(stationId, detectorDataList); -// stationData.setStationId(stationId); -// if (CollectionUtils.isNotEmpty(stationInfoMap)) { -// if (StringUtils.isNotBlank(stationInfoMap.get(stationId))) { -// stationData.setStationCode(stationInfoMap.get(stationId)); -// } -// } -// stationData.setDetectors(stationMap); -// stationDataList.add(stationData); -// } -// } -// } - result.setSuccess(true); - result.setResult(stationDataList); -// } + result.setSuccess(true); + result.setResult(stationDataList); return result; } @@ -565,33 +464,6 @@ public class StationOperationServiceImpl extends ServiceImpl stationInfoMap = (HashMap) redisUtil.get("stationInfoMap"); -// List detectorsUsedList = (List) redisUtil.get("detectorsUsedList"); -// // 获取所有的台站信息 -// List stations = stationInfoMap.values().stream().sorted(Comparator.comparing(GardsStations::getStationId)).collect(Collectors.toList()); -// List stationInfos = new ArrayList<>(); -// for (GardsStations gardsStations : stations) { -// StationInfo stationInfo = new StationInfo(); -// stationInfo.setId(gardsStations.getStationId().toString()); -// stationInfo.setStationCode(gardsStations.getStationCode()); -// stationInfo.setCountryCode(gardsStations.getCountryCode()); -// stationInfo.setLon(gardsStations.getLon().toString()); -// stationInfo.setLat(gardsStations.getLat().toString()); -// stationInfo.setType(gardsStations.getType()); -// stationInfo.setDescription(gardsStations.getDescription()); -// stationInfo.setStatus(gardsStations.getStatus()); -// boolean contains = detectorsUsedList.contains(gardsStations.getStationId()); -// if (contains) { -// stationInfo.setUsed("YES"); -// } else { -// stationInfo.setUsed("NO"); -// } -// stationInfos.add(stationInfo); -// } -// RateParam mRateParam = calCulateStationData.initParameter(); -// List stationInfoList = calCulateStationData.mutiThreadGetStationInfo(stationInfos,mRateParam); return Result.OK(stationInfoList); } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java index 7ee0251a..b11356de 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/SysUserFocusStationServiceImpl.java @@ -12,6 +12,7 @@ import org.jeecg.common.system.util.JwtUtil; import org.jeecg.common.util.RedisUtil; import org.jeecg.common.util.SpringContextUtils; import org.jeecg.modules.base.entity.configuration.GardsStations; +import org.jeecg.modules.base.entity.postgre.StationReceivingConfig; import org.jeecg.modules.base.entity.postgre.SysUser; import org.jeecg.modules.entity.StationReceivingConfigStation; import org.jeecg.modules.entity.SysUserFocusStationStation; @@ -27,6 +28,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; import java.time.LocalDateTime; import java.util.*; +import java.util.stream.Collectors; @Service("sysUserFocusStationService") public class SysUserFocusStationServiceImpl extends ServiceImpl implements ISysUserFocusStationService { @@ -134,6 +136,8 @@ public class SysUserFocusStationServiceImpl extends ServiceImpl> findStationDetectors(@RequestBody List stationIds){ - return gardsDetectorsService.findStationDetectors(stationIds); - } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java index 05a0bf87..23df9ae4 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java @@ -57,11 +57,4 @@ public interface IGardsDetectorsService extends IService { * @return */ void findDetectors(); - - /** - * 根据台站id查询对应的探测器数据信息 - * @param stationIds - * @return - */ - Map> findStationDetectors(List stationIds); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java index 806b63f3..ef654a99 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java @@ -27,6 +27,7 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; @Service("gardsDetectorsService") @@ -147,26 +148,26 @@ public class GardsDetectorsServiceImpl extends ServiceImpl gardsDetectors = this.baseMapper.selectList(new LambdaQueryWrapper<>()); + //根据台站id获取对应的探测集合 + Map> stationDetectorMap = new HashMap<>(); + for (GardsDetectorsSystem detectorsSystem: gardsDetectors) { + if (detectorsSystem.getStationId() != null) { + List systemList = CollectionUtils.isNotEmpty(stationDetectorMap.get(detectorsSystem.getStationId()))?stationDetectorMap.get(detectorsSystem.getStationId()):new LinkedList<>(); + if (detectorsSystem.getStatus() != null && detectorsSystem.getStatus().trim().equals(DetectorStatus.ON.getValue())) { + systemList.add(detectorsSystem); + stationDetectorMap.put(detectorsSystem.getStationId(), systemList); + } + } + } + //生成一个探测器id,探测器编码的map进行缓存 Map detectorsMap = gardsDetectors.stream().collect(Collectors.toMap(GardsDetectorsSystem::getDetectorId, GardsDetectorsSystem::getDetectorCode)); + //过滤出使用状态的探测器相关的台站信息 List detectorsUsedList = gardsDetectors.stream().filter(item -> item.getStatus()!=null && DetectorStatus.ON.getValue().equals(item.getStatus().trim())).map(GardsDetectorsSystem::getStationId).collect(Collectors.toList()); redisUtil.set("detectorsMap",detectorsMap); redisUtil.set("detectorsUsedList", detectorsUsedList); - } - - @Override - public Map> findStationDetectors(List stationIds) { - Map> map = new HashMap<>(); - if (CollectionUtils.isNotEmpty(stationIds)){ - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.in(GardsDetectorsSystem::getStationId, stationIds); - List detectorsList = this.baseMapper.selectList(queryWrapper); - for (String stationId:stationIds) { - List detectors = detectorsList.stream().filter(item -> item.getStationId()!=null && item.getStationId().equals(Integer.valueOf(stationId)) && item.getStatus()!=null && item.getStatus().trim().equals(DetectorStatus.ON.getValue())).collect(Collectors.toList()); - map.put(stationId, detectors); - } - } - return map; + redisUtil.set("stationDetectorMap", stationDetectorMap); } } diff --git a/jeecg-server-cloud/armd-station-operation-start/src/main/java/org/jeecg/JeecgStationOperationApplication.java b/jeecg-server-cloud/armd-station-operation-start/src/main/java/org/jeecg/JeecgStationOperationApplication.java index 444da5cc..8c3db501 100644 --- a/jeecg-server-cloud/armd-station-operation-start/src/main/java/org/jeecg/JeecgStationOperationApplication.java +++ b/jeecg-server-cloud/armd-station-operation-start/src/main/java/org/jeecg/JeecgStationOperationApplication.java @@ -3,6 +3,7 @@ package org.jeecg; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.service.ISysUserFocusStationService; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -23,6 +24,7 @@ import java.net.UnknownHostException; @RequiredArgsConstructor public class JeecgStationOperationApplication extends SpringBootServletInitializer implements CommandLineRunner { + private final ISysUserFocusStationService sysUserFocusStationService; private final DataProvisionEfficiencyManager dataProvisionEfficiencyManager; private final DataReceivingStatusManager dataReceivingStatusManager; @@ -48,6 +50,7 @@ public class JeecgStationOperationApplication extends SpringBootServletInitializ @Override public void run(String... args) throws Exception { + sysUserFocusStationService.cacheStationReceivingConfig(); dataProvisionEfficiencyManager.start(); dataReceivingStatusManager.start(); } From 39fd1fb402c056f9790734dbf72aa8e844372215 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Thu, 25 Jan 2024 14:18:05 +0800 Subject: [PATCH 43/47] =?UTF-8?q?fix=EF=BC=9A=E8=87=AA=E5=8A=A8=E5=A4=84?= =?UTF-8?q?=E7=90=86=E7=A8=8B=E5=BA=8F=E6=96=87=E4=BB=B6=E9=87=8D=E5=91=BD?= =?UTF-8?q?=E5=90=8D=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spectrum/AbstractS_D_Q_G_SpectrumHandler.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AbstractS_D_Q_G_SpectrumHandler.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AbstractS_D_Q_G_SpectrumHandler.java index c93f00a8..360ad4c1 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AbstractS_D_Q_G_SpectrumHandler.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AbstractS_D_Q_G_SpectrumHandler.java @@ -157,12 +157,9 @@ public abstract class AbstractS_D_Q_G_SpectrumHandler extends AbstractSpectrumHa @Override protected void updateSpectrumFileName() throws FileNotFoundException { StringBuilder newFileName = new StringBuilder(); - newFileName.append(this.sourceData.detector_code); - newFileName.append(StringConstant.DASH); - newFileName.append(StringUtils.replace(this.sourceData.acquisition_start_date,StringConstant.SLASH,"")); - newFileName.append(StringConstant.UNDER_LINE); - newFileName.append(StringUtils.replace(this.sourceData.acquisition_start_time.substring(0,this.sourceData.acquisition_start_time.lastIndexOf(":")),":","")); - newFileName.append(super.spectrumServiceQuotes.getNameStandUtil().GetSuffix(super.currDataType.getType(),this.sourceData.spectrum_quantity,String.valueOf(this.sourceData.acquisition_live_time))); + String suffix = super.spectrumServiceQuotes.getNameStandUtil().GetSuffix(super.currDataType.getType(), this.sourceData.spectrum_quantity, String.valueOf(this.sourceData.acquisition_live_time)); + String newName = super.spectrumServiceQuotes.getNameStandUtil().GetFileNameFromDateTime(this.sourceData.measurement_id, suffix); + newFileName.append(newName); if(!super.spectrumFile.exists()){ //发送格式化错误事件,后续统计报告使用 spectrumServiceQuotes.getApplicationContext().publishEvent(new FormatErrorEvent()); From c7265586728a64f30dc075e28bb5f0154a379583 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Thu, 25 Jan 2024 14:24:50 +0800 Subject: [PATCH 44/47] =?UTF-8?q?fix=EF=BC=9A=E5=BE=AE=E6=9C=8D=E5=8A=A1na?= =?UTF-8?q?me=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/jeecg/modules/feignclient/SystemClient.java | 2 +- .../main/java/org/jeecg/modules/controller/GammaController.java | 1 - .../main/java/org/jeecg/modules/feignclient/SystemClient.java | 2 +- .../main/java/org/jeecg/modules/service/IUserTaskService.java | 2 +- .../java/org/jeecg/modules/feignclient/AbnormalAlarmClient.java | 2 +- .../main/java/org/jeecg/modules/service/IMenuNameService.java | 2 +- .../src/main/resources/application.yml | 2 +- .../armd-auto-process-start/src/main/resources/application.yml | 2 +- .../armd-log-manage-start/src/main/resources/application.yml | 2 +- .../src/main/resources/application.yml | 2 +- .../src/main/resources/application.yml | 2 +- .../armd-system-cloud-start/src/main/resources/application.yml | 2 +- .../src/main/resources/application.yml | 2 +- 13 files changed, 12 insertions(+), 13 deletions(-) diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/feignclient/SystemClient.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/feignclient/SystemClient.java index 286f8737..8b8e9c4c 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/feignclient/SystemClient.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/feignclient/SystemClient.java @@ -13,7 +13,7 @@ import java.util.List; import java.util.Map; @Component -@FeignClient("jeecg-system") +@FeignClient("armd-system") public interface SystemClient { /* 系统用户相关 */ @RequestMapping("/sys/user/findUserMap") diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/GammaController.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/GammaController.java index 999628f0..943ef4b9 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/GammaController.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/GammaController.java @@ -7,7 +7,6 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.modules.base.bizVo.GammaRLR; import org.jeecg.modules.entity.GardsSampleDataSpectrum; import org.jeecg.modules.entity.vo.*; -import org.jeecg.modules.feignclient.SystemClient; import org.jeecg.modules.service.IGammaService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/feignclient/SystemClient.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/feignclient/SystemClient.java index a59ce816..c2099c19 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/feignclient/SystemClient.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/feignclient/SystemClient.java @@ -7,7 +7,7 @@ import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.GetMapping; @Component -@FeignClient("jeecg-spectrum") +@FeignClient("armd-system") public interface SystemClient { /* 获取当前用户信息 */ diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IUserTaskService.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IUserTaskService.java index 9e1f5330..7321ef8c 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IUserTaskService.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IUserTaskService.java @@ -9,7 +9,7 @@ import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @Component -@FeignClient("jeecg-system") +@FeignClient("armd-system") public interface IUserTaskService { @RequestMapping("/sys/user/findUserByName") diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/feignclient/AbnormalAlarmClient.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/feignclient/AbnormalAlarmClient.java index bac9b1b7..7ca3c5d2 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/feignclient/AbnormalAlarmClient.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/feignclient/AbnormalAlarmClient.java @@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; @Component -@FeignClient("jeecg-abnormal-alarm") +@FeignClient("armd-abnormal-alarm") public interface AbnormalAlarmClient { /* SysEmailController下相关接口 */ diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IMenuNameService.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IMenuNameService.java index 9c02d771..bf72544c 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IMenuNameService.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IMenuNameService.java @@ -9,7 +9,7 @@ import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @Component -@FeignClient("jeecg-system") +@FeignClient("armd-system") public interface IMenuNameService { @RequestMapping("/sys/dict/findStationListByMenuName") diff --git a/jeecg-server-cloud/armd-abnormal-alarm-start/src/main/resources/application.yml b/jeecg-server-cloud/armd-abnormal-alarm-start/src/main/resources/application.yml index 2b72a783..869bb3b9 100644 --- a/jeecg-server-cloud/armd-abnormal-alarm-start/src/main/resources/application.yml +++ b/jeecg-server-cloud/armd-abnormal-alarm-start/src/main/resources/application.yml @@ -3,7 +3,7 @@ server: spring: application: - name: jeecg-abnormal-alarm + name: armd-abnormal-alarm cloud: nacos: config: diff --git a/jeecg-server-cloud/armd-auto-process-start/src/main/resources/application.yml b/jeecg-server-cloud/armd-auto-process-start/src/main/resources/application.yml index b77b9afe..c72677ef 100644 --- a/jeecg-server-cloud/armd-auto-process-start/src/main/resources/application.yml +++ b/jeecg-server-cloud/armd-auto-process-start/src/main/resources/application.yml @@ -3,7 +3,7 @@ server: spring: application: - name: jeecg-auto-process + name: armd-auto-process cloud: nacos: config: diff --git a/jeecg-server-cloud/armd-log-manage-start/src/main/resources/application.yml b/jeecg-server-cloud/armd-log-manage-start/src/main/resources/application.yml index cdf9afda..a6d71a86 100644 --- a/jeecg-server-cloud/armd-log-manage-start/src/main/resources/application.yml +++ b/jeecg-server-cloud/armd-log-manage-start/src/main/resources/application.yml @@ -3,7 +3,7 @@ server: spring: application: - name: jeecg-log-manage + name: armd-log-manage cloud: nacos: config: diff --git a/jeecg-server-cloud/armd-spectrum-analysis-start/src/main/resources/application.yml b/jeecg-server-cloud/armd-spectrum-analysis-start/src/main/resources/application.yml index c5ee5723..a03168d8 100644 --- a/jeecg-server-cloud/armd-spectrum-analysis-start/src/main/resources/application.yml +++ b/jeecg-server-cloud/armd-spectrum-analysis-start/src/main/resources/application.yml @@ -3,7 +3,7 @@ server: spring: application: - name: jeecg-spectrum-analysis + name: armd-spectrum-analysis cloud: nacos: config: diff --git a/jeecg-server-cloud/armd-station-operation-start/src/main/resources/application.yml b/jeecg-server-cloud/armd-station-operation-start/src/main/resources/application.yml index 945ae7dc..426ce987 100644 --- a/jeecg-server-cloud/armd-station-operation-start/src/main/resources/application.yml +++ b/jeecg-server-cloud/armd-station-operation-start/src/main/resources/application.yml @@ -3,7 +3,7 @@ server: spring: application: - name: jeecg-station-operation + name: armd-station-operation cloud: nacos: config: diff --git a/jeecg-server-cloud/armd-system-cloud-start/src/main/resources/application.yml b/jeecg-server-cloud/armd-system-cloud-start/src/main/resources/application.yml index 2bd4c646..9308d8e6 100644 --- a/jeecg-server-cloud/armd-system-cloud-start/src/main/resources/application.yml +++ b/jeecg-server-cloud/armd-system-cloud-start/src/main/resources/application.yml @@ -3,7 +3,7 @@ server: spring: application: - name: jeecg-system + name: armd-system cloud: nacos: config: diff --git a/jeecg-server-cloud/armd-web-statistics-start/src/main/resources/application.yml b/jeecg-server-cloud/armd-web-statistics-start/src/main/resources/application.yml index 9c30abc9..81be334e 100644 --- a/jeecg-server-cloud/armd-web-statistics-start/src/main/resources/application.yml +++ b/jeecg-server-cloud/armd-web-statistics-start/src/main/resources/application.yml @@ -3,7 +3,7 @@ server: spring: application: - name: jeecg-web-statistics + name: armd-web-statistics cloud: nacos: config: From 9597c719e10fb91e1027b385fd52804782b99d43 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Fri, 26 Jan 2024 09:59:02 +0800 Subject: [PATCH 45/47] =?UTF-8?q?fix=EF=BC=9A=E5=BE=AE=E6=9C=8D=E5=8A=A1na?= =?UTF-8?q?me=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/jeecg/modules/service/ICacheTimeService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java index ee98e075..e116fe73 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java @@ -13,7 +13,7 @@ import java.util.List; import java.util.Map; @Component -@FeignClient(value = "jeecg-system") +@FeignClient("armd-system") public interface ICacheTimeService { @RequestMapping("/sys/dictItem/findCacheTime") From 34c087b103764d65af20b130aa78f2db95ce53fc Mon Sep 17 00:00:00 2001 From: panbaolin <123456> Date: Fri, 26 Jan 2024 10:43:21 +0800 Subject: [PATCH 46/47] =?UTF-8?q?fix:1.=E4=BF=AE=E6=94=B9=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E6=96=87=E4=BB=B6=E5=91=BD=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spectrum/AbstractS_D_Q_G_SpectrumHandler.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AbstractS_D_Q_G_SpectrumHandler.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AbstractS_D_Q_G_SpectrumHandler.java index 360ad4c1..b4b8d79a 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AbstractS_D_Q_G_SpectrumHandler.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/AbstractS_D_Q_G_SpectrumHandler.java @@ -177,13 +177,11 @@ public abstract class AbstractS_D_Q_G_SpectrumHandler extends AbstractSpectrumHa @Override protected void updateErrorSpectrumFileName() throws FileNotFoundException { StringBuilder newFileName = new StringBuilder(); - newFileName.append(this.sourceData.detector_code); - newFileName.append(StringConstant.DASH); - if (StringUtils.isNotBlank(this.sourceData.acquisition_start_date) && StringUtils.isNotBlank(this.sourceData.acquisition_start_time)) { - newFileName.append(StringUtils.replace(this.sourceData.acquisition_start_date,StringConstant.SLASH,"")); - newFileName.append(StringConstant.UNDER_LINE); - newFileName.append(StringUtils.replace(this.sourceData.acquisition_start_time.substring(0,this.sourceData.acquisition_start_time.lastIndexOf(":")),":","")); + if (StringUtils.isNotBlank(this.sourceData.measurement_id)) { + newFileName.append(super.spectrumServiceQuotes.getNameStandUtil().GetFileNameFromDateTime(this.sourceData.measurement_id, "")); } else { + newFileName.append(this.sourceData.detector_code); + newFileName.append(StringConstant.DASH); newFileName.append(""); } if (StringUtils.isNotBlank(this.sourceData.spectrum_quantity) && Double.isFinite(this.sourceData.acquisition_live_time)) { From 6596ef789e177db9796f8084335ffe6d6c1ceea8 Mon Sep 17 00:00:00 2001 From: panbaolin <123456> Date: Fri, 26 Jan 2024 15:29:18 +0800 Subject: [PATCH 47/47] =?UTF-8?q?fix:1.=E6=96=B0=E5=8A=A0=E5=88=86?= =?UTF-8?q?=E6=9E=90id=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SpectrumAnalysisServiceImpl.java | 332 +++++++++--------- 1 file changed, 167 insertions(+), 165 deletions(-) diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java index 74aece7f..c4f7a9a7 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java @@ -406,178 +406,180 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements File detTmp = null; File qcTmp = null; try { - //查询数据库文件信息 - SpectrumFileRecord dbSpectrumFilePath = spectrumAnalysisMapper.getDBSpectrumFilePath(dbName, sampleId, analysisID); - if (Objects.nonNull(dbSpectrumFilePath)) { - Map sampleMap = new HashMap<>(); - Map gasBgMap = new HashMap<>(); - Map detBgMap = new HashMap<>(); - Map qcMap = new HashMap<>(); - //获取sample相关信息 - GardsSampleData sample = null; - String sampleFileName = ""; - if (StringUtils.isNotBlank(dbSpectrumFilePath.getSampleFilePath())) { - sample = spectrumAnalysisMapper.findSampleByFilePath(dbSpectrumFilePath.getSampleFilePath()); - sampleFileName = dbSpectrumFilePath.getSampleFilePath().substring(dbSpectrumFilePath.getSampleFilePath().lastIndexOf(StringPool.SLASH) + 1); - } - //获取gas相关信息 - GardsSampleData gasBg = null; - String gasFileName = ""; - if (StringUtils.isNotBlank(dbSpectrumFilePath.getGasBgFilePath())) { - gasBg = spectrumAnalysisMapper.findSampleByFilePath(dbSpectrumFilePath.getGasBgFilePath()); - gasFileName = dbSpectrumFilePath.getGasBgFilePath().substring(dbSpectrumFilePath.getGasBgFilePath().lastIndexOf(StringPool.SLASH)+1); - } - //获取det相关信息 - GardsSampleData detBg = null; - String detFileName = ""; - if (StringUtils.isNotBlank(dbSpectrumFilePath.getDetBgFilePath())) { - detBg = spectrumAnalysisMapper.findSampleByFilePath(dbSpectrumFilePath.getDetBgFilePath()); - detFileName = dbSpectrumFilePath.getDetBgFilePath().substring(dbSpectrumFilePath.getDetBgFilePath().lastIndexOf(StringPool.SLASH)+1); - } - //获取qc相关信息 - String dbQcFilePath = ""; - GardsSampleData qc = null; - String qcFileName = ""; - if (Objects.nonNull(dbSpectrumFilePath.getCollectStart()) && StringUtils.isNotBlank(dbSpectrumFilePath.getSiteDetCode())) { - String collectStartStr = DateUtils.formatDate(dbSpectrumFilePath.getCollectStart(), "yyyy/MM/dd HH:mm:ss"); - dbQcFilePath = spectrumAnalysisMapper.getQCFilePath(dbSpectrumFilePath.getSiteDetCode(), collectStartStr); - if (StringUtils.isNotBlank(dbQcFilePath)) { - qc = spectrumAnalysisMapper.findSampleByFilePath(dbQcFilePath); - qcFileName = dbQcFilePath.substring(dbQcFilePath.lastIndexOf(StringPool.SLASH)+1); + if (Objects.nonNull(analysisID)) { + //查询数据库文件信息 + SpectrumFileRecord dbSpectrumFilePath = spectrumAnalysisMapper.getDBSpectrumFilePath(dbName, sampleId, analysisID); + if (Objects.nonNull(dbSpectrumFilePath)) { + Map sampleMap = new HashMap<>(); + Map gasBgMap = new HashMap<>(); + Map detBgMap = new HashMap<>(); + Map qcMap = new HashMap<>(); + //获取sample相关信息 + GardsSampleData sample = null; + String sampleFileName = ""; + if (StringUtils.isNotBlank(dbSpectrumFilePath.getSampleFilePath())) { + sample = spectrumAnalysisMapper.findSampleByFilePath(dbSpectrumFilePath.getSampleFilePath()); + sampleFileName = dbSpectrumFilePath.getSampleFilePath().substring(dbSpectrumFilePath.getSampleFilePath().lastIndexOf(StringPool.SLASH) + 1); } - } - //从缓存中获取公用变量的数据 - BetaDataFile betaDataFile = cache.getIfPresent(sampleFileName + "-" + userName); - //如果缓存中没有公用变量的数据 - if (Objects.isNull(betaDataFile)) { - betaDataFile = new BetaDataFile(); - if (dbName.equalsIgnoreCase("RNAUTO")) { - xeResultsSpectrumList = spectrumAnalysisMapper.ReadXeResults(dbName, analysisID, sampleId); - gammaCalibrationSpectrumList = spectrumAnalysisMapper.ReadGammaCalibrationParam("RNAUTO", analysisID); - betaCalibrationSpectrumList = spectrumAnalysisMapper.ReadBetaCalibrationParam("RNAUTO", analysisID); - roiChannelsSpectrumList = spectrumAnalysisMapper.ReadROIChannels("RNAUTO", analysisID, sampleId); - roiResultsSpectrumList = spectrumAnalysisMapper.ReadROIResults("RNAUTO", analysisID, sampleId); + //获取gas相关信息 + GardsSampleData gasBg = null; + String gasFileName = ""; + if (StringUtils.isNotBlank(dbSpectrumFilePath.getGasBgFilePath())) { + gasBg = spectrumAnalysisMapper.findSampleByFilePath(dbSpectrumFilePath.getGasBgFilePath()); + gasFileName = dbSpectrumFilePath.getGasBgFilePath().substring(dbSpectrumFilePath.getGasBgFilePath().lastIndexOf(StringPool.SLASH)+1); + } + //获取det相关信息 + GardsSampleData detBg = null; + String detFileName = ""; + if (StringUtils.isNotBlank(dbSpectrumFilePath.getDetBgFilePath())) { + detBg = spectrumAnalysisMapper.findSampleByFilePath(dbSpectrumFilePath.getDetBgFilePath()); + detFileName = dbSpectrumFilePath.getDetBgFilePath().substring(dbSpectrumFilePath.getDetBgFilePath().lastIndexOf(StringPool.SLASH)+1); + } + //获取qc相关信息 + String dbQcFilePath = ""; + GardsSampleData qc = null; + String qcFileName = ""; + if (Objects.nonNull(dbSpectrumFilePath.getCollectStart()) && StringUtils.isNotBlank(dbSpectrumFilePath.getSiteDetCode())) { + String collectStartStr = DateUtils.formatDate(dbSpectrumFilePath.getCollectStart(), "yyyy/MM/dd HH:mm:ss"); + dbQcFilePath = spectrumAnalysisMapper.getQCFilePath(dbSpectrumFilePath.getSiteDetCode(), collectStartStr); + if (StringUtils.isNotBlank(dbQcFilePath)) { + qc = spectrumAnalysisMapper.findSampleByFilePath(dbQcFilePath); + qcFileName = dbQcFilePath.substring(dbQcFilePath.lastIndexOf(StringPool.SLASH)+1); + } + } + //从缓存中获取公用变量的数据 + BetaDataFile betaDataFile = cache.getIfPresent(sampleFileName + "-" + userName); + //如果缓存中没有公用变量的数据 + if (Objects.isNull(betaDataFile)) { + betaDataFile = new BetaDataFile(); + if (dbName.equalsIgnoreCase("RNAUTO")) { + xeResultsSpectrumList = spectrumAnalysisMapper.ReadXeResults(dbName, analysisID, sampleId); + gammaCalibrationSpectrumList = spectrumAnalysisMapper.ReadGammaCalibrationParam("RNAUTO", analysisID); + betaCalibrationSpectrumList = spectrumAnalysisMapper.ReadBetaCalibrationParam("RNAUTO", analysisID); + roiChannelsSpectrumList = spectrumAnalysisMapper.ReadROIChannels("RNAUTO", analysisID, sampleId); + roiResultsSpectrumList = spectrumAnalysisMapper.ReadROIResults("RNAUTO", analysisID, sampleId); + } else { + gammaCalibrationPairsList = spectrumAnalysisMapper.ReadGammaFitChannelEnergy(analysisID, sampleId); + betaCalibrationPairsList = spectrumAnalysisMapper.ReadBetaFitChannelEnergy(analysisID, sampleId); + xeResultsSpectrumList = spectrumAnalysisMapper.ReadXeResults(dbName, analysisID, sampleId); + gammaCalibrationSpectrumList = spectrumAnalysisMapper.ReadGammaCalibrationParam("RNMAN", analysisID); + betaCalibrationSpectrumList = spectrumAnalysisMapper.ReadBetaCalibrationParam("RNMAN", analysisID); + roiChannelsSpectrumList = spectrumAnalysisMapper.ReadROIChannels("RNMAN", analysisID, sampleId); + roiResultsSpectrumList = spectrumAnalysisMapper.ReadROIResults("RNMAN", analysisID, sampleId); + } + //给公用变量赋值sampleId + betaDataFile.setSampleId(String.valueOf(sampleId)); + //用于记录文件路径信息 + List filePaths = new LinkedList<>(); + //判断sample信息是否存在 + if (Objects.nonNull(sample)) { + betaDataFile.setSampleFilePathName(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbSpectrumFilePath.getSampleFilePath()); + betaDataFile.setSampleFileName(sampleFileName); + sampleTmp = ftpUtil.downloadFile(betaDataFile.getSampleFilePathName(), "betaGamma"); + if (Objects.nonNull(sampleTmp)) { + betaDataFile.setSampleTmpPath(sampleTmp.getAbsolutePath()); + EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(sampleTmp.getAbsolutePath()); + betaDataFile.setSampleStruct(struct); + sampleMap = phdFileUtil.getSourceData(struct, sample.getSampleId(), sample.getStatus(), "sample", betaDataFile); + sampleMap.put("fileName", betaDataFile.getSampleFileName()); + resultMap.put("sample",sampleMap); + } + } + //判断gas信息是否存在 + if (Objects.nonNull(gasBg)) { + betaDataFile.setGasFilePathName(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbSpectrumFilePath.getGasBgFilePath()); + betaDataFile.setGasFileName(gasFileName); + gasTmp = ftpUtil.downloadFile(betaDataFile.getGasFilePathName(), "betaGamma"); + if (Objects.nonNull(gasTmp)) { + betaDataFile.setGasTmpPath(gasTmp.getAbsolutePath()); + EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(gasTmp.getAbsolutePath()); + betaDataFile.setGasStruct(struct); + gasBgMap = phdFileUtil.getSourceData(struct, gasBg.getSampleId(), gasBg.getStatus(), "gas", betaDataFile); + gasBgMap.put("fileName", betaDataFile.getGasFileName()); + resultMap.put("gasBg",gasBgMap); + } + } + //判断det信息是否存在 + if (Objects.nonNull(detBg)) { + betaDataFile.setDetFilePathName(StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbSpectrumFilePath.getDetBgFilePath()); + betaDataFile.setDetFileName(detFileName); + detTmp = ftpUtil.downloadFile(betaDataFile.getDetFilePathName(), "betaGamma"); + if (Objects.nonNull(detTmp)) { + betaDataFile.setDetTmpPath(detTmp.getAbsolutePath()); + EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(detTmp.getAbsolutePath()); + betaDataFile.setDetStruct(struct); + detBgMap = phdFileUtil.getSourceData(struct, detBg.getSampleId(), detBg.getStatus(), "det", betaDataFile); + detBgMap.put("fileName", betaDataFile.getDetFileName()); + resultMap.put("detBg",detBgMap); + } + } + //判断qc信息是否存在 + if (Objects.nonNull(qc)) { + betaDataFile.setQcFilePathName(StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbQcFilePath); + betaDataFile.setQcFileName(qcFileName); + qcTmp = ftpUtil.downloadFile(betaDataFile.getQcFilePathName(), "betaGamma"); + if (Objects.nonNull(qcTmp)) { + betaDataFile.setQcTmpPath(qcTmp.getAbsolutePath()); + EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(qcTmp.getAbsolutePath()); + betaDataFile.setQcStruct(struct); + qcMap = phdFileUtil.getSourceData(struct, qc.getSampleId(), qc.getStatus(), "qc", betaDataFile); + qcMap.put("fileName", betaDataFile.getQcFileName()); + resultMap.put("qc",qcMap); + } + } } else { - gammaCalibrationPairsList = spectrumAnalysisMapper.ReadGammaFitChannelEnergy(analysisID, sampleId); - betaCalibrationPairsList = spectrumAnalysisMapper.ReadBetaFitChannelEnergy(analysisID, sampleId); - xeResultsSpectrumList = spectrumAnalysisMapper.ReadXeResults(dbName, analysisID, sampleId); - gammaCalibrationSpectrumList = spectrumAnalysisMapper.ReadGammaCalibrationParam("RNMAN", analysisID); - betaCalibrationSpectrumList = spectrumAnalysisMapper.ReadBetaCalibrationParam("RNMAN", analysisID); - roiChannelsSpectrumList = spectrumAnalysisMapper.ReadROIChannels("RNMAN", analysisID, sampleId); - roiResultsSpectrumList = spectrumAnalysisMapper.ReadROIResults("RNMAN", analysisID, sampleId); + xeResultsSpectrumList = betaDataFile.getXeResultsSpectrumList(); + sampleMap = loadData("sample", betaDataFile); + sampleMap.put("fileName", betaDataFile.getSampleFileName()); + resultMap.put("sample",sampleMap); + gasBgMap = loadData("gas", betaDataFile); + gasBgMap.put("fileName", betaDataFile.getGasFileName()); + resultMap.put("gasBg",gasBgMap); + detBgMap = loadData("det", betaDataFile); + detBgMap.put("fileName", betaDataFile.getDetFileName()); + resultMap.put("detBg",detBgMap); + qcMap = loadData("qc", betaDataFile); + qcMap.put("fileName", betaDataFile.getQcFileName()); + resultMap.put("qc",qcMap); } - //给公用变量赋值sampleId - betaDataFile.setSampleId(String.valueOf(sampleId)); - //用于记录文件路径信息 - List filePaths = new LinkedList<>(); - //判断sample信息是否存在 - if (Objects.nonNull(sample)) { - betaDataFile.setSampleFilePathName(StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbSpectrumFilePath.getSampleFilePath()); - betaDataFile.setSampleFileName(sampleFileName); - sampleTmp = ftpUtil.downloadFile(betaDataFile.getSampleFilePathName(), "betaGamma"); - if (Objects.nonNull(sampleTmp)) { - betaDataFile.setSampleTmpPath(sampleTmp.getAbsolutePath()); - EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(sampleTmp.getAbsolutePath()); - betaDataFile.setSampleStruct(struct); - sampleMap = phdFileUtil.getSourceData(struct, sample.getSampleId(), sample.getStatus(), "sample", betaDataFile); - sampleMap.put("fileName", betaDataFile.getSampleFileName()); - resultMap.put("sample",sampleMap); - } - } - //判断gas信息是否存在 - if (Objects.nonNull(gasBg)) { - betaDataFile.setGasFilePathName(StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbSpectrumFilePath.getGasBgFilePath()); - betaDataFile.setGasFileName(gasFileName); - gasTmp = ftpUtil.downloadFile(betaDataFile.getGasFilePathName(), "betaGamma"); - if (Objects.nonNull(gasTmp)) { - betaDataFile.setGasTmpPath(gasTmp.getAbsolutePath()); - EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(gasTmp.getAbsolutePath()); - betaDataFile.setGasStruct(struct); - gasBgMap = phdFileUtil.getSourceData(struct, gasBg.getSampleId(), gasBg.getStatus(), "gas", betaDataFile); - gasBgMap.put("fileName", betaDataFile.getGasFileName()); - resultMap.put("gasBg",gasBgMap); - } - } - //判断det信息是否存在 - if (Objects.nonNull(detBg)) { - betaDataFile.setDetFilePathName(StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbSpectrumFilePath.getDetBgFilePath()); - betaDataFile.setDetFileName(detFileName); - detTmp = ftpUtil.downloadFile(betaDataFile.getDetFilePathName(), "betaGamma"); - if (Objects.nonNull(detTmp)) { - betaDataFile.setDetTmpPath(detTmp.getAbsolutePath()); - EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(detTmp.getAbsolutePath()); - betaDataFile.setDetStruct(struct); - detBgMap = phdFileUtil.getSourceData(struct, detBg.getSampleId(), detBg.getStatus(), "det", betaDataFile); - detBgMap.put("fileName", betaDataFile.getDetFileName()); - resultMap.put("detBg",detBgMap); - } - } - //判断qc信息是否存在 - if (Objects.nonNull(qc)) { - betaDataFile.setQcFilePathName(StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbQcFilePath); - betaDataFile.setQcFileName(qcFileName); - qcTmp = ftpUtil.downloadFile(betaDataFile.getQcFilePathName(), "betaGamma"); - if (Objects.nonNull(qcTmp)) { - betaDataFile.setQcTmpPath(qcTmp.getAbsolutePath()); - EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(qcTmp.getAbsolutePath()); - betaDataFile.setQcStruct(struct); - qcMap = phdFileUtil.getSourceData(struct, qc.getSampleId(), qc.getStatus(), "qc", betaDataFile); - qcMap.put("fileName", betaDataFile.getQcFileName()); - resultMap.put("qc",qcMap); + //分析状态颜色 + phdFileUtil.getLightColor(sampleMap,gasBgMap,detBgMap,qcMap); + //Xe + if (CollectionUtils.isNotEmpty(xeResultsSpectrumList)){ + for (GardsXeResultsSpectrum xeData:xeResultsSpectrumList) { + Double conc = xeData.getConc(); + Double mdc = xeData.getMdc(); + if (conc < 0){ + xeData.setColor("red"); + xeData.setNidFlag(0); + } else if (0 mdc) { + xeData.setColor("green"); + xeData.setNidFlag(1); + } + xeData.setMdc(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getMdc())))); + xeData.setConc(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getConc())))); + xeData.setConcErr(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getConcErr())))); } } + betaDataFile.setGammaCalibrationSpectrumList(gammaCalibrationSpectrumList); + betaDataFile.setBetaCalibrationSpectrumList(betaCalibrationSpectrumList); + betaDataFile.setRoiChannelsSpectrumList(roiChannelsSpectrumList); + betaDataFile.setRoiResultsSpectrumList(roiResultsSpectrumList); + betaDataFile.setGammaCalibrationPairsList(gammaCalibrationPairsList); + betaDataFile.setBetaCalibrationPairsList(betaCalibrationPairsList); + betaDataFile.setXeResultsSpectrumList(xeResultsSpectrumList); + betaDataFile.setSaveAnalysisResult(true); + resultMap.put("XeData", phdFileUtil.viewXeData(xeResultsSpectrumList)); + resultMap.put("bProcessed", betaDataFile.isBProcessed()); + resultMap.put("savedAnalysisResult", betaDataFile.isSaveAnalysisResult()); + cache.put(betaDataFile.getSampleFileName()+"-"+userName, betaDataFile); + betaCache.setBetaCache(cache); } else { - xeResultsSpectrumList = betaDataFile.getXeResultsSpectrumList(); - sampleMap = loadData("sample", betaDataFile); - sampleMap.put("fileName", betaDataFile.getSampleFileName()); - resultMap.put("sample",sampleMap); - gasBgMap = loadData("gas", betaDataFile); - gasBgMap.put("fileName", betaDataFile.getGasFileName()); - resultMap.put("gasBg",gasBgMap); - detBgMap = loadData("det", betaDataFile); - detBgMap.put("fileName", betaDataFile.getDetFileName()); - resultMap.put("detBg",detBgMap); - qcMap = loadData("qc", betaDataFile); - qcMap.put("fileName", betaDataFile.getQcFileName()); - resultMap.put("qc",qcMap); + resultMap.clear(); } - //分析状态颜色 - phdFileUtil.getLightColor(sampleMap,gasBgMap,detBgMap,qcMap); - //Xe - if (CollectionUtils.isNotEmpty(xeResultsSpectrumList)){ - for (GardsXeResultsSpectrum xeData:xeResultsSpectrumList) { - Double conc = xeData.getConc(); - Double mdc = xeData.getMdc(); - if (conc < 0){ - xeData.setColor("red"); - xeData.setNidFlag(0); - } else if (0 mdc) { - xeData.setColor("green"); - xeData.setNidFlag(1); - } - xeData.setMdc(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getMdc())))); - xeData.setConc(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getConc())))); - xeData.setConcErr(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getConcErr())))); - } - } - betaDataFile.setGammaCalibrationSpectrumList(gammaCalibrationSpectrumList); - betaDataFile.setBetaCalibrationSpectrumList(betaCalibrationSpectrumList); - betaDataFile.setRoiChannelsSpectrumList(roiChannelsSpectrumList); - betaDataFile.setRoiResultsSpectrumList(roiResultsSpectrumList); - betaDataFile.setGammaCalibrationPairsList(gammaCalibrationPairsList); - betaDataFile.setBetaCalibrationPairsList(betaCalibrationPairsList); - betaDataFile.setXeResultsSpectrumList(xeResultsSpectrumList); - betaDataFile.setSaveAnalysisResult(true); - resultMap.put("XeData", phdFileUtil.viewXeData(xeResultsSpectrumList)); - resultMap.put("bProcessed", betaDataFile.isBProcessed()); - resultMap.put("savedAnalysisResult", betaDataFile.isSaveAnalysisResult()); - cache.put(betaDataFile.getSampleFileName()+"-"+userName, betaDataFile); - betaCache.setBetaCache(cache); - } else { - resultMap.clear(); } } catch (Exception e) { e.printStackTrace();