From c90e9137012b886f172ea22747bacc4180e428b8 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 7 Dec 2023 15:04:24 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86gamma?= =?UTF-8?q?=E9=83=A8=E5=88=86=E5=A2=9E=E5=8A=A0=E6=8E=A8=E9=80=81=E6=A0=B8?= =?UTF-8?q?=E7=B4=A0=EF=BC=8C=E5=8F=B0=E7=AB=99=EF=BC=8CsampleId=E7=AD=89?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E4=BF=A1=E6=81=AF=E5=88=B0redis=20=E4=BA=BA?= =?UTF-8?q?=E5=B7=A5=E4=BA=A4=E4=BA=92=E5=A4=84=E7=90=86beta=EF=BC=8Cgamma?= =?UTF-8?q?=E9=83=A8=E5=88=86=E5=A2=9E=E5=8A=A0=E6=8E=A8=E9=80=81=E6=A0=B8?= =?UTF-8?q?=E7=B4=A0=EF=BC=8C=E5=8F=B0=E7=AB=99=EF=BC=8CsampleId=E7=AD=89?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E4=BF=A1=E6=81=AF=E5=88=B0redis=20=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=A4=84=E7=90=86=E6=94=BE=E5=BC=80gamma=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=88=86=E6=9E=90=E6=93=8D=E4=BD=9C=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/spectrum/Sample_G_Analysis.java | 38 ++++++++++++++++ .../modules/spectrum/SamplephdSpectrum.java | 8 ++-- .../jeecg/modules/entity/vo/BetaDataFile.java | 3 ++ .../service/impl/GammaServiceImpl.java | 42 +++++++++++++++-- .../impl/SpectrumAnalysisServiceImpl.java | 45 +++++++++++++++++++ 5 files changed, 128 insertions(+), 8 deletions(-) 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 02aea1b5..49e08a68 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 @@ -23,7 +23,9 @@ import org.jeecg.modules.base.bizVo.AttributeItemVo; import org.jeecg.modules.base.dto.*; import org.jeecg.modules.base.entity.original.GardsSampleData; import org.jeecg.modules.base.entity.rnauto.*; +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.entity.vo.*; import org.jeecg.modules.exception.GAnalyseException; @@ -34,8 +36,14 @@ import org.springframework.transaction.TransactionStatus; import java.io.File; import java.io.IOException; import java.lang.reflect.Field; +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 public class Sample_G_Analysis { @@ -169,6 +177,9 @@ public class Sample_G_Analysis { File.separator + reportName; // 保存文件 FileOperation.saveOrAppendFile(savePath, reportContent, false); + //发送数据到redis + middleData.setSample_id(String.valueOf(sampleId)); + pushToRedis(middleData); }catch (Exception e){ e.printStackTrace(); log.error("Sample_G_Analysis", e); @@ -185,6 +196,32 @@ public class Sample_G_Analysis { log.info("Gamma自动处理分析--End"); } + /** + * 分析成功数据发送到Redis + */ + private void pushToRedis(GStoreMiddleProcessData middleData){ + try { + Info info = new Info(); + info.setStationId(middleData.sample_stationID); + info.setSampleId(middleData.sample_id); + info.setSampleName(middleData.analyses_save_filePath.substring(middleData.analyses_save_filePath.lastIndexOf(StringPool.SLASH)+1)); + final Instant instant = DateUtils.parseDate(middleData.sample_collection_start).toInstant(); + final LocalDateTime collectTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime(); + info.setCollectionDate(collectTime); + info.setDatasource(DSType.ARMDARR.getType()); + info.setFullOrPrel(this.sampleData.getSpectralQualifie()); + info.setBetaOrGamma(SpectrumType.GAMMA.getType()); + Map nuclides = Maps.newHashMap(); + for (int i=0; i qcItems){ //如果数据已经存储,不在重复存储 final Integer idAnalysis = serviceQuotes.getAnalysesService().getIdAnalysis(this.sampleData.getSampleId()); @@ -226,6 +263,7 @@ public class Sample_G_Analysis { DataSourceSwitcher.clearDataSource(); } } + /** * 生成日志文件 * @param logFilePath 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 c6f12a83..eb2b5da4 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 @@ -80,9 +80,9 @@ public class SamplephdSpectrum extends AbstractS_D_Q_G_SpectrumHandler { Sample_B_Analysis bAnalysis = new Sample_B_Analysis(this); bAnalysis.analysis(); } -// if (this.sourceData.system_type.equals(SystemType.PARTICULATE.getType()) || this.sourceData.system_type.equals(SystemType.GAMMA.getType())) { -// Sample_G_Analysis sample_g_analysis = new Sample_G_Analysis(super.sourceData, super.spectrumServiceQuotes, super.sampleData); -// sample_g_analysis.analysis(); -// } + if (this.sourceData.system_type.equals(SystemType.PARTICULATE.getType()) || this.sourceData.system_type.equals(SystemType.GAMMA.getType())) { + Sample_G_Analysis sample_g_analysis = new Sample_G_Analysis(super.sourceData, super.spectrumServiceQuotes, super.sampleData); + sample_g_analysis.analysis(); + } } } diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/entity/vo/BetaDataFile.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/entity/vo/BetaDataFile.java index 6f0b6ab1..5a2b3936 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/entity/vo/BetaDataFile.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/entity/vo/BetaDataFile.java @@ -39,6 +39,8 @@ public class BetaDataFile implements Serializable { private String sampleId; + private String stationId; + private boolean bProcessed; private boolean saveAnalysisResult; @@ -225,6 +227,7 @@ public class BetaDataFile implements Serializable { qcFilePathName = ""; qcFileName = ""; sampleId = ""; + stationId = ""; bProcessed = false; saveAnalysisResult = false; 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 7cd44626..c6d46bd7 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 @@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.Maps; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; @@ -31,16 +32,14 @@ import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.*; import org.jeecg.modules.base.abstracts.AbstractLogOrReport; import org.jeecg.modules.base.bizVo.GammaRLR; +import org.jeecg.modules.base.dto.Info; import org.jeecg.modules.base.dto.NuclideActMdaDto; import org.jeecg.modules.base.dto.PeakInfoDto; import org.jeecg.modules.base.entity.configuration.GardsNuclLib; import org.jeecg.modules.base.entity.configuration.GardsNuclLinesLib; import org.jeecg.modules.base.entity.postgre.SysUser; import org.jeecg.modules.base.entity.rnman.GardsAnalySetting; -import org.jeecg.modules.base.enums.CalName; -import org.jeecg.modules.base.enums.CalType; -import org.jeecg.modules.base.enums.ExportTemplate; -import org.jeecg.modules.base.enums.RoleType; +import org.jeecg.modules.base.enums.*; import org.jeecg.modules.entity.vo.*; import org.jeecg.modules.entity.*; import org.jeecg.modules.mapper.SpectrumAnalysisMapper; @@ -68,7 +67,9 @@ import java.sql.Statement; import java.text.DecimalFormat; import java.text.NumberFormat; import java.text.ParseException; +import java.time.Instant; import java.time.LocalDateTime; +import java.time.ZoneId; import java.util.*; import java.util.stream.Collectors; @@ -4588,11 +4589,44 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi //更新detial Information List detailedInfo = gammaFileUtil.DetailedInfo(phd.getId_sample(), phd); map.put("DetailedInformation", detailedInfo); + //发送数据到redis + middleData.setSample_id(String.valueOf(phd.getId_sample())); + pushToRedis(middleData, phd); result.setSuccess(true); result.setResult(map); return result; } + /** + * 分析成功数据发送到Redis + */ + private void pushToRedis(GStoreMiddleProcessData middleData, PHDFile phd){ + try { + Info info = new Info(); + info.setStationId(middleData.sample_stationID); + info.setSampleId(middleData.sample_id); + info.setSampleName(middleData.analyses_save_filePath.substring(middleData.analyses_save_filePath.lastIndexOf(StringPool.SLASH)+1)); + final Instant instant = DateUtils.parseDate(middleData.sample_collection_start).toInstant(); + final LocalDateTime collectTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime(); + info.setCollectionDate(collectTime); + info.setDatasource(DSType.ARMDRRR.getType()); + info.setFullOrPrel(phd.getHeader().getSpectrum_quantity()); + info.setBetaOrGamma(SpectrumType.GAMMA.getType()); + Map nuclides = Maps.newHashMap(); + for (int i=0; i userStation = userTaskUtil.findUserStation(userName); boolean bAnalysisResultWriteAuthority = false; @@ -3865,11 +3869,52 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements betaDataFile.setQcSpectrumData(qcData); map.put("qc", qcData); } + //发送数据到redis + pushToRedis(betaDataFile); result.setSuccess(true); result.setResult(map); return result; } + /** + * 分析成功数据发送到Redis + */ + private void pushToRedis(BetaDataFile betaDataFile){ + try { + Info info = new Info(); + info.setStationId(betaDataFile.getStationId()); + info.setSampleId(betaDataFile.getSampleId()); + info.setSampleName(betaDataFile.getSampleFileName()); + final Instant instant = DateUtils.parseDate(betaDataFile.getSampleStruct().collection_start_date+ StringPool.SPACE+betaDataFile.getSampleStruct().collection_start_time).toInstant(); + final LocalDateTime collectTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime(); + info.setCollectionDate(collectTime); + info.setDatasource(DSType.ARMDRRR.getType()); + info.setFullOrPrel(betaDataFile.getSampleStruct().spectrum_quantity); + info.setBetaOrGamma(SpectrumType.BETA.getType()); + Map nuclides = Maps.newHashMap(); + for (int i=0; i< betaDataFile.getXeDataList().size(); i++) { + GardsXeResults xeResults = betaDataFile.getXeDataList().get(i); + if (xeResults.getNuclideName().equalsIgnoreCase(XeNuclideName.XE_131m.getType())) { + nuclides.put(XeNuclideName.XE_131m.getType(), String.valueOf(xeResults.getConc())); + } else if (xeResults.getNuclideName().equalsIgnoreCase(XeNuclideName.XE_133.getType())) { + nuclides.put(XeNuclideName.XE_133.getType(), String.valueOf(xeResults.getConc())); + } else if (xeResults.getNuclideName().equalsIgnoreCase(XeNuclideName.XE_133m.getType())) { + nuclides.put(XeNuclideName.XE_133m.getType(), String.valueOf(xeResults.getConc())); + } else if (xeResults.getNuclideName().equalsIgnoreCase(XeNuclideName.XE_135.getType())) { + nuclides.put(XeNuclideName.XE_135.getType(), String.valueOf(xeResults.getConc())); + } + } + info.setNuclides(nuclides); + RedisStreamUtil.class.newInstance().pushAnalysis(info); + } catch (ParseException e) { + throw new RuntimeException(e); + } catch (InstantiationException e) { + throw new RuntimeException(e); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } + } + /** * 获取需要导出的数据 (saveToHtml|saveToTxt|saveToExcel) */