From 20b8510ec0e8eb821096d0a8e37eb057b6a3482b Mon Sep 17 00:00:00 2001 From: xiaoguangbin Date: Mon, 29 Jan 2024 14:05:31 +0800 Subject: [PATCH 001/133] =?UTF-8?q?fix:=20=E5=8E=BB=E6=8E=89ftp=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=E4=BB=A5=E5=8F=8Aftp=E4=B8=8B=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=A4=B9=E8=B7=AF=E5=BE=84=E8=BF=9B=E8=A1=8C=E6=8B=BC=E6=8E=A5?= =?UTF-8?q?=E6=97=B6=E5=A4=9A=E6=8B=BC=E6=8E=A5=E7=9A=84=E8=B7=AF=E5=BE=84?= =?UTF-8?q?=E7=AC=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/common/email/EmailLogManager.java | 2 +- .../common/email/EmailServiceManager.java | 2 +- .../org/jeecg/modules/ErrorLogManager.java | 2 +- .../jeecg/modules/FileSourceHandleManager.java | 2 +- .../org/jeecg/modules/StatReportManager.java | 2 +- .../org/jeecg/modules/UndealHandleManager.java | 2 +- .../spectrum/AbstractSpectrumHandler.java | 8 ++++---- .../modules/spectrum/Sample_B_Analysis.java | 2 +- .../modules/spectrum/Sample_G_Analysis.java | 6 ++---- .../modules/service/impl/GammaServiceImpl.java | 4 ++-- .../impl/SpectrumAnalysisServiceImpl.java | 18 +++++++++--------- .../service/impl/SpectrumFileServiceImpl.java | 7 ++----- 12 files changed, 26 insertions(+), 31 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailLogManager.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailLogManager.java index f947be89..de0596ef 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailLogManager.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailLogManager.java @@ -308,7 +308,7 @@ public class EmailLogManager { LocalDateTime now = LocalDateTime.now(); StringBuilder logFilePath = new StringBuilder(); logFilePath.append(spectrumPathProperties.getRootPath()); - logFilePath.append(File.separator); +// logFilePath.append(File.separator); logFilePath.append(spectrumPathProperties.getLogPath()); logFilePath.append(File.separator); logFilePath.append(FIXED_FILE_NAME); 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 d701893e..fe112ee7 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 @@ -544,7 +544,7 @@ public class EmailServiceManager { fileName.append(SAVE_EML_SUFFIX); final String rootPath = spectrumPathProperties.getRootPath(); final String emlPath = spectrumPathProperties.getEmlPath(); - emlFile = new File(rootPath+File.separator+emlPath+File.separator+fileName); + emlFile = new File(rootPath+emlPath+File.separator+fileName); message.writeTo(new FileOutputStream(emlFile)); } catch (MessagingException | IOException e) { //下载邮件失败 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 5e830a23..0c795180 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 @@ -72,7 +72,7 @@ public class ErrorLogManager { StringBuilder logFilePath = new StringBuilder(); logFilePath.append(spectrumPathProperties.getRootPath()); - logFilePath.append(File.separator); +// logFilePath.append(File.separator); logFilePath.append(spectrumPathProperties.getLogPath()); logFilePath.append(File.separator); logFilePath.append("error"); 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 0eccdbc1..173d9fe0 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 @@ -68,7 +68,7 @@ public class FileSourceHandleManager{ //手动放置能谱文件获取路径 final String rootPath = spectrumServiceQuotes.getSpectrumPathProperties().getRootPath(); final String filePath = spectrumServiceQuotes.getSpectrumPathProperties().getFilesourcePath(); - List spectrumFiles = FileOperation.getFiles(rootPath+ File.separator+filePath,taskProperties.getFilesourceDirReceiveNum()); + List spectrumFiles = FileOperation.getFiles(rootPath+ filePath,taskProperties.getFilesourceDirReceiveNum()); if(!CollectionUtils.isEmpty(spectrumFiles)){ CountDownLatch taskLatch = new CountDownLatch(spectrumFiles.size()); for(File spectrumFile : spectrumFiles){ diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/StatReportManager.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/StatReportManager.java index dcc9d69b..daa88554 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/StatReportManager.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/StatReportManager.java @@ -263,7 +263,7 @@ public class StatReportManager implements ApplicationListener{ final String statisticsPath = spectrumPathProperties.getStatisticsPath(); StringBuilder finalPath = new StringBuilder(); finalPath.append(spectrumPathProperties.getRootPath()); - finalPath.append(File.separator); +// finalPath.append(File.separator); finalPath.append(spectrumPathProperties.getSaveFilePath()); finalPath.append(File.separator); finalPath.append(spectrumPathProperties.getStatisticsPath()); 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 12d16596..9d61875f 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 @@ -69,7 +69,7 @@ public class UndealHandleManager{ //ftp解析失败文件存储路径 final String rootPath = spectrumServiceQuotes.getSpectrumPathProperties().getRootPath(); final String filePath = spectrumServiceQuotes.getSpectrumPathProperties().getUndealPath(); - List spectrumFiles = FileOperation.getFiles(rootPath+ File.separator+filePath,taskProperties.getUndealDirReceiveNum()); + List spectrumFiles = FileOperation.getFiles(rootPath+ filePath,taskProperties.getUndealDirReceiveNum()); if(!CollectionUtils.isEmpty(spectrumFiles)){ CountDownLatch taskLatch = new CountDownLatch(spectrumFiles.size()); for(File spectrumFile : spectrumFiles){ 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 88a0e361..009d7f09 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 @@ -157,7 +157,7 @@ public abstract class AbstractSpectrumHandler extends AbstractChain { final SpectrumPathProperties properties = this.spectrumServiceQuotes.getSpectrumPathProperties(); StringBuilder finalPath = new StringBuilder(); finalPath.append(properties.getRootPath()); - finalPath.append(File.separator); +// finalPath.append(File.separator); finalPath.append(properties.getSaveFilePath()); finalPath.append(File.separator); finalPath.append(fileSavePath); @@ -266,13 +266,13 @@ public abstract class AbstractSpectrumHandler extends AbstractChain { //解析失败会把文件移动到errorfile目录 final String rootPath = spectrumServiceQuotes.getSpectrumPathProperties().getRootPath(); final String errorFilePath = spectrumServiceQuotes.getSpectrumPathProperties().getErrorFilePath(); - final String finalPath = rootPath+File.separator+errorFilePath; + final String finalPath = rootPath+errorFilePath; FileOperation.moveFile(spectrumFile,finalPath,true); } else { //解析失败会把文件移动到undeal目录 final String rootPath = spectrumServiceQuotes.getSpectrumPathProperties().getRootPath(); final String undealPath = spectrumServiceQuotes.getSpectrumPathProperties().getUndealPath(); - final String finalPath = rootPath+File.separator+undealPath; + final String finalPath = rootPath+undealPath; //判断文件是否在savefile下已经保存过 final String savefileName = spectrumServiceQuotes.getSpectrumPathProperties().getSaveFilePath().substring(1); //若文件已经在savefile了进行复制 @@ -318,7 +318,7 @@ public abstract class AbstractSpectrumHandler extends AbstractChain { if(SpectrumSource.FORM_FILE_UNDEL.getSourceType().equals(spectrumSource)){ StringBuilder undealFilePath = new StringBuilder(); undealFilePath.append(spectrumServiceQuotes.getSpectrumPathProperties().getRootPath()); - undealFilePath.append(File.separator); +// undealFilePath.append(File.separator); undealFilePath.append(spectrumServiceQuotes.getSpectrumPathProperties().getUndealPath()); undealFilePath.append(File.separator); undealFilePath.append(this.spectrumFile.getName()); 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 5a052851..73f32595 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 @@ -804,7 +804,7 @@ public class Sample_B_Analysis implements BlockConstant { private void saveReportToSavefileArr() throws IOException { StringBuilder finalReportPath = new StringBuilder(); finalReportPath.append(spectrumServiceQuotes.getSpectrumPathProperties().getRootPath()); - finalReportPath.append(File.separator); +// finalReportPath.append(File.separator); finalReportPath.append(spectrumServiceQuotes.getSpectrumPathProperties().getSaveFilePath()); finalReportPath.append(File.separator); finalReportPath.append(arrFilePath); 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 bd548e41..6baf4151 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 @@ -186,8 +186,7 @@ public class Sample_G_Analysis { String reportContent = gammaFileUtil.GetReportContent(middleData); String reportPath = StringUtils.substringBeforeLast(middleData.getAnalyses_ReportPath(), StringPool.SLASH); String reportName = StringUtils.substringAfterLast(middleData.getAnalyses_ReportPath(), StringPool.SLASH) + ".txt"; - String savePath = spectrumPathProperties.getRootPath() + File.separator + - spectrumPathProperties.getSaveFilePath() + File.separator + reportPath + + String savePath = spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + File.separator + reportPath + File.separator + reportName; // 保存文件 FileOperation.saveOrAppendFile(savePath, reportContent, false); @@ -356,8 +355,7 @@ public class Sample_G_Analysis { * @param middleData */ private void writeLog(String logFilePath, GStoreMiddleProcessData middleData) { - logFilePath = spectrumPathProperties.getRootPath() + File.separator + - spectrumPathProperties.getLogPath() + File.separator + logFilePath; + logFilePath = spectrumPathProperties.getRootPath() + spectrumPathProperties.getLogPath() + File.separator + logFilePath; String sampleId = middleData.getSample_id(); MyLogFormatUtil myLogFormatUtil = new MyLogFormatUtil(); List writes = new LinkedList<>(); 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 c95bdf81..7e874087 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 @@ -1062,7 +1062,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi result.error500("The comparison file path does not exist"); return result; } - compareFilePath = StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + compareFilePath; + compareFilePath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + compareFilePath; File compareFile = ftpUtil.downloadFile(compareFilePath, "betaGamma"); if (Objects.isNull(compareFile)) { result.error500("The comparison file path does not exist"); @@ -1146,7 +1146,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi result.error500("The comparison file path does not exist"); return result; } - stripFilePath = StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + stripFilePath; + stripFilePath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + stripFilePath; File stripFile = ftpUtil.downloadFile(stripFilePath, "betaGamma"); if (Objects.isNull(stripFile)) { result.error500("The comparison file path does not exist"); 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 c4f7a9a7..49071139 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 @@ -501,7 +501,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } //判断det信息是否存在 if (Objects.nonNull(detBg)) { - betaDataFile.setDetFilePathName(StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbSpectrumFilePath.getDetBgFilePath()); + betaDataFile.setDetFilePathName(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbSpectrumFilePath.getDetBgFilePath()); betaDataFile.setDetFileName(detFileName); detTmp = ftpUtil.downloadFile(betaDataFile.getDetFilePathName(), "betaGamma"); if (Objects.nonNull(detTmp)) { @@ -515,7 +515,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } //判断qc信息是否存在 if (Objects.nonNull(qc)) { - betaDataFile.setQcFilePathName(StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbQcFilePath); + betaDataFile.setQcFilePathName(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbQcFilePath); betaDataFile.setQcFileName(qcFileName); qcTmp = ftpUtil.downloadFile(betaDataFile.getQcFilePathName(), "betaGamma"); if (Objects.nonNull(qcTmp)) { @@ -595,7 +595,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements //获取用户名 String userName = JwtUtil.getUserNameByToken(request); //上传文件路径 - String path = StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName; + String path = ftpUtil.getFtpRootPath() + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName; Map resultMap = new HashMap<>(); Map sampleMap = new HashMap<>(); Map gasBgMap = new HashMap<>(); @@ -875,7 +875,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements InputStream inputStream = null; ServletOutputStream outputStream = null; try { - inputStream = ftpUtil.downloadFileStream(StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + reportPath + ".txt"); + inputStream = ftpUtil.downloadFileStream(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + reportPath + ".txt"); if (Objects.nonNull(inputStream)){ outputStream = response.getOutputStream(); byte[] buffer = new byte[1024]; @@ -3719,7 +3719,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements InputStream inputStream = null; ServletOutputStream outputStream = null; try { - inputStream = ftpUtil.downloadFileStream(StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getLogPath() + StringPool.SLASH + logPath); + inputStream = ftpUtil.downloadFileStream(ftpUtil.getFtpRootPath() + spectrumPathProperties.getLogPath() + StringPool.SLASH + logPath); if (Objects.nonNull(inputStream)){ outputStream = response.getOutputStream(); byte[] buffer = new byte[1024]; @@ -4025,19 +4025,19 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements try { if (StringUtils.isNotBlank(betaDataFile.getSampleTmpPath())) { File sampleTmp = new File(betaDataFile.getSampleTmpPath()); - ftpUtil.saveFile(StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + sampleFilePathName.substring(0, sampleFilePathName.lastIndexOf(StringPool.SLASH)), anlyseResultIn.getSampleFileName(), new FileInputStream(sampleTmp)); + ftpUtil.saveFile(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + sampleFilePathName.substring(0, sampleFilePathName.lastIndexOf(StringPool.SLASH)), anlyseResultIn.getSampleFileName(), new FileInputStream(sampleTmp)); } if (StringUtils.isNotBlank(betaDataFile.getGasTmpPath())) { File gasTmp = new File(betaDataFile.getGasTmpPath()); - ftpUtil.saveFile(StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + gasFilePathName.substring(0, gasFilePathName.lastIndexOf(StringPool.SLASH)), anlyseResultIn.getGasFileName(), new FileInputStream(gasTmp)); + ftpUtil.saveFile(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + gasFilePathName.substring(0, gasFilePathName.lastIndexOf(StringPool.SLASH)), anlyseResultIn.getGasFileName(), new FileInputStream(gasTmp)); } if (StringUtils.isNotBlank(betaDataFile.getDetTmpPath())) { File detTmp = new File(betaDataFile.getDetTmpPath()); - ftpUtil.saveFile(StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + detFilePathName.substring(0, detFilePathName.lastIndexOf(StringPool.SLASH)), anlyseResultIn.getDetFileName(), new FileInputStream(detTmp)); + ftpUtil.saveFile(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + detFilePathName.substring(0, detFilePathName.lastIndexOf(StringPool.SLASH)), anlyseResultIn.getDetFileName(), new FileInputStream(detTmp)); } if (StringUtils.isNotBlank(betaDataFile.getQcTmpPath())) { 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)); + ftpUtil.saveFile(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + qcFilePathName.substring(0, qcFilePathName.lastIndexOf(StringPool.SLASH)), anlyseResultIn.getQcFileName(), new FileInputStream(qcTmp)); } //分析成功后存储日志文件和报告文件 { diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumFileServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumFileServiceImpl.java index 8cc0bd31..0c17f54e 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumFileServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumFileServiceImpl.java @@ -63,8 +63,7 @@ public class SpectrumFileServiceImpl implements ISpectrumFileService { ZipInputStream zipInputStream = null; String slash = SymbolConstant.SINGLE_SLASH; - String filePath = slash + spectrumPathProperties.getUploadPath() - + slash + username; + String filePath = spectrumPathProperties.getUploadPath() + slash + username; String tempFilePath = System.getProperty("java.io.tmpdir") + username + slash; List fileNames = new ArrayList<>(); List fileList = new ArrayList<>(); @@ -106,9 +105,7 @@ public class SpectrumFileServiceImpl implements ISpectrumFileService { if (!regexPattern.matcher(fileName).find() && !regexPattern1.matcher(fileName).find()) { EnergySpectrumStruct struct = phdFileUtil.analyzeFileSourceData(oneFile); String suffix = nameStandUtil.GetSuffix(struct.data_type, struct.spectrum_quantity, String.valueOf(struct.acquisition_live_time)); - String filePreffix = struct.detector_code + StringPool.DASH + struct.acquisition_start_date.replace(StringPool.SLASH, StringPool.EMPTY)+StringPool.UNDERSCORE - + struct.acquisition_start_time.substring(0, 5).replace(StringPool.COLON, StringPool.EMPTY); - fileName = filePreffix+suffix; + fileName = nameStandUtil.GetFileNameFromDateTime(struct.measurement_id, suffix); } String fullFilePath = rootPath + filePath + slash + fileName; FileInputStream local = new FileInputStream(oneFile); From 6da18a25e654176eff204920df75a14297f1fff2 Mon Sep 17 00:00:00 2001 From: xiaoguangbin Date: Mon, 29 Jan 2024 14:15:55 +0800 Subject: [PATCH 002/133] =?UTF-8?q?fix:=20=E5=8E=BB=E6=8E=89ftp=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=E4=BB=A5=E5=8F=8Aftp=E4=B8=8B=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=A4=B9=E8=B7=AF=E5=BE=84=E8=BF=9B=E8=A1=8C=E6=8B=BC=E6=8E=A5?= =?UTF-8?q?=E6=97=B6=E5=A4=9A=E6=8B=BC=E6=8E=A5=E7=9A=84=E8=B7=AF=E5=BE=84?= =?UTF-8?q?=E7=AC=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/jeecg/common/util/GammaFileUtil.java | 2 +- 1 file changed, 1 insertion(+), 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 e8ab7db3..35da2e4c 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 @@ -3222,7 +3222,7 @@ public class GammaFileUtil extends AbstractLogOrReport { try { sampleTmp = new File(fileAnlyse.getTmpFilePath()); if (Objects.nonNull(sampleTmp)) { - bRet = ftpUtil.saveFile(StringPool.SLASH + ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + middleData.analyses_save_filePath.substring(0, middleData.analyses_save_filePath.lastIndexOf(StringPool.SLASH)), middleData.analyses_save_filePath.substring(middleData.analyses_save_filePath.lastIndexOf(StringPool.SLASH)+1), new FileInputStream(sampleTmp)); + bRet = ftpUtil.saveFile(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + middleData.analyses_save_filePath.substring(0, middleData.analyses_save_filePath.lastIndexOf(StringPool.SLASH)), middleData.analyses_save_filePath.substring(middleData.analyses_save_filePath.lastIndexOf(StringPool.SLASH)+1), new FileInputStream(sampleTmp)); } } catch (FileNotFoundException e) { throw new RuntimeException(e); From d9e89f560697cf7fdb140c95e970dbc1196f3a87 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Wed, 31 Jan 2024 16:09:52 +0800 Subject: [PATCH 003/133] =?UTF-8?q?feat=EF=BC=9Asend=20message?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/common/constant/CommonConstant.java | 2 + .../common/constant/ServiceNameConstants.java | 4 +- .../base/entity/postgre/SysUserClient.java | 39 +++++ .../modules/feignclient/SystemClient.java | 9 +- .../modules/redisStream/AnalysisConsumer.java | 8 +- .../org/jeecg/common/util/GammaFileUtil.java | 6 + .../modules/mapper/GardsNuclLibMapper.java | 2 +- .../org/jeecg/DataReceivingStatusManager.java | 1 + jeecg-module-system/jeecg-system-biz/pom.xml | 20 ++- .../org/jeecg/config/init/MyApiHelper.java | 44 ++++++ .../controller/SendAppMessageController.java | 21 +++ .../controller/SendMessageController.java | 4 +- .../message/mapper/AppMessageMapper.java | 25 +++ .../message/mapper/xml/AppMessageMapper.xml | 22 +++ .../message/service/IAppMessageService.java | 9 ++ .../service/impl/AppMessageServiceImpl.java | 37 +++++ .../modules/message/util/PushAppUtil.java | 148 ++++++++++++++++++ .../jeecg/modules/quartz/entity/Monitor.java | 4 + .../jeecg/modules/quartz/job/DatabaseJob.java | 1 + .../jeecg/modules/quartz/job/EmailJob.java | 1 + .../jeecg/modules/quartz/job/ServerJob.java | 1 + .../system/controller/LoginController.java | 34 ++++ .../controller/SysUserClientController.java | 23 +++ .../system/mapper/SysUserClientMapper.java | 7 + .../system/service/ISysUserClientService.java | 10 ++ .../impl/SysUserClientServiceImpl.java | 36 +++++ .../controller/RadionuclideController.java | 5 +- .../mapper/GardsSampleDataWebMapper.java | 3 +- .../mapper/xml/GardsSampleDataWebMapper.xml | 3 + .../jeecg/modules/service/IAutoService.java | 2 +- .../modules/service/impl/AutoServiceImpl.java | 4 +- 31 files changed, 519 insertions(+), 16 deletions(-) create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/postgre/SysUserClient.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/config/init/MyApiHelper.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/controller/SendAppMessageController.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/mapper/AppMessageMapper.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/mapper/xml/AppMessageMapper.xml create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/service/IAppMessageService.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/service/impl/AppMessageServiceImpl.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/util/PushAppUtil.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserClientController.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserClientMapper.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserClientService.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserClientServiceImpl.java diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java index dd411a72..224269cc 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java @@ -79,6 +79,8 @@ public interface CommonConstant { public static String PREFIX_USER_SHIRO_CACHE = "shiro:cache:org.jeecg.config.shiro.ShiroRealm.authorizationCache:"; /** 登录用户Token令牌缓存KEY前缀 */ String PREFIX_USER_TOKEN = "prefix_user_token:"; + /** APP端记录登陆用户Token令牌缓存KEY */ + String PREFIX_USER_TOKEN_APP = "prefix_user_token_app:"; // /** Token缓存时间:3600秒即一小时 */ // int TOKEN_EXPIRE_TIME = 3600; diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/ServiceNameConstants.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/ServiceNameConstants.java index 351d4127..1db798d1 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/ServiceNameConstants.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/ServiceNameConstants.java @@ -28,11 +28,11 @@ public interface ServiceNameConstants { /** * 微服务名:系统管理模块 */ - String SERVICE_SYSTEM = "jeecg-system"; + String SERVICE_SYSTEM = "armd-system"; /** * 微服务名: demo模块 */ - String SERVICE_DEMO = "jeecg-demo"; + String SERVICE_DEMO = "armd-demo"; /** * 微服务名:online在线模块 */ diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/postgre/SysUserClient.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/postgre/SysUserClient.java new file mode 100644 index 00000000..eb00dab6 --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/postgre/SysUserClient.java @@ -0,0 +1,39 @@ +package org.jeecg.modules.base.entity.postgre; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +@Data +@TableName("sys_user_client") +public class SysUserClient implements Serializable { + + @TableId(value = "id", type = IdType.ASSIGN_ID) + private String id; + + @TableField(value = "user_id") + private String userId; + + @TableField(value = "client_id") + private String clientId; + + @TableField(value = "create_by") + private String createBy; + + @TableField(value = "create_time") + private Date createTime; + + @TableField(value = "update_by") + private String updateBy; + + @TableField(value = "update_time") + private Date updateTime; + + + +} 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 8b8e9c4c..ccd00db5 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 @@ -19,8 +19,8 @@ public interface SystemClient { @RequestMapping("/sys/user/findUserMap") Map findUserMap(); - @GetMapping("/sys/sendMessage/send") - void sendMessage(@RequestParam MessageDTO messageDTO, + @PostMapping("/sys/sendMessage/send") + void sendMessage(@RequestBody MessageDTO messageDTO, @RequestParam String groupId, @RequestParam String notific); @@ -39,4 +39,9 @@ public interface SystemClient { @GetMapping("/gardsStations/stationCodesMap") Map stationCodesMap(); + + @PostMapping("/sys/appMessage/pushMessageToSingle") + void pushMessageToSingle(@RequestBody MessageDTO messageDTO, @RequestParam String groupId); + + } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/redisStream/AnalysisConsumer.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/redisStream/AnalysisConsumer.java index 1de847a4..1165b97e 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/redisStream/AnalysisConsumer.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/redisStream/AnalysisConsumer.java @@ -198,8 +198,12 @@ public class AnalysisConsumer implements StreamListener { List findNuclidesAnalysis(); List getNuclideLines(); - + } 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 af035bdd..506ba9df 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 @@ -81,6 +81,7 @@ public class DataReceivingStatusManager { String cacheTime = (String) redisUtil.get("maxCacheTime"); //从redis中获取台站信息 Map stationInfoMap = (HashMap) redisUtil.get("stationInfoMap"); +// List stationIds = stationInfoMap.keySet().stream().collect(Collectors.toList()); List stationIds = new LinkedList<>(); for (Map.Entry stationInfo:stationInfoMap.entrySet()) { GardsStations infoValue = stationInfo.getValue(); diff --git a/jeecg-module-system/jeecg-system-biz/pom.xml b/jeecg-module-system/jeecg-system-biz/pom.xml index 7d176710..e8a618df 100644 --- a/jeecg-module-system/jeecg-system-biz/pom.xml +++ b/jeecg-module-system/jeecg-system-biz/pom.xml @@ -55,6 +55,24 @@ org.jeecgframework.boot jeecg-module-beta-gamma-analyser + + + com.getui.push + restful-sdk + 1.0.0.7 + + + com.gexin.platform + gexin-rp-sdk-http + 4.1.2.3 + - + + + + getui-nexus + https://mvn.getui.com/nexus/content/repositories/releases/ + + + diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/config/init/MyApiHelper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/config/init/MyApiHelper.java new file mode 100644 index 00000000..797ac4f3 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/config/init/MyApiHelper.java @@ -0,0 +1,44 @@ +package org.jeecg.config.init; + +import com.getui.push.v2.sdk.ApiHelper; +import com.getui.push.v2.sdk.GtApiConfiguration; +import com.getui.push.v2.sdk.api.PushApi; +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "getui.app") +public class MyApiHelper { + + private String appId; + + private String appKey; + + private String appSecret; + + private String masterSecret; + + private String url; + + /** + * 个推接口实例化 + * @return + */ + @Bean(name = "onlyPushApi") + public PushApi pushApi() { + GtApiConfiguration apiConfiguration = new GtApiConfiguration(); + //填写应用配置,参数在“Uni Push”下的“应用配置”页面中获取 + apiConfiguration.setAppId(appId); + apiConfiguration.setAppKey(appKey); + apiConfiguration.setMasterSecret(masterSecret); + //实例化ApiHelper对象,用于创建接口对象 + ApiHelper apiHelper = ApiHelper.build(apiConfiguration); + //创建对象,建议复用。目前有PushApi、StatisticApi、UserApi + PushApi pushApi = apiHelper.creatApi(PushApi.class); + return pushApi; + } + +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/controller/SendAppMessageController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/controller/SendAppMessageController.java new file mode 100644 index 00000000..7f701e6e --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/controller/SendAppMessageController.java @@ -0,0 +1,21 @@ +package org.jeecg.modules.message.controller; + +import org.jeecg.common.api.dto.message.MessageDTO; +import org.jeecg.modules.message.service.IAppMessageService; +import org.jeecg.modules.message.util.PushAppUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("sys/appMessage") +public class SendAppMessageController { + + @Autowired + private IAppMessageService appMessageService; + + @PostMapping("pushMessageToSingle") + public void pushMessageToSingle(@RequestBody MessageDTO messageDTO, @RequestParam String groupId) { + appMessageService.sendToSingle(messageDTO, groupId); + } + +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/controller/SendMessageController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/controller/SendMessageController.java index 5a83b40a..495eb13a 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/controller/SendMessageController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/controller/SendMessageController.java @@ -18,8 +18,8 @@ public class SendMessageController { @Autowired private ISysBaseAPI sysBaseAPI; - @GetMapping("send") - public void sendMessage(@RequestParam MessageDTO messageDTO, + @PostMapping("send") + public void sendMessage(@RequestBody MessageDTO messageDTO, @RequestParam String groupId, @RequestParam String notific){ sendMessage.send(messageDTO, groupId, notific); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/mapper/AppMessageMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/mapper/AppMessageMapper.java new file mode 100644 index 00000000..55f32860 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/mapper/AppMessageMapper.java @@ -0,0 +1,25 @@ +package org.jeecg.modules.message.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface AppMessageMapper { + + /** + * 根据分组id获取关联的用户id + * @param groupId + * @return + */ + List findGroupUserIds(@Param(value = "groupId") String groupId); + + /** + * 查询用户关联的客户端id + * @param userIds + * @return + */ + List findUserClientId(@Param(value = "userIds") List userIds); + +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/mapper/xml/AppMessageMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/mapper/xml/AppMessageMapper.xml new file mode 100644 index 00000000..b6f72ff9 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/mapper/xml/AppMessageMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + \ No newline at end of file diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/service/IAppMessageService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/service/IAppMessageService.java new file mode 100644 index 00000000..def8c8ab --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/service/IAppMessageService.java @@ -0,0 +1,9 @@ +package org.jeecg.modules.message.service; + +import org.jeecg.common.api.dto.message.MessageDTO; + +public interface IAppMessageService { + + void sendToSingle(MessageDTO messageDTO, String groupId); + +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/service/impl/AppMessageServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/service/impl/AppMessageServiceImpl.java new file mode 100644 index 00000000..27439781 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/service/impl/AppMessageServiceImpl.java @@ -0,0 +1,37 @@ +package org.jeecg.modules.message.service.impl; + +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import org.jeecg.common.api.dto.message.MessageDTO; +import org.jeecg.modules.message.mapper.AppMessageMapper; +import org.jeecg.modules.message.service.IAppMessageService; +import org.jeecg.modules.message.util.PushAppUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class AppMessageServiceImpl implements IAppMessageService { + + @Autowired + private PushAppUtil pushAppUtil; + @Autowired + private AppMessageMapper appMessageMapper; + + + @Override + public void sendToSingle(MessageDTO messageDTO, String groupId) { + //根据分组id查询出关联的用户id + List groupUserIds = appMessageMapper.findGroupUserIds(groupId); + if (CollectionUtils.isNotEmpty(groupUserIds)) { + //根据用户id查询出用户关联的app客户端id + List userClientId = appMessageMapper.findUserClientId(groupUserIds); + if (CollectionUtils.isNotEmpty(userClientId)) { + userClientId = userClientId.stream().distinct().collect(Collectors.toList()); + //调用app推送方法 + pushAppUtil.pushToList(messageDTO, userClientId); + } + } + } +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/util/PushAppUtil.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/util/PushAppUtil.java new file mode 100644 index 00000000..e33f4182 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/util/PushAppUtil.java @@ -0,0 +1,148 @@ +package org.jeecg.modules.message.util; + +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.getui.push.v2.sdk.api.PushApi; +import com.getui.push.v2.sdk.common.ApiResult; +import com.getui.push.v2.sdk.dto.req.Audience; +import com.getui.push.v2.sdk.dto.req.AudienceDTO; +import com.getui.push.v2.sdk.dto.req.Settings; +import com.getui.push.v2.sdk.dto.req.message.PushChannel; +import com.getui.push.v2.sdk.dto.req.message.PushDTO; +import com.getui.push.v2.sdk.dto.req.message.PushMessage; +import com.getui.push.v2.sdk.dto.req.message.android.AndroidDTO; +import com.getui.push.v2.sdk.dto.req.message.android.GTNotification; +import com.getui.push.v2.sdk.dto.req.message.android.ThirdNotification; +import com.getui.push.v2.sdk.dto.req.message.android.Ups; +import com.getui.push.v2.sdk.dto.res.TaskIdDTO; +import org.jeecg.common.api.dto.message.MessageDTO; +import org.jeecg.modules.message.mapper.AppMessageMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Component +public class PushAppUtil { + + @Autowired + private AppMessageMapper appMessageMapper; + @Resource(name = "onlyPushApi") + private PushApi pushApi; + + /** + * 根据groupId,查询给个人 + * @param messageDTO + * @param groupId + */ + public void pushToSingle(MessageDTO messageDTO, String groupId) { + //根据分组id查询出关联的用户id + List groupUserIds = appMessageMapper.findGroupUserIds(groupId); + if (CollectionUtils.isNotEmpty(groupUserIds)) { + //根据用户id查询出用户关联的app客户端id + List userClientId = appMessageMapper.findUserClientId(groupUserIds); + if (CollectionUtils.isNotEmpty(userClientId)) { + userClientId = userClientId.stream().distinct().collect(Collectors.toList()); + //调用app推送方法 + pushToList(messageDTO, userClientId); + } + } + } + + public void pushToList(MessageDTO messageDTO, List clientIds) { + //批量发送 + AudienceDTO audienceDTO = new AudienceDTO(); + + PushDTO pushDTO = buildPushDTO(messageDTO.getTitle(), messageDTO.getContent()); + //创建消息 + ApiResult createApiResult = pushApi.createMsg(pushDTO); + if (! createApiResult.isSuccess()) { + System.out.println("推送:创建消息失败"+createApiResult.getMsg()); + } + // 设置接收人信息 + Audience audience = new Audience(); + pushDTO.setAudience(audience); + audience.setCid(clientIds); + + audienceDTO.setAudience(audience); + audienceDTO.setTaskid(createApiResult.getData().getTaskId()); + audienceDTO.setAsync(true); + + ApiResult>> apiResult = pushApi.pushListByCid(audienceDTO); + if (apiResult.isSuccess()) { + // success + System.out.println(apiResult.getMsg()); + } else { + // failed + System.out.println("code:" + apiResult.getCode() + ", msg: " + apiResult.getMsg()); + } + } + + /** + * 构建推送消息 + * @param title + * @param content + * @return + */ + private PushDTO buildPushDTO(String title, String content) { + PushDTO pushDTO = new PushDTO<>(); + // 设置推送参数 + pushDTO.setRequestId(System.currentTimeMillis() + ""); + pushDTO.setGroupName("test-group"); + + //配置推送条件 + Settings settings = new Settings(); + pushDTO.setSettings(settings); + //消息有效期,走厂商消息需要设置该值 + settings.setTtl(3600000); + + //安卓在线通道走个推推送时的消息体(在线通道不支持ios) + PushMessage pushMessage = new PushMessage(); + pushDTO.setPushMessage(pushMessage); + //通知消息 + GTNotification notification = new GTNotification(); + pushMessage.setNotification(notification); + notification.setTitle(title); + notification.setBody(content); + notification.setClickType("intent"); + notification.setIntent("intent://io.dcloud.unipush/?#Intent;scheme=unipush;launchFlags=0x4000000;component=com.analysissystem/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title=测试标题;S.content=测试内容;S.payload=test;end"); + //透传消息 此格式的透传消息由 unipush 做了特殊处理,会自动展示通知栏。开发者也可自定义其它格式,在客户端自己处理。 +// pushMessage.setTransmission(" {title:\"个推通道透传消息标题\",content:\"个推通道透传消息内容\",payload:\"自定义数据\"}"); + + //设置离线推送时的消息体 + PushChannel pushChannel = new PushChannel(); + + //安卓离线厂商通道推送的消息体 + AndroidDTO androidDTO = new AndroidDTO(); + Ups ups = new Ups(); + //通知消息 + ThirdNotification thirdNotification = new ThirdNotification(); + ups.setNotification(thirdNotification); + thirdNotification.setTitle(title); + thirdNotification.setBody(content); + thirdNotification.setClickType("intent"); + thirdNotification.setIntent("intent://io.dcloud.unipush/?#Intent;scheme=unipush;launchFlags=0x4000000;component=com.analysissystem/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title=测试标题;S.content=测试内容;S.payload=test;end"); + //透传消息 +// ups.setTransmission(" {title:\"安卓离线厂商通道透传消息标题\",content:\"安卓离线厂商通道透传消息内容\",payload:\"自定义数据\"}"); + //华为手机配置厂商参数 + ups.addOption("HW", "/message/android/notification/badge/add_num", 1); + ups.addOption("HW", "/message/android/notification/importance", "HIGH"); + ups.addOption("HW", "/message/android/category", "WORK"); + //OPPO手机配置厂商参数 + ups.addOption("OP", "/off_line", true); + ups.addOption("OP", "/show_ttl", 86400); + //VIVO手机配置厂商参数 + ups.addOption("VV", "/notifyType", 4); + ups.addOption("VV", "/timeToLive", 86400); + + androidDTO.setUps(ups); + pushChannel.setAndroid(androidDTO); + + pushDTO.setPushChannel(pushChannel); + return pushDTO; + } + + +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/entity/Monitor.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/entity/Monitor.java index e281d477..633cdcd0 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/entity/Monitor.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/entity/Monitor.java @@ -9,6 +9,7 @@ import org.jeecg.common.util.SpringContextUtils; import org.jeecg.modules.feignclient.AbnormalAlarmClient; import org.jeecg.modules.feignclient.MonitorSystem; import org.jeecg.modules.message.SendMessage; +import org.jeecg.modules.message.util.PushAppUtil; import static org.jeecg.common.util.TokenUtils.getTempToken; @Getter @@ -24,6 +25,8 @@ public abstract class Monitor { private AbnormalAlarmClient alarmClient; + private PushAppUtil pushAppUtil; + /* * 规则首次触发报警后,设置该规则的沉默周期(如果有) */ @@ -40,6 +43,7 @@ public abstract class Monitor { redisStreamUtil = SpringContextUtils.getBean(RedisStreamUtil.class); alarmClient = SpringContextUtils.getBean(AbnormalAlarmClient.class); monitorSystem = SpringContextUtils.getBean(MonitorSystem.class); + pushAppUtil = SpringContextUtils.getBean(PushAppUtil.class); } protected void destroy() { diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/DatabaseJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/DatabaseJob.java index 5fff55b3..7022bdf1 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/DatabaseJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/DatabaseJob.java @@ -116,6 +116,7 @@ public class DatabaseJob extends Monitor implements Job{ String groupId = alarmRule.getContactId(); String notific = alarmRule.getNotification(); getSendMessage().send(messageDTO, groupId, notific); + getPushAppUtil().pushToSingle(messageDTO, groupId); } } catch (JsonProcessingException e) { log.error("Database预警规则: {}解析失败,失败原因: {}", operator, e.getMessage()); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/EmailJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/EmailJob.java index 320cfddc..614cb05f 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/EmailJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/EmailJob.java @@ -107,6 +107,7 @@ public class EmailJob extends Monitor implements Job{ String groupId = alarmRule.getContactId(); String notific = alarmRule.getNotification(); getSendMessage().send(messageDTO, groupId, notific); + getPushAppUtil().pushToSingle(messageDTO, groupId); } } catch (JsonProcessingException e) { log.error("Email预警规则: {}解析失败,失败原因: {}", operator, e.getMessage()); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/ServerJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/ServerJob.java index afc18cfd..5d5c8a89 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/ServerJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/ServerJob.java @@ -122,6 +122,7 @@ public class ServerJob extends Monitor implements Job { String groupId = alarmRule.getContactId(); String notific = alarmRule.getNotification(); getSendMessage().send(messageDTO, groupId, notific); + getPushAppUtil().pushToSingle(messageDTO, groupId); } }catch (FeignException.Unauthorized e){ ManageUtil.refreshToken(); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java index 1f9af1d2..df9484e4 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java @@ -612,12 +612,22 @@ public class LoginController { //6. 生成token String token = JwtUtil.sign(username, syspassword); + //判断是否存在当前token如果存在 销毁当前token重新生成token信息 + if ( redisUtil.hasKey(CommonConstant.PREFIX_USER_TOKEN_APP+username) ) { + //获取存储的app端token + String usedToken = (String) redisUtil.get(CommonConstant.PREFIX_USER_TOKEN_APP+username); + logOutApp(usedToken); + } + // 设置超时时间 redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token); redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME*2 / 1000); + redisUtil.set(CommonConstant.PREFIX_USER_TOKEN_APP+username, token); + redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN_APP+username, JwtUtil.EXPIRE_TIME*2 / 1000); //token 信息 obj.put("token", token); + result.setResult(obj); result.setSuccess(true); result.setCode(200); @@ -625,6 +635,30 @@ public class LoginController { return result; } + private void logOutApp(String token) { + //通过token获取用户名 + String username = JwtUtil.getUsername(token); + //根据用户名查询用户信息 + LoginUser sysUser = sysBaseApi.getUserByName(username); + //用户信息不为空 + if(sysUser!=null) { + //update-begin--Author:wangshuai Date:20200714 for:登出日志没有记录人员 + baseCommonService.addLog("用户名: "+sysUser.getRealname()+",退出成功[移动端]!", CommonConstant.LOG_TYPE_1, null,sysUser); + //update-end--Author:wangshuai Date:20200714 for:登出日志没有记录人员 + log.info(" 用户名: "+sysUser.getRealname()+",退出成功[移动端]! "); + //清空用户登录Token缓存 + redisUtil.del(CommonConstant.PREFIX_USER_TOKEN + token); + //清空用户登陆app端Token缓存 + redisUtil.del(CommonConstant.PREFIX_USER_TOKEN_APP+username); + //清空用户登录Shiro权限缓存 + redisUtil.del(CommonConstant.PREFIX_USER_SHIRO_CACHE + sysUser.getId()); + //清空用户的缓存信息(包括部门信息),例如sys:cache:user:: + redisUtil.del(String.format("%s::%s", CacheConstant.SYS_USERS_CACHE, sysUser.getUsername())); + //调用shiro的logout + SecurityUtils.getSubject().logout(); + } + } + /** * 图形验证码 * @param sysLoginModel diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserClientController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserClientController.java new file mode 100644 index 00000000..9e6fc740 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserClientController.java @@ -0,0 +1,23 @@ +package org.jeecg.modules.system.controller; + +import org.jeecg.modules.base.entity.postgre.SysUserClient; +import org.jeecg.modules.system.service.ISysUserClientService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/sys/userClient") +public class SysUserClientController { + + @Autowired + private ISysUserClientService userClientService; + + @PostMapping("saveOrUpdateClient") + public void saveOrUpdateClient(@RequestBody SysUserClient sysUserClient) { + userClientService.saveOrUpdateClient(sysUserClient); + } + +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserClientMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserClientMapper.java new file mode 100644 index 00000000..d6f82b38 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserClientMapper.java @@ -0,0 +1,7 @@ +package org.jeecg.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.jeecg.modules.base.entity.postgre.SysUserClient; + +public interface SysUserClientMapper extends BaseMapper { +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserClientService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserClientService.java new file mode 100644 index 00000000..39585697 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserClientService.java @@ -0,0 +1,10 @@ +package org.jeecg.modules.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.base.entity.postgre.SysUserClient; + +public interface ISysUserClientService extends IService { + + void saveOrUpdateClient(SysUserClient sysUserClient); + +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserClientServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserClientServiceImpl.java new file mode 100644 index 00000000..5a6635e5 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserClientServiceImpl.java @@ -0,0 +1,36 @@ +package org.jeecg.modules.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.modules.base.entity.postgre.SysUserClient; +import org.jeecg.modules.system.mapper.SysUserClientMapper; +import org.jeecg.modules.system.service.ISysUserClientService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Objects; + +@Service("sysUserClientService") +public class SysUserClientServiceImpl extends ServiceImpl implements ISysUserClientService { + + @Override + public void saveOrUpdateClient(SysUserClient userClient) { + //根据用户id查询cid + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysUserClient::getUserId, userClient.getUserId()); + SysUserClient sysUserClient = this.baseMapper.selectOne(queryWrapper); + //判断用户关联的客户端id是否为空 + if (Objects.nonNull(sysUserClient)) { + sysUserClient.setClientId(userClient.getClientId()); + this.baseMapper.updateById(sysUserClient); + } else {//如果用户关联的客户端id为空 说明当前用户没有关联的客户端id + userClient.setId(IdWorker.getIdStr()); + this.baseMapper.insert(userClient); + } + } + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/RadionuclideController.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/RadionuclideController.java index e21eb63a..e32bbe8a 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/RadionuclideController.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/RadionuclideController.java @@ -24,10 +24,11 @@ public class RadionuclideController { @GetMapping("findAutoPage") @ApiOperation(value = "分页查询自动处理结果", notes = "分页查询自动处理结果") - public Result findAutoPage(QueryRequest queryRequest, Integer[] stationIds, String qualifie, + public Result findAutoPage(QueryRequest queryRequest, Integer[] stationIds, + String qualifie, String sampleType, @DateTimeFormat(pattern = "yyyy-MM-dd")Date startTime, @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){ - return autoService.findAutoPage(queryRequest, stationIds, qualifie, startTime, endTime); + return autoService.findAutoPage(queryRequest, stationIds, qualifie, sampleType,startTime, endTime); } @GetMapping("findReviewedPage") diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleDataWebMapper.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleDataWebMapper.java index 22f8ccdb..e4b2a9d2 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleDataWebMapper.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleDataWebMapper.java @@ -8,11 +8,12 @@ import org.jeecg.modules.entity.GardsSampleDataWeb; import org.jeecg.modules.entity.vo.SpectrumFileRecord; import java.util.List; +import java.util.Map; @Mapper public interface GardsSampleDataWebMapper extends BaseMapper { - Page findAutoPage(String startDate, String endDate, List stationIdList, String qualifie, Page page); + Page findAutoPage(String startDate, String endDate, List stationIdList, String qualifie, String sampleType, Page page); Page findReviewedPage(String startDate, String endDate, List stationIdList, String qualifie, Page page); 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 065c2899..aea22575 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 @@ -42,6 +42,9 @@ AND sam.SPECTRAL_QUALIFIE = #{qualifie} + + AND sam.SAMPLE_TYPE = #{sampleType} + ORDER BY sam.ACQUISITION_START DESC diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IAutoService.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IAutoService.java index 97182440..138b5d8b 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IAutoService.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IAutoService.java @@ -10,7 +10,7 @@ import java.util.Date; public interface IAutoService extends IService { - Result findAutoPage(QueryRequest queryRequest, Integer[] stationIds, String qualifie, Date startTime, Date endTime); + Result findAutoPage(QueryRequest queryRequest, Integer[] stationIds, String qualifie, String sampleType,Date startTime, Date endTime); GardsAnalyses getOne(Integer sampleId); diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/AutoServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/AutoServiceImpl.java index 4294f92c..9da79ffa 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/AutoServiceImpl.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/AutoServiceImpl.java @@ -45,7 +45,7 @@ public class AutoServiceImpl extends ServiceImpl stationMap = (Map)redisUtil.get("stationMap"); @@ -66,7 +66,7 @@ public class AutoServiceImpl extends ServiceImpl page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize()); - Page sampleDataPage = gardsSampleDataWebMapper.findAutoPage(startDate, endDate, stationIdList, qualifie, page); + Page sampleDataPage = gardsSampleDataWebMapper.findAutoPage(startDate, endDate, stationIdList, qualifie, sampleType, page); sampleDataPage.getRecords().forEach(item->{ item.setSiteDetCode(StringUtils.trim(item.getSiteDetCode())); if (stationMap.containsKey(item.getStationId().toString()) && CollectionUtils.isNotEmpty(stationMap)){ From fc1ff16fac475d70f84d03841101a77ac346036a Mon Sep 17 00:00:00 2001 From: xiaoguangbin Date: Fri, 2 Feb 2024 17:27:00 +0800 Subject: [PATCH 004/133] =?UTF-8?q?fix:=20=E4=BA=BA=E5=B7=A5=E4=BA=A4?= =?UTF-8?q?=E4=BA=92=E6=A8=A1=E5=9D=97=E4=B8=B4=E6=97=B6=E7=94=9F=E6=88=90?= =?UTF-8?q?=E7=9A=84=E6=97=A5=E5=BF=97=E6=96=87=E4=BB=B6=EF=BC=8C=E6=8A=A5?= =?UTF-8?q?=E5=91=8A=E6=96=87=E4=BB=B6=E5=88=A0=E9=99=A4=20=E4=BA=BA?= =?UTF-8?q?=E5=B7=A5=E4=BA=A4=E4=BA=92=E6=A8=A1=E5=9D=97beta=E9=83=A8?= =?UTF-8?q?=E5=88=86=E5=85=AC=E5=BC=8F=E5=8F=82=E6=95=B0=E5=AD=98=E5=82=A8?= =?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 --- .../service/impl/GammaServiceImpl.java | 4 ++ .../impl/SpectrumAnalysisServiceImpl.java | 68 +++++++++++-------- 2 files changed, 44 insertions(+), 28 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 7e874087..fdafe929 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 @@ -5129,6 +5129,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi ftpUtil.saveFile(logPathName, logFileName, in); } catch (FileNotFoundException e) { throw new RuntimeException(e); + } finally { + logFile.delete(); } } { @@ -5141,6 +5143,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi ftpUtil.saveFile(rptPathName, rptFileName, in); } catch (FileNotFoundException e) { throw new RuntimeException(e); + } finally { + 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 49071139..03765e22 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 @@ -564,8 +564,8 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements xeData.setConcErr(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getConcErr())))); } } - betaDataFile.setGammaCalibrationSpectrumList(gammaCalibrationSpectrumList); - betaDataFile.setBetaCalibrationSpectrumList(betaCalibrationSpectrumList); + betaDataFile.setGammaCalibrationSpectrumEList(gammaCalibrationSpectrumList); + betaDataFile.setBetaCalibrationSpectrumEList(betaCalibrationSpectrumList); betaDataFile.setRoiChannelsSpectrumList(roiChannelsSpectrumList); betaDataFile.setRoiResultsSpectrumList(roiResultsSpectrumList); betaDataFile.setGammaCalibrationPairsList(gammaCalibrationPairsList); @@ -1089,16 +1089,24 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements strBuffer.append(rowFormat("%sOld Beta%-43sOld Gamma%-42s", StringPool.SPACE, StringPool.SPACE, StringPool.SPACE)); strBuffer.append(System.lineSeparator()); //拼接历史计算公式 CH - String oldBetaSampleCHStr = rowFormat("%sCH(x) = (%s)+(%s)*x+(%s)x*x", StringPool.SPACE, NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(0)), - NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(2))); - String oldGammaSampleCHStr = rowFormat("CH(x) = (%s)+(%s)*x+(%s)x*x%-24s", NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(1)), + String oldBetaSampleCHStr = rowFormat("%sCH(x) = (%s)+(%s)*x+(%s)x*x", StringPool.SPACE, + NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(0)), + NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(1)), + NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(2))); + String oldGammaSampleCHStr = rowFormat("CH(x) = (%s)+(%s)*x+(%s)x*x%-24s", + NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(0)), + NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(2)), StringPool.SPACE); strBuffer.append(rowFormat("%s%-"+(52-oldBetaSampleCHStr.length())+"s%s", oldBetaSampleCHStr, StringPool.SPACE, oldGammaSampleCHStr)); strBuffer.append(System.lineSeparator()); //拼接历史计算公式 E - String oldBetaSampleEStr = rowFormat("%sE(x) = (%s)+(%s)*x+(%s)x*x", StringPool.SPACE, NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(0)), - NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(2))); - String oldGammaSampleEStr = rowFormat("E(x) = (%s)+(%s)*x+(%s)x*x%-24s", NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(1)), + String oldBetaSampleEStr = rowFormat("%sE(x) = (%s)+(%s)*x+(%s)x*x", StringPool.SPACE, + NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(0)), + NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(1)), + NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(2))); + String oldGammaSampleEStr = rowFormat("E(x) = (%s)+(%s)*x+(%s)x*x%-24s", + NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(0)), + NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(2)), StringPool.SPACE); strBuffer.append(rowFormat("%s%-"+(52-oldBetaSampleEStr.length())+"s%s", oldBetaSampleEStr, StringPool.SPACE, oldGammaSampleEStr)); strBuffer.append(System.lineSeparator()); @@ -1112,7 +1120,8 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements (Objects.isNull(betaCalibrationParamES.getCoeff1())?NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(0)):NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamES.getCoeff1()))), (Objects.isNull(betaCalibrationParamES.getCoeff2())?NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(1)):NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamES.getCoeff2()))), (Objects.isNull(betaCalibrationParamES.getCoeff3())?NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(2)):NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamES.getCoeff3())))); - String newGammaSampleCHStr = rowFormat("CH(x) = (%s)+(%s)*x+(%s)x*x%-24s", (Objects.isNull(gammaCalibrationParamES.getCoeff1())?NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(0)):NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamES.getCoeff1()))), + String newGammaSampleCHStr = rowFormat("CH(x) = (%s)+(%s)*x+(%s)x*x%-24s", + (Objects.isNull(gammaCalibrationParamES.getCoeff1())?NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(0)):NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamES.getCoeff1()))), (Objects.isNull(gammaCalibrationParamES.getCoeff2())?NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(1)):NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamES.getCoeff2()))), (Objects.isNull(gammaCalibrationParamES.getCoeff3())?NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(2)):NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamES.getCoeff3()))), StringPool.SPACE); @@ -1123,7 +1132,8 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements (Objects.isNull(betaCalibrationParamS.getCoeff1())?NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(0)):NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamS.getCoeff1()))), (Objects.isNull(betaCalibrationParamS.getCoeff2())?NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(1)):NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamS.getCoeff2()))), (Objects.isNull(betaCalibrationParamS.getCoeff3())?NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(2)):NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamS.getCoeff3())))); - String newGammaSampleEStr = rowFormat("E(x) = (%s)+(%s)*x+(%s)x*x%-24s", (Objects.isNull(gammaCalibrationParamS.getCoeff1())?NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(0)):NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamS.getCoeff1()))), + String newGammaSampleEStr = rowFormat("E(x) = (%s)+(%s)*x+(%s)x*x%-24s", + (Objects.isNull(gammaCalibrationParamS.getCoeff1())?NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(0)):NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamS.getCoeff1()))), (Objects.isNull(gammaCalibrationParamS.getCoeff2())?NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(1)):NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamS.getCoeff2()))), (Objects.isNull(gammaCalibrationParamS.getCoeff3())?NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(2)):NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamS.getCoeff3()))), StringPool.SPACE); @@ -4073,6 +4083,8 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements ftpUtil.saveFile(rptPathName, rptFileName, in); } catch (FileNotFoundException e) { throw new RuntimeException(e); + } finally { + rptFile.delete(); } } } catch (FileNotFoundException e) { @@ -5391,9 +5403,9 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } else { GardsCalibrationSpectrum gammaCalibrationS = new GardsCalibrationSpectrum(); gammaCalibrationS.setDataType(DataTypeAbbr.SAMPLEPHD.getType()); - gammaCalibrationS.setCoeff1(bgAnalyseResult.s_g_fitting_c_e.get(0)); - gammaCalibrationS.setCoeff2(bgAnalyseResult.s_g_fitting_c_e.get(1)); - gammaCalibrationS.setCoeff3(bgAnalyseResult.s_g_fitting_c_e.get(2)); + gammaCalibrationS.setCoeff1(bgAnalyseResult.s_g_fitting_e_c.get(0)); + gammaCalibrationS.setCoeff2(bgAnalyseResult.s_g_fitting_e_c.get(1)); + gammaCalibrationS.setCoeff3(bgAnalyseResult.s_g_fitting_e_c.get(2)); gammaCalibrationSpectrumList.add(gammaCalibrationS); } if (anlyseResultIn.isBGammaEnergyValidGas()) { @@ -5406,9 +5418,9 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } else { GardsCalibrationSpectrum gammaCalibrationG = new GardsCalibrationSpectrum(); gammaCalibrationG.setDataType(DataTypeAbbr.GASBKPHD.getType()); - gammaCalibrationG.setCoeff1(bgAnalyseResult.g_g_fitting_c_e.get(0)); - gammaCalibrationG.setCoeff2(bgAnalyseResult.g_g_fitting_c_e.get(1)); - gammaCalibrationG.setCoeff3(bgAnalyseResult.g_g_fitting_c_e.get(2)); + gammaCalibrationG.setCoeff1(bgAnalyseResult.g_g_fitting_e_c.get(0)); + gammaCalibrationG.setCoeff2(bgAnalyseResult.g_g_fitting_e_c.get(1)); + gammaCalibrationG.setCoeff3(bgAnalyseResult.g_g_fitting_e_c.get(2)); gammaCalibrationSpectrumList.add(gammaCalibrationG); } if (anlyseResultIn.isBGammaEnergyValidDet()) { @@ -5421,9 +5433,9 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } else { GardsCalibrationSpectrum gammaCalibrationD = new GardsCalibrationSpectrum(); gammaCalibrationD.setDataType(DataTypeAbbr.DETBKPHD.getType()); - gammaCalibrationD.setCoeff1(bgAnalyseResult.d_g_fitting_c_e.get(0)); - gammaCalibrationD.setCoeff2(bgAnalyseResult.d_g_fitting_c_e.get(1)); - gammaCalibrationD.setCoeff3(bgAnalyseResult.d_g_fitting_c_e.get(2)); + gammaCalibrationD.setCoeff1(bgAnalyseResult.d_g_fitting_e_c.get(0)); + gammaCalibrationD.setCoeff2(bgAnalyseResult.d_g_fitting_e_c.get(1)); + gammaCalibrationD.setCoeff3(bgAnalyseResult.d_g_fitting_e_c.get(2)); gammaCalibrationSpectrumList.add(gammaCalibrationD); } anlyseResultIn.setGammaCalibrationSpectrumList(gammaCalibrationSpectrumList); @@ -5439,9 +5451,9 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } else { GardsCalibrationSpectrum betaCalibrationS = new GardsCalibrationSpectrum(); betaCalibrationS.setDataType(DataTypeAbbr.SAMPLEPHD.getType()); - betaCalibrationS.setCoeff1(bgAnalyseResult.s_b_fitting_c_e.get(0)); - betaCalibrationS.setCoeff2(bgAnalyseResult.s_b_fitting_c_e.get(1)); - betaCalibrationS.setCoeff3(bgAnalyseResult.s_b_fitting_c_e.get(2)); + betaCalibrationS.setCoeff1(bgAnalyseResult.s_b_fitting_e_c.get(0)); + betaCalibrationS.setCoeff2(bgAnalyseResult.s_b_fitting_e_c.get(1)); + betaCalibrationS.setCoeff3(bgAnalyseResult.s_b_fitting_e_c.get(2)); betaCalibrationSpectrumList.add(betaCalibrationS); } if (anlyseResultIn.isBBetaEnergyValidGas()) { @@ -5454,9 +5466,9 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } else { GardsCalibrationSpectrum betaCalibrationG = new GardsCalibrationSpectrum(); betaCalibrationG.setDataType(DataTypeAbbr.GASBKPHD.getType()); - betaCalibrationG.setCoeff1(bgAnalyseResult.g_b_fitting_c_e.get(0)); - betaCalibrationG.setCoeff2(bgAnalyseResult.g_b_fitting_c_e.get(1)); - betaCalibrationG.setCoeff3(bgAnalyseResult.g_b_fitting_c_e.get(2)); + betaCalibrationG.setCoeff1(bgAnalyseResult.g_b_fitting_e_c.get(0)); + betaCalibrationG.setCoeff2(bgAnalyseResult.g_b_fitting_e_c.get(1)); + betaCalibrationG.setCoeff3(bgAnalyseResult.g_b_fitting_e_c.get(2)); betaCalibrationSpectrumList.add(betaCalibrationG); } if (anlyseResultIn.isBBetaEnergyValidDet()) { @@ -5469,9 +5481,9 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } else { GardsCalibrationSpectrum betaCalibrationD = new GardsCalibrationSpectrum(); betaCalibrationD.setDataType(DataTypeAbbr.DETBKPHD.getType()); - betaCalibrationD.setCoeff1(bgAnalyseResult.d_b_fitting_c_e.get(0)); - betaCalibrationD.setCoeff2(bgAnalyseResult.d_b_fitting_c_e.get(1)); - betaCalibrationD.setCoeff3(bgAnalyseResult.d_b_fitting_c_e.get(2)); + betaCalibrationD.setCoeff1(bgAnalyseResult.d_b_fitting_e_c.get(0)); + betaCalibrationD.setCoeff2(bgAnalyseResult.d_b_fitting_e_c.get(1)); + betaCalibrationD.setCoeff3(bgAnalyseResult.d_b_fitting_e_c.get(2)); betaCalibrationSpectrumList.add(betaCalibrationD); } anlyseResultIn.setBetaCalibrationSpectrumList(betaCalibrationSpectrumList); From 4ccf691ed9d3dd02d14463fa7981724a593fbb20 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Sun, 4 Feb 2024 14:06:14 +0800 Subject: [PATCH 005/133] =?UTF-8?q?feat=EF=BC=9A=E4=BF=AE=E6=94=B9Host?= =?UTF-8?q?=E6=8C=87=E6=A0=87=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/common/util/NumUtil.java | 31 +++++++++++ .../jeecg/modules/base/dto/DatabaseDto.java | 25 ++++++--- .../org/jeecg/modules/base/dto/NameValue.java | 7 --- .../org/jeecg/modules/base/enums/DbItem.java | 14 +++++ .../jeecg/modules/aspect/StatusAspect.java | 21 ++++---- .../service/impl/SysDatabaseServiceImpl.java | 54 ++++++++++++++++--- .../service/impl/SysServerServiceImpl.java | 24 ++++----- .../JeecgSpectrumAnalysisApplication.java | 8 +-- 8 files changed, 137 insertions(+), 47 deletions(-) create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/DbItem.java diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/NumUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/NumUtil.java index 9c64c389..20e3b1e1 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/NumUtil.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/NumUtil.java @@ -125,4 +125,35 @@ public class NumUtil { return false; } } + + public static String kb2Gb(String kb, int scale){ + if (StrUtil.isBlank(kb)) + return null; + BigDecimal decimal = new BigDecimal(kb); + double v = decimal.divide(new BigDecimal(1024), scale, RoundingMode.HALF_UP) + .divide(new BigDecimal(1024), scale, RoundingMode.HALF_UP) + .doubleValue(); + return String.valueOf(v); + } + + public static String byte2Mb(String bytes, int scale){ + if (StrUtil.isBlank(bytes)) + return null; + BigDecimal decimal = new BigDecimal(bytes); + double v = decimal.divide(new BigDecimal(1024), scale, RoundingMode.HALF_UP) + .divide(new BigDecimal(1024), scale, RoundingMode.HALF_UP) + .doubleValue(); + return String.valueOf(v); + } + + public static String byte2Gb(String bytes, int scale){ + if (StrUtil.isBlank(bytes)) + return null; + BigDecimal decimal = new BigDecimal(bytes); + double v = decimal.divide(new BigDecimal(1024), scale, RoundingMode.HALF_UP) + .divide(new BigDecimal(1024), scale, RoundingMode.HALF_UP) + .divide(new BigDecimal(1024), scale, RoundingMode.HALF_UP) + .doubleValue(); + return String.valueOf(v); + } } diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/DatabaseDto.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/DatabaseDto.java index 12f12635..896c291c 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/DatabaseDto.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/DatabaseDto.java @@ -1,5 +1,6 @@ package org.jeecg.modules.base.dto; +import cn.hutool.core.util.StrUtil; import lombok.Data; import lombok.experimental.Accessors; @@ -21,21 +22,29 @@ public class DatabaseDto implements Serializable { private boolean online; - private String slowQuery; - private Integer alarms; private boolean alarmRed; - private String cpuUutilzation; + private String dbMemory; // kb - private boolean cpuRed; + private String logRemainingSize; // byte - private String memoryUsage; + private String dbSize; // byte - private boolean memoryRed; + public void setDbMemory(String dbMemory) { + if (StrUtil.isNotBlank(dbMemory)) + this.dbMemory = dbMemory + "GB"; + } - private String diskUsage; + public void setLogRemainingSize(String logRemainingSize) { + if (StrUtil.isNotBlank(logRemainingSize)) + this.logRemainingSize = logRemainingSize + "MB"; - private boolean diskRed; + } + + public void setDbSize(String dbSize) { + if (StrUtil.isNotBlank(dbSize)) + this.dbSize = dbSize + "GB"; + } } diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/NameValue.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/NameValue.java index a72ec1c1..d243ed8f 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/NameValue.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/NameValue.java @@ -15,17 +15,10 @@ public class NameValue implements Serializable { private Boolean value; - private String valueT; - private Integer usage; // 单位 MB public NameValue(String name, Boolean value) { this.name = name; this.value = value; } - - public NameValue(String name, String valueT) { - this.name = name; - this.valueT = valueT; - } } diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/DbItem.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/DbItem.java new file mode 100644 index 00000000..bdf828f5 --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/DbItem.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.base.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum DbItem { + DBMEMORY("dbMemory"), + LOGREMAININGSIZE("logRemainingSize"), + DBSIZE("dblSize"); + + private final String value; +} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/aspect/StatusAspect.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/aspect/StatusAspect.java index 0badcbbe..6bd1cf5a 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/aspect/StatusAspect.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/aspect/StatusAspect.java @@ -2,6 +2,7 @@ package org.jeecg.modules.aspect; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.ListUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjectUtil; @@ -103,8 +104,7 @@ public class StatusAspect { databaseService.status2Redis(database); String token = ManageUtil.getToken(); Page hostPage = monitorAlarm.dbList(null, 1, 99, token).getResult(); - if (ObjectUtil.isNull(hostPage) || CollUtil.isEmpty(hostPage.getRecords())) - return; + if (ObjectUtil.isNull(hostPage) || CollUtil.isEmpty(hostPage.getRecords())) return; List hosts = hostPage.getRecords(); String name = database.getName(); Host host = null; @@ -112,8 +112,7 @@ public class StatusAspect { if (StrUtil.equals(name, oneHost.getCode())) host = oneHost; } - if (ObjectUtil.isNull(host)) - return; + if (ObjectUtil.isNull(host)) return; // 更新数据源的HostId database.setHostId(host.getHostId()); databaseService.updateById(database); @@ -127,7 +126,7 @@ public class StatusAspect { /* * 新增|修改服务器信息后 异步更新其状态信息 - * 更新服务器的状态(-1:未知 1:正常 2:离线 3:告警)和它对应的系统监控的HostId + * 更新服务器的状态(1:正常 2:离线 3:告警)和它对应的系统监控的HostId * */ @Async @AfterReturning("execution(* org.jeecg.modules.service.impl.SysServerServiceImpl.update(..)) || " + @@ -136,7 +135,7 @@ public class StatusAspect { Object[] args = point.getArgs(); if (ArrayUtil.length(args) == 0) return; String key = RedisConstant.SERVER_STATUS; - String status = ServerStatus.OFF.getValue(); + Boolean online = null; SysServer server = (SysServer) args[0]; String id = server.getId(); String name = server.getName(); @@ -146,7 +145,7 @@ public class StatusAspect { Page hostPage = monitorAlarm.listApp(ipAddress, MonitorConstant.SERVER_APP, MonitorConstant.pageNo, MonitorConstant.pageSize, token).getResult(); if (ObjectUtil.isNull(hostPage) || CollUtil.isEmpty(hostPage.getRecords())){ - redisUtil.hset(key, id, new NameValue(name, status)); + redisUtil.hset(key, id, new NameValue(name, online)); return; } List hosts = hostPage.getRecords(); @@ -156,12 +155,14 @@ public class StatusAspect { host = oneHost; } if (ObjectUtil.isNull(host)){ - redisUtil.hset(key, id, new NameValue(name, status)); + redisUtil.hset(key, id, new NameValue(name, online)); return; } // 更新该服务器状态信息 - status = host.getStatus(); - redisUtil.hset(key, id, new NameValue(name, status)); + String status = host.getStatus(); + online = CollUtil.contains(ListUtil.toList(ServerStatus.ON.getValue(), + ServerStatus.WARN.getValue()), status); + redisUtil.hset(key, id, new NameValue(name, online)); // 更新该服务器的HostId server.setHostId(host.getHostId()); serverService.updateById(server); diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysDatabaseServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysDatabaseServiceImpl.java index 1675fee8..3b1298b2 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysDatabaseServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysDatabaseServiceImpl.java @@ -2,24 +2,33 @@ package org.jeecg.modules.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ReUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import feign.FeignException; +import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.*; import org.jeecg.common.constant.enums.DbType; import org.jeecg.common.system.vo.DictModel; import org.jeecg.common.util.JDBCUtil; +import org.jeecg.common.util.NumUtil; import org.jeecg.common.util.RedisUtil; import org.jeecg.common.util.SpringContextUtils; import org.jeecg.modules.base.dto.*; +import org.jeecg.modules.base.entity.monitor.Host; +import org.jeecg.modules.base.entity.monitor.Item; import org.jeecg.modules.base.entity.postgre.SysDatabase; import org.jeecg.modules.base.bizVo.SourceVo; +import org.jeecg.modules.base.enums.DbItem; import org.jeecg.modules.entity.AlarmHistory; +import org.jeecg.modules.feignclient.ManageUtil; +import org.jeecg.modules.feignclient.MonitorAlarm; import org.jeecg.modules.feignclient.SystemClient; import org.jeecg.modules.mapper.DBRowMapper; import org.jeecg.modules.mapper.SpaceRowMapper; @@ -40,7 +49,7 @@ import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import static org.jeecg.common.constant.enums.DbType.*; - +@Slf4j @Service("sysDatabaseService") public class SysDatabaseServiceImpl extends ServiceImpl implements ISysDatabaseService { @@ -50,6 +59,9 @@ public class SysDatabaseServiceImpl extends ServiceImpl findPage(QueryRequest query) { Integer pageNo = query.getPageNo(); @@ -72,23 +84,53 @@ public class SysDatabaseServiceImpl extends ServiceImpl statusMap = redisUtil.hmget(statusKey); + // 向运管系统查询数据库相关指标信息 + Map dbMap = new HashMap<>(); + try { + String token = ManageUtil.getToken(); + Page dbPage = monitorAlarm.dbList(null, 1, 99, token).getResult(); + if (ObjectUtil.isNotNull(dbPage) && CollUtil.isNotEmpty(dbPage.getRecords())) + dbMap = dbPage.getRecords().stream().collect(Collectors.toMap(Host::getName, host -> host)); + }catch (FeignException.Unauthorized e){ + ManageUtil.refreshToken(); + log.warn("向运管系统查询DB信息异常: Token失效,已刷新Token"); + }catch (Exception e){ + log.error("向运管系统查询DB信息异常: {}", e.getMessage()); + } for (DatabaseDto databaseDto : databaseDtos) { boolean online = false; String id = databaseDto.getId(); String type = databaseDto.getType(); + String name = databaseDto.getName(); Integer alarms = databaseDto.getAlarms(); boolean alarmRed = ObjectUtil.isNotNull(alarms) && alarms > 0; NameValue nameValue = (NameValue) statusMap.get(id); if (ObjectUtil.isNotNull(nameValue)){ Boolean value = nameValue.getValue(); - if (ObjectUtil.isNotNull(value)) - online = value; + if (ObjectUtil.isNotNull(value)) online = value; } String dataBaseType = dataSourceMap.get(type); databaseDto.setDataBaseType(dataBaseType) - .setOnline(online).setSlowQuery("328/s") - .setAlarmRed(alarmRed).setCpuUutilzation("35.8%") - .setMemoryUsage("55.8%").setDiskUsage("35.6%"); + .setAlarmRed(alarmRed).setOnline(online); + + // 获取数据库指标信息 + Host db = dbMap.get(name); + if (ObjectUtil.isNull(db)) continue; + if (!online) continue; + Map itemMap = db.getItems(); + if (MapUtil.isEmpty(itemMap)) continue; + // dbMemory kb -> GB + Item item = itemMap.get(DbItem.DBMEMORY.getValue()); + if (ObjectUtil.isNotNull(item)) + databaseDto.setDbMemory(NumUtil.kb2Gb(item.getLastValue(), 2)); + // logRemainingSize byte -> MB + item = itemMap.get(DbItem.LOGREMAININGSIZE.getValue()); + if (ObjectUtil.isNotNull(item)) + databaseDto.setLogRemainingSize(NumUtil.byte2Mb(item.getLastValue(), 2)); + // dbSize byte -> GB + item = itemMap.get(DbItem.DBSIZE.getValue()); + if (ObjectUtil.isNotNull(item)) + databaseDto.setDbSize(NumUtil.byte2Gb(item.getLastValue(), 2)); } page.setRecords(databaseDtos); return Result.OK(page); diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysServerServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysServerServiceImpl.java index 9670a63c..2f77e1b1 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysServerServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysServerServiceImpl.java @@ -2,6 +2,7 @@ package org.jeecg.modules.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.ListUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; @@ -100,13 +101,10 @@ public class SysServerServiceImpl extends ServiceImpl 0); // 设置服务器状态信息 NameValue nameValue = (NameValue) statusMap.get(id); - String status = OFF.getValue(); - if (ObjectUtil.isNotNull(nameValue)){ - String valueT = nameValue.getValueT(); - if (StrUtil.isNotBlank(valueT)) - status = valueT; - } - boolean online = StrUtil.equals(status, ON.getValue()); + Boolean value = null; + if (ObjectUtil.isNotNull(nameValue)) + value = nameValue.getValue(); + boolean online = ObjectUtil.isNotNull(value) && value; // 设置服务器的硬件使用情况信息 Host host = hostMap.get(hostId); if (ObjectUtil.isNull(host)) @@ -123,7 +121,6 @@ public class SysServerServiceImpl extends ServiceImpl hostMap = hosts.stream().collect(Collectors.toMap(Host::getHostId, Host -> Host)); for (SysServer server : sysServers) { + Boolean online = null; String hostId = server.getHostId(); String name = server.getName(); String serverId = server.getId(); @@ -379,11 +377,13 @@ public class SysServerServiceImpl extends ServiceImpl Date: Mon, 5 Feb 2024 09:00:24 +0800 Subject: [PATCH 006/133] =?UTF-8?q?=E6=96=B0=E5=A2=9Eapp=E5=BE=AE=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jeecg-module-app/pom.xml | 33 ++++++++++++ jeecg-server-cloud/armd-app-start/pom.xml | 41 +++++++++++++++ .../java/org/jeecg/JeecgAppProcessStart.java | 50 +++++++++++++++++++ jeecg-server-cloud/pom.xml | 1 + pom.xml | 6 +++ 5 files changed, 131 insertions(+) create mode 100644 jeecg-module-app/pom.xml create mode 100644 jeecg-server-cloud/armd-app-start/pom.xml create mode 100644 jeecg-server-cloud/armd-app-start/src/main/java/org/jeecg/JeecgAppProcessStart.java diff --git a/jeecg-module-app/pom.xml b/jeecg-module-app/pom.xml new file mode 100644 index 00000000..867eeebc --- /dev/null +++ b/jeecg-module-app/pom.xml @@ -0,0 +1,33 @@ + + + 4.0.0 + + org.jeecgframework.boot + jeecg-boot-parent + 3.5.1 + + + jeecg-module-app + + + 8 + 8 + UTF-8 + + + + + + org.jeecgframework.boot + jeecg-boot-starter-cloud + + + + org.jeecgframework.boot + jeecg-boot-base-core + + + + \ No newline at end of file diff --git a/jeecg-server-cloud/armd-app-start/pom.xml b/jeecg-server-cloud/armd-app-start/pom.xml new file mode 100644 index 00000000..42cec071 --- /dev/null +++ b/jeecg-server-cloud/armd-app-start/pom.xml @@ -0,0 +1,41 @@ + + + 4.0.0 + + org.jeecgframework.boot + jeecg-boot-parent + 3.5.1 + ../../pom.xml + + + armd-app-start + + + 8 + 8 + UTF-8 + + + + + + org.jeecgframework.boot + jeecg-boot-starter-cloud + + + + org.jeecgframework.boot + jeecg-boot-base-core + + + + + org.jeecgframework.boot + jeecg-module-app + 3.5.1 + + + + \ No newline at end of file diff --git a/jeecg-server-cloud/armd-app-start/src/main/java/org/jeecg/JeecgAppProcessStart.java b/jeecg-server-cloud/armd-app-start/src/main/java/org/jeecg/JeecgAppProcessStart.java new file mode 100644 index 00000000..ec5cac4e --- /dev/null +++ b/jeecg-server-cloud/armd-app-start/src/main/java/org/jeecg/JeecgAppProcessStart.java @@ -0,0 +1,50 @@ +package org.jeecg; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.util.oConvertUtils; +import org.springframework.boot.CommandLineRunner; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.core.env.Environment; +import org.springframework.scheduling.annotation.EnableScheduling; + +import java.net.InetAddress; +import java.net.UnknownHostException; + +@Slf4j +@SpringBootApplication +@EnableFeignClients(basePackages = {"org.jeecg"}) +@EnableScheduling +@RequiredArgsConstructor +public class JeecgAppProcessStart extends SpringBootServletInitializer implements CommandLineRunner { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(JeecgAppProcessStart.class); + } + + public static void main(String[] args) throws UnknownHostException { + ConfigurableApplicationContext application = SpringApplication.run(JeecgAppProcessStart.class, args); + Environment env = application.getEnvironment(); + String ip = InetAddress.getLocalHost().getHostAddress(); + String port = env.getProperty("server.port"); + String path = oConvertUtils.getString(env.getProperty("server.servlet.context-path")); + log.info("\n----------------------------------------------------------\n\t" + + "Application Jeecg-Boot is running! Access URLs:\n\t" + + "Local: \t\thttp://localhost:" + port + path + "/doc.html\n" + + "External: \thttp://" + ip + ":" + port + path + "/doc.html\n" + + "Swagger文档: \thttp://" + ip + ":" + port + path + "/doc.html\n" + + "----------------------------------------------------------"); + } + + @Override + public void run(String... args) throws Exception { + + } + +} diff --git a/jeecg-server-cloud/pom.xml b/jeecg-server-cloud/pom.xml index 5c14dcd0..19119eec 100644 --- a/jeecg-server-cloud/pom.xml +++ b/jeecg-server-cloud/pom.xml @@ -27,6 +27,7 @@ armd-abnormal-alarm-start armd-auto-process-start armd-spectrum-analysis-start + armd-app-start \ No newline at end of file diff --git a/pom.xml b/pom.xml index 775a8acb..c9ea61f1 100644 --- a/pom.xml +++ b/pom.xml @@ -85,6 +85,7 @@ jeecg-module-auto-process jeecg-module-spectrum-analysis jeecg-module-beta-gamma-analyser + jeecg-module-app @@ -202,6 +203,11 @@ jeecg-module-spectrum-analysis ${jeecgboot.version} + + org.jeecgframework.boot + jeecg-module-app + ${jeecgboot.version} + org.jeecgframework.boot From aade2160f0591bf018a96ef972509cf108967579 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 5 Feb 2024 09:02:20 +0800 Subject: [PATCH 007/133] =?UTF-8?q?=E6=96=B0=E5=A2=9Eapp=E5=BE=AE=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E6=A8=A1=E5=9D=97=20=E6=96=B0=E5=A2=9Eapp=E5=BE=AE?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E6=A8=A1=E5=9D=97=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application.yml | 19 +++++ .../src/main/resources/logback-spring.xml | 84 +++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 jeecg-server-cloud/armd-app-start/src/main/resources/application.yml create mode 100644 jeecg-server-cloud/armd-app-start/src/main/resources/logback-spring.xml diff --git a/jeecg-server-cloud/armd-app-start/src/main/resources/application.yml b/jeecg-server-cloud/armd-app-start/src/main/resources/application.yml new file mode 100644 index 00000000..75b1abd2 --- /dev/null +++ b/jeecg-server-cloud/armd-app-start/src/main/resources/application.yml @@ -0,0 +1,19 @@ +server: + port: 7008 + +spring: + application: + name: armd-app + cloud: + nacos: + config: + server-addr: @config.server-addr@ + group: @config.group@ + namespace: @config.namespace@ + discovery: + server-addr: ${spring.cloud.nacos.config.server-addr} + config: + import: + - optional:nacos:armd.yaml + - optional:nacos:armd-@profile.name@.yaml + - optional:nacos:armd-analysis-@profile.name@.yaml diff --git a/jeecg-server-cloud/armd-app-start/src/main/resources/logback-spring.xml b/jeecg-server-cloud/armd-app-start/src/main/resources/logback-spring.xml new file mode 100644 index 00000000..0c933f63 --- /dev/null +++ b/jeecg-server-cloud/armd-app-start/src/main/resources/logback-spring.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{50}:%L) - %msg%n + + + + + + + + ${LOG_HOME}/app-%d{yyyy-MM-dd}.%i.log + + 30 + 10MB + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n + + + + + + + + ERROR + + + + ${ERROR_LOG_HOME}/app-error-%d{yyyy-MM-dd}.%i.html + + 30 + 10MB + + + + %p%d%msg%M%F{32}%L + + + + + + + + + + ${LOG_HOME}/app-%d{yyyy-MM-dd}.%i.html + + 30 + 10MB + + + + %p%d%msg%M%F{32}%L + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From a3c7b9357264c8dfb754257ef07a80fe5e7c54d3 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 5 Feb 2024 09:17:17 +0800 Subject: [PATCH 008/133] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=9F=BA=E7=A1=80?= =?UTF-8?q?=E7=9A=84Controller=E5=92=8CService=E5=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/modules/controller/AlarmController.java | 4 ++++ .../java/org/jeecg/modules/controller/AnalysisController.java | 4 ++++ .../java/org/jeecg/modules/controller/LoginController.java | 4 ++++ .../java/org/jeecg/modules/controller/MessageController.java | 4 ++++ .../java/org/jeecg/modules/controller/StationController.java | 4 ++++ .../main/java/org/jeecg/modules/controller/WebController.java | 4 ++++ .../src/main/java/org/jeecg/modules/service/AlarmService.java | 4 ++++ .../main/java/org/jeecg/modules/service/AnalysisService.java | 4 ++++ .../src/main/java/org/jeecg/modules/service/LoginService.java | 4 ++++ .../main/java/org/jeecg/modules/service/MessageService.java | 4 ++++ .../main/java/org/jeecg/modules/service/StationService.java | 4 ++++ .../src/main/java/org/jeecg/modules/service/WebService.java | 4 ++++ 12 files changed, 48 insertions(+) create mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/controller/AlarmController.java create mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/controller/AnalysisController.java create mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/controller/LoginController.java create mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java create mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/controller/StationController.java create mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/controller/WebController.java create mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/service/AlarmService.java create mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/service/AnalysisService.java create mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/service/LoginService.java create mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/service/MessageService.java create mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/service/StationService.java create mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/service/WebService.java diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AlarmController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AlarmController.java new file mode 100644 index 00000000..b7e2857c --- /dev/null +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AlarmController.java @@ -0,0 +1,4 @@ +package org.jeecg.modules.controller; + +public class AlarmController { +} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AnalysisController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AnalysisController.java new file mode 100644 index 00000000..896765a4 --- /dev/null +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AnalysisController.java @@ -0,0 +1,4 @@ +package org.jeecg.modules.controller; + +public class AnalysisController { +} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/LoginController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/LoginController.java new file mode 100644 index 00000000..0aa9822a --- /dev/null +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/LoginController.java @@ -0,0 +1,4 @@ +package org.jeecg.modules.controller; + +public class LoginController { +} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java new file mode 100644 index 00000000..596fe88e --- /dev/null +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java @@ -0,0 +1,4 @@ +package org.jeecg.modules.controller; + +public class MessageController { +} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/StationController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/StationController.java new file mode 100644 index 00000000..cc1b740e --- /dev/null +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/StationController.java @@ -0,0 +1,4 @@ +package org.jeecg.modules.controller; + +public class StationController { +} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/WebController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/WebController.java new file mode 100644 index 00000000..785c0eb5 --- /dev/null +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/WebController.java @@ -0,0 +1,4 @@ +package org.jeecg.modules.controller; + +public class WebController { +} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/service/AlarmService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/service/AlarmService.java new file mode 100644 index 00000000..20f719ce --- /dev/null +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/service/AlarmService.java @@ -0,0 +1,4 @@ +package org.jeecg.modules.service; + +public interface AlarmService { +} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/service/AnalysisService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/service/AnalysisService.java new file mode 100644 index 00000000..f691ddc8 --- /dev/null +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/service/AnalysisService.java @@ -0,0 +1,4 @@ +package org.jeecg.modules.service; + +public interface AnalysisService { +} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/service/LoginService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/service/LoginService.java new file mode 100644 index 00000000..9b217606 --- /dev/null +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/service/LoginService.java @@ -0,0 +1,4 @@ +package org.jeecg.modules.service; + +public interface LoginService { +} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/service/MessageService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/service/MessageService.java new file mode 100644 index 00000000..41695aa2 --- /dev/null +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/service/MessageService.java @@ -0,0 +1,4 @@ +package org.jeecg.modules.service; + +public interface MessageService { +} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/service/StationService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/service/StationService.java new file mode 100644 index 00000000..a0d8afd3 --- /dev/null +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/service/StationService.java @@ -0,0 +1,4 @@ +package org.jeecg.modules.service; + +public interface StationService { +} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/service/WebService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/service/WebService.java new file mode 100644 index 00000000..79e1625c --- /dev/null +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/service/WebService.java @@ -0,0 +1,4 @@ +package org.jeecg.modules.service; + +public interface WebService { +} From 9e2a90bb51317955e5a46f50cbed742aea7a6cc9 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Mon, 5 Feb 2024 10:24:32 +0800 Subject: [PATCH 009/133] fix --- .../src/main/java/org/jeecg/common/util/FTPUtil.java | 4 +++- .../main/java/org/jeecg/modules/base/enums/DbItem.java | 2 +- .../modules/service/impl/SysDatabaseServiceImpl.java | 9 ++++++--- .../org/jeecg/modules/controller/AlarmController.java | 7 +++++++ .../org/jeecg/modules/controller/LoginController.java | 7 +++++++ .../java/org/jeecg/modules/controller/WebController.java | 7 +++++++ .../java/org/jeecg/modules/service/LoginService.java | 7 +++++++ pom.xml | 2 +- 8 files changed, 39 insertions(+), 6 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java index dde61ecb..0bb70f56 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java @@ -372,7 +372,9 @@ public class FTPUtil { try { if (StrUtil.isBlank(path)) continue; boolean success = ftpClient.deleteFile(path); - if (!success) failList.add(path); + if (success) continue; + failList.add(path); + log.error("FTPUtil.removeFiles()删除文件[{}]失败", path); } catch (Exception e) { failList.add(path); log.error("FTPUtil.removeFiles()删除文件[{}]失败: {}", path, e.getMessage()); diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/DbItem.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/DbItem.java index bdf828f5..b060735e 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/DbItem.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/DbItem.java @@ -8,7 +8,7 @@ import lombok.Getter; public enum DbItem { DBMEMORY("dbMemory"), LOGREMAININGSIZE("logRemainingSize"), - DBSIZE("dblSize"); + DBLSIZE("dblSize"), DBSIZE("dbSize"); private final String value; } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysDatabaseServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysDatabaseServiceImpl.java index 3b1298b2..1f004d52 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysDatabaseServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysDatabaseServiceImpl.java @@ -19,7 +19,6 @@ import org.jeecg.common.system.vo.DictModel; import org.jeecg.common.util.JDBCUtil; import org.jeecg.common.util.NumUtil; import org.jeecg.common.util.RedisUtil; -import org.jeecg.common.util.SpringContextUtils; import org.jeecg.modules.base.dto.*; import org.jeecg.modules.base.entity.monitor.Host; import org.jeecg.modules.base.entity.monitor.Item; @@ -33,7 +32,6 @@ import org.jeecg.modules.feignclient.SystemClient; import org.jeecg.modules.mapper.DBRowMapper; import org.jeecg.modules.mapper.SpaceRowMapper; import org.jeecg.modules.mapper.SysDatabaseMapper; -import org.jeecg.modules.service.IAlarmRuleService; import org.jeecg.modules.service.ISysDatabaseService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; @@ -129,8 +127,13 @@ public class SysDatabaseServiceImpl extends ServiceImpl GB item = itemMap.get(DbItem.DBSIZE.getValue()); - if (ObjectUtil.isNotNull(item)) + if (ObjectUtil.isNotNull(item)){ databaseDto.setDbSize(NumUtil.byte2Gb(item.getLastValue(), 2)); + }else { + item = itemMap.get(DbItem.DBLSIZE.getValue()); + if (ObjectUtil.isNotNull(item)) + databaseDto.setDbSize(NumUtil.byte2Gb(item.getLastValue(), 2)); + } } page.setRecords(databaseDtos); return Result.OK(page); diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AlarmController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AlarmController.java index b7e2857c..23f7cdc4 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AlarmController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AlarmController.java @@ -1,4 +1,11 @@ package org.jeecg.modules.controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("") public class AlarmController { + + } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/LoginController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/LoginController.java index 0aa9822a..97883e0e 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/LoginController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/LoginController.java @@ -1,4 +1,11 @@ package org.jeecg.modules.controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("") public class LoginController { + + } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/WebController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/WebController.java index 785c0eb5..acfee84f 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/WebController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/WebController.java @@ -1,4 +1,11 @@ package org.jeecg.modules.controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("") public class WebController { + + } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/service/LoginService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/service/LoginService.java index 9b217606..aa56963f 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/service/LoginService.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/service/LoginService.java @@ -1,4 +1,11 @@ package org.jeecg.modules.service; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.stereotype.Component; + +@Component +@FeignClient("armd-system") public interface LoginService { + + } diff --git a/pom.xml b/pom.xml index c9ea61f1..1e8a9549 100644 --- a/pom.xml +++ b/pom.xml @@ -86,7 +86,7 @@ jeecg-module-spectrum-analysis jeecg-module-beta-gamma-analyser jeecg-module-app - + From c98fcfb656c40d74b757a1169c257459cc3f5897 Mon Sep 17 00:00:00 2001 From: orgin Date: Mon, 5 Feb 2024 12:54:28 +0800 Subject: [PATCH 010/133] =?UTF-8?q?fix:app=E6=A8=A1=E5=9D=97=20system?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/controller/LoginController.java | 57 ++++++++++++++++++- .../jeecg/modules/model/SysLoginModel.java | 55 ++++++++++++++++++ .../jeecg/modules/service/LoginService.java | 37 +++++++++++- 3 files changed, 146 insertions(+), 3 deletions(-) create mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/model/SysLoginModel.java diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/LoginController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/LoginController.java index 97883e0e..8cbb320a 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/LoginController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/LoginController.java @@ -1,11 +1,64 @@ package org.jeecg.modules.controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.ApiOperation; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.CacheConstant; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.system.util.JwtUtil; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.PasswordUtil; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.base.entity.postgre.SysDepart; +import org.jeecg.modules.base.entity.postgre.SysUser; +import org.jeecg.modules.model.SysLoginModel; +import org.jeecg.modules.service.LoginService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.List; @RestController @RequestMapping("") public class LoginController { + @Autowired + private LoginService loginService; + /** + * app登录 + * @param sysLoginModel + * @return + * @throws Exception + */ + @RequestMapping(value = "/mLogin", method = RequestMethod.POST) + public Result mLogin(@RequestBody SysLoginModel sysLoginModel) { + return loginService.mLogin(sysLoginModel); + } + + /** + * 退出登录 + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/logout") + public Result logout(HttpServletRequest request, HttpServletResponse response) { + //用户退出逻辑 + return loginService.logout(request, response); + } + + /** + * 后台生成图形验证码 :有效 + * @param response + * @param key + */ + @ApiOperation("获取验证码") + @GetMapping(value = "/randomImage/{key}") + public Result randomImage(HttpServletResponse response,@PathVariable("key") String key) { + return loginService.randomImage(response, key); + } } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/model/SysLoginModel.java b/jeecg-module-app/src/main/java/org/jeecg/modules/model/SysLoginModel.java new file mode 100644 index 00000000..859a71dc --- /dev/null +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/model/SysLoginModel.java @@ -0,0 +1,55 @@ +package org.jeecg.modules.model; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * 登录表单 + * + * @Author scott + * @since 2019-01-18 + */ +@ApiModel(value="登录对象", description="登录对象") +public class SysLoginModel { + @ApiModelProperty(value = "账号") + private String username; + @ApiModelProperty(value = "密码") + private String password; + @ApiModelProperty(value = "验证码") + private String captcha; + @ApiModelProperty(value = "验证码key") + private String checkKey; + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getCaptcha() { + return captcha; + } + + public void setCaptcha(String captcha) { + this.captcha = captcha; + } + + public String getCheckKey() { + return checkKey; + } + + public void setCheckKey(String checkKey) { + this.checkKey = checkKey; + } + +} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/service/LoginService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/service/LoginService.java index aa56963f..b755cd72 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/service/LoginService.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/service/LoginService.java @@ -1,11 +1,46 @@ package org.jeecg.modules.service; +import com.alibaba.fastjson.JSONObject; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.base.entity.postgre.SysEmail; +import org.jeecg.modules.model.SysLoginModel; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; @Component -@FeignClient("armd-system") +@FeignClient(value = "armd-system", path = "/sys") public interface LoginService { + /** + * 登录 + * @return + */ + @GetMapping("/mLogin") + Result mLogin(SysLoginModel sysLoginModel); + /** + * 登出 + * @return + */ + @GetMapping("/logout") + Result logout(HttpServletRequest request, HttpServletResponse response); + + /** + * 图形验证码 + */ + @GetMapping("/randomImage/{key}") + Result randomImage(HttpServletResponse response,@PathVariable("key") String key); + + /** + * 图形验证码 + * @return + */ + @PostMapping("/checkCaptcha") + Result checkCaptcha(); } From bc55ad61b65b076dc6edcd86a8becd94f03fb5e7 Mon Sep 17 00:00:00 2001 From: orgin Date: Mon, 5 Feb 2024 12:57:43 +0800 Subject: [PATCH 011/133] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E5=8C=85?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/controller/LoginController.java | 20 +++++-------------- .../modules/feignclient/AlarmService.java | 4 ++++ .../modules/feignclient/AnalysisService.java | 4 ++++ .../modules/feignclient/MessageService.java | 4 ++++ .../modules/feignclient/StationService.java | 4 ++++ .../SystemClient.java} | 5 ++--- .../jeecg/modules/feignclient/WebService.java | 15 ++++++++++++++ .../jeecg/modules/service/AlarmService.java | 4 ---- .../modules/service/AnalysisService.java | 4 ---- .../jeecg/modules/service/MessageService.java | 4 ---- .../jeecg/modules/service/StationService.java | 4 ---- .../org/jeecg/modules/service/WebService.java | 4 ---- 12 files changed, 38 insertions(+), 38 deletions(-) create mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AlarmService.java create mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AnalysisService.java create mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java create mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/StationService.java rename jeecg-module-app/src/main/java/org/jeecg/modules/{service/LoginService.java => feignclient/SystemClient.java} (90%) create mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/WebService.java delete mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/service/AlarmService.java delete mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/service/AnalysisService.java delete mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/service/MessageService.java delete mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/service/StationService.java delete mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/service/WebService.java diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/LoginController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/LoginController.java index 8cbb320a..0d93fafe 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/LoginController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/LoginController.java @@ -2,31 +2,21 @@ package org.jeecg.modules.controller; import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.ApiOperation; -import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; -import org.jeecg.common.constant.CacheConstant; -import org.jeecg.common.constant.CommonConstant; -import org.jeecg.common.system.util.JwtUtil; -import org.jeecg.common.system.vo.LoginUser; -import org.jeecg.common.util.PasswordUtil; -import org.jeecg.common.util.oConvertUtils; -import org.jeecg.modules.base.entity.postgre.SysDepart; -import org.jeecg.modules.base.entity.postgre.SysUser; import org.jeecg.modules.model.SysLoginModel; -import org.jeecg.modules.service.LoginService; +import org.jeecg.modules.feignclient.SystemClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.util.List; @RestController @RequestMapping("") public class LoginController { @Autowired - private LoginService loginService; + private SystemClient systemClient; /** * app登录 @@ -36,7 +26,7 @@ public class LoginController { */ @RequestMapping(value = "/mLogin", method = RequestMethod.POST) public Result mLogin(@RequestBody SysLoginModel sysLoginModel) { - return loginService.mLogin(sysLoginModel); + return systemClient.mLogin(sysLoginModel); } /** @@ -48,7 +38,7 @@ public class LoginController { @RequestMapping(value = "/logout") public Result logout(HttpServletRequest request, HttpServletResponse response) { //用户退出逻辑 - return loginService.logout(request, response); + return systemClient.logout(request, response); } /** @@ -59,6 +49,6 @@ public class LoginController { @ApiOperation("获取验证码") @GetMapping(value = "/randomImage/{key}") public Result randomImage(HttpServletResponse response,@PathVariable("key") String key) { - return loginService.randomImage(response, key); + return systemClient.randomImage(response, key); } } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AlarmService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AlarmService.java new file mode 100644 index 00000000..47cd76a7 --- /dev/null +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AlarmService.java @@ -0,0 +1,4 @@ +package org.jeecg.modules.feignclient; + +public interface AlarmService { +} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AnalysisService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AnalysisService.java new file mode 100644 index 00000000..0bd39e0e --- /dev/null +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AnalysisService.java @@ -0,0 +1,4 @@ +package org.jeecg.modules.feignclient; + +public interface AnalysisService { +} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java new file mode 100644 index 00000000..04d29c4c --- /dev/null +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java @@ -0,0 +1,4 @@ +package org.jeecg.modules.feignclient; + +public interface MessageService { +} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/StationService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/StationService.java new file mode 100644 index 00000000..630b5152 --- /dev/null +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/StationService.java @@ -0,0 +1,4 @@ +package org.jeecg.modules.feignclient; + +public interface StationService { +} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/service/LoginService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/SystemClient.java similarity index 90% rename from jeecg-module-app/src/main/java/org/jeecg/modules/service/LoginService.java rename to jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/SystemClient.java index b755cd72..5f87e85e 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/service/LoginService.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/SystemClient.java @@ -1,8 +1,7 @@ -package org.jeecg.modules.service; +package org.jeecg.modules.feignclient; import com.alibaba.fastjson.JSONObject; import org.jeecg.common.api.vo.Result; -import org.jeecg.modules.base.entity.postgre.SysEmail; import org.jeecg.modules.model.SysLoginModel; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.stereotype.Component; @@ -15,7 +14,7 @@ import javax.servlet.http.HttpServletResponse; @Component @FeignClient(value = "armd-system", path = "/sys") -public interface LoginService { +public interface SystemClient { /** * 登录 diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/WebService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/WebService.java new file mode 100644 index 00000000..94bc614d --- /dev/null +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/WebService.java @@ -0,0 +1,15 @@ +package org.jeecg.modules.feignclient; + +import com.alibaba.fastjson.JSONObject; +import org.jeecg.common.api.vo.Result; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.GetMapping; + +@Component +@FeignClient(value = "armd-web-statistics", path = "/sys") +public interface WebService { + + @GetMapping("/webStatistics/findStationList") + Result findStationList(); +} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/service/AlarmService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/service/AlarmService.java deleted file mode 100644 index 20f719ce..00000000 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/service/AlarmService.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.jeecg.modules.service; - -public interface AlarmService { -} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/service/AnalysisService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/service/AnalysisService.java deleted file mode 100644 index f691ddc8..00000000 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/service/AnalysisService.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.jeecg.modules.service; - -public interface AnalysisService { -} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/service/MessageService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/service/MessageService.java deleted file mode 100644 index 41695aa2..00000000 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/service/MessageService.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.jeecg.modules.service; - -public interface MessageService { -} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/service/StationService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/service/StationService.java deleted file mode 100644 index a0d8afd3..00000000 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/service/StationService.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.jeecg.modules.service; - -public interface StationService { -} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/service/WebService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/service/WebService.java deleted file mode 100644 index 79e1625c..00000000 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/service/WebService.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.jeecg.modules.service; - -public interface WebService { -} From 01fd821a10490836dc4353c3d05cecca4de04639 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 5 Feb 2024 12:57:52 +0800 Subject: [PATCH 012/133] =?UTF-8?q?DATA=5FBASE=E5=88=A0=E9=99=A4=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=97=B6=EF=BC=8C=E5=9B=A0=E4=B8=BA=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=E9=97=AE=E9=A2=98=E6=8F=90=E7=A4=BA=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=A4=B1=E8=B4=A5=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 --- .../java/org/jeecg/common/util/FTPUtil.java | 59 +++++++++++++++++-- .../jeecg/modules/base/dto/AnalysesDto.java | 2 + .../system/mapper/GardsSampleDataMapper.java | 2 +- .../mapper/xml/GardsSampleDataMapper.xml | 11 ++-- .../impl/GardsSampleDataServiceImpl.java | 49 +++++++++------ 5 files changed, 93 insertions(+), 30 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java index 0bb70f56..cb3427fd 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java @@ -356,6 +356,45 @@ public class FTPUtil { } } + /* + * 批量删除FTP文件 返回删除失败的文件路径 + * */ + public boolean removeFiles(String path){ + boolean success = false; + // 连接FTP服务 + final FTPClient ftpClient = this.LoginFTP(); + //判断ftp是否连接成功 + if (ObjectUtil.isNull(ftpClient)){ + log.error("FTPUtil.removeFiles(): FTPClient is null"); + } + InputStream inputStream = null; + try { + inputStream = ftpClient.retrieveFileStream(path); + //读取文件路径的流 如果文件存在则读取流数据不为空 + if (Objects.nonNull(inputStream)) { + //删除文件 + success = ftpClient.deleteFile(path); + } + //日志输出文件删除状态 + log.info(path + " Delete Status:"+success); + } catch (Exception e) { + log.error("FTPUtil.removeFiles()删除文件[{}]失败: {}", path, e.getMessage()); + } finally { + // 关闭FTP连接 + try { + if (Objects.nonNull(inputStream)) { + inputStream.close(); + } + if (ObjectUtil.isNotNull(ftpClient)) { + ftpClient.disconnect(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + return success; + } + /* * 批量删除FTP文件 返回删除失败的文件路径 * */ @@ -369,12 +408,19 @@ public class FTPUtil { return paths; } for (String path : paths) { + boolean success = false; try { - if (StrUtil.isBlank(path)) continue; - boolean success = ftpClient.deleteFile(path); - if (success) continue; - failList.add(path); - log.error("FTPUtil.removeFiles()删除文件[{}]失败", path); + if (StrUtil.isBlank(path)) { + continue; + } + if (Objects.nonNull(ftpClient.retrieveFileStream(path))) { + success = ftpClient.deleteFile(path); + log.info(path + " Delete Status:"+success); + } else { + log.info(path + " Delete Status:false"); + failList.add(path); + log.error("FTPUtil.removeFiles()删除文件[{}]失败", path); + } } catch (Exception e) { failList.add(path); log.error("FTPUtil.removeFiles()删除文件[{}]失败: {}", path, e.getMessage()); @@ -382,8 +428,9 @@ public class FTPUtil { } // 关闭FTP连接 try { - if (ObjectUtil.isNotNull(ftpClient)) + if (ObjectUtil.isNotNull(ftpClient)) { ftpClient.disconnect(); + } } catch (IOException e) { e.printStackTrace(); } diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/AnalysesDto.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/AnalysesDto.java index 7e6ba90d..6db94d0b 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/AnalysesDto.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/AnalysesDto.java @@ -5,6 +5,8 @@ import lombok.Data; @Data public class AnalysesDto { + private Integer sampleId; + private String baselinePath; private String lcPath; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/GardsSampleDataMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/GardsSampleDataMapper.java index fee55dfe..2039e979 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/GardsSampleDataMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/GardsSampleDataMapper.java @@ -19,6 +19,6 @@ public interface GardsSampleDataMapper extends BaseMapper void delBatch(@Param("tableNames") List tableNames, @Param("sampleId") Integer sampleId); - AnalysesDto getAnalysis(@Param("owner") String owner, + List getAnalysis(@Param("owner") String owner, @Param("sampleId") Integer sampleId); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/GardsSampleDataMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/GardsSampleDataMapper.xml index 5f83e28a..55ba83d2 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/GardsSampleDataMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/GardsSampleDataMapper.xml @@ -25,11 +25,12 @@ - SELECT * + SELECT user_id, dep_id FROM sys_user_depart WHERE user_id = #{userId, jdbcType=VARCHAR} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java index 78b1fa25..5356fa85 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java @@ -749,7 +749,8 @@ public class SysUserServiceImpl extends ServiceImpl impl arr = departs.split(","); } //查询已关联部门 - List userDepartList = sysUserDepartMapper.selectList(new QueryWrapper().lambda().eq(SysUserDepart::getUserId, user.getId())); + // List userDepartList = sysUserDepartMapper.selectList(new QueryWrapper().lambda().eq(SysUserDepart::getUserId, user.getId())); + List userDepartList = sysUserDepartMapper.getUserDepartByUid(user.getId()); if(userDepartList != null && userDepartList.size()>0){ for(SysUserDepart depart : userDepartList ){ //修改已关联部门删除部门用户角色关系 From 145d316b970fd248c60f2a3e4337ea801d3447c3 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Tue, 6 Feb 2024 10:34:51 +0800 Subject: [PATCH 017/133] =?UTF-8?q?=E5=A6=82=E6=9E=9Csample=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=90=8C=E6=97=B6=E6=9C=89=E9=87=87=E9=9B=86=E5=BC=80?= =?UTF-8?q?=E5=A7=8B=E6=97=B6=E9=97=B4=E5=92=8C=E9=87=87=E9=9B=86=E7=BB=93?= =?UTF-8?q?=E6=9D=9F=E6=97=B6=E9=97=B4=E5=B0=B1=E8=AE=B0=E5=BD=95=E5=8F=B0?= =?UTF-8?q?=E7=AB=99=E7=9A=84=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/DataReceivingStatusManager.java | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) 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 506ba9df..335d2721 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 @@ -160,16 +160,18 @@ public class DataReceivingStatusManager { } 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() - acquisitionStart.getTime()) / 1000); - dataInfo.setSpanTime(span); - dataInfoList.add(dataInfo); + if (Objects.nonNull(sampleData.getAcquisitionStart()) && Objects.nonNull(sampleData.getAcquisitionStop())) { + //处理开始时间 + 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() - acquisitionStart.getTime()) / 1000); + dataInfo.setSpanTime(span); + dataInfoList.add(dataInfo); + } } } } From de2c72a3ec0a1e1f0c6f3f743418f332cf1555c5 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Tue, 6 Feb 2024 10:40:26 +0800 Subject: [PATCH 018/133] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86?= =?UTF-8?q?=E5=AD=98=E5=82=A8acq=E7=BB=93=E6=9D=9F=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E6=97=B6=EF=BC=8C=E5=A6=82=E6=9E=9CacqRealTi?= =?UTF-8?q?me=3D0=E4=B9=9F=E5=8F=82=E4=B8=8E=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/service/impl/SpectrumBaseBlockServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/SpectrumBaseBlockServiceImpl.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/SpectrumBaseBlockServiceImpl.java index feb78d22..9c33e2f9 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/SpectrumBaseBlockServiceImpl.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/SpectrumBaseBlockServiceImpl.java @@ -85,7 +85,7 @@ public class SpectrumBaseBlockServiceImpl implements ISpectrumBaseBlockService { if(StringUtils.isNotBlank(struct.acquisition_start_date) && StringUtils.isNotBlank(struct.acquisition_start_time)){ gardsSampleData.setAcquisitionStart(DateUtils.parseDate(struct.acquisition_start_date+StringConstant.SPACE+struct.acquisition_start_time)); } - if(Objects.nonNull(gardsSampleData.getAcquisitionStart()) && struct.acquisition_real_time > 0){ + if(Objects.nonNull(gardsSampleData.getAcquisitionStart()) && struct.acquisition_real_time >= 0){ Date acquisitionStop = new Date((long) (gardsSampleData.getAcquisitionStart().getTime()+(struct.acquisition_real_time*1000))); gardsSampleData.setAcquisitionStop(acquisitionStop); } From 12f2f1e23e1f6b84d8ffe194bbb6ff7f5f2a82e6 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 7 Feb 2024 12:29:40 +0800 Subject: [PATCH 019/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E5=85=AC=E5=BC=8F=E6=95=B0=E6=8D=AE=EF=BC=8C?= =?UTF-8?q?det=E7=9B=B8=E5=85=B3=E5=AD=98=E5=82=A8=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=B1=BB=E5=9E=8B=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 --- .../impl/SpectrumAnalysisServiceImpl.java | 64 +++++++++---------- 1 file changed, 31 insertions(+), 33 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 03765e22..1c289c2f 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 @@ -469,8 +469,6 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } //给公用变量赋值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()); @@ -933,9 +931,9 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements if (betaDataFile.isSaveAnalysisResult()) { //对分析后的内容进行数据获取 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 roiChannelsSpectrumsSample = channelsSpectrums.stream().filter(item -> item.getDataType().equalsIgnoreCase(DataTypeAbbr.SAMPLEPHD.getType())).collect(Collectors.toList()); + List roiChannelsSpectrumsGas = channelsSpectrums.stream().filter(item -> item.getDataType().equalsIgnoreCase(DataTypeAbbr.GASBKPHD.getType())).collect(Collectors.toList()); + List roiChannelsSpectrumsDet = channelsSpectrums.stream().filter(item -> item.getDataType().equalsIgnoreCase(DataTypeAbbr.DETBKPHD.getType())).collect(Collectors.toList()); List resultsSpectrums = betaDataFile.getRoiResultsSpectrumList(); List xeResultsSpectrums = betaDataFile.getXeResultsSpectrumList(); for (int i=0; i gammaCalibrationParamList = betaDataFile.getGammaCalibrationSpectrumList(); List gammaCalibrationSpectrumEList = betaDataFile.getGammaCalibrationSpectrumEList(); for (int i=0; i betaCalibrationParamList = betaDataFile.getBetaCalibrationSpectrumList(); List betaCalibrationSpectrumEList = betaDataFile.getBetaCalibrationSpectrumEList(); for (int i=0; i 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 roiChannelsSpectrumsSample = channelsSpectrums.stream().filter(item -> item.getDataType().equalsIgnoreCase(DataTypeAbbr.SAMPLEPHD.getType())).collect(Collectors.toList()); + List roiChannelsSpectrumsGas = channelsSpectrums.stream().filter(item -> item.getDataType().equalsIgnoreCase(DataTypeAbbr.GASBKPHD.getType())).collect(Collectors.toList()); + List roiChannelsSpectrumsDet = channelsSpectrums.stream().filter(item -> item.getDataType().equalsIgnoreCase(DataTypeAbbr.DETBKPHD.getType())).collect(Collectors.toList()); List resultsSpectrums = betaDataFile.getRoiResultsSpectrumList(); List xeResultsSpectrums = betaDataFile.getXeResultsSpectrumList(); for (int i=0; i gammaCalibrationParamList = betaDataFile.getGammaCalibrationSpectrumList(); List gammaCalibrationSpectrumEList = betaDataFile.getGammaCalibrationSpectrumEList(); for (int i=0; i betaCalibrationParamList = betaDataFile.getBetaCalibrationSpectrumList(); List betaCalibrationSpectrumEList = betaDataFile.getBetaCalibrationSpectrumEList(); for (int i=0; i Date: Sun, 18 Feb 2024 15:11:21 +0800 Subject: [PATCH 020/133] =?UTF-8?q?=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?=E7=BB=8F=E8=BF=87=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92=E5=88=86?= =?UTF-8?q?=E6=9E=90=E5=90=8E=E7=9A=84=E7=BB=93=E6=9E=9C=E5=86=8D=E6=AC=A1?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E6=95=B0=E6=8D=AE=E9=94=99=E8=AF=AF=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E6=94=B9=20=E4=BA=BA=E5=B7=A5=E4=BA=A4?= =?UTF-8?q?=E4=BA=92=E5=88=86=E6=9E=90gamma=E9=83=A8=E5=88=86=E5=AD=98?= =?UTF-8?q?=E5=82=A8=E6=96=87=E4=BB=B6=E8=B7=AF=E5=BE=84=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9=20=E4=BA=BA=E5=B7=A5?= =?UTF-8?q?=E4=BA=A4=E4=BA=92=E5=88=86=E6=9E=90gamma=E9=83=A8=E5=88=86?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E6=96=87=E4=BB=B6=E5=90=8D=E9=94=99=E8=AF=AF?= =?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 --- .../java/org/jeecg/common/util/FTPUtil.java | 5 +- .../org/jeecg/common/util/PHDFileUtil.java | 333 +++++++++++++ .../mapper/SpectrumAnalysisMapper.java | 4 +- .../mapper/xml/SpectrumAnalysisMapper.xml | 2 - .../service/impl/GammaServiceImpl.java | 10 +- .../impl/SpectrumAnalysisServiceImpl.java | 440 ++++++++++++++---- 6 files changed, 692 insertions(+), 102 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java index cb3427fd..0e16b41e 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java @@ -256,6 +256,9 @@ public class FTPUtil { log.error("{},根目录切换失败",rootPath); return false; } + if (path.contains(rootPath)) { + path = path.substring(path.indexOf(rootPath) + rootPath.length()); + } String[] directories = path.split("/"); for(String directory : directories){ if(StringUtils.isEmpty(directory)){ @@ -263,7 +266,7 @@ public class FTPUtil { } if(!ftpClient.changeWorkingDirectory(directory)){ if(!ftpClient.makeDirectory(directory)){ - log.error("{},目录创建失败",directory); + log.error("{},目录创建失败",ftpClient.printWorkingDirectory()+StringPool.SLASH+directory); return false; } if(!ftpClient.changeWorkingDirectory(directory)){ 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 82dddbcd..cfb5c2ff 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 @@ -331,6 +331,339 @@ public class PHDFileUtil extends AbstractLogOrReport { return map; } + public void updateBoundary(BetaDataFile betaDataFile, String type, List sampleRoiChannel, Map map) { + List boundaryList = new LinkedList<>(); + for (int i=0; i gammaCalibrationPairs, List betaCalibrationPairs, Map map) { + List channels = new LinkedList<>(); + List> gammaNewEnergyList = new LinkedList<>(); + List> betaNewEnergyList = new LinkedList<>(); + //填充道值数组的数据 + for (int i=0; i<255; i++) { + channels.add(Double.valueOf(i)); + } + //过滤出Gamma对应的表单数据 + List gammaChannelList = gammaCalibrationPairs.stream().map(GardsCalibrationPairsSpectrum::getXValue).collect(Collectors.toList()); + List gammaEnergyList = gammaCalibrationPairs.stream().map(GardsCalibrationPairsSpectrum::getYValue).collect(Collectors.toList()); + //计算gamma对应的数据 + List gammaFittingPara = EnergySpectrumHandler.GetFileFittingPara(gammaChannelList, gammaEnergyList); + //计算道值的能量 + List gammaEnergys = EnergySpectrumHandler.GetFileFittingData(channels,gammaFittingPara); + //将新计算的能量封装到数组 + for (Double calEnergy:gammaEnergys) { + List newEnergy = new LinkedList<>(); + newEnergy.add(calEnergy); + gammaNewEnergyList.add(newEnergy); + } + map.put("gammaEnergyData", gammaNewEnergyList); + + //过滤出Beta对应的表单数据 + List betaChannelList = betaCalibrationPairs.stream().map(GardsCalibrationPairsSpectrum::getXValue).collect(Collectors.toList()); + List betaEnergyList = betaCalibrationPairs.stream().map(GardsCalibrationPairsSpectrum::getYValue).collect(Collectors.toList()); + //计算beta对应的数据 + List betaFittingPara = EnergySpectrumHandler.GetFileFittingPara(betaChannelList, betaEnergyList); + + //计算道值的能量 + List betaEnergys = EnergySpectrumHandler.GetFileFittingData(channels,betaFittingPara); + //将新计算的能量封装到数组 + for (Double calEnergy:betaEnergys) { + List newEnergy = new LinkedList<>(); + newEnergy.add(calEnergy); + betaNewEnergyList.add(newEnergy); + } + map.put("betaEnergyData", betaNewEnergyList); + if (type.equalsIgnoreCase("sample")) { + betaDataFile.setSampleGammaEnergyList(gammaNewEnergyList); + betaDataFile.setSampleBetaEnergyList(betaNewEnergyList); + } else if (type.equalsIgnoreCase("gas")) { + betaDataFile.setGasGammaEnergyList(gammaNewEnergyList); + betaDataFile.setGasBetaEnergyList(betaNewEnergyList); + } else if (type.equalsIgnoreCase("det")) { + betaDataFile.setDetGammaEnergyList(gammaNewEnergyList); + betaDataFile.setDetBetaEnergyList(betaNewEnergyList); + } + } + + public void createBgCalPara(BetaDataFile betaDataFile, List gammaCalibrationSpectrumList,List betaCalibrationSpectrumList, + List gammaCalibrationPairsList,List betaCalibrationPairsList) { + //TODO--新方法用于加载人工交互库数据时处理分析参数用 + SpectrumGroup spectrum_group = new SpectrumGroup(); + //我需要根据 calibration页面对应的数组 及 公式判断是否有勾选sample det gas 这四个文件的操作 + //gammaCalibrationSpectrumList存储的是gamma对应的公式数据 + //betaCalibrationSpectrumList存储的是beta对应的公式数据 + //gammaCalibrationPairsList存储的是gamma对应的表单数据 + //betaCalibrationPairsList存储的是beta对应的表单数据 + //根据数据类型过滤出sample对应的参数 + if (CollectionUtils.isNotEmpty(gammaCalibrationSpectrumList) && CollectionUtils.isNotEmpty(betaCalibrationSpectrumList) && CollectionUtils.isNotEmpty(gammaCalibrationPairsList) && CollectionUtils.isNotEmpty(betaCalibrationPairsList)) { + List sampleGammaCalibrationList = gammaCalibrationSpectrumList.stream().filter(item -> item.getDataType().equals(DataTypeAbbr.SAMPLEPHD.getType())).collect(Collectors.toList()); + List sampleBetaCalibrationList = betaCalibrationSpectrumList.stream().filter(item -> item.getDataType().equals(DataTypeAbbr.SAMPLEPHD.getType())).collect(Collectors.toList()); + List sampleGammaCalibrationPairsList = gammaCalibrationPairsList.stream().filter(item -> item.getDataType().equals(DataTypeAbbr.SAMPLEPHD.getType())).collect(Collectors.toList()); + List sampleBetaCalibrationPairsList = betaCalibrationPairsList.stream().filter(item -> item.getDataType().equals(DataTypeAbbr.SAMPLEPHD.getType())).collect(Collectors.toList()); + //过滤出sampleGamma对应的表单数据 + List gammaChannelList = sampleGammaCalibrationPairsList.stream().map(GardsCalibrationPairsSpectrum::getXValue).collect(Collectors.toList()); + List gammaEnergyList = sampleGammaCalibrationPairsList.stream().map(GardsCalibrationPairsSpectrum::getYValue).collect(Collectors.toList()); + //过滤出sampleBeta对应的表单数据 + List betaChannelList = sampleBetaCalibrationPairsList.stream().map(GardsCalibrationPairsSpectrum::getXValue).collect(Collectors.toList()); + List betaEnergyList = sampleBetaCalibrationPairsList.stream().map(GardsCalibrationPairsSpectrum::getYValue).collect(Collectors.toList()); + //获取文件中的表单数据 + EnergySpectrumStruct struct = betaDataFile.getSampleStruct(); + List gCentroidChannel = struct.g_centroid_channel; + List gEnergy = struct.g_energy; + List bChannel = struct.b_channel; + List bElectronEnergy = struct.b_electron_energy; + //比较四组表单数据 + if ( !gammaChannelList.equals(gCentroidChannel) || !gammaEnergyList.equals(gEnergy) ) { + //将公式参数放入到重新计算的参数内 + List newFittingPara = EnergySpectrumHandler.GetFileFittingPara(gammaChannelList, gammaEnergyList); + //计算E to C公式参数 + List newFittingParaToUi = EnergySpectrumHandler.GetFileFittingPara(gammaEnergyList, gammaChannelList); + List geCal = new LinkedList<>(); + geCal.add(Double.valueOf(newFittingParaToUi.get(0))); + geCal.add(Double.valueOf(newFittingParaToUi.get(1))); + geCal.add(Double.valueOf(newFittingParaToUi.get(2))); + spectrum_group.BgCalPara.g_e_cal = geCal; + //公式C TO E参数 + List fittingPara = new LinkedList<>(); + fittingPara.add(String.valueOf(sampleGammaCalibrationList.get(0).getCoeff1())); + fittingPara.add(String.valueOf(sampleGammaCalibrationList.get(0).getCoeff2())); + fittingPara.add(String.valueOf(sampleGammaCalibrationList.get(0).getCoeff3())); + + List gc2e = new LinkedList<>(); + gc2e.add(Double.valueOf(sampleGammaCalibrationList.get(0).getCoeff1())); + gc2e.add(Double.valueOf(sampleGammaCalibrationList.get(0).getCoeff2())); + gc2e.add(Double.valueOf(sampleGammaCalibrationList.get(0).getCoeff3())); + spectrum_group.g_c2e = gc2e; + //将新的道值对应能量值参数存储 + for (int i=0; i newFittingParaToUi = EnergySpectrumHandler.GetFileFittingPara(betaEnergyList, betaChannelList); + List beCal = new LinkedList<>(); + beCal.add(Double.valueOf(newFittingParaToUi.get(0))); + beCal.add(Double.valueOf(newFittingParaToUi.get(1))); + beCal.add(Double.valueOf(newFittingParaToUi.get(2))); + spectrum_group.BgCalPara.b_e_cal = beCal; + //公式C TO E参数 + List fittingPara = new LinkedList<>(); + fittingPara.add(String.valueOf(sampleBetaCalibrationList.get(0).getCoeff1())); + fittingPara.add(String.valueOf(sampleBetaCalibrationList.get(0).getCoeff2())); + fittingPara.add(String.valueOf(sampleBetaCalibrationList.get(0).getCoeff3())); + + List bc2e = new LinkedList<>(); + bc2e.add(Double.valueOf(sampleBetaCalibrationList.get(0).getCoeff1())); + bc2e.add(Double.valueOf(sampleBetaCalibrationList.get(0).getCoeff2())); + bc2e.add(Double.valueOf(sampleBetaCalibrationList.get(0).getCoeff3())); + spectrum_group.b_c2e = bc2e; + //将新的道值对应能量值参数存储 + for (int i=0; i gasGammaCalibrationList = gammaCalibrationSpectrumList.stream().filter(item -> item.getDataType().equals(DataTypeAbbr.GASBKPHD.getType())).collect(Collectors.toList()); + List gasBetaCalibrationList = betaCalibrationSpectrumList.stream().filter(item -> item.getDataType().equals(DataTypeAbbr.GASBKPHD.getType())).collect(Collectors.toList()); + List gasGammaCalibrationPairsList = gammaCalibrationPairsList.stream().filter(item -> item.getDataType().equals(DataTypeAbbr.GASBKPHD.getType())).collect(Collectors.toList()); + List gasBetaCalibrationPairsList = betaCalibrationPairsList.stream().filter(item -> item.getDataType().equals(DataTypeAbbr.GASBKPHD.getType())).collect(Collectors.toList()); + //过滤出gasGamma对应的表单数据 + List gammaChannelList = gasGammaCalibrationPairsList.stream().map(GardsCalibrationPairsSpectrum::getXValue).collect(Collectors.toList()); + List gammaEnergyList = gasGammaCalibrationPairsList.stream().map(GardsCalibrationPairsSpectrum::getYValue).collect(Collectors.toList()); + //过滤出gasBeta对应的表单数据 + List betaChannelList = gasBetaCalibrationPairsList.stream().map(GardsCalibrationPairsSpectrum::getXValue).collect(Collectors.toList()); + List betaEnergyList = gasBetaCalibrationPairsList.stream().map(GardsCalibrationPairsSpectrum::getYValue).collect(Collectors.toList()); + //获取文件中的表单数据 + EnergySpectrumStruct struct = betaDataFile.getGasStruct(); + List gCentroidChannel = struct.g_centroid_channel; + List gEnergy = struct.g_energy; + List bChannel = struct.b_channel; + List bElectronEnergy = struct.b_electron_energy; + //比较gamma部分表单数据 + if ( !gammaChannelList.equals(gCentroidChannel) || !gammaEnergyList.equals(gEnergy) ) { + //将公式参数放入到重新计算的参数内 + //计算E to C公式参数 + List newFittingParaToUi = EnergySpectrumHandler.GetFileFittingPara(gammaEnergyList, gammaChannelList); + List geCal = new LinkedList<>(); + geCal.add(Double.valueOf(newFittingParaToUi.get(0))); + geCal.add(Double.valueOf(newFittingParaToUi.get(1))); + geCal.add(Double.valueOf(newFittingParaToUi.get(2))); + spectrum_group.BgCalPara.g_e_cal = geCal; + //公式C TO E参数 + List fittingPara = new LinkedList<>(); + fittingPara.add(String.valueOf(gasGammaCalibrationList.get(0).getCoeff1())); + fittingPara.add(String.valueOf(gasGammaCalibrationList.get(0).getCoeff2())); + fittingPara.add(String.valueOf(gasGammaCalibrationList.get(0).getCoeff3())); + + List gc2e = new LinkedList<>(); + gc2e.add(Double.valueOf(gasGammaCalibrationList.get(0).getCoeff1())); + gc2e.add(Double.valueOf(gasGammaCalibrationList.get(0).getCoeff2())); + gc2e.add(Double.valueOf(gasGammaCalibrationList.get(0).getCoeff3())); + spectrum_group.g_c2e = gc2e; + //将新的道值对应能量值参数存储 + for (int i=0; i newFittingParaToUi = EnergySpectrumHandler.GetFileFittingPara(betaEnergyList, betaChannelList); + List beCal = new LinkedList<>(); + beCal.add(Double.valueOf(newFittingParaToUi.get(0))); + beCal.add(Double.valueOf(newFittingParaToUi.get(1))); + beCal.add(Double.valueOf(newFittingParaToUi.get(2))); + spectrum_group.BgCalPara.b_e_cal = beCal; + //公式C TO E参数 + List fittingPara = new LinkedList<>(); + fittingPara.add(String.valueOf(gasBetaCalibrationList.get(0).getCoeff1())); + fittingPara.add(String.valueOf(gasBetaCalibrationList.get(0).getCoeff2())); + fittingPara.add(String.valueOf(gasBetaCalibrationList.get(0).getCoeff3())); + + List bc2e = new LinkedList<>(); + bc2e.add(Double.valueOf(gasBetaCalibrationList.get(0).getCoeff1())); + bc2e.add(Double.valueOf(gasBetaCalibrationList.get(0).getCoeff2())); + bc2e.add(Double.valueOf(gasBetaCalibrationList.get(0).getCoeff3())); + spectrum_group.b_c2e = bc2e; + //将新的道值对应能量值参数存储 + for (int i=0; i detGammaCalibrationList = gammaCalibrationSpectrumList.stream().filter(item -> item.getDataType().equals(DataTypeAbbr.DETBKPHD.getType())).collect(Collectors.toList()); + List detBetaCalibrationList = betaCalibrationSpectrumList.stream().filter(item -> item.getDataType().equals(DataTypeAbbr.DETBKPHD.getType())).collect(Collectors.toList()); + List detGammaCalibrationPairsList = gammaCalibrationPairsList.stream().filter(item -> item.getDataType().equals(DataTypeAbbr.DETBKPHD.getType())).collect(Collectors.toList()); + List detBetaCalibrationPairsList = betaCalibrationPairsList.stream().filter(item -> item.getDataType().equals(DataTypeAbbr.DETBKPHD.getType())).collect(Collectors.toList()); + //过滤出gasGamma对应的表单数据 + List gammaChannelList = detGammaCalibrationPairsList.stream().map(GardsCalibrationPairsSpectrum::getXValue).collect(Collectors.toList()); + List gammaEnergyList = detGammaCalibrationPairsList.stream().map(GardsCalibrationPairsSpectrum::getYValue).collect(Collectors.toList()); + //过滤出gasBeta对应的表单数据 + List betaChannelList = detBetaCalibrationPairsList.stream().map(GardsCalibrationPairsSpectrum::getXValue).collect(Collectors.toList()); + List betaEnergyList = detBetaCalibrationPairsList.stream().map(GardsCalibrationPairsSpectrum::getYValue).collect(Collectors.toList()); + //获取文件中的表单数据 + EnergySpectrumStruct struct = betaDataFile.getDetStruct(); + List gCentroidChannel = struct.g_centroid_channel; + List gEnergy = struct.g_energy; + List bChannel = struct.b_channel; + List bElectronEnergy = struct.b_electron_energy; + //比较四组表单数据 + if ( !gammaChannelList.equals(gCentroidChannel) || !gammaEnergyList.equals(gEnergy) ) { + //计算E to C公式参数 + List newFittingParaToUi = EnergySpectrumHandler.GetFileFittingPara(gammaEnergyList, gammaChannelList); + List geCal = new LinkedList<>(); + geCal.add(Double.valueOf(newFittingParaToUi.get(0))); + geCal.add(Double.valueOf(newFittingParaToUi.get(1))); + geCal.add(Double.valueOf(newFittingParaToUi.get(2))); + spectrum_group.BgCalPara.g_e_cal = geCal; + //公式C TO E参数 + List fittingPara = new LinkedList<>(); + fittingPara.add(String.valueOf(detGammaCalibrationList.get(0).getCoeff1())); + fittingPara.add(String.valueOf(detGammaCalibrationList.get(0).getCoeff2())); + fittingPara.add(String.valueOf(detGammaCalibrationList.get(0).getCoeff3())); + + List gc2e = new LinkedList<>(); + gc2e.add(Double.valueOf(detGammaCalibrationList.get(0).getCoeff1())); + gc2e.add(Double.valueOf(detGammaCalibrationList.get(0).getCoeff2())); + gc2e.add(Double.valueOf(detGammaCalibrationList.get(0).getCoeff3())); + spectrum_group.g_c2e = gc2e; + //将新的道值对应能量值参数存储 + for (int i=0; i newFittingParaToUi = EnergySpectrumHandler.GetFileFittingPara(betaEnergyList, betaChannelList); + //将公式参数放入到重新计算的参数内 + List beCal = new LinkedList<>(); + beCal.add(Double.valueOf(newFittingParaToUi.get(0))); + beCal.add(Double.valueOf(newFittingParaToUi.get(1))); + beCal.add(Double.valueOf(newFittingParaToUi.get(2))); + spectrum_group.BgCalPara.b_e_cal = beCal; + //公式C TO E参数 + List fittingPara = new LinkedList<>(); + fittingPara.add(String.valueOf(detBetaCalibrationList.get(0).getCoeff1())); + fittingPara.add(String.valueOf(detBetaCalibrationList.get(0).getCoeff2())); + fittingPara.add(String.valueOf(detBetaCalibrationList.get(0).getCoeff3())); + + List bc2e = new LinkedList<>(); + bc2e.add(Double.valueOf(detBetaCalibrationList.get(0).getCoeff1())); + bc2e.add(Double.valueOf(detBetaCalibrationList.get(0).getCoeff2())); + bc2e.add(Double.valueOf(detBetaCalibrationList.get(0).getCoeff3())); + spectrum_group.b_c2e = bc2e; + //将新的道值对应能量值参数存储 + for (int i=0; i readLine(String filePath) { List allLines = new ArrayList<>(); try { 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 7660872d..a43bad2e 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 @@ -86,11 +86,11 @@ public interface SpectrumAnalysisMapper { Integer getAnalysisID(@Param(value = "dbName") String dbName, @Param(value = "sampleId") Integer sampleId, @Param(value = "userName") String userName); - List ReadGammaFitChannelEnergy(@Param(value = "idAnalysis") Integer idAnalysis, @Param(value = "sampleId") Integer sampleId); + List ReadGammaFitChannelEnergy(@Param(value = "idAnalysis") Integer idAnalysis); List ReadGammaCalibrationParam(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis); - List ReadBetaFitChannelEnergy(@Param(value = "idAnalysis") Integer idAnalysis, @Param(value = "sampleId") Integer sampleId); + List ReadBetaFitChannelEnergy(@Param(value = "idAnalysis") Integer idAnalysis); List ReadBetaCalibrationParam(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer 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 35789a62..d41dab5d 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 @@ -619,7 +619,6 @@ CALIBRATION_PAIRS.SAMPLE_ID = SMAPLE_DATA.SAMPLE_ID AND CALIBRATION_PAIRS.SAMPLE_TYPE = 'G' AND CALIBRATION_PAIRS.IDANALYSIS = #{idAnalysis} - AND CALIBRATION_PAIRS.SAMPLE_ID = #{sampleId} ORDER BY CALIBRATION_PAIRS.IDCALPOINT ASC @@ -651,7 +650,6 @@ CALIBRATION_PAIRS.SAMPLE_ID = SMAPLE_DATA.SAMPLE_ID AND CALIBRATION_PAIRS.SAMPLE_TYPE = 'B' AND CALIBRATION_PAIRS.IDANALYSIS = #{idAnalysis} - AND CALIBRATION_PAIRS.SAMPLE_ID = #{sampleId} ORDER BY CALIBRATION_PAIRS.IDCALPOINT ASC 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 fdafe929..3b472707 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 @@ -5001,8 +5001,16 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi //格式化名称 Map nameMap = nameStandUtil.NameStandard(phd); String mSaveFileName = nameMap.get("saveFile"); + String dateTimeSubdir = ""; + int pos = mSaveFileName.indexOf('-'); + if(-1 == pos) { + + } else if(fileName.length() >= pos+7) { + dateTimeSubdir+=StringPool.SLASH+fileName.substring(pos+1,pos+5); + dateTimeSubdir+=StringPool.SLASH+fileName.substring(pos+5,pos+7); + } //判断当前分析员是否有过历史分析当前文件 - Integer isExist = spectrumAnalysisMapper.SampleIsExist(sysTemSubdir+ dateTypeSubdir + StringPool.SLASH + mSaveFileName, userName); + Integer isExist = spectrumAnalysisMapper.SampleIsExist(sysTemSubdir+ dateTypeSubdir + dateTimeSubdir + StringPool.SLASH + mSaveFileName, userName); // 如果用户没有权限操作 则查看当前用户是否是高级分析员/管理员 if (!bAnalysisResultWriteAuthority && Objects.isNull(isExist)) { result.error500("You have no permission to save "+phd.getHeader().getSite_code()+" results to DB!"); 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 1c289c2f..7a1f0b4b 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 @@ -459,8 +459,8 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements roiChannelsSpectrumList = spectrumAnalysisMapper.ReadROIChannels("RNAUTO", analysisID, sampleId); roiResultsSpectrumList = spectrumAnalysisMapper.ReadROIResults("RNAUTO", analysisID, sampleId); } else { - gammaCalibrationPairsList = spectrumAnalysisMapper.ReadGammaFitChannelEnergy(analysisID, sampleId); - betaCalibrationPairsList = spectrumAnalysisMapper.ReadBetaFitChannelEnergy(analysisID, sampleId); + gammaCalibrationPairsList = spectrumAnalysisMapper.ReadGammaFitChannelEnergy(analysisID); + betaCalibrationPairsList = spectrumAnalysisMapper.ReadBetaFitChannelEnergy(analysisID); xeResultsSpectrumList = spectrumAnalysisMapper.ReadXeResults(dbName, analysisID, sampleId); gammaCalibrationSpectrumList = spectrumAnalysisMapper.ReadGammaCalibrationParam("RNMAN", analysisID); betaCalibrationSpectrumList = spectrumAnalysisMapper.ReadBetaCalibrationParam("RNMAN", analysisID); @@ -475,10 +475,33 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements betaDataFile.setSampleFileName(sampleFileName); sampleTmp = ftpUtil.downloadFile(betaDataFile.getSampleFilePathName(), "betaGamma"); if (Objects.nonNull(sampleTmp)) { + //sample临时文件路径存储 betaDataFile.setSampleTmpPath(sampleTmp.getAbsolutePath()); + //获取smaple文件解析结果 EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(sampleTmp.getAbsolutePath()); betaDataFile.setSampleStruct(struct); + //处理解析结果 sampleMap = phdFileUtil.getSourceData(struct, sample.getSampleId(), sample.getStatus(), "sample", betaDataFile); + //更新边界值 + if (CollectionUtils.isNotEmpty(roiChannelsSpectrumList)) { + //将数据库的roi范围重新赋值 + List sampleRoiChannel = roiChannelsSpectrumList.stream().filter(item -> item.getDataType().equalsIgnoreCase(DataTypeAbbr.SAMPLEPHD.getType())).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(sampleRoiChannel)) { + //更新边界值 + phdFileUtil.updateBoundary(betaDataFile, "sample", sampleRoiChannel, sampleMap); + } + } + //更新gamma道值-能量折线图 + if (CollectionUtils.isNotEmpty(gammaCalibrationPairsList) && CollectionUtils.isNotEmpty(betaCalibrationPairsList)) { + //过滤出sample的gamma的参数 + List sampleGammaCalibrationPairs = gammaCalibrationPairsList.stream().filter(item -> item.getDataType().equalsIgnoreCase(DataTypeAbbr.SAMPLEPHD.getType())).collect(Collectors.toList()); + //过滤出sample的beta的参数 + List sampleBetaCalibrationPairs = betaCalibrationPairsList.stream().filter(item -> item.getDataType().equalsIgnoreCase(DataTypeAbbr.SAMPLEPHD.getType())).collect(Collectors.toList()); + //更新道值-能量折线图 + if (CollectionUtils.isNotEmpty(sampleGammaCalibrationPairs) && CollectionUtils.isNotEmpty(sampleBetaCalibrationPairs)) { + phdFileUtil.updateEnergyData(betaDataFile, "sample", sampleGammaCalibrationPairs, sampleBetaCalibrationPairs, sampleMap); + } + } sampleMap.put("fileName", betaDataFile.getSampleFileName()); resultMap.put("sample",sampleMap); } @@ -489,10 +512,33 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements betaDataFile.setGasFileName(gasFileName); gasTmp = ftpUtil.downloadFile(betaDataFile.getGasFilePathName(), "betaGamma"); if (Objects.nonNull(gasTmp)) { + //存储gas临时文件路径 betaDataFile.setGasTmpPath(gasTmp.getAbsolutePath()); + //获取gas文件解析结果 EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(gasTmp.getAbsolutePath()); betaDataFile.setGasStruct(struct); + //处理gas文件解析结果 gasBgMap = phdFileUtil.getSourceData(struct, gasBg.getSampleId(), gasBg.getStatus(), "gas", betaDataFile); + //更新边界值 + if (CollectionUtils.isNotEmpty(roiChannelsSpectrumList)) { + //将数据库的roi范围重新赋值 + List gasRoiChannel = roiChannelsSpectrumList.stream().filter(item -> item.getDataType().equalsIgnoreCase(DataTypeAbbr.GASBKPHD.getType())).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(gasRoiChannel)) { + //更新边界值 + phdFileUtil.updateBoundary(betaDataFile, "gas", gasRoiChannel, gasBgMap); + } + } + //更新gamma道值-能量折线图 + if (CollectionUtils.isNotEmpty(gammaCalibrationPairsList) && CollectionUtils.isNotEmpty(betaCalibrationPairsList)) { + //过滤出sample的gamma的参数 + List gasGammaCalibrationPairs = gammaCalibrationPairsList.stream().filter(item -> item.getDataType().equalsIgnoreCase(DataTypeAbbr.GASBKPHD.getType())).collect(Collectors.toList()); + //过滤出sample的beta的参数 + List gasBetaCalibrationPairs = betaCalibrationPairsList.stream().filter(item -> item.getDataType().equalsIgnoreCase(DataTypeAbbr.GASBKPHD.getType())).collect(Collectors.toList()); + //更新道值-能量折线图 + if (CollectionUtils.isNotEmpty(gasGammaCalibrationPairs) && CollectionUtils.isNotEmpty(gasBetaCalibrationPairs)) { + phdFileUtil.updateEnergyData(betaDataFile, "gas", gasGammaCalibrationPairs, gasBetaCalibrationPairs, gasBgMap); + } + } gasBgMap.put("fileName", betaDataFile.getGasFileName()); resultMap.put("gasBg",gasBgMap); } @@ -503,10 +549,33 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements betaDataFile.setDetFileName(detFileName); detTmp = ftpUtil.downloadFile(betaDataFile.getDetFilePathName(), "betaGamma"); if (Objects.nonNull(detTmp)) { + //存储det临时文件路径 betaDataFile.setDetTmpPath(detTmp.getAbsolutePath()); + //获取det文件解析结果 EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(detTmp.getAbsolutePath()); betaDataFile.setDetStruct(struct); + //处理det文件解析结果 detBgMap = phdFileUtil.getSourceData(struct, detBg.getSampleId(), detBg.getStatus(), "det", betaDataFile); + //更新边界值 + if (CollectionUtils.isNotEmpty(roiChannelsSpectrumList)) { + //将数据库的roi范围重新赋值 + List detRoiChannel = roiChannelsSpectrumList.stream().filter(item -> item.getDataType().equalsIgnoreCase(DataTypeAbbr.DETBKPHD.getType())).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(detRoiChannel)) { + //更新边界值 + phdFileUtil.updateBoundary(betaDataFile, "det", detRoiChannel, detBgMap); + } + } + //更新gamma道值-能量折线图 + if (CollectionUtils.isNotEmpty(gammaCalibrationPairsList) && CollectionUtils.isNotEmpty(betaCalibrationPairsList)) { + //过滤出sample的gamma的参数 + List detGammaCalibrationPairs = gammaCalibrationPairsList.stream().filter(item -> item.getDataType().equalsIgnoreCase(DataTypeAbbr.DETBKPHD.getType())).collect(Collectors.toList()); + //过滤出sample的beta的参数 + List detBetaCalibrationPairs = betaCalibrationPairsList.stream().filter(item -> item.getDataType().equalsIgnoreCase(DataTypeAbbr.DETBKPHD.getType())).collect(Collectors.toList()); + //更新道值-能量折线图 + if (CollectionUtils.isNotEmpty(detGammaCalibrationPairs) && CollectionUtils.isNotEmpty(detBetaCalibrationPairs)) { + phdFileUtil.updateEnergyData(betaDataFile, "det", detGammaCalibrationPairs, detBetaCalibrationPairs, detBgMap); + } + } detBgMap.put("fileName", betaDataFile.getDetFileName()); resultMap.put("detBg",detBgMap); } @@ -525,6 +594,8 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements resultMap.put("qc",qcMap); } } + //更新缓存数据对应的缓存数据 + phdFileUtil.createBgCalPara(betaDataFile, gammaCalibrationSpectrumList, betaCalibrationSpectrumList, gammaCalibrationPairsList, betaCalibrationPairsList); } else { xeResultsSpectrumList = betaDataFile.getXeResultsSpectrumList(); sampleMap = loadData("sample", betaDataFile); @@ -549,13 +620,10 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements 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())))); @@ -679,13 +747,10 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements 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())))); @@ -1775,6 +1840,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } //获取qc的分析结果数据 EnergySpectrumStruct struct = betaDataFile.getQcStruct(); + //判断qc文件的解析结果是否为空 if (Objects.nonNull(struct)){ //读取Gamma Detector Calibration所需要的参数 long numGChannel = struct.num_g_channel; @@ -1783,7 +1849,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements int gRecordCount = struct.g_record_count; List gCounts = struct.g_counts; List gammaParam = EnergySpectrumHandler.GetFileFittingPara(gCentroidChannel, gEnergy); - //计算Calibration Parameter Of Gamma Detector + //根据道值和能量的对应关系 存储表单数据 List oldScatterSeries = new LinkedList<>(); for (int i=0; i fittingPara = EnergySpectrumHandler.GetFileFittingPara(gCentroidChannel, gEnergy); List fittingParaStr = new LinkedList<>(); for (Double para:fittingPara) { @@ -1805,7 +1871,9 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements for (int i=0; i<255; ++i) { channel.add(Double.valueOf(i)); } + //计算出新的道值对应能量值 List energy = EnergySpectrumHandler.GetFileFittingData(channel, fittingPara); + //根据道值和能量对应关系 封装折线图数据 List oldLineSeries = new LinkedList<>(); for (int i=0; i fittingParaToUi = EnergySpectrumHandler.GetFileFittingPara(gEnergy, gCentroidChannel); List fittingParaToUiStr = new LinkedList<>(); for (Double para:fittingParaToUi) { fittingParaToUiStr.add(String.valueOf(para)); } map.put("EToC", fittingParaToUiStr); - //Figure of Gamma Detector Calibration + //计算道值对应能量值参数 List gchannels = new ArrayList<>(); List> gammaEnergyList = new LinkedList<>(); for (int i=0; i xs = new LinkedList(); + //存储计算参数能量值 + List ys = new LinkedList<>(); + //存储所有道值 + List channels = new LinkedList<>(); + //存储所有的能量值 + List> energyList = new LinkedList<>(); + //存储新的线点能量值 + List newLineSeries = new LinkedList<>(); + //存储新的表单能量值 + List tableWidgets = new LinkedList(); + //存储新的公式参数C TO E + List newFittingParaStr = new LinkedList<>(); + //存储新的公式参数E TO C + List newFittingParaToUiStr = new LinkedList<>(); + //记录点值数组 + List newSeriseDataList = new LinkedList<>(); + //遍历临时点数组 将点位的横坐标以及纵坐标封装到对应的数组 + for (int i=0; i newFittingPara = EnergySpectrumHandler.GetFileFittingPara(xs, ys); + for (Double para:newFittingPara) { + newFittingParaStr.add(String.valueOf(para)); + } + map.put("newCToE", newFittingParaStr); + //填充道值数组的数据 + for (int i=0; i<255; i++) { + channels.add(Double.valueOf(i)); + } + //计算道值的能量 + List energys = EnergySpectrumHandler.GetFileFittingData(channels,fittingPara); + //根据临时点的道值修改对应能量值 + //遍历所有道值 + for (int i=0; i< channels.size(); i++) { + //获取道值 + double newChannel = channels.get(i).doubleValue(); + //遍历临时点数据 + for (int j=0; j newEnergy = new LinkedList<>(); + newEnergy.add(calEnergy); + energyList.add(newEnergy); + } + //遍历道值添加各道值对应点数据到数组 + for (int i=0; i newFittingParaToUi = EnergySpectrumHandler.GetFileFittingPara(ys, xs); + for (Double para:newFittingParaToUi) { + newFittingParaToUiStr.add(String.valueOf(para)); + } + map.put("newEToC", newFittingParaToUiStr); + } + //计算得到的 if (betaDataFile.getGammaList().size() <= 0 ) { betaDataFile.setGammaList(oldScatterSeries); @@ -1991,6 +2150,96 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } map.put("EToC", fittingParaToUiStr); + //判断人工交互的道值与能量对应参数数组是否为空 + if (CollectionUtils.isNotEmpty(betaDataFile.getBetaList())) { + //存储计算参数道值 + List xs = new LinkedList(); + //存储计算参数能量值 + List ys = new LinkedList<>(); + //存储所有道值 + List channels = new LinkedList<>(); + //存储所有的能量值 + List> energyList = new LinkedList<>(); + //存储新的线点能量值 + List newLineSeries = new LinkedList<>(); + //存储新的表单能量值 + List tableWidgets = new LinkedList(); + //存储新的公式参数C TO E + List newFittingParaStr = new LinkedList<>(); + //存储新的公式参数E TO C + List newFittingParaToUiStr = new LinkedList<>(); + //记录点值数组 + List newSeriseDataList = new LinkedList<>(); + //遍历临时点数组 将点位的横坐标以及纵坐标封装到对应的数组 + for (int i=0; i newFittingPara = EnergySpectrumHandler.GetFileFittingPara(xs, ys); + for (Double para:newFittingPara) { + newFittingParaStr.add(String.valueOf(para)); + } + map.put("newCToE", newFittingParaStr); + //填充道值数组的数据 + for (int i=0; i<255; i++) { + channels.add(Double.valueOf(i)); + } + //计算道值的能量 + List energys = EnergySpectrumHandler.GetFileFittingData(channels,fittingPara); + //根据临时点的道值修改对应能量值 + //遍历所有道值 + for (int i=0; i< channels.size(); i++) { + //获取道值 + double newChannel = channels.get(i).doubleValue(); + //遍历临时点数据 + for (int j=0; j newEnergy = new LinkedList<>(); + newEnergy.add(calEnergy); + energyList.add(newEnergy); + } + //遍历道值添加各道值对应点数据到数组 + for (int i=0; i newFittingParaToUi = EnergySpectrumHandler.GetFileFittingPara(ys, xs); + for (Double para:newFittingParaToUi) { + newFittingParaToUiStr.add(String.valueOf(para)); + } + map.put("newEToC", newFittingParaToUiStr); + } + if (betaDataFile.getBetaList().size()<=0) { betaDataFile.setBetaList(oldScatterSeries); } @@ -4977,106 +5226,105 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } public void getChannelAndEnergy(BgDataAnlyseResultIn anlyseResultIn, List betaList, List gammaList, BetaDataFile betaDataFile) { - File sampleTmp = null; - File gasTmp = null; - File detTmp = null; - try { - //获取ftp文件路径下临时文件 - sampleTmp = new File(betaDataFile.getSampleTmpPath()); - gasTmp = new File(betaDataFile.getGasTmpPath()); - detTmp = new File(betaDataFile.getDetTmpPath()); - //如果勾选了Energy Calibration页面下sample Data - if (Objects.nonNull(sampleTmp)) { - if(anlyseResultIn.isCheckSample()) { - EnergySpectrumStruct sourceData = EnergySpectrumHandler.getSourceData(sampleTmp.getAbsolutePath()); - //没有点击过Energy Calibration页面下Gamma Detector Calibration的fitting按钮 channel/energy数据读取文件 如果点击过数据来源页面 - if (!anlyseResultIn.isBGammaEnergyValidSample()){ - anlyseResultIn.setG_channel_sample(sourceData.g_centroid_channel); - anlyseResultIn.setG_energy_sample(sourceData.g_energy); - } else { - List channels = gammaList.stream().map(SeriseData::getX).collect(Collectors.toList()); - anlyseResultIn.setG_channel_sample(channels); - List energys = gammaList.stream().map(SeriseData::getY).collect(Collectors.toList()); - anlyseResultIn.setG_energy_sample(energys); - } - //没有点击过Energy Calibration页面下Beta Detector Calibration的fitting按钮 channel/energy数据读取文件 如果点击过数据来源页面 - if (!anlyseResultIn.isBBetaEnergyValidSample()){ - anlyseResultIn.setB_channel_sample(sourceData.b_channel); - anlyseResultIn.setB_energy_sample(sourceData.b_electron_energy); - } else { - List channels = betaList.stream().map(SeriseData::getX).collect(Collectors.toList()); - anlyseResultIn.setB_channel_sample(channels); - List energys = betaList.stream().map(SeriseData::getY).collect(Collectors.toList()); - anlyseResultIn.setB_energy_sample(energys); - } - } else {//如果没有勾选Energy Calibration页面下sample Data - EnergySpectrumStruct sourceData = EnergySpectrumHandler.getSourceData(sampleTmp.getAbsolutePath()); + //获取ftp文件路径下临时文件 + String sampleTmp = betaDataFile.getSampleTmpPath(); + String gasTmp = betaDataFile.getGasTmpPath(); + String detTmp = betaDataFile.getDetTmpPath(); + BgCalibratePara bgPara = betaDataFile.getBgPara(); + //如果勾选了Energy Calibration页面下sample Data + if (StringUtils.isNotBlank(sampleTmp)) { + //判断是否进行了重新分析操作 + if(Objects.nonNull(bgPara) && bgPara.bApplyNewCalicSample) { + EnergySpectrumStruct sourceData = betaDataFile.getSampleStruct(); + //如果gamma的能量分析页面 没有勾选sample 并且gamma数组是空的 存储文件中的数据 + if (!anlyseResultIn.isBGammaEnergyValidSample() && CollectionUtils.isEmpty(gammaList)){ anlyseResultIn.setG_channel_sample(sourceData.g_centroid_channel); anlyseResultIn.setG_energy_sample(sourceData.g_energy); + } else { + List channels = gammaList.stream().map(SeriseData::getX).collect(Collectors.toList()); + anlyseResultIn.setG_channel_sample(channels); + List energys = gammaList.stream().map(SeriseData::getY).collect(Collectors.toList()); + anlyseResultIn.setG_energy_sample(energys); + } + //如果beta的能量分析页面 没有勾选sample 并且beta数组是空的 存储文件中的数据 + if (!anlyseResultIn.isBBetaEnergyValidSample() && CollectionUtils.isEmpty(betaList)){ anlyseResultIn.setB_channel_sample(sourceData.b_channel); anlyseResultIn.setB_energy_sample(sourceData.b_electron_energy); - } - } - if (Objects.nonNull(gasTmp)) { - if (anlyseResultIn.isCheckGas()) { - EnergySpectrumStruct sourceData = EnergySpectrumHandler.getSourceData(gasTmp.getAbsolutePath()); - if (!anlyseResultIn.isBGammaEnergyValidGas()){ - anlyseResultIn.setG_channel_gas(sourceData.g_centroid_channel); - anlyseResultIn.setG_energy_gas(sourceData.g_energy); - } else { - List channels = gammaList.stream().map(SeriseData::getX).collect(Collectors.toList()); - anlyseResultIn.setG_channel_gas(channels); - List energys = gammaList.stream().map(SeriseData::getY).collect(Collectors.toList()); - anlyseResultIn.setG_energy_gas(energys); - } - if (!anlyseResultIn.isBBetaEnergyValidGas()){ - anlyseResultIn.setB_channel_gas(sourceData.b_channel); - anlyseResultIn.setB_energy_gas(sourceData.b_electron_energy); - } else { - List channels = betaList.stream().map(SeriseData::getX).collect(Collectors.toList()); - anlyseResultIn.setB_channel_gas(channels); - List energys = betaList.stream().map(SeriseData::getY).collect(Collectors.toList()); - anlyseResultIn.setB_energy_gas(energys); - } } else { - EnergySpectrumStruct sourceData = EnergySpectrumHandler.getSourceData(gasTmp.getAbsolutePath()); + List channels = betaList.stream().map(SeriseData::getX).collect(Collectors.toList()); + anlyseResultIn.setB_channel_sample(channels); + List energys = betaList.stream().map(SeriseData::getY).collect(Collectors.toList()); + anlyseResultIn.setB_energy_sample(energys); + } + } else {//如果没有勾选Energy Calibration页面下sample Data + EnergySpectrumStruct sourceData = betaDataFile.getSampleStruct(); + anlyseResultIn.setG_channel_sample(sourceData.g_centroid_channel); + anlyseResultIn.setG_energy_sample(sourceData.g_energy); + anlyseResultIn.setB_channel_sample(sourceData.b_channel); + anlyseResultIn.setB_energy_sample(sourceData.b_electron_energy); + } + } + if (StringUtils.isNotBlank(gasTmp)) { + if (Objects.nonNull(bgPara) && bgPara.bApplyNewCalicGasBg) { + EnergySpectrumStruct sourceData = betaDataFile.getGasStruct(); + //如果gamma的能量分析页面 没有勾选gas 并且gamma数组是空的 存储文件中的数据 + if (!anlyseResultIn.isBGammaEnergyValidGas() && CollectionUtils.isEmpty(gammaList)){ anlyseResultIn.setG_channel_gas(sourceData.g_centroid_channel); anlyseResultIn.setG_energy_gas(sourceData.g_energy); + } else { + List channels = gammaList.stream().map(SeriseData::getX).collect(Collectors.toList()); + anlyseResultIn.setG_channel_gas(channels); + List energys = gammaList.stream().map(SeriseData::getY).collect(Collectors.toList()); + anlyseResultIn.setG_energy_gas(energys); + } + //如果beta的能量分析页面 没有勾选gas 并且beta数组是空的 存储文件中的数据 + if (!anlyseResultIn.isBBetaEnergyValidGas() && CollectionUtils.isEmpty(betaList)){ anlyseResultIn.setB_channel_gas(sourceData.b_channel); anlyseResultIn.setB_energy_gas(sourceData.b_electron_energy); - } - } - if (Objects.nonNull(detTmp)) { - if (anlyseResultIn.isCheckDet()) { - EnergySpectrumStruct sourceData = EnergySpectrumHandler.getSourceData(detTmp.getAbsolutePath()); - if (!anlyseResultIn.isBGammaEnergyValidDet()){ - anlyseResultIn.setG_channel_det(sourceData.g_centroid_channel); - anlyseResultIn.setG_energy_det(sourceData.g_energy); - } else { - List channels = gammaList.stream().map(SeriseData::getX).collect(Collectors.toList()); - anlyseResultIn.setG_channel_det(channels); - List energys = gammaList.stream().map(SeriseData::getY).collect(Collectors.toList()); - anlyseResultIn.setG_energy_det(energys); - } - if (!anlyseResultIn.isBBetaEnergyValidDet()){ - anlyseResultIn.setB_channel_det(sourceData.b_channel); - anlyseResultIn.setB_energy_det(sourceData.b_electron_energy); - } else { - List channels = betaList.stream().map(SeriseData::getX).collect(Collectors.toList()); - anlyseResultIn.setB_channel_det(channels); - List energys = betaList.stream().map(SeriseData::getY).collect(Collectors.toList()); - anlyseResultIn.setB_energy_det(energys); - } } else { - EnergySpectrumStruct sourceData = EnergySpectrumHandler.getSourceData(detTmp.getAbsolutePath()); + List channels = betaList.stream().map(SeriseData::getX).collect(Collectors.toList()); + anlyseResultIn.setB_channel_gas(channels); + List energys = betaList.stream().map(SeriseData::getY).collect(Collectors.toList()); + anlyseResultIn.setB_energy_gas(energys); + } + } else { + EnergySpectrumStruct sourceData = betaDataFile.getGasStruct(); + anlyseResultIn.setG_channel_gas(sourceData.g_centroid_channel); + anlyseResultIn.setG_energy_gas(sourceData.g_energy); + anlyseResultIn.setB_channel_gas(sourceData.b_channel); + anlyseResultIn.setB_energy_gas(sourceData.b_electron_energy); + } + } + if (StringUtils.isNotBlank(detTmp)) { + if (Objects.nonNull(bgPara) && bgPara.bApplyNewCalicDetBg) { + EnergySpectrumStruct sourceData = betaDataFile.getDetStruct(); + //如果gamma的能量分析页面 没有勾选det 并且gamma数组是空的 存储文件中的数据 + if (!anlyseResultIn.isBGammaEnergyValidDet() && CollectionUtils.isEmpty(gammaList)){ anlyseResultIn.setG_channel_det(sourceData.g_centroid_channel); anlyseResultIn.setG_energy_det(sourceData.g_energy); + } else { + List channels = gammaList.stream().map(SeriseData::getX).collect(Collectors.toList()); + anlyseResultIn.setG_channel_det(channels); + List energys = gammaList.stream().map(SeriseData::getY).collect(Collectors.toList()); + anlyseResultIn.setG_energy_det(energys); + } + //如果beta的能量分析页面 没有勾选det 并且beta数组是空的 存储文件中的数据 + if (!anlyseResultIn.isBBetaEnergyValidDet() && CollectionUtils.isEmpty(betaList)){ anlyseResultIn.setB_channel_det(sourceData.b_channel); anlyseResultIn.setB_energy_det(sourceData.b_electron_energy); + } else { + List channels = betaList.stream().map(SeriseData::getX).collect(Collectors.toList()); + anlyseResultIn.setB_channel_det(channels); + List energys = betaList.stream().map(SeriseData::getY).collect(Collectors.toList()); + anlyseResultIn.setB_energy_det(energys); } + } else { + EnergySpectrumStruct sourceData = betaDataFile.getDetStruct(); + anlyseResultIn.setG_channel_det(sourceData.g_centroid_channel); + anlyseResultIn.setG_energy_det(sourceData.g_energy); + anlyseResultIn.setB_channel_det(sourceData.b_channel); + anlyseResultIn.setB_energy_det(sourceData.b_electron_energy); } - } catch (Exception e) { - e.printStackTrace(); } } From d619c0e30877b7abc32432da5aa9c63cc9f7d29e Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Sun, 18 Feb 2024 15:34:18 +0800 Subject: [PATCH 021/133] =?UTF-8?q?=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=86Energy=20Calibration?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92=E5=90=8E?= =?UTF-8?q?=E7=9A=84=E6=95=B0=E6=8D=AE=E8=BF=94=E5=9B=9E=E6=8A=98=E7=BA=BF?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=94=99=E8=AF=AF=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 --- .../modules/service/impl/SpectrumAnalysisServiceImpl.java | 4 ++-- 1 file changed, 2 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 7a1f0b4b..d65d396c 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 @@ -1965,7 +1965,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements channels.add(Double.valueOf(i)); } //计算道值的能量 - List energys = EnergySpectrumHandler.GetFileFittingData(channels,fittingPara); + List energys = EnergySpectrumHandler.GetFileFittingData(channels,newFittingPara); //根据临时点的道值修改对应能量值 //遍历所有道值 for (int i=0; i< channels.size(); i++) { @@ -2186,7 +2186,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements channels.add(Double.valueOf(i)); } //计算道值的能量 - List energys = EnergySpectrumHandler.GetFileFittingData(channels,fittingPara); + List energys = EnergySpectrumHandler.GetFileFittingData(channels,newFittingPara); //根据临时点的道值修改对应能量值 //遍历所有道值 for (int i=0; i< channels.size(); i++) { From a1cefcb26c8dfe47e7361fb5ac27e7e4c16c853c Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Sun, 18 Feb 2024 15:36:40 +0800 Subject: [PATCH 022/133] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E7=9A=84todo=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/jeecg/common/util/PHDFileUtil.java | 1 - 1 file changed, 1 deletion(-) 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 cfb5c2ff..d7ae8bf9 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 @@ -404,7 +404,6 @@ public class PHDFileUtil extends AbstractLogOrReport { public void createBgCalPara(BetaDataFile betaDataFile, List gammaCalibrationSpectrumList,List betaCalibrationSpectrumList, List gammaCalibrationPairsList,List betaCalibrationPairsList) { - //TODO--新方法用于加载人工交互库数据时处理分析参数用 SpectrumGroup spectrum_group = new SpectrumGroup(); //我需要根据 calibration页面对应的数组 及 公式判断是否有勾选sample det gas 这四个文件的操作 //gammaCalibrationSpectrumList存储的是gamma对应的公式数据 From bbe1ba7110f69dafdd3cec89b51ee5414adb8174 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Sun, 18 Feb 2024 19:26:38 +0800 Subject: [PATCH 023/133] =?UTF-8?q?feat=EF=BC=9AnuclideConcAvg=E8=AE=A1?= =?UTF-8?q?=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../postgre/AlarmAnalysisNuclideAvg.java | 8 ++ .../mapper/xml/GardsNuclIdedAutoMapper.xml | 2 + .../mapper/xml/GardsNuclIdedManMapper.xml | 2 + .../mapper/xml/GardsXeResultsAutoMapper.xml | 3 +- .../mapper/xml/GardsXeResultsManMapper.xml | 2 + .../impl/CalculateConcServiceImpl.java | 105 ++++++++++++------ 6 files changed, 88 insertions(+), 34 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/postgre/AlarmAnalysisNuclideAvg.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/postgre/AlarmAnalysisNuclideAvg.java index b71f9d3d..6e212b10 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/postgre/AlarmAnalysisNuclideAvg.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/postgre/AlarmAnalysisNuclideAvg.java @@ -19,6 +19,14 @@ public class AlarmAnalysisNuclideAvg extends JeecgEntity { this.val = val; } + public AlarmAnalysisNuclideAvg(String stationId ,String nuclide, String val) { + this.stationId = stationId; + this.nuclide = nuclide; + this.val = val; + } + + private String stationId; + /** 核素名称 */ private String nuclide; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclIdedAutoMapper.xml b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclIdedAutoMapper.xml index 122a0929..744b8b74 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclIdedAutoMapper.xml +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclIdedAutoMapper.xml @@ -13,6 +13,8 @@ ana.ANALYSISBEGIN BETWEEN to_date(#{startDate},'yyyy-mm-dd hh24:mi:ss') AND to_date(#{endDate},'yyyy-mm-dd hh24:mi:ss') + AND samp.DATA_TYPE = 'S' AND samp.STATUS IN ('P', 'R') + AND samp.STATION_ID = #{stationId} AND nucl.NUCLIDENAME IN diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclIdedManMapper.xml b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclIdedManMapper.xml index 991fb628..4433c6fa 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclIdedManMapper.xml +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsNuclIdedManMapper.xml @@ -13,6 +13,8 @@ ana.ANALYSISBEGIN BETWEEN to_date(#{startDate},'yyyy-mm-dd hh24:mi:ss') AND to_date(#{endDate},'yyyy-mm-dd hh24:mi:ss') + AND samp.DATA_TYPE = 'S' AND samp.STATUS IN ('P', 'R') + AND samp.STATION_ID = #{stationId} AND nucl.NUCLIDENAME IN diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsXeResultsAutoMapper.xml b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsXeResultsAutoMapper.xml index baf156e6..6f75f1cb 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsXeResultsAutoMapper.xml +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/GardsXeResultsAutoMapper.xml @@ -1,7 +1,6 @@ - + SELECT + station_id + from + sys_task_station + where + task_id = + (SELECT + id + FROM + sys_task + where + user_id = #{userId} + and scheduling_date = to_date(#{nowDate}, 'YYYY-MM-DD') + ) + + + \ No newline at end of file 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 058df0d8..4b5d80a6 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 @@ -49,7 +49,7 @@ public interface IStationOperationService extends IService { * @param oneStationId * @return */ - Result getDataReceivingStatus(String userId, String oneStationId); + Result getDataReceivingStatus(String userId, Double cacheTime, 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 309f9ea3..bf8195ae 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 @@ -27,6 +27,13 @@ public interface ISysUserFocusStationService extends IService stationDataMap = (Map) redisUtil.get("stationDataMap"); - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(StationReceivingConfig::getUserId, userId); - StationReceivingConfigStation configStation = stationReceivingConfigMapper.selectOne(queryWrapper); - Double cacheTime = configStation.getCacheTime(); + //调用接口获取数据库中对应缓存配置信息默认值 + if (Objects.isNull(cacheTime) || cacheTime <= 0) { + List> cacheList = cacheTimeService.findCacheTime(); + for (int i=0; i< cacheList.size(); i++){ + if ( StringUtils.isNotBlank(cacheList.get(i).get(CacheName.cacheTime)) ){ + cacheTime = Double.valueOf(cacheList.get(i).get(CacheName.cacheTime)); + } + } + } //获取当前日期时间 作为结束查询时间 LocalDateTime endDate = LocalDateTime.now(); //根据缓存日期 得到开始查询时间 @@ -421,33 +429,45 @@ public class StationOperationServiceImpl extends ServiceImpl stationIds = new LinkedList<>(); //根据用户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()); + if (CollectionUtils.isNotEmpty(userFocusStations)) { + List focusStationIds = userFocusStations.stream().map(SysUserFocusStation::getStationId).collect(Collectors.toList()); + stationIds.addAll(focusStationIds); + } + String nowDate = DateUtils.now(); + List taskStationIds = taskStationMapper.findTaskStation(userId, nowDate); + if (CollectionUtils.isNotEmpty(taskStationIds)) { + stationIds.addAll(taskStationIds); + } + stationIds = stationIds.stream().distinct().collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(stationIds)) { + 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); } - stationDataList.add(stationData); } } } 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 7bd89c5b..7c10d296 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 @@ -8,7 +8,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.common.CacheName; import org.jeecg.common.StationTypeUtil; import org.jeecg.common.api.vo.Result; +import org.jeecg.common.config.mqtoken.UserTokenContext; import org.jeecg.common.system.util.JwtUtil; +import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.RedisUtil; import org.jeecg.common.util.SpringContextUtils; import org.jeecg.modules.base.entity.configuration.GardsStations; @@ -18,9 +20,11 @@ import org.jeecg.modules.entity.StationReceivingConfigStation; import org.jeecg.modules.entity.SysUserFocusStationStation; import org.jeecg.modules.entity.data.UserFocusStation; import org.jeecg.modules.mapper.StationReceivingConfigMapper; +import org.jeecg.modules.mapper.SysTaskStationMapper; import org.jeecg.modules.mapper.SysUserFocusStationMapper; import org.jeecg.modules.service.ICacheTimeService; import org.jeecg.modules.service.ISysUserFocusStationService; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -30,6 +34,8 @@ import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; +import static org.jeecg.common.util.TokenUtils.getTempToken; + @Service("sysUserFocusStationService") public class SysUserFocusStationServiceImpl extends ServiceImpl implements ISysUserFocusStationService { @@ -38,7 +44,7 @@ public class SysUserFocusStationServiceImpl extends ServiceImpl stationInfoMap = (HashMap) redisUtil.get("stationInfoMap"); - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(SysUserFocusStationStation::getUserId, sysUser.getId()); - List sysUserFocusStations = this.baseMapper.selectList(queryWrapper); - if (CollectionUtils.isNotEmpty(sysUserFocusStations)){ - sysUserFocusStations.stream().forEach(item->{ - if (CollectionUtils.isNotEmpty(stationInfoMap)){ - if (Objects.nonNull(stationInfoMap.get(item.getStationId()))){ - GardsStations stations = (GardsStations) stationInfoMap.get(item.getStationId()); - String stationType = stationTypeUtil.getStationType(stations.getStationId()); - item.setStationType(stationType); - item.setStationCode(stations.getStationCode()); - item.setLon(stations.getLon()); - item.setLat(stations.getLat()); - item.setStatus(stations.getStatus()); - item.setAltitude(Objects.isNull(stations.getElevation())?"--":stations.getElevation()+"m"); - } - } - }); - return sysUserFocusStations; - } - return Collections.emptyList(); + //调用公用方法查询关注台站信息 + List resultList = findUserFocusStations(sysUser.getId()); + return resultList; } @Override @@ -91,28 +77,22 @@ public class SysUserFocusStationServiceImpl extends ServiceImpl receivingConfigQueryWrapper = new LambdaQueryWrapper<>(); - receivingConfigQueryWrapper.eq(StationReceivingConfigStation::getUserId, sysUser.getId()); - StationReceivingConfigStation receivingConfig = stationReceivingConfigMapper.selectOne(receivingConfigQueryWrapper); - //如果没有对应的用户缓存信息 则进行新增 - if (Objects.isNull(receivingConfig)){ - receivingConfig = new StationReceivingConfigStation(); - Long id = IdWorker.getId(); - receivingConfig.setId(id.toString()); - receivingConfig.setUserId(sysUser.getId()); - receivingConfig.setCacheTime(userFocusStation.getCacheTime()); - receivingConfig.setScaleInterval(userFocusStation.getScaleInterval()); - receivingConfig.setTimelineLength(userFocusStation.getTimelineLength()); - receivingConfig.setUpdateIntervalTime(userFocusStation.getUpdateIntervalTime()); - stationReceivingConfigMapper.insert(receivingConfig); - }else { - receivingConfig.setCacheTime(userFocusStation.getCacheTime()); - receivingConfig.setScaleInterval(userFocusStation.getScaleInterval()); - receivingConfig.setTimelineLength(userFocusStation.getTimelineLength()); - receivingConfig.setUpdateIntervalTime(userFocusStation.getUpdateIntervalTime()); - stationReceivingConfigMapper.updateById(receivingConfig); + //判断是否包含最大缓存时间 + if (redisUtil.hasKey("maxCacheTime")) { + //最大的缓存时间 + String maxCacheTime = (String) redisUtil.get("maxCacheTime"); + //用户临时记录的缓存时间 + Double cacheTime = userFocusStation.getCacheTime(); + //如果用户临时记录的缓存时间大于最大缓存时间 + if (cacheTime > Double.valueOf(maxCacheTime)) { + redisUtil.set("maxCacheTime", String.valueOf(cacheTime)); + } } + //记录当前用户的临时数据 + redisUtil.set("cacheTime:"+sysUser.getId(), userFocusStation.getCacheTime()); + redisUtil.set("scaleInterval:"+sysUser.getId(), userFocusStation.getScaleInterval()); + redisUtil.set("timelineLength:"+sysUser.getId(), userFocusStation.getTimelineLength()); + redisUtil.set("updateIntervalTime:"+sysUser.getId(), userFocusStation.getUpdateIntervalTime()); } if (CollectionUtils.isNotEmpty(userFocusStation.getStationIds())){ //根据用户id查询出对应的用户关注台站信息 删除用户的所有关注台站信息并重新保存 @@ -135,9 +115,12 @@ public class SysUserFocusStationServiceImpl extends ServiceImpl0) { this.saveBatch(focusStationStationList); } + } else { + //根据用户id查询出对应的用户关注台站信息 删除用户的所有关注台站信息并重新保存 + LambdaQueryWrapper userFocusStationQueryWrapper = new LambdaQueryWrapper<>(); + userFocusStationQueryWrapper.eq(SysUserFocusStationStation::getUserId, sysUser.getId()); + this.baseMapper.delete(userFocusStationQueryWrapper); } - //重新保存后重新缓存 - cacheStationReceivingConfig(); result.success("Save successfully"); return result; } @@ -164,16 +147,28 @@ public class SysUserFocusStationServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(StationReceivingConfigStation::getUserId, userId); - StationReceivingConfigStation receivingConfig = stationReceivingConfigMapper.selectOne(queryWrapper); //如果用户对应的缓存配置信息为空时,查询字典表中的默认值 - if (Objects.isNull(receivingConfig)){ - receivingConfig = new StationReceivingConfigStation(); + StationReceivingConfigStation receivingConfig = new StationReceivingConfigStation(); + //判断用户是否有缓存数据记录 + if (redisUtil.hasKey("cacheTime:"+userId)) { + String cacheTime = String.valueOf(redisUtil.get("cacheTime:"+userId)); + receivingConfig.setCacheTime(Double.valueOf(cacheTime)); + String scaleInterval = String.valueOf(redisUtil.get("scaleInterval:"+userId)); + receivingConfig.setScaleInterval(Double.valueOf(scaleInterval)); + String timelineLength = String.valueOf(redisUtil.get("timelineLength:"+userId)); + receivingConfig.setTimelineLength(Double.valueOf(timelineLength)); + String updateIntervalTime = String.valueOf(redisUtil.get("updateIntervalTime:"+userId)); + receivingConfig.setUpdateIntervalTime(Double.valueOf(updateIntervalTime)); + } else { //调用接口获取数据库中对应缓存配置信息默认值 List> cacheList = cacheTimeService.findCacheTime(); for (int i=0; i< cacheList.size(); i++){ @@ -196,10 +191,10 @@ public class SysUserFocusStationServiceImpl extends ServiceImpl focusStationQueryWrapper = new LambdaQueryWrapper<>(); focusStationQueryWrapper.eq(SysUserFocusStationStation::getUserId, userId); List sysUserFocusStations = this.baseMapper.selectList(focusStationQueryWrapper); - if (Objects.nonNull(sysUserFocusStations)){ + if (CollectionUtils.isNotEmpty(sysUserFocusStations)){ receivingConfig.setSysUserFocusStations(sysUserFocusStations); } else { - receivingConfig.setSysUserFocusStations(new ArrayList<>()); + receivingConfig.setSysUserFocusStations(Collections.emptyList()); } result.setSuccess(true); result.setResult(receivingConfig); @@ -208,9 +203,110 @@ public class SysUserFocusStationServiceImpl extends ServiceImpl> cacheList = cacheTimeService.findCacheTime(); + for (int i=0; i< cacheList.size(); i++){ + if ( StringUtils.isNotBlank(cacheList.get(i).get(CacheName.cacheTime)) ){ + maxCacheTime = cacheList.get(i).get(CacheName.cacheTime); + } + } + if (StringUtils.isNotBlank(maxCacheTime)) { + redisUtil.set("maxCacheTime", maxCacheTime); + } + UserTokenContext.remove(); + } + + private List findUserFocusStations(String userId) { + List resultList = new LinkedList<>(); + //查询全部台站信息 + HashMap stationInfoMap = (HashMap) redisUtil.get("stationInfoMap"); + //根据用户id查询关注台站信息 + LambdaQueryWrapper focusStationQueryWrapper = new LambdaQueryWrapper<>(); + focusStationQueryWrapper.eq(SysUserFocusStationStation::getUserId, userId); + List sysUserFocusStations = this.baseMapper.selectList(focusStationQueryWrapper); + //根据用户id查询排班任务的台站信息 + //查询用户的排班任务 + String nowDate = DateUtils.now(); + List taskStation = taskStationMapper.findTaskStation(userId, nowDate); + //判断用户是否有关注台站列表 + if (CollectionUtils.isNotEmpty(sysUserFocusStations)){ + //遍历关注台站列表 + for (SysUserFocusStationStation item:sysUserFocusStations) { + //判断台站map是否为空 + if (CollectionUtils.isNotEmpty(stationInfoMap)){ + //判断台站map是否包含当前台站id + if (Objects.nonNull(stationInfoMap.get(item.getStationId()))){ + //获取台站信息 + GardsStations stations = (GardsStations) stationInfoMap.get(item.getStationId()); + //获取台站类型 + String stationType = stationTypeUtil.getStationType(stations.getStationId()); + item.setStationType(stationType); + item.setStationCode(stations.getStationCode()); + item.setLon(stations.getLon()); + item.setLat(stations.getLat()); + item.setStatus(stations.getStatus()); + item.setAltitude(Objects.isNull(stations.getElevation())?"--":stations.getElevation()+"m"); + item.setScheduling(false); + resultList.add(item); + } + } + } + } + if (CollectionUtils.isNotEmpty(taskStation)) { + //遍历排班任务id + for (String stationId:taskStation) { + //台站map不为空 + if (CollectionUtils.isNotEmpty(stationInfoMap)){ + if (Objects.nonNull(stationInfoMap.get(stationId))){ + SysUserFocusStationStation item = new SysUserFocusStationStation(); + //获取台站信息 + GardsStations stations = (GardsStations) stationInfoMap.get(stationId); + //获取台站类型 + String stationType = stationTypeUtil.getStationType(stations.getStationId()); + //将台站信息复制给关注台站实体类 + BeanUtils.copyProperties(stations, item); + item.setStationId(stationId); + item.setUserId(userId); + item.setStationType(stationType); + item.setStationCode(stations.getStationCode()); + item.setLon(stations.getLon()); + item.setLat(stations.getLat()); + item.setStatus(stations.getStatus()); + item.setAltitude(Objects.isNull(stations.getElevation())?"--":stations.getElevation()+"m"); + item.setScheduling(true); + resultList.add(item); + } + } + } + } + List removeIndex = new LinkedList<>(); + for (int i=0; i Date: Mon, 19 Feb 2024 15:38:11 +0800 Subject: [PATCH 025/133] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E5=A2=9E=E5=8A=A0=E5=88=A4=E6=96=AD=EF=BC=8C?= =?UTF-8?q?acq=E7=9A=84liveTime=E5=AD=97=E6=AE=B5=E5=92=8CrealTime?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=A2=9E=E5=8A=A0=E5=88=A4=E6=96=AD=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E6=98=AF=E6=AD=A3=E5=B8=B8=E7=9A=84=E6=95=B0=E5=AD=97?= =?UTF-8?q?=EF=BC=8C=E5=A6=82=E6=9E=9C=E4=B8=8D=E6=98=AF=E5=88=99=E6=94=BE?= =?UTF-8?q?=E5=85=A5=E5=88=B0errorFile=E7=9B=AE=E5=BD=95=E4=B8=8B=20?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86=E6=A8=A1=E5=9D=97=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E7=A7=BB=E5=8A=A8=E5=A2=9E=E5=8A=A0=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E5=A6=82=E6=9E=9C=E6=9D=A5=E6=BA=90=E6=98=AFundeal=E5=B9=B6?= =?UTF-8?q?=E4=B8=94=E4=B8=8D=E6=98=AF=E6=96=87=E4=BB=B6=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E7=9A=84=E9=94=99=E8=AF=AF=EF=BC=8C=E5=88=A4=E6=96=AD=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E6=98=AF=E6=97=A5=E6=9C=9F=E6=A0=BC=E5=BC=8F=E9=94=99?= =?UTF-8?q?=E8=AF=AF=EF=BC=8C=E5=A6=82=E6=9E=9C=E6=98=AF=E5=88=99=E5=B0=86?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E7=A7=BB=E5=8A=A8=E5=88=B0errorFile=E4=B8=8B?= =?UTF-8?q?=EF=BC=8C=E5=A6=82=E6=9E=9C=E4=B8=8D=E6=98=AF=E5=88=99=E4=B8=8D?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AbstractS_D_Q_G_SpectrumHandler.java | 4 ++++ .../spectrum/AbstractSpectrumHandler.java | 16 +++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) 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 b4b8d79a..a11e7aab 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 @@ -118,6 +118,10 @@ public abstract class AbstractS_D_Q_G_SpectrumHandler extends AbstractSpectrumHa } else if (StringUtils.isNotBlank(sourceData.acquisition_start_time) && StringUtils.isNotBlank(sourceData.acquisition_start_date)) { DateUtils.parseDate(sourceData.acquisition_start_date + StringPool.SPACE + sourceData.acquisition_start_time); } + + if (!Double.isFinite(sourceData.acquisition_live_time) || !Double.isFinite(sourceData.acquisition_real_time)) { + throw new RuntimeException(); + } } catch (Exception e) { //将文件移动到错误文件目录 super.isDateFormatErr = true; 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 009d7f09..b0c78ebb 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 @@ -306,8 +306,22 @@ public abstract class AbstractSpectrumHandler extends AbstractChain { 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)){ + } else if(SpectrumSource.FROM_FILE_SOURCE.getSourceType().equals(spectrumSource) && (e instanceof FileRepeatException)){ this.spectrumFile.delete(); + } else if (SpectrumSource.FORM_FILE_UNDEL.getSourceType().equals(spectrumSource) && !(e instanceof FileRepeatException)) { + try { + if (isDateFormatErr) { + //修改能谱文件名称 + this.updateErrorSpectrumFileName(); + //解析失败会把文件移动到errorfile目录 + final String rootPath = spectrumServiceQuotes.getSpectrumPathProperties().getRootPath(); + final String errorFilePath = spectrumServiceQuotes.getSpectrumPathProperties().getErrorFilePath(); + final String finalPath = rootPath+errorFilePath; + FileOperation.moveFile(spectrumFile,finalPath,true); + } + } catch (IOException ex) { + throw new RuntimeException(ex); + } } } From df379a6b17da668ec7f9ed274ac5f37fb47f8bed Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 19 Feb 2024 17:01:21 +0800 Subject: [PATCH 026/133] =?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=A8=A1=E5=9D=97=E6=9F=A5=E8=AF=A2=E5=8F=B0?= =?UTF-8?q?=E7=AB=99=E7=9B=91=E6=B5=8B=E6=95=B0=E6=8D=AE=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=86=85=E5=AE=B9=E8=BF=87=E6=BB=A4=E5=90=8E?= =?UTF-8?q?=E7=9A=84=E5=86=85=E5=AE=B9=E8=BF=94=E5=9B=9E=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=E8=BF=94=E5=9B=9E=E5=85=A8=E9=83=A8=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/service/impl/StationOperationServiceImpl.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 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 4a5cc75e..6bfb88fc 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 @@ -424,8 +424,10 @@ public class StationOperationServiceImpl extends ServiceImpl detectorDataMap:detectorValue) { for (String key :detectorDataMap.keySet()) { DetectorData detectorData = detectorDataMap.get(key); + List dataList = detectorData.getDataList(); //通过流过滤出数据的开始时间戳在用户统计的开始时间戳之后的数据 - detectorData.getDataList().stream().filter(item -> item.getBeginTime() >= startMill).collect(Collectors.toList()); + dataList = dataList.stream().filter(item -> item.getBeginTime() >= startMill).collect(Collectors.toList()); + detectorData.setDataList(dataList); } } } @@ -461,8 +463,10 @@ public class StationOperationServiceImpl extends ServiceImpl detectorDataMap:detectorValue) { for (String key :detectorDataMap.keySet()) { DetectorData detectorData = detectorDataMap.get(key); + List dataList = detectorData.getDataList(); //通过流过滤出数据的开始时间戳在用户统计的开始时间戳之后的数据 - detectorData.getDataList().stream().filter(item -> item.getBeginTime() >= startMill).collect(Collectors.toList()); + dataList = dataList.stream().filter(item -> item.getBeginTime() >= startMill).collect(Collectors.toList()); + detectorData.setDataList(dataList); } } } From 09b2eb9739e5177d38ba44b995b7729c3512dbbe Mon Sep 17 00:00:00 2001 From: nieziyan Date: Mon, 19 Feb 2024 18:57:43 +0800 Subject: [PATCH 027/133] =?UTF-8?q?fix=EF=BC=9A1.=E9=94=99=E8=AF=AFeml?= =?UTF-8?q?=E6=83=85=E5=86=B5=E5=A4=84=E7=90=862.=E6=A0=B8=E7=B4=A0?= =?UTF-8?q?=E6=B5=93=E5=BA=A6=E5=9D=87=E5=80=BC=E5=88=97=E8=A1=A8=E9=A1=B5?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=BF=87=E6=BB=A4=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/email/EmailServiceManager.java | 37 +++++++++++++++++-- .../exception/DownloadEmailException.java | 15 ++++++++ .../properties/SpectrumPathProperties.java | 5 +++ .../modules/base/bizVo/NuclideAvgVo.java | 4 ++ .../jeecg/modules/base/dto/NuclideAvgDto.java | 4 ++ .../AlarmAnalysisNuclideAvgController.java | 2 +- .../xml/AlarmAnalysisNuclideAvgMapper.xml | 9 ++++- .../AlarmAnalysisNuclideAvgServiceImpl.java | 12 +++++- .../spectrum/SpectrumParsingActuator.java | 13 ++++++- .../jeecg/JeecgAutoProcessApplication.java | 1 + .../JeecgSpectrumAnalysisApplication.java | 8 ++-- 11 files changed, 97 insertions(+), 13 deletions(-) create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/common/exception/DownloadEmailException.java 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 fe112ee7..960eb5d9 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 @@ -1,6 +1,8 @@ package org.jeecg.common.email; +import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.google.common.collect.Lists; import com.sun.mail.imap.IMAPStore; @@ -12,6 +14,7 @@ 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.exception.DownloadEmailException; import org.jeecg.common.properties.SpectrumPathProperties; import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.Md5Util; @@ -512,9 +515,10 @@ public class EmailServiceManager { /** * 把邮件下载到eml目录 * 格式为:发件人_主题_年月日_时分秒毫秒_计数(0-10000) + * 新格式为:发件人_主题_年月日_时分秒毫秒_receive_年月日_时分秒毫秒_计数(0-10000) * 当计数大于10000后从0开始,服务重启后也从0开始 */ - public File downloadEmailToEmlDir(@NotNull Message message,Integer emailCounter) throws MessagingException, IOException { + public File downloadEmailToEmlDir(@NotNull Message message,Integer emailCounter) throws MessagingException { String subject = ""; File emlFile = null; String status = EmailLogManager.STATUS_SUCCESS; @@ -540,6 +544,12 @@ public class EmailServiceManager { fileName.append(StringConstant.UNDER_LINE); fileName.append(DateUtils.formatDate(new Date(),"HHMMSSSSS")); fileName.append(StringConstant.UNDER_LINE); + fileName.append("receive"); + fileName.append(StringConstant.UNDER_LINE); + fileName.append(DateUtils.formatDate(message.getReceivedDate(),"YYMMdd")); + fileName.append(StringConstant.UNDER_LINE); + fileName.append(DateUtils.formatDate(message.getReceivedDate(),"HHMMSSSSS")); + fileName.append(StringConstant.UNDER_LINE); fileName.append(emailCounter); fileName.append(SAVE_EML_SUFFIX); final String rootPath = spectrumPathProperties.getRootPath(); @@ -547,10 +557,11 @@ public class EmailServiceManager { emlFile = new File(rootPath+emlPath+File.separator+fileName); message.writeTo(new FileOutputStream(emlFile)); } catch (MessagingException | IOException e) { - //下载邮件失败 + // 下载邮件失败 抛出自定义邮件下载异常 status = EmailLogManager.STATUS_ERROR; - log.error("The email download failed, the subject of the email is {}, the reason is {}.",subject,e.getMessage()); - throw e; + String errorMsg = StrUtil.format("The email download failed, the subject of the email is {}, the reason is {}.", subject, e.getMessage()); + log.error(errorMsg); + throw new DownloadEmailException(errorMsg); }finally { EmailLogEvent event = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,status,EmailLogManager.GETIDEML,subject,message.getReceivedDate(), (Objects.isNull(emlFile)?" ":emlFile.getAbsolutePath())); @@ -560,6 +571,24 @@ public class EmailServiceManager { return emlFile; } + /* + * 将eml中下载的未通过内容校验的邮件 移动到emlError目录 + * */ + public void emlToEmlError(File emlFile){ + if (ObjectUtil.isNull(emlFile)) return; + final String filename = emlFile.getName(); + try { + final String rootPath = spectrumPathProperties.getRootPath(); + final String emlErrorPath = spectrumPathProperties.getEmlErrorPath(); + File destDir = new File(rootPath + emlErrorPath); + // 如果目标目录不存在 则先创建 + if (!destDir.exists()) destDir.mkdir(); + FileUtil.move(emlFile, destDir, true); + }catch (Exception e){ + log.error("The error email {} move from eml to emlError failed: {}", filename, e.getMessage()); + } + } + /** * 删除邮件 * @param message diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/exception/DownloadEmailException.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/exception/DownloadEmailException.java new file mode 100644 index 00000000..626d77ff --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/exception/DownloadEmailException.java @@ -0,0 +1,15 @@ +package org.jeecg.common.exception; + +/* +* 自定义 邮件下载异常 +* */ +public class DownloadEmailException extends RuntimeException{ + + public DownloadEmailException() { + super(); + } + + public DownloadEmailException(String message) { + super(message); + } +} diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/SpectrumPathProperties.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/SpectrumPathProperties.java index 43ac51f1..ce6d5e35 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/SpectrumPathProperties.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/SpectrumPathProperties.java @@ -39,6 +39,11 @@ public class SpectrumPathProperties implements Serializable { */ private String emlPath; + /** + * eml格式错误邮件存储路径 + */ + private String emlErrorPath; + /** * 日志文件存储路径 */ diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/bizVo/NuclideAvgVo.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/bizVo/NuclideAvgVo.java index e7effb0b..5f8adbfc 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/bizVo/NuclideAvgVo.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/bizVo/NuclideAvgVo.java @@ -9,4 +9,8 @@ public class NuclideAvgVo extends QueryRequest { private String startDate; private String endDate; + + private String stationId; + + private String sourceType; } diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/NuclideAvgDto.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/NuclideAvgDto.java index 9139aa95..5bb144a7 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/NuclideAvgDto.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/NuclideAvgDto.java @@ -10,6 +10,10 @@ import java.time.LocalDate; @Data public class NuclideAvgDto implements Serializable { + private String stationId; + + private String stationCode; + /** 核素名称 */ private String nuclide; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisNuclideAvgController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisNuclideAvgController.java index 50dfa0ff..35750e6e 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisNuclideAvgController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisNuclideAvgController.java @@ -19,7 +19,7 @@ public class AlarmAnalysisNuclideAvgController extends JeecgController findPage(NuclideAvgVo nuclideAvgVo){ Page result = service.findPage(nuclideAvgVo); return Result.OK(result); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/AlarmAnalysisNuclideAvgMapper.xml b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/AlarmAnalysisNuclideAvgMapper.xml index cc9db717..0e604a4b 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/AlarmAnalysisNuclideAvgMapper.xml +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/AlarmAnalysisNuclideAvgMapper.xml @@ -4,6 +4,7 @@ \ No newline at end of file diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisNuclideAvgServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisNuclideAvgServiceImpl.java index d95ef555..2659c56d 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisNuclideAvgServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisNuclideAvgServiceImpl.java @@ -6,8 +6,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.jeecg.modules.base.dto.NuclideAvgDto; import org.jeecg.modules.base.entity.postgre.AlarmAnalysisNuclideAvg; import org.jeecg.modules.base.bizVo.NuclideAvgVo; +import org.jeecg.modules.feignclient.SystemClient; import org.jeecg.modules.mapper.AlarmAnalysisNuclideAvgMapper; import org.jeecg.modules.service.IAlarmAnalysisNuclideAvgService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -16,10 +18,14 @@ import java.time.LocalDate; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.stream.Collectors; @Service public class AlarmAnalysisNuclideAvgServiceImpl extends ServiceImpl implements IAlarmAnalysisNuclideAvgService { + @Autowired + private SystemClient systemClient; + @Override public List list(Set nuclideNames,String dataSourceType) { LocalDate dayAgo = LocalDate.now().minusDays(1); @@ -37,6 +43,10 @@ public class AlarmAnalysisNuclideAvgServiceImpl extends ServiceImpl params = BeanUtil.beanToMap(nuclideAvgVo); Page page = new Page<>(pageNo, pageSize); page = baseMapper.findPage(page, params); - return page; + List nuclideAvgs = page.getRecords(); + List stationIds = nuclideAvgs.stream().map(NuclideAvgDto::getStationId).collect(Collectors.toList()); + Map codeMap = systemClient.stationCodesMap(stationIds); + nuclideAvgs.forEach(item -> item.setStationCode(codeMap.get(item.getStationId()))); + return page.setRecords(nuclideAvgs); } } 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 4af40e0a..e4dfd60f 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 @@ -8,12 +8,14 @@ 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.exception.DownloadEmailException; 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.nio.file.Files; import java.util.Objects; import java.util.concurrent.CountDownLatch; @@ -96,6 +98,7 @@ public class SpectrumParsingActuator implements Runnable{ } //判断是否是IMS2.0协议文件 + // 如果邮件内容校验成功 将文件保存到eml目录 并删除邮件对象 if(checkMailContent(mailContent,subject)){ AbstractSpectrumHandler spectrumHandler = new SamplephdSpectrum(); spectrumHandler.init(mailContent.toString(),emlFile.getName(),spectrumServiceQuotes,new StringBuilder(),SpectrumSource.FORM_EMAIL_SERVICE.getSourceType()); @@ -106,10 +109,16 @@ public class SpectrumParsingActuator implements Runnable{ }else{ log.warn("This email {} parsing failed and is not listed in the Met, Alert, SOH, Sample, Detbkphd, QC, Gasbkphd spectra.",subject); } + emailServiceManager.removeMail(message); + } + // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError + else { + emailServiceManager.emlToEmlError(emlFile); } - emailServiceManager.removeMail(message); } catch (Exception e) { - emailServiceManager.removeMail(message); + // 如果邮件正常下载 则删除下载的邮件对象 + if (!(e instanceof DownloadEmailException)) + emailServiceManager.removeMail(message); e.printStackTrace(); }finally { try { 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 ab22ec69..06b5bc9b 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 @@ -120,6 +120,7 @@ public class JeecgAutoProcessApplication extends SpringBootServletInitializer im FileUtil.mkdir(spectrumPathProperties.getRootPath()+File.separator+spectrumPathProperties.getUndealPath()); FileUtil.mkdir(spectrumPathProperties.getRootPath()+File.separator+spectrumPathProperties.getFilesourcePath()); FileUtil.mkdir(spectrumPathProperties.getRootPath()+File.separator+spectrumPathProperties.getEmlPath()); + FileUtil.mkdir(spectrumPathProperties.getRootPath()+File.separator+spectrumPathProperties.getEmlErrorPath()); FileUtil.mkdir(spectrumPathProperties.getRootPath()+File.separator+spectrumPathProperties.getErrorFilePath()); } } \ No newline at end of file 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 695c9169..0709c795 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 @@ -63,11 +63,11 @@ public class JeecgSpectrumAnalysisApplication extends SpringBootServletInitializ @Override public void run(String... args) throws Exception { //Windows加载dll工具库 - /*System.loadLibrary("ReadPHDFile"); - System.loadLibrary("GammaAnaly");*/ + System.loadLibrary("ReadPHDFile"); + System.loadLibrary("GammaAnaly"); //Linux版本加载dll工具库 - System.load("/usr/local/jdk/lib/libReadPHDFile.so"); - System.load("/usr/local/jdk/lib/libGammaAnalyALG.so"); + /*System.load("/usr/local/jdk/lib/libReadPHDFile.so"); + System.load("/usr/local/jdk/lib/libGammaAnalyALG.so");*/ //创建缓存 betaCache.initCache(); localCache.initCache(); From 373b8a2b5b65cbb5a4c5790051abde381a2cb632 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Tue, 20 Feb 2024 10:23:39 +0800 Subject: [PATCH 028/133] =?UTF-8?q?fix=EF=BC=9A=E5=8A=A0=E8=BD=BDLinux=20d?= =?UTF-8?q?ll=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/jeecg/JeecgAutoProcessApplication.java | 8 ++++++-- .../java/org/jeecg/JeecgSpectrumAnalysisApplication.java | 8 ++++---- 2 files changed, 10 insertions(+), 6 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 06b5bc9b..85ff15c6 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 @@ -69,8 +69,12 @@ public class JeecgAutoProcessApplication extends SpringBootServletInitializer im @Override public void run(String... args) throws Exception { //调用dll - System.loadLibrary("ReadPHDFile"); - System.loadLibrary("GammaAnaly"); + //Windows加载dll工具库 + /*System.loadLibrary("ReadPHDFile"); + System.loadLibrary("GammaAnaly");*/ + //Linux版本加载dll工具库 + System.load("/usr/local/jdk/lib/libReadPHDFile.so"); + System.load("/usr/local/jdk/lib/libGammaAnalyALG.so"); nuclLibService.getNuclideMap(); //根据配置文件配置邮件获取策略定义时间条件,默认EmailReceivePolicy.HISTORY_ORDER_RECEIVE.getPolicy() Date systemStartupTime = null; 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 0709c795..695c9169 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 @@ -63,11 +63,11 @@ public class JeecgSpectrumAnalysisApplication extends SpringBootServletInitializ @Override public void run(String... args) throws Exception { //Windows加载dll工具库 - System.loadLibrary("ReadPHDFile"); - System.loadLibrary("GammaAnaly"); + /*System.loadLibrary("ReadPHDFile"); + System.loadLibrary("GammaAnaly");*/ //Linux版本加载dll工具库 - /*System.load("/usr/local/jdk/lib/libReadPHDFile.so"); - System.load("/usr/local/jdk/lib/libGammaAnalyALG.so");*/ + System.load("/usr/local/jdk/lib/libReadPHDFile.so"); + System.load("/usr/local/jdk/lib/libGammaAnalyALG.so"); //创建缓存 betaCache.initCache(); localCache.initCache(); From 735d9a1c592f37ecabab9aca0ba55ba1fe07f93b Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Tue, 20 Feb 2024 11:51:59 +0800 Subject: [PATCH 029/133] =?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=A8=A1=E5=9D=97=E6=9F=A5=E8=AF=A2=E5=8F=B0?= =?UTF-8?q?=E7=AB=99=E7=9B=91=E6=B5=8B=E6=95=B0=E6=8D=AE=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=86=85=E5=AE=B9=E8=BF=87=E6=BB=A4=E6=9D=A1?= =?UTF-8?q?=E4=BB=B6=E5=BC=80=E5=A7=8B=E6=97=B6=E9=97=B4=E6=AF=AB=E7=A7=92?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E7=A7=92=20=E4=BA=BA=E5=B7=A5=E4=BA=A4?= =?UTF-8?q?=E4=BA=92=E6=A8=A1=E5=9D=97gamma=E9=83=A8=E5=88=86Spectrum?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=96=B9=E6=B3=95=E8=AF=BB=E5=8F=96phd?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=86=85=E5=AE=B9=20=E4=BA=BA=E5=B7=A5?= =?UTF-8?q?=E4=BA=A4=E4=BA=92=E6=A8=A1=E5=9D=97gamma=E9=83=A8=E5=88=86Spec?= =?UTF-8?q?trum=E6=9F=A5=E7=9C=8B=E5=8A=9F=E8=83=BD=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0tab=E9=A1=B5=E6=98=BE=E7=A4=BA=E5=8E=9Fphd=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/common/util/GammaFileUtil.java | 11 +++++++++++ .../jeecg/modules/service/impl/GammaServiceImpl.java | 8 +++++++- .../service/impl/StationOperationServiceImpl.java | 2 +- 3 files changed, 19 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 ab07c8be..2d500215 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 @@ -4359,6 +4359,17 @@ public class GammaFileUtil extends AbstractLogOrReport { return ftpUtil.downloadFile(fromPath, "betaGamma"); } + public List readLine(String filePath) { + List allLines = new ArrayList<>(); + try { + File file = new File(filePath); + return FileUtils.readLines(file, "UTF-8"); + }catch (IOException e){ + e.printStackTrace(); + return allLines; + } + } + public String makeUpSpectrum(PHDFile phd) { StringBuilder spectrum = new StringBuilder(); //PHD文本内容头部部分 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 3b472707..95a12029 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 @@ -4411,6 +4411,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi @Override public Result Spectrum(Integer sampleId, String fileName, HttpServletRequest request) { Result result = new Result(); + Map map = new HashMap<>(); String userName = JwtUtil.getUserNameByToken(request); Cache phdCache = localCache.getPHDCache(); PHDFile phd = phdCache.getIfPresent(fileName + StringPool.DASH + userName); @@ -4419,8 +4420,13 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi return result; } String spectrum = gammaFileUtil.makeUpSpectrum(phd); + map.put("Spectrum", spectrum); + if(StringUtils.isNotBlank(phd.getTmpFilePath())) { + List lines = gammaFileUtil.readLine(phd.getTmpFilePath()); + map.put("phdSpectrum", lines); + } result.setSuccess(true); - result.setResult(spectrum); + result.setResult(map); return result; } 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 6bfb88fc..2cf66ee6 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 @@ -407,7 +407,7 @@ public class StationOperationServiceImpl extends ServiceImpl stationDataList = new LinkedList<>(); if (CollectionUtils.isNotEmpty(stationDataMap)) { From 8219e50afe52367179efa5de596f7175d03073e7 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Tue, 20 Feb 2024 14:59:03 +0800 Subject: [PATCH 030/133] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86?= =?UTF-8?q?=E9=82=AE=E7=AE=B1=E9=83=A8=E5=88=86=E9=82=AE=E7=AE=B1=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E5=81=9C=E6=AD=A2=E8=AF=AD=E5=8F=A5=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=8C=E8=BE=93=E5=87=BA=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=E6=94=B9=E4=B8=BAlog=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/jeecg/modules/EmailParsingActuator.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 00351894..7b1064b7 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 @@ -1,10 +1,12 @@ package org.jeecg.modules; import lombok.Setter; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ArrayUtils; import org.jeecg.common.email.EmailLogManager; import org.jeecg.common.email.EmailServiceManager; import org.jeecg.common.properties.TaskProperties; +import org.jeecg.common.util.DateUtils; import org.jeecg.modules.email.EmailProperties; import org.jeecg.modules.spectrum.EmailCounter; import org.jeecg.modules.spectrum.SpectrumLogManager; @@ -22,6 +24,7 @@ import java.util.concurrent.*; /** * 邮件解析执行器 */ +@Slf4j public class EmailParsingActuator extends Thread{ private TaskProperties taskProperties; @@ -58,7 +61,8 @@ public class EmailParsingActuator extends Thread{ public void run() { for(;;){ if (isStop) { - System.out.println("EmailParsingActuator is Stop!"); + String nowDate = DateUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss"); + log.info(nowDate + " " +this.emailProperties.getName()+" EmailParsingActuator is Stop!"); return; } long start = System.currentTimeMillis(); From 0a26492926f4bfd7010c2376364eed92249851a6 Mon Sep 17 00:00:00 2001 From: panbaolin <123456> Date: Tue, 20 Feb 2024 15:01:56 +0800 Subject: [PATCH 031/133] =?UTF-8?q?fix:1.=E6=96=B0=E5=8A=A0=E6=AF=8F?= =?UTF-8?q?=E6=AC=A1=E8=8E=B7=E5=8F=96=E9=82=AE=E4=BB=B6=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E6=97=A5=E5=BF=972.=E4=BF=AE=E6=94=B9=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E6=8E=A5=E6=94=B6=E6=97=B6=E9=97=B4=E4=B8=8D=E5=87=86=E7=A1=AE?= =?UTF-8?q?=E9=97=AE=E9=A2=983.=E4=BF=AE=E6=94=B9=E7=A7=BB=E5=8A=A8errorEm?= =?UTF-8?q?l=E7=9B=AE=E5=BD=95=E6=96=87=E4=BB=B6=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E9=94=99=E8=AF=AF=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/EmailLogEvent.java | 7 ++-- .../jeecg/common/email/EmailLogManager.java | 6 ++-- .../common/email/EmailServiceManager.java | 32 ++++--------------- .../jeecg/modules/EmailParsingActuator.java | 2 ++ .../spectrum/SpectrumParsingActuator.java | 20 ++++++++---- 5 files changed, 29 insertions(+), 38 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailLogEvent.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailLogEvent.java index c086e40a..37109c2e 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailLogEvent.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailLogEvent.java @@ -2,7 +2,6 @@ package org.jeecg.common.email; import lombok.Data; import org.jeecg.modules.base.entity.postgre.SysEmail; - import java.util.Date; /** @@ -34,7 +33,7 @@ public class EmailLogEvent { /** * 接收时间 */ - private Date recieveTime; + private String recieveTime; /** * 能谱文件名称 */ @@ -82,7 +81,7 @@ public class EmailLogEvent { this.logTime = new Date(); } - public EmailLogEvent(String gsType,String state, String logProcess,String subject,Date recieveTime,String emlPath) { + public EmailLogEvent(String gsType,String state, String logProcess,String subject,String recieveTime,String emlPath) { this.gsType = gsType; this.state = state; this.logProcess = logProcess; @@ -92,7 +91,7 @@ public class EmailLogEvent { this.logTime = new Date(); } - public EmailLogEvent(String gsType,String state, String logProcess,String subject,Date recieveTime) { + public EmailLogEvent(String gsType,String state, String logProcess,String subject,String recieveTime) { this.gsType = gsType; this.state = state; this.logProcess = logProcess; diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailLogManager.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailLogManager.java index de0596ef..67f8f682 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailLogManager.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailLogManager.java @@ -238,7 +238,7 @@ public class EmailLogManager { logContent.append(" Get File subject:"); logContent.append(event.getSubject()); logContent.append(" recieve datetime:"); - logContent.append(DateUtils.formatDate(event.getRecieveTime(),"yyyy-MM-dd HH:mm:ss:SSS")); + logContent.append(event.getRecieveTime()); logContent.append(event.getState()); logContent.append(" EmlFile "); logContent.append(event.getEmlPath()); @@ -259,7 +259,7 @@ public class EmailLogManager { logContent.append(" Delete File subject:"); logContent.append(event.getSubject()); logContent.append(" recieve datetime:"); - logContent.append(DateUtils.formatDate(event.getRecieveTime(),"yyyy-MM-dd HH:mm:ss:SSS")); + logContent.append(event.getRecieveTime()); logContent.append(event.getState()); logContent.append(LOG_SUFFIX); logContent.append(System.lineSeparator()); @@ -278,7 +278,7 @@ public class EmailLogManager { logContent.append(" Expunge File subject:"); logContent.append(event.getSubject()); logContent.append(" recieve datetime:"); - logContent.append(DateUtils.formatDate(event.getRecieveTime(),"yyyy-MM-dd HH:mm:ss:SSS")); + logContent.append(event.getRecieveTime()); logContent.append(event.getState()); logContent.append(LOG_SUFFIX); logContent.append(System.lineSeparator()); 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 960eb5d9..35009219 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 @@ -522,6 +522,7 @@ public class EmailServiceManager { String subject = ""; File emlFile = null; String status = EmailLogManager.STATUS_SUCCESS; + Date receivedDate = null; try { //获取发件人 final String address = ((InternetAddress) message.getFrom()[0]).getAddress(); @@ -534,7 +535,7 @@ public class EmailServiceManager { if(subject.indexOf(StringConstant.COLON) != -1){ subject = StringUtils.replace(subject,StringConstant.COLON,""); } - + receivedDate = message.getReceivedDate(); StringBuilder fileName = new StringBuilder(); fileName.append(from); fileName.append(StringConstant.UNDER_LINE); @@ -546,9 +547,9 @@ public class EmailServiceManager { fileName.append(StringConstant.UNDER_LINE); fileName.append("receive"); fileName.append(StringConstant.UNDER_LINE); - fileName.append(DateUtils.formatDate(message.getReceivedDate(),"YYMMdd")); + fileName.append(DateUtils.formatDate(receivedDate,"YYMMdd")); fileName.append(StringConstant.UNDER_LINE); - fileName.append(DateUtils.formatDate(message.getReceivedDate(),"HHMMSSSSS")); + fileName.append(DateUtils.formatDate(receivedDate,"HHMMSSSSS")); fileName.append(StringConstant.UNDER_LINE); fileName.append(emailCounter); fileName.append(SAVE_EML_SUFFIX); @@ -563,32 +564,13 @@ public class EmailServiceManager { log.error(errorMsg); throw new DownloadEmailException(errorMsg); }finally { - EmailLogEvent event = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,status,EmailLogManager.GETIDEML,subject,message.getReceivedDate(), + EmailLogEvent event = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,status,EmailLogManager.GETIDEML,subject,DateUtils.formatDate(receivedDate,"yyyy-MM-dd HH:mm:ss:SSS"), (Objects.isNull(emlFile)?" ":emlFile.getAbsolutePath())); EmailLogManager.getInstance().offer(Thread.currentThread().getId(),event); } - return emlFile; } - /* - * 将eml中下载的未通过内容校验的邮件 移动到emlError目录 - * */ - public void emlToEmlError(File emlFile){ - if (ObjectUtil.isNull(emlFile)) return; - final String filename = emlFile.getName(); - try { - final String rootPath = spectrumPathProperties.getRootPath(); - final String emlErrorPath = spectrumPathProperties.getEmlErrorPath(); - File destDir = new File(rootPath + emlErrorPath); - // 如果目标目录不存在 则先创建 - if (!destDir.exists()) destDir.mkdir(); - FileUtil.move(emlFile, destDir, true); - }catch (Exception e){ - log.error("The error email {} move from eml to emlError failed: {}", filename, e.getMessage()); - } - } - /** * 删除邮件 * @param message @@ -607,10 +589,10 @@ public class EmailServiceManager { log.error("Email deletion failed, the subject of the email is :{}, the reason is :{}.",subject,e.getMessage()); e.printStackTrace(); }finally { - EmailLogEvent removeEvent = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,status,EmailLogManager.DELETEID,subject,receivedDate); + EmailLogEvent removeEvent = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,status,EmailLogManager.DELETEID,subject,DateUtils.formatDate(receivedDate,"yyyy-MM-dd HH:mm:ss:SSS")); EmailLogManager.getInstance().offer(Thread.currentThread().getId(),removeEvent); //这里删除和彻底删除一起写入日志,java和C++处理有差异,java是在连接关闭时彻底删除的 - EmailLogEvent expungeEvent = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,status,EmailLogManager.EXPUNGE,subject,receivedDate); + EmailLogEvent expungeEvent = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,status,EmailLogManager.EXPUNGE,subject,DateUtils.formatDate(receivedDate,"yyyy-MM-dd HH:mm:ss:SSS")); EmailLogManager.getInstance().offer(Thread.currentThread().getId(),expungeEvent); } } 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 7b1064b7..084e41e7 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 @@ -73,6 +73,7 @@ public class EmailParsingActuator extends Thread{ try { Message[] messages = emailServiceManager.receiveMail(); if(ArrayUtils.isNotEmpty(messages)){ + log.info("EmailParsingActuator本次获取邮件数量为:{}",messages.length); //检验获取的邮件是否在之前删除失败列表中,若在直接调用邮件API删除,并且此次数组里元素也删除 for(int i=messages.length-1;i>=0;i--){ if (!messages[i].isExpunged()){ @@ -84,6 +85,7 @@ public class EmailParsingActuator extends Thread{ } } } + log.info("EmailParsingActuator本次真实执行邮件数量为:{}",messages.length); CountDownLatch taskLatch = new CountDownLatch(messages.length); for(Message message : messages){ SpectrumParsingActuator spectrumParsingActuator = new SpectrumParsingActuator(); 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 e4dfd60f..f1e80ace 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 @@ -1,6 +1,7 @@ package org.jeecg.modules.spectrum; import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.ObjectUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.constant.RedisConstant; @@ -12,6 +13,8 @@ import org.jeecg.common.exception.DownloadEmailException; import org.jeecg.common.util.DateUtils; import org.jeecg.modules.email.EmailProperties; import org.jeecg.modules.enums.SpectrumSource; +import org.jeecg.modules.file.FileOperation; + import javax.mail.Message; import javax.mail.internet.MimeMessage; import java.io.File; @@ -110,15 +113,20 @@ public class SpectrumParsingActuator implements Runnable{ log.warn("This email {} parsing failed and is not listed in the Met, Alert, SOH, Sample, Detbkphd, QC, Gasbkphd spectra.",subject); } emailServiceManager.removeMail(message); - } - // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError - else { - emailServiceManager.emlToEmlError(emlFile); + }else { + // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError + if (Objects.nonNull(emlFile) && emlFile.exists()){ + final String rootPath = spectrumServiceQuotes.getSpectrumPathProperties().getRootPath(); + final String emlErrorPath = spectrumServiceQuotes.getSpectrumPathProperties().getEmlErrorPath(); + final String finalPath = rootPath+emlErrorPath; + FileOperation.moveFile(emlFile,finalPath,true); + } } } catch (Exception e) { - // 如果邮件正常下载 则删除下载的邮件对象 - if (!(e instanceof DownloadEmailException)) + // 如果不是下载导致的失败,则删除下载的邮件对象 + if(!(e instanceof DownloadEmailException)){ emailServiceManager.removeMail(message); + } e.printStackTrace(); }finally { try { From e3a18644b5223fd41a08aed66456977caa299e4a Mon Sep 17 00:00:00 2001 From: nieziyan Date: Tue, 20 Feb 2024 15:02:37 +0800 Subject: [PATCH 032/133] =?UTF-8?q?feat=EF=BC=9A=E5=AE=8C=E5=96=84app?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/controller/AlarmController.java | 12 +-- .../controller/AnalysisController.java | 62 +++++++++++++++ .../modules/controller/MessageController.java | 26 +++++++ .../modules/feignclient/AlarmClient.java | 17 ++-- .../modules/feignclient/AnalysisService.java | 52 +++++++++++++ .../modules/feignclient/MessageService.java | 14 ++++ .../modules/model/AnnouncementSendModel.java | 77 +++++++++++++++++++ 7 files changed, 247 insertions(+), 13 deletions(-) create mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/model/AnnouncementSendModel.java diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AlarmController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AlarmController.java index 397e0320..db9ba433 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AlarmController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AlarmController.java @@ -11,8 +11,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @RestController -@RequestMapping() -@Api(value = "报警日志服务", tags = "报警日志服务") +@RequestMapping +@Api(value = "报警模块相关服务", tags = "报警模块相关服务") public class AlarmController { @Autowired @@ -26,25 +26,25 @@ public class AlarmController { @ApiOperation("分页查询报警日志信息") @PostMapping("/alarmLog/findPage") - public Result alarmLogFindPage(@RequestBody AlarmVo alarmVo){ + public Result alarmLogFindPage(@RequestBody AlarmVo alarmVo){ return alarmClient.alarmLogFindPage(alarmVo); } @GetMapping("/sysServer/findPage") @ApiOperation(value = "分页查询服务器配置信息", notes = "分页查询服务器配置信息") - public Result serverFindPage(QueryRequest query){ + public Result serverFindPage(QueryRequest query){ return alarmClient.serverFindPage(query); } @GetMapping("/sysDatabase/findPage") @ApiOperation(value = "分页查询数据库配置信息", notes = "分页查询数据库配置信息") - public Result databaseFindPage(QueryRequest query){ + public Result databaseFindPage(QueryRequest query){ return alarmClient.databaseFindPage(query); } @GetMapping("/sysEmail/findPage") @ApiOperation(value = "分页查询邮箱配置信息", notes = "分页查询邮箱配置信息") - public Result emailFindPage(QueryRequest query){ + public Result emailFindPage(QueryRequest query){ return alarmClient.emailFindPage(query); } } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AnalysisController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AnalysisController.java index 896765a4..6124a657 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AnalysisController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AnalysisController.java @@ -1,4 +1,66 @@ package org.jeecg.modules.controller; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.feignclient.AnalysisService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; + +@RestController +@RequestMapping +@Api(value = "交互分析相关服务", tags = "交互分析相关服务") public class AnalysisController { + + @Autowired + private AnalysisService analysisService; + + @GetMapping("/spectrumAnalysis/getDBSpectrumChart") + @ApiOperation(value = "查询折线图相关信息接口", notes = "查询折线图相关信息接口") + public Result getDBSpectrumChart(String dbName, Integer sampleId, String analyst, HttpServletRequest request) { + return analysisService.getDBSpectrumChart(dbName, sampleId, analyst, request); + } + + @DeleteMapping("/spectrumAnalysis/deleteSpectrumCacheData") + @ApiOperation(value = "删除缓存数据",notes = "删除缓存数据") + public void deleteSpectrumCacheData(String sampleFileName, HttpServletRequest request) { + analysisService.deleteSpectrumCacheData(sampleFileName, request); + } + + @GetMapping("/gamma/gammaByDB") + public Result gammaByDB(Integer sampleId, String dbName, String analyst, HttpServletRequest request){ + return analysisService.gammaByDB(sampleId ,dbName, analyst, request); + } + + @GetMapping("/gamma/clickPeakInformation") + @ApiOperation(value = "gamma主页面点击peakInformation返回信息接口", notes = "gamma主页面点击peakInformation返回信息接口") + public Result clickPeakInformation(String fileName, int index, HttpServletRequest request) { + return analysisService.clickPeakInformation(fileName, index, request); + } + + @GetMapping("/gamma/radionuclideActivity") + @ApiOperation(value = "查看Radionuclide Activity页面数据", notes = "查看Radionuclide Activity页面数据") + public Result radionuclideActivity(Integer sampleId, String fileName, HttpServletRequest request) { + return analysisService.radionuclideActivity(sampleId, fileName, request); + } + + @GetMapping("/gamma/getGammaSelPosNuclide") + @ApiOperation(value = "gamma主页面选择channel加载对应核素信息接口", notes = "gamma主页面选择channel加载对应核素信息接口") + public Result getGammaSelPosNuclide(Integer sampleId, String fileName, int channel, double energy, HttpServletRequest request) { + return analysisService.getGammaSelPosNuclide(sampleId, fileName, channel, energy, request); + } + + @GetMapping("/gamma/peakInformation") + @ApiOperation(value = "查看Peak Information页面数据", notes = "查看Peak Information页面数据") + public Result peakInformation(Integer sampleId, String fileName, HttpServletRequest request){ + return analysisService.peakInformation(sampleId, fileName, request); + } + + @DeleteMapping("delPHDCache") + @ApiOperation(value = "删除PHD文件缓存", notes = "删除PHD文件缓存") + public void delPHDCache(@RequestParam String fileName) { + analysisService.delPHDCache(fileName); + } } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java index 596fe88e..26048d2b 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java @@ -1,4 +1,30 @@ package org.jeecg.modules.controller; +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.Api; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.model.AnnouncementSendModel; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.jeecg.modules.feignclient.MessageService; + +@RestController +@RequestMapping("/sys") +@Api(value = "系统消息相关服务", tags = "系统消息相关服务") public class MessageController { + + @Autowired + private MessageService messageService; + + @GetMapping(value = "/getMyAnnouncementSend") + public Result getMyAnnouncementSend(AnnouncementSendModel announcementSendModel, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { + return messageService.getMyAnnouncementSend(announcementSendModel, pageNo, pageSize); + } + + } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AlarmClient.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AlarmClient.java index c9baf0ba..b3b7d0f8 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AlarmClient.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AlarmClient.java @@ -7,23 +7,26 @@ import org.jeecg.modules.base.bizVo.AnalysisLogVo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; @Component -@FeignClient(value = "") +@FeignClient("armd-abnormal-alarm") public interface AlarmClient { @GetMapping(value = "/alarmAnalysisLog/findPage") - Result analysisLogFindPage(AnalysisLogVo analysisLogVo); + Result analysisLogFindPage(@RequestParam AnalysisLogVo analysisLogVo); - @GetMapping(value = "/alarmLog/findPage") - Result alarmLogFindPage(AlarmVo alarmVo); + @PostMapping(value = "/alarmLog/findPage") + Result alarmLogFindPage(@RequestBody AlarmVo alarmVo); @GetMapping(value = "/sysEmail/findPage") - Result emailFindPage(QueryRequest query); + Result emailFindPage(@RequestParam QueryRequest query); @GetMapping(value = "/sysServer/findPage") - Result serverFindPage(QueryRequest query); + Result serverFindPage(@RequestParam QueryRequest query); @GetMapping(value = "/sysDatabase/findPage") - Result databaseFindPage(QueryRequest query); + Result databaseFindPage(@RequestParam QueryRequest query); } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AnalysisService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AnalysisService.java index 0bd39e0e..408ba4aa 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AnalysisService.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AnalysisService.java @@ -1,4 +1,56 @@ package org.jeecg.modules.feignclient; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.api.vo.Result; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import javax.servlet.http.HttpServletRequest; + +@Component +@FeignClient("armd-spectrum-analysis") public interface AnalysisService { + + @GetMapping("/spectrumAnalysis/getDBSpectrumChart") + Result getDBSpectrumChart(@RequestParam String dbName, + @RequestParam Integer sampleId, + @RequestParam String analyst, + HttpServletRequest request); + + @DeleteMapping("/spectrumAnalysis/deleteSpectrumCacheData") + void deleteSpectrumCacheData(@RequestParam String sampleFileName, + HttpServletRequest request); + + @GetMapping("/gamma/gammaByDB") + Result gammaByDB(@RequestParam Integer sampleId, + @RequestParam String dbName, + @RequestParam String analyst, + HttpServletRequest request); + + @GetMapping("/gamma/clickPeakInformation") + Result clickPeakInformation(@RequestParam String fileName, + @RequestParam int index, + HttpServletRequest request); + + @GetMapping("/gamma/radionuclideActivity") + Result radionuclideActivity(@RequestParam Integer sampleId, + @RequestParam String fileName, + HttpServletRequest request); + + @GetMapping("/gamma/getGammaSelPosNuclide") + Result getGammaSelPosNuclide(@RequestParam Integer sampleId, + @RequestParam String fileName, + @RequestParam int channel, + @RequestParam double energy, + HttpServletRequest request); + @GetMapping("/gamma/peakInformation") + Result peakInformation(@RequestParam Integer sampleId, + @RequestParam String fileName, + HttpServletRequest request); + + @DeleteMapping("delPHDCache") + void delPHDCache(@RequestParam String fileName); } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java index 04d29c4c..4e5945cd 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java @@ -1,4 +1,18 @@ package org.jeecg.modules.feignclient; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.model.AnnouncementSendModel; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +@Component +@FeignClient(value = "armd-system", path = "/sys") public interface MessageService { + + @GetMapping(value = "/getMyAnnouncementSend") + Result getMyAnnouncementSend(@RequestParam AnnouncementSendModel announcementSendModel, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize); } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/model/AnnouncementSendModel.java b/jeecg-module-app/src/main/java/org/jeecg/modules/model/AnnouncementSendModel.java new file mode 100644 index 00000000..67390fa7 --- /dev/null +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/model/AnnouncementSendModel.java @@ -0,0 +1,77 @@ +package org.jeecg.modules.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + * @Description: 用户通告阅读标记表 + * @Author: jeecg-boot + * @Date: 2019-02-21 + * @Version: V1.0 + */ +@Data +public class AnnouncementSendModel implements Serializable { + private static final long serialVersionUID = 1L; + + /**id*/ + @TableId(type = IdType.ASSIGN_ID) + private String id; + /**通告id*/ + private String anntId; + /**用户id*/ + private String userId; + /**标题*/ + private String titile; + /**内容*/ + private String msgContent; + /**发布人*/ + private String sender; + /**优先级(L低,M中,H高)*/ + private String priority; + /**阅读状态*/ + private String readFlag; + /**发布时间*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private java.util.Date sendTime; + /**页数*/ + private Integer pageNo; + /**大小*/ + private Integer pageSize; + /** + * 消息类型1:通知公告2:系统消息 + */ + private String msgCategory; + /** + * 业务id + */ + private String busId; + /** + * 业务类型 + */ + private String busType; + /** + * 打开方式 组件:component 路由:url + */ + private String openType; + /** + * 组件/路由 地址 + */ + private String openPage; + + /** + * 业务类型查询(0.非bpm业务) + */ + private String bizSource; + + /** + * 摘要 + */ + private String msgAbstract; + +} From 071991aaa8bdf7efaef1b5dfba7803169bdd2fb7 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Tue, 20 Feb 2024 15:40:13 +0800 Subject: [PATCH 033/133] =?UTF-8?q?app=E5=BE=AE=E6=9C=8D=E5=8A=A1=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E8=B0=83=E7=94=A8=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jeecg-module-app/pom.xml | 4 +- .../modules/controller/AlarmController.java | 2 +- .../controller/AnalysisController.java | 66 +++++++++++++++ .../modules/controller/MessageController.java | 61 ++++++++++++++ .../controller/RadionuclideController.java | 27 +++--- .../modules/controller/StationController.java | 83 +++++++++++++++++++ .../modules/controller/SystemController.java | 14 ++-- .../controller/WebStatisticsController.java | 3 +- .../modules/entity/AnnouncementSendModel.java | 77 +++++++++++++++++ .../modules/entity/StationOperation.java | 50 +++++++++++ .../entity/SysUserFocusStationStation.java | 42 ++++++++++ .../modules/feignclient/AlarmClient.java | 17 ++-- .../modules/feignclient/AnalysisService.java | 33 ++++++++ .../modules/feignclient/MessageService.java | 34 ++++++++ .../feignclient/RadionuclideClient.java | 22 +++-- .../modules/feignclient/StationService.java | 34 ++++++++ .../modules/feignclient/SystemClient.java | 17 ++-- .../feignclient/WebStatisticsClient.java | 3 +- 18 files changed, 539 insertions(+), 50 deletions(-) create mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/entity/AnnouncementSendModel.java create mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/entity/StationOperation.java create mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/entity/SysUserFocusStationStation.java diff --git a/jeecg-module-app/pom.xml b/jeecg-module-app/pom.xml index 867eeebc..d0f2202e 100644 --- a/jeecg-module-app/pom.xml +++ b/jeecg-module-app/pom.xml @@ -18,10 +18,10 @@ - + org.jeecgframework.boot - jeecg-boot-starter-cloud + jeecg-system-cloud-api diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AlarmController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AlarmController.java index 397e0320..21d2066b 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AlarmController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AlarmController.java @@ -20,7 +20,7 @@ public class AlarmController { @ApiOperation(value="报警日志分页查询", notes="报警日志分页查询") @GetMapping(value = "/alarmAnalysisLog/findPage") - public Result analysisLogFindPage(AnalysisLogVo analysisLogVo) { + public Result analysisLogFindPage(AnalysisLogVo analysisLogVo) { return alarmClient.analysisLogFindPage(analysisLogVo); } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AnalysisController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AnalysisController.java index 896765a4..7fbddd37 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AnalysisController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AnalysisController.java @@ -1,4 +1,70 @@ package org.jeecg.modules.controller; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.feignclient.AnalysisService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; + +@RestController public class AnalysisController { + + @Autowired + private AnalysisService analysisService; + + // /spectrumAnalysis/getDBSpectrumChart + @GetMapping("/spectrumAnalysis/getDBSpectrumChart") + @ApiOperation(value = "查询折线图相关信息接口", notes = "查询折线图相关信息接口") + public Result getDBSpectrumChart(@RequestParam String dbName,@RequestParam Integer sampleId,@RequestParam String analyst, HttpServletRequest request) { + Result result = analysisService.getDBSpectrumChart(dbName, sampleId, analyst, request); + return result; + } + + // /spectrumAnalysis/deleteSpectrumCacheData + @DeleteMapping("/spectrumAnalysis/deleteSpectrumCacheData") + @ApiOperation(value = "删除缓存数据",notes = "删除缓存数据") + public void deleteSpectrumCacheData(@RequestParam String sampleFileName, HttpServletRequest request) { + analysisService.deleteSpectrumCacheData(sampleFileName, request); + } + + // /gamma/gammaByDB + @GetMapping("/gamma/gammaByDB") + public Result gammaByDB(@RequestParam Integer sampleId,@RequestParam String dbName,@RequestParam String analyst, HttpServletRequest request){ + Result result = analysisService.gammaByDB(sampleId, dbName, analyst, request); + return result; + } + + // /gamma/delPHDCache + @DeleteMapping("/gamma/delPHDCache") + @ApiOperation(value = "删除PHD文件缓存", notes = "删除PHD文件缓存") + public void delPHDCache(@RequestParam String fileName) { + analysisService.delPHDCache(fileName); + } + + // /gamma/peakInformation + @GetMapping("/gamma/peakInformation") + @ApiOperation(value = "查看Peak Information页面数据", notes = "查看Peak Information页面数据") + public Result peakInformation(@RequestParam Integer sampleId,@RequestParam String fileName, HttpServletRequest request){ + Result result = analysisService.peakInformation(sampleId, fileName, request); + return result; + } + + // /gamma/getGammaSelPosNuclide + @GetMapping("/gamma/getGammaSelPosNuclide") + @ApiOperation(value = "gamma主页面选择channel加载对应核素信息接口", notes = "gamma主页面选择channel加载对应核素信息接口") + public Result getGammaSelPosNuclide(@RequestParam Integer sampleId,@RequestParam String fileName,@RequestParam int channel,@RequestParam double energy, HttpServletRequest request) { + Result result = analysisService.getGammaSelPosNuclide(sampleId, fileName, channel, energy, request); + return result; + } + + // /gamma/radionuclideActivity + @GetMapping("/gamma/radionuclideActivity") + @ApiOperation(value = "查看Radionuclide Activity页面数据", notes = "查看Radionuclide Activity页面数据") + public Result radionuclideActivity(@RequestParam Integer sampleId,@RequestParam String fileName, HttpServletRequest request) { + Result result = analysisService.radionuclideActivity(sampleId, fileName, request); + return result; + } + } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java index 596fe88e..527e9b9d 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java @@ -1,4 +1,65 @@ package org.jeecg.modules.controller; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.base.entity.postgre.SysAnnouncement; +import org.jeecg.modules.base.entity.postgre.SysAnnouncementSend; +import org.jeecg.modules.entity.AnnouncementSendModel; +import org.jeecg.modules.feignclient.MessageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController public class MessageController { + + @Autowired + private MessageService messageService; + + // /sys/sysAnnouncementSend/getMyAnnouncementSend + /** + * @功能:获取我的消息 + * @return + */ + @GetMapping(value = "/sys/sysAnnouncementSend/getMyAnnouncementSend") + public Result> getMyAnnouncementSend(@RequestParam AnnouncementSendModel announcementSendModel, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { + return messageService.getMyAnnouncementSend(announcementSendModel, pageNo, pageSize); + } + + // /sys/sysAnnouncementSend/editByAnntIdAndUserId + @PutMapping(value = "/sys/sysAnnouncementSend/editByAnntIdAndUserId") + public Result editById(@RequestBody JSONObject json) { + return messageService.editById(json); + } + + // /sys/sysAnnouncementSend/readAll + @PutMapping(value = "/sys/sysAnnouncementSend/readAll") + public Result readAll() { + return messageService.readAll(); + } + + // /sys/annountCement/syncNotic + @RequestMapping(value = "/sys/annountCement/syncNotic", method = RequestMethod.GET) + public Result syncNotic(@RequestParam(name="anntId",required=false) String anntId,@RequestBody HttpServletRequest request) { + return messageService.syncNotic(anntId, request); + } + + // /sys/annountCement/listByUser + @RequestMapping(value = "/sys/annountCement/listByUser", method = RequestMethod.GET) + public Result> listByUser(@RequestParam(required = false, defaultValue = "5") Integer pageSize) { + return messageService.listByUser(pageSize); + } + } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/RadionuclideController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/RadionuclideController.java index 01031440..48a541df 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/RadionuclideController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/RadionuclideController.java @@ -6,11 +6,10 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.modules.feignclient.RadionuclideClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.format.annotation.DateTimeFormat; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.Date; +import java.util.Objects; @RestController @RequestMapping("radionuclide") @@ -20,18 +19,22 @@ public class RadionuclideController { private RadionuclideClient radionuclideClient; @GetMapping("findAutoPage") @ApiOperation(value = "分页查询自动处理结果", notes = "分页查询自动处理结果") - public Result findAutoPage(QueryRequest queryRequest, Integer[] stationIds, - String qualifie, String sampleType, - @DateTimeFormat(pattern = "yyyy-MM-dd")Date startTime, - @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){ - return radionuclideClient.findAutoPage(queryRequest, stationIds, qualifie, sampleType,startTime, endTime); + public Result findAutoPage(QueryRequest queryRequest, + @RequestParam Integer[] stationIds, + @RequestParam String qualifie, @RequestParam String sampleType, + @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd")Date startTime, + @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){ + Result result = radionuclideClient.findAutoPage(queryRequest, stationIds, qualifie, sampleType, startTime, endTime); + return result; } @GetMapping("findReviewedPage") @ApiOperation(value = "分页查询人工交互结果", notes = "分页查询人工交互结果") - public Result findReviewedPage(QueryRequest queryRequest, Integer[] stationIds, String qualifie, - @DateTimeFormat(pattern = "yyyy-MM-dd")Date startTime, - @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){ - return radionuclideClient.findReviewedPage(queryRequest, stationIds, qualifie,startTime, endTime); + public Result findReviewedPage(QueryRequest queryRequest, + @RequestParam Integer[] stationIds,@RequestParam String qualifie, + @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd")Date startTime, + @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){ + Result result = radionuclideClient.findReviewedPage(queryRequest, stationIds, qualifie, startTime, endTime); + return result; } } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/StationController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/StationController.java index cc1b740e..007c99e7 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/StationController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/StationController.java @@ -1,4 +1,87 @@ package org.jeecg.modules.controller; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.entity.StationOperation; +import org.jeecg.modules.entity.SysUserFocusStationStation; +import org.jeecg.modules.feignclient.StationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController public class StationController { + + @Autowired + private StationService stationService; + + // /armd-station-operation/stationOperation/findStationType + @GetMapping("/armd-station-operation/stationOperation/findStationType") + @ApiOperation(value = "查询台站/核设施类型", notes = "查询台站/核设施类型") + public List findStationType(){ + List result = stationService.findStationType(); + return result; + } + + // /armd-station-operation/stationOperation/getDataReceivingStatus + @GetMapping("/armd-station-operation/stationOperation/getDataReceivingStatus") + @ApiOperation(value = "查询台站监测数据信息", notes = "查询台站监测数据信息") + public Result getDataReceivingStatus(@RequestParam(required = false) String userId,@RequestParam(required = false) String oneStationId){ + if (StringUtils.isBlank(userId) && StringUtils.isBlank(oneStationId)) { + return new Result(); + } else { + return stationService.getDataReceivingStatus(userId, oneStationId); + } + } + + // /armd-station-operation/stationOperation/findList + @GetMapping("/armd-station-operation/stationOperation/findList") + @ApiOperation(value = "查询台站/核设施信息", notes = "查询台站/核设施信息") + public List findStationOperationList(@RequestParam(required = false) String status,@RequestParam(required = false) String stationType){ + if (StringUtils.isBlank(status)) { + status = ""; + } + if (StringUtils.isBlank(stationType)) { + stationType = ""; + } + List result = stationService.findStationOperationList(status, stationType); + return result; + } + + // /stationOperation/getDataProvisionEfficiency + @GetMapping("/stationOperation/getDataProvisionEfficiency") + @ApiOperation(value = "查询台站数据提供率及有效率", notes = "查询台站数据提供率及有效率") + public Result getDataProvisionEfficiency(){ + return stationService.getDataProvisionEfficiency(); + } + + // /armd-station-operation/stationOperation/findInfo + @GetMapping("/armd-station-operation/stationOperation/findInfo") + @ApiOperation(value = "查询台站/核设施详情信息", notes = "查询台站/核设施详情信息") + public Result findInfo(@RequestParam String stationId,@RequestParam String type){ + Result result = stationService.findInfo(stationId, type); + return result; + } + + // /armd-station-operation/sysUserFocusStation/findList + @GetMapping("/armd-station-operation/sysUserFocusStation/findList") + @ApiOperation(value = "查询关注台站列表", notes = "查询关注台站列表") + public List findUserFocusStationList(){ + List result = stationService.findUserFocusStationList(); + return result; + } + + // /armd-station-operation/sysUserFocusStation/findUserFocusByUserId + @GetMapping("/armd-station-operation/sysUserFocusStation/findUserFocusByUserId") + @ApiOperation(value = "根据用户id查询用户的缓存配置信息及关注台站信息", notes = "根据用户id查询用户的缓存配置信息及关注台站信息") + public Result findUserFocusByUserId(@RequestParam String userId){ + return stationService.findUserFocusByUserId(userId); + } + + + } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/SystemController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/SystemController.java index 18c36b15..7dd631f2 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/SystemController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/SystemController.java @@ -25,9 +25,11 @@ public class SystemController { * @return * @throws Exception */ + @ApiOperation("移动端登陆") @RequestMapping(value = "/mLogin", method = RequestMethod.POST) public Result mLogin(@RequestBody SysLoginModel sysLoginModel) { - return systemClient.mLogin(sysLoginModel); + Result result = systemClient.mLogin(sysLoginModel); + return result; } @PostMapping("/userClient/saveOrUpdateClient") @@ -38,23 +40,21 @@ public class SystemController { /** * 退出登录 * @param request - * @param response * @return */ @RequestMapping(value = "/logout") - public Result logout(HttpServletRequest request, HttpServletResponse response) { + public Result logout(@RequestBody HttpServletRequest request) { //用户退出逻辑 - return systemClient.logout(request, response); + return systemClient.logout(request); } /** * 后台生成图形验证码 :有效 - * @param response * @param key */ @ApiOperation("获取验证码") @GetMapping(value = "/randomImage/{key}") - public Result randomImage(HttpServletResponse response,@PathVariable("key") String key) { - return systemClient.randomImage(response, key); + public Result randomImage(@PathVariable("key") String key) { + return systemClient.randomImage(key); } } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java index d1922780..8c6af33b 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java @@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.Date; @@ -23,7 +24,7 @@ public class WebStatisticsController { @GetMapping("/findStationList") @ApiOperation(value = "根据菜单名称查询对应的台站信息", notes = "根据菜单名称查询对应的台站信息") - public Result findStationList(String menuName){ + public Result findStationList(@RequestParam String menuName){ return webStatisticsClient.findStationList(menuName); } } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/entity/AnnouncementSendModel.java b/jeecg-module-app/src/main/java/org/jeecg/modules/entity/AnnouncementSendModel.java new file mode 100644 index 00000000..bd67e09a --- /dev/null +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/entity/AnnouncementSendModel.java @@ -0,0 +1,77 @@ +package org.jeecg.modules.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + * @Description: 用户通告阅读标记表 + * @Author: jeecg-boot + * @Date: 2019-02-21 + * @Version: V1.0 + */ +@Data +public class AnnouncementSendModel implements Serializable { + private static final long serialVersionUID = 1L; + + /**id*/ + @TableId(type = IdType.ASSIGN_ID) + private String id; + /**通告id*/ + private String anntId; + /**用户id*/ + private String userId; + /**标题*/ + private String titile; + /**内容*/ + private String msgContent; + /**发布人*/ + private String sender; + /**优先级(L低,M中,H高)*/ + private String priority; + /**阅读状态*/ + private String readFlag; + /**发布时间*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private java.util.Date sendTime; + /**页数*/ + private Integer pageNo; + /**大小*/ + private Integer pageSize; + /** + * 消息类型1:通知公告2:系统消息 + */ + private String msgCategory; + /** + * 业务id + */ + private String busId; + /** + * 业务类型 + */ + private String busType; + /** + * 打开方式 组件:component 路由:url + */ + private String openType; + /** + * 组件/路由 地址 + */ + private String openPage; + + /** + * 业务类型查询(0.非bpm业务) + */ + private String bizSource; + + /** + * 摘要 + */ + private String msgAbstract; + +} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/entity/StationOperation.java b/jeecg-module-app/src/main/java/org/jeecg/modules/entity/StationOperation.java new file mode 100644 index 00000000..d562f278 --- /dev/null +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/entity/StationOperation.java @@ -0,0 +1,50 @@ +package org.jeecg.modules.entity; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class StationOperation implements Serializable { + + /** + * 台站/核设施id + */ + private Integer stationId; + + /** + * 台站/核设施名称 + */ + private String stationName; + + /** + * 台站/核设施类型 + */ + private String stationType; + + /** + * 海拔 + */ + private String altitude; + + /** + * 经度 + */ + private String lon; + + /** + * 纬度 + */ + private String lat; + + /** + * 状态 + */ + private String status; + + /** + * 标记 + */ + private String signal; + +} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/entity/SysUserFocusStationStation.java b/jeecg-module-app/src/main/java/org/jeecg/modules/entity/SysUserFocusStationStation.java new file mode 100644 index 00000000..c1522232 --- /dev/null +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/entity/SysUserFocusStationStation.java @@ -0,0 +1,42 @@ +package org.jeecg.modules.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import org.jeecg.modules.base.entity.postgre.SysUserFocusStation; + +@Data +@TableName("sys_user_focus_station") +public class SysUserFocusStationStation extends SysUserFocusStation { + + /** + * 经度 + */ + @TableField(exist = false) + private Double lon; + + /** + * 纬度 + */ + @TableField(exist = false) + private Double lat; + + /** + * 海拔 + */ + @TableField(exist = false) + private String altitude; + + /** + * 状态 + */ + @TableField(exist = false) + private String status; + + /** + * 台站编码 + */ + @TableField(exist = false) + private String stationCode; + +} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AlarmClient.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AlarmClient.java index c9baf0ba..4bf68599 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AlarmClient.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AlarmClient.java @@ -7,23 +7,26 @@ import org.jeecg.modules.base.bizVo.AnalysisLogVo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; @Component -@FeignClient(value = "") +@FeignClient(value = "armd-abnormal-alarm") public interface AlarmClient { @GetMapping(value = "/alarmAnalysisLog/findPage") - Result analysisLogFindPage(AnalysisLogVo analysisLogVo); + Result analysisLogFindPage(@RequestParam("analysisLogVo") AnalysisLogVo analysisLogVo); - @GetMapping(value = "/alarmLog/findPage") - Result alarmLogFindPage(AlarmVo alarmVo); + @PostMapping(value = "/alarmLog/findPage") + Result alarmLogFindPage(@RequestBody AlarmVo alarmVo); @GetMapping(value = "/sysEmail/findPage") - Result emailFindPage(QueryRequest query); + Result emailFindPage(@RequestParam("query") QueryRequest query); @GetMapping(value = "/sysServer/findPage") - Result serverFindPage(QueryRequest query); + Result serverFindPage(@RequestParam("query") QueryRequest query); @GetMapping(value = "/sysDatabase/findPage") - Result databaseFindPage(QueryRequest query); + Result databaseFindPage(@RequestParam("query") QueryRequest query); } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AnalysisService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AnalysisService.java index 0bd39e0e..edbacec4 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AnalysisService.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AnalysisService.java @@ -1,4 +1,37 @@ package org.jeecg.modules.feignclient; +import org.jeecg.common.api.vo.Result; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import javax.servlet.http.HttpServletRequest; + +@Component +@FeignClient(value = "armd-spectrum-analysis") public interface AnalysisService { + + @GetMapping("/spectrumAnalysis/getDBSpectrumChart") + Result getDBSpectrumChart(@RequestParam("dbName") String dbName, @RequestParam("sampleId") Integer sampleId, @RequestParam("analyst") String analyst,@RequestParam("request") HttpServletRequest request); + + @DeleteMapping("/spectrumAnalysis/deleteSpectrumCacheData") + void deleteSpectrumCacheData(@RequestParam("sampleFileName") String sampleFileName,@RequestParam("request") HttpServletRequest request); + + @GetMapping("/gamma/gammaByDB") + Result gammaByDB(@RequestParam("sampleId") Integer sampleId,@RequestParam("dbName") String dbName,@RequestParam("analyst") String analyst,@RequestParam("request") HttpServletRequest request); + + @DeleteMapping("/gamma/delPHDCache") + void delPHDCache(@RequestParam("fileName") String fileName); + + @GetMapping("/gamma/peakInformation") + Result peakInformation(@RequestParam("sampleId") Integer sampleId,@RequestParam("fileName") String fileName,@RequestParam("request") HttpServletRequest request); + + @GetMapping("/gamma/getGammaSelPosNuclide") + Result getGammaSelPosNuclide(@RequestParam("sampleId") Integer sampleId,@RequestParam("fileName") String fileName,@RequestParam("channel") int channel,@RequestParam("energy") double energy,@RequestParam("request") HttpServletRequest request); + + @GetMapping("/gamma/radionuclideActivity") + Result radionuclideActivity(@RequestParam("sampleId") Integer sampleId,@RequestParam("fileName") String fileName,@RequestParam("request") HttpServletRequest request); + } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java index 04d29c4c..d8a286e5 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java @@ -1,4 +1,38 @@ package org.jeecg.modules.feignclient; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.base.entity.postgre.SysAnnouncement; +import org.jeecg.modules.base.entity.postgre.SysAnnouncementSend; +import org.jeecg.modules.entity.AnnouncementSendModel; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.Map; + +@Component +@FeignClient(value = "armd-system") public interface MessageService { + + + @GetMapping(value = "/sys/sysAnnouncementSend/getMyAnnouncementSend") + Result> getMyAnnouncementSend(@RequestParam AnnouncementSendModel announcementSendModel, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize); + + @PutMapping(value = "/sys/sysAnnouncementSend/editByAnntIdAndUserId") + Result editById(@RequestBody JSONObject json); + + @PutMapping(value = "/sys/sysAnnouncementSend/readAll") + Result readAll(); + + @RequestMapping(value = "/sys/annountCement/syncNotic", method = RequestMethod.GET) + Result syncNotic(@RequestParam(name="anntId",required=false) String anntId, HttpServletRequest request); + + @RequestMapping(value = "/sys/annountCement/listByUser", method = RequestMethod.GET) + Result> listByUser(@RequestParam(required = false, defaultValue = "5") Integer pageSize); + } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/RadionuclideClient.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/RadionuclideClient.java index 8077819b..aef20b05 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/RadionuclideClient.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/RadionuclideClient.java @@ -6,6 +6,8 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; import java.util.Date; @@ -23,11 +25,12 @@ public interface RadionuclideClient { * @param endTime * @return */ - @GetMapping("/findStationList") - Result findAutoPage(QueryRequest queryRequest, Integer[] stationIds, - String qualifie, String sampleType, - @DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime, - @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime); + @GetMapping("/findAutoPage") + Result findAutoPage(@RequestParam("queryRequest") QueryRequest queryRequest, + @RequestParam("stationIds") Integer[] stationIds, + @RequestParam("qualifie") String qualifie,@RequestParam("sampleType") String sampleType, + @RequestParam("startTime") @DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime, + @RequestParam("endTime") @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime); /** * 分页查询人工交互结果 @@ -38,10 +41,11 @@ public interface RadionuclideClient { * @param endTime * @return */ - @GetMapping("findReviewedPage") - Result findReviewedPage(QueryRequest queryRequest, Integer[] stationIds, String qualifie, - @DateTimeFormat(pattern = "yyyy-MM-dd")Date startTime, - @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime); + @GetMapping("/findReviewedPage") + Result findReviewedPage(@RequestParam("queryRequest") QueryRequest queryRequest, + @RequestParam("stationIds") Integer[] stationIds, @RequestParam("qualifie") String qualifie, + @RequestParam("startTime") @DateTimeFormat(pattern = "yyyy-MM-dd")Date startTime, + @RequestParam("endTime") @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime); } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/StationService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/StationService.java index 630b5152..3a9c3f55 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/StationService.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/StationService.java @@ -1,4 +1,38 @@ package org.jeecg.modules.feignclient; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.entity.StationOperation; +import org.jeecg.modules.entity.SysUserFocusStationStation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +@Component +@FeignClient(value = "armd-station-operation") public interface StationService { + + @GetMapping("/stationOperation/findStationType") + List findStationType(); + + @GetMapping("/stationOperation/getDataReceivingStatus") + Result getDataReceivingStatus(@RequestParam String userId, @RequestParam String oneStationId); + + @GetMapping("/stationOperation/findList") + List findStationOperationList(@RequestParam String status, @RequestParam String stationType); + + @GetMapping("/stationOperation/getDataProvisionEfficiency") + Result getDataProvisionEfficiency(); + + @GetMapping("/stationOperation/findInfo") + Result findInfo(@RequestParam String stationId,@RequestParam String type); + + @GetMapping("/sysUserFocusStation/findList") + List findUserFocusStationList(); + + @GetMapping("/sysUserFocusStation/findUserFocusByUserId") + Result findUserFocusByUserId(@RequestParam String userId); + } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/SystemClient.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/SystemClient.java index 35fe9a1c..27f8579e 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/SystemClient.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/SystemClient.java @@ -6,10 +6,7 @@ import org.jeecg.modules.base.entity.postgre.SysUserClient; import org.jeecg.modules.model.SysLoginModel; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.stereotype.Component; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -23,27 +20,27 @@ public interface SystemClient { * @return */ @GetMapping("/mLogin") - Result mLogin(SysLoginModel sysLoginModel); + Result mLogin(@RequestBody SysLoginModel sysLoginModel); /** * 图形验证码 * @return */ - @PostMapping("/checkCaptcha") - void saveOrUpdateClient(SysUserClient sysUserClient); + @PostMapping("/userClient/saveOrUpdateClient") + void saveOrUpdateClient(@RequestBody SysUserClient sysUserClient); /** * 登出 * @return */ - @GetMapping("/logout") - Result logout(HttpServletRequest request, HttpServletResponse response); + @RequestMapping("/logout") + Result logout(@RequestBody HttpServletRequest request); /** * 图形验证码 */ @GetMapping("/randomImage/{key}") - Result randomImage(HttpServletResponse response,@PathVariable("key") String key); + Result randomImage(@PathVariable("key") String key); /** * 图形验证码 diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/WebStatisticsClient.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/WebStatisticsClient.java index fdc87e42..383cdeb9 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/WebStatisticsClient.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/WebStatisticsClient.java @@ -8,6 +8,7 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; import java.util.Date; @@ -16,5 +17,5 @@ import java.util.Date; public interface WebStatisticsClient { @GetMapping("/findStationList") - Result findStationList(String menuName); + Result findStationList(@RequestParam String menuName); } From 3bf4c3d0fc9318591430eaa351e91c8d7975d3dd Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Tue, 20 Feb 2024 15:50:57 +0800 Subject: [PATCH 034/133] =?UTF-8?q?app=E5=BE=AE=E6=9C=8D=E5=8A=A1=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E7=99=BB=E9=99=86=E5=8F=8A=E6=8E=A8=E9=80=81=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E8=B0=83=E7=94=A8=E6=8E=A5=E5=8F=A3=EF=BC=8Capp?= =?UTF-8?q?=E7=AB=AF=E4=B8=8EPC=E7=AB=AF=E5=86=B2=E7=AA=81=E9=83=A8?= =?UTF-8?q?=E5=88=86=E6=8E=A5=E5=8F=A3=E6=96=B0=E5=A2=9Eapp=E7=AB=AF?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=BF=9B=E8=A1=8C=E5=8C=BA=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/feignclient/MessageService.java | 2 +- .../modules/feignclient/SystemClient.java | 8 +- .../system/controller/LoginController.java | 88 +++++++++++++++++++ .../SysAnnouncementSendController.java | 27 +++++- 4 files changed, 117 insertions(+), 8 deletions(-) diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java index d8a286e5..3a01639f 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java @@ -18,7 +18,7 @@ import java.util.Map; public interface MessageService { - @GetMapping(value = "/sys/sysAnnouncementSend/getMyAnnouncementSend") + @GetMapping(value = "/sys/sysAnnouncementSend/getMyAnnouncementSendApp") Result> getMyAnnouncementSend(@RequestParam AnnouncementSendModel announcementSendModel, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize); diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/SystemClient.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/SystemClient.java index 27f8579e..ca54dfee 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/SystemClient.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/SystemClient.java @@ -23,7 +23,7 @@ public interface SystemClient { Result mLogin(@RequestBody SysLoginModel sysLoginModel); /** - * 图形验证码 + * 保存用户关联客户端 * @return */ @PostMapping("/userClient/saveOrUpdateClient") @@ -33,19 +33,19 @@ public interface SystemClient { * 登出 * @return */ - @RequestMapping("/logout") + @RequestMapping("/mlogout") Result logout(@RequestBody HttpServletRequest request); /** * 图形验证码 */ - @GetMapping("/randomImage/{key}") + @GetMapping("/mRandomImage/{key}") Result randomImage(@PathVariable("key") String key); /** * 图形验证码 * @return */ - @PostMapping("/checkCaptcha") + @PostMapping("/mCheckCaptcha") Result checkCaptcha(); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java index df9484e4..f222d59c 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java @@ -214,6 +214,38 @@ public class LoginController { return Result.error("Token无效!"); } } + + /** + * app端退出登录 + * @return + */ + @RequestMapping(value = "/mlogout") + public Result mlogout(@RequestBody HttpServletRequest request) { + //用户退出逻辑 + String token = request.getHeader(CommonConstant.X_ACCESS_TOKEN); + if(oConvertUtils.isEmpty(token)) { + return Result.error("退出登录失败!"); + } + String username = JwtUtil.getUsername(token); + LoginUser sysUser = sysBaseApi.getUserByName(username); + if(sysUser!=null) { + //update-begin--Author:wangshuai Date:20200714 for:登出日志没有记录人员 + baseCommonService.addLog("用户名: "+sysUser.getRealname()+",退出成功!", CommonConstant.LOG_TYPE_1, null,sysUser); + //update-end--Author:wangshuai Date:20200714 for:登出日志没有记录人员 + log.info(" 用户名: "+sysUser.getRealname()+",退出成功! "); + //清空用户登录Token缓存 + redisUtil.del(CommonConstant.PREFIX_USER_TOKEN + token); + //清空用户登录Shiro权限缓存 + redisUtil.del(CommonConstant.PREFIX_USER_SHIRO_CACHE + sysUser.getId()); + //清空用户的缓存信息(包括部门信息),例如sys:cache:user:: + redisUtil.del(String.format("%s::%s", CacheConstant.SYS_USERS_CACHE, sysUser.getUsername())); + //调用shiro的logout + SecurityUtils.getSubject().logout(); + return Result.ok("退出登录成功!"); + }else { + return Result.error("Token无效!"); + } + } /** * 获取访问量 @@ -510,6 +542,40 @@ public class LoginController { @ApiOperation("获取验证码") @GetMapping(value = "/randomImage/{key}") public Result randomImage(HttpServletResponse response,@PathVariable("key") String key){ + Result res = new Result(); + try { + //生成验证码 + String code = RandomUtil.randomString(BASE_CHECK_CODES,4); + //存到redis中 + String lowerCaseCode = code.toLowerCase(); + + //update-begin-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906 + // 加入密钥作为混淆,避免简单的拼接,被外部利用,用户自定义该密钥即可 + String origin = lowerCaseCode+key+jeecgBaseConfig.getSignatureSecret(); + String realKey = Md5Util.md5Encode(origin, "utf-8"); + //update-end-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906 + + redisUtil.set(realKey, lowerCaseCode, 60); + log.info("获取验证码,Redis key = {},checkCode = {}", realKey, code); + //返回前端 + String base64 = RandImageUtil.generate(code); + res.setSuccess(true); + res.setResult(base64); + } catch (Exception e) { + log.error(e.getMessage(), e); + res.error500("获取验证码失败,请检查redis配置!"); + return res; + } + return res; + } + + /** + * app端后台生成图形验证码 :有效 + * @param key + */ + @ApiOperation("获取验证码") + @GetMapping(value = "/mRandomImage/{key}") + public Result mRandomImage(@PathVariable("key") String key){ Result res = new Result(); try { //生成验证码 @@ -679,6 +745,28 @@ public class LoginController { } return Result.ok(); } + + /** + * app端图形验证码 + * @param sysLoginModel + * @return + */ + @RequestMapping(value = "/mCheckCaptcha", method = RequestMethod.POST) + public Result mCheckCaptcha(@RequestBody SysLoginModel sysLoginModel){ + String captcha = sysLoginModel.getCaptcha(); + String checkKey = sysLoginModel.getCheckKey(); + if(captcha==null){ + return Result.error("验证码无效"); + } + String lowerCaseCaptcha = captcha.toLowerCase(); + String realKey = Md5Util.md5Encode(lowerCaseCaptcha+checkKey, "utf-8"); + Object checkCode = redisUtil.get(realKey); + if(checkCode==null || !checkCode.equals(lowerCaseCaptcha)) { + return Result.error("验证码错误"); + } + return Result.ok(); + } + /** * 登录二维码 */ diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementSendController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementSendController.java index e28d36f5..46fd08ad 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementSendController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementSendController.java @@ -199,13 +199,34 @@ public class SysAnnouncementSendController { result.setSuccess(true); return result; } - + + /** + * @功能:获取我的消息 + * @return + */ + @GetMapping(value = "/getMyAnnouncementSend") + public Result> getMyAnnouncementSend(AnnouncementSendModel announcementSendModel, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { + Result> result = new Result>(); + LoginUser sysUser = (LoginUser)SecurityUtils.getSubject().getPrincipal(); + String userId = sysUser.getId(); + announcementSendModel.setUserId(userId); + announcementSendModel.setPageNo((pageNo-1)*pageSize); + announcementSendModel.setPageSize(pageSize); + Page pageList = new Page(pageNo,pageSize); + pageList = sysAnnouncementSendService.getMyAnnouncementSendPage(pageList, announcementSendModel); + result.setResult(pageList); + result.setSuccess(true); + return result; + } + /** * @功能:获取我的消息 * @return */ - @GetMapping(value = "/getMyAnnouncementSend") - public Result> getMyAnnouncementSend(AnnouncementSendModel announcementSendModel, + @GetMapping(value = "/getMyAnnouncementSendApp") + public Result> getMyAnnouncementSendApp(@RequestParam AnnouncementSendModel announcementSendModel, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { Result> result = new Result>(); From 8b891c946130ddb56ad17b5ed7b0fa5039aba7da Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Tue, 20 Feb 2024 15:53:17 +0800 Subject: [PATCH 035/133] =?UTF-8?q?app=E5=BE=AE=E6=9C=8D=E5=8A=A1=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E6=9F=A5=E8=AF=A2=E5=8F=B0=E7=AB=99=E9=9B=86=E5=90=88?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=9F=A5=E8=AF=A2ARR,RRR=E5=A4=84?= =?UTF-8?q?=E7=90=86=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8A=A0app=E7=AB=AF=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=8C=BA=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feignclient/RadionuclideClient.java | 4 ++-- .../feignclient/WebStatisticsClient.java | 2 +- .../controller/RadionuclideController.java | 24 ++++++++++++++++--- .../controller/WebStatisticsController.java | 10 ++++++++ 4 files changed, 34 insertions(+), 6 deletions(-) diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/RadionuclideClient.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/RadionuclideClient.java index aef20b05..1304fd06 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/RadionuclideClient.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/RadionuclideClient.java @@ -25,7 +25,7 @@ public interface RadionuclideClient { * @param endTime * @return */ - @GetMapping("/findAutoPage") + @GetMapping("/findReviewedPageApp") Result findAutoPage(@RequestParam("queryRequest") QueryRequest queryRequest, @RequestParam("stationIds") Integer[] stationIds, @RequestParam("qualifie") String qualifie,@RequestParam("sampleType") String sampleType, @@ -41,7 +41,7 @@ public interface RadionuclideClient { * @param endTime * @return */ - @GetMapping("/findReviewedPage") + @GetMapping("/findReviewedPageApp") Result findReviewedPage(@RequestParam("queryRequest") QueryRequest queryRequest, @RequestParam("stationIds") Integer[] stationIds, @RequestParam("qualifie") String qualifie, @RequestParam("startTime") @DateTimeFormat(pattern = "yyyy-MM-dd")Date startTime, diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/WebStatisticsClient.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/WebStatisticsClient.java index 383cdeb9..aa815874 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/WebStatisticsClient.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/WebStatisticsClient.java @@ -16,6 +16,6 @@ import java.util.Date; @FeignClient(value = "armd-web-statistics", path = "/webStatistics") public interface WebStatisticsClient { - @GetMapping("/findStationList") + @GetMapping("/findStationListApp") Result findStationList(@RequestParam String menuName); } diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/RadionuclideController.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/RadionuclideController.java index e32bbe8a..0155167e 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/RadionuclideController.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/RadionuclideController.java @@ -7,9 +7,7 @@ import org.jeecg.modules.service.IAutoService; import org.jeecg.modules.service.IReviewedService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.format.annotation.DateTimeFormat; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.Date; @@ -38,4 +36,24 @@ public class RadionuclideController { @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){ return reviewedService.findReviewedPage(queryRequest, stationIds, qualifie,startTime, endTime); } + + @GetMapping("findAutoPageApp") + @ApiOperation(value = "分页查询自动处理结果", notes = "分页查询自动处理结果") + public Result findAutoPageApp(@ModelAttribute("queryRequest") QueryRequest queryRequest, + @RequestParam("stationIds") Integer[] stationIds, + @RequestParam("qualifie") String qualifie, @RequestParam("sampleType") String sampleType, + @RequestParam("startTime") @DateTimeFormat(pattern = "yyyy-MM-dd")Date startTime, + @RequestParam("endTime") @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){ + return autoService.findAutoPage(queryRequest, stationIds, qualifie, sampleType,startTime, endTime); + } + + @GetMapping("findReviewedPageApp") + @ApiOperation(value = "分页查询人工交互结果", notes = "分页查询人工交互结果") + public Result findReviewedPageApp(@ModelAttribute("queryRequest") QueryRequest queryRequest, + @RequestParam("stationIds") Integer[] stationIds,@RequestParam("qualifie") String qualifie, + @RequestParam("startTime") @DateTimeFormat(pattern = "yyyy-MM-dd")Date startTime, + @RequestParam("endTime") @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){ + return reviewedService.findReviewedPage(queryRequest, stationIds, qualifie,startTime, endTime); + } + } diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java index 45d583f7..b134714d 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java @@ -57,6 +57,16 @@ public class WebStatisticsController { return result; } + @GetMapping("findStationListApp") + @ApiOperation(value = "根据菜单名称查询对应的台站信息", notes = "根据菜单名称查询对应的台站信息") + public Result findStationListApp(@RequestParam String menuName){ + Result result = new Result(); + List gardsStations = menuNameService.findStationListByMenuName(menuName); + result.setSuccess(true); + result.setResult(gardsStations); + return result; + } + @GetMapping("findParticulatePage") @ApiOperation(value = "气溶胶分页查询", notes = "气溶胶分页查询") public Result findParticulatePage(QueryRequest queryRequest, Integer[] stationIds, String dataType, From c38584c138e888c78319dfdc6be19f2e4166cba2 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Tue, 20 Feb 2024 16:13:03 +0800 Subject: [PATCH 036/133] =?UTF-8?q?app=E5=BE=AE=E6=9C=8D=E5=8A=A1=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E6=9F=A5=E8=AF=A2=E5=8F=B0=E7=AB=99=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=B0=86app?= =?UTF-8?q?=E7=AB=AF=E4=B8=8EPC=E7=AB=AF=E6=97=A0=E6=B3=95=E5=85=B1?= =?UTF-8?q?=E7=94=A8=E7=9A=84=E6=8E=A5=E5=8F=A3=E6=96=B0=E5=A2=9Eapp?= =?UTF-8?q?=E7=AB=AF=E6=8E=A5=E5=8F=A3=20app=E5=BE=AE=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E6=9F=A5=E8=AF=A2=E6=8A=A5=E8=AD=A6=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=B0=86?= =?UTF-8?q?app=E7=AB=AF=E4=B8=8EPC=E7=AB=AF=E6=97=A0=E6=B3=95=E5=85=B1?= =?UTF-8?q?=E7=94=A8=E7=9A=84=E6=8E=A5=E5=8F=A3=E6=96=B0=E5=A2=9Eapp?= =?UTF-8?q?=E7=AB=AF=E6=8E=A5=E5=8F=A3=20app=E5=BE=AE=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E6=9F=A5=E8=AF=A2=E4=BA=BA=E5=B7=A5=E4=BA=A4?= =?UTF-8?q?=E4=BA=92=E6=A8=A1=E5=9D=97=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=EF=BC=8C=E5=B0=86app=E7=AB=AF=E4=B8=8EPC=E7=AB=AF=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E5=85=B1=E7=94=A8=E7=9A=84=E6=8E=A5=E5=8F=A3=E6=96=B0?= =?UTF-8?q?=E5=A2=9Eapp=E7=AB=AF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AlarmAnalysisLogController.java | 6 ++++ .../controller/AlarmLogController.java | 7 +++++ .../controller/SysDatabaseController.java | 6 ++++ .../controller/SysEmailController.java | 6 ++++ .../controller/SysServerController.java | 6 ++++ .../modules/controller/StationController.java | 4 +-- .../modules/feignclient/AlarmClient.java | 10 +++--- .../modules/feignclient/AnalysisService.java | 12 +++---- .../modules/feignclient/StationService.java | 10 +++--- .../modules/controller/GammaController.java | 31 +++++++++++++++++++ .../SpectrumAnalysesController.java | 12 +++++++ .../StationOperationController.java | 19 ++++++++++++ .../SysUserFocusStationController.java | 5 +++ 13 files changed, 116 insertions(+), 18 deletions(-) diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisLogController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisLogController.java index 167d02e8..d3a9ab34 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisLogController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisLogController.java @@ -22,6 +22,12 @@ public class AlarmAnalysisLogController extends JeecgController findPageApp(@RequestParam AnalysisLogVo analysisLogVo) { + return service.findPage(analysisLogVo); + } + @ApiOperation(value="添加报警日志", notes="添加报警日志") @PostMapping(value = "add") public Result add(@RequestBody AlarmAnalysisLog alarmAnalysisLog) { diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java index 8fd27499..11608018 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmLogController.java @@ -34,6 +34,13 @@ public class AlarmLogController { public Result findPage(@RequestBody AlarmVo alarmVo){ return alarmLogService.findPage(alarmVo); } + + @ApiOperation("分页查询报警日志信息") + @PostMapping("findPageApp") + public Result findPageApp(@RequestBody AlarmVo alarmVo){ + return alarmLogService.findPage(alarmVo); + } + @ApiOperation("各类型报警量统计-饼图") @PostMapping("typeAlarms") public Result typeAlarms(@RequestBody AlarmVo alarmVo){ diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysDatabaseController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysDatabaseController.java index a56b70a4..448ca4f9 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysDatabaseController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysDatabaseController.java @@ -27,6 +27,12 @@ public class SysDatabaseController { return sysDatabaseService.findPage(query); } + @GetMapping("findPageApp") + @ApiOperation(value = "分页查询数据库配置信息", notes = "分页查询数据库配置信息") + public Result findPageApp(@RequestParam QueryRequest query){ + return sysDatabaseService.findPage(query); + } + @GetMapping("findInfo") @ApiOperation(value = "查询数据库配置信息详情", notes = "查询数据库配置信息详情") public Result findInfo(String id){ diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java index f717b337..83118c58 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java @@ -27,6 +27,12 @@ public class SysEmailController { return sysEmailService.findPage(query); } + @GetMapping("findPageApp") + @ApiOperation(value = "分页查询邮箱配置信息", notes = "分页查询邮箱配置信息") + public Result findPageApp(@RequestParam QueryRequest query){ + return sysEmailService.findPage(query); + } + @GetMapping("findInfo") @ApiOperation(value = "查询邮箱配置信息详情", notes = "查询邮箱配置信息详情") public Result findInfo(String id){ diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysServerController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysServerController.java index 622e229b..2d1a0473 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysServerController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysServerController.java @@ -28,6 +28,12 @@ public class SysServerController { return sysServerService.findPage(query); } + @GetMapping("findPageApp") + @ApiOperation(value = "分页查询服务器数据", notes = "分页查询服务器数据") + public Result findPageApp(@RequestParam QueryRequest query){ + return sysServerService.findPage(query); + } + @GetMapping("findInfo") @ApiOperation(value = "服务器数据详情信息", notes = "服务器数据详情信息") public Result findInfo(@RequestParam String id){ diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/StationController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/StationController.java index 007c99e7..4d8b1a68 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/StationController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/StationController.java @@ -30,11 +30,11 @@ public class StationController { // /armd-station-operation/stationOperation/getDataReceivingStatus @GetMapping("/armd-station-operation/stationOperation/getDataReceivingStatus") @ApiOperation(value = "查询台站监测数据信息", notes = "查询台站监测数据信息") - public Result getDataReceivingStatus(@RequestParam(required = false) String userId,@RequestParam(required = false) String oneStationId){ + public Result getDataReceivingStatus(@RequestParam(required = false) String userId, @RequestParam(required = false) Double cacheTime,@RequestParam(required = false) String oneStationId){ if (StringUtils.isBlank(userId) && StringUtils.isBlank(oneStationId)) { return new Result(); } else { - return stationService.getDataReceivingStatus(userId, oneStationId); + return stationService.getDataReceivingStatus(userId, cacheTime, oneStationId); } } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AlarmClient.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AlarmClient.java index 4bf68599..b527c77a 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AlarmClient.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AlarmClient.java @@ -15,18 +15,18 @@ import org.springframework.web.bind.annotation.RequestParam; @FeignClient(value = "armd-abnormal-alarm") public interface AlarmClient { - @GetMapping(value = "/alarmAnalysisLog/findPage") + @GetMapping(value = "/alarmAnalysisLog/findPageApp") Result analysisLogFindPage(@RequestParam("analysisLogVo") AnalysisLogVo analysisLogVo); - @PostMapping(value = "/alarmLog/findPage") + @PostMapping(value = "/alarmLog/findPageApp") Result alarmLogFindPage(@RequestBody AlarmVo alarmVo); - @GetMapping(value = "/sysEmail/findPage") + @GetMapping(value = "/sysEmail/findPageApp") Result emailFindPage(@RequestParam("query") QueryRequest query); - @GetMapping(value = "/sysServer/findPage") + @GetMapping(value = "/sysServer/findPageApp") Result serverFindPage(@RequestParam("query") QueryRequest query); - @GetMapping(value = "/sysDatabase/findPage") + @GetMapping(value = "/sysDatabase/findPageApp") Result databaseFindPage(@RequestParam("query") QueryRequest query); } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AnalysisService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AnalysisService.java index edbacec4..17fee240 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AnalysisService.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AnalysisService.java @@ -13,22 +13,22 @@ import javax.servlet.http.HttpServletRequest; @FeignClient(value = "armd-spectrum-analysis") public interface AnalysisService { - @GetMapping("/spectrumAnalysis/getDBSpectrumChart") + @GetMapping("/spectrumAnalysis/getDBSpectrumChartApp") Result getDBSpectrumChart(@RequestParam("dbName") String dbName, @RequestParam("sampleId") Integer sampleId, @RequestParam("analyst") String analyst,@RequestParam("request") HttpServletRequest request); - @DeleteMapping("/spectrumAnalysis/deleteSpectrumCacheData") + @DeleteMapping("/spectrumAnalysis/deleteSpectrumCacheDataApp") void deleteSpectrumCacheData(@RequestParam("sampleFileName") String sampleFileName,@RequestParam("request") HttpServletRequest request); - @GetMapping("/gamma/gammaByDB") + @GetMapping("/gamma/gammaByDBApp") Result gammaByDB(@RequestParam("sampleId") Integer sampleId,@RequestParam("dbName") String dbName,@RequestParam("analyst") String analyst,@RequestParam("request") HttpServletRequest request); - @DeleteMapping("/gamma/delPHDCache") + @DeleteMapping("/gamma/delPHDCacheApp") void delPHDCache(@RequestParam("fileName") String fileName); - @GetMapping("/gamma/peakInformation") + @GetMapping("/gamma/peakInformationApp") Result peakInformation(@RequestParam("sampleId") Integer sampleId,@RequestParam("fileName") String fileName,@RequestParam("request") HttpServletRequest request); - @GetMapping("/gamma/getGammaSelPosNuclide") + @GetMapping("/gamma/getGammaSelPosNuclideApp") Result getGammaSelPosNuclide(@RequestParam("sampleId") Integer sampleId,@RequestParam("fileName") String fileName,@RequestParam("channel") int channel,@RequestParam("energy") double energy,@RequestParam("request") HttpServletRequest request); @GetMapping("/gamma/radionuclideActivity") diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/StationService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/StationService.java index 3a9c3f55..53f7f53f 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/StationService.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/StationService.java @@ -17,22 +17,22 @@ public interface StationService { @GetMapping("/stationOperation/findStationType") List findStationType(); - @GetMapping("/stationOperation/getDataReceivingStatus") - Result getDataReceivingStatus(@RequestParam String userId, @RequestParam String oneStationId); + @GetMapping("/stationOperation/getDataReceivingStatusApp") + Result getDataReceivingStatus(@RequestParam String userId,@RequestParam Double cacheTime, @RequestParam String oneStationId); - @GetMapping("/stationOperation/findList") + @GetMapping("/stationOperation/findListApp") List findStationOperationList(@RequestParam String status, @RequestParam String stationType); @GetMapping("/stationOperation/getDataProvisionEfficiency") Result getDataProvisionEfficiency(); - @GetMapping("/stationOperation/findInfo") + @GetMapping("/stationOperation/findInfoApp") Result findInfo(@RequestParam String stationId,@RequestParam String type); @GetMapping("/sysUserFocusStation/findList") List findUserFocusStationList(); - @GetMapping("/sysUserFocusStation/findUserFocusByUserId") + @GetMapping("/sysUserFocusStation/findUserFocusByUserIdApp") Result findUserFocusByUserId(@RequestParam String userId); } 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 943ef4b9..48077e26 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 @@ -40,10 +40,17 @@ public class GammaController { } @GetMapping("gammaByDB") + @ApiOperation(value = "gamma页面loadFromDB加载数据", notes = "gamma页面loadFromDB加载数据") public Result gammaByDB(Integer sampleId, String dbName, String analyst, HttpServletRequest request){ return gammaService.gammaByDB(dbName, sampleId, analyst, request); } + @GetMapping("gammaByDBApp") + @ApiOperation(value = "gamma页面loadFromDB加载数据", notes = "gamma页面loadFromDB加载数据") + public Result gammaByDBApp(@RequestParam Integer sampleId,@RequestParam String dbName,@RequestParam String analyst,@RequestParam HttpServletRequest request){ + return gammaService.gammaByDB(dbName, sampleId, analyst, request); + } + @GetMapping("gammaByFile") @ApiOperation(value = "gamma页面loadFromFile加载数据", notes = "gamma页面loadFromFile加载数据") public Result gammaByFile(String fileName, HttpServletRequest request) { @@ -56,6 +63,12 @@ public class GammaController { gammaService.delPHDCache(fileName); } + @DeleteMapping("delPHDCacheApp") + @ApiOperation(value = "删除PHD文件缓存", notes = "删除PHD文件缓存") + public void delPHDCacheApp(@RequestParam String fileName) { + gammaService.delPHDCache(fileName); + } + @GetMapping("loadSampleData") public Result loadSampleData(QueryRequest queryRequest, GardsSampleDataSpectrum gardsSampleData, String[] menuTypes, boolean AllUsers, boolean CollectStopB, boolean AcqStartB, @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate, @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate, HttpServletRequest request) { @@ -135,6 +148,12 @@ public class GammaController { return gammaService.getGammaSelPosNuclide(sampleId, fileName, channel, energy, request); } + @GetMapping("getGammaSelPosNuclideApp") + @ApiOperation(value = "gamma主页面选择channel加载对应核素信息接口", notes = "gamma主页面选择channel加载对应核素信息接口") + public Result getGammaSelPosNuclideApp(@RequestParam Integer sampleId,@RequestParam String fileName,@RequestParam int channel,@RequestParam double energy,@RequestParam HttpServletRequest request) { + return gammaService.getGammaSelPosNuclide(sampleId, fileName, channel, energy, request); + } + @GetMapping("getSelPosNuclide") @ApiOperation(value = "InteractiveTool页面选择channel加载对应核素信息接口", notes = "InteractiveTool页面选择channel加载对应核素信息接口") public Result getSelPosNuclide(Integer sampleId, String fileName, int channel, HttpServletRequest request) { @@ -401,6 +420,12 @@ public class GammaController { return gammaService.peakInformation(sampleId, fileName, request); } + @GetMapping("peakInformationApp") + @ApiOperation(value = "查看Peak Information页面数据", notes = "查看Peak Information页面数据") + public Result peakInformationApp(@RequestParam Integer sampleId,@RequestParam String fileName,@RequestParam HttpServletRequest request){ + return gammaService.peakInformation(sampleId, fileName, request); + } + @GetMapping("exportPeakInformation") public void exportPeakInformation(Integer sampleId, String fileName, HttpServletRequest request, HttpServletResponse response){ gammaService.exportPeakInformation(sampleId, fileName, request, response); @@ -434,6 +459,12 @@ public class GammaController { return gammaService.radionuclideActivity(sampleId, fileName, request); } + @GetMapping("radionuclideActivityApp") + @ApiOperation(value = "查看Radionuclide Activity页面数据", notes = "查看Radionuclide Activity页面数据") + public Result radionuclideActivityApp(@RequestParam Integer sampleId,@RequestParam String fileName,@RequestParam HttpServletRequest request) { + return gammaService.radionuclideActivity(sampleId, fileName, request); + } + @GetMapping("exportRadionuclideActivity") public void exportRadionuclideActivity(Integer sampleId, String fileName, String arTime, String crTime, 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 c323d808..a232125a 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 @@ -55,6 +55,12 @@ public class SpectrumAnalysesController { return spectrumAnalysisService.getDBSpectrumChart(dbName, sampleId, analyst, request); } + @GetMapping("getDBSpectrumChartApp") + @ApiOperation(value = "查询折线图相关信息接口", notes = "查询折线图相关信息接口") + public Result getDBSpectrumChartApp(@RequestParam String dbName,@RequestParam Integer sampleId,@RequestParam String analyst,@RequestParam HttpServletRequest request) { + return spectrumAnalysisService.getDBSpectrumChart(dbName, sampleId, analyst, request); + } + @GetMapping("getFileSpectrumChart") @ApiOperation(value = "查询文件折线图相关信息接口", notes = "查询文件折线图相关信息接口") public Result getFileSpectrumChart(String sampleFileName, String gasFileName, String detFileName, String qcFileName, HttpServletRequest request) { @@ -67,6 +73,12 @@ public class SpectrumAnalysesController { spectrumAnalysisService.deleteSpectrumCacheData(sampleFileName, request); } + @DeleteMapping("deleteSpectrumCacheDataApp") + @ApiOperation(value = "删除缓存数据",notes = "删除缓存数据") + public void deleteSpectrumCacheDataApp(@RequestParam String sampleFileName,@RequestParam HttpServletRequest request) { + spectrumAnalysisService.deleteSpectrumCacheData(sampleFileName, request); + } + @GetMapping("viewComment") @ApiOperation(value = "查看comment数据", notes = "查看comment数据") public Result viewComment(Integer sampleId, String sampleFileName, HttpServletRequest request) { diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java index 2517d2c2..8d5c46f3 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java @@ -37,6 +37,13 @@ public class StationOperationController { return result; } + @GetMapping("findListApp") + @ApiOperation(value = "查询台站/核设施信息", notes = "查询台站/核设施信息") + public List findListApp(@RequestParam String status,@RequestParam String stationType){ + List result = stationOperationService.findList(status, stationType); + return result; + } + @GetMapping("findInfo") @ApiOperation(value = "查询台站/核设施详情信息", notes = "查询台站/核设施详情信息") public Result findInfo(String stationId, String type){ @@ -44,6 +51,13 @@ public class StationOperationController { return result; } + @GetMapping("findInfoApp") + @ApiOperation(value = "查询台站/核设施详情信息", notes = "查询台站/核设施详情信息") + public Result findInfoApp(@RequestParam String stationId,@RequestParam String type){ + Result result = stationOperationService.findInfo(stationId, type); + return result; + } + @GetMapping("findTree") @ApiOperation(value = "查询台站树形结构", notes = "查询台站树形结构") public Result findTree(){ @@ -64,6 +78,11 @@ public class StationOperationController { return stationOperationService.getDataReceivingStatus(userId, cacheTime, oneStationId); } + @GetMapping("getDataReceivingStatusApp") + @ApiOperation(value = "查询台站监测数据信息", notes = "查询台站监测数据信息") + public Result getDataReceivingStatusApp(@RequestParam String userId,@RequestParam Double cacheTime,@RequestParam String oneStationId){ + return stationOperationService.getDataReceivingStatus(userId, cacheTime, oneStationId); + } @GetMapping("getDataProvisionEfficiency") @ApiOperation(value = "查询台站数据提供率及有效率", notes = "查询台站数据提供率及有效率") diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/SysUserFocusStationController.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/SysUserFocusStationController.java index 57e0c33a..522e7ed8 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/SysUserFocusStationController.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/SysUserFocusStationController.java @@ -50,6 +50,11 @@ public class SysUserFocusStationController { return sysUserFocusStationService.findUserFocusByUserId(userId); } + @GetMapping("findUserFocusByUserIdApp") + @ApiOperation(value = "根据用户id查询用户的缓存配置信息及关注台站信息", notes = "根据用户id查询用户的缓存配置信息及关注台站信息") + public Result findUserFocusByUserIdApp(@RequestParam String userId){ + return sysUserFocusStationService.findUserFocusByUserId(userId); + } } From eccb0480d1e57337db5f56d57fb5ed3f91b57e7f Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Tue, 20 Feb 2024 18:16:59 +0800 Subject: [PATCH 037/133] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=85=B3=E6=B3=A8=E5=8F=B0=E7=AB=99=E5=88=97=E8=A1=A8=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=EF=BC=8C=E6=8E=92=E7=8F=AD=E4=BB=BB=E5=8A=A1=E5=8F=B0?= =?UTF-8?q?=E7=AB=99=E4=B8=8E=E5=85=B3=E6=B3=A8=E5=8F=B0=E7=AB=99=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SysUserFocusStationServiceImpl.java | 44 ++++++------------- 1 file changed, 13 insertions(+), 31 deletions(-) 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 7c10d296..cb9a031e 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 @@ -241,16 +241,19 @@ public class SysUserFocusStationServiceImpl extends ServiceImpl removeIndex = new LinkedList<>(); - for (int i=0; i Date: Tue, 20 Feb 2024 19:28:21 +0800 Subject: [PATCH 038/133] =?UTF-8?q?fix:1.=E6=96=B0=E5=8A=A0=E9=82=AE?= =?UTF-8?q?=E4=BB=B6=E6=97=A5=E5=BF=97=E6=89=B9=E6=AC=A1=E5=92=8C=E7=BA=BF?= =?UTF-8?q?=E7=A8=8Bid=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/common/email/EmailLogEvent.java | 29 +++++++++++++++--- .../jeecg/common/email/EmailLogManager.java | 30 +++++++++++++++++++ .../common/email/EmailServiceManager.java | 14 ++++----- .../jeecg/modules/EmailParsingActuator.java | 18 ++++++----- .../spectrum/AbstractSpectrumHandler.java | 14 +++++++-- .../jeecg/modules/spectrum/AlertSpectrum.java | 2 +- .../modules/spectrum/BatchesCounter.java | 22 ++++++++++++++ .../modules/spectrum/DetbkphdSpectrum.java | 2 +- .../modules/spectrum/GasbkphdSpectrum.java | 2 +- .../jeecg/modules/spectrum/MetSpectrum.java | 2 +- .../jeecg/modules/spectrum/QcphdSpectrum.java | 2 +- .../modules/spectrum/SamplephdSpectrum.java | 2 +- .../spectrum/SpectrumParsingActuator.java | 17 ++++++----- .../spectrum/SpectrumServiceQuotes.java | 2 ++ 14 files changed, 124 insertions(+), 34 deletions(-) create mode 100644 jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/BatchesCounter.java diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailLogEvent.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailLogEvent.java index 37109c2e..95f3cc70 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailLogEvent.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailLogEvent.java @@ -48,6 +48,10 @@ public class EmailLogEvent { */ private Date logTime; + private Long threadId; + + private Integer batchesCounter; + public EmailLogEvent(){ } @@ -60,7 +64,9 @@ public class EmailLogEvent { this.logTime = new Date(); } - public EmailLogEvent(String gsType,String logProcess) { + public EmailLogEvent(Integer batchesCounter,Long threadId,String gsType,String logProcess) { + this.batchesCounter = batchesCounter; + this.threadId = threadId; this.gsType = gsType; this.logProcess = logProcess; this.logTime = new Date(); @@ -73,7 +79,18 @@ public class EmailLogEvent { this.logTime = new Date(); } - public EmailLogEvent(String gsType,String state, String logProcess,String phdMailLoadPath) { + public EmailLogEvent(Integer batchesCounter,Long threadId,String gsType,String state, String logProcess) { + this.batchesCounter = batchesCounter; + this.threadId = threadId; + this.gsType = gsType; + this.state = state; + this.logProcess = logProcess; + this.logTime = new Date(); + } + + public EmailLogEvent(Integer batchesCounter,Long threadId,String gsType,String state, String logProcess,String phdMailLoadPath) { + this.batchesCounter = batchesCounter; + this.threadId = threadId; this.gsType = gsType; this.state = state; this.logProcess = logProcess; @@ -81,7 +98,9 @@ public class EmailLogEvent { this.logTime = new Date(); } - public EmailLogEvent(String gsType,String state, String logProcess,String subject,String recieveTime,String emlPath) { + public EmailLogEvent(Integer batchesCounter,Long threadId,String gsType,String state, String logProcess,String subject,String recieveTime,String emlPath) { + this.batchesCounter = batchesCounter; + this.threadId = threadId; this.gsType = gsType; this.state = state; this.logProcess = logProcess; @@ -91,7 +110,9 @@ public class EmailLogEvent { this.logTime = new Date(); } - public EmailLogEvent(String gsType,String state, String logProcess,String subject,String recieveTime) { + public EmailLogEvent(Integer batchesCounter,Long threadId,String gsType,String state, String logProcess,String subject,String recieveTime) { + this.batchesCounter = batchesCounter; + this.threadId = threadId; this.gsType = gsType; this.state = state; this.logProcess = logProcess; diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailLogManager.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailLogManager.java index 67f8f682..00b8c7c9 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailLogManager.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/email/EmailLogManager.java @@ -201,6 +201,11 @@ public class EmailLogManager { */ private String getIdHeaderLog(EmailLogEvent event){ StringBuilder logContent = new StringBuilder(); + logContent.append("Batches: "); + logContent.append(event.getBatchesCounter()); + logContent.append(" ThreadId: "); + logContent.append(event.getThreadId()); + logContent.append(StringConstant.SPACE); logContent.append(DateUtils.formatDate(event.getLogTime(),"yyyy-MM-dd HH:mm:ss")); logContent.append(" Get FileNameHeader "); logContent.append(event.getState()); @@ -217,6 +222,11 @@ public class EmailLogManager { */ private String getIdBodyLog(EmailLogEvent event){ StringBuilder logContent = new StringBuilder(); + logContent.append("Batches: "); + logContent.append(event.getBatchesCounter()); + logContent.append(" ThreadId: "); + logContent.append(event.getThreadId()); + logContent.append(StringConstant.SPACE); logContent.append(DateUtils.formatDate(event.getLogTime(),"yyyy-MM-dd HH:mm:ss")); logContent.append(" Get File "); logContent.append(event.getPhdMailLoadPath()); @@ -234,6 +244,11 @@ public class EmailLogManager { */ private String getIdEmlLog(EmailLogEvent event){ StringBuilder logContent = new StringBuilder(); + logContent.append("Batches: "); + logContent.append(event.getBatchesCounter()); + logContent.append(" ThreadId: "); + logContent.append(event.getThreadId()); + logContent.append(StringConstant.SPACE); logContent.append(DateUtils.formatDate(event.getLogTime(),"yyyy-MM-dd HH:mm:ss")); logContent.append(" Get File subject:"); logContent.append(event.getSubject()); @@ -255,6 +270,11 @@ public class EmailLogManager { */ private String getDeleteLog(EmailLogEvent event){ StringBuilder logContent = new StringBuilder(); + logContent.append("Batches: "); + logContent.append(event.getBatchesCounter()); + logContent.append(" ThreadId: "); + logContent.append(event.getThreadId()); + logContent.append(StringConstant.SPACE); logContent.append(DateUtils.formatDate(event.getLogTime(),"yyyy-MM-dd HH:mm:ss")); logContent.append(" Delete File subject:"); logContent.append(event.getSubject()); @@ -274,6 +294,11 @@ public class EmailLogManager { */ private String getExpungeLog(EmailLogEvent event){ StringBuilder logContent = new StringBuilder(); + logContent.append("Batches: "); + logContent.append(event.getBatchesCounter()); + logContent.append(" ThreadId: "); + logContent.append(event.getThreadId()); + logContent.append(StringConstant.SPACE); logContent.append(DateUtils.formatDate(event.getLogTime(),"yyyy-MM-dd HH:mm:ss")); logContent.append(" Expunge File subject:"); logContent.append(event.getSubject()); @@ -293,6 +318,11 @@ public class EmailLogManager { */ private String getDoneLog(EmailLogEvent event){ StringBuilder logContent = new StringBuilder(); + logContent.append("Batches: "); + logContent.append(event.getBatchesCounter()); + logContent.append(" ThreadId: "); + logContent.append(event.getThreadId()); + logContent.append(StringConstant.SPACE); logContent.append(DateUtils.formatDate(event.getLogTime(),"yyyy-MM-dd HH:mm:ss")); logContent.append(" Done"); logContent.append(LOG_SUFFIX); 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 35009219..06376708 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 @@ -436,7 +436,7 @@ public class EmailServiceManager { * @param message * @return */ - public String getMailSubject(@NotNull Message message) throws MessagingException { + public String getMailSubject(@NotNull Message message,Integer batchesCounter) throws MessagingException { String subject = ""; String status = EmailLogManager.STATUS_SUCCESS; try { @@ -447,7 +447,7 @@ public class EmailServiceManager { status = EmailLogManager.STATUS_ERROR; throw e; }finally { - EmailLogEvent event = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,status,EmailLogManager.GETIDHEADER); + EmailLogEvent event = new EmailLogEvent(batchesCounter,Thread.currentThread().getId(),EmailLogManager.GS_TYPE_GET,status,EmailLogManager.GETIDHEADER); EmailLogManager.getInstance().offer(Thread.currentThread().getId(),event); } return subject; @@ -518,7 +518,7 @@ public class EmailServiceManager { * 新格式为:发件人_主题_年月日_时分秒毫秒_receive_年月日_时分秒毫秒_计数(0-10000) * 当计数大于10000后从0开始,服务重启后也从0开始 */ - public File downloadEmailToEmlDir(@NotNull Message message,Integer emailCounter) throws MessagingException { + public File downloadEmailToEmlDir(@NotNull Message message,Integer emailCounter,Integer batchesCounter) throws MessagingException { String subject = ""; File emlFile = null; String status = EmailLogManager.STATUS_SUCCESS; @@ -564,7 +564,7 @@ public class EmailServiceManager { log.error(errorMsg); throw new DownloadEmailException(errorMsg); }finally { - EmailLogEvent event = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,status,EmailLogManager.GETIDEML,subject,DateUtils.formatDate(receivedDate,"yyyy-MM-dd HH:mm:ss:SSS"), + EmailLogEvent event = new EmailLogEvent(batchesCounter,Thread.currentThread().getId(),EmailLogManager.GS_TYPE_GET,status,EmailLogManager.GETIDEML,subject,DateUtils.formatDate(receivedDate,"yyyy-MM-dd HH:mm:ss:SSS"), (Objects.isNull(emlFile)?" ":emlFile.getAbsolutePath())); EmailLogManager.getInstance().offer(Thread.currentThread().getId(),event); } @@ -576,7 +576,7 @@ public class EmailServiceManager { * @param message * @throws MessagingException */ - public void removeMail(@NotNull Message message){ + public void removeMail(@NotNull Message message,Integer batchesCounter){ String status = EmailLogManager.STATUS_SUCCESS; String subject = ""; Date receivedDate = null; @@ -589,10 +589,10 @@ public class EmailServiceManager { log.error("Email deletion failed, the subject of the email is :{}, the reason is :{}.",subject,e.getMessage()); e.printStackTrace(); }finally { - EmailLogEvent removeEvent = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,status,EmailLogManager.DELETEID,subject,DateUtils.formatDate(receivedDate,"yyyy-MM-dd HH:mm:ss:SSS")); + EmailLogEvent removeEvent = new EmailLogEvent(batchesCounter,Thread.currentThread().getId(),EmailLogManager.GS_TYPE_GET,status,EmailLogManager.DELETEID,subject,DateUtils.formatDate(receivedDate,"yyyy-MM-dd HH:mm:ss:SSS")); EmailLogManager.getInstance().offer(Thread.currentThread().getId(),removeEvent); //这里删除和彻底删除一起写入日志,java和C++处理有差异,java是在连接关闭时彻底删除的 - EmailLogEvent expungeEvent = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,status,EmailLogManager.EXPUNGE,subject,DateUtils.formatDate(receivedDate,"yyyy-MM-dd HH:mm:ss:SSS")); + EmailLogEvent expungeEvent = new EmailLogEvent(batchesCounter,Thread.currentThread().getId(),EmailLogManager.GS_TYPE_GET,status,EmailLogManager.EXPUNGE,subject,DateUtils.formatDate(receivedDate,"yyyy-MM-dd HH:mm:ss:SSS")); EmailLogManager.getInstance().offer(Thread.currentThread().getId(),expungeEvent); } } 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 084e41e7..e3868439 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 @@ -86,14 +86,18 @@ public class EmailParsingActuator extends Thread{ } } log.info("EmailParsingActuator本次真实执行邮件数量为:{}",messages.length); - CountDownLatch taskLatch = new CountDownLatch(messages.length); - for(Message message : messages){ - SpectrumParsingActuator spectrumParsingActuator = new SpectrumParsingActuator(); - spectrumParsingActuator.init(message,emailProperties,emailServiceManager, - taskLatch,spectrumServiceQuotes,emailCounter); - poolExecutor.execute(spectrumParsingActuator); + if(messages.length > 0){ + //本批次邮件号 + final Integer batchesCounter = spectrumServiceQuotes.getBatchesCounter().getCurrValue(); + CountDownLatch taskLatch = new CountDownLatch(messages.length); + for(Message message : messages){ + SpectrumParsingActuator spectrumParsingActuator = new SpectrumParsingActuator(); + spectrumParsingActuator.init(message,emailProperties,emailServiceManager, + taskLatch,spectrumServiceQuotes,emailCounter,batchesCounter); + poolExecutor.execute(spectrumParsingActuator); + } + taskLatch.await(); } - taskLatch.await(); } }catch (InterruptedException | MessagingException e) { e.printStackTrace(); 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 b0c78ebb..3b237f98 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 @@ -2,6 +2,7 @@ package org.jeecg.modules.spectrum; import cn.hutool.core.io.FileUtil; import com.google.common.collect.Lists; +import io.swagger.models.auth.In; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.ArrayUtils; @@ -80,15 +81,19 @@ public abstract class AbstractSpectrumHandler extends AbstractChain { */ protected List spectrumFileLabels = Lists.newArrayList(); + protected Integer batchesCounter; + /** * 初始化参数 */ - public void init(String mailContent,String emlFileName,SpectrumServiceQuotes spectrumServiceQuotes,StringBuilder returnFileName,Integer spectrumSource) throws Exception{ + public void init(String mailContent, String emlFileName, SpectrumServiceQuotes spectrumServiceQuotes, + StringBuilder returnFileName, Integer spectrumSource, Integer batchesCounter) throws Exception{ this.mailContent = mailContent; this.spectrumServiceQuotes = spectrumServiceQuotes; this.returnFileName = returnFileName; this.spectrumSource = spectrumSource; this.emlFileName = emlFileName; + this.batchesCounter = batchesCounter; } /** @@ -109,7 +114,9 @@ public abstract class AbstractSpectrumHandler extends AbstractChain { */ protected void initNext(SpectrumServiceQuotes spectrumServiceQuotes,File spectrumFile, String sourceFilePath,DataType currDataType, - String mailContent,String emlFileName,Integer spectrumSource,StringBuilder returnFileName){ + String mailContent,String emlFileName, + Integer spectrumSource,StringBuilder returnFileName, + Integer batchesCounter){ this.spectrumServiceQuotes = spectrumServiceQuotes; this.spectrumFile = spectrumFile; this.sourceFilePath = sourceFilePath; @@ -118,6 +125,7 @@ public abstract class AbstractSpectrumHandler extends AbstractChain { this.emlFileName = emlFileName; this.spectrumSource = spectrumSource; this.returnFileName = returnFileName; + this.batchesCounter = batchesCounter; this.setChina(); } @@ -242,7 +250,7 @@ public abstract class AbstractSpectrumHandler extends AbstractChain { e.printStackTrace(); }finally { if(SpectrumSource.FORM_EMAIL_SERVICE.getSourceType().equals(spectrumSource)){ - EmailLogEvent event = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,status,EmailLogManager.GETIDBODY, + EmailLogEvent event = new EmailLogEvent(batchesCounter,Thread.currentThread().getId(),EmailLogManager.GS_TYPE_GET,status,EmailLogManager.GETIDBODY, Objects.isNull(this.spectrumFile)?" ":this.spectrumFile.getAbsolutePath()); EmailLogManager.getInstance().offer(Thread.currentThread().getId(),event); } 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 c701086f..280b2fdf 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 @@ -54,7 +54,7 @@ public class AlertSpectrum extends AbstractSpectrumHandler{ AbstractSpectrumHandler spectrumHandler = new HealthStatusSpectrum(); spectrumHandler.initNext(super.spectrumServiceQuotes,super.spectrumFile,super.sourceFilePath, super.currDataType,super.mailContent,super.emlFileName, - super.spectrumSource,super.returnFileName); + super.spectrumSource,super.returnFileName,super.batchesCounter); spectrumHandler.setPrevious(this); super.setNext(spectrumHandler); } diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/BatchesCounter.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/BatchesCounter.java new file mode 100644 index 00000000..7b000d96 --- /dev/null +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/BatchesCounter.java @@ -0,0 +1,22 @@ +package org.jeecg.modules.spectrum; + +import org.springframework.stereotype.Component; + +import java.util.concurrent.atomic.AtomicInteger; + +/** + * 批次计数器 + */ +@Component +public class BatchesCounter { + + private Object lock = new Object(); + + private AtomicInteger batchesCounter = new AtomicInteger(); + + public int getCurrValue(){ + synchronized (lock){ + return batchesCounter.getAndIncrement(); + } + } +} 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 5995047e..7941ba02 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 @@ -17,7 +17,7 @@ public class DetbkphdSpectrum extends AbstractS_D_Q_G_SpectrumHandler { AbstractSpectrumHandler spectrumHandler = new QcphdSpectrum(); spectrumHandler.initNext(super.spectrumServiceQuotes,super.spectrumFile,super.sourceFilePath, super.currDataType,super.mailContent,super.emlFileName, - super.spectrumSource,super.returnFileName); + super.spectrumSource,super.returnFileName,super.batchesCounter); spectrumHandler.setPrevious(this); super.setNext(spectrumHandler); } 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 dea30f27..d6e24e92 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 @@ -19,7 +19,7 @@ public class GasbkphdSpectrum extends AbstractS_D_Q_G_SpectrumHandler { AbstractSpectrumHandler spectrumHandler = new MetSpectrum(); spectrumHandler.initNext(super.spectrumServiceQuotes,super.spectrumFile,super.sourceFilePath, super.currDataType,super.mailContent,super.emlFileName, - super.spectrumSource,super.returnFileName); + super.spectrumSource,super.returnFileName,super.batchesCounter); spectrumHandler.setPrevious(this); super.setNext(spectrumHandler); } 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 4bd5d96c..b0b98357 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 @@ -46,7 +46,7 @@ public class MetSpectrum extends AbstractSpectrumHandler{ AbstractSpectrumHandler spectrumHandler = new AlertSpectrum(); spectrumHandler.initNext(super.spectrumServiceQuotes,super.spectrumFile,super.sourceFilePath, super.currDataType,super.mailContent,super.emlFileName, - super.spectrumSource,super.returnFileName); + super.spectrumSource,super.returnFileName,super.batchesCounter); spectrumHandler.setPrevious(this); super.setNext(spectrumHandler); } 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 d75b6a9a..a8e4d4ce 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 @@ -17,7 +17,7 @@ public class QcphdSpectrum extends AbstractS_D_Q_G_SpectrumHandler { AbstractSpectrumHandler spectrumHandler = new GasbkphdSpectrum(); spectrumHandler.initNext(super.spectrumServiceQuotes,super.spectrumFile,super.sourceFilePath, super.currDataType,super.mailContent,super.emlFileName, - super.spectrumSource,super.returnFileName); + super.spectrumSource,super.returnFileName,super.batchesCounter); spectrumHandler.setPrevious(this); super.setNext(spectrumHandler); } 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 3680d36f..9f962e63 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 @@ -28,7 +28,7 @@ public class SamplephdSpectrum extends AbstractS_D_Q_G_SpectrumHandler { AbstractSpectrumHandler spectrumHandler = new DetbkphdSpectrum(); spectrumHandler.initNext(super.spectrumServiceQuotes,super.spectrumFile,super.sourceFilePath, super.currDataType,super.mailContent,super.emlFileName, - super.spectrumSource,super.returnFileName); + super.spectrumSource,super.returnFileName,super.batchesCounter); spectrumHandler.setPrevious(this); super.setNext(spectrumHandler); } 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 f1e80ace..e86adab7 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 @@ -58,6 +58,8 @@ public class SpectrumParsingActuator implements Runnable{ * 邮件计数器 */ private EmailCounter emailCounter; + + private Integer batchesCounter; /** * 一天秒数 */ @@ -65,13 +67,14 @@ public class SpectrumParsingActuator implements Runnable{ public void init(Message message, EmailProperties emailProperties,EmailServiceManager emailServiceManager, CountDownLatch taskLatch, SpectrumServiceQuotes spectrumServiceQuotes, - EmailCounter emailCounter){ + EmailCounter emailCounter,Integer batchesCounter){ this.message = message; this.emailProperties = emailProperties; this.emailServiceManager = emailServiceManager; this.taskLatch = taskLatch; this.spectrumServiceQuotes = spectrumServiceQuotes; this.emailCounter = emailCounter; + this.batchesCounter = batchesCounter; } @Override @@ -79,7 +82,7 @@ public class SpectrumParsingActuator implements Runnable{ String subject = null; try { //获取邮件主题 - subject = emailServiceManager.getMailSubject(message); + subject = emailServiceManager.getMailSubject(message,this.batchesCounter); //解析之前先把邮件唯一信息存储到redis String messageId = ((MimeMessage) message).getMessageID(); @@ -90,7 +93,7 @@ public class SpectrumParsingActuator implements Runnable{ SpectrumLogManager.mailSpectrumLogManager.offer(Thread.currentThread().getId(),null); //所有邮件都需以.eml格式存储到eml文件夹中 - final File emlFile = emailServiceManager.downloadEmailToEmlDir(message, emailCounter.getCurrValue()); + final File emlFile = emailServiceManager.downloadEmailToEmlDir(message, emailCounter.getCurrValue(),this.batchesCounter); //保存邮件日志到PG数据库 this.spectrumServiceQuotes.getMailLogService().create(message,emailProperties); @@ -104,7 +107,7 @@ public class SpectrumParsingActuator implements Runnable{ // 如果邮件内容校验成功 将文件保存到eml目录 并删除邮件对象 if(checkMailContent(mailContent,subject)){ AbstractSpectrumHandler spectrumHandler = new SamplephdSpectrum(); - spectrumHandler.init(mailContent.toString(),emlFile.getName(),spectrumServiceQuotes,new StringBuilder(),SpectrumSource.FORM_EMAIL_SERVICE.getSourceType()); + spectrumHandler.init(mailContent.toString(),emlFile.getName(),spectrumServiceQuotes,new StringBuilder(),SpectrumSource.FORM_EMAIL_SERVICE.getSourceType(),batchesCounter); final boolean matchResult = spectrumHandler.saveEmailToLocal(); if(matchResult){ //开始解析 @@ -112,7 +115,7 @@ public class SpectrumParsingActuator implements Runnable{ }else{ log.warn("This email {} parsing failed and is not listed in the Met, Alert, SOH, Sample, Detbkphd, QC, Gasbkphd spectra.",subject); } - emailServiceManager.removeMail(message); + emailServiceManager.removeMail(message,batchesCounter); }else { // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError if (Objects.nonNull(emlFile) && emlFile.exists()){ @@ -125,12 +128,12 @@ public class SpectrumParsingActuator implements Runnable{ } catch (Exception e) { // 如果不是下载导致的失败,则删除下载的邮件对象 if(!(e instanceof DownloadEmailException)){ - emailServiceManager.removeMail(message); + emailServiceManager.removeMail(message,batchesCounter); } e.printStackTrace(); }finally { try { - EmailLogEvent expungeEvent = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,EmailLogManager.DONE); + EmailLogEvent expungeEvent = new EmailLogEvent(this.batchesCounter,Thread.currentThread().getId(),EmailLogManager.GS_TYPE_GET,EmailLogManager.DONE); EmailLogManager.getInstance().offer(Thread.currentThread().getId(),expungeEvent); EmailLogManager.getInstance().writeLog(Thread.currentThread().getId()); 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 9158d08c..82734ebe 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 @@ -90,4 +90,6 @@ public class SpectrumServiceQuotes { */ private final Object originalLibraryLock = new Object(); + private final BatchesCounter batchesCounter; + } From 0fdcfbe9223ecc7646916f1c31f71f8818362607 Mon Sep 17 00:00:00 2001 From: xiaoguangbin Date: Wed, 21 Feb 2024 08:53:55 +0800 Subject: [PATCH 039/133] =?UTF-8?q?fix:=20=E5=B0=9D=E8=AF=95=E6=9B=B4?= =?UTF-8?q?=E6=94=B9eml=E4=BF=9D=E5=AD=98=E5=88=B0=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=E8=A7=A3=E5=86=B3=E4=B8=8B=E8=BD=BD=E5=87=BA?= =?UTF-8?q?=E7=8E=B0=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 --- .../common/email/EmailServiceManager.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) 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 06376708..b406a21e 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 @@ -556,7 +556,24 @@ public class EmailServiceManager { final String rootPath = spectrumPathProperties.getRootPath(); final String emlPath = spectrumPathProperties.getEmlPath(); emlFile = new File(rootPath+emlPath+File.separator+fileName); - message.writeTo(new FileOutputStream(emlFile)); +// message.writeTo(new FileOutputStream(emlFile)); + + int bufferSize = 1024 * 1024; // 1M + InputStream inputStream = message.getInputStream(); + BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream, bufferSize); + // 或者使用 BufferedOutputStream + OutputStream outputStream = new FileOutputStream(emlFile); + BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream, bufferSize); + // 从邮件的输入流读取内容,并写入到本地文件 + byte[] buffer = new byte[bufferSize]; + int bytesRead; + while ((bytesRead = bufferedInputStream.read(buffer)) != -1) { + bufferedOutputStream.write(buffer, 0, bytesRead); + } + + // 关闭流 + bufferedInputStream.close(); + bufferedOutputStream.close(); } catch (MessagingException | IOException e) { // 下载邮件失败 抛出自定义邮件下载异常 status = EmailLogManager.STATUS_ERROR; From d3d84a1c8307e2fd0fe732006878f6f257cfa712 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 21 Feb 2024 08:59:56 +0800 Subject: [PATCH 040/133] =?UTF-8?q?app=E7=AB=AF=E8=AF=B7=E6=B1=82=E7=99=BB?= =?UTF-8?q?=E9=99=86=E6=A8=A1=E5=9D=97=E6=8E=A5=E5=8F=A3=E9=83=A8=E5=88=86?= =?UTF-8?q?=EF=BC=8C=E8=8E=B7=E5=8F=96=E9=AA=8C=E8=AF=81=E7=A0=81=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=97=A0=E6=B3=95=E8=AF=B7=E6=B1=82=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 --- .../modules/feignclient/SystemClient.java | 10 +--- .../system/controller/LoginController.java | 60 +------------------ 2 files changed, 4 insertions(+), 66 deletions(-) diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/SystemClient.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/SystemClient.java index ca54dfee..edb47d90 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/SystemClient.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/SystemClient.java @@ -34,18 +34,12 @@ public interface SystemClient { * @return */ @RequestMapping("/mlogout") - Result logout(@RequestBody HttpServletRequest request); + Result logout(@RequestParam HttpServletRequest request); /** * 图形验证码 */ - @GetMapping("/mRandomImage/{key}") + @GetMapping("/randomImage/{key}") Result randomImage(@PathVariable("key") String key); - /** - * 图形验证码 - * @return - */ - @PostMapping("/mCheckCaptcha") - Result checkCaptcha(); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java index f222d59c..d70720f5 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java @@ -220,7 +220,7 @@ public class LoginController { * @return */ @RequestMapping(value = "/mlogout") - public Result mlogout(@RequestBody HttpServletRequest request) { + public Result mlogout(@RequestParam HttpServletRequest request) { //用户退出逻辑 String token = request.getHeader(CommonConstant.X_ACCESS_TOKEN); if(oConvertUtils.isEmpty(token)) { @@ -536,12 +536,11 @@ public class LoginController { /** * 后台生成图形验证码 :有效 - * @param response * @param key */ @ApiOperation("获取验证码") @GetMapping(value = "/randomImage/{key}") - public Result randomImage(HttpServletResponse response,@PathVariable("key") String key){ + public Result randomImage(@PathVariable("key") String key){ Result res = new Result(); try { //生成验证码 @@ -569,40 +568,6 @@ public class LoginController { return res; } - /** - * app端后台生成图形验证码 :有效 - * @param key - */ - @ApiOperation("获取验证码") - @GetMapping(value = "/mRandomImage/{key}") - public Result mRandomImage(@PathVariable("key") String key){ - Result res = new Result(); - try { - //生成验证码 - String code = RandomUtil.randomString(BASE_CHECK_CODES,4); - //存到redis中 - String lowerCaseCode = code.toLowerCase(); - - //update-begin-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906 - // 加入密钥作为混淆,避免简单的拼接,被外部利用,用户自定义该密钥即可 - String origin = lowerCaseCode+key+jeecgBaseConfig.getSignatureSecret(); - String realKey = Md5Util.md5Encode(origin, "utf-8"); - //update-end-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906 - - redisUtil.set(realKey, lowerCaseCode, 60); - log.info("获取验证码,Redis key = {},checkCode = {}", realKey, code); - //返回前端 - String base64 = RandImageUtil.generate(code); - res.setSuccess(true); - res.setResult(base64); - } catch (Exception e) { - log.error(e.getMessage(), e); - res.error500("获取验证码失败,请检查redis配置!"); - return res; - } - return res; - } - /** * 切换菜单表为vue3的表 */ @@ -746,27 +711,6 @@ public class LoginController { return Result.ok(); } - /** - * app端图形验证码 - * @param sysLoginModel - * @return - */ - @RequestMapping(value = "/mCheckCaptcha", method = RequestMethod.POST) - public Result mCheckCaptcha(@RequestBody SysLoginModel sysLoginModel){ - String captcha = sysLoginModel.getCaptcha(); - String checkKey = sysLoginModel.getCheckKey(); - if(captcha==null){ - return Result.error("验证码无效"); - } - String lowerCaseCaptcha = captcha.toLowerCase(); - String realKey = Md5Util.md5Encode(lowerCaseCaptcha+checkKey, "utf-8"); - Object checkCode = redisUtil.get(realKey); - if(checkCode==null || !checkCode.equals(lowerCaseCaptcha)) { - return Result.error("验证码错误"); - } - return Result.ok(); - } - /** * 登录二维码 */ From f4231a3c150e6bdf9bb860cda4e69412806aa833 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 21 Feb 2024 09:01:49 +0800 Subject: [PATCH 041/133] =?UTF-8?q?app=E7=AB=AF=E8=AF=B7=E6=B1=82=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=EF=BC=8C=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E6=81=AF=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/modules/controller/MessageController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java index 527e9b9d..c02658d5 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java @@ -31,7 +31,7 @@ public class MessageController { * @功能:获取我的消息 * @return */ - @GetMapping(value = "/sys/sysAnnouncementSend/getMyAnnouncementSend") + @GetMapping(value = "/sys/sysAnnouncementSend/getMyAnnouncementSendApp") public Result> getMyAnnouncementSend(@RequestParam AnnouncementSendModel announcementSendModel, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { From c7a66d167cb299d887e07f4f79d9b6b542bc6c12 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 21 Feb 2024 09:03:46 +0800 Subject: [PATCH 042/133] =?UTF-8?q?app=E7=AB=AF=E8=AF=B7=E6=B1=82=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=EF=BC=8C=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E6=81=AF=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/modules/controller/MessageController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java index c02658d5..527e9b9d 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java @@ -31,7 +31,7 @@ public class MessageController { * @功能:获取我的消息 * @return */ - @GetMapping(value = "/sys/sysAnnouncementSend/getMyAnnouncementSendApp") + @GetMapping(value = "/sys/sysAnnouncementSend/getMyAnnouncementSend") public Result> getMyAnnouncementSend(@RequestParam AnnouncementSendModel announcementSendModel, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { From 674734bfc57e6c90b55680c3fcc111a61d8ed4e6 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 21 Feb 2024 10:35:21 +0800 Subject: [PATCH 043/133] =?UTF-8?q?app=E7=AB=AF=E8=AF=B7=E6=B1=82=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E8=B0=83=E8=AF=95=E5=8F=8A=E6=8E=A5=E6=94=B6=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E6=96=B9=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AlarmAnalysisLogController.java | 2 +- .../controller/SysDatabaseController.java | 2 +- .../controller/SysEmailController.java | 2 +- .../controller/SysServerController.java | 2 +- .../modules/controller/AlarmController.java | 15 ++++++++----- .../controller/AnalysisController.java | 12 +++++------ .../modules/controller/MessageController.java | 17 +++++++++------ .../modules/controller/StationController.java | 6 ++++-- .../modules/controller/SystemController.java | 8 ++++--- .../controller/WebStatisticsController.java | 3 ++- .../modules/feignclient/AnalysisService.java | 21 ++++++++++++------- .../modules/feignclient/MessageService.java | 10 ++++----- .../feignclient/RadionuclideClient.java | 2 +- .../modules/feignclient/SystemClient.java | 2 +- .../modules/controller/GammaController.java | 14 +++++++++---- .../SpectrumAnalysesController.java | 5 +++-- .../system/controller/LoginController.java | 2 +- .../controller/SysAnnouncementController.java | 8 +++---- .../SysAnnouncementSendController.java | 14 ++++++------- 19 files changed, 88 insertions(+), 59 deletions(-) diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisLogController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisLogController.java index d3a9ab34..b51ae79c 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisLogController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisLogController.java @@ -24,7 +24,7 @@ public class AlarmAnalysisLogController extends JeecgController findPageApp(@RequestParam AnalysisLogVo analysisLogVo) { + public Result findPageApp(@ModelAttribute("analysisLogVo") AnalysisLogVo analysisLogVo) { return service.findPage(analysisLogVo); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysDatabaseController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysDatabaseController.java index 448ca4f9..e4e2654b 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysDatabaseController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysDatabaseController.java @@ -29,7 +29,7 @@ public class SysDatabaseController { @GetMapping("findPageApp") @ApiOperation(value = "分页查询数据库配置信息", notes = "分页查询数据库配置信息") - public Result findPageApp(@RequestParam QueryRequest query){ + public Result findPageApp(@ModelAttribute("query") QueryRequest query){ return sysDatabaseService.findPage(query); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java index 83118c58..9094e9b5 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java @@ -29,7 +29,7 @@ public class SysEmailController { @GetMapping("findPageApp") @ApiOperation(value = "分页查询邮箱配置信息", notes = "分页查询邮箱配置信息") - public Result findPageApp(@RequestParam QueryRequest query){ + public Result findPageApp(@ModelAttribute("query") QueryRequest query){ return sysEmailService.findPage(query); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysServerController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysServerController.java index 2d1a0473..96d4f85a 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysServerController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysServerController.java @@ -30,7 +30,7 @@ public class SysServerController { @GetMapping("findPageApp") @ApiOperation(value = "分页查询服务器数据", notes = "分页查询服务器数据") - public Result findPageApp(@RequestParam QueryRequest query){ + public Result findPageApp(@ModelAttribute("query") QueryRequest query){ return sysServerService.findPage(query); } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AlarmController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AlarmController.java index 21d2066b..182489d6 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AlarmController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AlarmController.java @@ -21,30 +21,35 @@ public class AlarmController { @ApiOperation(value="报警日志分页查询", notes="报警日志分页查询") @GetMapping(value = "/alarmAnalysisLog/findPage") public Result analysisLogFindPage(AnalysisLogVo analysisLogVo) { - return alarmClient.analysisLogFindPage(analysisLogVo); + Result result = alarmClient.analysisLogFindPage(analysisLogVo); + return result; } @ApiOperation("分页查询报警日志信息") @PostMapping("/alarmLog/findPage") public Result alarmLogFindPage(@RequestBody AlarmVo alarmVo){ - return alarmClient.alarmLogFindPage(alarmVo); + Result result = alarmClient.alarmLogFindPage(alarmVo); + return result; } @GetMapping("/sysServer/findPage") @ApiOperation(value = "分页查询服务器配置信息", notes = "分页查询服务器配置信息") public Result serverFindPage(QueryRequest query){ - return alarmClient.serverFindPage(query); + Result result = alarmClient.serverFindPage(query); + return result; } @GetMapping("/sysDatabase/findPage") @ApiOperation(value = "分页查询数据库配置信息", notes = "分页查询数据库配置信息") public Result databaseFindPage(QueryRequest query){ - return alarmClient.databaseFindPage(query); + Result result = alarmClient.databaseFindPage(query); + return result; } @GetMapping("/sysEmail/findPage") @ApiOperation(value = "分页查询邮箱配置信息", notes = "分页查询邮箱配置信息") public Result emailFindPage(QueryRequest query){ - return alarmClient.emailFindPage(query); + Result result = alarmClient.emailFindPage(query); + return result; } } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AnalysisController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AnalysisController.java index 7fbddd37..ce25538e 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AnalysisController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/AnalysisController.java @@ -17,7 +17,7 @@ public class AnalysisController { // /spectrumAnalysis/getDBSpectrumChart @GetMapping("/spectrumAnalysis/getDBSpectrumChart") @ApiOperation(value = "查询折线图相关信息接口", notes = "查询折线图相关信息接口") - public Result getDBSpectrumChart(@RequestParam String dbName,@RequestParam Integer sampleId,@RequestParam String analyst, HttpServletRequest request) { + public Result getDBSpectrumChart(String dbName,Integer sampleId,String analyst, HttpServletRequest request) { Result result = analysisService.getDBSpectrumChart(dbName, sampleId, analyst, request); return result; } @@ -25,13 +25,13 @@ public class AnalysisController { // /spectrumAnalysis/deleteSpectrumCacheData @DeleteMapping("/spectrumAnalysis/deleteSpectrumCacheData") @ApiOperation(value = "删除缓存数据",notes = "删除缓存数据") - public void deleteSpectrumCacheData(@RequestParam String sampleFileName, HttpServletRequest request) { + public void deleteSpectrumCacheData(String sampleFileName, HttpServletRequest request) { analysisService.deleteSpectrumCacheData(sampleFileName, request); } // /gamma/gammaByDB @GetMapping("/gamma/gammaByDB") - public Result gammaByDB(@RequestParam Integer sampleId,@RequestParam String dbName,@RequestParam String analyst, HttpServletRequest request){ + public Result gammaByDB(Integer sampleId,String dbName,String analyst, HttpServletRequest request){ Result result = analysisService.gammaByDB(sampleId, dbName, analyst, request); return result; } @@ -46,7 +46,7 @@ public class AnalysisController { // /gamma/peakInformation @GetMapping("/gamma/peakInformation") @ApiOperation(value = "查看Peak Information页面数据", notes = "查看Peak Information页面数据") - public Result peakInformation(@RequestParam Integer sampleId,@RequestParam String fileName, HttpServletRequest request){ + public Result peakInformation(Integer sampleId, String fileName, HttpServletRequest request){ Result result = analysisService.peakInformation(sampleId, fileName, request); return result; } @@ -54,7 +54,7 @@ public class AnalysisController { // /gamma/getGammaSelPosNuclide @GetMapping("/gamma/getGammaSelPosNuclide") @ApiOperation(value = "gamma主页面选择channel加载对应核素信息接口", notes = "gamma主页面选择channel加载对应核素信息接口") - public Result getGammaSelPosNuclide(@RequestParam Integer sampleId,@RequestParam String fileName,@RequestParam int channel,@RequestParam double energy, HttpServletRequest request) { + public Result getGammaSelPosNuclide(Integer sampleId,String fileName,int channel,double energy, HttpServletRequest request) { Result result = analysisService.getGammaSelPosNuclide(sampleId, fileName, channel, energy, request); return result; } @@ -62,7 +62,7 @@ public class AnalysisController { // /gamma/radionuclideActivity @GetMapping("/gamma/radionuclideActivity") @ApiOperation(value = "查看Radionuclide Activity页面数据", notes = "查看Radionuclide Activity页面数据") - public Result radionuclideActivity(@RequestParam Integer sampleId,@RequestParam String fileName, HttpServletRequest request) { + public Result radionuclideActivity(Integer sampleId,String fileName, HttpServletRequest request) { Result result = analysisService.radionuclideActivity(sampleId, fileName, request); return result; } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java index 527e9b9d..e04f79e3 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/MessageController.java @@ -32,34 +32,39 @@ public class MessageController { * @return */ @GetMapping(value = "/sys/sysAnnouncementSend/getMyAnnouncementSend") - public Result> getMyAnnouncementSend(@RequestParam AnnouncementSendModel announcementSendModel, + public Result getMyAnnouncementSend(AnnouncementSendModel announcementSendModel, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { - return messageService.getMyAnnouncementSend(announcementSendModel, pageNo, pageSize); + Result result = messageService.getMyAnnouncementSend(announcementSendModel, pageNo, pageSize); + return result; } // /sys/sysAnnouncementSend/editByAnntIdAndUserId @PutMapping(value = "/sys/sysAnnouncementSend/editByAnntIdAndUserId") public Result editById(@RequestBody JSONObject json) { - return messageService.editById(json); + Result result = messageService.editById(json); + return result; } // /sys/sysAnnouncementSend/readAll @PutMapping(value = "/sys/sysAnnouncementSend/readAll") public Result readAll() { - return messageService.readAll(); + Result result = messageService.readAll(); + return result; } // /sys/annountCement/syncNotic @RequestMapping(value = "/sys/annountCement/syncNotic", method = RequestMethod.GET) public Result syncNotic(@RequestParam(name="anntId",required=false) String anntId,@RequestBody HttpServletRequest request) { - return messageService.syncNotic(anntId, request); + Result result = messageService.syncNotic(anntId, request); + return result; } // /sys/annountCement/listByUser @RequestMapping(value = "/sys/annountCement/listByUser", method = RequestMethod.GET) public Result> listByUser(@RequestParam(required = false, defaultValue = "5") Integer pageSize) { - return messageService.listByUser(pageSize); + Result> result = messageService.listByUser(pageSize); + return result; } } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/StationController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/StationController.java index 4d8b1a68..a78c4412 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/StationController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/StationController.java @@ -56,7 +56,8 @@ public class StationController { @GetMapping("/stationOperation/getDataProvisionEfficiency") @ApiOperation(value = "查询台站数据提供率及有效率", notes = "查询台站数据提供率及有效率") public Result getDataProvisionEfficiency(){ - return stationService.getDataProvisionEfficiency(); + Result result = stationService.getDataProvisionEfficiency(); + return result; } // /armd-station-operation/stationOperation/findInfo @@ -79,7 +80,8 @@ public class StationController { @GetMapping("/armd-station-operation/sysUserFocusStation/findUserFocusByUserId") @ApiOperation(value = "根据用户id查询用户的缓存配置信息及关注台站信息", notes = "根据用户id查询用户的缓存配置信息及关注台站信息") public Result findUserFocusByUserId(@RequestParam String userId){ - return stationService.findUserFocusByUserId(userId); + Result result = stationService.findUserFocusByUserId(userId); + return result; } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/SystemController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/SystemController.java index 7dd631f2..634fa1b0 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/SystemController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/SystemController.java @@ -43,9 +43,10 @@ public class SystemController { * @return */ @RequestMapping(value = "/logout") - public Result logout(@RequestBody HttpServletRequest request) { + public Result logout(HttpServletRequest request) { //用户退出逻辑 - return systemClient.logout(request); + Result result = systemClient.logout(request); + return result; } /** @@ -55,6 +56,7 @@ public class SystemController { @ApiOperation("获取验证码") @GetMapping(value = "/randomImage/{key}") public Result randomImage(@PathVariable("key") String key) { - return systemClient.randomImage(key); + Result result = systemClient.randomImage(key); + return result; } } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java index 8c6af33b..cb2c6595 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java @@ -25,6 +25,7 @@ public class WebStatisticsController { @GetMapping("/findStationList") @ApiOperation(value = "根据菜单名称查询对应的台站信息", notes = "根据菜单名称查询对应的台站信息") public Result findStationList(@RequestParam String menuName){ - return webStatisticsClient.findStationList(menuName); + Result result = webStatisticsClient.findStationList(menuName); + return result; } } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AnalysisService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AnalysisService.java index 17fee240..a556dc43 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AnalysisService.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AnalysisService.java @@ -14,24 +14,31 @@ import javax.servlet.http.HttpServletRequest; public interface AnalysisService { @GetMapping("/spectrumAnalysis/getDBSpectrumChartApp") - Result getDBSpectrumChart(@RequestParam("dbName") String dbName, @RequestParam("sampleId") Integer sampleId, @RequestParam("analyst") String analyst,@RequestParam("request") HttpServletRequest request); + Result getDBSpectrumChart(@RequestParam("dbName") String dbName, @RequestParam("sampleId") Integer sampleId, + @RequestParam("analyst") String analyst,@RequestParam("request") HttpServletRequest request); @DeleteMapping("/spectrumAnalysis/deleteSpectrumCacheDataApp") - void deleteSpectrumCacheData(@RequestParam("sampleFileName") String sampleFileName,@RequestParam("request") HttpServletRequest request); + void deleteSpectrumCacheData(@RequestParam("sampleFileName") String sampleFileName, + @RequestParam("request") HttpServletRequest request); @GetMapping("/gamma/gammaByDBApp") - Result gammaByDB(@RequestParam("sampleId") Integer sampleId,@RequestParam("dbName") String dbName,@RequestParam("analyst") String analyst,@RequestParam("request") HttpServletRequest request); + Result gammaByDB(@RequestParam("sampleId") Integer sampleId,@RequestParam("dbName") String dbName, + @RequestParam("analyst") String analyst,@RequestParam("request") HttpServletRequest request); @DeleteMapping("/gamma/delPHDCacheApp") void delPHDCache(@RequestParam("fileName") String fileName); @GetMapping("/gamma/peakInformationApp") - Result peakInformation(@RequestParam("sampleId") Integer sampleId,@RequestParam("fileName") String fileName,@RequestParam("request") HttpServletRequest request); + Result peakInformation(@RequestParam("sampleId") Integer sampleId, + @RequestParam("fileName") String fileName,@RequestParam("request") HttpServletRequest request); @GetMapping("/gamma/getGammaSelPosNuclideApp") - Result getGammaSelPosNuclide(@RequestParam("sampleId") Integer sampleId,@RequestParam("fileName") String fileName,@RequestParam("channel") int channel,@RequestParam("energy") double energy,@RequestParam("request") HttpServletRequest request); + Result getGammaSelPosNuclide(@RequestParam("sampleId") Integer sampleId, + @RequestParam("fileName") String fileName,@RequestParam("channel") int channel, + @RequestParam("energy") double energy,@RequestParam("request") HttpServletRequest request); - @GetMapping("/gamma/radionuclideActivity") - Result radionuclideActivity(@RequestParam("sampleId") Integer sampleId,@RequestParam("fileName") String fileName,@RequestParam("request") HttpServletRequest request); + @GetMapping("/gamma/radionuclideActivityApp") + Result radionuclideActivity(@RequestParam("sampleId") Integer sampleId, + @RequestParam("fileName") String fileName,@RequestParam("request") HttpServletRequest request); } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java index 3a01639f..7a837510 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java @@ -19,20 +19,20 @@ public interface MessageService { @GetMapping(value = "/sys/sysAnnouncementSend/getMyAnnouncementSendApp") - Result> getMyAnnouncementSend(@RequestParam AnnouncementSendModel announcementSendModel, + Result getMyAnnouncementSend(@RequestParam("announcementSendModel") AnnouncementSendModel announcementSendModel, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize); @PutMapping(value = "/sys/sysAnnouncementSend/editByAnntIdAndUserId") - Result editById(@RequestBody JSONObject json); + Result editById(@RequestBody JSONObject json); @PutMapping(value = "/sys/sysAnnouncementSend/readAll") - Result readAll(); + Result readAll(); @RequestMapping(value = "/sys/annountCement/syncNotic", method = RequestMethod.GET) - Result syncNotic(@RequestParam(name="anntId",required=false) String anntId, HttpServletRequest request); + Result syncNotic(@RequestParam(name="anntId",required=false) String anntId, HttpServletRequest request); @RequestMapping(value = "/sys/annountCement/listByUser", method = RequestMethod.GET) - Result> listByUser(@RequestParam(required = false, defaultValue = "5") Integer pageSize); + Result listByUser(@RequestParam(required = false, defaultValue = "5") Integer pageSize); } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/RadionuclideClient.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/RadionuclideClient.java index 1304fd06..2282a0e6 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/RadionuclideClient.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/RadionuclideClient.java @@ -25,7 +25,7 @@ public interface RadionuclideClient { * @param endTime * @return */ - @GetMapping("/findReviewedPageApp") + @GetMapping("/findAutoPageApp") Result findAutoPage(@RequestParam("queryRequest") QueryRequest queryRequest, @RequestParam("stationIds") Integer[] stationIds, @RequestParam("qualifie") String qualifie,@RequestParam("sampleType") String sampleType, diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/SystemClient.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/SystemClient.java index edb47d90..2231e53b 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/SystemClient.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/SystemClient.java @@ -34,7 +34,7 @@ public interface SystemClient { * @return */ @RequestMapping("/mlogout") - Result logout(@RequestParam HttpServletRequest request); + Result logout(@RequestParam("request") HttpServletRequest request); /** * 图形验证码 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 48077e26..483b6765 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 @@ -47,7 +47,8 @@ public class GammaController { @GetMapping("gammaByDBApp") @ApiOperation(value = "gamma页面loadFromDB加载数据", notes = "gamma页面loadFromDB加载数据") - public Result gammaByDBApp(@RequestParam Integer sampleId,@RequestParam String dbName,@RequestParam String analyst,@RequestParam HttpServletRequest request){ + public Result gammaByDBApp(@RequestParam("sampleId") Integer sampleId,@RequestParam("dbName") String dbName, + @RequestParam("analyst") String analyst, HttpServletRequest request){ return gammaService.gammaByDB(dbName, sampleId, analyst, request); } @@ -150,7 +151,9 @@ public class GammaController { @GetMapping("getGammaSelPosNuclideApp") @ApiOperation(value = "gamma主页面选择channel加载对应核素信息接口", notes = "gamma主页面选择channel加载对应核素信息接口") - public Result getGammaSelPosNuclideApp(@RequestParam Integer sampleId,@RequestParam String fileName,@RequestParam int channel,@RequestParam double energy,@RequestParam HttpServletRequest request) { + public Result getGammaSelPosNuclideApp(@RequestParam("sampleId") Integer sampleId,@RequestParam("fileName") String fileName, + @RequestParam("channel") int channel,@RequestParam("energy") double energy, + HttpServletRequest request) { return gammaService.getGammaSelPosNuclide(sampleId, fileName, channel, energy, request); } @@ -422,7 +425,8 @@ public class GammaController { @GetMapping("peakInformationApp") @ApiOperation(value = "查看Peak Information页面数据", notes = "查看Peak Information页面数据") - public Result peakInformationApp(@RequestParam Integer sampleId,@RequestParam String fileName,@RequestParam HttpServletRequest request){ + public Result peakInformationApp(@RequestParam("sampleId") Integer sampleId,@RequestParam("fileName") String fileName, + HttpServletRequest request){ return gammaService.peakInformation(sampleId, fileName, request); } @@ -461,7 +465,9 @@ public class GammaController { @GetMapping("radionuclideActivityApp") @ApiOperation(value = "查看Radionuclide Activity页面数据", notes = "查看Radionuclide Activity页面数据") - public Result radionuclideActivityApp(@RequestParam Integer sampleId,@RequestParam String fileName,@RequestParam HttpServletRequest request) { + public Result radionuclideActivityApp(@RequestParam("sampleId") Integer sampleId, + @RequestParam("fileName") String fileName, + HttpServletRequest request) { return gammaService.radionuclideActivity(sampleId, fileName, request); } 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 a232125a..9a923ae3 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 @@ -57,7 +57,8 @@ public class SpectrumAnalysesController { @GetMapping("getDBSpectrumChartApp") @ApiOperation(value = "查询折线图相关信息接口", notes = "查询折线图相关信息接口") - public Result getDBSpectrumChartApp(@RequestParam String dbName,@RequestParam Integer sampleId,@RequestParam String analyst,@RequestParam HttpServletRequest request) { + public Result getDBSpectrumChartApp(@RequestParam("dbName") String dbName,@RequestParam("sampleId") Integer sampleId, + @RequestParam("analyst") String analyst, HttpServletRequest request) { return spectrumAnalysisService.getDBSpectrumChart(dbName, sampleId, analyst, request); } @@ -75,7 +76,7 @@ public class SpectrumAnalysesController { @DeleteMapping("deleteSpectrumCacheDataApp") @ApiOperation(value = "删除缓存数据",notes = "删除缓存数据") - public void deleteSpectrumCacheDataApp(@RequestParam String sampleFileName,@RequestParam HttpServletRequest request) { + public void deleteSpectrumCacheDataApp(@RequestParam("sampleFileName") String sampleFileName, HttpServletRequest request) { spectrumAnalysisService.deleteSpectrumCacheData(sampleFileName, request); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java index d70720f5..19e064d4 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/LoginController.java @@ -220,7 +220,7 @@ public class LoginController { * @return */ @RequestMapping(value = "/mlogout") - public Result mlogout(@RequestParam HttpServletRequest request) { + public Result mlogout(HttpServletRequest request) { //用户退出逻辑 String token = request.getHeader(CommonConstant.X_ACCESS_TOKEN); if(oConvertUtils.isEmpty(token)) { diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java index 1b14eb43..904dc6d7 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java @@ -332,8 +332,8 @@ public class SysAnnouncementController { * @return */ @RequestMapping(value = "/listByUser", method = RequestMethod.GET) - public Result> listByUser(@RequestParam(required = false, defaultValue = "5") Integer pageSize) { - Result> result = new Result>(); + public Result listByUser(@RequestParam(required = false, defaultValue = "5") Integer pageSize) { + Result result = new Result(); LoginUser sysUser = (LoginUser)SecurityUtils.getSubject().getPrincipal(); String userId = sysUser.getId(); // 1.将系统消息补充到用户通告阅读标记表中 @@ -456,8 +456,8 @@ public class SysAnnouncementController { * @return */ @RequestMapping(value = "/syncNotic", method = RequestMethod.GET) - public Result syncNotic(@RequestParam(name="anntId",required=false) String anntId, HttpServletRequest request) { - Result result = new Result(); + public Result syncNotic(@RequestParam(name="anntId",required=false) String anntId, HttpServletRequest request) { + Result result = new Result(); JSONObject obj = new JSONObject(); if(StringUtils.isNotBlank(anntId)){ SysAnnouncement sysAnnouncement = sysAnnouncementService.getById(anntId); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementSendController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementSendController.java index 46fd08ad..8302cabc 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementSendController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementSendController.java @@ -185,8 +185,8 @@ public class SysAnnouncementSendController { * @return */ @PutMapping(value = "/editByAnntIdAndUserId") - public Result editById(@RequestBody JSONObject json) { - Result result = new Result(); + public Result editById(@RequestBody JSONObject json) { + Result result = new Result(); String anntId = json.getString("anntId"); LoginUser sysUser = (LoginUser)SecurityUtils.getSubject().getPrincipal(); String userId = sysUser.getId(); @@ -226,10 +226,10 @@ public class SysAnnouncementSendController { * @return */ @GetMapping(value = "/getMyAnnouncementSendApp") - public Result> getMyAnnouncementSendApp(@RequestParam AnnouncementSendModel announcementSendModel, + public Result getMyAnnouncementSendApp(@ModelAttribute("announcementSendModel") AnnouncementSendModel announcementSendModel, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, - @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { - Result> result = new Result>(); + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { + Result result = new Result(); LoginUser sysUser = (LoginUser)SecurityUtils.getSubject().getPrincipal(); String userId = sysUser.getId(); announcementSendModel.setUserId(userId); @@ -247,8 +247,8 @@ public class SysAnnouncementSendController { * @return */ @PutMapping(value = "/readAll") - public Result readAll() { - Result result = new Result(); + public Result readAll() { + Result result = new Result(); LoginUser sysUser = (LoginUser)SecurityUtils.getSubject().getPrincipal(); String userId = sysUser.getId(); LambdaUpdateWrapper updateWrapper = new UpdateWrapper().lambda(); From 463ab4a0581291071e3a224856e1141c498af56d Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 21 Feb 2024 10:37:20 +0800 Subject: [PATCH 044/133] =?UTF-8?q?web=E6=A8=A1=E5=9D=97=E8=B0=83=E7=94=A8?= =?UTF-8?q?dll=E4=BE=9D=E8=B5=96=E5=BA=93=E6=96=B9=E5=BC=8F=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/service/impl/GardsSampleDataWebServiceImpl.java | 2 -- .../main/java/org/jeecg/JeecgWebStatisticsApplication.java | 4 +++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataWebServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataWebServiceImpl.java index 30a22aa7..b862dc6e 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataWebServiceImpl.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataWebServiceImpl.java @@ -147,8 +147,6 @@ public class GardsSampleDataWebServiceImpl extends ServiceImpl Date: Wed, 21 Feb 2024 11:41:53 +0800 Subject: [PATCH 045/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E5=90=AF=E5=8A=A8=E7=B1=BB=E8=B0=83=E7=94=A8?= =?UTF-8?q?dll=E5=BA=93=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/JeecgSpectrumAnalysisApplication.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 695c9169..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 @@ -63,11 +63,11 @@ public class JeecgSpectrumAnalysisApplication extends SpringBootServletInitializ @Override public void run(String... args) throws Exception { //Windows加载dll工具库 - /*System.loadLibrary("ReadPHDFile"); - System.loadLibrary("GammaAnaly");*/ + System.loadLibrary("ReadPHDFile"); + System.loadLibrary("GammaAnaly"); //Linux版本加载dll工具库 - System.load("/usr/local/jdk/lib/libReadPHDFile.so"); - System.load("/usr/local/jdk/lib/libGammaAnalyALG.so"); +// System.load("/usr/local/jdk/lib/libReadPHDFile.so"); +// System.load("/usr/local/jdk/lib/libGammaAnalyALG.so"); //创建缓存 betaCache.initCache(); localCache.initCache(); From 3d4f5275bee312fd933d279901c1bee8ff9c9eb7 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 21 Feb 2024 13:52:12 +0800 Subject: [PATCH 046/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97Beta=E8=B0=B1=E5=8A=A0=E8=BD=BD=E4=BA=BA?= =?UTF-8?q?=E5=B7=A5=E4=BA=A4=E4=BA=92=E5=88=86=E6=9E=90=E7=94=9F=E6=88=90?= =?UTF-8?q?=E7=9A=84=E5=85=AC=E5=BC=8F=E5=8F=8A=E6=8B=9F=E5=90=88=E6=8A=98?= =?UTF-8?q?=E7=BA=BF=E8=BF=94=E5=9B=9E=E5=8F=82=E6=95=B0=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E9=80=BB=E8=BE=91=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, 2 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 d65d396c..86f642b6 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 @@ -1930,7 +1930,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements map.put("gammaSpectrum", seriseDataList); //判断人工交互的道值与能量对应参数数组是否为空 - if (CollectionUtils.isNotEmpty(betaDataFile.getGammaList())) { + if (Objects.nonNull(betaDataFile.getBgPara()) && CollectionUtils.isNotEmpty(betaDataFile.getGammaList())) { //存储计算参数道值 List xs = new LinkedList(); //存储计算参数能量值 @@ -2151,7 +2151,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements map.put("EToC", fittingParaToUiStr); //判断人工交互的道值与能量对应参数数组是否为空 - if (CollectionUtils.isNotEmpty(betaDataFile.getBetaList())) { + if (Objects.nonNull(betaDataFile.getBgPara()) && CollectionUtils.isNotEmpty(betaDataFile.getBetaList())) { //存储计算参数道值 List xs = new LinkedList(); //存储计算参数能量值 From fac50f05bd1ca62e716520f9e5ae09cb1622b319 Mon Sep 17 00:00:00 2001 From: orgin Date: Wed, 21 Feb 2024 17:07:46 +0800 Subject: [PATCH 047/133] =?UTF-8?q?fix:=E8=A7=A3=E5=86=B3=20app=20?= =?UTF-8?q?=E6=89=93=E5=8C=85=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-server-cloud/armd-app-start/pom.xml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/jeecg-server-cloud/armd-app-start/pom.xml b/jeecg-server-cloud/armd-app-start/pom.xml index 42cec071..6cdea0a6 100644 --- a/jeecg-server-cloud/armd-app-start/pom.xml +++ b/jeecg-server-cloud/armd-app-start/pom.xml @@ -37,5 +37,12 @@ 3.5.1 - - \ No newline at end of file + + + + org.springframework.boot + spring-boot-maven-plugin + + + + From 905880d57f5c4c4121c5fa40838904ae1945e4f7 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 21 Feb 2024 18:29:34 +0800 Subject: [PATCH 048/133] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86?= =?UTF-8?q?=E6=A8=A1=E5=9D=97undeal=E6=9F=A5=E8=AF=A2redis=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E5=8C=85=E5=90=ABkey=E9=80=BB=E8=BE=91=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/jeecg/modules/UndealHandleManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 e8446135..a6b00e62 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,7 +128,7 @@ public class UndealHandleManager{ long currentMillis = System.currentTimeMillis(); long createMillis = currentMillis; //判断redis是否包含文件名称 key - if (spectrumServiceQuotes.getRedisStreamUtil().hasKey(spectrumFile.getName())) { + if (spectrumServiceQuotes.getRedisStreamUtil().hasKey(RedisConstant.UNDEAL_FILE + spectrumFile.getName())) { createMillis = (long) spectrumServiceQuotes.getRedisStreamUtil().get(RedisConstant.UNDEAL_FILE + spectrumFile.getName()); } else { spectrumServiceQuotes.getRedisStreamUtil().set(RedisConstant.UNDEAL_FILE + spectrumFile.getName(), currentMillis); From 1744232228c7924019236567bb6f0d4701c6b234 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 21 Feb 2024 18:33:10 +0800 Subject: [PATCH 049/133] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E5=BC=95=E7=94=A8dll=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/JeecgAutoProcessApplication.java | 4 ++-- 1 file changed, 2 insertions(+), 2 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 85ff15c6..e8389cec 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 @@ -70,8 +70,8 @@ public class JeecgAutoProcessApplication extends SpringBootServletInitializer im public void run(String... args) throws Exception { //调用dll //Windows加载dll工具库 - /*System.loadLibrary("ReadPHDFile"); - System.loadLibrary("GammaAnaly");*/ +// System.loadLibrary("ReadPHDFile"); +// System.loadLibrary("GammaAnaly"); //Linux版本加载dll工具库 System.load("/usr/local/jdk/lib/libReadPHDFile.so"); System.load("/usr/local/jdk/lib/libGammaAnalyALG.so"); From 714cda964f2af8047ab5d976ba05c3b39e80ad53 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 22 Feb 2024 09:30:06 +0800 Subject: [PATCH 050/133] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E7=94=9F=E6=88=90=E9=94=99=E8=AF=AF=E8=B0=B1?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=90=8D=E7=A7=B0=E6=97=B6=EF=BC=8C=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E8=B0=B1=E6=96=87=E4=BB=B6=E5=90=8D=E7=A7=B0=E5=89=8D?= =?UTF-8?q?=E7=BC=80=E9=83=A8=E5=88=86=E6=97=A0=E6=B3=95=E6=AD=A3=E5=B8=B8?= =?UTF-8?q?=E7=94=9F=E6=88=90=E6=97=B6=E6=96=B0=E5=8A=A0=E7=94=9F=E6=88=90?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= 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, 8 insertions(+), 1 deletion(-) 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 a11e7aab..866ee82c 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 @@ -182,7 +182,14 @@ public abstract class AbstractS_D_Q_G_SpectrumHandler extends AbstractSpectrumHa protected void updateErrorSpectrumFileName() throws FileNotFoundException { StringBuilder newFileName = new StringBuilder(); if (StringUtils.isNotBlank(this.sourceData.measurement_id)) { - newFileName.append(super.spectrumServiceQuotes.getNameStandUtil().GetFileNameFromDateTime(this.sourceData.measurement_id, "")); + String newName = super.spectrumServiceQuotes.getNameStandUtil().GetFileNameFromDateTime(this.sourceData.measurement_id, ""); + if (StringUtils.isNotBlank(newName)) { + newFileName.append(newName); + } else { + newFileName.append(this.sourceData.detector_code); + newFileName.append(StringConstant.DASH); + newFileName.append(""); + } } else { newFileName.append(this.sourceData.detector_code); newFileName.append(StringConstant.DASH); From 662d11bfaf96be7bfd340d11aee640ded6470850 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Thu, 22 Feb 2024 14:32:53 +0800 Subject: [PATCH 051/133] . --- .../java/org/jeecg/modules/spectrum/SpectrumParsingActuator.java | 1 + 1 file changed, 1 insertion(+) 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 e86adab7..82642090 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 @@ -123,6 +123,7 @@ public class SpectrumParsingActuator implements Runnable{ final String emlErrorPath = spectrumServiceQuotes.getSpectrumPathProperties().getEmlErrorPath(); final String finalPath = rootPath+emlErrorPath; FileOperation.moveFile(emlFile,finalPath,true); + throw new DownloadEmailException("邮件移走后手动抛出DownloadEmailException"); } } } catch (Exception e) { From 6d26adccaf41dc5afd291e9a9fd1370d319f6ed5 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Thu, 22 Feb 2024 19:39:04 +0800 Subject: [PATCH 052/133] =?UTF-8?q?feat=EF=BC=9A=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=BA=90=E4=BD=BF=E7=94=A8=E7=94=A8zabbix=E7=9B=91=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/modules/aspect/StatusAspect.java | 51 ++++++++++-- .../controller/AlarmItemController.java | 3 +- .../jeecg/modules/mapper/AlarmItemMapper.java | 4 +- .../modules/mapper/xml/AlarmItemMapper.xml | 11 ++- .../modules/service/IAlarmItemService.java | 5 +- .../modules/service/ISysDatabaseService.java | 2 - .../service/impl/AlarmItemServiceImpl.java | 37 +++------ .../service/impl/SysDatabaseServiceImpl.java | 63 +++++++++++---- .../service/impl/SysServerServiceImpl.java | 3 +- .../modules/model/AnnouncementSendModel.java | 77 ------------------- .../jeecg/modules/quartz/job/DatabaseJob.java | 29 ++++++- 11 files changed, 146 insertions(+), 139 deletions(-) delete mode 100644 jeecg-module-app/src/main/java/org/jeecg/modules/model/AnnouncementSendModel.java diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/aspect/StatusAspect.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/aspect/StatusAspect.java index f124e864..3ed96397 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/aspect/StatusAspect.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/aspect/StatusAspect.java @@ -92,6 +92,7 @@ public class StatusAspect { /* * 新增|修改数据源信息后 异步更新其状态信息 + * 更新数据源的状态(1:正常 2:离线 3:告警)和它对应的系统监控的HostId * */ @Async @AfterReturning("execution(* org.jeecg.modules.service.impl.SysDatabaseServiceImpl.update(..)) || " + @@ -99,23 +100,52 @@ public class StatusAspect { public void updateDatabaseStatus(JoinPoint point){ Object[] args = point.getArgs(); if (ArrayUtil.length(args) == 0) return; + String key = RedisConstant.DATABASE_STATUS; + Boolean online = null; SysDatabase database = (SysDatabase) args[0]; + String id = database.getId(); + String name = database.getName(); try { - databaseService.status2Redis(database); String token = ManageUtil.getToken(); Page hostPage = monitorAlarm.dbList(MonitorConstant.pageNo, MonitorConstant.pageSize, token).getResult(); - if (ObjectUtil.isNull(hostPage) || CollUtil.isEmpty(hostPage.getRecords())) return; + if (ObjectUtil.isNull(hostPage) || CollUtil.isEmpty(hostPage.getRecords())) { + redisUtil.hset(key, id, new NameValue(name, online)); + return; + } List hosts = hostPage.getRecords(); - String name = database.getName(); Host host = null; for (Host oneHost : hosts) { if (StrUtil.equals(name, oneHost.getCode())) host = oneHost; } - if (ObjectUtil.isNull(host)) return; + if (ObjectUtil.isNull(host)) { + redisUtil.hset(key, id, new NameValue(name, online)); + return; + } + // 更新该数据源状态信息 + String status = host.getStatus(); + online = CollUtil.contains(ListUtil.toList(ServerStatus.ON.getValue(), + ServerStatus.WARN.getValue()), status); + redisUtil.hset(key, id, new NameValue(name, online)); // 更新数据源的HostId database.setHostId(host.getHostId()); databaseService.updateById(database); + // 同步数据库监控项 + Map itemMap = host.getItems(); + if (MapUtil.isEmpty(itemMap) || CollUtil.isEmpty(itemMap.values())) + return; + Collection items = itemMap.values(); + List alarmItems = new ArrayList<>(); + // 只保留六个有效的监控项 + List itemNames = ListUtil.toList("dbMemory", "logRemainingSize", "latency", + "login", "dbSize", "dblSize", "connections"); + for (Item item : items) { + if (!itemNames.contains(item.getName())) continue; + AlarmItem alarmItem = BeanUtil.copyProperties(item, AlarmItem.class); + alarmItem.setId(item.getItemId()); + alarmItems.add(alarmItem); + } + alarmItemService.saveOrUpdateBatch(alarmItems); }catch (FeignException.Unauthorized e){ ManageUtil.refreshToken(); log.warn("向运管系统查询Hosts信息异常: Token失效,已刷新Token"); @@ -193,7 +223,8 @@ public class StatusAspect { if (ObjectUtil.isNotNull(result)){ String hostId = ((Result) result).getResult(); // 删除服务器相关联的监控项 - alarmItemService.deleteByHostId(hostId); + if (StrUtil.isNotBlank(hostId)) + alarmItemService.deleteByHostId(hostId); } // 删除服务器相关联的报警规则 Object[] args = point.getArgs(); @@ -205,8 +236,14 @@ public class StatusAspect { * 删除Database时 同步删除关联的报警规则 * */ @Async - @AfterReturning("execution(* org.jeecg.modules.service.impl.SysDatabaseServiceImpl.deleteById(..))") - public void databaseDelete(JoinPoint point){ + @AfterReturning(value = "execution(* org.jeecg.modules.service.impl.SysDatabaseServiceImpl.deleteById(..))", returning = "result") + public void databaseDelete(JoinPoint point, Object result){ + if (ObjectUtil.isNotNull(result)){ + String hostId = ((Result) result).getResult(); + // 删除服务器相关联的监控项 + if (StrUtil.isNotBlank(hostId)) + alarmItemService.deleteByHostId(hostId); + } // 删除数据库相关联的报警规则 Object[] args = point.getArgs(); if (ArrayUtil.length(args) > 0) diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmItemController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmItemController.java index 1ed9e715..2ba2bfcb 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmItemController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmItemController.java @@ -6,7 +6,6 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.modules.base.entity.postgre.AlarmItem; import org.jeecg.modules.service.IAlarmItemService; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -24,7 +23,7 @@ public class AlarmItemController extends JeecgController alarmItems(@RequestParam String sourceId){ - List alarmItems = service.alarmItems(sourceId); + List alarmItems = service.alarmItemsServer(sourceId); Map itemIds = alarmItems.stream() .collect(Collectors.toMap(AlarmItem::getName, AlarmItem::getId)); return Result.OK(itemIds); diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmItemMapper.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmItemMapper.java index a5bc6da5..1a53d592 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmItemMapper.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/AlarmItemMapper.java @@ -7,5 +7,7 @@ import java.util.List; public interface AlarmItemMapper extends BaseMapper { - List alarmItems(String sourceId); + List alarmItemsServer(String sourceId); + + List alarmItemsDatabase(String sourceId); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/AlarmItemMapper.xml b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/AlarmItemMapper.xml index 03eb4e23..b3edd3e8 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/AlarmItemMapper.xml +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/mapper/xml/AlarmItemMapper.xml @@ -1,7 +1,7 @@ - SELECT i.* FROM @@ -9,4 +9,13 @@ INNER JOIN sys_server s ON i.host_id = s.host_id WHERE s.ID = #{sourceId} + + \ No newline at end of file diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmItemService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmItemService.java index e0751482..acdee0d7 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmItemService.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmItemService.java @@ -1,7 +1,6 @@ package org.jeecg.modules.service; import com.baomidou.mybatisplus.extension.service.IService; -import org.jeecg.common.api.vo.Result; import org.jeecg.modules.base.dto.ItemDto; import org.jeecg.modules.base.entity.postgre.AlarmItem; @@ -11,7 +10,9 @@ public interface IAlarmItemService extends IService { void deleteByHostId(String serverId); - List alarmItems(String sourceId); + List alarmItemsServer(String sourceId); + + List alarmItemsDatabase(String sourceId); List allItems(String sourceType, String sourceId); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysDatabaseService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysDatabaseService.java index c7f7c905..f6888a80 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysDatabaseService.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/ISysDatabaseService.java @@ -35,7 +35,5 @@ public interface ISysDatabaseService extends IService { void status2Redis(); - void status2Redis(SysDatabase database); - String getNameById(String id); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmItemServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmItemServiceImpl.java index a23b14d2..4ce8875d 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmItemServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmItemServiceImpl.java @@ -1,45 +1,22 @@ package org.jeecg.modules.service.impl; -import cn.hutool.core.bean.BeanUtil; -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.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import feign.FeignException; import lombok.extern.slf4j.Slf4j; -import org.jeecg.common.api.vo.Result; -import org.jeecg.common.constant.MonitorConstant; -import org.jeecg.common.constant.Prompt; -import org.jeecg.common.util.RedisStreamUtil; -import org.jeecg.common.util.RedisUtil; -import org.jeecg.common.util.SpringContextUtils; import org.jeecg.modules.base.dto.ItemDto; -import org.jeecg.modules.base.entity.monitor.Host; -import org.jeecg.modules.base.entity.monitor.Item; import org.jeecg.modules.base.entity.postgre.AlarmItem; -import org.jeecg.modules.base.entity.postgre.AlarmItemDe; -import org.jeecg.modules.base.entity.postgre.SysServer; import org.jeecg.modules.base.enums.SourceType; -import org.jeecg.modules.feignclient.ManageUtil; -import org.jeecg.modules.feignclient.MonitorAlarm; import org.jeecg.modules.mapper.AlarmItemMapper; import org.jeecg.modules.service.IAlarmItemDeService; import org.jeecg.modules.service.IAlarmItemService; -import org.jeecg.modules.service.ISysDatabaseService; -import org.jeecg.modules.service.ISysServerService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; -import static org.jeecg.modules.base.enums.SourceType.DATABASE; -import static org.jeecg.modules.base.enums.SourceType.SERVER; - @Service @Slf4j @@ -62,8 +39,13 @@ public class AlarmItemServiceImpl extends ServiceImpl alarmItems(String sourceId) { - return baseMapper.alarmItems(sourceId); + public List alarmItemsServer(String sourceId) { + return baseMapper.alarmItemsServer(sourceId); + } + + @Override + public List alarmItemsDatabase(String sourceId) { + return baseMapper.alarmItemsDatabase(sourceId); } /* @@ -77,10 +59,13 @@ public class AlarmItemServiceImpl extends ServiceImpl deleteById(String id) { + SysDatabase database = getById(id); boolean success = removeById(id); if(success) { delStatus(id); - return Result.OK(Prompt.DELETE_SUCC); + String hostId = ObjectUtil.isNotNull(database) ? database.getHostId() : null; + return Result.OK(Prompt.DELETE_SUCC, hostId); } return Result.error(Prompt.DELETE_ERR); } @@ -363,24 +368,39 @@ public class SysDatabaseServiceImpl extends ServiceImpl databases = list(); - for (SysDatabase database : databases) { - this.status2Redis(database); + String key = RedisConstant.DATABASE_STATUS; + Map values = new HashMap<>(); + try { + String token = ManageUtil.getToken(); + List hosts = monitorAlarm.dbList(MonitorConstant.pageNo, MonitorConstant.pageSize, token).getResult().getRecords(); + Map hostMap = hosts.stream().collect(Collectors.toMap(Host::getHostId, Host -> Host)); + for (SysDatabase database : databases) { + Boolean online = null; + String hostId = database.getHostId(); + String name = database.getName(); + String databaseId = database.getId(); + Host host = hostMap.get(hostId); + // 获取该数据源的状态并保存 + if (ObjectUtil.isNotNull(host)) { + String status = host.getStatus(); + online = CollUtil.contains(ListUtil.toList(ServerStatus.ON.getValue(), + ServerStatus.WARN.getValue()), status); + values.put(databaseId, new NameValue(name, online)); + continue; + } + // 当前数据库不在监控数据库列表 + values.put(databaseId, new NameValue(name, online)); + } + redisUtil.hmset(key, values); + }catch (FeignException.Unauthorized e){ + ManageUtil.refreshToken(); + log.warn("向运管系统查询Hosts信息异常: Token失效,已刷新Token"); + } catch (Exception e){ + defaultStatus(databases); + log.error("向运管系统查询Hosts信息异常: {}", e.getMessage()); } } - @Override - public void status2Redis(SysDatabase database) { - String statusKey = RedisConstant.DATABASE_STATUS; - String id = database.getId(); - String name = database.getName(); - String dbUrl = database.getDbUrl(); - String dbDriver = database.getDbDriver(); - String dbUsername = database.getDbUsername(); - String dbPassword = database.getDbPassword(); - boolean isConn = JDBCUtil.isConnection(dbUrl, dbDriver, dbUsername, dbPassword); - redisUtil.hset(statusKey, id, new NameValue(name, isConn)); - } - @Override public String getNameById(String id) { String key = RedisConstant.DATABASE_STATUS; @@ -456,6 +476,17 @@ public class SysDatabaseServiceImpl extends ServiceImpl sysDatabases){ + String key = RedisConstant.DATABASE_STATUS; + Map values = new HashMap<>(); + for (SysDatabase database: sysDatabases) { + String id = database.getId(); + String name = database.getName(); + values.put(id, new NameValue(name, null)); + } + redisUtil.hmset(key, values); + } + /* * 删除指定id的数据源的状态值 * */ diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysServerServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysServerServiceImpl.java index 3e42ee4a..7705af49 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysServerServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysServerServiceImpl.java @@ -189,12 +189,11 @@ public class SysServerServiceImpl extends ServiceImpl deleteById(String id) { - String hostId = null; SysServer server = getById(id); boolean success = removeById(id); if(success) { delStatus(id); - hostId = ObjectUtil.isNotNull(server) ? server.getHostId() : hostId; + String hostId = ObjectUtil.isNotNull(server) ? server.getHostId() : null; return Result.OK(Prompt.DELETE_SUCC, hostId); } return Result.error(Prompt.DELETE_ERR); diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/model/AnnouncementSendModel.java b/jeecg-module-app/src/main/java/org/jeecg/modules/model/AnnouncementSendModel.java deleted file mode 100644 index 67390fa7..00000000 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/model/AnnouncementSendModel.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.jeecg.modules.model; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.fasterxml.jackson.annotation.JsonFormat; -import lombok.Data; -import org.springframework.format.annotation.DateTimeFormat; - -import java.io.Serializable; - -/** - * @Description: 用户通告阅读标记表 - * @Author: jeecg-boot - * @Date: 2019-02-21 - * @Version: V1.0 - */ -@Data -public class AnnouncementSendModel implements Serializable { - private static final long serialVersionUID = 1L; - - /**id*/ - @TableId(type = IdType.ASSIGN_ID) - private String id; - /**通告id*/ - private String anntId; - /**用户id*/ - private String userId; - /**标题*/ - private String titile; - /**内容*/ - private String msgContent; - /**发布人*/ - private String sender; - /**优先级(L低,M中,H高)*/ - private String priority; - /**阅读状态*/ - private String readFlag; - /**发布时间*/ - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") - private java.util.Date sendTime; - /**页数*/ - private Integer pageNo; - /**大小*/ - private Integer pageSize; - /** - * 消息类型1:通知公告2:系统消息 - */ - private String msgCategory; - /** - * 业务id - */ - private String busId; - /** - * 业务类型 - */ - private String busType; - /** - * 打开方式 组件:component 路由:url - */ - private String openType; - /** - * 组件/路由 地址 - */ - private String openPage; - - /** - * 业务类型查询(0.非bpm业务) - */ - private String bizSource; - - /** - * 摘要 - */ - private String msgAbstract; - -} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/DatabaseJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/DatabaseJob.java index 7022bdf1..9753f15a 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/DatabaseJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/DatabaseJob.java @@ -22,6 +22,7 @@ import org.jeecg.modules.base.entity.postgre.AlarmRule; import org.jeecg.modules.base.entity.postgre.SysDatabase; import org.jeecg.modules.base.enums.Item; import org.jeecg.modules.feignclient.AbnormalAlarmClient; +import org.jeecg.modules.feignclient.ManageUtil; import org.jeecg.modules.feignclient.MonitorSystem; import org.jeecg.modules.message.SendMessage; import org.jeecg.modules.quartz.entity.Monitor; @@ -55,6 +56,16 @@ public class DatabaseJob extends Monitor implements Job{ Set keys = getRedisStreamUtil().keys(pattern); if (CollUtil.isEmpty(keys)) return; + // 时间间隔为每分钟 + LocalDateTime now = LocalDateTime.now() + .withSecond(0) + .withNano(0); + LocalDateTime beforeMin = now.minusMinutes(1); + DateTimeFormatter formatter = DateTimeFormatter + .ofPattern(DateConstant.DATE_TIME); + String start = beforeMin.format(formatter); + String end = now.format(formatter); + String prefixSilence = RedisConstant.PREFIX_SILENCE; String operator = null; for (String ruleKey : keys) { @@ -64,6 +75,8 @@ public class DatabaseJob extends Monitor implements Job{ operator = alarmRule.getOperator(); String ruleId = alarmRule.getId(); String itemId = alarmRule.getItemId(); + String type = alarmRule.getItemType(); + Integer itemType = StrUtil.isBlank(type) ? 0 : Integer.parseInt(type); String silenceKey = prefixSilence + ruleId; boolean hasKey = getRedisStreamUtil().hasKey(silenceKey); boolean blank1 = StrUtil.isBlank(operator); @@ -75,7 +88,7 @@ public class DatabaseJob extends Monitor implements Job{ String sourceId = alarmRule.getSourceId(); String databaseName = getAlarmClient().getDatabaseName(sourceId); - // 根据监控项id选择要查询的监控项信息 + /*// 根据监控项id选择要查询的监控项信息 Item item = Item.of(itemId); if (ObjectUtil.isNull(item)) continue; Number current = null; @@ -86,7 +99,17 @@ public class DatabaseJob extends Monitor implements Job{ // 追加的监控项... default: break; + }*/ + // 向运管查询监控项数据 + String token = ManageUtil.getToken(); + Result result = getMonitorSystem().itemBack(itemId, itemType, start, end, token); + ItemHistory itemHistory = result.getResult(); + if (ObjectUtil.isNull(itemHistory)){ + log.warn("Database监控异常: [{}]查询监控项历史数据为空", databaseName); + continue; } + Double current = itemHistory.getNow(); + // 解析预警规则,判断是否需要报警 ObjectMapper mapper = new ObjectMapper(); Rule rule = mapper.readValue(operator, Rule.class); @@ -130,12 +153,12 @@ public class DatabaseJob extends Monitor implements Job{ /* * 监控项-2: 测试数据源是否可以连接成功 (0:失败 1:成功) * */ - private Integer isConnection(String databaseId){ + /*private Integer isConnection(String databaseId){ int res = 1; String statusKey = RedisConstant.DATABASE_STATUS; NameValue nameValue = (NameValue)getRedisUtil().hget(statusKey, databaseId); if (ObjectUtil.isNull(nameValue) || ObjectUtil.isNull(nameValue.getValue()) || !nameValue.getValue()) res = 0; return res; - } + }*/ } From 8523e3b2fa3318b0caf976a3f5cab1d2d5814ea0 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 22 Feb 2024 20:46:57 +0800 Subject: [PATCH 053/133] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E4=BC=9A=E5=88=A0=E9=99=A4=E9=82=AE=E4=BB=B6?= =?UTF-8?q?=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 | 1 + .../modules/spectrum/SpectrumParsingActuator.java | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) 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 b406a21e..51e4c073 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 @@ -645,6 +645,7 @@ public class EmailServiceManager { boolean exist = false; try { String key = RedisConstant.EMAIL_MSG_ID+StringConstant.COLON+messageId; + log.info("Check: Remove Email:{},receiveTime:{}",message.getSubject(), DateUtils.formatDate(message.getReceivedDate(),"yyyy-MM-dd HH:mm:ss")); exist = redisUtil.hasKey(key); if(exist){ message.setFlag(Flags.Flag.DELETED,true); 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 82642090..9a412530 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 @@ -2,6 +2,7 @@ package org.jeecg.modules.spectrum; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.toolkit.StringPool; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.constant.RedisConstant; @@ -16,8 +17,10 @@ import org.jeecg.modules.enums.SpectrumSource; import org.jeecg.modules.file.FileOperation; import javax.mail.Message; +import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import java.io.File; +import java.io.IOException; import java.nio.file.Files; import java.util.Objects; import java.util.concurrent.CountDownLatch; @@ -129,9 +132,15 @@ public class SpectrumParsingActuator implements Runnable{ } catch (Exception e) { // 如果不是下载导致的失败,则删除下载的邮件对象 if(!(e instanceof DownloadEmailException)){ + try { + log.error("Remove Email:"+ message.getSubject() + StringPool.UNDERSCORE + DateUtils.formatDate(message.getReceivedDate(), "yyyy-MM-dd HH:mm:ss") + StringPool.UNDERSCORE); + } catch (MessagingException ex) { + throw new RuntimeException(ex); + } emailServiceManager.removeMail(message,batchesCounter); } - e.printStackTrace(); + //输出异常信息 + log.error("邮件处理异常:",e); }finally { try { EmailLogEvent expungeEvent = new EmailLogEvent(this.batchesCounter,Thread.currentThread().getId(),EmailLogManager.GS_TYPE_GET,EmailLogManager.DONE); From abe1d6dfb3ceaa057ed3a781dd2126e34c707009 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 23 Feb 2024 20:09:20 +0800 Subject: [PATCH 054/133] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E4=BC=9A=E5=88=A0=E9=99=A4=E9=82=AE=E4=BB=B6?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/email/EmailServiceManager.java | 10 +++--- .../org/jeecg/modules/AutoProcessManager.java | 36 ++++++++++++++----- .../jeecg/modules/EmailParsingActuator.java | 22 ++++++------ .../spectrum/SpectrumParsingActuator.java | 1 + 4 files changed, 46 insertions(+), 23 deletions(-) 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 51e4c073..95822640 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 @@ -543,13 +543,13 @@ public class EmailServiceManager { fileName.append(StringConstant.UNDER_LINE); fileName.append(DateUtils.formatDate(new Date(),"YYMMdd")); fileName.append(StringConstant.UNDER_LINE); - fileName.append(DateUtils.formatDate(new Date(),"HHMMSSSSS")); + fileName.append(DateUtils.formatDate(new Date(),"HHmmssSSS")); fileName.append(StringConstant.UNDER_LINE); fileName.append("receive"); fileName.append(StringConstant.UNDER_LINE); fileName.append(DateUtils.formatDate(receivedDate,"YYMMdd")); fileName.append(StringConstant.UNDER_LINE); - fileName.append(DateUtils.formatDate(receivedDate,"HHMMSSSSS")); + fileName.append(DateUtils.formatDate(receivedDate,"HHmmssSSS")); fileName.append(StringConstant.UNDER_LINE); fileName.append(emailCounter); fileName.append(SAVE_EML_SUFFIX); @@ -580,6 +580,8 @@ public class EmailServiceManager { String errorMsg = StrUtil.format("The email download failed, the subject of the email is {}, the reason is {}.", subject, e.getMessage()); log.error(errorMsg); throw new DownloadEmailException(errorMsg); + }catch (Exception e) { + log.error("",e); }finally { EmailLogEvent event = new EmailLogEvent(batchesCounter,Thread.currentThread().getId(),EmailLogManager.GS_TYPE_GET,status,EmailLogManager.GETIDEML,subject,DateUtils.formatDate(receivedDate,"yyyy-MM-dd HH:mm:ss:SSS"), (Objects.isNull(emlFile)?" ":emlFile.getAbsolutePath())); @@ -599,8 +601,8 @@ public class EmailServiceManager { Date receivedDate = null; try { subject = MimeUtility.decodeText(message.getSubject()); - receivedDate = message.getReceivedDate(); message.setFlag(Flags.Flag.DELETED,true); + log.info("EmailServiceManager: Remove Email:{},receiveTime:{}",message.getSubject(), DateUtils.formatDate(message.getReceivedDate(),"yyyy-MM-dd HH:mm:ss")); } 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()); @@ -645,9 +647,9 @@ public class EmailServiceManager { boolean exist = false; try { String key = RedisConstant.EMAIL_MSG_ID+StringConstant.COLON+messageId; - log.info("Check: Remove Email:{},receiveTime:{}",message.getSubject(), DateUtils.formatDate(message.getReceivedDate(),"yyyy-MM-dd HH:mm:ss")); exist = redisUtil.hasKey(key); if(exist){ + log.info("Check: Remove Email:{},receiveTime:{}",message.getSubject(), DateUtils.formatDate(message.getReceivedDate(),"yyyy-MM-dd HH:mm:ss")); message.setFlag(Flags.Flag.DELETED,true); } 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 4472ca79..59496410 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 @@ -85,6 +85,20 @@ public class AutoProcessManager{ if(emailExecThreadMap.containsKey(next.getId())){ EmailParsingActuator actuator = emailExecThreadMap.get(next.getId()); actuator.setStop(true); + // 二十秒内 如果现在没有停止将强制停止 + for(int i=1;i<=20;i++){ + try { + TimeUnit.SECONDS.sleep(1); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + if(i==20 && actuator.isAlive()){ + actuator.stop(); + } + if(!actuator.isAlive()){ + break; + } + } emailExecThreadMap.remove(next.getId()); } iterator.remove(); @@ -95,14 +109,20 @@ public class AutoProcessManager{ next.setResetFlag(false); } if(next.isNewEmailFlag()){ - EmailParsingActuator emailParsingActuator = new EmailParsingActuator(); - emailParsingActuator.init(next,spectrumServiceQuotes,emailCounter,systemStartupTime); - emailParsingActuator.setName(next.getUsername()+"-email-monitor"); - emailParsingActuator.start(); - //把邮件监测执行线程加入管理队列 - emailExecThreadMap.put(next.getId(),emailParsingActuator); - //新邮件监测监测线程已启动则修改新邮件标记为false - next.setNewEmailFlag(false); + // 网络正常之后才允许创建新的实例 + final EmailServiceManager emailServiceManager = EmailServiceManager.getInstance(); + emailServiceManager.init(next); + boolean testFlag = emailServiceManager.testConnectEmailServer(); + if(testFlag){ + EmailParsingActuator emailParsingActuator = new EmailParsingActuator(); + emailParsingActuator.init(next,spectrumServiceQuotes,emailCounter,systemStartupTime); + emailParsingActuator.setName(next.getUsername()+"-email-monitor"); + emailParsingActuator.start(); + //把邮件监测执行线程加入管理队列 + emailExecThreadMap.put(next.getId(),emailParsingActuator); + //新邮件监测监测线程已启动则修改新邮件标记为false + next.setNewEmailFlag(false); + } } } } 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 e3868439..bf267392 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 @@ -75,16 +75,16 @@ public class EmailParsingActuator extends Thread{ if(ArrayUtils.isNotEmpty(messages)){ log.info("EmailParsingActuator本次获取邮件数量为:{}",messages.length); //检验获取的邮件是否在之前删除失败列表中,若在直接调用邮件API删除,并且此次数组里元素也删除 - for(int i=messages.length-1;i>=0;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); - } - } - } +// for(int i=messages.length-1;i>=0;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); +// } +// } +// } log.info("EmailParsingActuator本次真实执行邮件数量为:{}",messages.length); if(messages.length > 0){ //本批次邮件号 @@ -99,7 +99,7 @@ public class EmailParsingActuator extends Thread{ taskLatch.await(); } } - }catch (InterruptedException | MessagingException e) { + }catch (InterruptedException e) { e.printStackTrace(); } finally { //清除本批次邮件日志缓存 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 9a412530..90704309 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 @@ -126,6 +126,7 @@ public class SpectrumParsingActuator implements Runnable{ final String emlErrorPath = spectrumServiceQuotes.getSpectrumPathProperties().getEmlErrorPath(); final String finalPath = rootPath+emlErrorPath; FileOperation.moveFile(emlFile,finalPath,true); + spectrumServiceQuotes.getRedisUtil().del(key); throw new DownloadEmailException("邮件移走后手动抛出DownloadEmailException"); } } From d5f7729976dea618b3ffb5abe39a268f808c2d38 Mon Sep 17 00:00:00 2001 From: panbaolin <123456> Date: Fri, 23 Feb 2024 21:55:31 +0800 Subject: [PATCH 055/133] =?UTF-8?q?fix:1.=E6=96=B0=E5=8A=A0=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E4=B8=BB=E7=BA=BF=E7=A8=8B=E5=89=8D=E5=85=88=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E5=86=85=E9=83=A8=E7=BA=BF=E7=A8=8B=E6=B1=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/modules/AutoProcessManager.java | 2 ++ .../java/org/jeecg/modules/EmailParsingActuator.java | 10 ++++++++++ 2 files changed, 12 insertions(+) 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 59496410..c237653e 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 @@ -93,6 +93,8 @@ public class AutoProcessManager{ throw new RuntimeException(e); } if(i==20 && actuator.isAlive()){ + //关闭线程内部资源,例如:线程池 + actuator.closeResource(); actuator.stop(); } if(!actuator.isAlive()){ 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 bf267392..90c1feef 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 @@ -19,6 +19,7 @@ import javax.mail.internet.MimeMessage; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Objects; import java.util.concurrent.*; /** @@ -124,4 +125,13 @@ public class EmailParsingActuator extends Thread{ } } } + + /** + * 立即关闭线程池 + */ + protected void closeResource(){ + if(Objects.nonNull(poolExecutor)) { + poolExecutor.shutdownNow(); + } + } } From 5cfa3e62d3a627d59f95c623d1a41467f837dc29 Mon Sep 17 00:00:00 2001 From: panbaolin <123456> Date: Sat, 24 Feb 2024 22:50:19 +0800 Subject: [PATCH 056/133] =?UTF-8?q?fix:1.=E9=87=8D=E6=9E=84AutoManager?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=81=9C=E6=AD=A2=E9=82=AE=E4=BB=B6=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=90=8E=EF=BC=8C=E4=B8=BB=E7=BA=BF=E7=A8=8B=E5=8F=8A?= =?UTF-8?q?=E7=BA=BF=E7=A8=8B=E6=B1=A0=E4=B8=8D=E8=83=BD=E7=9C=9F=E6=AD=A3?= =?UTF-8?q?=E5=81=9C=E6=AD=A2=E9=97=AE=E9=A2=982.=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=90=AF=E7=94=A8=E5=85=B3=E9=97=AD=E9=82=AE=E4=BB=B6=EF=BC=8C?= =?UTF-8?q?=E9=82=AE=E4=BB=B6=E6=95=B0=E6=8D=AE=E6=A3=80=E6=B5=8B=E7=BA=BF?= =?UTF-8?q?=E7=A8=8B=E6=B2=A1=E6=9C=89=E6=AD=A3=E7=A1=AE=E5=93=8D=E5=BA=94?= =?UTF-8?q?=E9=97=AE=E9=A2=983.=E8=A7=A3=E5=86=B3=E9=82=AE=E4=BB=B6?= =?UTF-8?q?=E4=B8=80=E7=9B=B4=E4=B8=8B=E8=BD=BD=E9=87=8D=E5=A4=8D=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/email/EmailServiceManager.java | 37 +-- .../common/properties/TaskProperties.java | 10 + .../org/jeecg/modules/AutoProcessManager.java | 274 ++++++++++-------- .../jeecg/modules/EmailParsingActuator.java | 7 +- .../jeecg/JeecgAutoProcessApplication.java | 8 +- 5 files changed, 197 insertions(+), 139 deletions(-) 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 95822640..7d7e8131 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 @@ -97,7 +97,7 @@ public class EmailServiceManager { Socket socket = new Socket(); boolean flag = false; try { - socket.connect(new InetSocketAddress(email.getEmailServerAddress(),email.getPort()),5000); + socket.connect(new InetSocketAddress(email.getEmailServerAddress(),email.getPort()),3000); log.info("{}邮件服务连接测试成功",email.getName()); flag = true; } catch (IOException e) { @@ -556,24 +556,24 @@ public class EmailServiceManager { final String rootPath = spectrumPathProperties.getRootPath(); final String emlPath = spectrumPathProperties.getEmlPath(); emlFile = new File(rootPath+emlPath+File.separator+fileName); -// message.writeTo(new FileOutputStream(emlFile)); + message.writeTo(new FileOutputStream(emlFile)); - int bufferSize = 1024 * 1024; // 1M - InputStream inputStream = message.getInputStream(); - BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream, bufferSize); - // 或者使用 BufferedOutputStream - OutputStream outputStream = new FileOutputStream(emlFile); - BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream, bufferSize); - // 从邮件的输入流读取内容,并写入到本地文件 - byte[] buffer = new byte[bufferSize]; - int bytesRead; - while ((bytesRead = bufferedInputStream.read(buffer)) != -1) { - bufferedOutputStream.write(buffer, 0, bytesRead); - } - - // 关闭流 - bufferedInputStream.close(); - bufferedOutputStream.close(); +// int bufferSize = 1024 * 1024; // 1M +// InputStream inputStream = message.getInputStream(); +// BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream, bufferSize); +// // 或者使用 BufferedOutputStream +// OutputStream outputStream = new FileOutputStream(emlFile); +// BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream, bufferSize); +// // 从邮件的输入流读取内容,并写入到本地文件 +// byte[] buffer = new byte[bufferSize]; +// int bytesRead; +// while ((bytesRead = bufferedInputStream.read(buffer)) != -1) { +// bufferedOutputStream.write(buffer, 0, bytesRead); +// } +// +// // 关闭流 +// bufferedInputStream.close(); +// bufferedOutputStream.close(); } catch (MessagingException | IOException e) { // 下载邮件失败 抛出自定义邮件下载异常 status = EmailLogManager.STATUS_ERROR; @@ -601,6 +601,7 @@ public class EmailServiceManager { Date receivedDate = null; try { subject = MimeUtility.decodeText(message.getSubject()); + receivedDate = message.getReceivedDate(); message.setFlag(Flags.Flag.DELETED,true); log.info("EmailServiceManager: Remove Email:{},receiveTime:{}",message.getSubject(), DateUtils.formatDate(message.getReceivedDate(),"yyyy-MM-dd HH:mm:ss")); } catch (MessagingException | UnsupportedEncodingException e) { diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/TaskProperties.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/TaskProperties.java index a7594460..34f9e294 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/TaskProperties.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/TaskProperties.java @@ -41,6 +41,16 @@ public class TaskProperties implements Serializable { */ private Integer mailThreadExecCycle; + /** + * 监测需删除的邮件线程执行周期(毫秒) + */ + private Integer deletedMailThreadExecCycle; + + /** + * 强制删除邮件线程时间(毫秒) + */ + private Integer forceDeletedTime; + /** * undeal目录文件获取周期 */ 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 c237653e..3a0880dd 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 @@ -15,6 +15,7 @@ import org.jeecg.modules.spectrum.SpectrumServiceQuotes; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; +import java.io.*; import java.util.*; import java.util.concurrent.TimeUnit; @@ -66,6 +67,10 @@ public class AutoProcessManager{ final MailExecManager autoProcessThread = new MailExecManager(); autoProcessThread.setName("mail-exec-thread-manage"); autoProcessThread.start(); + //删除邮件执行线程管理 + final DeletedMailMonitor detedMailMonitor = new DeletedMailMonitor(); + detedMailMonitor.setName("deleted-mail-monitor"); + detedMailMonitor.start(); } /** @@ -78,52 +83,30 @@ public class AutoProcessManager{ for(;;){ long start = System.currentTimeMillis(); if(!CollectionUtils.isEmpty(emailMap)){ - Iterator iterator = emailMap.values().iterator(); - while(iterator.hasNext()){ - EmailProperties next = iterator.next(); - if(next.isDelFlag()){ - if(emailExecThreadMap.containsKey(next.getId())){ + synchronized (lock){ + Iterator iterator = emailMap.values().iterator(); + while(iterator.hasNext()){ + EmailProperties next = iterator.next(); + if (next.isResetFlag()) { EmailParsingActuator actuator = emailExecThreadMap.get(next.getId()); - actuator.setStop(true); - // 二十秒内 如果现在没有停止将强制停止 - for(int i=1;i<=20;i++){ - try { - TimeUnit.SECONDS.sleep(1); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - if(i==20 && actuator.isAlive()){ - //关闭线程内部资源,例如:线程池 - actuator.closeResource(); - actuator.stop(); - } - if(!actuator.isAlive()){ - break; - } - } - emailExecThreadMap.remove(next.getId()); + actuator.updateEmail(next); + next.setResetFlag(false); } - iterator.remove(); - } - if (next.isResetFlag()) { - EmailParsingActuator actuator = emailExecThreadMap.get(next.getId()); - actuator.updateEmail(next); - next.setResetFlag(false); - } - if(next.isNewEmailFlag()){ - // 网络正常之后才允许创建新的实例 - final EmailServiceManager emailServiceManager = EmailServiceManager.getInstance(); - emailServiceManager.init(next); - boolean testFlag = emailServiceManager.testConnectEmailServer(); - if(testFlag){ - EmailParsingActuator emailParsingActuator = new EmailParsingActuator(); - emailParsingActuator.init(next,spectrumServiceQuotes,emailCounter,systemStartupTime); - emailParsingActuator.setName(next.getUsername()+"-email-monitor"); - emailParsingActuator.start(); - //把邮件监测执行线程加入管理队列 - emailExecThreadMap.put(next.getId(),emailParsingActuator); - //新邮件监测监测线程已启动则修改新邮件标记为false - next.setNewEmailFlag(false); + if(next.isNewEmailFlag()){ + // 网络正常之后才允许创建新的实例 + final EmailServiceManager emailServiceManager = EmailServiceManager.getInstance(); + emailServiceManager.init(next); + boolean testFlag = emailServiceManager.testConnectEmailServer(); + if(testFlag){ + EmailParsingActuator emailParsingActuator = new EmailParsingActuator(); + emailParsingActuator.init(next,spectrumServiceQuotes,emailCounter,systemStartupTime); + emailParsingActuator.setName(next.getUsername()+"-email-monitor"); + emailParsingActuator.start(); + //把邮件监测执行线程加入管理队列 + emailExecThreadMap.put(next.getId(),emailParsingActuator); + //新邮件监测监测线程已启动则修改新邮件标记为false + next.setNewEmailFlag(false); + } } } } @@ -155,21 +138,33 @@ public class AutoProcessManager{ long start = System.currentTimeMillis(); try{ if(!CollectionUtils.isEmpty(emailMap)){ - emailMap.values().forEach(email->{ - if(!email.isDelFlag()){ - final EmailServiceManager emailServiceManager = EmailServiceManager.getInstance(); - emailServiceManager.init(email); - boolean testFlag = emailServiceManager.testConnectEmailServer(); - // redisUtil.hset(EmailConstant.EMAIL_STATUS_PREFIX,email.getId(),testFlag); - if(testFlag && !emailExecThreadMap.containsKey(email.getId())){ - email.setNewEmailFlag(true); - } - if(!testFlag){ - //如果邮件服务通信测试失败则添加删除标记 - email.setDelFlag(true); + synchronized (lock){ + //记录连接测试失败的邮箱 + List emails = new ArrayList<>(); + emailMap.values().forEach(email->{ + if(!email.isDelFlag()){ + final EmailServiceManager emailServiceManager = EmailServiceManager.getInstance(); + emailServiceManager.init(email); + boolean testFlag = emailServiceManager.testConnectEmailServer(); + if(!testFlag){ + emails.add(email); + } } + }); + //如果emailIds不为空,说明此次有测试连接失败的邮箱,直接删除 + if(!CollectionUtils.isEmpty(emails)){ + emails.forEach(email->{ + emailMap.remove(email.getId()); + //如果这时邮箱线程里已有执行的线程则设置停止标记 + if(emailExecThreadMap.containsKey(email.getId())){ + EmailParsingActuator actuator = emailExecThreadMap.get(email.getId()); + actuator.setStop(true); + actuator.setStopTime(new Date()); + } + log.info("{}邮箱测试连接失败,emailMap删除此邮箱数据,emailExecThreadMap设置线程停止标记",email.getUsername()); + }); } - }); + } } //捕获异常不处理保障线程异常不退出 }catch (Exception e){ @@ -204,41 +199,48 @@ public class AutoProcessManager{ try{ final List receiveMails = mailService.findReceiveMails(); if(!CollectionUtils.isEmpty(receiveMails)){ - //如果库里已有数据原来已开启使用并且监测Map中已存在,现在关闭使用则添加删除标记 - //如果本次查询数据监测Map中不存在,并且已开启使用的则加入监测Map - for(EmailProperties email : receiveMails){ - //判断map里是否包含邮箱id - final boolean flag = emailMap.containsKey(email.getId()); - //如果包含邮箱id 并且 邮箱处于未启用的状态 将邮箱的删除标识设置为true - if(flag && email.getEnabled().equals(SysMailEnableType.NOT_ENABLE.getMailEnableType())){ - EmailProperties sourceEmail = emailMap.get(email.getId()); - sourceEmail.setDelFlag(true); - } - //如果包含邮箱id 并且 邮箱处于启用状态 将邮箱数据进行更新 - if (flag && email.getEnabled().equals(SysMailEnableType.ENABLE.getMailEnableType())) { - EmailProperties properties = emailMap.get(email.getId()); - //判断邮箱的用户名,密码是否与原邮箱用户名,密码一致 - //如果不一致则进行更新 - if ( !properties.getUsername().equals(email.getUsername()) || !properties.getPassword().equals(email.getPassword()) ) { - email.setResetFlag(true); - putSysEmailMap(email); - log.info("{}邮箱加入监测队列",email.getEmailServerAddress()); + final Iterator iterator = receiveMails.iterator(); + synchronized (lock){ + while(iterator.hasNext()){ + EmailProperties databaseEmail = iterator.next(); + //判断map里存储的邮箱数据是否包含当前数据库邮箱记录的id + if(emailMap.containsKey(databaseEmail.getId())){ + final EmailProperties mapEmail = emailMap.get(databaseEmail.getId()); + //如果数据库里邮箱数据已关闭,则删除 + if(databaseEmail.getEnabled().equals(SysMailEnableType.NOT_ENABLE.getMailEnableType())){ + emailMap.remove(mapEmail.getId()); + //如果这时邮箱线程里已有执行的线程则设置停止标记 + if(emailExecThreadMap.containsKey(databaseEmail.getId())){ + EmailParsingActuator actuator = emailExecThreadMap.get(databaseEmail.getId()); + actuator.setStop(true); + actuator.setStopTime(new Date()); + } + log.info("{}邮箱已关闭服务,emailMap删除此邮箱数据,emailExecThreadMap设置线程停止标记",mapEmail.getUsername()); + }else{ + //判断邮箱的用户名,密码是否与原邮箱用户名,密码一致,如果不一致则进行更新 + if (!mapEmail.getUsername().equals(databaseEmail.getUsername()) || !mapEmail.getPassword().equals(databaseEmail.getPassword()) + || !mapEmail.getEmailServerAddress().equals(databaseEmail.getEmailServerAddress())) { + final boolean testFlag = testConnectEmailServer(databaseEmail); + if(testFlag){ + databaseEmail.setResetFlag(true); + emailMap.put(databaseEmail.getId(),databaseEmail); + log.info("{}邮箱数据已更新,覆盖原邮箱数据,设置重置标记",mapEmail.getUsername()); + } + } + } + }else{ + //如果不包含邮箱id 并且 邮箱处于启用状态 将邮箱对象存入到map中 并将新邮箱标识设置为true + if(databaseEmail.getEnabled().equals(SysMailEnableType.ENABLE.getMailEnableType())){ + final boolean testFlag = testConnectEmailServer(databaseEmail); + if(testFlag){ + databaseEmail.setNewEmailFlag(true); + emailMap.put(databaseEmail.getId(),databaseEmail); + log.info("{}邮箱加入监测队列,设置新增标记",databaseEmail.getUsername()); + } + } } } - //如果不包含邮箱id 并且 邮箱处于启用状态 将邮箱对象存入到map中 并将新邮箱标识设置为true - if(!flag && email.getEnabled().equals(SysMailEnableType.ENABLE.getMailEnableType())){ - email.setNewEmailFlag(true); - putSysEmailMap(email); - log.info("{}邮箱加入监测队列",email.getEmailServerAddress()); - } } - //如果监测Map中存在的邮箱数据,在本次查询数据中不存在说明库里已删除,则添加删除标记 - emailMap.forEach((emailId,sourceEmail)->{ - final long result = receiveMails.stream().filter(email -> emailId.equals(email.getId())).count(); - if (result <= 0){ - sourceEmail.setDelFlag(true); - } - }); } //捕获异常不处理保障线程异常不退出 }catch (Exception e){ @@ -259,38 +261,78 @@ public class AutoProcessManager{ } /** - * 新增邮箱数据 - * @param email + * 监测已设置删除标记的邮箱线程 + * isStop值为true的邮箱线程 + * 20秒还未停止则进行强制停止 */ - private void putSysEmailMap(EmailProperties email){ - synchronized (this.lock){ - emailMap.put(email.getId(),email); - } - } + private class DeletedMailMonitor extends Thread{ - /** - * 删除邮箱数据 - * @param emailId - */ - private void removeSysEmailMap(String emailId){ - synchronized (this.lock){ - if (emailMap.containsKey(emailId)){ - emailMap.remove(emailId); - } - } - } + @Override + public void run() { + for(;;){ + long start = System.currentTimeMillis(); + if(!CollectionUtils.isEmpty(emailExecThreadMap)){ + //遍历邮箱执行线程,如果状态为已停止则删除 + final Iterator> checkStopThreads = emailExecThreadMap.entrySet().iterator(); + while (checkStopThreads.hasNext()){ + final Map.Entry next = checkStopThreads.next(); + if(next.getValue().getState() == State.TERMINATED){ + log.info("{}邮箱执行线程已停止,emailExecThreadMap删除此邮箱数据",next.getValue().getEmailProperties().getUsername()); + checkStopThreads.remove(); + } + } - /** - * 删除邮箱数据 - * @param sysEmailIds - */ - private void removeSysEmailMap(List sysEmailIds){ - synchronized (this.lock){ - for(String sysEmailId : sysEmailIds){ - if (emailMap.containsKey(sysEmailId)){ - emailMap.remove(sysEmailId); + //遍历邮箱执行线程,如果邮箱执行线程stop属性已被设置为true则关闭资源停止线程 + final Iterator> iterator = emailExecThreadMap.entrySet().iterator(); + emailExecThreadMap.forEach((emailId,emailExecThread)->{ + try{ + if(emailExecThread.getState() != State.TERMINATED && emailExecThread.isStop()){ + final long nowTime = System.currentTimeMillis(); + final long setStoptime = emailExecThread.getStopTime().getTime(); + final long val = nowTime - setStoptime; + if(val >= taskProperties.getForceDeletedTime()){ + log.info("关闭{}邮箱线程内部线程池资源",emailExecThread.getEmailProperties().getUsername()); + emailExecThread.closeResource(); + } + } + }catch (Exception e){ + e.printStackTrace(); + }finally { + if(emailExecThread.getState() != State.TERMINATED && emailExecThread.isStop()){ + final long nowTime = System.currentTimeMillis(); + final long setStoptime = emailExecThread.getStopTime().getTime(); + final long val = nowTime - setStoptime; + if(val >= taskProperties.getForceDeletedTime()){ + log.info("强制停止{}邮箱线程",emailExecThread.getEmailProperties().getUsername()); + emailExecThread.stop(); + } + } + } + }); + } + long end = System.currentTimeMillis(); + long sleepTime = taskProperties.getDeletedMailThreadExecCycle() - (end-start); + //如果sleepTime > 0 需要睡眠到指定时间,否则继续下次监测 + if(sleepTime > 0){ + try { + TimeUnit.MILLISECONDS.sleep(sleepTime); + } catch (InterruptedException e) { + e.printStackTrace(); + } } } } } + + /** + * 测试邮箱连通性 + * @param email + * @return + */ + private boolean testConnectEmailServer(EmailProperties email){ + final EmailServiceManager emailServiceManager = EmailServiceManager.getInstance(); + emailServiceManager.init(email); + boolean testFlag = emailServiceManager.testConnectEmailServer(); + return testFlag; + } } 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 90c1feef..8abbeb06 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 @@ -1,5 +1,6 @@ package org.jeecg.modules; +import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ArrayUtils; @@ -29,13 +30,16 @@ import java.util.concurrent.*; public class EmailParsingActuator extends Thread{ private TaskProperties taskProperties; + @Getter private EmailProperties emailProperties; private ThreadPoolExecutor poolExecutor; private SpectrumServiceQuotes spectrumServiceQuotes; private EmailCounter emailCounter; private Date systemStartupTime; - @Setter + @Setter @Getter private boolean isStop; + @Setter @Getter + private Date stopTime; public void init(EmailProperties emailProperties,SpectrumServiceQuotes spectrumServiceQuotes, EmailCounter emailCounter,Date systemStartupTime){ @@ -64,6 +68,7 @@ public class EmailParsingActuator extends Thread{ if (isStop) { String nowDate = DateUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss"); log.info(nowDate + " " +this.emailProperties.getName()+" EmailParsingActuator is Stop!"); + closeResource(); return; } long start = System.currentTimeMillis(); 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 e8389cec..c2ca5b2f 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 @@ -70,11 +70,11 @@ public class JeecgAutoProcessApplication extends SpringBootServletInitializer im public void run(String... args) throws Exception { //调用dll //Windows加载dll工具库 -// System.loadLibrary("ReadPHDFile"); -// System.loadLibrary("GammaAnaly"); + System.loadLibrary("ReadPHDFile"); + System.loadLibrary("GammaAnaly"); //Linux版本加载dll工具库 - System.load("/usr/local/jdk/lib/libReadPHDFile.so"); - System.load("/usr/local/jdk/lib/libGammaAnalyALG.so"); +// System.load("/usr/local/jdk/lib/libReadPHDFile.so"); +// System.load("/usr/local/jdk/lib/libGammaAnalyALG.so"); nuclLibService.getNuclideMap(); //根据配置文件配置邮件获取策略定义时间条件,默认EmailReceivePolicy.HISTORY_ORDER_RECEIVE.getPolicy() Date systemStartupTime = null; From 720a9e47ce7125e1b2d0efbc17445a24db8c0f5f Mon Sep 17 00:00:00 2001 From: orgin Date: Mon, 26 Feb 2024 11:08:47 +0800 Subject: [PATCH 057/133] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E9=82=AE=E4=BB=B6=E4=B8=BB=E9=A2=98=E6=97=B6=20?= =?UTF-8?q?=E5=A6=82=E6=9E=9C=E5=87=BA=E9=94=99=E5=AF=BC=E8=87=B4=E9=82=AE?= =?UTF-8?q?=E4=BB=B6=E8=A2=AB=E5=88=A0=E9=99=A4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/spectrum/SpectrumParsingActuator.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) 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 90704309..c6c19121 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 @@ -83,6 +83,7 @@ public class SpectrumParsingActuator implements Runnable{ @Override public void run() { String subject = null; + boolean downloadFlag = false; try { //获取邮件主题 subject = emailServiceManager.getMailSubject(message,this.batchesCounter); @@ -97,6 +98,8 @@ public class SpectrumParsingActuator implements Runnable{ //所有邮件都需以.eml格式存储到eml文件夹中 final File emlFile = emailServiceManager.downloadEmailToEmlDir(message, emailCounter.getCurrValue(),this.batchesCounter); + downloadFlag = true; + //保存邮件日志到PG数据库 this.spectrumServiceQuotes.getMailLogService().create(message,emailProperties); @@ -126,13 +129,14 @@ public class SpectrumParsingActuator implements Runnable{ final String emlErrorPath = spectrumServiceQuotes.getSpectrumPathProperties().getEmlErrorPath(); final String finalPath = rootPath+emlErrorPath; FileOperation.moveFile(emlFile,finalPath,true); + // 删除 key,防止下次线程执行删除邮件 spectrumServiceQuotes.getRedisUtil().del(key); throw new DownloadEmailException("邮件移走后手动抛出DownloadEmailException"); } } } catch (Exception e) { - // 如果不是下载导致的失败,则删除下载的邮件对象 - if(!(e instanceof DownloadEmailException)){ + // 如果不是下载导致的失败 并且 下载成功,则删除下载的邮件对象 + if(!(e instanceof DownloadEmailException) && downloadFlag){ try { log.error("Remove Email:"+ message.getSubject() + StringPool.UNDERSCORE + DateUtils.formatDate(message.getReceivedDate(), "yyyy-MM-dd HH:mm:ss") + StringPool.UNDERSCORE); } catch (MessagingException ex) { @@ -141,7 +145,11 @@ public class SpectrumParsingActuator implements Runnable{ emailServiceManager.removeMail(message,batchesCounter); } //输出异常信息 - log.error("邮件处理异常:",e); + try { + log.error("邮件处理异常{},邮件主题:{}:", e, message.getSubject()); + } catch (MessagingException ex) { + ex.printStackTrace(); + } }finally { try { EmailLogEvent expungeEvent = new EmailLogEvent(this.batchesCounter,Thread.currentThread().getId(),EmailLogManager.GS_TYPE_GET,EmailLogManager.DONE); From 0b34e7eb1c41b87b02a133b68eb3c7227ba1e6a1 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 26 Feb 2024 11:55:42 +0800 Subject: [PATCH 058/133] =?UTF-8?q?app=E7=AB=AF=E6=9F=A5=E8=AF=A2=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E4=BC=A0=E9=80=92=E5=88=86=E9=A1=B5=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E8=A2=AB=E8=B0=83=E7=94=A8=E6=8E=A5=E5=8F=A3=E6=8E=A5=E6=94=B6?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E5=86=85=E5=AE=B9=E9=94=99=E8=AF=AF=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 --- .../controller/AlarmAnalysisLogController.java | 4 ++-- .../controller/SysDatabaseController.java | 4 ++-- .../modules/controller/SysEmailController.java | 4 ++-- .../modules/controller/SysServerController.java | 4 ++-- .../jeecg/modules/feignclient/AlarmClient.java | 16 ++++++++-------- .../modules/feignclient/MessageService.java | 4 ++-- .../modules/feignclient/RadionuclideClient.java | 7 ++++--- .../SysAnnouncementSendController.java | 4 ++-- .../controller/RadionuclideController.java | 8 ++++---- 9 files changed, 28 insertions(+), 27 deletions(-) diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisLogController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisLogController.java index b51ae79c..08d9352a 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisLogController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisLogController.java @@ -23,8 +23,8 @@ public class AlarmAnalysisLogController extends JeecgController findPageApp(@ModelAttribute("analysisLogVo") AnalysisLogVo analysisLogVo) { + @PostMapping(value = "findPageApp") + public Result findPageApp(@RequestBody AnalysisLogVo analysisLogVo) { return service.findPage(analysisLogVo); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysDatabaseController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysDatabaseController.java index e4e2654b..1436a561 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysDatabaseController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysDatabaseController.java @@ -27,9 +27,9 @@ public class SysDatabaseController { return sysDatabaseService.findPage(query); } - @GetMapping("findPageApp") + @PostMapping("findPageApp") @ApiOperation(value = "分页查询数据库配置信息", notes = "分页查询数据库配置信息") - public Result findPageApp(@ModelAttribute("query") QueryRequest query){ + public Result findPageApp(@RequestBody QueryRequest query){ return sysDatabaseService.findPage(query); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java index 9094e9b5..b8e229ef 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysEmailController.java @@ -27,9 +27,9 @@ public class SysEmailController { return sysEmailService.findPage(query); } - @GetMapping("findPageApp") + @PostMapping("findPageApp") @ApiOperation(value = "分页查询邮箱配置信息", notes = "分页查询邮箱配置信息") - public Result findPageApp(@ModelAttribute("query") QueryRequest query){ + public Result findPageApp(@RequestBody QueryRequest query){ return sysEmailService.findPage(query); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysServerController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysServerController.java index 96d4f85a..3aaff75d 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysServerController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/SysServerController.java @@ -28,9 +28,9 @@ public class SysServerController { return sysServerService.findPage(query); } - @GetMapping("findPageApp") + @PostMapping("findPageApp") @ApiOperation(value = "分页查询服务器数据", notes = "分页查询服务器数据") - public Result findPageApp(@ModelAttribute("query") QueryRequest query){ + public Result findPageApp(@RequestBody QueryRequest query){ return sysServerService.findPage(query); } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AlarmClient.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AlarmClient.java index b527c77a..c4bc9822 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AlarmClient.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/AlarmClient.java @@ -15,18 +15,18 @@ import org.springframework.web.bind.annotation.RequestParam; @FeignClient(value = "armd-abnormal-alarm") public interface AlarmClient { - @GetMapping(value = "/alarmAnalysisLog/findPageApp") - Result analysisLogFindPage(@RequestParam("analysisLogVo") AnalysisLogVo analysisLogVo); + @PostMapping(value = "/alarmAnalysisLog/findPageApp") + Result analysisLogFindPage(@RequestBody AnalysisLogVo analysisLogVo); @PostMapping(value = "/alarmLog/findPageApp") Result alarmLogFindPage(@RequestBody AlarmVo alarmVo); - @GetMapping(value = "/sysEmail/findPageApp") - Result emailFindPage(@RequestParam("query") QueryRequest query); + @PostMapping(value = "/sysEmail/findPageApp") + Result emailFindPage(@RequestBody QueryRequest query); - @GetMapping(value = "/sysServer/findPageApp") - Result serverFindPage(@RequestParam("query") QueryRequest query); + @PostMapping(value = "/sysServer/findPageApp") + Result serverFindPage(@RequestBody QueryRequest query); - @GetMapping(value = "/sysDatabase/findPageApp") - Result databaseFindPage(@RequestParam("query") QueryRequest query); + @PostMapping(value = "/sysDatabase/findPageApp") + Result databaseFindPage(@RequestBody QueryRequest query); } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java index 7a837510..5b38e34c 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/MessageService.java @@ -18,8 +18,8 @@ import java.util.Map; public interface MessageService { - @GetMapping(value = "/sys/sysAnnouncementSend/getMyAnnouncementSendApp") - Result getMyAnnouncementSend(@RequestParam("announcementSendModel") AnnouncementSendModel announcementSendModel, + @PostMapping(value = "/sys/sysAnnouncementSend/getMyAnnouncementSendApp") + Result getMyAnnouncementSend(@RequestBody AnnouncementSendModel announcementSendModel, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize); diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/RadionuclideClient.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/RadionuclideClient.java index 2282a0e6..bdb463af 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/RadionuclideClient.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/RadionuclideClient.java @@ -6,6 +6,7 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; @@ -25,8 +26,8 @@ public interface RadionuclideClient { * @param endTime * @return */ - @GetMapping("/findAutoPageApp") - Result findAutoPage(@RequestParam("queryRequest") QueryRequest queryRequest, + @PostMapping("/findAutoPageApp") + Result findAutoPage(@RequestBody QueryRequest queryRequest, @RequestParam("stationIds") Integer[] stationIds, @RequestParam("qualifie") String qualifie,@RequestParam("sampleType") String sampleType, @RequestParam("startTime") @DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime, @@ -41,7 +42,7 @@ public interface RadionuclideClient { * @param endTime * @return */ - @GetMapping("/findReviewedPageApp") + @PostMapping("/findReviewedPageApp") Result findReviewedPage(@RequestParam("queryRequest") QueryRequest queryRequest, @RequestParam("stationIds") Integer[] stationIds, @RequestParam("qualifie") String qualifie, @RequestParam("startTime") @DateTimeFormat(pattern = "yyyy-MM-dd")Date startTime, diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementSendController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementSendController.java index 8302cabc..4b06e9f6 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementSendController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementSendController.java @@ -225,8 +225,8 @@ public class SysAnnouncementSendController { * @功能:获取我的消息 * @return */ - @GetMapping(value = "/getMyAnnouncementSendApp") - public Result getMyAnnouncementSendApp(@ModelAttribute("announcementSendModel") AnnouncementSendModel announcementSendModel, + @PostMapping(value = "/getMyAnnouncementSendApp") + public Result getMyAnnouncementSendApp(@RequestBody AnnouncementSendModel announcementSendModel, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { Result result = new Result(); diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/RadionuclideController.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/RadionuclideController.java index 0155167e..0b49dfed 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/RadionuclideController.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/RadionuclideController.java @@ -37,9 +37,9 @@ public class RadionuclideController { return reviewedService.findReviewedPage(queryRequest, stationIds, qualifie,startTime, endTime); } - @GetMapping("findAutoPageApp") + @PostMapping("findAutoPageApp") @ApiOperation(value = "分页查询自动处理结果", notes = "分页查询自动处理结果") - public Result findAutoPageApp(@ModelAttribute("queryRequest") QueryRequest queryRequest, + public Result findAutoPageApp(@RequestBody QueryRequest queryRequest, @RequestParam("stationIds") Integer[] stationIds, @RequestParam("qualifie") String qualifie, @RequestParam("sampleType") String sampleType, @RequestParam("startTime") @DateTimeFormat(pattern = "yyyy-MM-dd")Date startTime, @@ -47,9 +47,9 @@ public class RadionuclideController { return autoService.findAutoPage(queryRequest, stationIds, qualifie, sampleType,startTime, endTime); } - @GetMapping("findReviewedPageApp") + @PostMapping("findReviewedPageApp") @ApiOperation(value = "分页查询人工交互结果", notes = "分页查询人工交互结果") - public Result findReviewedPageApp(@ModelAttribute("queryRequest") QueryRequest queryRequest, + public Result findReviewedPageApp(@RequestBody QueryRequest queryRequest, @RequestParam("stationIds") Integer[] stationIds,@RequestParam("qualifie") String qualifie, @RequestParam("startTime") @DateTimeFormat(pattern = "yyyy-MM-dd")Date startTime, @RequestParam("endTime") @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){ From 311439e94d3815ffcbe3529458f3732c23efd120 Mon Sep 17 00:00:00 2001 From: xiaoguangbin Date: Mon, 26 Feb 2024 11:59:10 +0800 Subject: [PATCH 059/133] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A0=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E4=BF=A1=E6=81=AF=EF=BC=8C=E8=AE=B0=E5=BD=95=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E9=82=AE=E4=BB=B6=E4=B8=BB=E9=A2=98=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/email/EmailServiceManager.java | 2 +- .../spectrum/SpectrumParsingActuator.java | 27 +++++++++++-------- 2 files changed, 17 insertions(+), 12 deletions(-) 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 7d7e8131..45018aca 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 @@ -603,7 +603,7 @@ public class EmailServiceManager { subject = MimeUtility.decodeText(message.getSubject()); receivedDate = message.getReceivedDate(); message.setFlag(Flags.Flag.DELETED,true); - log.info("EmailServiceManager: Remove Email:{},receiveTime:{}",message.getSubject(), DateUtils.formatDate(message.getReceivedDate(),"yyyy-MM-dd HH:mm:ss")); +// log.info("EmailServiceManager: Remove Email:{},receiveTime:{}",message.getSubject(), DateUtils.formatDate(message.getReceivedDate(),"yyyy-MM-dd HH:mm:ss")); } 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()); 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 c6c19121..572d6c08 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 @@ -2,6 +2,7 @@ package org.jeecg.modules.spectrum; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.StringPool; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -84,13 +85,15 @@ public class SpectrumParsingActuator implements Runnable{ public void run() { String subject = null; boolean downloadFlag = false; + String receiveDate = null; try { //获取邮件主题 subject = emailServiceManager.getMailSubject(message,this.batchesCounter); //解析之前先把邮件唯一信息存储到redis String messageId = ((MimeMessage) message).getMessageID(); - String emlName = subject+ StringConstant.UNDER_LINE+ DateUtils.formatDate(message.getReceivedDate(),"yyyy-MM-dd HH:mm:ss"); + receiveDate = DateUtils.formatDate(message.getReceivedDate(),"yyyy-MM-dd HH:mm:ss"); + String emlName = subject+ StringConstant.UNDER_LINE+ receiveDate; String key = RedisConstant.EMAIL_MSG_ID+StringConstant.COLON+messageId; spectrumServiceQuotes.getRedisUtil().set(key,emlName,expiryTime); //线程开始初始化时,初始本线程负责的能谱日志事件 @@ -135,21 +138,23 @@ public class SpectrumParsingActuator implements Runnable{ } } } catch (Exception e) { + try { + if (StrUtil.isBlank(subject)) { + subject = message.getSubject(); + } + if (StrUtil.isBlank(receiveDate)) { + receiveDate = DateUtils.formatDate(message.getReceivedDate(),"yyyy-MM-dd HH:mm:ss"); + } + } catch (MessagingException ex) { + log.error("SpectrumParsingActuator中获取Message信息出现异常:", ex); + } // 如果不是下载导致的失败 并且 下载成功,则删除下载的邮件对象 if(!(e instanceof DownloadEmailException) && downloadFlag){ - try { - log.error("Remove Email:"+ message.getSubject() + StringPool.UNDERSCORE + DateUtils.formatDate(message.getReceivedDate(), "yyyy-MM-dd HH:mm:ss") + StringPool.UNDERSCORE); - } catch (MessagingException ex) { - throw new RuntimeException(ex); - } + log.error("Remove Email:"+ subject + StringPool.UNDERSCORE + receiveDate + StringPool.UNDERSCORE); emailServiceManager.removeMail(message,batchesCounter); } //输出异常信息 - try { - log.error("邮件处理异常{},邮件主题:{}:", e, message.getSubject()); - } catch (MessagingException ex) { - ex.printStackTrace(); - } + log.error("邮件处理异常{},邮件主题:{}:", e, subject); }finally { try { EmailLogEvent expungeEvent = new EmailLogEvent(this.batchesCounter,Thread.currentThread().getId(),EmailLogManager.GS_TYPE_GET,EmailLogManager.DONE); From 8ae391531d1ec93565ca708bb8d1f1efa364da1c Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 26 Feb 2024 14:45:15 +0800 Subject: [PATCH 060/133] =?UTF-8?q?app=E7=AB=AF=E6=9F=A5=E8=AF=A2=E4=BA=BA?= =?UTF-8?q?=E5=B7=A5=E4=BA=A4=E4=BA=92=E9=A1=B5=E9=9D=A2=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E6=B3=A8=E8=A7=A3=E4=BD=BF=E7=94=A8=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/modules/feignclient/RadionuclideClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/RadionuclideClient.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/RadionuclideClient.java index bdb463af..d59c0fb1 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/RadionuclideClient.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/RadionuclideClient.java @@ -43,7 +43,7 @@ public interface RadionuclideClient { * @return */ @PostMapping("/findReviewedPageApp") - Result findReviewedPage(@RequestParam("queryRequest") QueryRequest queryRequest, + Result findReviewedPage(@RequestBody QueryRequest queryRequest, @RequestParam("stationIds") Integer[] stationIds, @RequestParam("qualifie") String qualifie, @RequestParam("startTime") @DateTimeFormat(pattern = "yyyy-MM-dd")Date startTime, @RequestParam("endTime") @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime); From 1cb2f6842818e20dc610505ad8a72578d2982a7a Mon Sep 17 00:00:00 2001 From: nieziyan Date: Mon, 26 Feb 2024 19:37:25 +0800 Subject: [PATCH 061/133] =?UTF-8?q?feat=EF=BC=9A=E4=BD=BF=E7=94=A8spring?= =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=E6=9B=BF=E6=8D=A2quartz?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AlarmAnalysisNuclideParamController.java | 6 - .../controller/CalculateConcController.java | 26 --- .../main/java/org/jeecg/modules/job/Job.java | 6 + .../jeecg/modules/job/NuclideParamJob.java | 19 +++ .../org/jeecg/modules/job/NucliedAvgJob.java | 21 +++ .../modules/service/CalculateConcService.java | 2 +- .../IAlarmAnalysisNuclideParamService.java | 2 +- .../AlarmAnalysisNuclideParamServiceImpl.java | 16 +- .../impl/CalculateConcServiceImpl.java | 13 +- .../feignclient/AbnormalAlarmClient.java | 8 - .../modules/quartz/job/NuclideParamJob.java | 36 ---- .../modules/quartz/job/NucliedAvgJob.java | 48 ------ .../modules/quartz/jobs/DatabaseJob.java | 156 ++++++++++++++++++ .../jeecg/modules/quartz/jobs/EmailJob.java | 130 +++++++++++++++ .../jeecg/modules/quartz/jobs/ServerJob.java | 137 +++++++++++++++ 15 files changed, 486 insertions(+), 140 deletions(-) delete mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/CalculateConcController.java create mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/job/Job.java create mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/job/NuclideParamJob.java create mode 100644 jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/job/NucliedAvgJob.java delete mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/NuclideParamJob.java delete mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/NucliedAvgJob.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/DatabaseJob.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/EmailJob.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/ServerJob.java diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisNuclideParamController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisNuclideParamController.java index 0bfb63a6..f70406c0 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisNuclideParamController.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/AlarmAnalysisNuclideParamController.java @@ -18,12 +18,6 @@ import io.swagger.annotations.Api; @RequestMapping("nuclideParam") public class AlarmAnalysisNuclideParamController extends JeecgController { - @GetMapping("refresh") - @ApiOperation(value = "定时刷新核素计算参数信息",notes = "定时刷新核素计算参数信息") - public boolean refreshParam(){ - return service.refresh(); - } - @GetMapping("findInfo") @ApiOperation(value = "回显核素计算参数信息",notes = "回显核素计算参数信息") public Result findInfo(){ diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/CalculateConcController.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/CalculateConcController.java deleted file mode 100644 index 19462428..00000000 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/controller/CalculateConcController.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.jeecg.modules.controller; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.jeecg.modules.service.CalculateConcService; -import org.jeecg.modules.service.IAlarmAnalysisNuclideParamService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -@Api(value = "定时计算核素浓度" ,tags="定时计算核素浓度") -@RestController -@RequestMapping("calculateConc") -public class CalculateConcController { - - @Autowired - private CalculateConcService calculateConcService; - - @GetMapping("caclAndSave") - @ApiOperation(value = "计算并保存核素浓度",notes = "计算并保存核素浓度") - public boolean caclAndSave(){ - return calculateConcService.calcAndSave(); - } - -} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/job/Job.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/job/Job.java new file mode 100644 index 00000000..df7f8f70 --- /dev/null +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/job/Job.java @@ -0,0 +1,6 @@ +package org.jeecg.modules.job; + +public interface Job { + + void execute(); +} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/job/NuclideParamJob.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/job/NuclideParamJob.java new file mode 100644 index 00000000..3dddf703 --- /dev/null +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/job/NuclideParamJob.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.job; + +import lombok.extern.slf4j.Slf4j; +import org.jeecg.modules.service.IAlarmAnalysisNuclideParamService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class NuclideParamJob implements Job{ + + @Autowired + private IAlarmAnalysisNuclideParamService nuclideParamService; + + @Override + @Scheduled(cron = "${task.period-param:0 1 0 * * ?}") + public void execute() { nuclideParamService.refresh(); } +} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/job/NucliedAvgJob.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/job/NucliedAvgJob.java new file mode 100644 index 00000000..71824dba --- /dev/null +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/job/NucliedAvgJob.java @@ -0,0 +1,21 @@ +package org.jeecg.modules.job; + +import lombok.extern.slf4j.Slf4j; +import org.jeecg.modules.service.CalculateConcService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class NucliedAvgJob implements Job{ + + @Autowired + private CalculateConcService calculateConcService; + + @Override + @Scheduled(cron = "${task.period-avg:0 2 0 * * ?}") + public void execute() { + calculateConcService.calcAndSave(); + } +} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/CalculateConcService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/CalculateConcService.java index 1936c1a0..d9196ab3 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/CalculateConcService.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/CalculateConcService.java @@ -8,7 +8,7 @@ import java.util.Map; public interface CalculateConcService { - boolean calcAndSave(); + void calcAndSave(); Map calculate(List concDtos, BigDecimal index); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmAnalysisNuclideParamService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmAnalysisNuclideParamService.java index 6fa0ea9d..d18c539a 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmAnalysisNuclideParamService.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmAnalysisNuclideParamService.java @@ -7,7 +7,7 @@ public interface IAlarmAnalysisNuclideParamService extends IService implements IAlarmAnalysisNuclideParamService { @@ -24,7 +26,7 @@ public class AlarmAnalysisNuclideParamServiceImpl extends ServiceImpl item.setCycle(cycle).setCaclDate(dayAgo)); - + nuclideAvgService.saveBatch(allAvgs); // 记录日志 log.info(log(allAvgs)); - return nuclideAvgService.saveBatch(allAvgs); - }catch (Throwable e){ - e.printStackTrace(); - log.error("核素浓度计算过程异常: {}", e.getMessage()); - return false; + }catch (Exception e){ + log.error("NucliedAvgJob执行异常: {}", e.getMessage()); } } 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 7ca3c5d2..653cf6c7 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 @@ -29,14 +29,6 @@ public interface AbnormalAlarmClient { @PostMapping("/alarmLog/create") Result create(@RequestBody AlarmLog alarmLog); - /* CalculateConcController下相关接口 */ - @GetMapping("/calculateConc/caclAndSave") - boolean calculateConc(); - - /* AlarmAnalysisNuclideParamController下相关接口 */ - @GetMapping("/nuclideParam/refresh") - boolean refreshParam(); - /* SysDatabaseController下相关接口 */ @GetMapping("/sysDatabase/getNameById") String getDatabaseName(@RequestParam String id); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/NuclideParamJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/NuclideParamJob.java deleted file mode 100644 index b0352d0e..00000000 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/NuclideParamJob.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.jeecg.modules.quartz.job; - -import lombok.extern.slf4j.Slf4j; -import org.jeecg.common.config.mqtoken.UserTokenContext; -import org.jeecg.common.util.SpringContextUtils; -import org.jeecg.common.util.TokenUtils; -import org.jeecg.modules.feignclient.AbnormalAlarmClient; -import org.quartz.*; - - -/** - * 此处的同步是指:当定时任务的执行时间大于任务的时间 - * 间隔时会等待第一个任务执行完成才会走第二个任务 - */ - -/** - * 定时更新核素浓度计算参数 - */ -@Slf4j -@DisallowConcurrentExecution -@PersistJobDataAfterExecution -public class NuclideParamJob implements Job { - - @Override - public void execute(JobExecutionContext context) throws JobExecutionException { - try { - UserTokenContext.setToken(TokenUtils.getTempToken()); - AbnormalAlarmClient alarmClient = SpringContextUtils.getBean(AbnormalAlarmClient.class); - alarmClient.refreshParam(); - }catch (Exception e){ - log.error("定时任务[NuclideParamJob]执行异常: {}", e.getMessage()); - }finally { - UserTokenContext.remove(); - } - } -} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/NucliedAvgJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/NucliedAvgJob.java deleted file mode 100644 index 126c51a5..00000000 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/NucliedAvgJob.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.jeecg.modules.quartz.job; - -import lombok.extern.slf4j.Slf4j; -import org.jeecg.common.config.mqtoken.UserTokenContext; -import org.jeecg.common.constant.DateConstant; -import org.jeecg.common.util.SpringContextUtils; -import org.jeecg.common.util.TokenUtils; -import org.jeecg.modules.feignclient.AbnormalAlarmClient; -import org.quartz.*; - -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; - -/** - * 此处的同步是指:当定时任务的执行时间大于任务的时间 - * 间隔时会等待第一个任务执行完成才会走第二个任务 - */ - -/** - * 定时计算核素浓度均值 - */ -@Slf4j -@DisallowConcurrentExecution -@PersistJobDataAfterExecution -public class NucliedAvgJob implements Job { - - @Override - public void execute(JobExecutionContext context) throws JobExecutionException { - try { - UserTokenContext.setToken(TokenUtils.getTempToken()); - AbnormalAlarmClient alarmClient = SpringContextUtils.getBean(AbnormalAlarmClient.class); - alarmClient.calculateConc(); - log.info(log()); - }catch (Exception e){ - log.error("定时任务[NucliedAvgJob]执行异常: {}", e.getMessage()); - }finally { - UserTokenContext.remove(); - } - } - - private String log(){ - String now = LocalDateTime.now() - .format(DateTimeFormatter.ofPattern(DateConstant.DATE_TIME)); - return "计算核素浓度均值的定时任务成功执行, " + - "任务执行类: org.jeecg.modules.quartz.job.NucliedAvgJob, " + - "任务执行时间: " + now; - } -} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/DatabaseJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/DatabaseJob.java new file mode 100644 index 00000000..6a2fd875 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/DatabaseJob.java @@ -0,0 +1,156 @@ +package org.jeecg.modules.quartz.jobs; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.dto.message.MessageDTO; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.DateConstant; +import org.jeecg.common.constant.RedisConstant; +import org.jeecg.common.util.DataTool; +import org.jeecg.common.util.NumUtil; +import org.jeecg.common.util.TemplateUtil; +import org.jeecg.modules.base.entity.Rule; +import org.jeecg.modules.base.entity.monitor.ItemHistory; +import org.jeecg.modules.base.entity.postgre.AlarmLog; +import org.jeecg.modules.base.entity.postgre.AlarmRule; +import org.jeecg.modules.feignclient.ManageUtil; +import org.jeecg.modules.quartz.entity.Monitor; +import org.quartz.*; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.TimeUnit; + +import static org.jeecg.modules.base.enums.SourceType.DATABASE; +import static org.jeecg.modules.base.enums.Template.MONITOR_DATABASE; +@Slf4j +@Component +public class DatabaseJob extends Monitor { + /** + * 解析Database预警规则 + **/ + @Scheduled(cron = "${task.period:0 0/1 * * * ?}") + public void execute(){ + init(); + + // 查询所有Database的报警规则,根据报警规则查询监控项数据 + String pattern = RedisConstant.PREFIX_RULE + DATABASE.getType(); + Set keys = getRedisStreamUtil().keys(pattern); + if (CollUtil.isEmpty(keys)) return; + + // 时间间隔为每分钟 + LocalDateTime now = LocalDateTime.now() + .withSecond(0) + .withNano(0); + LocalDateTime beforeMin = now.minusMinutes(1); + DateTimeFormatter formatter = DateTimeFormatter + .ofPattern(DateConstant.DATE_TIME); + String start = beforeMin.format(formatter); + String end = now.format(formatter); + + String prefixSilence = RedisConstant.PREFIX_SILENCE; + String operator = null; + for (String ruleKey : keys) { + try { + AlarmRule alarmRule = (AlarmRule) getRedisStreamUtil().get(ruleKey); + // 如果报警规则为空,或者在沉默周期内,跳过当前规则 + operator = alarmRule.getOperator(); + String ruleId = alarmRule.getId(); + String itemId = alarmRule.getItemId(); + String type = alarmRule.getItemType(); + Integer itemType = StrUtil.isBlank(type) ? 0 : Integer.parseInt(type); + String silenceKey = prefixSilence + ruleId; + boolean hasKey = getRedisStreamUtil().hasKey(silenceKey); + boolean blank1 = StrUtil.isBlank(operator); + boolean blank2 = StrUtil.isBlank(itemId); + + if (blank1 || blank2 || hasKey) continue; + + // 根据sourceId查询Database信息(缓存) + String sourceId = alarmRule.getSourceId(); + String databaseName = getAlarmClient().getDatabaseName(sourceId); + + /*// 根据监控项id选择要查询的监控项信息 + Item item = Item.of(itemId); + if (ObjectUtil.isNull(item)) continue; + Number current = null; + switch (item){ + case DATABASE_CONN: // 监控项-2: 测试数据源是否可以连接成功 + current = isConnection(sourceId); + break; + // 追加的监控项... + default: + break; + }*/ + // 向运管查询监控项数据 + String token = ManageUtil.getToken(); + Result result = getMonitorSystem().itemBack(itemId, itemType, start, end, token); + ItemHistory itemHistory = result.getResult(); + if (ObjectUtil.isNull(itemHistory)){ + log.warn("Database监控异常: [{}]查询监控项历史数据为空", databaseName); + continue; + } + Double current = itemHistory.getNow(); + + // 解析预警规则,判断是否需要报警 + ObjectMapper mapper = new ObjectMapper(); + Rule rule = mapper.readValue(operator, Rule.class); + String op = rule.getOperator(); + Double threshold = rule.getThreshold(); + boolean needWarn = NumUtil.compare(current, threshold, op); + if (needWarn){ + // 记录报警日志 + AlarmLog alarmLog = new AlarmLog(); + alarmLog.setRuleId(ruleId); + alarmLog.setOperator(operator); + alarmLog.setAlarmValue(StrUtil.toString(current)); + + String ruleName = alarmRule.getName(); + Map data = DataTool.getInstance(). + put(databaseName).put(ruleName).put(rule.joint()).put(current).get(); + MessageDTO messageDTO = TemplateUtil.parse(MONITOR_DATABASE.getCode(), data); + + alarmLog.setAlarmInfo(messageDTO.getContent()); + getAlarmClient().create(alarmLog); + // 规则触发报警后,设置该规则的沉默周期(如果有) + // 沉默周期失效之前,该规则不会再次被触发 + Long silenceCycle = alarmRule.getSilenceCycle(); + ruleSilence(silenceKey, silenceCycle); + + // 发送报警信息 + String groupId = alarmRule.getContactId(); + String notific = alarmRule.getNotification(); + getSendMessage().send(messageDTO, groupId, notific); + getPushAppUtil().pushToSingle(messageDTO, groupId); + } + } catch (JsonProcessingException e) { + log.error("Database预警规则: {}解析失败,失败原因: {}", operator, e.getMessage()); + }catch (Exception e){ + log.error("Database监控异常: {}", e.getMessage()); + } + } + destroy(); + } + + /* + * 监控项-2: 测试数据源是否可以连接成功 (0:失败 1:成功) + * */ + /*private Integer isConnection(String databaseId){ + int res = 1; + String statusKey = RedisConstant.DATABASE_STATUS; + NameValue nameValue = (NameValue)getRedisUtil().hget(statusKey, databaseId); + if (ObjectUtil.isNull(nameValue) || ObjectUtil.isNull(nameValue.getValue()) || !nameValue.getValue()) + res = 0; + return res; + }*/ +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/EmailJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/EmailJob.java new file mode 100644 index 00000000..ef51c991 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/EmailJob.java @@ -0,0 +1,130 @@ +package org.jeecg.modules.quartz.jobs; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.dto.message.MessageDTO; +import org.jeecg.common.constant.RedisConstant; +import org.jeecg.common.util.DataTool; +import org.jeecg.common.util.NumUtil; +import org.jeecg.common.util.TemplateUtil; +import org.jeecg.modules.base.dto.NameValue; +import org.jeecg.modules.base.entity.Rule; +import org.jeecg.modules.base.entity.postgre.AlarmLog; +import org.jeecg.modules.base.entity.postgre.AlarmRule; +import org.jeecg.modules.base.enums.Item; +import org.jeecg.modules.quartz.entity.Monitor; +import org.quartz.*; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.Map; +import java.util.Set; +import java.util.concurrent.TimeUnit; + +import static org.jeecg.modules.base.enums.SourceType.EMAIL; +import static org.jeecg.modules.base.enums.Template.MONITOR_EMAIL; + +@Slf4j +@Component +public class EmailJob extends Monitor{ + /** + * 解析Email预警规则 + **/ + @Scheduled(cron = "${task.period:0 0/1 * * * ?}") + public void execute(){ + init(); + + // 查询所有Email的报警规则,根据报警规则查询监控项数据 + String pattern = RedisConstant.PREFIX_RULE + EMAIL.getType(); + Set keys = getRedisStreamUtil().keys(pattern); + if (CollUtil.isEmpty(keys)) return; + + String prefixSilence = RedisConstant.PREFIX_SILENCE; + String operator = null; + for (String ruleKey : keys) { + try { + AlarmRule alarmRule = (AlarmRule) getRedisStreamUtil().get(ruleKey); + // 如果报警规则为空,或者在沉默周期内,跳过当前规则 + operator = alarmRule.getOperator(); + String ruleId = alarmRule.getId(); + String itemId = alarmRule.getItemId(); + String silenceKey = prefixSilence + ruleId; + boolean hasKey = getRedisStreamUtil().hasKey(silenceKey); + boolean blank1 = StrUtil.isBlank(operator); + boolean blank2 = StrUtil.isBlank(itemId); + + if (blank1 || blank2 || hasKey) continue; + + // 根据sourceId查询Eamil信息(缓存) + String sourceId = alarmRule.getSourceId(); + String emailName = getAlarmClient().getEmailName(sourceId); + + // 根据监控项id选择要查询的监控项信息 + Item item = Item.of(itemId); + if (ObjectUtil.isNull(item)) continue; + Number current = null; + switch (item){ + case EMAIL_CONN: // 监控项-1: 测试邮箱服务是否可以连接成功 + current = isConnection(sourceId); + break; + // 追加的监控项... + default: + break; + } + // 解析预警规则,判断是否需要报警 + ObjectMapper mapper = new ObjectMapper(); + Rule rule = mapper.readValue(operator, Rule.class); + String op = rule.getOperator(); + Double threshold = rule.getThreshold(); + boolean needWarn = NumUtil.compare(current, threshold, op); + if (needWarn){ + // 记录报警日志 + AlarmLog alarmLog = new AlarmLog(); + alarmLog.setRuleId(ruleId); + alarmLog.setOperator(operator); + alarmLog.setAlarmValue(StrUtil.toString(current)); + + String ruleName = alarmRule.getName(); + Map data = DataTool.getInstance(). + put(emailName).put(ruleName).put(rule.joint()).put(current).get(); + MessageDTO messageDTO = TemplateUtil.parse(MONITOR_EMAIL.getCode(), data); + + alarmLog.setAlarmInfo(messageDTO.getContent()); + getAlarmClient().create(alarmLog); + // 规则触发报警后,设置该规则的沉默周期(如果有) + // 沉默周期失效之前,该规则不会再次被触发 + Long silenceCycle = alarmRule.getSilenceCycle(); + ruleSilence(silenceKey, silenceCycle); + + // 发送报警信息 + String groupId = alarmRule.getContactId(); + String notific = alarmRule.getNotification(); + getSendMessage().send(messageDTO, groupId, notific); + getPushAppUtil().pushToSingle(messageDTO, groupId); + } + } catch (JsonProcessingException e) { + log.error("Email预警规则: {}解析失败,失败原因: {}", operator, e.getMessage()); + }catch (Exception e){ + log.error("Email监控异常: {}", e.getMessage()); + } + } + destroy(); + } + + /* + * 监控项-1: 测试邮箱服务是否可以连接成功 (0:失败 1:成功) + * */ + private Integer isConnection(String emailId){ + int res = 1; + String statusKey = RedisConstant.EMAIL_STATUS; + NameValue nameValue = (NameValue)getRedisUtil().hget(statusKey, emailId); + if (ObjectUtil.isNull(nameValue) || ObjectUtil.isNull(nameValue.getValue()) || !nameValue.getValue()) + res = 0; + return res; + } +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/ServerJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/ServerJob.java new file mode 100644 index 00000000..5ffa9e86 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/ServerJob.java @@ -0,0 +1,137 @@ +package org.jeecg.modules.quartz.jobs; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import feign.FeignException; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.dto.message.MessageDTO; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.DateConstant; +import org.jeecg.common.constant.RedisConstant; +import org.jeecg.common.util.DataTool; +import org.jeecg.common.util.NumUtil; +import org.jeecg.common.util.TemplateUtil; +import org.jeecg.modules.base.entity.Rule; +import org.jeecg.modules.base.entity.monitor.ItemHistory; +import org.jeecg.modules.base.entity.postgre.AlarmLog; +import org.jeecg.modules.base.entity.postgre.AlarmRule; +import org.jeecg.modules.feignclient.ManageUtil; +import org.jeecg.modules.quartz.entity.Monitor; +import org.quartz.*; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Map; +import java.util.Set; + +import static org.jeecg.modules.base.enums.SourceType.SERVER; +import static org.jeecg.modules.base.enums.Template.MONITOR_SERVER; + +@Slf4j +@Component +public class ServerJob extends Monitor{ + /** + * 根据host定时查询服务器信息 + * 并向消息队列中推送信息 + * + */ + @Scheduled(cron = "${task.period:0 0/1 * * * ?}") + public void execute(){ + init(); + + // 查询所有Server的报警规则,根据报警规则查询监控项数据 + String pattern = RedisConstant.PREFIX_RULE + SERVER.getType(); + Set keys = getRedisStreamUtil().keys(pattern); + if (CollUtil.isEmpty(keys)) return; + + // 时间间隔为每分钟 + LocalDateTime now = LocalDateTime.now() + .withSecond(0) + .withNano(0); + LocalDateTime beforeMin = now.minusMinutes(1); + DateTimeFormatter formatter = DateTimeFormatter + .ofPattern(DateConstant.DATE_TIME); + String start = beforeMin.format(formatter); + String end = now.format(formatter); + + String prefixSilence = RedisConstant.PREFIX_SILENCE; + String operator = null; + for (String ruleKey : keys) { + try { + AlarmRule alarmRule = (AlarmRule) getRedisStreamUtil().get(ruleKey); + // 如果报警规则为空,或者在沉默周期内,跳过当前规则 + operator = alarmRule.getOperator(); + String ruleId = alarmRule.getId(); + String itemId = alarmRule.getItemId(); + String type = alarmRule.getItemType(); + Integer itemType = StrUtil.isBlank(type) ? 0 : Integer.parseInt(type); + String silenceKey = prefixSilence + ruleId; + boolean hasKey = getRedisStreamUtil().hasKey(silenceKey); + boolean blank1 = StrUtil.isBlank(operator); + boolean blank2 = StrUtil.isBlank(itemId); + + if (blank1 || blank2 || hasKey) continue; + + // 根据sourceId查询Server信息(缓存) + String sourceId = alarmRule.getSourceId(); + String serverName = getAlarmClient().getServerName(sourceId); + + // 向运管查询监控项数据 + String token = ManageUtil.getToken(); + Result result = getMonitorSystem().itemBack(itemId, itemType, start, end, token); + ItemHistory itemHistory = result.getResult(); + if (ObjectUtil.isNull(itemHistory)){ + log.warn("Server监控异常: [{}]查询监控项历史数据为空", serverName); + continue; + } + Double current = itemHistory.getNow(); + + // 解析预警规则,判断是否需要报警 + ObjectMapper mapper = new ObjectMapper(); + Rule rule = mapper.readValue(operator, Rule.class); + String op = rule.getOperator(); + Double threshold = rule.getThreshold(); + boolean needWarn = NumUtil.compare(current, threshold, op); + if (needWarn){ + // 记录报警日志 + AlarmLog alarmLog = new AlarmLog(); + alarmLog.setRuleId(ruleId); + alarmLog.setOperator(operator); + alarmLog.setAlarmValue(StrUtil.toString(current)); + + String ruleName = alarmRule.getName(); + Map data = DataTool.getInstance(). + put(serverName).put(ruleName).put(rule.joint()).put(current).get(); + MessageDTO messageDTO = TemplateUtil.parse(MONITOR_SERVER.getCode(), data); + + alarmLog.setAlarmInfo(messageDTO.getContent()); + getAlarmClient().create(alarmLog); + // 规则触发报警后,设置该规则的沉默周期(如果有) + // 沉默周期失效之前,该规则不会再次被触发 + Long silenceCycle = alarmRule.getSilenceCycle(); + ruleSilence(silenceKey, silenceCycle); + + // 发送报警信息 + String groupId = alarmRule.getContactId(); + String notific = alarmRule.getNotification(); + getSendMessage().send(messageDTO, groupId, notific); + getPushAppUtil().pushToSingle(messageDTO, groupId); + } + }catch (FeignException.Unauthorized e){ + ManageUtil.refreshToken(); + log.warn("向运管系统查询ItemHistory信息异常: Token失效,已刷新Token"); + } catch (JsonProcessingException e) { + log.error("Server预警规则: {}解析失败,失败原因: {}", operator, e.getMessage()); + }catch (Exception e){ + log.error("Server监控异常: {}", e.getMessage()); + } + } + destroy(); + } +} From 6666e74a98450b259317a06fb3eb9fe2ad8f1084 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Tue, 27 Feb 2024 15:47:24 +0800 Subject: [PATCH 062/133] =?UTF-8?q?fix=EF=BC=9A=E5=88=A0=E9=99=A4=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E4=B8=AD=E7=9A=84=E5=8F=91=E4=BB=B6=E9=82=AE=E7=AE=B1?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/service/impl/SysEmailServiceImpl.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysEmailServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysEmailServiceImpl.java index 4ae2c01a..80323c99 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysEmailServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/SysEmailServiceImpl.java @@ -270,11 +270,15 @@ public class SysEmailServiceImpl extends ServiceImpl i wrapper.eq(SysEmail::getEnabled, ENABLED.getValue()); List emails = this.list(wrapper); Optional first = emails.stream().findFirst(); - if(!first.isPresent()) return null; - SysEmail sender = first.get(); - redisUtil.set(RedisConstant.EMAIL_SENDER, sender); - log.info("缓存了可用的发件邮箱到Redis: {}", sender.getUsername()); - return sender; + if(first.isPresent()) { + SysEmail sender = first.get(); + redisUtil.set(RedisConstant.EMAIL_SENDER, sender); + return sender; + } + // 删除缓存中旧的发件邮箱信息 + if (redisUtil.hasKey(RedisConstant.EMAIL_SENDER)) + redisUtil.del(RedisConstant.EMAIL_SENDER); + return null; } /* From 8ad0d9db388bc9bcc8f19bb59dfc8fd1c0a132a6 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Tue, 27 Feb 2024 19:26:52 +0800 Subject: [PATCH 063/133] =?UTF-8?q?feat=EF=BC=9A=E5=8F=B0=E7=AB=99/GPS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/entity/original/GardsGPSData.java | 44 +++++++++++++++++++ .../modules/controller/StationController.java | 12 ++++- .../modules/feignclient/StationService.java | 6 +++ .../StationOperationController.java | 11 +++++ .../entity/data/SelfStationGPSData.java | 28 ++++++++++++ .../mapper/StationOperationMapper.java | 7 +++ .../mapper/xml/stationOperationMapper.xml | 21 +++++++++ .../service/IStationOperationService.java | 3 ++ .../impl/StationOperationServiceImpl.java | 24 ++++++++++ 9 files changed, 155 insertions(+), 1 deletion(-) create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/original/GardsGPSData.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/SelfStationGPSData.java create mode 100644 jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationOperationMapper.xml diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/original/GardsGPSData.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/original/GardsGPSData.java new file mode 100644 index 00000000..9d791634 --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/original/GardsGPSData.java @@ -0,0 +1,44 @@ +package org.jeecg.modules.base.entity.original; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +@Data +@TableName("ORIGINAL.GARDS_GPS_DATA") +public class GardsGPSData implements Serializable { + + @TableField(value = "STATION_ID") + private Integer stationId; + + @TableField(value = "STATION_CODE") + private String stationCode; + + @TableField(value = "GPS_ID") + private Integer gpsId; + + @TableField(value = "LON") + private Double lon; + + @TableField(value = "LAT") + private Double lat; + + @TableField(value = "RECORD_TIME") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date recordTime; + + @TableField(value = "TIME_SPAN") + private Integer timeSpan; + + @TableField(value = "MODDATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date moddate; + +} diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/StationController.java b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/StationController.java index a78c4412..e7ccf2b5 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/controller/StationController.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/controller/StationController.java @@ -7,10 +7,12 @@ import org.jeecg.modules.entity.StationOperation; import org.jeecg.modules.entity.SysUserFocusStationStation; import org.jeecg.modules.feignclient.StationService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import java.util.Date; import java.util.List; @RestController @@ -84,6 +86,14 @@ public class StationController { return result; } - + // /stationOperation/getSelfStationGPS + @GetMapping("/stationOperation/getSelfStationGPS") + @ApiOperation(value = "查询台站运行轨迹", notes = "查询台站运行轨迹") + public Result getSelfStationGPS(String stationCode, + @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate, + @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) { + Result result = stationService.getSelfStationGPS(stationCode, startDate, endDate); + return result; + } } diff --git a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/StationService.java b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/StationService.java index 53f7f53f..5e3ad6d1 100644 --- a/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/StationService.java +++ b/jeecg-module-app/src/main/java/org/jeecg/modules/feignclient/StationService.java @@ -4,10 +4,12 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.StationOperation; import org.jeecg.modules.entity.SysUserFocusStationStation; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; +import java.util.Date; import java.util.List; @Component @@ -35,4 +37,8 @@ public interface StationService { @GetMapping("/sysUserFocusStation/findUserFocusByUserIdApp") Result findUserFocusByUserId(@RequestParam String userId); + @GetMapping("/stationOperation/getSelfStationGPS") + Result getSelfStationGPS(@RequestParam("stationCode") String stationCode, + @RequestParam("startDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate, + @RequestParam("endDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate); } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java index 8d5c46f3..95ca38bd 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/controller/StationOperationController.java @@ -8,8 +8,10 @@ import org.jeecg.modules.entity.data.StationOperation; import org.jeecg.modules.service.IStationOperationService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.*; +import java.util.Date; import java.util.List; @RestController @@ -97,4 +99,13 @@ public class StationOperationController { result.setResult(mapUrl); return result; } + + @GetMapping("getSelfStationGPS") + @ApiOperation(value = "查询自建台站运行轨迹", notes = "查询自建台站运行轨迹") + public Result getSelfStationGPS(@RequestParam("stationCode") String stationCode, + @RequestParam("startDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate, + @RequestParam("endDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) { + return stationOperationService.getSelfStationGPS(stationCode, startDate, endDate); + } + } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/SelfStationGPSData.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/SelfStationGPSData.java new file mode 100644 index 00000000..f46fcacb --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/SelfStationGPSData.java @@ -0,0 +1,28 @@ +package org.jeecg.modules.entity.data; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +@Data +public class SelfStationGPSData implements Serializable { + + private String stationCode; + + private Double lon; + + private Double lat; + + /** + * 时间间隔 单位是秒 + */ + private Integer timeSpan; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date recordDate; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationOperationMapper.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationOperationMapper.java index d2a1fbd7..292d6f41 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationOperationMapper.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationOperationMapper.java @@ -1,7 +1,14 @@ package org.jeecg.modules.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.entity.data.SelfStationGPSData; import org.jeecg.modules.entity.data.StationOperation; +import java.util.List; + public interface StationOperationMapper extends BaseMapper { + + List getSelfStationGPS(@Param(value = "stationCode") String stationCode, @Param(value = "startTime") String startTime, @Param(value = "endTime") String endTime); + } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationOperationMapper.xml b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationOperationMapper.xml new file mode 100644 index 00000000..433789fc --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationOperationMapper.xml @@ -0,0 +1,21 @@ + + + + + + + \ No newline at end of file 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 4b5d80a6..c5edd232 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 @@ -5,6 +5,7 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.data.PointVo; import org.jeecg.modules.entity.data.StationOperation; +import java.util.Date; import java.util.List; public interface IStationOperationService extends IService { @@ -57,4 +58,6 @@ public interface IStationOperationService extends IService { */ Result getDataProvisionEfficiency(); + Result getSelfStationGPS(String stationCode, Date startDate, Date endDate); + } 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 2cf66ee6..c4bcfe0a 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 @@ -491,4 +491,28 @@ public class StationOperationServiceImpl extends ServiceImpl stationGPSDataList = this.baseMapper.getSelfStationGPS(stationCode, startTime, endTime); + result.setSuccess(true); + result.setResult(stationGPSDataList); + return result; + } + } From f89a0ec0897263465ddb6a083d21b351c23bfc21 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 29 Feb 2024 13:57:27 +0800 Subject: [PATCH 064/133] =?UTF-8?q?=E5=90=AF=E5=8A=A8=E5=8C=85=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=8E=AF=E5=A2=83=E5=88=A4=E6=96=AD=EF=BC=8C=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E6=98=AFwindows=E7=8E=AF=E5=A2=83=E5=8A=A0=E8=BD=BDdl?= =?UTF-8?q?l=E4=BE=9D=E8=B5=96=E5=BA=93=EF=BC=8C=E5=A6=82=E6=9E=9C?= =?UTF-8?q?=E6=98=AFlinux=E5=8A=A0=E8=BD=BDso=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/service/impl/GammaServiceImpl.java | 2 -- .../org/jeecg/JeecgAutoProcessApplication.java | 17 ++++++++++------- .../jeecg/JeecgSpectrumAnalysisApplication.java | 16 ++++++++++------ .../jeecg/JeecgWebStatisticsApplication.java | 11 ++++++++--- 4 files changed, 28 insertions(+), 18 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 95a12029..0ca89d0b 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 @@ -1785,7 +1785,6 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi phd.getVPeak().remove(curRow); //重新计算核素活度浓度 gammaFileUtil.NuclidesIdent(phd, nuclideMap); - redisUtil.set(userName+StringPool.DASH+phd.getHeader().getSystem_type(), nuclideMap); //重新分析数据 gammaFileUtil.PeaksChanged(phd); for (int i = 0; i < phd.getVPeak().size(); i++) { @@ -2075,7 +2074,6 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi nuclideMap.remove(nuclideName); //重新计算核素活度浓度 gammaFileUtil.NuclidesIdent(phd, nuclideMap); - redisUtil.set(userName+StringPool.DASH+phd.getHeader().getSystem_type(), nuclideMap); //从核素的选中列表中移除对应下标的核素信息 list_identify.remove(index); //重新初始化峰列表信息 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 c2ca5b2f..ab0ad6a7 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 @@ -68,13 +68,16 @@ public class JeecgAutoProcessApplication extends SpringBootServletInitializer im @Override public void run(String... args) throws Exception { - //调用dll - //Windows加载dll工具库 - System.loadLibrary("ReadPHDFile"); - System.loadLibrary("GammaAnaly"); - //Linux版本加载dll工具库 -// System.load("/usr/local/jdk/lib/libReadPHDFile.so"); -// System.load("/usr/local/jdk/lib/libGammaAnalyALG.so"); + String os = System.getProperty("os.name").toLowerCase(); + if (os.equalsIgnoreCase("win")) { + //Windows加载dll工具库 + System.loadLibrary("ReadPHDFile"); + System.loadLibrary("GammaAnaly"); + } else { + //Linux版本加载dll工具库 + System.load("/usr/local/jdk/lib/libReadPHDFile.so"); + System.load("/usr/local/jdk/lib/libGammaAnalyALG.so"); + } nuclLibService.getNuclideMap(); //根据配置文件配置邮件获取策略定义时间条件,默认EmailReceivePolicy.HISTORY_ORDER_RECEIVE.getPolicy() Date systemStartupTime = null; 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 135ddf28..9b8c692b 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 @@ -62,12 +62,16 @@ public class JeecgSpectrumAnalysisApplication extends SpringBootServletInitializ @Override public void run(String... args) throws Exception { - //Windows加载dll工具库 - System.loadLibrary("ReadPHDFile"); - System.loadLibrary("GammaAnaly"); - //Linux版本加载dll工具库 -// System.load("/usr/local/jdk/lib/libReadPHDFile.so"); -// System.load("/usr/local/jdk/lib/libGammaAnalyALG.so"); + String os = System.getProperty("os.name").toLowerCase(); + if (os.equalsIgnoreCase("win")) { + //Windows加载dll工具库 + System.loadLibrary("ReadPHDFile"); + System.loadLibrary("GammaAnaly"); + } else { + //Linux版本加载dll工具库 + System.load("/usr/local/jdk/lib/libReadPHDFile.so"); + System.load("/usr/local/jdk/lib/libGammaAnalyALG.so"); + } //创建缓存 betaCache.initCache(); localCache.initCache(); diff --git a/jeecg-server-cloud/armd-web-statistics-start/src/main/java/org/jeecg/JeecgWebStatisticsApplication.java b/jeecg-server-cloud/armd-web-statistics-start/src/main/java/org/jeecg/JeecgWebStatisticsApplication.java index ff1a11c7..2227a14e 100644 --- a/jeecg-server-cloud/armd-web-statistics-start/src/main/java/org/jeecg/JeecgWebStatisticsApplication.java +++ b/jeecg-server-cloud/armd-web-statistics-start/src/main/java/org/jeecg/JeecgWebStatisticsApplication.java @@ -41,8 +41,13 @@ public class JeecgWebStatisticsApplication extends SpringBootServletInitializer @Override public void run(String... args) throws Exception { - //windows环境调用dll - System.loadLibrary("ReadPHDFile"); - //System.load("/usr/local/jdk/lib/libReadPHDFile.so"); + String os = System.getProperty("os.name").toLowerCase(); + if (os.equalsIgnoreCase("win")) { + //Windows加载dll工具库 + System.loadLibrary("ReadPHDFile"); + } else { + //Linux版本加载dll工具库 + System.load("/usr/local/jdk/lib/libReadPHDFile.so"); + } } } \ No newline at end of file From f2b3f058e63ea288506187f6a8de6babff4ab179 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 29 Feb 2024 14:12:32 +0800 Subject: [PATCH 065/133] =?UTF-8?q?=E5=90=AF=E5=8A=A8=E5=8C=85=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=8E=AF=E5=A2=83=E5=88=A4=E6=96=AD=EF=BC=8C=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E6=98=AFwindows=E7=8E=AF=E5=A2=83=E5=8A=A0=E8=BD=BDdl?= =?UTF-8?q?l=E4=BE=9D=E8=B5=96=E5=BA=93=EF=BC=8C=E5=A6=82=E6=9E=9C?= =?UTF-8?q?=E6=98=AFlinux=E5=8A=A0=E8=BD=BDso=E6=96=87=E4=BB=B6?= 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 | 2 +- .../src/main/java/org/jeecg/JeecgWebStatisticsApplication.java | 2 +- 3 files changed, 3 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 ab0ad6a7..853ac505 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 @@ -69,7 +69,7 @@ public class JeecgAutoProcessApplication extends SpringBootServletInitializer im @Override public void run(String... args) throws Exception { String os = System.getProperty("os.name").toLowerCase(); - if (os.equalsIgnoreCase("win")) { + if (os.contains("win")) { //Windows加载dll工具库 System.loadLibrary("ReadPHDFile"); System.loadLibrary("GammaAnaly"); 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 9b8c692b..3a5017b3 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 @@ -63,7 +63,7 @@ public class JeecgSpectrumAnalysisApplication extends SpringBootServletInitializ @Override public void run(String... args) throws Exception { String os = System.getProperty("os.name").toLowerCase(); - if (os.equalsIgnoreCase("win")) { + if (os.contains("win")) { //Windows加载dll工具库 System.loadLibrary("ReadPHDFile"); System.loadLibrary("GammaAnaly"); diff --git a/jeecg-server-cloud/armd-web-statistics-start/src/main/java/org/jeecg/JeecgWebStatisticsApplication.java b/jeecg-server-cloud/armd-web-statistics-start/src/main/java/org/jeecg/JeecgWebStatisticsApplication.java index 2227a14e..2c0c4f34 100644 --- a/jeecg-server-cloud/armd-web-statistics-start/src/main/java/org/jeecg/JeecgWebStatisticsApplication.java +++ b/jeecg-server-cloud/armd-web-statistics-start/src/main/java/org/jeecg/JeecgWebStatisticsApplication.java @@ -42,7 +42,7 @@ public class JeecgWebStatisticsApplication extends SpringBootServletInitializer @Override public void run(String... args) throws Exception { String os = System.getProperty("os.name").toLowerCase(); - if (os.equalsIgnoreCase("win")) { + if (os.contains("win")) { //Windows加载dll工具库 System.loadLibrary("ReadPHDFile"); } else { From c1600075fb3cea7da56b5196512295e602e319bd Mon Sep 17 00:00:00 2001 From: orgin Date: Thu, 29 Feb 2024 14:26:21 +0800 Subject: [PATCH 066/133] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E9=82=AE=E4=BB=B6=E4=B8=BB=E9=A2=98=E6=97=B6=20?= =?UTF-8?q?=E5=A6=82=E6=9E=9C=E5=87=BA=E9=94=99=E5=AF=BC=E8=87=B4=E9=82=AE?= =?UTF-8?q?=E4=BB=B6=E8=A2=AB=E5=88=A0=E9=99=A4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/spectrum/SpectrumParsingActuator.java | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) 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 572d6c08..3567752c 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 @@ -138,19 +138,9 @@ public class SpectrumParsingActuator implements Runnable{ } } } catch (Exception e) { - try { - if (StrUtil.isBlank(subject)) { - subject = message.getSubject(); - } - if (StrUtil.isBlank(receiveDate)) { - receiveDate = DateUtils.formatDate(message.getReceivedDate(),"yyyy-MM-dd HH:mm:ss"); - } - } catch (MessagingException ex) { - log.error("SpectrumParsingActuator中获取Message信息出现异常:", ex); - } // 如果不是下载导致的失败 并且 下载成功,则删除下载的邮件对象 if(!(e instanceof DownloadEmailException) && downloadFlag){ - log.error("Remove Email:"+ subject + StringPool.UNDERSCORE + receiveDate + StringPool.UNDERSCORE); + log.error("Catch Remove Email:"+ subject + StringPool.UNDERSCORE + receiveDate + StringPool.UNDERSCORE); emailServiceManager.removeMail(message,batchesCounter); } //输出异常信息 From 5c6722b4588ffac310dbb9726353d752888b5a30 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 29 Feb 2024 14:55:30 +0800 Subject: [PATCH 067/133] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86sam?= =?UTF-8?q?ple=E6=96=87=E4=BB=B6=E6=96=87=E4=BB=B6=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E5=88=A4=E6=96=AD=E5=A2=9E=E5=8A=A0=E4=BA=BA?= =?UTF-8?q?=E5=B7=A5=E4=BA=A4=E4=BA=92=E5=AE=8C=E6=88=90=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/spectrum/AbstractS_D_Q_G_SpectrumHandler.java | 4 ++-- 1 file changed, 2 insertions(+), 2 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 866ee82c..5150537f 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 @@ -233,11 +233,11 @@ public abstract class AbstractS_D_Q_G_SpectrumHandler extends AbstractSpectrumHa this.startIntoDatabaseTime = new Date(); //如果数据已经存储,不在重复存储 final GardsSampleData query = spectrumServiceQuotes.getSampleDataService().findByInputFileName(super.spectrumFileRelativePath); - //如果数据已经存储 并且状态是 P 则判断文件重复 如果数据已经存储并且状态是 F 不进行处理 + //如果数据已经存储 并且状态是 P 或 R 则判断文件重复 如果数据已经存储并且状态是 F 不进行处理 if(Objects.nonNull(query)){ this.sampleData = query; this.endIntoDatabaseTime = new Date(); - if (query.getStatus().equalsIgnoreCase(SampleStatus.COMPLETE.value)) { + if (query.getStatus().equalsIgnoreCase(SampleStatus.COMPLETE.value) || query.getStatus().equalsIgnoreCase(SampleStatus.INTERACTIVE.value)) { //设置文件重复标记为true this.parsingProcessLog.setFileRepeat(true); //发送文件重复错误事件,后续统计报告使用 From 18722cfe7855f98cb9198e26f220111c60362314 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Fri, 1 Mar 2024 18:27:15 +0800 Subject: [PATCH 068/133] =?UTF-8?q?feat=EF=BC=9A1.=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E8=A1=A8=E7=A9=BA=E9=97=B4=E7=9B=91=E6=8E=A72.bug=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/common/util/NumUtil.java | 31 ++++ .../org/jeecg/modules/base/enums/Item.java | 4 +- .../modules/service/IAlarmItemService.java | 2 +- .../service/impl/AlarmItemServiceImpl.java | 23 ++- .../service/impl/AlarmRuleServiceImpl.java | 6 +- .../impl/SysDefaultNuclideServiceImpl.java | 26 ++- .../feignclient/AbnormalAlarmClient.java | 4 + .../handle/impl/EmailPushMsgHandle.java | 7 +- .../modules/quartz/jobs/DatabaseJob.java | 28 +-- .../modules/quartz/jobs/TableSpaceJob.java | 160 ++++++++++++++++++ 10 files changed, 250 insertions(+), 41 deletions(-) create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/TableSpaceJob.java diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/NumUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/NumUtil.java index 20e3b1e1..df4a8529 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/NumUtil.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/NumUtil.java @@ -1,11 +1,14 @@ package org.jeecg.common.util; +import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import java.math.BigDecimal; import java.math.RoundingMode; +import java.util.HashMap; +import java.util.Map; import static org.jeecg.modules.base.enums.Op.*; import static org.jeecg.modules.base.enums.Op.LE; @@ -126,6 +129,34 @@ public class NumUtil { } } + public static Map compare(Map current, Double threshold, String op){ + boolean cNull = MapUtil.isEmpty(current); + boolean tNull = ObjectUtil.isNull(threshold); + + Map result = new HashMap<>(); + if (cNull || tNull) return result; + + double thresholdV = threshold; + for (Map.Entry entry : current.entrySet()) { + String key = entry.getKey(); + double currentV = entry.getValue(); + if (EQ.getOp().equals(op)){ + result.put(key, currentV == thresholdV); + } else if (GT.getOp().equals(op)) { + result.put(key, currentV > thresholdV); + } else if (GE.getOp().equals(op)) { + result.put(key, currentV >= thresholdV); + } else if (LT.getOp().equals(op)) { + result.put(key, currentV < thresholdV); + } else if (LE.getOp().equals(op)) { + result.put(key, currentV <= thresholdV); + }else { + result.put(key, false); + } + } + return result; + } + public static String kb2Gb(String kb, int scale){ if (StrUtil.isBlank(kb)) return null; diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/Item.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/Item.java index c82afb12..32214f11 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/Item.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/Item.java @@ -7,8 +7,8 @@ import lombok.Getter; @Getter @AllArgsConstructor public enum Item { - EMAIL_CONN("1", "邮箱服务连接情况"), - DATABASE_CONN("2", "数据源连接情况"); + EMAIL_CONN("1", "Connection Status"), + TABLESPACE_USAGE("2", "TableSpace Usage"); private String value; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmItemService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmItemService.java index acdee0d7..aa44f032 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmItemService.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmItemService.java @@ -12,7 +12,7 @@ public interface IAlarmItemService extends IService { List alarmItemsServer(String sourceId); - List alarmItemsDatabase(String sourceId); + List alarmItemsDatabase(String sourceType, String sourceId); List allItems(String sourceType, String sourceId); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmItemServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmItemServiceImpl.java index 4ce8875d..6442d529 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmItemServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmItemServiceImpl.java @@ -1,15 +1,20 @@ package org.jeecg.modules.service.impl; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.constant.enums.DbType; import org.jeecg.modules.base.dto.ItemDto; import org.jeecg.modules.base.entity.postgre.AlarmItem; +import org.jeecg.modules.base.entity.postgre.AlarmItemDe; +import org.jeecg.modules.base.entity.postgre.SysDatabase; import org.jeecg.modules.base.enums.SourceType; import org.jeecg.modules.mapper.AlarmItemMapper; import org.jeecg.modules.service.IAlarmItemDeService; import org.jeecg.modules.service.IAlarmItemService; +import org.jeecg.modules.service.ISysDatabaseService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -22,6 +27,9 @@ import java.util.stream.Collectors; @Slf4j public class AlarmItemServiceImpl extends ServiceImpl implements IAlarmItemService { + @Autowired + private ISysDatabaseService databaseService; + @Autowired private IAlarmItemDeService alarmItemDeService; @@ -44,8 +52,16 @@ public class AlarmItemServiceImpl extends ServiceImpl alarmItemsDatabase(String sourceId) { - return baseMapper.alarmItemsDatabase(sourceId); + public List alarmItemsDatabase(String sourceType, String sourceId) { + List itemDtos = baseMapper.alarmItemsDatabase(sourceId).stream() + .map(ItemDto::new).collect(Collectors.toList()); + SysDatabase database = databaseService.getById(sourceId); + String dbType = database.getDbType(); + // 如果数据库类型是Oracle 则添加额外的监控项:表空间使用率 + if (StrUtil.equals(dbType, DbType.ORACLE.getType())) + itemDtos.addAll(alarmItemDeService.alarmItemDes(sourceType).stream() + .map(ItemDto::new).collect(Collectors.toList())); + return itemDtos; } /* @@ -63,8 +79,7 @@ public class AlarmItemServiceImpl extends ServiceImpl update(AlarmRule alarmRule) { AlarmRule alarmRuleOld = getById(alarmRule.getId()); - if (ObjectUtil.isNull(alarmRuleOld)){ - return Result.error(Prompt.DATA_NOT_EXITS); - } String ruleId = alarmRuleOld.getId(); + Integer enabled = alarmRuleOld.getEnabled(); // 保存oldRule的sourceType 避免修改了sourceType String sourceTypeOld = alarmRuleOld.getSourceType(); Rule rule = alarmRule.getRule(); @@ -105,10 +103,10 @@ public class AlarmRuleServiceImpl extends ServiceImpl add(List nuclideNames,String nuclideType,Integer useType) { + @Transactional + public Result add(List nuclideNames, String nuclideType, Integer useType) { if (CollUtil.isEmpty(nuclideNames)) return Result.error(Prompt.PARAM_NOT_EMPTY); if (StrUtil.isBlank(nuclideType)) return Result.error("nuclideType" + Prompt.PARAM_REQUIRED); if (ObjectUtil.isNull(useType)) return Result.error("useType" + Prompt.PARAM_REQUIRED); + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(SysDefaultNuclide::getNuclideType, nuclideType); + wrapper.eq(SysDefaultNuclide::getUseType, useType); + this.remove(wrapper); List SysDefaultNuclides = new ArrayList<>(); for (String nuclideName : nuclideNames) { SysDefaultNuclide sysDefaultNuclide = new SysDefaultNuclide(); @@ -73,7 +80,7 @@ public class SysDefaultNuclideServiceImpl extends ServiceImpl newList = ListUtil.toList("A", "F"); + List oldList = ListUtil.toList("A", "B", "C"); + Collection intersection = CollUtil.intersection(newList, oldList); + newList = newList.stream() + .filter(item -> !CollUtil.contains(intersection, item)) + .collect(Collectors.toList()); + System.out.println("add: " + newList); + + oldList = oldList.stream() + .filter(item -> !CollUtil.contains(intersection, item)) + .collect(Collectors.toList()); + System.out.println("del: " + oldList); + } } 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 653cf6c7..8f8e5e73 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 @@ -1,6 +1,7 @@ package org.jeecg.modules.feignclient; import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.base.dto.SpaceInfo; import org.jeecg.modules.base.entity.postgre.AlarmLog; import org.jeecg.modules.base.entity.postgre.SysDatabase; import org.jeecg.modules.base.entity.postgre.SysEmail; @@ -36,6 +37,9 @@ public interface AbnormalAlarmClient { @PutMapping("/sysDatabase/updateStatus") void updateDatabase(@RequestBody SysDatabase database); + @GetMapping("/sysDatabase/spaceInfo") + Result> spaceInfo(@RequestParam String sourceId); + /* SysServerController下相关接口 */ @GetMapping("/sysServer/getNameById") String getServerName(@RequestParam String id); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/handle/impl/EmailPushMsgHandle.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/handle/impl/EmailPushMsgHandle.java index 7f3a8ba1..a0528728 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/handle/impl/EmailPushMsgHandle.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/handle/impl/EmailPushMsgHandle.java @@ -61,8 +61,7 @@ public class EmailPushMsgHandle implements ISendMsgHandle { String context = messageDTO.getContent(); String alarmTitle = "邮件发送失败提醒"; StringBuilder alarmContext = new StringBuilder(); - alarmContext.append("系统给您发送的邮件 [标题: ").append(title) - .append(", 内容: ").append(context).append("]发送失败,失败原因: "); + alarmContext.append("系统给您发送的邮件 [标题: ").append(title).append(", 内容: ").append(context).append("]发送失败,失败原因: "); // 循环给每一个用户发送邮件 for (Map.Entry userEmails : messageDTO.getUserEmail().entrySet()) { String username = userEmails.getKey(); @@ -71,9 +70,9 @@ public class EmailPushMsgHandle implements ISendMsgHandle { messageDTO.setToUser(email); emailService.sendMailToOne(messageDTO); } catch (MessagingException e) { - if (e instanceof SMTPAddressFailedException) { // 无效的电子邮箱异常 + if (e instanceof SMTPAddressFailedException) { alarmContext.append("无效的电子邮箱: ").append(email); - } else if (e instanceof SendFailedException) { // 邮件发送失败异常 + } else { alarmContext.append(e.getMessage()); } // 邮件发送失败 给用户发送站内提示消息 diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/DatabaseJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/DatabaseJob.java index 6a2fd875..6de21045 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/DatabaseJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/DatabaseJob.java @@ -1,6 +1,7 @@ package org.jeecg.modules.quartz.jobs; 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.fasterxml.jackson.core.JsonProcessingException; @@ -18,6 +19,7 @@ import org.jeecg.modules.base.entity.Rule; import org.jeecg.modules.base.entity.monitor.ItemHistory; import org.jeecg.modules.base.entity.postgre.AlarmLog; import org.jeecg.modules.base.entity.postgre.AlarmRule; +import org.jeecg.modules.base.enums.Item; import org.jeecg.modules.feignclient.ManageUtil; import org.jeecg.modules.quartz.entity.Monitor; import org.quartz.*; @@ -67,6 +69,8 @@ public class DatabaseJob extends Monitor { operator = alarmRule.getOperator(); String ruleId = alarmRule.getId(); String itemId = alarmRule.getItemId(); + // 如果是其它自定义监控项(表空间使用率、...) 则跳过 + if (CollUtil.contains(ListUtil.toList(Item.TABLESPACE_USAGE.getValue()), itemId)) continue; String type = alarmRule.getItemType(); Integer itemType = StrUtil.isBlank(type) ? 0 : Integer.parseInt(type); String silenceKey = prefixSilence + ruleId; @@ -80,18 +84,6 @@ public class DatabaseJob extends Monitor { String sourceId = alarmRule.getSourceId(); String databaseName = getAlarmClient().getDatabaseName(sourceId); - /*// 根据监控项id选择要查询的监控项信息 - Item item = Item.of(itemId); - if (ObjectUtil.isNull(item)) continue; - Number current = null; - switch (item){ - case DATABASE_CONN: // 监控项-2: 测试数据源是否可以连接成功 - current = isConnection(sourceId); - break; - // 追加的监控项... - default: - break; - }*/ // 向运管查询监控项数据 String token = ManageUtil.getToken(); Result result = getMonitorSystem().itemBack(itemId, itemType, start, end, token); @@ -141,16 +133,4 @@ public class DatabaseJob extends Monitor { } destroy(); } - - /* - * 监控项-2: 测试数据源是否可以连接成功 (0:失败 1:成功) - * */ - /*private Integer isConnection(String databaseId){ - int res = 1; - String statusKey = RedisConstant.DATABASE_STATUS; - NameValue nameValue = (NameValue)getRedisUtil().hget(statusKey, databaseId); - if (ObjectUtil.isNull(nameValue) || ObjectUtil.isNull(nameValue.getValue()) || !nameValue.getValue()) - res = 0; - return res; - }*/ } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/TableSpaceJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/TableSpaceJob.java new file mode 100644 index 00000000..9705aceb --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/TableSpaceJob.java @@ -0,0 +1,160 @@ +package org.jeecg.modules.quartz.jobs; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.dto.message.MessageDTO; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.DateConstant; +import org.jeecg.common.constant.RedisConstant; +import org.jeecg.common.util.DataTool; +import org.jeecg.common.util.NumUtil; +import org.jeecg.common.util.TemplateUtil; +import org.jeecg.modules.base.dto.SpaceInfo; +import org.jeecg.modules.base.entity.Rule; +import org.jeecg.modules.base.entity.monitor.ItemHistory; +import org.jeecg.modules.base.entity.postgre.AlarmLog; +import org.jeecg.modules.base.entity.postgre.AlarmRule; +import org.jeecg.modules.base.enums.Item; +import org.jeecg.modules.feignclient.ManageUtil; +import org.jeecg.modules.quartz.entity.Monitor; +import org.jeecg.modules.system.service.ISysDataSourceService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +import static org.jeecg.modules.base.enums.Item.TABLESPACE_USAGE; +import static org.jeecg.modules.base.enums.SourceType.DATABASE; +import static org.jeecg.modules.base.enums.Template.MONITOR_DATABASE; + +@Slf4j +@Component +public class TableSpaceJob extends Monitor { + /** + * 解析Oracle 表空间预警规则 + **/ + @Scheduled(cron = "${task.period-space:0 0/1 * * * ?}") + public void execute(){ + init(); + + // 查询所有Database的报警规则,根据报警规则查询监控项数据 + String pattern = RedisConstant.PREFIX_RULE + DATABASE.getType(); + Set keys = getRedisStreamUtil().keys(pattern); + if (CollUtil.isEmpty(keys)) return; + + String prefixSilence = RedisConstant.PREFIX_SILENCE; + String operator = null; + for (String ruleKey : keys) { + try { + AlarmRule alarmRule = (AlarmRule) getRedisStreamUtil().get(ruleKey); + // 如果报警规则为空,或者在沉默周期内,跳过当前规则 + operator = alarmRule.getOperator(); + String ruleId = alarmRule.getId(); + String itemId = alarmRule.getItemId(); + String silenceKey = prefixSilence + ruleId; + boolean hasKey = getRedisStreamUtil().hasKey(silenceKey); + boolean blank1 = StrUtil.isBlank(operator); + boolean blank2 = StrUtil.isBlank(itemId); + + if (blank1 || blank2 || hasKey) continue; + + // 根据sourceId查询Database信息(缓存) + String sourceId = alarmRule.getSourceId(); + String databaseName = getAlarmClient().getDatabaseName(sourceId); + + // 根据监控项id选择要查询的监控项信息 + Item item = Item.of(itemId); + if (ObjectUtil.isNull(item)) continue; + + // 解析预警规则,判断是否需要报警 + boolean needWarn = false; + Map result = null; + Map spaceMap = null; + ObjectMapper mapper = new ObjectMapper(); + Rule rule = mapper.readValue(operator, Rule.class); + String op = rule.getOperator(); + Double threshold = rule.getThreshold(); + + if (item == TABLESPACE_USAGE){ // 监控项id: 2 Oracle表空间使用率 + List spaceInfos = getAlarmClient().spaceInfo(sourceId).getResult(); + if (CollUtil.isEmpty(spaceInfos)) continue; + spaceMap = spaceInfos.stream().collect(Collectors.toMap(SpaceInfo::getSpaceName, SpaceInfo::getUsed)); + result = NumUtil.compare(spaceMap, threshold, op); + needWarn = result.containsValue(true); + } + + // 如果当前值超过阈值 则需要发送报警信息 + if (needWarn){ + // 记录报警日志 + AlarmLog alarmLog = new AlarmLog(); + alarmLog.setRuleId(ruleId); + alarmLog.setOperator(operator); + alarmLog.setAlarmValue(value(spaceMap, result)); + + String ruleName = alarmRule.getName(); + Map data = DataTool.getInstance(). + put(databaseName).put(ruleName).put(rule.joint()).put(info(spaceMap, result)).get(); + MessageDTO messageDTO = TemplateUtil.parse(MONITOR_DATABASE.getCode(), data); + + alarmLog.setAlarmInfo(messageDTO.getContent()); + getAlarmClient().create(alarmLog); + // 规则触发报警后,设置该规则的沉默周期(如果有) + // 沉默周期失效之前,该规则不会再次被触发 + Long silenceCycle = alarmRule.getSilenceCycle(); + ruleSilence(silenceKey, silenceCycle); + + // 发送报警信息 + String groupId = alarmRule.getContactId(); + String notific = alarmRule.getNotification(); + getSendMessage().send(messageDTO, groupId, notific); + getPushAppUtil().pushToSingle(messageDTO, groupId); + } + } catch (JsonProcessingException e) { + log.error("Database-TableSpace预警规则: {}解析失败,失败原因: {}", operator, e.getMessage()); + }catch (Exception e){ + log.error("Database-TableSpace监控异常: {}", e.getMessage()); + } + } + destroy(); + } + + /* + * 所有的预警值 以,分割 + * */ + private String value(Map sapceMap, Map result){ + List keys = result.entrySet().stream() + .filter(Map.Entry::getValue) + .map(Map.Entry::getKey) + .collect(Collectors.toList()); + return sapceMap.entrySet().stream() + .filter(entry -> CollUtil.contains(keys, entry.getKey())) + .map(entry -> String.valueOf(entry.getValue())) + .collect(Collectors.joining(", ")); + } + + /* + * [表空间名1: 预警值1, 表空间名2: 预警值2] + * */ + private String info(Map sapceMap, Map result){ + List keys = result.entrySet().stream() + .filter(Map.Entry::getValue) + .map(Map.Entry::getKey) + .collect(Collectors.toList()); + return "[" + sapceMap.entrySet().stream() + .filter(entry -> CollUtil.contains(keys, entry.getKey())) + .map(entry -> entry.getKey() + ": " + entry.getValue()) + .collect(Collectors.joining(", ")) + + "]"; + } +} From 28baa48257191c0a207ebb453e99920ca1ba8903 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 4 Mar 2024 08:59:59 +0800 Subject: [PATCH 069/133] =?UTF-8?q?web=E6=A8=A1=E5=9D=97=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E8=87=AA=E5=BB=BA=E5=8F=B0=E7=AB=99=E5=88=86=E6=94=AF=E7=9A=84?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=A0=B8=E7=B4=A0=E7=BB=9F=E8=AE=A1=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=E5=86=85=E5=AE=B9=E7=9B=B8=E5=85=B3=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/common/util/ExportUtil.java | 52 ++ .../controller/WebStatisticsController.java | 24 + .../mapper/GardsSampleDataWebMapper.java | 2 + .../mapper/SysDefaultNuclideMapper.java | 9 + .../mapper/xml/GardsSampleDataWebMapper.xml | 44 ++ .../service/IGardsSampleDataWebService.java | 7 + .../impl/GardsSampleDataWebServiceImpl.java | 460 +++++++++++++++++- 7 files changed, 581 insertions(+), 17 deletions(-) create mode 100644 jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/SysDefaultNuclideMapper.java diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/ExportUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/ExportUtil.java index 3640f577..1dbe6319 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/ExportUtil.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/ExportUtil.java @@ -4,6 +4,11 @@ import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import org.apache.commons.io.FileUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.jeecgframework.poi.excel.ExcelExportUtil; import org.jeecgframework.poi.excel.entity.ExportParams; @@ -22,6 +27,7 @@ import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Objects; import static org.jeecg.common.util.ClassUtil.classPathStream; @@ -183,4 +189,50 @@ public class ExportUtil { Map dataMap){ exportXls(response,template,target,dataSet,dataMap,"file.xls"); } + + public static Workbook createWorkBook(List stationNameList, List columnNameList, Map>> dataMap) { + //创建工作簿 + Workbook workbook = new HSSFWorkbook(); + //遍历台站数量 + for (int i=0; i> dataList = dataMap.get(stationName); + //遍历数据根据字段名称取值赋值 + for (int j=0; j data = dataList.get(j); + for (int k=0; k Integer getSampleId(@Param(value = "filePathName") String filePathName); + List> findNuclideStatistics(@Param(value = "stationId") String stationId, @Param(value = "startTime") String startTime, @Param(value = "endTime") String endTime, @Param(value = "nuclideSql") String nuclideSql); + } diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/SysDefaultNuclideMapper.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/SysDefaultNuclideMapper.java new file mode 100644 index 00000000..5f2ce650 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/SysDefaultNuclideMapper.java @@ -0,0 +1,9 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.jeecg.modules.base.entity.postgre.SysDefaultNuclide; + +@Mapper +public interface SysDefaultNuclideMapper extends BaseMapper { +} 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 aea22575..3f302d6e 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 @@ -178,4 +178,48 @@ SELECT SAMPLE_ID FROM ORIGINAL.GARDS_SAMPLE_DATA WHERE INPUT_FILE_NAME = #{filePathName} + + \ No newline at end of file diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSampleDataWebService.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSampleDataWebService.java index 52ca749c..0af52bac 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSampleDataWebService.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSampleDataWebService.java @@ -51,4 +51,11 @@ public interface IGardsSampleDataWebService extends IService List sampleIds); List queryByModDate(Date startTime, Date endTime); + + Result findNuclideList(String systemType); + + Result findNuclideStatistics(String stationId, String systemType, String dbName, String[] nuclideNames, Date startDate, Date endDate); + + void exportNuclideStatistics(String[] stationIds, String systemType, String dbName, String[] nuclideNames, Date startDate, Date endDate, HttpServletResponse response); + } diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataWebServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataWebServiceImpl.java index b862dc6e..0dc5ed19 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataWebServiceImpl.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataWebServiceImpl.java @@ -23,8 +23,11 @@ import org.jeecg.common.util.*; import org.jeecg.modules.base.entity.original.GardsSampleAux; import org.jeecg.modules.base.entity.original.GardsSampleData; import org.jeecg.modules.base.entity.original.GardsSampleDescription; +import org.jeecg.modules.base.entity.postgre.SysDefaultNuclide; +import org.jeecg.modules.base.enums.SystemType; import org.jeecg.modules.entity.GardsSampleDataWeb; import org.jeecg.modules.entity.data.*; +import org.jeecg.modules.entity.dto.SampleDataDto; import org.jeecg.modules.entity.vo.SpectrumFileRecord; import org.jeecg.modules.mapper.*; import org.jeecg.modules.native_jni.EnergySpectrumHandler; @@ -52,26 +55,10 @@ public class GardsSampleDataWebServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysDefaultNuclide::getUseType, 4); + if (systemType.equals("beta")) { + queryWrapper.eq(SysDefaultNuclide::getNuclideType, SystemType.BETA.getType()); + } else if (systemType.equals("gamma")) { + queryWrapper.eq(SysDefaultNuclide::getNuclideType, SystemType.GAMMA.getType()); + } else if (systemType.equals("Particulate")) { + queryWrapper.eq(SysDefaultNuclide::getNuclideType, SystemType.PARTICULATE.getType()); + } + List defaultNuclides = defaultNuclideMapper.selectList(queryWrapper); + result.setSuccess(true); + result.setResult(defaultNuclides); + return result; + } + + @Override + public Result findNuclideStatistics(String stationId, String systemType, String dbName, String[] nuclideNames, Date startDate, Date endDate) { + Result result = new Result(); + //存储结果 + Map resultMap = new HashMap<>(); + //从redis中获取台站信息 + Map stationMap = (Map)redisUtil.get("stationMap"); + //判断开始时间是否为空 + if (Objects.isNull(startDate)){ + result.error500("The start time cannot be empty"); + return result; + } + String startTime = DateUtils.formatDate(startDate, "yyyy-MM-dd") + " 00:00:00"; + //判断结束时间是否为空 + if (Objects.isNull(endDate)) { + result.error500("The end time cannot be empty"); + return result; + } + String endTime = DateUtils.formatDate(endDate, "yyyy-MM-dd") + " 23:59:59"; + List allDayTime = DateUtils.getAllDay(DateUtils.formatDate(startDate, "yyyy-MM-dd"), DateUtils.formatDate(endDate, "yyyy-MM-dd")); + //判断查询的核素内容是否为空 + List nuclideNameList = new LinkedList<>(); + if (nuclideNames != null && nuclideNames.length > 0) { + nuclideNameList = Arrays.asList(nuclideNames); + } + //判断要查询的数据库类型 + if (dbName.equals("auto")) { + dbName = "RNAUTO"; + } else if (dbName.equals("man")) { + dbName = "RNMAN"; + } + //判断系统类型查询对应匹配的核素信息 + String nuclideSql = ""; + if (systemType.equals("beta")) { + nuclideSql = betaNuclideSql(dbName, nuclideNameList); + for (int i=0; i< nuclideNameList.size(); i++) { + String nuclideName = nuclideNameList.get(i); + if (StringUtils.isNotBlank(nuclideName)) { + List concList = new LinkedList<>(); + List mdcList = new LinkedList<>(); + resultMap.put(nuclideName+"Conc", concList); + resultMap.put(nuclideName+"MDC", mdcList); + } + } + } else if (systemType.equals("gamma")) { + nuclideSql = gammaNuclideSql(dbName, nuclideNameList); + for (int i=0; i< nuclideNameList.size(); i++) { + String nuclideName = nuclideNameList.get(i); + if (StringUtils.isNotBlank(nuclideName)) { + List concList = new LinkedList<>(); + List mdcList = new LinkedList<>(); + resultMap.put(nuclideName+"Conc", concList); + resultMap.put(nuclideName+"MDC", mdcList); + } + } + } else if (systemType.equals("Particulate")) { + nuclideSql = particulateSql(dbName, nuclideNameList); + for (int i=0; i< nuclideNameList.size(); i++) { + String nuclideName = nuclideNameList.get(i); + if (StringUtils.isNotBlank(nuclideName)) { + List concList = new LinkedList<>(); + resultMap.put(nuclideName+"Conc", concList); + } + } + } + //拼接sql查询结果 + List> nuclideStatisticsMap = this.baseMapper.findNuclideStatistics(stationId, startTime, endTime, nuclideSql); + //处理查询结果 + handleNuclideData(nuclideStatisticsMap, systemType, nuclideNameList, allDayTime, resultMap); + //返回台站名称 + String stationName = stationMap.get(stationId); + resultMap.put("STATION_NAME", stationName); + result.setSuccess(true); + result.setResult(resultMap); + return result; + } + + @Override + public void exportNuclideStatistics(String[] stationIds, String systemType, String dbName, String[] nuclideNames, Date startDate, Date endDate, HttpServletResponse response) { + Map>> resultMap = new HashMap<>(); + //从redis中获取台站信息 + Map stationMap = (Map)redisUtil.get("stationMap"); + //判断开始时间是否为空 + if (Objects.isNull(startDate)){ + return; + } + String startTime = DateUtils.formatDate(startDate, "yyyy-MM-dd") + " 00:00:00"; + //判断结束时间是否为空 + if (Objects.isNull(endDate)) { + return; + } + String endTime = DateUtils.formatDate(endDate, "yyyy-MM-dd") + " 23:59:59"; + //判断查询的核素内容是否为空 + List nuclideNameList = new LinkedList<>(); + if (nuclideNames != null && nuclideNames.length > 0) { + nuclideNameList = Arrays.asList(nuclideNames); + } + //判断要查询的数据库类型 + if (dbName.equals("auto")) { + dbName = "RNAUTO"; + } else if (dbName.equals("man")) { + dbName = "RNMAN"; + } + //列名数组 + List columnNameList = new LinkedList<>(); + //判断系统类型查询对应匹配的核素信息 + String nuclideSql = ""; + if (systemType.equals("beta")) { + //存储基础列名 + columnNameList.add("STATION_ID"); + columnNameList.add("SAMPLE_ID"); + columnNameList.add("SPECTRAL_QUALIFIE"); + columnNameList.add("COLLECT_START"); + columnNameList.add("QUANTITY"); + columnNameList.add("XE_VOLUME"); + columnNameList.add("ACQUISITION_START"); + columnNameList.add("ACQUISITION_LIVE_SEC"); + columnNameList.add("SITE_DET_CODE"); + nuclideSql = betaNuclideSql(dbName, nuclideNameList); + for (int i=0; i< nuclideNameList.size(); i++) { + String nuclideName = nuclideNameList.get(i); + if (StringUtils.isNotBlank(nuclideName)) { + columnNameList.add(StringUtils.upperCase(nuclideName)); + columnNameList.add(StringUtils.upperCase(nuclideName+"MDC")); + } + } + } else if (systemType.equals("gamma")) { + //存储基础列名 + columnNameList.add("STATION_ID"); + columnNameList.add("SAMPLE_ID"); + columnNameList.add("SAMPLE_REF_ID"); + columnNameList.add("COLLECT_START"); + columnNameList.add("COLLECT_STOP"); + columnNameList.add("QUANTITY"); + columnNameList.add("ACQUISITION_START"); + columnNameList.add("ACQUISITION_STOP"); + columnNameList.add("ACQUISITION_LIVE_SEC"); + columnNameList.add("SITE_DET_CODE"); + nuclideSql = gammaNuclideSql(dbName, nuclideNameList); + for (int i=0; i< nuclideNameList.size(); i++) { + String nuclideName = nuclideNameList.get(i); + if (StringUtils.isNotBlank(nuclideName)) { + columnNameList.add(StringUtils.upperCase(nuclideName)); + columnNameList.add(StringUtils.upperCase(nuclideName+"MDC")); + } + } + } else if (systemType.equals("Particulate")) { + //存储基础列名 + columnNameList.add("STATION_ID"); + columnNameList.add("SAMPLE_ID"); + columnNameList.add("SAMPLE_REF_ID"); + columnNameList.add("COLLECT_START"); + columnNameList.add("COLLECT_STOP"); + columnNameList.add("QUANTITY"); + columnNameList.add("ACQUISITION_START"); + columnNameList.add("ACQUISITION_STOP"); + columnNameList.add("ACQUISITION_LIVE_SEC"); + columnNameList.add("SITE_DET_CODE"); + nuclideSql = particulateSql(dbName, nuclideNameList); + for (int i=0; i< nuclideNameList.size(); i++) { + String nuclideName = nuclideNameList.get(i); + if (StringUtils.isNotBlank(nuclideName)) { + columnNameList.add(StringUtils.upperCase(nuclideName)); + } + } + } + //台站名称数组 + List stationNameList = new LinkedList<>(); + for (String stationId:stationIds) { + //返回台站名称 + String stationName = stationMap.get(stationId); + //拼接sql查询结果 + List> nuclideStatisticsMap = this.baseMapper.findNuclideStatistics(stationId, startTime, endTime, nuclideSql); + resultMap.put(stationName, nuclideStatisticsMap); + //添加台站名称到集合 + stationNameList.add(stationName); + } + Workbook workbook = null; + OutputStream outputStream = null; + try { + // 设置文件名、Excel类型(xls|xlsx) + outputStream = ExportUtil.xls(response,"nuclide.xls"); + workbook = ExportUtil.createWorkBook(stationNameList, columnNameList, resultMap); + workbook.write(outputStream); + } catch (IOException e) { + e.printStackTrace(); + }finally { + try { + if (ObjectUtil.isNotNull(outputStream)) + outputStream.close(); + if (ObjectUtil.isNotNull(workbook)) + workbook.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + private String betaNuclideSql(String dbName, List nuclideNames) { + String sql = ""; + //存储每个核素对应的sql + List nuclideSqls = new LinkedList<>(); + //遍历核素名称拼接sql语句 + for (int i=0; i nuclideNames) { + String sql = ""; + //存储每个核素对应的sql + List nuclideSqls = new LinkedList<>(); + //遍历核素名称 + for (int i=0; i nuclideNames) { + String sql = ""; + //存储核素sql + List nuclideSqls = new LinkedList<>(); + //遍历核素信息 + for (int i=0; i> nuclideStatisticsMap, String systemType, List nuclideNameList, List allDateTime, Map resultMap) { + //存储横坐标采集开始时间 + List collectStartList = new LinkedList<>(); + //存储横坐标对应体积 + List quantityList = new LinkedList<>(); + //存储横坐标对应acq活时间 + List acqLiveSecList = new LinkedList<>(); + //遍历日期时间 + for (int i=0; i< allDateTime.size(); i++) { + //根据下标获取日期时间 + String dayTime = allDateTime.get(i); + //新增标识判断是否包含 可能存在一天有多条数据的情况 + boolean isHave = false; + //遍历查询结果数组 + for (int j=0; j< nuclideStatisticsMap.size(); j++) { + //根据下标获取核素查询结果 + Map nuclideStatistics = nuclideStatisticsMap.get(j); + //获取采集开始时间 + Object collectStart = nuclideStatistics.get("COLLECT_START"); + //采集开始时间转为字符串 + String collectStartStr = collectStart.toString(); + //截取采集开始时间的年月日 + collectStartStr = collectStartStr.substring(0, 10); + //如果采集时间包含当前日期 则正常的读取数据并存入数组 + if (dayTime.equals(collectStartStr)) { + collectStartList.add(collectStart.toString()); + //获取体积 + Object quantity = nuclideStatistics.get("QUANTITY"); + //判断体积数值是否有 如果有 正常存储 + if (Objects.nonNull(quantity)) { + quantityList.add(Double.valueOf(quantity.toString())); + } else { + quantityList.add(null); + } + //获取acq活时间 + Object acquisitionLiveSec = nuclideStatistics.get("ACQUISITION_LIVE_SEC"); + //判断活时间是否为空 如果不为空 正常存储 + if (Objects.nonNull(acquisitionLiveSec)) { + acqLiveSecList.add(Double.valueOf(acquisitionLiveSec.toString())); + } else { + acqLiveSecList.add(null); + } + //判断系统类型决定读取核素的信息 + if (systemType.equals("beta") || systemType.equals("gamma")) { + for (String nuclideName: nuclideNameList) { + List concList = (List) resultMap.get(nuclideName + "Conc"); + List mdcList = (List) resultMap.get(nuclideName + "MDC"); + //将核素名称转为全部大写 + String columnName = StringUtils.upperCase(nuclideName); + //读取查询出的浓度 + Object conc = nuclideStatistics.get(columnName); + //判断如果浓度不为空 正常存储 + if (Objects.nonNull(conc)) { + if (conc.toString().toLowerCase().contains("inf") || conc.toString().toLowerCase().contains("nan")) { + concList.add(null); + } else { + concList.add(Double.valueOf(conc.toString())); + } + } else { + concList.add(null); + } + //读取查询出的mdc结果 + Object mdc = nuclideStatistics.get(columnName + "MDC"); + //判断如果mdc结果不为空 正常存储 + if (Objects.nonNull(mdc)) { + if (mdc.toString().toLowerCase().contains("inf") || mdc.toString().toLowerCase().contains("nan")) { + mdcList.add(null); + } else { + mdcList.add(Double.valueOf(mdc.toString())); + } + } else { + mdcList.add(null); + } + } + } else if (systemType.equals("Particulate")) { + for (String nuclideName: nuclideNameList) { + List concList = (List) resultMap.get(nuclideName + "Conc"); + //将核素名称转为全部大写 + String columnName = StringUtils.upperCase(nuclideName); + //读取查询出的浓度 + Object conc = nuclideStatistics.get(columnName); + //判断如果浓度不为空 正常存储 + if (Objects.nonNull(conc)) { + if (conc.toString().toLowerCase().contains("inf") || conc.toString().toLowerCase().contains("nan")) { + concList.add(null); + } else { + concList.add(Double.valueOf(conc.toString())); + } + } else { + concList.add(null); + } + } + } + isHave = true; + } else { //如果采集时间不包含当前日期 各数组填补null + //如果全数组遍历后都没有 就填充空数据 + if (j == nuclideStatisticsMap.size()-1 && !isHave) { + collectStartList.add(dayTime+" 00:00:00"); + quantityList.add(null); + acqLiveSecList.add(null); + //判断系统类型决定读取核素的信息 + if (systemType.equals("beta") || systemType.equals("gamma")) { + for (String nuclideName: nuclideNameList) { + List concList = (List) resultMap.get(nuclideName + "Conc"); + List mdcList = (List) resultMap.get(nuclideName + "MDC"); + concList.add(null); + mdcList.add(null); + } + } else if (systemType.equals("Particulate")) { + for (String nuclideName: nuclideNameList) { + List concList = (List) resultMap.get(nuclideName + "Conc"); + concList.add(null); + } + } + } + } + } + } + resultMap.put("CollectStart", collectStartList); + resultMap.put("Quantity", quantityList); + resultMap.put("AcqLiveSec", acqLiveSecList); + } + + + } From ae62849591f51e953a10431f5a2cfb30de6b37cb Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 4 Mar 2024 15:43:39 +0800 Subject: [PATCH 070/133] =?UTF-8?q?web=E7=BB=9F=E8=AE=A1beta=E9=83=A8?= =?UTF-8?q?=E5=88=86=E6=9F=A5=E8=AF=A2=E6=A0=B8=E7=B4=A0=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E7=89=B9=E6=AE=8A=E6=A0=B8=E7=B4=A0=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/GardsSampleDataWebServiceImpl.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataWebServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataWebServiceImpl.java index 0dc5ed19..c64a1e1b 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataWebServiceImpl.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataWebServiceImpl.java @@ -25,6 +25,7 @@ import org.jeecg.modules.base.entity.original.GardsSampleData; import org.jeecg.modules.base.entity.original.GardsSampleDescription; import org.jeecg.modules.base.entity.postgre.SysDefaultNuclide; import org.jeecg.modules.base.enums.SystemType; +import org.jeecg.modules.base.enums.XeNuclideName; import org.jeecg.modules.entity.GardsSampleDataWeb; import org.jeecg.modules.entity.data.*; import org.jeecg.modules.entity.dto.SampleDataDto; @@ -992,6 +993,13 @@ public class GardsSampleDataWebServiceImpl extends ServiceImpl Date: Mon, 4 Mar 2024 16:44:54 +0800 Subject: [PATCH 071/133] =?UTF-8?q?fix=EF=BC=9A=E6=A0=B8=E7=B4=A0=E6=B5=93?= =?UTF-8?q?=E5=BA=A6=E8=AE=A1=E7=AE=97=E4=B8=BAnull=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/IGardsXeResultsAutoService.java | 2 +- .../service/IGardsXeResultsManService.java | 2 +- .../impl/CalculateConcServiceImpl.java | 12 +++++----- .../impl/GardsXeResultsAutoServiceImpl.java | 22 ++++++++++++++++--- .../impl/GardsXeResultsManServiceImpl.java | 21 ++++++++++++++++-- .../modules/quartz/jobs/TableSpaceJob.java | 2 +- 6 files changed, 46 insertions(+), 15 deletions(-) diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsXeResultsAutoService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsXeResultsAutoService.java index 66c86bee..e66886e2 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsXeResultsAutoService.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsXeResultsAutoService.java @@ -11,7 +11,7 @@ import java.util.Set; public interface IGardsXeResultsAutoService extends IService { - List getConc(Map params); + List getConc(Map params, Set nuclides); List nuclideNames(Set nuclideNames); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsXeResultsManService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsXeResultsManService.java index 269b42ed..34997d5d 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsXeResultsManService.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IGardsXeResultsManService.java @@ -11,7 +11,7 @@ import java.util.Set; public interface IGardsXeResultsManService extends IService { - List getConc(Map params); + List getConc(Map params, Set nuclides); List nuclideNames(Set nuclideNames); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/CalculateConcServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/CalculateConcServiceImpl.java index e4466601..8f13884b 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/CalculateConcServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/CalculateConcServiceImpl.java @@ -96,7 +96,7 @@ public class CalculateConcServiceImpl implements CalculateConcService { // 查询指定台站的所有的核素浓度 并计算核素浓度均值 params.put("nuclideName", nuclides); params.put("stationId", station); - List xeConcAuto = xeResultsAutoService.getConc(params); // beta-gamma + List xeConcAuto = xeResultsAutoService.getConc(params, nuclides); // beta-gamma List nuclConcAuto = nuclIdedAutoService.getConc(params); // gamma Map autoResult = new HashMap<>(); autoResult.putAll(calculate(concDto(xeConcAuto), index)); @@ -117,7 +117,7 @@ public class CalculateConcServiceImpl implements CalculateConcService { // 查询指定台站的所有的核素浓度 并计算核素浓度均值 params.put("nuclideName", nuclides); params.put("stationId", station); - List xeConcMan = xeResultsManService.getConc(params); // beta-gamma + List xeConcMan = xeResultsManService.getConc(params, nuclides); // beta-gamma List nuclConcMan = nuclIdedManService.getConc(params); // gamma Map manResult = new HashMap<>(); manResult.putAll(calculate(concDto(xeConcMan), index)); @@ -180,12 +180,10 @@ public class CalculateConcServiceImpl implements CalculateConcService { } private String log(List nuclideAvgs){ - List nuclideNames = nuclideAvgs.stream() + Set nuclideNames = nuclideAvgs.stream() .map(AlarmAnalysisNuclideAvg::getNuclide) - .collect(Collectors.toList()); + .collect(Collectors.toSet()); String nuclide = CollUtil.join(nuclideNames, ","); - String now = LocalDateTime.now() - .format(DateTimeFormatter.ofPattern(DateConstant.DATE_TIME)); - return "核素 [" + nuclide + "] 进行了浓度均值计算, 计算时间: " + now; + return "核素 [" + nuclide + "] 进行了浓度均值计算"; } } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsAutoServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsAutoServiceImpl.java index 59d5c5dd..7d3d6627 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsAutoServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsAutoServiceImpl.java @@ -1,5 +1,7 @@ package org.jeecg.modules.service.impl; +import cn.hutool.core.collection.ListUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.jeecg.common.constant.DateConstant; @@ -22,10 +24,24 @@ import java.util.stream.Collectors; @DS("ora") public class GardsXeResultsAutoServiceImpl extends ServiceImpl implements IGardsXeResultsAutoService { - @Override - public List getConc(Map params) { - return baseMapper.getConc(params); + public List getConc(Map params, Set nuclides) { + List M = ListUtil.toList("Xe131M", "Xe133M"); + // XeResults表: 查询条件使用m + nuclides = nuclides.stream() + .filter(M::contains) + .map(item -> StrUtil.replace(item, "M","m")).collect(Collectors.toSet()); + params.put("nuclideName", nuclides); + // 将返回结果的m转换为M + List m = ListUtil.toList("Xe131m", "Xe133m"); + List result = baseMapper.getConc(params); + result = result.stream() + .filter(item -> m.contains(item.getNuclideName())) + .peek(item -> { + String nuclideName = StrUtil.replace(item.getNuclideName(), "m","M"); + item.setNuclideName(nuclideName); + }).collect(Collectors.toList()); + return result; } @Override diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsManServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsManServiceImpl.java index 4ab3ca7d..88e8d4f1 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsManServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsManServiceImpl.java @@ -1,5 +1,7 @@ package org.jeecg.modules.service.impl; +import cn.hutool.core.collection.ListUtil; +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; @@ -24,8 +26,23 @@ public class GardsXeResultsManServiceImpl extends ServiceImpl getConc(Map params) { - return baseMapper.getConc(params); + public List getConc(Map params ,Set nuclides) { + List M = ListUtil.toList("Xe131M", "Xe133M"); + // XeResults表: 查询条件使用m + nuclides = nuclides.stream() + .filter(M::contains) + .map(item -> StrUtil.replace(item, "M","m")).collect(Collectors.toSet()); + params.put("nuclideName", nuclides); + // 将返回结果的m转换为M + List m = ListUtil.toList("Xe131m", "Xe133m"); + List result = baseMapper.getConc(params); + result = result.stream() + .filter(item -> m.contains(item.getNuclideName())) + .peek(item -> { + String nuclideName = StrUtil.replace(item.getNuclideName(), "m","M"); + item.setNuclideName(nuclideName); + }).collect(Collectors.toList()); + return result; } @Override diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/TableSpaceJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/TableSpaceJob.java index 9705aceb..307b1ffe 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/TableSpaceJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/TableSpaceJob.java @@ -44,7 +44,7 @@ public class TableSpaceJob extends Monitor { /** * 解析Oracle 表空间预警规则 **/ - @Scheduled(cron = "${task.period-space:0 0/1 * * * ?}") + @Scheduled(cron = "${task.period-space:0 0 */1 * * ?}") public void execute(){ init(); From 6e54bce33604227a0c7af018251a26d60bdc7f45 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Tue, 5 Mar 2024 13:50:54 +0800 Subject: [PATCH 072/133] =?UTF-8?q?fix=EF=BC=9Anull=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/CalculateConcServiceImpl.java | 4 +-- .../impl/GardsXeResultsAutoServiceImpl.java | 30 +++++++++++------- .../impl/GardsXeResultsManServiceImpl.java | 31 +++++++++++-------- 3 files changed, 38 insertions(+), 27 deletions(-) diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/CalculateConcServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/CalculateConcServiceImpl.java index 8f13884b..29ca5bd5 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/CalculateConcServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/CalculateConcServiceImpl.java @@ -94,9 +94,9 @@ public class CalculateConcServiceImpl implements CalculateConcService { String station = entry.getKey(); Set nuclides = entry.getValue(); // 查询指定台站的所有的核素浓度 并计算核素浓度均值 - params.put("nuclideName", nuclides); params.put("stationId", station); List xeConcAuto = xeResultsAutoService.getConc(params, nuclides); // beta-gamma + params.put("nuclideName", nuclides); List nuclConcAuto = nuclIdedAutoService.getConc(params); // gamma Map autoResult = new HashMap<>(); autoResult.putAll(calculate(concDto(xeConcAuto), index)); @@ -115,9 +115,9 @@ public class CalculateConcServiceImpl implements CalculateConcService { String station = entry.getKey(); Set nuclides = entry.getValue(); // 查询指定台站的所有的核素浓度 并计算核素浓度均值 - params.put("nuclideName", nuclides); params.put("stationId", station); List xeConcMan = xeResultsManService.getConc(params, nuclides); // beta-gamma + params.put("nuclideName", nuclides); List nuclConcMan = nuclIdedManService.getConc(params); // gamma Map manResult = new HashMap<>(); manResult.putAll(calculate(concDto(xeConcMan), index)); diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsAutoServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsAutoServiceImpl.java index 7d3d6627..ec1b8314 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsAutoServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsAutoServiceImpl.java @@ -1,5 +1,6 @@ package org.jeecg.modules.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.dynamic.datasource.annotation.DS; @@ -15,6 +16,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import java.time.LocalDate; import java.time.format.DateTimeFormatter; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -25,22 +27,26 @@ import java.util.stream.Collectors; public class GardsXeResultsAutoServiceImpl extends ServiceImpl implements IGardsXeResultsAutoService { @Override - public List getConc(Map params, Set nuclides) { + public List getConc(Map params, Set nuclideList) { + Set nuclides = new HashSet<>(); List M = ListUtil.toList("Xe131M", "Xe133M"); // XeResults表: 查询条件使用m - nuclides = nuclides.stream() - .filter(M::contains) - .map(item -> StrUtil.replace(item, "M","m")).collect(Collectors.toSet()); + for (String nuclide : nuclideList) { + if (CollUtil.contains(M, nuclide)){ + nuclides.add(StrUtil.replace(nuclide, "M","m")); + continue; + } + nuclides.add(nuclide); + } params.put("nuclideName", nuclides); - // 将返回结果的m转换为M - List m = ListUtil.toList("Xe131m", "Xe133m"); List result = baseMapper.getConc(params); - result = result.stream() - .filter(item -> m.contains(item.getNuclideName())) - .peek(item -> { - String nuclideName = StrUtil.replace(item.getNuclideName(), "m","M"); - item.setNuclideName(nuclideName); - }).collect(Collectors.toList()); + // 将查询结果的m转换为M + List m = ListUtil.toList("Xe131m", "Xe133m"); + for (ConcDtoXe concDtoXe : result) { + String nuclideName = concDtoXe.getNuclideName(); + if (CollUtil.contains(m, nuclideName)) + concDtoXe.setNuclideName(StrUtil.replace(nuclideName, "m","M")); + } return result; } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsManServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsManServiceImpl.java index 88e8d4f1..6406d07b 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsManServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/GardsXeResultsManServiceImpl.java @@ -1,5 +1,6 @@ package org.jeecg.modules.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.dynamic.datasource.annotation.DS; @@ -15,6 +16,7 @@ import org.springframework.stereotype.Service; import java.time.LocalDate; import java.time.format.DateTimeFormatter; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -24,24 +26,27 @@ import java.util.stream.Collectors; @DS("ora") public class GardsXeResultsManServiceImpl extends ServiceImpl implements IGardsXeResultsManService { - @Override - public List getConc(Map params ,Set nuclides) { + public List getConc(Map params ,Set nuclideList) { + Set nuclides = new HashSet<>(); List M = ListUtil.toList("Xe131M", "Xe133M"); // XeResults表: 查询条件使用m - nuclides = nuclides.stream() - .filter(M::contains) - .map(item -> StrUtil.replace(item, "M","m")).collect(Collectors.toSet()); + for (String nuclide : nuclideList) { + if (CollUtil.contains(M, nuclide)){ + nuclides.add(StrUtil.replace(nuclide, "M","m")); + continue; + } + nuclides.add(nuclide); + } params.put("nuclideName", nuclides); - // 将返回结果的m转换为M - List m = ListUtil.toList("Xe131m", "Xe133m"); List result = baseMapper.getConc(params); - result = result.stream() - .filter(item -> m.contains(item.getNuclideName())) - .peek(item -> { - String nuclideName = StrUtil.replace(item.getNuclideName(), "m","M"); - item.setNuclideName(nuclideName); - }).collect(Collectors.toList()); + // 将查询结果的m转换为M + List m = ListUtil.toList("Xe131m", "Xe133m"); + for (ConcDtoXe concDtoXe : result) { + String nuclideName = concDtoXe.getNuclideName(); + if (CollUtil.contains(m, nuclideName)) + concDtoXe.setNuclideName(StrUtil.replace(nuclideName, "m","M")); + } return result; } From 6ac9576cb1c99d1b9572f929f000eadfd210b9f3 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Tue, 5 Mar 2024 18:26:02 +0800 Subject: [PATCH 073/133] =?UTF-8?q?feat=EF=BC=9A=E6=A0=B8=E7=B4=A0?= =?UTF-8?q?=E6=B5=93=E5=BA=A6=E5=9D=87=E5=80=BC=E5=8F=B0=E7=AB=99=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/common/constant/DictConstant.java | 4 + .../jeecg/modules/base/enums/StationType.java | 11 +++ .../impl/CalculateConcServiceImpl.java | 98 +++++++++++++++---- 3 files changed, 95 insertions(+), 18 deletions(-) create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/StationType.java diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/DictConstant.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/DictConstant.java index 9eef2a99..8ecfeb7b 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/DictConstant.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/DictConstant.java @@ -9,4 +9,8 @@ public interface DictConstant { String ANALYSE_SOURCE = "alarm_analyse_rule_source"; String DATASOURCE_TYPE = "database_type"; + + String NOBLE_GAS_BETAGAMMA = "Noble Gas Beta-Gamma"; + + String NOBLE_GAS_HPGE = "Noble Gas HPGe"; } diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/StationType.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/StationType.java new file mode 100644 index 00000000..101941aa --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/StationType.java @@ -0,0 +1,11 @@ +package org.jeecg.modules.base.enums; + +import cn.hutool.core.util.StrUtil; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@NoArgsConstructor +public enum StationType { + BETA, GAMMA, NULL +} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/CalculateConcServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/CalculateConcServiceImpl.java index 29ca5bd5..ef0ab2af 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/CalculateConcServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/CalculateConcServiceImpl.java @@ -2,16 +2,25 @@ package org.jeecg.modules.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.ListUtil; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.config.mqtoken.UserTokenContext; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.constant.DateConstant; +import org.jeecg.common.constant.DictConstant; import org.jeecg.common.constant.SymbolConstant; +import org.jeecg.common.system.vo.DictModel; +import org.jeecg.common.util.RedisUtil; import org.jeecg.modules.base.dto.ConcDto; import org.jeecg.modules.base.dto.ConcDtoXe; +import org.jeecg.modules.base.entity.configuration.GardsStations; import org.jeecg.modules.base.entity.postgre.AlarmAnalysisNuclideAvg; import org.jeecg.modules.base.entity.postgre.AlarmAnalysisNuclideParam; import org.jeecg.modules.base.entity.postgre.AlarmAnalysisRule; +import org.jeecg.modules.base.enums.StationType; +import org.jeecg.modules.feignclient.SystemClient; import org.jeecg.modules.service.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -24,6 +33,8 @@ import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; +import static org.jeecg.common.util.TokenUtils.getTempToken; + @Slf4j @Service public class CalculateConcServiceImpl implements CalculateConcService { @@ -49,6 +60,16 @@ public class CalculateConcServiceImpl implements CalculateConcService { @Autowired private IAlarmAnalysisNuclideParamService nuclideParamService; + @Autowired + private RedisUtil redisUtil; + + @Autowired + private SystemClient systemClient; + + private List beta; + + private Map stations; + @Override public void calcAndSave() { try { @@ -87,42 +108,54 @@ public class CalculateConcServiceImpl implements CalculateConcService { params.put("startDate",startDate + DateConstant.TIME_START); params.put("endDate",endDate + DateConstant.TIME_END); + List autoAvgs = new ArrayList<>(); // Auto + List manAvgs = new ArrayList<>(); // Man // 遍历所有台站 计算每个台站的所有核素浓度均值 - /* Auto自动处理 */ - List autoAvgs = new ArrayList<>(); + init(); for (Map.Entry> entry : nuclideMap.entrySet()) { String station = entry.getKey(); Set nuclides = entry.getValue(); // 查询指定台站的所有的核素浓度 并计算核素浓度均值 params.put("stationId", station); - List xeConcAuto = xeResultsAutoService.getConc(params, nuclides); // beta-gamma - params.put("nuclideName", nuclides); - List nuclConcAuto = nuclIdedAutoService.getConc(params); // gamma + StationType stationType = stationType(station); + List xeConcAuto = new ArrayList<>(); + List xeConcMan = new ArrayList<>(); + List nuclConcAuto = new ArrayList<>(); + List nuclConcMan = new ArrayList<>(); + switch (stationType){ + case BETA: + xeConcAuto = xeResultsAutoService.getConc(params, nuclides); // beta-gamma Auto + xeConcMan = xeResultsManService.getConc(params, nuclides); // beta-gamma Man + break; + case GAMMA: + params.put("nuclideName", nuclides); + nuclConcAuto = nuclIdedAutoService.getConc(params); // gamma Auto + nuclConcMan = nuclIdedManService.getConc(params); // gamma Man + break; + case NULL: + xeConcAuto = xeResultsAutoService.getConc(params, nuclides); // beta-gamma Auto + xeConcMan = xeResultsManService.getConc(params, nuclides); // beta-gamma Man + params.put("nuclideName", nuclides); + nuclConcAuto = nuclIdedAutoService.getConc(params); // gamma Auto + nuclConcMan = nuclIdedManService.getConc(params); // gamma Man + break; + default: + break; + } + // Auto Map autoResult = new HashMap<>(); autoResult.putAll(calculate(concDto(xeConcAuto), index)); autoResult.putAll(calculate(nuclConcAuto, index)); - for (String nuclide : nuclides) { String val = autoResult.get(nuclide); AlarmAnalysisNuclideAvg analysisNuclideAvg = new AlarmAnalysisNuclideAvg(station, nuclide, val); analysisNuclideAvg.setDataSourceType(CommonConstant.ARMDARR); autoAvgs.add(analysisNuclideAvg); } - } - /* Man人工交互 */ - List manAvgs = new ArrayList<>(); - for (Map.Entry> entry : nuclideMap.entrySet()) { - String station = entry.getKey(); - Set nuclides = entry.getValue(); - // 查询指定台站的所有的核素浓度 并计算核素浓度均值 - params.put("stationId", station); - List xeConcMan = xeResultsManService.getConc(params, nuclides); // beta-gamma - params.put("nuclideName", nuclides); - List nuclConcMan = nuclIdedManService.getConc(params); // gamma + // Man Map manResult = new HashMap<>(); manResult.putAll(calculate(concDto(xeConcMan), index)); manResult.putAll(calculate(nuclConcMan, index)); - for (String nuclide : nuclides) { String val = manResult.get(nuclide); AlarmAnalysisNuclideAvg analysisNuclideAvg = new AlarmAnalysisNuclideAvg(station, nuclide, val); @@ -149,6 +182,7 @@ public class CalculateConcServiceImpl implements CalculateConcService { @Override public Map calculate(List concDtos, BigDecimal index) { Map result = new HashMap<>(); + if (CollUtil.isEmpty(concDtos)) return result; // 按照核素名进行分组 Map> concDtoMap = concDtos.stream() .collect(Collectors.groupingBy(ConcDto::getNuclideName)); @@ -186,4 +220,32 @@ public class CalculateConcServiceImpl implements CalculateConcService { String nuclide = CollUtil.join(nuclideNames, ","); return "核素 [" + nuclide + "] 进行了浓度均值计算"; } + + private void init(){ + try { + stations = (Map) redisUtil.get("stationInfoMap"); + UserTokenContext.setToken(getTempToken()); + // 获取Beta台站类型字典 + beta = systemClient.getItems(DictConstant.NOBLE_GAS_BETAGAMMA).stream() + .map(DictModel::getValue).collect(Collectors.toList()); + }catch (Exception e){ + log.error("核素浓度均值计算时, 获取台站类型字典异常: {}", e.getMessage()); + }finally { + UserTokenContext.remove(); + } + } + + private StationType stationType(String stationId){ + if (MapUtil.isEmpty(stations)) + return StationType.NULL; + GardsStations station = stations.get(stationId); + if (ObjectUtil.isNull(station) || StrUtil.isBlank(station.getType())) + return StationType.NULL; + if (CollUtil.isEmpty(beta)) + return StationType.NULL; + String stationType = station.getType(); + if (CollUtil.contains(beta, stationType)) + return StationType.BETA; + return StationType.GAMMA; + } } From 0b0856f6871bf313263ac2fc2eb22c28dfee0e5a Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 6 Mar 2024 15:01:56 +0800 Subject: [PATCH 074/133] =?UTF-8?q?=E5=8F=B0=E7=AB=99=E5=AE=9E=E4=BD=93?= =?UTF-8?q?=E7=B1=BB=E5=A2=9E=E5=8A=A0=E5=AD=97=E6=AE=B5category=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E5=8F=B0=E7=AB=99=E7=B1=BB=E5=9E=8B=20=E5=8F=B0?= =?UTF-8?q?=E7=AB=99=E8=BF=90=E8=A1=8C=E7=AE=A1=E7=90=86=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=8F=B0=E7=AB=99=E4=BF=A1=E6=81=AF=E6=97=B6=EF=BC=8C=E5=8F=B0?= =?UTF-8?q?=E7=AB=99=E7=B1=BB=E5=9E=8B=E5=A2=9E=E5=8A=A0=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?category=E5=AD=97=E6=AE=B5=E5=88=A4=E6=96=AD=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E6=98=AF=E8=87=AA=E5=BB=BA=E5=8F=B0=E7=AB=99=E8=BD=A6/?= =?UTF-8?q?=E8=88=B9=20=E5=85=B3=E6=B3=A8=E5=8F=B0=E7=AB=99=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=AD=98=E5=82=A8=EF=BC=8C=E6=9F=A5=E8=AF=A2=E6=97=B6?= =?UTF-8?q?=E8=B0=83=E7=94=A8=E5=8F=B0=E7=AB=99=E7=B1=BB=E5=9E=8B=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=96=B9=E6=B3=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/entity/configuration/GardsStations.java | 3 +++ .../main/java/org/jeecg/common/StationTypeUtil.java | 10 ++++++++-- .../service/impl/StationOperationServiceImpl.java | 2 +- .../service/impl/SysUserFocusStationServiceImpl.java | 9 ++++++--- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/configuration/GardsStations.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/configuration/GardsStations.java index fea65b6f..1787c66a 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/configuration/GardsStations.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/configuration/GardsStations.java @@ -98,4 +98,7 @@ public class GardsStations implements Serializable { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date moddate; + @TableField(value = "CATEGORY") + private Integer category; + } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/common/StationTypeUtil.java b/jeecg-module-station-operation/src/main/java/org/jeecg/common/StationTypeUtil.java index 212bdb7f..3bf78d4e 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/common/StationTypeUtil.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/common/StationTypeUtil.java @@ -20,13 +20,19 @@ public class StationTypeUtil { return stationTypes; } - public String getStationType(Integer stationId){ + public String getStationType(Integer stationId, Integer category){ String type = ""; List stationTypeList = stationType.getTypes(); for (StationType stationType:stationTypeList) { if (StringUtils.isNotBlank(stationType.getMinId()) && StringUtils.isNotBlank(stationType.getMaxId())){ if (stationId>Integer.valueOf(stationType.getMinId()) && stationId<=Integer.valueOf(stationType.getMaxId())){ - type = stationType.getName(); + if (category == 3) { + type = "Car"; + } else if (category == 4) { + type = "Ship"; + } else { + type = stationType.getName(); + } } } } 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 c4bcfe0a..31f78e6c 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 @@ -85,7 +85,7 @@ public class StationOperationServiceImpl extends ServiceImpl stationInfoMap = (HashMap) redisUtil.get("stationInfoMap"); //获取request HttpServletRequest request = SpringContextUtils.getHttpServletRequest(); //获取当前操作人用户名 @@ -101,12 +103,13 @@ public class SysUserFocusStationServiceImpl extends ServiceImpl focusStationStationList = new LinkedList<>(); for (Integer stationId:userFocusStation.getStationIds()) { + GardsStations stations = (GardsStations) stationInfoMap.get(stationId.toString()); SysUserFocusStationStation sysUserFocusStation = new SysUserFocusStationStation(); Long id = IdWorker.getId(); sysUserFocusStation.setId(String.valueOf(id)); sysUserFocusStation.setUserId(sysUser.getId()); sysUserFocusStation.setStationId(String.valueOf(stationId)); - String stationType = stationTypeUtil.getStationType(stationId); + String stationType = stationTypeUtil.getStationType(stationId, stations.getCategory()); sysUserFocusStation.setStationType(stationType); sysUserFocusStation.setCreateTime(LocalDateTime.now()); sysUserFocusStation.setCreateBy(username); @@ -244,7 +247,7 @@ public class SysUserFocusStationServiceImpl extends ServiceImpl Date: Wed, 6 Mar 2024 18:01:57 +0800 Subject: [PATCH 075/133] =?UTF-8?q?feat=EF=BC=9Alog=20print?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/modules/service/impl/AlarmAnalysisLogServiceImpl.java | 2 +- .../main/java/org/jeecg/modules/quartz/jobs/DatabaseJob.java | 1 + .../src/main/java/org/jeecg/modules/quartz/jobs/EmailJob.java | 1 + .../src/main/java/org/jeecg/modules/quartz/jobs/ServerJob.java | 1 + .../main/java/org/jeecg/modules/quartz/jobs/TableSpaceJob.java | 1 + 5 files changed, 5 insertions(+), 1 deletion(-) diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisLogServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisLogServiceImpl.java index 4136c840..af13f2a3 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisLogServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisLogServiceImpl.java @@ -170,8 +170,8 @@ public class AlarmAnalysisLogServiceImpl extends ServiceImpl stationGroup = analysisLogs.stream() - .filter(log -> StrUtil.isNotBlank(log.getStationId())) .map(AlarmAnalysisLog::getStationId) + .filter(StrUtil::isNotBlank) .collect(Collectors.groupingBy(stationId -> stationId, Collectors.counting())); Set stationIds = stationGroup.keySet(); Map stationCodesMap = systemClient.stationCodesMap(stationIds); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/DatabaseJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/DatabaseJob.java index 6de21045..2c8d7036 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/DatabaseJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/DatabaseJob.java @@ -129,6 +129,7 @@ public class DatabaseJob extends Monitor { log.error("Database预警规则: {}解析失败,失败原因: {}", operator, e.getMessage()); }catch (Exception e){ log.error("Database监控异常: {}", e.getMessage()); + e.printStackTrace(); } } destroy(); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/EmailJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/EmailJob.java index ef51c991..2259aa4c 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/EmailJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/EmailJob.java @@ -111,6 +111,7 @@ public class EmailJob extends Monitor{ log.error("Email预警规则: {}解析失败,失败原因: {}", operator, e.getMessage()); }catch (Exception e){ log.error("Email监控异常: {}", e.getMessage()); + e.printStackTrace(); } } destroy(); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/ServerJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/ServerJob.java index 5ffa9e86..9bfe5b86 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/ServerJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/ServerJob.java @@ -130,6 +130,7 @@ public class ServerJob extends Monitor{ log.error("Server预警规则: {}解析失败,失败原因: {}", operator, e.getMessage()); }catch (Exception e){ log.error("Server监控异常: {}", e.getMessage()); + e.printStackTrace(); } } destroy(); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/TableSpaceJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/TableSpaceJob.java index 307b1ffe..441b344f 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/TableSpaceJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/TableSpaceJob.java @@ -124,6 +124,7 @@ public class TableSpaceJob extends Monitor { log.error("Database-TableSpace预警规则: {}解析失败,失败原因: {}", operator, e.getMessage()); }catch (Exception e){ log.error("Database-TableSpace监控异常: {}", e.getMessage()); + e.printStackTrace(); } } destroy(); From 05b6e83608c20b7da259a1ccb35635e117e68056 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 7 Mar 2024 08:51:15 +0800 Subject: [PATCH 076/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E5=A4=B9?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=E6=8B=BC=E6=8E=A5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/service/impl/SpectrumFileServiceImpl.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumFileServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumFileServiceImpl.java index 0c17f54e..75d2f3e7 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumFileServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumFileServiceImpl.java @@ -62,8 +62,11 @@ public class SpectrumFileServiceImpl implements ISpectrumFileService { FileOutputStream fos = null; ZipInputStream zipInputStream = null; String slash = SymbolConstant.SINGLE_SLASH; - - String filePath = spectrumPathProperties.getUploadPath() + slash + username; + //ftp父级路径 + String rootPath = ftpUtil.getFtpRootPath(); + //上传文件夹路径 + String filePath = rootPath + spectrumPathProperties.getUploadPath() + slash + username; + //本地临时文件夹路径 String tempFilePath = System.getProperty("java.io.tmpdir") + username + slash; List fileNames = new ArrayList<>(); List fileList = new ArrayList<>(); @@ -98,7 +101,6 @@ public class SpectrumFileServiceImpl implements ISpectrumFileService { if (!created) return Result.error(Prompt.DIR_CREATE_FAIL + filePath); // 上传所有文件 List failList = new ArrayList<>(); - String rootPath = ftpUtil.getFtpRootPath(); for (File oneFile : fileList) { String fileName = oneFile.getName(); // 判断能谱文件名称是否符合规则,不符合则进行重命名 @@ -107,7 +109,7 @@ public class SpectrumFileServiceImpl implements ISpectrumFileService { String suffix = nameStandUtil.GetSuffix(struct.data_type, struct.spectrum_quantity, String.valueOf(struct.acquisition_live_time)); fileName = nameStandUtil.GetFileNameFromDateTime(struct.measurement_id, suffix); } - String fullFilePath = rootPath + filePath + slash + fileName; + String fullFilePath = filePath + slash + fileName; FileInputStream local = new FileInputStream(oneFile); boolean success = ftpClient.storeFile(fullFilePath, local); if (!success) failList.add(fullFilePath); From 6abe41c7436ba341dcf58948a5d9b10d4078d32f Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 7 Mar 2024 11:21:26 +0800 Subject: [PATCH 077/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97gamma=E9=83=A8=E5=88=86=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=A0=B8=E7=B4=A0=E5=9B=A0=E4=B8=BA=E5=88=A0=E9=99=A4=E5=85=B6?= =?UTF-8?q?=E4=BB=96=E4=B8=BB=E5=B3=B0=E5=AF=BC=E8=87=B4=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E7=9A=84=E9=9D=9E=E4=B8=BB=E5=B3=B0=E6=A0=B8=E7=B4=A0=E9=87=8D?= =?UTF-8?q?=E6=96=B0=E8=AE=A1=E7=AE=97=E6=B4=BB=E5=BA=A6=E6=B5=93=E5=BA=A6?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9=20=E4=BA=BA=E5=B7=A5?= =?UTF-8?q?=E4=BA=A4=E4=BA=92=E6=A8=A1=E5=9D=97gamma=E9=83=A8=E5=88=86?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E5=AE=9E=E4=BD=93=E7=B1=BB=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=AD=97=E6=AE=B5=E7=BC=93=E5=AD=98=E6=A0=B8=E7=B4=A0?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=20=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97gamma=E9=83=A8=E5=88=86=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E6=96=B9=E6=B3=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/modules/entity/vo/PHDFile.java | 3 + .../service/impl/GammaServiceImpl.java | 146 ++++-------------- 2 files changed, 35 insertions(+), 114 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/entity/vo/PHDFile.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/entity/vo/PHDFile.java index 4a969257..f0fe0b17 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/entity/vo/PHDFile.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/entity/vo/PHDFile.java @@ -175,6 +175,8 @@ public class PHDFile implements Serializable { */ private Integer efficiencyCurRow; + private Map phdNuclideMap; + public PHDFile() { userId = ""; xmlFilePath = ""; @@ -243,6 +245,7 @@ public class PHDFile implements Serializable { efficiencyEnergy = new LinkedList<>(); efficiencyParam = new LinkedList<>(); efficiencyCurRow = 0; + phdNuclideMap = 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 0ca89d0b..477fb544 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 @@ -158,121 +158,11 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi @Override public Result initValue(Integer sampleId, String dbName, String analyst, String samfileName, HttpServletRequest request) { Result result = new Result(); - //获取用户名 - String userName = JwtUtil.getUserNameByToken(request); - Cache phdCache = localCache.getPHDCache(); - PHDFile phd = new PHDFile(); - // 读取文件内容 - String key = ""; if (Objects.nonNull(sampleId) && StringUtils.isNotBlank(dbName)) { - // 根据sampleId获取sample文件路径 - String sampleFilePath = spectrumAnalysisMapper.getSampleFilePath(sampleId); - if (StringUtils.isBlank(sampleFilePath)) { - result.error500("Sample file does not exist!"); - return result; - } - String pathName = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + sampleFilePath.substring(0, sampleFilePath.lastIndexOf(StringPool.SLASH)); - String fileName = sampleFilePath.substring(sampleFilePath.lastIndexOf(StringPool.SLASH) + 1); - // 读取文件内容 - // 调用加载文件的方法 传入文件路径,文件名称,全局变量phd,响应结果result - boolean flag = gammaFileUtil.loadFile(pathName, fileName, phd, "BetaGamma", result); - // 如果文件加载失败 返回失败原因 - if (!flag) { - return result; - } - // 加载phd数据所需的lc,scac,baseline数据 - if (dbName.equals("auto")) { - gammaFileUtil.SetBaseInfo(phd, "RNAUTO"); - } else if (dbName.equals("man")) { - gammaFileUtil.SetBaseInfo(phd, analyst); - } - // 从数据库中读取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中获取当前用户关注的核素信息 如果当前用户没有 则返回管理员的 - userLib = defaultNuclideSpectrumService.findNuclidesByUserName(userName, phd.getHeader().getSystem_type().toUpperCase()); - if (CollectionUtils.isEmpty(userLib)) { - userLib = defaultNuclideSpectrumService.findNuclidesByUserName("admin", phd.getHeader().getSystem_type().toUpperCase()); - } - userLib = userLib.stream().sorted().collect(Collectors.toList()); - 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); - } - // 判断数据库信息是否读取正常 - if (!bRet) { - return result; - } - //读取redis缓存的计算mdc信息 - Map mdcInfoMap = (Map) redisUtil.get("mdcInfoMap-"+phd.getHeader().getSystem_type()); - //如果是数据库加载 判断如果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; + result = this.gammaByDB(dbName, sampleId, analyst, request); } else { - String pathName = ftpUtil.getFtpRootPath() + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName; - String fileName = samfileName; - // 加载文件内容 - boolean bRet = gammaFileUtil.loadFile(pathName, fileName, phd, "BetaGamma", result); - if (!bRet) { - 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中获取当前用户关注的核素信息 如果当前用户没有 则返回管理员的 - userLib = defaultNuclideSpectrumService.findNuclidesByUserName(userName, phd.getHeader().getSystem_type().toUpperCase()); - if (CollectionUtils.isEmpty(userLib)) { - userLib = defaultNuclideSpectrumService.findNuclidesByUserName("admin", phd.getHeader().getSystem_type().toUpperCase()); - } - userLib = userLib.stream().sorted().collect(Collectors.toList()); - 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); - } - //读取redis缓存的计算mdc信息 - Map mdcInfoMap = (Map) redisUtil.get("mdcInfoMap-"+phd.getHeader().getSystem_type()); - if (CollectionUtils.isNotEmpty(mdcInfoMap)) { - phd.setMdcInfoMap(mdcInfoMap); - } - key = fileName + StringPool.DASH + userName; + result = this.gammaByFile(samfileName, request); } - phdCache.put(key, phd); - localCache.setPHDCache(phdCache); - result.setSuccess(true); - result.setResult(phd); return result; } @@ -547,6 +437,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi redisUtil.set(userName+StringPool.DASH+phd.getHeader().getSystem_type()+"-list", userLib); redisUtil.set(userName+StringPool.DASH+phd.getHeader().getSystem_type(), nuclideMap); } + //缓存phd谱的核素信息 + Map phdNuclideMap = (Map) redisUtil.get(userName + StringPool.DASH + phd.getHeader().getSystem_type()); + phd.setPhdNuclideMap(phdNuclideMap); // 判断数据库信息是否读取正常 if (!bRet) { return result; @@ -951,6 +844,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi redisUtil.set(userName+StringPool.DASH+phd.getHeader().getSystem_type()+"-list", userLib); redisUtil.set(userName+StringPool.DASH+phd.getHeader().getSystem_type(), nuclideMap); } + //缓存phd谱的核素信息 + Map phdNuclideMap = (Map) redisUtil.get(userName + StringPool.DASH + phd.getHeader().getSystem_type()); + phd.setPhdNuclideMap(phdNuclideMap); //读取redis缓存的计算mdc信息 Map mdcInfoMap = (Map) redisUtil.get("mdcInfoMap-"+phd.getHeader().getSystem_type()); if (CollectionUtils.isNotEmpty(mdcInfoMap)) { @@ -1335,6 +1231,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi result.error500(warning); } else if (flag == -1) { Map nuclideLinesMap = (Map) redisUtil.get(userName+StringPool.DASH+phd.getHeader().getSystem_type()); + //分析时将phd的核素map重置 + phd.setPhdNuclideMap(nuclideLinesMap); + //重新计算核素的活度浓度 gammaFileUtil.NuclidesIdent(phd, nuclideLinesMap); gammaFileUtil.RunQC(phd); phd.setEfficiencyParam(phd.getUsedEffiPara().getP()); @@ -1350,6 +1249,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi result.error500(warning); } else { Map nuclideLinesMap = (Map) redisUtil.get(userName+StringPool.DASH+phd.getHeader().getSystem_type()); + //分析时将phd的核素map重置 + phd.setPhdNuclideMap(nuclideLinesMap); + //调用分析算法 gammaFileUtil.AnalyseSpectrum(phd, nuclideLinesMap); // 重新分析各峰值对应的核素信息 // gammaFileUtil.NuclidesIdent(phd, nuclideLinesMap); @@ -1738,7 +1640,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi return result; } //获取缓存的核素信息 - Map nuclideMap = (Map) redisUtil.get(userName+StringPool.DASH+phd.getHeader().getSystem_type()); + Map nuclideMap = phd.getPhdNuclideMap(); //获取颜色信息 Map colorMap = sysUserColorService.initColor(userName); //声明一个结果的map @@ -2007,6 +1909,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi phd.getVPeak().get(curRow).nuclides.add(nuclideName); // 查询当前用户所关心的核素名称 Map mapNucLines = (Map) redisUtil.get(userName+StringPool.DASH+phd.getHeader().getSystem_type()); + //用户当前缓存的核素信息 + Map phdNuclideMap = phd.getPhdNuclideMap(); // 查询出核素信息 NuclideLines it_line = mapNucLines.get(nuclideName); // 如果核素信息不存在返回 @@ -2025,6 +1929,12 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi map.put("identify", list_identify); List vPeak = gammaFileUtil.InitPeakTable(phd.getVPeak()); map.put("table", vPeak); + //如果当前缓存的谱核素信息不包含当前核素 + if (Objects.isNull(phdNuclideMap.get(nuclideName))) { + //将redis缓存的谱核素信息 存入到缓存map中 + phdNuclideMap.put(nuclideName, it_line); + phd.setPhdNuclideMap(phdNuclideMap); + } result.setSuccess(true); result.setResult(map); return result; @@ -2043,7 +1953,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi return result; } Map map = new HashMap<>(); - Map nuclideMap = (Map) redisUtil.get(userName+StringPool.DASH+phd.getHeader().getSystem_type()); + Map nuclideMap = phd.getPhdNuclideMap(); //判断当前选择的核素名称是否包含在当前Peak的核素列表中 int index = list_identify.indexOf(nuclideName); if (index >= 0) { @@ -2089,6 +1999,13 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi List vPeak = gammaFileUtil.InitPeakTable(phd.getVPeak()); // 处理核素MDA、MDC gammaFileUtil.ReCalcMdaMdc(phd, nuclideName, curRow + 1); + // 谱的峰信息通过stream流过滤出包含当前核素名称的峰信息 + List peakInfoList = phd.getVPeak().stream().filter(item -> item.nuclides.indexOf(nuclideName) >= 0).collect(Collectors.toList()); + //过滤结果小于等于0 则说明当前核素在峰值中不存在了 需要从缓存的核素信息map中移除核素 + if (peakInfoList.size() <= 0) { + //移除核素信息 + nuclideMap.remove(nuclideName); + } map.put("identify", list_identify); map.put("table", vPeak); } @@ -4145,6 +4062,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } redisUtil.set(userName+StringPool.DASH+phd.getHeader().getSystem_type()+"-list", userLib); redisUtil.set(userName+StringPool.DASH+phd.getHeader().getSystem_type(), nuclideMap); + phd.setPhdNuclideMap(nuclideMap); } else { result.success("Modification failure!"); } From 5d166aa419acc1c2467121e730267c6d00015c32 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Thu, 7 Mar 2024 15:27:13 +0800 Subject: [PATCH 078/133] =?UTF-8?q?fix=EF=BC=9A=E6=96=87=E4=BB=B6=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/modules/service/impl/SpectrumFileServiceImpl.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumFileServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumFileServiceImpl.java index 75d2f3e7..0d8b0123 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumFileServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumFileServiceImpl.java @@ -62,10 +62,8 @@ public class SpectrumFileServiceImpl implements ISpectrumFileService { FileOutputStream fos = null; ZipInputStream zipInputStream = null; String slash = SymbolConstant.SINGLE_SLASH; - //ftp父级路径 - String rootPath = ftpUtil.getFtpRootPath(); //上传文件夹路径 - String filePath = rootPath + spectrumPathProperties.getUploadPath() + slash + username; + String filePath = spectrumPathProperties.getUploadPath() + slash + username; //本地临时文件夹路径 String tempFilePath = System.getProperty("java.io.tmpdir") + username + slash; List fileNames = new ArrayList<>(); @@ -111,7 +109,7 @@ public class SpectrumFileServiceImpl implements ISpectrumFileService { } String fullFilePath = filePath + slash + fileName; FileInputStream local = new FileInputStream(oneFile); - boolean success = ftpClient.storeFile(fullFilePath, local); + boolean success = ftpClient.storeFile(fileName, local); if (!success) failList.add(fullFilePath); } if (CollUtil.isNotEmpty(failList)) From 3f4e184c82c5279d46b8dc3fd3668b426005b327 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 7 Mar 2024 16:37:40 +0800 Subject: [PATCH 079/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97gamma=E7=AE=97=E6=B3=95=E5=B4=A9=E6=BA=83?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9=EF=BC=8C=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=88=A4=E6=96=AD=E5=88=86=E6=9E=90=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E5=BC=82=E5=B8=B8=E7=BB=93=E6=9D=9F=EF=BC=8C=E5=B9=B6?= =?UTF-8?q?=E6=8E=A5=E6=94=B6=E5=88=86=E6=9E=90=E5=BC=82=E5=B8=B8=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/modules/entity/vo/PHDFile.java | 6 + .../org/jeecg/common/util/GammaFileUtil.java | 383 +++++++++--------- .../service/impl/GammaServiceImpl.java | 50 +-- 3 files changed, 231 insertions(+), 208 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/entity/vo/PHDFile.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/entity/vo/PHDFile.java index f0fe0b17..bb637270 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/entity/vo/PHDFile.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/entity/vo/PHDFile.java @@ -16,6 +16,10 @@ public class PHDFile implements Serializable { private String tmpFilePath; + private String analyMessage; + + private boolean analyFlag; + private boolean isValid; // 是否有效谱 private boolean bAnalyed; // 记录是否被分析 @@ -181,6 +185,8 @@ public class PHDFile implements Serializable { userId = ""; xmlFilePath = ""; tmpFilePath = ""; + analyMessage = ""; + analyFlag = true; bAnalyed = false; isValid = true; analy_start_time = ""; 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 2d500215..3da16c3f 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 @@ -1335,191 +1335,200 @@ public class GammaFileUtil extends AbstractLogOrReport { } String strValue = CalValuesHandler.analyseSpectrum(phdStr, nuclideLinesMap, phd.getTmpFilePath(), analysisProcess); Map parseMap = JSON.parseObject(strValue, Map.class); - for (Map.Entry entry:parseMap.entrySet()) { - if (entry.getKey().equalsIgnoreCase("bAnalyed")) { - boolean value = JSON.parseObject(JSON.toJSONString(entry.getValue()), Boolean.class); - phd.setBAnalyed(value); - } - if (entry.getKey().equalsIgnoreCase("mapEnerPara")) { - HashMap jsonMap = JSON.parseObject(JSON.toJSONString(entry.getValue()), HashMap.class); - Map value = new HashMap<>(); - for (Map.Entry objectEntry:jsonMap.entrySet()) { - String key = objectEntry.getKey(); - ParameterInfo entryValue = JSON.parseObject(JSON.toJSONString(objectEntry.getValue()), ParameterInfo.class); - value.put(key, entryValue); + boolean analyFlag = JSON.parseObject(JSON.toJSONString(parseMap.get("analyFlag")), Boolean.class); + phd.setAnalyFlag(analyFlag); + String analyMessage = JSON.parseObject(JSON.toJSONString(parseMap.get("analyMessage")), String.class); + phd.setAnalyMessage(analyMessage); + if (analyFlag) { + for (Map.Entry entry:parseMap.entrySet()) { + if (entry.getKey().equalsIgnoreCase("bAnalyed")) { + boolean value = JSON.parseObject(JSON.toJSONString(entry.getValue()), Boolean.class); + phd.setBAnalyed(value); } - phd.setMapEnerPara(value); - } - if (entry.getKey().equalsIgnoreCase("mapResoPara")) { - HashMap jsonMap = JSON.parseObject(JSON.toJSONString(entry.getValue()), HashMap.class); - Map value = new HashMap<>(); - for (Map.Entry objectEntry:jsonMap.entrySet()) { - String key = objectEntry.getKey(); - ParameterInfo entryValue = JSON.parseObject(JSON.toJSONString(objectEntry.getValue()), ParameterInfo.class); - value.put(key, entryValue); + if (entry.getKey().equalsIgnoreCase("mapEnerPara")) { + HashMap jsonMap = JSON.parseObject(JSON.toJSONString(entry.getValue()), HashMap.class); + Map value = new HashMap<>(); + for (Map.Entry objectEntry:jsonMap.entrySet()) { + String key = objectEntry.getKey(); + ParameterInfo entryValue = JSON.parseObject(JSON.toJSONString(objectEntry.getValue()), ParameterInfo.class); + value.put(key, entryValue); + } + phd.setMapEnerPara(value); } - phd.setMapResoPara(value); - } - if (entry.getKey().equalsIgnoreCase("mapEffiPara")) { - HashMap jsonMap = JSON.parseObject(JSON.toJSONString(entry.getValue()), HashMap.class); - Map value = new HashMap<>(); - for (Map.Entry objectEntry:jsonMap.entrySet()) { - String key = objectEntry.getKey(); - ParameterInfo entryValue = JSON.parseObject(JSON.toJSONString(objectEntry.getValue()), ParameterInfo.class); - value.put(key, entryValue); + if (entry.getKey().equalsIgnoreCase("mapResoPara")) { + HashMap jsonMap = JSON.parseObject(JSON.toJSONString(entry.getValue()), HashMap.class); + Map value = new HashMap<>(); + for (Map.Entry objectEntry:jsonMap.entrySet()) { + String key = objectEntry.getKey(); + ParameterInfo entryValue = JSON.parseObject(JSON.toJSONString(objectEntry.getValue()), ParameterInfo.class); + value.put(key, entryValue); + } + phd.setMapResoPara(value); } - phd.setMapEffiPara(value); - } - if (entry.getKey().equalsIgnoreCase("mapTotEPara")) { - HashMap jsonMap = JSON.parseObject(JSON.toJSONString(entry.getValue()), HashMap.class); - Map value = new HashMap<>(); - for (Map.Entry objectEntry:jsonMap.entrySet()) { - String key = objectEntry.getKey(); - ParameterInfo entryValue = JSON.parseObject(JSON.toJSONString(objectEntry.getValue()), ParameterInfo.class); - value.put(key, entryValue); + if (entry.getKey().equalsIgnoreCase("mapEffiPara")) { + HashMap jsonMap = JSON.parseObject(JSON.toJSONString(entry.getValue()), HashMap.class); + Map value = new HashMap<>(); + for (Map.Entry objectEntry:jsonMap.entrySet()) { + String key = objectEntry.getKey(); + ParameterInfo entryValue = JSON.parseObject(JSON.toJSONString(objectEntry.getValue()), ParameterInfo.class); + value.put(key, entryValue); + } + phd.setMapEffiPara(value); } - phd.setMapTotEPara(value); - } - if (entry.getKey().equalsIgnoreCase("para_stepRatio")) { - ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); - phd.setPara_stepRatio(value); - } - if (entry.getKey().equalsIgnoreCase("para_tail")) { - ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); - phd.setPara_tail(value); - } - if (entry.getKey().equalsIgnoreCase("para_tailAlpha")) { - ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); - phd.setPara_tailAlpha(value); - } - if (entry.getKey().equalsIgnoreCase("para_tailRight")) { - ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); - phd.setPara_tailRight(value); - } - if (entry.getKey().equalsIgnoreCase("para_tailRightAlpha")) { - ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); - phd.setPara_tailRightAlpha(value); - } - if (entry.getKey().equalsIgnoreCase("newEner")) { - String value = JSON.parseObject(JSON.toJSONString(entry.getValue()), String.class); - phd.setNewEner(value); - } - if (entry.getKey().equalsIgnoreCase("newReso")) { - String value = JSON.parseObject(JSON.toJSONString(entry.getValue()), String.class); - phd.setNewReso(value); - } - if (entry.getKey().equalsIgnoreCase("mapEnerKD")) { - HashMap jsonMap = JSON.parseObject(JSON.toJSONString(entry.getValue()), HashMap.class); - Map value = new HashMap<>(); - for (Map.Entry objectEntry:jsonMap.entrySet()) { - String key = objectEntry.getKey(); - GEnergyBlock entryValue = JSON.parseObject(JSON.toJSONString(objectEntry.getValue()), GEnergyBlock.class); - value.put(key, entryValue); + if (entry.getKey().equalsIgnoreCase("mapTotEPara")) { + HashMap jsonMap = JSON.parseObject(JSON.toJSONString(entry.getValue()), HashMap.class); + Map value = new HashMap<>(); + for (Map.Entry objectEntry:jsonMap.entrySet()) { + String key = objectEntry.getKey(); + ParameterInfo entryValue = JSON.parseObject(JSON.toJSONString(objectEntry.getValue()), ParameterInfo.class); + value.put(key, entryValue); + } + phd.setMapTotEPara(value); } - phd.setMapEnerKD(value); - } - if (entry.getKey().equalsIgnoreCase("mapResoKD")) { - HashMap jsonMap = JSON.parseObject(JSON.toJSONString(entry.getValue()), HashMap.class); - Map value = new HashMap<>(); - for (Map.Entry objectEntry:jsonMap.entrySet()) { - String key = objectEntry.getKey(); - GResolutionBlock entryValue = JSON.parseObject(JSON.toJSONString(objectEntry.getValue()), GResolutionBlock.class); - value.put(key, entryValue); + if (entry.getKey().equalsIgnoreCase("para_stepRatio")) { + ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); + phd.setPara_stepRatio(value); } - phd.setMapResoKD(value); - } - if (entry.getKey().equalsIgnoreCase("vEnergy")) { - List value = JSON.parseArray(JSON.toJSONString(entry.getValue()), Double.class); - phd.setVEnergy(value); - } - if (entry.getKey().equalsIgnoreCase("vBase")) { - List value = JSON.parseArray(JSON.toJSONString(entry.getValue()), Double.class); - phd.setVBase(value); - } - if (entry.getKey().equalsIgnoreCase("vLc")) { - List value = JSON.parseArray(JSON.toJSONString(entry.getValue()), Double.class); - phd.setVLc(value); - } - if (entry.getKey().equalsIgnoreCase("vScac")) { - List value = JSON.parseArray(JSON.toJSONString(entry.getValue()), Double.class); - phd.setVScac(value); - } - if (entry.getKey().equalsIgnoreCase("vPeak")) { - List value = JSON.parseArray(JSON.toJSONString(entry.getValue()), PeakInfo.class); - phd.setVPeak(value); - } - if (entry.getKey().equalsIgnoreCase("baseCtrls")) { - BaseControls value = JSON.parseObject(JSON.toJSONString(entry.getValue()), BaseControls.class); - phd.setBaseCtrls(value); - } - if (entry.getKey().equalsIgnoreCase("usedEner")) { - String value = JSON.parseObject(JSON.toJSONString(entry.getValue()), String.class); - phd.setUsedEner(value); - } - if (entry.getKey().equalsIgnoreCase("usedEnerKD")) { - GEnergyBlock value = JSON.parseObject(JSON.toJSONString(entry.getValue()), GEnergyBlock.class); - phd.setUsedEnerKD(value); - } - if (entry.getKey().equalsIgnoreCase("usedEnerPara")) { - ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); - phd.setUsedEnerPara(value); - } - if (entry.getKey().equalsIgnoreCase("usedReso")) { - String value = JSON.parseObject(JSON.toJSONString(entry.getValue()), String.class); - phd.setUsedReso(value); - } - if (entry.getKey().equalsIgnoreCase("usedResoKD")) { - GResolutionBlock value = JSON.parseObject(JSON.toJSONString(entry.getValue()), GResolutionBlock.class); - phd.setUsedResoKD(value); - } - if (entry.getKey().equalsIgnoreCase("usedResoPara")) { - ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); - phd.setUsedResoPara(value); - } - if (entry.getKey().equalsIgnoreCase("usedEffi")) { - String value = JSON.parseObject(JSON.toJSONString(entry.getValue()), String.class); - phd.setUsedEffi(value); - } - if (entry.getKey().equalsIgnoreCase("usedEffiKD")) { - GEfficiencyBlock value = JSON.parseObject(JSON.toJSONString(entry.getValue()), GEfficiencyBlock.class); - phd.setUsedEffiKD(value); - } - if (entry.getKey().equalsIgnoreCase("usedEffiPara")) { - ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); - phd.setUsedEffiPara(value); - } - if (entry.getKey().equalsIgnoreCase("usedTotE")) { - String value = JSON.parseObject(JSON.toJSONString(entry.getValue()), String.class); - phd.setUsedTotE(value); - } - if (entry.getKey().equalsIgnoreCase("usedTotEKD")) { - TotaleffBlock value = JSON.parseObject(JSON.toJSONString(entry.getValue()), TotaleffBlock.class); - phd.setUsedTotEKD(value); - } - if (entry.getKey().equalsIgnoreCase("usedTotEPara")) { - ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); - phd.setUsedTotEPara(value); - } - if (entry.getKey().equalsIgnoreCase("mapNucActMda")) { - TreeMap jsonMap = JSON.parseObject(JSON.toJSONString(entry.getValue()), TreeMap.class); - Map value = new TreeMap<>(); - for (Map.Entry objectEntry:jsonMap.entrySet()) { - String key = objectEntry.getKey(); - NuclideActMda entryValue = JSON.parseObject(JSON.toJSONString(objectEntry.getValue()), NuclideActMda.class); - value.put(key, entryValue); + if (entry.getKey().equalsIgnoreCase("para_tail")) { + ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); + phd.setPara_tail(value); + } + if (entry.getKey().equalsIgnoreCase("para_tailAlpha")) { + ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); + phd.setPara_tailAlpha(value); + } + if (entry.getKey().equalsIgnoreCase("para_tailRight")) { + ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); + phd.setPara_tailRight(value); + } + if (entry.getKey().equalsIgnoreCase("para_tailRightAlpha")) { + ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); + phd.setPara_tailRightAlpha(value); + } + if (entry.getKey().equalsIgnoreCase("newEner")) { + String value = JSON.parseObject(JSON.toJSONString(entry.getValue()), String.class); + phd.setNewEner(value); + } + if (entry.getKey().equalsIgnoreCase("newReso")) { + String value = JSON.parseObject(JSON.toJSONString(entry.getValue()), String.class); + phd.setNewReso(value); + } + if (entry.getKey().equalsIgnoreCase("mapEnerKD")) { + HashMap jsonMap = JSON.parseObject(JSON.toJSONString(entry.getValue()), HashMap.class); + Map value = new HashMap<>(); + for (Map.Entry objectEntry:jsonMap.entrySet()) { + String key = objectEntry.getKey(); + GEnergyBlock entryValue = JSON.parseObject(JSON.toJSONString(objectEntry.getValue()), GEnergyBlock.class); + value.put(key, entryValue); + } + phd.setMapEnerKD(value); + } + if (entry.getKey().equalsIgnoreCase("mapResoKD")) { + HashMap jsonMap = JSON.parseObject(JSON.toJSONString(entry.getValue()), HashMap.class); + Map value = new HashMap<>(); + for (Map.Entry objectEntry:jsonMap.entrySet()) { + String key = objectEntry.getKey(); + GResolutionBlock entryValue = JSON.parseObject(JSON.toJSONString(objectEntry.getValue()), GResolutionBlock.class); + value.put(key, entryValue); + } + phd.setMapResoKD(value); + } + if (entry.getKey().equalsIgnoreCase("vEnergy")) { + List value = JSON.parseArray(JSON.toJSONString(entry.getValue()), Double.class); + phd.setVEnergy(value); + } + if (entry.getKey().equalsIgnoreCase("vBase")) { + List value = JSON.parseArray(JSON.toJSONString(entry.getValue()), Double.class); + phd.setVBase(value); + } + if (entry.getKey().equalsIgnoreCase("vLc")) { + List value = JSON.parseArray(JSON.toJSONString(entry.getValue()), Double.class); + phd.setVLc(value); + } + if (entry.getKey().equalsIgnoreCase("vScac")) { + List value = JSON.parseArray(JSON.toJSONString(entry.getValue()), Double.class); + phd.setVScac(value); + } + if (entry.getKey().equalsIgnoreCase("vPeak")) { + List value = JSON.parseArray(JSON.toJSONString(entry.getValue()), PeakInfo.class); + phd.setVPeak(value); + } + if (entry.getKey().equalsIgnoreCase("baseCtrls")) { + BaseControls value = JSON.parseObject(JSON.toJSONString(entry.getValue()), BaseControls.class); + phd.setBaseCtrls(value); + } + if (entry.getKey().equalsIgnoreCase("usedEner")) { + String value = JSON.parseObject(JSON.toJSONString(entry.getValue()), String.class); + phd.setUsedEner(value); + } + if (entry.getKey().equalsIgnoreCase("usedEnerKD")) { + GEnergyBlock value = JSON.parseObject(JSON.toJSONString(entry.getValue()), GEnergyBlock.class); + phd.setUsedEnerKD(value); + } + if (entry.getKey().equalsIgnoreCase("usedEnerPara")) { + ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); + phd.setUsedEnerPara(value); + } + if (entry.getKey().equalsIgnoreCase("usedReso")) { + String value = JSON.parseObject(JSON.toJSONString(entry.getValue()), String.class); + phd.setUsedReso(value); + } + if (entry.getKey().equalsIgnoreCase("usedResoKD")) { + GResolutionBlock value = JSON.parseObject(JSON.toJSONString(entry.getValue()), GResolutionBlock.class); + phd.setUsedResoKD(value); + } + if (entry.getKey().equalsIgnoreCase("usedResoPara")) { + ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); + phd.setUsedResoPara(value); + } + if (entry.getKey().equalsIgnoreCase("usedEffi")) { + String value = JSON.parseObject(JSON.toJSONString(entry.getValue()), String.class); + phd.setUsedEffi(value); + } + if (entry.getKey().equalsIgnoreCase("usedEffiKD")) { + GEfficiencyBlock value = JSON.parseObject(JSON.toJSONString(entry.getValue()), GEfficiencyBlock.class); + phd.setUsedEffiKD(value); + } + if (entry.getKey().equalsIgnoreCase("usedEffiPara")) { + ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); + phd.setUsedEffiPara(value); + } + if (entry.getKey().equalsIgnoreCase("usedTotE")) { + String value = JSON.parseObject(JSON.toJSONString(entry.getValue()), String.class); + phd.setUsedTotE(value); + } + if (entry.getKey().equalsIgnoreCase("usedTotEKD")) { + TotaleffBlock value = JSON.parseObject(JSON.toJSONString(entry.getValue()), TotaleffBlock.class); + phd.setUsedTotEKD(value); + } + if (entry.getKey().equalsIgnoreCase("usedTotEPara")) { + ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); + phd.setUsedTotEPara(value); + } + if (entry.getKey().equalsIgnoreCase("mapNucActMda")) { + TreeMap jsonMap = JSON.parseObject(JSON.toJSONString(entry.getValue()), TreeMap.class); + Map value = new TreeMap<>(); + for (Map.Entry objectEntry:jsonMap.entrySet()) { + String key = objectEntry.getKey(); + NuclideActMda entryValue = JSON.parseObject(JSON.toJSONString(objectEntry.getValue()), NuclideActMda.class); + value.put(key, entryValue); + } + phd.setMapNucActMda(value); } - phd.setMapNucActMda(value); } - } - BeanUtils.copyProperties(phd.getSetting(), phd.getUsedSetting()); + BeanUtils.copyProperties(phd.getSetting(), phd.getUsedSetting()); - for (PeakInfo peak:phd.getVPeak()) { - if (StringUtils.isBlank(peak.recoilBetaChan)) { - peak.recoilBetaChan = "nan"; - } - if (StringUtils.isBlank(peak.recoilDeltaChan)) { - peak.recoilDeltaChan = "nan"; + for (PeakInfo peak:phd.getVPeak()) { + if (StringUtils.isBlank(peak.recoilBetaChan)) { + peak.recoilBetaChan = "nan"; + } + if (StringUtils.isBlank(peak.recoilDeltaChan)) { + peak.recoilDeltaChan = "nan"; + } } + } else { + log.error("AnalyseSpectrum(): {}", analyMessage); + return false; } } catch (JsonProcessingException e){ e.printStackTrace(); @@ -3206,16 +3215,20 @@ public class GammaFileUtil extends AbstractLogOrReport { String anylseEnd; anylseBegin = DateUtils.formatDate(new Date(), "yyyy/MM/dd HH:mm:ss"); bRet = AnalyseSpectrum(fileAnlyse,nucline); - RunQC(fileAnlyse); - fileAnlyse.setEfficiencyParam(fileAnlyse.getUsedEffiPara().getP()); - fileAnlyse.setEfficiencyEnergy(fileAnlyse.getUsedEffiKD().getG_energy()); - fileAnlyse.setEfficiencyCurRow(0); - //缓存中获取计算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; + if (bRet) { + RunQC(fileAnlyse); + fileAnlyse.setEfficiencyParam(fileAnlyse.getUsedEffiPara().getP()); + fileAnlyse.setEfficiencyEnergy(fileAnlyse.getUsedEffiKD().getG_energy()); + fileAnlyse.setEfficiencyCurRow(0); + //缓存中获取计算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; + } else { + return bRet; + } } else if (type.equals(MiddleDataType.InterAction.getType()) && flag.equalsIgnoreCase("save")){ //如果是人工交互分析 则先上传phd对应文件信息 //上传本次文件到ftp人工交互存储路径下 File sampleTmp = null; 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 477fb544..bd0fe6e8 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 @@ -1252,29 +1252,33 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi //分析时将phd的核素map重置 phd.setPhdNuclideMap(nuclideLinesMap); //调用分析算法 - gammaFileUtil.AnalyseSpectrum(phd, nuclideLinesMap); - // 重新分析各峰值对应的核素信息 -// gammaFileUtil.NuclidesIdent(phd, nuclideLinesMap); - phd.setEfficiencyParam(phd.getUsedEffiPara().getP()); - phd.setEfficiencyEnergy(phd.getUsedEffiKD().getG_energy()); - phd.setEfficiencyCurRow(0); - // 重新计算峰值 - Map nuclideLinesMDCMap = (Map) redisUtil.get("AllNuclideMap"); - gammaFileUtil.getNuclideMDCValue(phd, phd.getMdcInfoMap(), nuclideLinesMDCMap); - Map map = new HashMap<>(); - gammaFileUtil.UpdateChart(phd, map, colorMap); - // 更新 ‘QC Flags’ 状态 - phd.getQcItems().clear(); - List qcstate = gammaFileUtil.Qcstate(phd); - map.put("QCFlag", qcstate); - map.put("bAnalyed", phd.isBAnalyed()); - map.put("peak", phd.getVPeak()); - map.put("BaseCtrls", phd.getBaseCtrls()); - // Bar Chart 柱状图 - List differance = gammaFileUtil.Differance(phd, phd.getVPeak()); - map.put("barChart", differance); - result.setSuccess(true); - result.setResult(map); + boolean analyseSpectrum = gammaFileUtil.AnalyseSpectrum(phd, nuclideLinesMap); + if (analyseSpectrum) { + // 重新分析各峰值对应的核素信息 +// gammaFileUtil.NuclidesIdent(phd, nuclideLinesMap); + phd.setEfficiencyParam(phd.getUsedEffiPara().getP()); + phd.setEfficiencyEnergy(phd.getUsedEffiKD().getG_energy()); + phd.setEfficiencyCurRow(0); + // 重新计算峰值 + Map nuclideLinesMDCMap = (Map) redisUtil.get("AllNuclideMap"); + gammaFileUtil.getNuclideMDCValue(phd, phd.getMdcInfoMap(), nuclideLinesMDCMap); + Map map = new HashMap<>(); + gammaFileUtil.UpdateChart(phd, map, colorMap); + // 更新 ‘QC Flags’ 状态 + phd.getQcItems().clear(); + List qcstate = gammaFileUtil.Qcstate(phd); + map.put("QCFlag", qcstate); + map.put("bAnalyed", phd.isBAnalyed()); + map.put("peak", phd.getVPeak()); + map.put("BaseCtrls", phd.getBaseCtrls()); + // Bar Chart 柱状图 + List differance = gammaFileUtil.Differance(phd, phd.getVPeak()); + map.put("barChart", differance); + result.setSuccess(true); + result.setResult(map); + } else { + result.error500("There is a problem with the current phd file, Analysis failure!"); + } } return result; } From 0b6383770bced5f0db876faa0887f3a191d2cd44 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 7 Mar 2024 18:00:04 +0800 Subject: [PATCH 080/133] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86?= =?UTF-8?q?=E6=A8=A1=E5=9D=97gamma=E9=83=A8=E5=88=86=E7=AE=97=E6=B3=95?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E7=A8=8B=E5=BA=8F=E5=B4=A9=E6=BA=83=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E6=96=B0=E5=A2=9E=E5=BC=82=E5=B8=B8=E6=8A=9B=E5=87=BA?= =?UTF-8?q?=E7=AE=97=E6=B3=95=E9=94=99=E8=AF=AF=E5=8E=9F=E5=9B=A0=E5=86=99?= =?UTF-8?q?=E5=85=A5error=E6=97=A5=E5=BF=97=20=E8=87=AA=E5=8A=A8=E5=A4=84?= =?UTF-8?q?=E7=90=86=E6=A8=A1=E5=9D=97gamma=E9=83=A8=E5=88=86=E7=AE=97?= =?UTF-8?q?=E6=B3=95=E5=AF=BC=E8=87=B4=E7=A8=8B=E5=BA=8F=E5=B4=A9=E6=BA=83?= =?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 --- .../exception/AnalySpectrumException.java | 9 ++++ .../spectrum/AbstractSpectrumHandler.java | 3 +- .../modules/spectrum/Sample_G_Analysis.java | 44 +++++++++++-------- .../modules/spectrum/SamplephdSpectrum.java | 1 + .../spectrum/SpectrumParsingActuator.java | 36 +++++++++++---- 5 files changed, 66 insertions(+), 27 deletions(-) create mode 100644 jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/AnalySpectrumException.java diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/AnalySpectrumException.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/AnalySpectrumException.java new file mode 100644 index 00000000..f2d6597a --- /dev/null +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/AnalySpectrumException.java @@ -0,0 +1,9 @@ +package org.jeecg.modules.exception; + +public class AnalySpectrumException extends AnalyseException { + + public AnalySpectrumException(String message) { + super(message); + } + +} 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 3b237f98..86b4ca66 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 @@ -17,6 +17,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.AnalySpectrumException; import org.jeecg.modules.exception.AnalyseException; import org.jeecg.modules.exception.FileRepeatException; import org.jeecg.modules.exception.HeaderBlockException; @@ -268,7 +269,7 @@ public abstract class AbstractSpectrumHandler extends AbstractChain { protected void handleParseingFailFile(Exception e) throws FileNotFoundException { if(!SpectrumSource.FORM_FILE_UNDEL.getSourceType().equals(spectrumSource) && !(e instanceof FileRepeatException)){ try { - if (isDateFormatErr) { + if (isDateFormatErr || (e instanceof AnalySpectrumException)) { //修改能谱文件名称 this.updateErrorSpectrumFileName(); //解析失败会把文件移动到errorfile目录 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 6baf4151..b3bbe087 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 @@ -31,6 +31,7 @@ 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.AnalySpectrumException; import org.jeecg.modules.exception.GAnalyseException; import org.jeecg.modules.file.FileOperation; import org.jeecg.modules.native_jni.struct.EnergySpectrumStruct; @@ -130,7 +131,7 @@ public class Sample_G_Analysis { sampleData.getInputFileName().lastIndexOf((StringConstant.SLASH))+1); } - public void analysis() throws GAnalyseException{ + public void analysis() throws GAnalyseException, AnalySpectrumException{ log.info("Gamma自动处理分析--Start"); PHDFile phdFile = new PHDFile(); try { @@ -174,30 +175,37 @@ public class Sample_G_Analysis { //读取参数内容 readMDCParameter(phdFile); // 执行分析业务代码 - gammaFileUtil.GetMiddleData(phdFile, CommonConstant.REPORT_PREFIX_AUTO, nuclideLibs, middleData, MiddleDataType.Auto.getType(), ""); + boolean analyFlag = gammaFileUtil.GetMiddleData(phdFile, CommonConstant.REPORT_PREFIX_AUTO, nuclideLibs, middleData, MiddleDataType.Auto.getType(), ""); - // 数据插入数据库 - this.storageDataToDatabase(phdFile, middleData, phdFile.getQcItems()); + if (analyFlag) { + // 数据插入数据库 + this.storageDataToDatabase(phdFile, middleData, phdFile.getQcItems()); - // 生成日志文件 - writeLog(middleData.getAnalyses_LogPath(), middleData); + // 生成日志文件 + writeLog(middleData.getAnalyses_LogPath(), middleData); - // 生成报告文件 - String reportContent = gammaFileUtil.GetReportContent(middleData); - String reportPath = StringUtils.substringBeforeLast(middleData.getAnalyses_ReportPath(), StringPool.SLASH); - String reportName = StringUtils.substringAfterLast(middleData.getAnalyses_ReportPath(), StringPool.SLASH) + ".txt"; - String savePath = spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + File.separator + reportPath + - File.separator + reportName; - // 保存文件 - FileOperation.saveOrAppendFile(savePath, reportContent, false); - //发送数据到redis - middleData.setSample_id(String.valueOf(sampleId)); - pushToRedis(middleData); - }catch (Exception e){ + // 生成报告文件 + String reportContent = gammaFileUtil.GetReportContent(middleData); + String reportPath = StringUtils.substringBeforeLast(middleData.getAnalyses_ReportPath(), StringPool.SLASH); + String reportName = StringUtils.substringAfterLast(middleData.getAnalyses_ReportPath(), StringPool.SLASH) + ".txt"; + String savePath = spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + File.separator + reportPath + + File.separator + reportName; + // 保存文件 + FileOperation.saveOrAppendFile(savePath, reportContent, false); + //发送数据到redis + middleData.setSample_id(String.valueOf(sampleId)); + pushToRedis(middleData); + } else { + ErrorLogManager.getInstance().write(new SpectrumErrorEvent(new Date(), phdFile.getAnalyMessage(), this.sampleFilename)); + throw new AnalySpectrumException(phdFile.getAnalyMessage()); + } + } catch (Exception e){ e.printStackTrace(); log.error("Sample_G_Analysis", e); if (e instanceof DuplicateKeyException) { throw new GAnalyseException("Sample Analyse Error at "+DateUtils.formatDate(new Date(),"yyyy-MM-dd HH:mm:ss"), true); + } else if (e instanceof AnalySpectrumException) { + throw new AnalySpectrumException(e.getMessage()); } else { throw new GAnalyseException("Sample Analyse Error at "+DateUtils.formatDate(new Date(),"yyyy-MM-dd HH:mm:ss")); } 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 9f962e63..1cdbd361 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 @@ -7,6 +7,7 @@ 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.AnalySpectrumException; import org.jeecg.modules.exception.AnalyseException; import org.jeecg.modules.exception.GAnalyseException; import org.springframework.dao.DuplicateKeyException; 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 3567752c..53f17107 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 @@ -15,6 +15,7 @@ import org.jeecg.common.exception.DownloadEmailException; import org.jeecg.common.util.DateUtils; import org.jeecg.modules.email.EmailProperties; import org.jeecg.modules.enums.SpectrumSource; +import org.jeecg.modules.exception.AnalySpectrumException; import org.jeecg.modules.file.FileOperation; import javax.mail.Message; @@ -119,8 +120,23 @@ public class SpectrumParsingActuator implements Runnable{ spectrumHandler.init(mailContent.toString(),emlFile.getName(),spectrumServiceQuotes,new StringBuilder(),SpectrumSource.FORM_EMAIL_SERVICE.getSourceType(),batchesCounter); final boolean matchResult = spectrumHandler.saveEmailToLocal(); if(matchResult){ - //开始解析 - spectrumHandler.handler(); + try { + //开始解析 + spectrumHandler.handler(); + } catch (Exception e) { + //如果是gamma谱的分析异常 + if (e instanceof AnalySpectrumException) { + // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError + if (Objects.nonNull(emlFile) && emlFile.exists()){ + moveEmail(emlFile, key); + } + //删除邮件 + emailServiceManager.removeMail(message,batchesCounter); + } else { + throw e; + } + } + }else{ log.warn("This email {} parsing failed and is not listed in the Met, Alert, SOH, Sample, Detbkphd, QC, Gasbkphd spectra.",subject); } @@ -128,12 +144,7 @@ public class SpectrumParsingActuator implements Runnable{ }else { // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError if (Objects.nonNull(emlFile) && emlFile.exists()){ - final String rootPath = spectrumServiceQuotes.getSpectrumPathProperties().getRootPath(); - final String emlErrorPath = spectrumServiceQuotes.getSpectrumPathProperties().getEmlErrorPath(); - final String finalPath = rootPath+emlErrorPath; - FileOperation.moveFile(emlFile,finalPath,true); - // 删除 key,防止下次线程执行删除邮件 - spectrumServiceQuotes.getRedisUtil().del(key); + moveEmail(emlFile, key); throw new DownloadEmailException("邮件移走后手动抛出DownloadEmailException"); } } @@ -187,4 +198,13 @@ public class SpectrumParsingActuator implements Runnable{ return false; } + private void moveEmail(File emlFile, String key) throws IOException { + final String rootPath = spectrumServiceQuotes.getSpectrumPathProperties().getRootPath(); + final String emlErrorPath = spectrumServiceQuotes.getSpectrumPathProperties().getEmlErrorPath(); + final String finalPath = rootPath+emlErrorPath; + FileOperation.moveFile(emlFile,finalPath,true); + // 删除 key,防止下次线程执行删除邮件 + spectrumServiceQuotes.getRedisUtil().del(key); + } + } From cdd9ef1a308e2cb258ec00512ca24e1f034e710b Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 11 Mar 2024 09:16:38 +0800 Subject: [PATCH 081/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E5=88=9D=E5=A7=8B=E5=8C=96=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=94=B9=E4=B8=BA=E6=97=A0=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/modules/controller/GammaController.java | 4 ++-- .../modules/controller/SpectrumAnalysesController.java | 4 ++-- .../java/org/jeecg/modules/service/IGammaService.java | 2 +- .../jeecg/modules/service/ISpectrumAnalysisService.java | 2 +- .../org/jeecg/modules/service/impl/GammaServiceImpl.java | 8 +++----- .../modules/service/impl/SpectrumAnalysisServiceImpl.java | 6 +++--- 6 files changed, 12 insertions(+), 14 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 483b6765..2fd05653 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 @@ -29,8 +29,8 @@ public class GammaController { @GetMapping("initValue") @ApiOperation(value = "初始化gamma数据", notes = "初始化gamma数据") - public Result initValue(Integer sampleId, String dbName, String analyst, String fileName, HttpServletRequest request) { - return gammaService.initValue(sampleId, dbName, analyst, fileName, request); + public void initValue(Integer sampleId, String dbName, String analyst, String fileName, HttpServletRequest request) { + gammaService.initValue(sampleId, dbName, analyst, fileName, request); } 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 9a923ae3..936c02e9 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 @@ -26,8 +26,8 @@ public class SpectrumAnalysesController { @GetMapping("initValue") @ApiOperation(value = "初始化数据", notes = "初始化数据") - public Result initValue(String dbName, Integer sampleId, String analyst, String sampleFileName, String gasFileName, String detFileName, String qcFileName, HttpServletRequest request) { - return spectrumAnalysisService.initValue(dbName, sampleId, analyst, sampleFileName, gasFileName, detFileName, qcFileName, request); + public void initValue(String dbName, Integer sampleId, String analyst, String sampleFileName, String gasFileName, String detFileName, String qcFileName, HttpServletRequest request) { + spectrumAnalysisService.initValue(dbName, sampleId, analyst, sampleFileName, gasFileName, detFileName, qcFileName, request); } @GetMapping("getDBSearchList") 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 ea573b19..205d57ec 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 @@ -15,7 +15,7 @@ import java.util.List; public interface IGammaService{ - Result initValue(Integer sampleId, String dbName, String analyst, String fileName, HttpServletRequest request); + void initValue(Integer sampleId, String dbName, String analyst, String fileName, HttpServletRequest request); Result testFun(String fileName, HttpServletRequest request); 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 39dac872..15ff5d0a 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 @@ -14,7 +14,7 @@ import java.util.List; public interface ISpectrumAnalysisService { - Result initValue(String dbName, Integer sampleId, String analyst, String sampleFileName, String gasFileName, String detFileName, String qcFileName, HttpServletRequest request); + void initValue(String dbName, Integer sampleId, String analyst, String sampleFileName, String gasFileName, String detFileName, String qcFileName, HttpServletRequest request); Result getDBSearchList(HttpServletRequest request, boolean AllUsers, String sampleType); 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 bd0fe6e8..54f6cd89 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 @@ -156,14 +156,12 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi private IDataService dataService; @Override - public Result initValue(Integer sampleId, String dbName, String analyst, String samfileName, HttpServletRequest request) { - Result result = new Result(); + public void initValue(Integer sampleId, String dbName, String analyst, String samfileName, HttpServletRequest request) { if (Objects.nonNull(sampleId) && StringUtils.isNotBlank(dbName)) { - result = this.gammaByDB(dbName, sampleId, analyst, request); + gammaByDB(dbName, sampleId, analyst, request); } else { - result = this.gammaByFile(samfileName, request); + gammaByFile(samfileName, request); } - return result; } @Override 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 86f642b6..5b7bc57d 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 @@ -125,11 +125,11 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements @Override - public Result initValue(String dbName, Integer sampleId, String analyst, String sampleFileName, String gasFileName, String detFileName, String qcFileName, HttpServletRequest request) { + public void initValue(String dbName, Integer sampleId, String analyst, String sampleFileName, String gasFileName, String detFileName, String qcFileName, HttpServletRequest request) { if (StringUtils.isNotBlank(dbName) && Objects.nonNull(sampleId)) { - return getDBSpectrumChart(dbName, sampleId, analyst, request); + getDBSpectrumChart(dbName, sampleId, analyst, request); } else { - return getFileSpectrumChart(sampleFileName, gasFileName, detFileName, qcFileName, request); + getFileSpectrumChart(sampleFileName, gasFileName, detFileName, qcFileName, request); } } From ec24147e3fdd1fd5a89ce04c2a54180330f0cdfe Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 13 Mar 2024 15:37:26 +0800 Subject: [PATCH 082/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E4=BF=AE=E6=94=B9=E4=B8=8D=E4=BD=BF=E7=94=A8?= =?UTF-8?q?ftp=E6=9C=8D=E5=8A=A1=E4=B8=8A=E4=BC=A0=EF=BC=8C=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E8=BF=9C=E7=A8=8B=E6=9C=8D=E5=8A=A1=E6=96=87=E4=BB=B6?= =?UTF-8?q?=EF=BC=8C=E6=94=B9=E4=B8=BA=E6=9C=AC=E5=9C=B0=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=EF=BC=8C=E4=B8=8B=E8=BD=BD=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/common/util/FTPUtil.java | 201 +++++++++++------- .../org/jeecg/common/util/GammaFileUtil.java | 16 +- .../org/jeecg/common/util/PHDFileUtil.java | 13 +- .../service/impl/GammaServiceImpl.java | 49 +---- .../impl/SpectrumAnalysisServiceImpl.java | 44 +--- .../org/jeecg/common/util/ReadLineUtil.java | 6 +- .../impl/GardsSampleDataWebServiceImpl.java | 2 +- 7 files changed, 158 insertions(+), 173 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java index 0e16b41e..92040c73 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java @@ -285,35 +285,70 @@ public class FTPUtil { * @param inputStream 文件输入流 * @return 返回值true/false */ - public synchronized boolean saveFile(String filePath,String fileName,InputStream inputStream){ - final FTPClient ftpClient = this.LoginFTP(); - try{ - final boolean flag = this.checkDirectory(ftpClient,filePath); - if(flag){ - ftpClient.setFileType(FTP.BINARY_FILE_TYPE); - String encodedName = new String(fileName.getBytes(StandardCharsets.UTF_8),StandardCharsets.ISO_8859_1); - final boolean result = ftpClient.storeFile(encodedName, inputStream); - return result; + public synchronized boolean saveFile(String filePath, InputStream inputStream){ + //声明目标文件 + File targetFile = new File(filePath); + OutputStream outputStream = null; + try { + //获取父级路径 + File directory = targetFile.getParentFile(); + //判断父级路径是否存在 + if (!directory.exists()) { + directory.mkdirs(); } - }catch (IOException e){ - log.error("{}文件创建失败,原因为:{}",filePath+"/"+fileName,e.getMessage()); - e.printStackTrace(); - return false; - }finally { - if(null != inputStream){ - try { - inputStream.close(); - } catch (IOException e) { - e.printStackTrace(); - } + // 创建输出流对象并写入数据到文件 + outputStream = new FileOutputStream(targetFile); + byte[] buffer = new byte[1024]; + int length; + while ((length = inputStream.read(buffer)) > 0) { + outputStream.write(buffer, 0, length); } + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } catch (IOException e) { + throw new RuntimeException(e); + } finally { + // 关闭输入流和输出流 try { - ftpClient.disconnect(); + if (Objects.nonNull(inputStream)) { + inputStream.close(); + } + if (Objects.nonNull(outputStream)) { + outputStream.close(); + } } catch (IOException e) { - e.printStackTrace(); + throw new RuntimeException(e); } } - return false; + return true; +// final FTPClient ftpClient = this.LoginFTP(); +// try{ +// final boolean flag = this.checkDirectory(ftpClient,filePath); +// if(flag){ +// ftpClient.setFileType(FTP.BINARY_FILE_TYPE); +// String encodedName = new String(fileName.getBytes(StandardCharsets.UTF_8),StandardCharsets.ISO_8859_1); +// final boolean result = ftpClient.storeFile(encodedName, inputStream); +// return result; +// } +// }catch (IOException e){ +// log.error("{}文件创建失败,原因为:{}",filePath+"/"+fileName,e.getMessage()); +// e.printStackTrace(); +// return false; +// }finally { +// if(null != inputStream){ +// try { +// inputStream.close(); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } +// try { +// ftpClient.disconnect(); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } +// return false; } /** @@ -458,65 +493,85 @@ public class FTPUtil { /* * 将源FTP路径的文件保存为指定路径的临时文件 * */ - public File downloadFile(String fromPath, String toPath) { - FTPClient ftpClient = null; - InputStream inputStream = null; - // 声明一个临时文件 - File tempFile = null; - try { - ftpClient = LoginFTP(); - // 切换被动模式 - ftpClient.enterLocalPassiveMode(); - ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); - // 设置编码,当文件中存在中文且上传后文件乱码时可使用此配置项 - ftpClient.setControlEncoding("UTF-8"); - ftpClient.setFileTransferMode(FTPClient.STREAM_TRANSFER_MODE); - inputStream = ftpClient.retrieveFileStream(fromPath); - if (Objects.nonNull(inputStream)) { - tempFile = File.createTempFile(toPath, null); - // 将FTP文件的输入流复制给临时文件 - FileUtils.copyInputStreamToFile(inputStream, tempFile); - } - return tempFile; - } catch (IOException e) { - e.printStackTrace(); - return null; - } finally { - try { - if (ObjectUtil.isNotNull(ftpClient)) - ftpClient.disconnect(); - if (ObjectUtil.isNotNull(inputStream)) - inputStream.close(); - } catch (IOException e) { - e.printStackTrace(); - } + public File downloadFile(String fromPath) { + //获取路径下的文件信息 + File tempFile = new File(fromPath); + //判断文件是否存在 + if (!tempFile.exists()) { + tempFile = null; } + return tempFile; +// FTPClient ftpClient = null; +// InputStream inputStream = null; +// // 声明一个临时文件 +// File tempFile = null; +// try { +// //连接ftp +// ftpClient = LoginFTP(); +// // 切换被动模式 +// ftpClient.enterLocalPassiveMode(); +// ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); +// // 设置编码,当文件中存在中文且上传后文件乱码时可使用此配置项 +// ftpClient.setControlEncoding("UTF-8"); +// ftpClient.setFileTransferMode(FTPClient.STREAM_TRANSFER_MODE); +// inputStream = ftpClient.retrieveFileStream(fromPath); +// if (Objects.nonNull(inputStream)) { +// tempFile = File.createTempFile(toPath, null); +// // 将FTP文件的输入流复制给临时文件 +// FileUtils.copyInputStreamToFile(inputStream, tempFile); +// } +// return tempFile; +// } catch (IOException e) { +// e.printStackTrace(); +// return null; +// } finally { +// try { +// if (ObjectUtil.isNotNull(ftpClient)) +// ftpClient.disconnect(); +// if (ObjectUtil.isNotNull(inputStream)) +// inputStream.close(); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } } /* * 将源FTP路径的文件转换为文件流 * */ public InputStream downloadFileStream(String fromPath) { - FTPClient ftpClient = null; + //获取路径下的文件信息 + File tempFile = new File(fromPath); + InputStream inputStream = null; try { - ftpClient = LoginFTP(); - // 切换被动模式 - ftpClient.enterLocalPassiveMode(); - ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); - // 设置编码,当文件中存在中文且上传后文件乱码时可使用此配置项 - ftpClient.setControlEncoding("UTF-8"); - ftpClient.setFileTransferMode(FTPClient.STREAM_TRANSFER_MODE); - return ftpClient.retrieveFileStream(fromPath); - } catch (IOException e) { - e.printStackTrace(); - return null; - } finally { - try { - if (ObjectUtil.isNotNull(ftpClient)) - ftpClient.disconnect(); - } catch (IOException e) { - e.printStackTrace(); + //判断文件是否存在 + if (tempFile.exists()) { + inputStream = new FileInputStream(tempFile); } + return inputStream; + } catch (FileNotFoundException e) { + throw new RuntimeException(e); } +// FTPClient ftpClient = null; +// try { +// ftpClient = LoginFTP(); +// // 切换被动模式 +// ftpClient.enterLocalPassiveMode(); +// ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); +// // 设置编码,当文件中存在中文且上传后文件乱码时可使用此配置项 +// ftpClient.setControlEncoding("UTF-8"); +// ftpClient.setFileTransferMode(FTPClient.STREAM_TRANSFER_MODE); +// return ftpClient.retrieveFileStream(fromPath); +// } catch (IOException e) { +// e.printStackTrace(); +// return null; +// } finally { +// try { +// if (ObjectUtil.isNotNull(ftpClient)) +// ftpClient.disconnect(); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } } } 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 3da16c3f..e97794c3 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 @@ -70,9 +70,9 @@ public class GammaFileUtil extends AbstractLogOrReport { //如果功能是人工交互模块则从ftp获取文件内容 File file = null; if (sysSource.equals("BetaGamma")) { - file = ftpUtil.downloadFile(fromPath, "betaGamma"); + file = ftpUtil.downloadFile(fromPath); if (Objects.isNull(file)) { - result.error500("ftp file can't find"); + result.error500("file can't find"); return false; } } else if (sysSource.equals("AUTO")) {//如果是自动处理则从本地文件中获取文件内容 @@ -265,7 +265,7 @@ public class GammaFileUtil extends AbstractLogOrReport { try { String lcFileName = prefixName+"_"+subFileName + ".lc"; String fromPathLc = pathName + StringPool.SLASH + lcFileName; - lcFile = ftpUtil.downloadFile(fromPathLc, "betaGamma"); + lcFile = ftpUtil.downloadFile(fromPathLc); if (Objects.nonNull(lcFile)) { List readLinesLc = FileUtils.readLines(lcFile, "UTF-8"); //得到行数据处理后的数据结果 @@ -275,7 +275,7 @@ public class GammaFileUtil extends AbstractLogOrReport { } String scacFileName = prefixName+"_"+subFileName + ".scac"; String fromPathScac = pathName + StringPool.SLASH + scacFileName; - scacFile = ftpUtil.downloadFile(fromPathScac, "betaGamma"); + scacFile = ftpUtil.downloadFile(fromPathScac); if (Objects.nonNull(scacFile)) { List readLinesScac = FileUtils.readLines(scacFile, "UTF-8"); //得到行数据处理后的数据结果 @@ -298,10 +298,6 @@ public class GammaFileUtil extends AbstractLogOrReport { try { if (ObjectUtil.isNotNull(inputStreamBase)) inputStreamBase.close(); - if (ObjectUtil.isNotNull(lcFile)) - lcFile.delete(); - if (ObjectUtil.isNotNull(scacFile)) - scacFile.delete(); } catch (IOException e) { e.printStackTrace(); } @@ -3235,7 +3231,7 @@ public class GammaFileUtil extends AbstractLogOrReport { try { sampleTmp = new File(fileAnlyse.getTmpFilePath()); if (Objects.nonNull(sampleTmp)) { - bRet = ftpUtil.saveFile(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + middleData.analyses_save_filePath.substring(0, middleData.analyses_save_filePath.lastIndexOf(StringPool.SLASH)), middleData.analyses_save_filePath.substring(middleData.analyses_save_filePath.lastIndexOf(StringPool.SLASH)+1), new FileInputStream(sampleTmp)); + bRet = ftpUtil.saveFile(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + middleData.analyses_save_filePath, new FileInputStream(sampleTmp)); } } catch (FileNotFoundException e) { throw new RuntimeException(e); @@ -4369,7 +4365,7 @@ public class GammaFileUtil extends AbstractLogOrReport { public File analyzeFile(String path, String fileName) { path = path.replace("\\", "/"); String fromPath = path + StringPool.SLASH + fileName; - return ftpUtil.downloadFile(fromPath, "betaGamma"); + return ftpUtil.downloadFile(fromPath); } public List readLine(String filePath) { 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 d7ae8bf9..2b19508d 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 @@ -817,7 +817,7 @@ public class PHDFileUtil extends AbstractLogOrReport { File file = null; try { String fromPath = filePath + StringPool.SLASH + sampleFileName; - file = ftpUtil.downloadFile(fromPath, "betaGamma"); + file = ftpUtil.downloadFile(fromPath); //加载sampleFile内容 EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(file.getAbsolutePath()); //获取所需要的数据 @@ -841,9 +841,6 @@ public class PHDFileUtil extends AbstractLogOrReport { }catch (Exception e){ e.printStackTrace(); return map; - }finally { - if (ObjectUtil.isNotNull(file)) - file.delete(); } } @@ -852,7 +849,7 @@ public class PHDFileUtil extends AbstractLogOrReport { File file = null; try { String fromPath = filePath + StringPool.SLASH + fileName; - file = ftpUtil.downloadFile(fromPath, "betaGamma"); + file = ftpUtil.downloadFile(fromPath); EnergySpectrumStruct sourceData = EnergySpectrumHandler.getSourceData(file.getAbsolutePath()); String systemType = sourceData.system_type; String dataType = sourceData.data_type; @@ -886,9 +883,6 @@ public class PHDFileUtil extends AbstractLogOrReport { }catch (Exception e){ e.printStackTrace(); return path.toString(); - }finally { - if (ObjectUtil.isNotNull(file)) - file.delete(); } } @@ -1118,9 +1112,6 @@ public class PHDFileUtil extends AbstractLogOrReport { if (Objects.nonNull(inputStream)){ inputStream.close(); } - if (Objects.nonNull(file)) { - file.delete(); - } } catch (IOException e) { throw new RuntimeException(e); } 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 54f6cd89..7758cfd4 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 @@ -368,10 +368,6 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi result.setResult(phd); } catch (JsonProcessingException e) { throw new RuntimeException(e); - } finally { - if (Objects.nonNull(tmpFile)) { - tmpFile.delete(); - } } result.setSuccess(true); return result; @@ -884,12 +880,6 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi String key = fileName + StrUtil.DASHED + username; Cache phdCache = localCache.getPHDCache(); PHDFile phdFile = phdCache.getIfPresent(key); - if (StringUtils.isNotBlank(phdFile.getTmpFilePath())) { - File file = new File(phdFile.getTmpFilePath()); - if (Objects.nonNull(file)) { - file.delete(); - } - } // 删除指定key的Cache localCache.deletePHDCache(key); } @@ -957,7 +947,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi return result; } compareFilePath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + compareFilePath; - File compareFile = ftpUtil.downloadFile(compareFilePath, "betaGamma"); + File compareFile = ftpUtil.downloadFile(compareFilePath); if (Objects.isNull(compareFile)) { result.error500("The comparison file path does not exist"); return result; @@ -969,7 +959,6 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi result.setSuccess(true); result.setResult(chartDataList); } - compareFile.delete(); return result; } @@ -991,7 +980,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi //加载compare文件 String compareFilePath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName; String fromPath = compareFilePath + StringPool.SLASH + compareFileName; - File compareFile = ftpUtil.downloadFile(fromPath, "betaGamma"); + File compareFile = ftpUtil.downloadFile(fromPath); if (Objects.nonNull(compareFile)) { // 获取Compare数据 List m_vecCompare = gammaFileUtil.loadCompareData(compareFile, userName, m_nCount, result); @@ -1000,7 +989,6 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi result.setSuccess(true); result.setResult(chartDataList); } - compareFile.delete(); } return result; } @@ -1041,7 +1029,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi return result; } stripFilePath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + stripFilePath; - File stripFile = ftpUtil.downloadFile(stripFilePath, "betaGamma"); + File stripFile = ftpUtil.downloadFile(stripFilePath); if (Objects.isNull(stripFile)) { result.error500("The comparison file path does not exist"); return result; @@ -1056,7 +1044,6 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi result.setSuccess(true); result.setResult(stripMap); } - stripFile.delete(); return result; } @@ -1092,7 +1079,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi //加载strip文件 String stripFilePath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName; String fromPath = stripFilePath + StringPool.SLASH + stripFileName; - File stripFile = ftpUtil.downloadFile(fromPath, "betaGamma"); + File stripFile = ftpUtil.downloadFile(fromPath); if (Objects.nonNull(stripFile)) { // 获取Compare数据 List m_vecCompare = gammaFileUtil.loadCompareData(stripFile, userName, m_nCount, result); @@ -1104,7 +1091,6 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi result.setSuccess(true); result.setResult(stripMap); } - stripFile.delete(); } return result; } @@ -3234,9 +3220,6 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi if (Objects.nonNull(inputStream)) { inputStream.close(); } - if (Objects.nonNull(tmpFile)) { - tmpFile.delete(); - } } catch (IOException e) { throw new RuntimeException(e); } @@ -3508,9 +3491,6 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi if (Objects.nonNull(inputStream)) { inputStream.close(); } - if (Objects.nonNull(tmpFile)) { - tmpFile.delete(); - } } catch (IOException e) { throw new RuntimeException(e); } @@ -3804,9 +3784,6 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi if (Objects.nonNull(inputStream)) { inputStream.close(); } - if (Objects.nonNull(tmpFile)) { - tmpFile.delete(); - } } catch (IOException e) { throw new RuntimeException(e); } @@ -5019,46 +4996,39 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi //分析成功后存储日志文件和报告文件 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); + ftpUtil.saveFile(ftpUtil.getFtpRootPath()+middleData.analyses_baseline_absolute_filePath, in); } catch (FileNotFoundException e) { throw new RuntimeException(e); } } { - 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); + ftpUtil.saveFile(ftpUtil.getFtpRootPath()+middleData.analyses_lc_absolute_filePath, in); } catch (FileNotFoundException e) { throw new RuntimeException(e); } } { - 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); + ftpUtil.saveFile(ftpUtil.getFtpRootPath()+middleData.analyses_scac_absolute_filePath, in); } catch (FileNotFoundException e) { throw new RuntimeException(e); } } { - 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); + ftpUtil.saveFile(middleData.analyses_absolute_LogPath, in); } catch (FileNotFoundException e) { throw new RuntimeException(e); } finally { @@ -5066,13 +5036,12 @@ 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)+".txt"; File rptFile = new File(rptFileName); try { FileUtil.writeString(gammaFileUtil.GetReportContent(middleData), rptFile, "UTF-8"); FileInputStream in = new FileInputStream(rptFile); - ftpUtil.saveFile(rptPathName, rptFileName, in); + ftpUtil.saveFile(middleData.analyses_absolute_ReportPath+".txt", in); } catch (FileNotFoundException e) { throw new RuntimeException(e); } finally { 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 5b7bc57d..a8161b98 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 @@ -473,7 +473,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements if (Objects.nonNull(sample)) { betaDataFile.setSampleFilePathName(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbSpectrumFilePath.getSampleFilePath()); betaDataFile.setSampleFileName(sampleFileName); - sampleTmp = ftpUtil.downloadFile(betaDataFile.getSampleFilePathName(), "betaGamma"); + sampleTmp = ftpUtil.downloadFile(betaDataFile.getSampleFilePathName()); if (Objects.nonNull(sampleTmp)) { //sample临时文件路径存储 betaDataFile.setSampleTmpPath(sampleTmp.getAbsolutePath()); @@ -510,7 +510,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements if (Objects.nonNull(gasBg)) { betaDataFile.setGasFilePathName(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbSpectrumFilePath.getGasBgFilePath()); betaDataFile.setGasFileName(gasFileName); - gasTmp = ftpUtil.downloadFile(betaDataFile.getGasFilePathName(), "betaGamma"); + gasTmp = ftpUtil.downloadFile(betaDataFile.getGasFilePathName()); if (Objects.nonNull(gasTmp)) { //存储gas临时文件路径 betaDataFile.setGasTmpPath(gasTmp.getAbsolutePath()); @@ -547,7 +547,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements if (Objects.nonNull(detBg)) { betaDataFile.setDetFilePathName(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbSpectrumFilePath.getDetBgFilePath()); betaDataFile.setDetFileName(detFileName); - detTmp = ftpUtil.downloadFile(betaDataFile.getDetFilePathName(), "betaGamma"); + detTmp = ftpUtil.downloadFile(betaDataFile.getDetFilePathName()); if (Objects.nonNull(detTmp)) { //存储det临时文件路径 betaDataFile.setDetTmpPath(detTmp.getAbsolutePath()); @@ -584,7 +584,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements if (Objects.nonNull(qc)) { betaDataFile.setQcFilePathName(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbQcFilePath); betaDataFile.setQcFileName(qcFileName); - qcTmp = ftpUtil.downloadFile(betaDataFile.getQcFilePathName(), "betaGamma"); + qcTmp = ftpUtil.downloadFile(betaDataFile.getQcFilePathName()); if (Objects.nonNull(qcTmp)) { betaDataFile.setQcTmpPath(qcTmp.getAbsolutePath()); EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(qcTmp.getAbsolutePath()); @@ -773,7 +773,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements File file = null; try { //根据完整的文件路径 获取临时文件 - file = ftpUtil.downloadFile(filePathName, "betaGamma"); + file = ftpUtil.downloadFile(filePathName); if (Objects.nonNull(file)) { if (type.equalsIgnoreCase("sample")) { betaDataFile.setSampleTmpPath(file.getAbsolutePath()); @@ -870,26 +870,6 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements String betaKey = sampleFileName + "-" + userName; Cache cache = betaCache.getBetaCache(); BetaDataFile betaDataFile = cache.getIfPresent(betaKey); - String sampleTmpPath = betaDataFile.getSampleTmpPath(); - if (StringUtils.isNotBlank(sampleTmpPath)) { - File file = new File(sampleTmpPath); - file.delete(); - } - String gasTmpPath = betaDataFile.getGasTmpPath(); - if (StringUtils.isNotBlank(gasTmpPath)) { - File file = new File(gasTmpPath); - file.delete(); - } - String detTmpPath = betaDataFile.getDetTmpPath(); - if (StringUtils.isNotBlank(detTmpPath)) { - File file = new File(detTmpPath); - file.delete(); - } - String qcTmpPath = betaDataFile.getQcTmpPath(); - if (StringUtils.isNotBlank(qcTmpPath)) { - File file = new File(qcTmpPath); - file.delete(); - } betaCache.deleteBetaCache(betaKey); } @@ -4282,23 +4262,22 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements try { if (StringUtils.isNotBlank(betaDataFile.getSampleTmpPath())) { File sampleTmp = new File(betaDataFile.getSampleTmpPath()); - ftpUtil.saveFile(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + sampleFilePathName.substring(0, sampleFilePathName.lastIndexOf(StringPool.SLASH)), anlyseResultIn.getSampleFileName(), new FileInputStream(sampleTmp)); + ftpUtil.saveFile(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + sampleFilePathName, new FileInputStream(sampleTmp)); } if (StringUtils.isNotBlank(betaDataFile.getGasTmpPath())) { File gasTmp = new File(betaDataFile.getGasTmpPath()); - ftpUtil.saveFile(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + gasFilePathName.substring(0, gasFilePathName.lastIndexOf(StringPool.SLASH)), anlyseResultIn.getGasFileName(), new FileInputStream(gasTmp)); + ftpUtil.saveFile(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + gasFilePathName, new FileInputStream(gasTmp)); } if (StringUtils.isNotBlank(betaDataFile.getDetTmpPath())) { File detTmp = new File(betaDataFile.getDetTmpPath()); - ftpUtil.saveFile(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + detFilePathName.substring(0, detFilePathName.lastIndexOf(StringPool.SLASH)), anlyseResultIn.getDetFileName(), new FileInputStream(detTmp)); + ftpUtil.saveFile(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + detFilePathName, new FileInputStream(detTmp)); } if (StringUtils.isNotBlank(betaDataFile.getQcTmpPath())) { File qcTmp = new File(betaDataFile.getQcTmpPath()); - ftpUtil.saveFile(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + qcFilePathName.substring(0, qcFilePathName.lastIndexOf(StringPool.SLASH)), anlyseResultIn.getQcFileName(), new FileInputStream(qcTmp)); + ftpUtil.saveFile(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + qcFilePathName, 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"); @@ -4314,20 +4293,19 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements FileUtil.writeString("", logFile, "UTF-8"); } FileInputStream in = new FileInputStream(logFile); - ftpUtil.saveFile(logPathName, logFileName, in); + ftpUtil.saveFile(analyses_absolute_LogPath, in); } catch (FileNotFoundException e) { throw new RuntimeException(e); } } { 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)+".txt"; File rptFile = new File(rptFileName); try { FileUtil.writeString(rptContent, rptFile, "UTF-8"); FileInputStream in = new FileInputStream(rptFile); - ftpUtil.saveFile(rptPathName, rptFileName, in); + ftpUtil.saveFile(analyses_absolute_ReportPath+".txt", in); } catch (FileNotFoundException e) { throw new RuntimeException(e); } finally { diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/common/util/ReadLineUtil.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/common/util/ReadLineUtil.java index 5e8e8c85..dd776e78 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/common/util/ReadLineUtil.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/common/util/ReadLineUtil.java @@ -34,7 +34,7 @@ public class ReadLineUtil { File file = null; try { filePath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + filePath; - file = ftpUtil.downloadFile(filePath, "betaGamma"); + file = ftpUtil.downloadFile(filePath); //判断文件路径是否为空 if (Objects.nonNull(file)){ List allLines = FileUtils.readLines(file, encoding); @@ -52,10 +52,6 @@ public class ReadLineUtil { } } catch (IOException e) { throw new RuntimeException(e); - } finally { - if (Objects.nonNull(file)) { - file.delete(); - } } return Collections.emptyMap(); } diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataWebServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataWebServiceImpl.java index c64a1e1b..6f3eb318 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataWebServiceImpl.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataWebServiceImpl.java @@ -133,7 +133,7 @@ public class GardsSampleDataWebServiceImpl extends ServiceImpl Date: Wed, 13 Mar 2024 16:37:48 +0800 Subject: [PATCH 083/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97ftp=E6=9C=8D=E5=8A=A1=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=96=B9=E6=B3=95=E4=BF=AE=E6=94=B9=20?= =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92=E4=BF=9D=E5=AD=98=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E6=96=B9=E6=B3=95=E4=BF=9D=E5=AD=98=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/common/util/FTPUtil.java | 6 +- .../service/impl/GammaServiceImpl.java | 58 +++++++------- .../impl/SpectrumAnalysisServiceImpl.java | 4 +- .../service/impl/SpectrumFileServiceImpl.java | 75 +++++++++++++------ 4 files changed, 88 insertions(+), 55 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java index 92040c73..a4f35ece 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java @@ -281,14 +281,14 @@ public class FTPUtil { /** * 写入文件,若文件或文件目录不存在则自行创建 * @param filePath 文件路径 - * @param fileName 文件名称 * @param inputStream 文件输入流 * @return 返回值true/false */ public synchronized boolean saveFile(String filePath, InputStream inputStream){ //声明目标文件 File targetFile = new File(filePath); - OutputStream outputStream = null; + //创建输出流 + BufferedOutputStream outputStream = null; try { //获取父级路径 File directory = targetFile.getParentFile(); @@ -297,7 +297,7 @@ public class FTPUtil { directory.mkdirs(); } // 创建输出流对象并写入数据到文件 - outputStream = new FileOutputStream(targetFile); + outputStream = new BufferedOutputStream(new FileOutputStream(targetFile)); byte[] buffer = new byte[1024]; int length; while ((length = inputStream.read(buffer)) > 0) { 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 7758cfd4..8671de66 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 @@ -4995,40 +4995,40 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi phd.setStatus("R"); //分析成功后存储日志文件和报告文件 String rootPath = spectrumPathProperties.getRootPath(); - { - File baselineFile = new File(rootPath+middleData.analyses_baseline_absolute_filePath); - try { - FileInputStream in = new FileInputStream(baselineFile); - ftpUtil.saveFile(ftpUtil.getFtpRootPath()+middleData.analyses_baseline_absolute_filePath, in); - } catch (FileNotFoundException e) { - throw new RuntimeException(e); - } - } - { - File lcFile = new File(rootPath+middleData.analyses_lc_absolute_filePath); - try { - FileInputStream in = new FileInputStream(lcFile); - ftpUtil.saveFile(ftpUtil.getFtpRootPath()+middleData.analyses_lc_absolute_filePath, in); - } catch (FileNotFoundException e) { - throw new RuntimeException(e); - } - } - { - File scacFile = new File(rootPath+middleData.analyses_scac_absolute_filePath); - try { - FileInputStream in = new FileInputStream(scacFile); - ftpUtil.saveFile(ftpUtil.getFtpRootPath()+middleData.analyses_scac_absolute_filePath, in); - } catch (FileNotFoundException e) { - throw new RuntimeException(e); - } - } +// { +// File baselineFile = new File(rootPath+middleData.analyses_baseline_absolute_filePath); +// try { +// FileInputStream in = new FileInputStream(baselineFile); +// ftpUtil.saveFile(ftpUtil.getFtpRootPath()+middleData.analyses_baseline_absolute_filePath, in); +// } catch (FileNotFoundException e) { +// throw new RuntimeException(e); +// } +// } +// { +// File lcFile = new File(rootPath+middleData.analyses_lc_absolute_filePath); +// try { +// FileInputStream in = new FileInputStream(lcFile); +// ftpUtil.saveFile(ftpUtil.getFtpRootPath()+middleData.analyses_lc_absolute_filePath, in); +// } catch (FileNotFoundException e) { +// throw new RuntimeException(e); +// } +// } +// { +// File scacFile = new File(rootPath+middleData.analyses_scac_absolute_filePath); +// try { +// FileInputStream in = new FileInputStream(scacFile); +// ftpUtil.saveFile(ftpUtil.getFtpRootPath()+middleData.analyses_scac_absolute_filePath, in); +// } catch (FileNotFoundException e) { +// throw new RuntimeException(e); +// } +// } { 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(middleData.analyses_absolute_LogPath, in); + ftpUtil.saveFile(ftpUtil.getFtpRootPath()+middleData.analyses_absolute_LogPath, in); } catch (FileNotFoundException e) { throw new RuntimeException(e); } finally { @@ -5041,7 +5041,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi try { FileUtil.writeString(gammaFileUtil.GetReportContent(middleData), rptFile, "UTF-8"); FileInputStream in = new FileInputStream(rptFile); - ftpUtil.saveFile(middleData.analyses_absolute_ReportPath+".txt", in); + ftpUtil.saveFile(ftpUtil.getFtpRootPath()+middleData.analyses_absolute_ReportPath+".txt", in); } catch (FileNotFoundException e) { throw new RuntimeException(e); } finally { 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 a8161b98..c2d98c9a 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 @@ -4293,7 +4293,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements FileUtil.writeString("", logFile, "UTF-8"); } FileInputStream in = new FileInputStream(logFile); - ftpUtil.saveFile(analyses_absolute_LogPath, in); + ftpUtil.saveFile(ftpUtil.getFtpRootPath()+analyses_absolute_LogPath, in); } catch (FileNotFoundException e) { throw new RuntimeException(e); } @@ -4305,7 +4305,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements try { FileUtil.writeString(rptContent, rptFile, "UTF-8"); FileInputStream in = new FileInputStream(rptFile); - ftpUtil.saveFile(analyses_absolute_ReportPath+".txt", in); + ftpUtil.saveFile(ftpUtil.getFtpRootPath()+analyses_absolute_ReportPath+".txt", in); } catch (FileNotFoundException e) { throw new RuntimeException(e); } finally { diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumFileServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumFileServiceImpl.java index 0d8b0123..9f2306e9 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumFileServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumFileServiceImpl.java @@ -53,31 +53,49 @@ public class SpectrumFileServiceImpl implements ISpectrumFileService { @Override public Result upload(MultipartFile file) { + //压缩包文件名称 String filename = file.getOriginalFilename(); + //判断是否是压缩包文件 boolean isZip = filename.endsWith(FileTypeEnum.zip.getType()); - if (!isZip) return Result.error(Prompt.FILE_TYPE_ERR); + //如果不是压缩包文件 返回错误提示信息 + if (!isZip) { + return Result.error(Prompt.FILE_TYPE_ERR); + } + //获取登陆用户名 LoginUser user = (LoginUser)SecurityUtils.getSubject().getPrincipal(); String username = user.getUsername(); - FTPClient ftpClient = null; +// FTPClient ftpClient = null; + //获取文件输出流 FileOutputStream fos = null; + //获取压缩包文件输入流 ZipInputStream zipInputStream = null; String slash = SymbolConstant.SINGLE_SLASH; //上传文件夹路径 - String filePath = spectrumPathProperties.getUploadPath() + slash + username; + String filePath = ftpUtil.getFtpRootPath() + slash + spectrumPathProperties.getUploadPath() + slash + username; //本地临时文件夹路径 String tempFilePath = System.getProperty("java.io.tmpdir") + username + slash; + //文件名称集合 List fileNames = new ArrayList<>(); + //文件集合 List fileList = new ArrayList<>(); + //正则表达式 String sampleRx = "[a-zA-Z]{3}[0-9]{2}_[0-9]{3}-[0-9]{8}_[0-9]{4}_(S|G|D|Q)_(FULL_|PREL_)\\d+\\.PHD"; Pattern regexPattern = Pattern.compile(sampleRx); String sampleRx1 = "[a-zA-Z]{3}[0-9]{2}_[0-9]{3}-[0-9]{8}_[0-9]{4}_(S|G|D|Q)_(FULL_|PREL_)\\d+\\.\\d+\\.PHD"; Pattern regexPattern1 = Pattern.compile(sampleRx1); try{ + //创建本地临时文件夹 File tempDir = new File(tempFilePath); - if (!tempDir.exists()) tempDir.mkdir(); + //判断本地临时文件夹是否存在 + if (!tempDir.exists()) { + tempDir.mkdir(); + } + //创建输入流 zipInputStream = new ZipInputStream(file.getInputStream()); ZipEntry entry; + //遍历获取压缩包内文件 while (ObjectUtil.isNotNull(entry = zipInputStream.getNextEntry())) { + //文件名称 String fileName = entry.getName(); fileNames.add(fileName); File oneFile = new File(tempFilePath + fileName); @@ -89,46 +107,61 @@ public class SpectrumFileServiceImpl implements ISpectrumFileService { } fileList.add(oneFile); } - if (CollUtil.isEmpty(fileList)) + //判断文件集合是否为空 + if (CollUtil.isEmpty(fileList)) { return Result.error(Prompt.FILE_IS_EMPTY); - ftpClient = ftpUtil.LoginFTP(); - if (ObjectUtil.isNull(ftpClient)) - return Result.error(Prompt.FTP_ERR); - // 如果指定目录不存在,逐级创建目录 - boolean created = FTPUtil.createDirs(ftpClient, filePath); - if (!created) return Result.error(Prompt.DIR_CREATE_FAIL + filePath); + } +// //登陆ftp +// ftpClient = ftpUtil.LoginFTP(); +// if (ObjectUtil.isNull(ftpClient)) { +// return Result.error(Prompt.FTP_ERR); +// } +// // 如果指定目录不存在,逐级创建目录 +// boolean created = FTPUtil.createDirs(ftpClient, filePath); +// if (!created) { +// return Result.error(Prompt.DIR_CREATE_FAIL + filePath); +// } // 上传所有文件 List failList = new ArrayList<>(); for (File oneFile : fileList) { String fileName = oneFile.getName(); // 判断能谱文件名称是否符合规则,不符合则进行重命名 if (!regexPattern.matcher(fileName).find() && !regexPattern1.matcher(fileName).find()) { + //分析文件 EnergySpectrumStruct struct = phdFileUtil.analyzeFileSourceData(oneFile); + //获取文件后缀 String suffix = nameStandUtil.GetSuffix(struct.data_type, struct.spectrum_quantity, String.valueOf(struct.acquisition_live_time)); + //获取文件名称 fileName = nameStandUtil.GetFileNameFromDateTime(struct.measurement_id, suffix); } String fullFilePath = filePath + slash + fileName; FileInputStream local = new FileInputStream(oneFile); - boolean success = ftpClient.storeFile(fileName, local); - if (!success) failList.add(fullFilePath); + boolean success = ftpUtil.saveFile(fullFilePath, local); + if (!success) { + failList.add(fullFilePath); + } } - if (CollUtil.isNotEmpty(failList)) + if (CollUtil.isNotEmpty(failList)) { return Result.error(Prompt.UPLOAD_ERR, failList); + } return Result.OK(Prompt.UPLOAD_SUCC); } catch (IOException e) { e.printStackTrace(); return Result.error(Prompt.UPLOAD_ERR); }finally { try { - if (ObjectUtil.isNotNull(zipInputStream)) + if (ObjectUtil.isNotNull(zipInputStream)) { zipInputStream.close(); - if (ObjectUtil.isNotNull(fos)) + } + if (ObjectUtil.isNotNull(fos)) { fos.close(); - if (ObjectUtil.isNotNull(ftpClient)) - if (ftpClient.isConnected()){ - ftpClient.logout(); - ftpClient.disconnect(); - } + } +// if (ObjectUtil.isNotNull(ftpClient)) { +// if (ftpClient.isConnected()){ +// ftpClient.logout(); +// ftpClient.disconnect(); +// } +// } } catch (IOException e) { e.printStackTrace(); } From fb8077531df4f3a88810fee0b070986f44e25b3c Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 14 Mar 2024 09:57:21 +0800 Subject: [PATCH 084/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E6=B5=8B=E8=AF=95=E6=96=B9=E6=B3=95=E5=88=A0?= =?UTF-8?q?=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/controller/GammaController.java | 6 - .../jeecg/modules/service/IGammaService.java | 2 - .../service/impl/GammaServiceImpl.java | 209 ------------------ 3 files changed, 217 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 2fd05653..0baccfa7 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 @@ -33,12 +33,6 @@ public class GammaController { gammaService.initValue(sampleId, dbName, analyst, fileName, request); } - - @GetMapping("testFun") - public Result testFun(String fileName,HttpServletRequest request){ - return gammaService.testFun(fileName, request); - } - @GetMapping("gammaByDB") @ApiOperation(value = "gamma页面loadFromDB加载数据", notes = "gamma页面loadFromDB加载数据") public Result gammaByDB(Integer sampleId, String dbName, String analyst, HttpServletRequest request){ 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 205d57ec..642e9145 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 @@ -17,8 +17,6 @@ public interface IGammaService{ void initValue(Integer sampleId, String dbName, String analyst, String fileName, HttpServletRequest request); - Result testFun(String fileName, HttpServletRequest request); - Result gammaByDB(String dbName, Integer sampleId, String analyst, HttpServletRequest request); Result gammaByFile(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 8671de66..54484465 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 @@ -164,215 +164,6 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } } - @Override - public Result testFun(String fileName, HttpServletRequest request) { - Result result = new Result(); - String userName = JwtUtil.getUserNameByToken(request); - Cache phdCache = localCache.getPHDCache(); - PHDFile phd = phdCache.getIfPresent(fileName + StringPool.DASH + userName); - phd.setUserId("1"); - phd.setXmlFilePath(parameterProperties.getFilePath()); - String systemType = fileName.substring(2, 3); - if (Objects.isNull(phd)) { - result.error500("Please select the parse file first!"); - return result; - } - Map nuclideLinesMap = (Map) redisUtil.get(userName+StringPool.DASH+phd.getHeader().getSystem_type()); - // 解析获取临时文件信息 - File tmpFile = gammaFileUtil.analyzeFile(ftpUtil.getFtpRootPath() + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName, fileName); - ObjectMapper mapper = new ObjectMapper(); - try { - String phdStr = mapper.writeValueAsString(phd); - String mapLines = mapper.writeValueAsString(nuclideLinesMap); - String strValue = CalValuesHandler.analyseSpectrum(phdStr, mapLines, tmpFile.getAbsolutePath(), new AnalysisProcess()); - Map parseMap = JSON.parseObject(strValue, Map.class); - for (Map.Entry entry : parseMap.entrySet()) { - if (entry.getKey().equalsIgnoreCase("bAnalyed")) { - boolean value = JSON.parseObject(JSON.toJSONString(entry.getValue()), Boolean.class); - phd.setBAnalyed(value); - } - if (entry.getKey().equalsIgnoreCase("mapEnerPara")) { - HashMap jsonMap = JSON.parseObject(JSON.toJSONString(entry.getValue()), HashMap.class); - Map value = new HashMap<>(); - for (Map.Entry objectEntry : jsonMap.entrySet()) { - String key = objectEntry.getKey(); - ParameterInfo entryValue = JSON.parseObject(JSON.toJSONString(objectEntry.getValue()), ParameterInfo.class); - value.put(key, entryValue); - } - phd.setMapEnerPara(value); - } - if (entry.getKey().equalsIgnoreCase("mapResoPara")) { - HashMap jsonMap = JSON.parseObject(JSON.toJSONString(entry.getValue()), HashMap.class); - Map value = new HashMap<>(); - for (Map.Entry objectEntry : jsonMap.entrySet()) { - String key = objectEntry.getKey(); - ParameterInfo entryValue = JSON.parseObject(JSON.toJSONString(objectEntry.getValue()), ParameterInfo.class); - value.put(key, entryValue); - } - phd.setMapResoPara(value); - } - if (entry.getKey().equalsIgnoreCase("mapEffiPara")) { - HashMap jsonMap = JSON.parseObject(JSON.toJSONString(entry.getValue()), HashMap.class); - Map value = new HashMap<>(); - for (Map.Entry objectEntry : jsonMap.entrySet()) { - String key = objectEntry.getKey(); - ParameterInfo entryValue = JSON.parseObject(JSON.toJSONString(objectEntry.getValue()), ParameterInfo.class); - value.put(key, entryValue); - } - phd.setMapEffiPara(value); - } - if (entry.getKey().equalsIgnoreCase("mapTotEPara")) { - HashMap jsonMap = JSON.parseObject(JSON.toJSONString(entry.getValue()), HashMap.class); - Map value = new HashMap<>(); - for (Map.Entry objectEntry : jsonMap.entrySet()) { - String key = objectEntry.getKey(); - ParameterInfo entryValue = JSON.parseObject(JSON.toJSONString(objectEntry.getValue()), ParameterInfo.class); - value.put(key, entryValue); - } - phd.setMapTotEPara(value); - } - if (entry.getKey().equalsIgnoreCase("para_stepRatio")) { - ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); - phd.setPara_stepRatio(value); - } - if (entry.getKey().equalsIgnoreCase("para_tail")) { - ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); - phd.setPara_tail(value); - } - if (entry.getKey().equalsIgnoreCase("para_tailAlpha")) { - ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); - phd.setPara_tailAlpha(value); - } - if (entry.getKey().equalsIgnoreCase("para_tailRight")) { - ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); - phd.setPara_tailRight(value); - } - if (entry.getKey().equalsIgnoreCase("para_tailRightAlpha")) { - ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); - phd.setPara_tailRightAlpha(value); - } - if (entry.getKey().equalsIgnoreCase("newEner")) { - String value = JSON.parseObject(JSON.toJSONString(entry.getValue()), String.class); - phd.setNewEner(value); - } - if (entry.getKey().equalsIgnoreCase("newReso")) { - String value = JSON.parseObject(JSON.toJSONString(entry.getValue()), String.class); - phd.setNewReso(value); - } - if (entry.getKey().equalsIgnoreCase("mapEnerKD")) { - HashMap jsonMap = JSON.parseObject(JSON.toJSONString(entry.getValue()), HashMap.class); - Map value = new HashMap<>(); - for (Map.Entry objectEntry : jsonMap.entrySet()) { - String key = objectEntry.getKey(); - GEnergyBlock entryValue = JSON.parseObject(JSON.toJSONString(objectEntry.getValue()), GEnergyBlock.class); - value.put(key, entryValue); - } - phd.setMapEnerKD(value); - } - if (entry.getKey().equalsIgnoreCase("mapResoKD")) { - HashMap jsonMap = JSON.parseObject(JSON.toJSONString(entry.getValue()), HashMap.class); - Map value = new HashMap<>(); - for (Map.Entry objectEntry : jsonMap.entrySet()) { - String key = objectEntry.getKey(); - GResolutionBlock entryValue = JSON.parseObject(JSON.toJSONString(objectEntry.getValue()), GResolutionBlock.class); - value.put(key, entryValue); - } - phd.setMapResoKD(value); - } - if (entry.getKey().equalsIgnoreCase("vEnergy")) { - List value = JSON.parseArray(JSON.toJSONString(entry.getValue()), Double.class); - phd.setVEnergy(value); - } - if (entry.getKey().equalsIgnoreCase("vBase")) { - List value = JSON.parseArray(JSON.toJSONString(entry.getValue()), Double.class); - phd.setVBase(value); - } - if (entry.getKey().equalsIgnoreCase("vLc")) { - List value = JSON.parseArray(JSON.toJSONString(entry.getValue()), Double.class); - phd.setVLc(value); - } - if (entry.getKey().equalsIgnoreCase("vScac")) { - List value = JSON.parseArray(JSON.toJSONString(entry.getValue()), Double.class); - phd.setVScac(value); - } - if (entry.getKey().equalsIgnoreCase("vPeak")) { - List value = JSON.parseArray(JSON.toJSONString(entry.getValue()), PeakInfo.class); - phd.setVPeak(value); - } - if (entry.getKey().equalsIgnoreCase("baseCtrls")) { - BaseControls value = JSON.parseObject(JSON.toJSONString(entry.getValue()), BaseControls.class); - phd.setBaseCtrls(value); - } - if (entry.getKey().equalsIgnoreCase("usedEner")) { - String value = JSON.parseObject(JSON.toJSONString(entry.getValue()), String.class); - phd.setUsedEner(value); - } - if (entry.getKey().equalsIgnoreCase("usedEnerKD")) { - GEnergyBlock value = JSON.parseObject(JSON.toJSONString(entry.getValue()), GEnergyBlock.class); - phd.setUsedEnerKD(value); - } - if (entry.getKey().equalsIgnoreCase("usedEnerPara")) { - ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); - phd.setUsedEnerPara(value); - } - if (entry.getKey().equalsIgnoreCase("usedReso")) { - String value = JSON.parseObject(JSON.toJSONString(entry.getValue()), String.class); - phd.setUsedReso(value); - } - if (entry.getKey().equalsIgnoreCase("usedResoKD")) { - GResolutionBlock value = JSON.parseObject(JSON.toJSONString(entry.getValue()), GResolutionBlock.class); - phd.setUsedResoKD(value); - } - if (entry.getKey().equalsIgnoreCase("usedResoPara")) { - ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); - phd.setUsedResoPara(value); - } - if (entry.getKey().equalsIgnoreCase("usedEffi")) { - String value = JSON.parseObject(JSON.toJSONString(entry.getValue()), String.class); - phd.setUsedEffi(value); - } - if (entry.getKey().equalsIgnoreCase("usedEffiKD")) { - GEfficiencyBlock value = JSON.parseObject(JSON.toJSONString(entry.getValue()), GEfficiencyBlock.class); - phd.setUsedEffiKD(value); - } - if (entry.getKey().equalsIgnoreCase("usedEffiPara")) { - ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); - phd.setUsedEffiPara(value); - } - if (entry.getKey().equalsIgnoreCase("usedTotE")) { - String value = JSON.parseObject(JSON.toJSONString(entry.getValue()), String.class); - phd.setUsedTotE(value); - } - if (entry.getKey().equalsIgnoreCase("usedTotEKD")) { - TotaleffBlock value = JSON.parseObject(JSON.toJSONString(entry.getValue()), TotaleffBlock.class); - phd.setUsedTotEKD(value); - } - if (entry.getKey().equalsIgnoreCase("usedTotEPara")) { - ParameterInfo value = JSON.parseObject(JSON.toJSONString(entry.getValue()), ParameterInfo.class); - phd.setUsedTotEPara(value); - } - } - BeanUtils.copyProperties(phd.getSetting(), phd.getUsedSetting()); - - for (PeakInfo info:phd.getVPeak()) { - if (Objects.isNull(info.recoilBetaChan)) { - info.recoilBetaChan = "nan"; - } - if (Objects.isNull(info.recoilDeltaChan)) { - info.recoilDeltaChan = "nan"; - } - } - // 重新分析各峰值对应的核素信息 - gammaFileUtil.NuclidesIdent(phd, nuclideLinesMap); - gammaFileUtil.RunQC(phd); - result.setResult(phd); - } catch (JsonProcessingException e) { - throw new RuntimeException(e); - } - result.setSuccess(true); - return result; - } - @Override public Result gammaByDB(String dbName, Integer sampleId, String analyst, HttpServletRequest request) { Result result = new Result(); From 17c487ca327860407d43625e8b16996fb8ed873f Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 15 Mar 2024 10:24:51 +0800 Subject: [PATCH 085/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E5=AD=98=E5=82=A8=E6=96=B9=E6=B3=95=EF=BC=8C?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E6=95=B0=E6=8D=AE=E5=88=B0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E6=96=87=E4=BB=B6=E5=B7=B2=E7=BB=8F=E5=AD=98=E5=9C=A8?= =?UTF-8?q?=E7=9A=84=E6=83=85=E5=86=B5=E4=B8=8B=EF=BC=8C=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=8F=90=E4=BA=A4=E5=AF=BC=E8=87=B4=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=A7=E5=B0=8F=E5=8F=98=E6=88=900=E7=9A=84?= =?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 --- .../org/jeecg/common/util/GammaFileUtil.java | 6 ++- .../impl/SpectrumAnalysisServiceImpl.java | 40 +++++++++++++------ 2 files changed, 32 insertions(+), 14 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 e97794c3..0d77da9e 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 @@ -3230,8 +3230,10 @@ public class GammaFileUtil extends AbstractLogOrReport { File sampleTmp = null; try { sampleTmp = new File(fileAnlyse.getTmpFilePath()); - if (Objects.nonNull(sampleTmp)) { - bRet = ftpUtil.saveFile(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + middleData.analyses_save_filePath, new FileInputStream(sampleTmp)); + //sample文件的存储路径 + String saveSamplePath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + middleData.analyses_save_filePath; + if (Objects.nonNull(sampleTmp) && !saveSamplePath.equals(fileAnlyse.getTmpFilePath())) { + bRet = ftpUtil.saveFile(saveSamplePath, new FileInputStream(sampleTmp)); } } catch (FileNotFoundException e) { throw new RuntimeException(e); 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 c2d98c9a..692c512a 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 @@ -4260,21 +4260,37 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } //上传本次文件到ftp人工交互存储路径下 try { - if (StringUtils.isNotBlank(betaDataFile.getSampleTmpPath())) { - File sampleTmp = new File(betaDataFile.getSampleTmpPath()); - ftpUtil.saveFile(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + sampleFilePathName, new FileInputStream(sampleTmp)); + { + //sample文件的saveFile存储路径 + String saveSamplePath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + sampleFilePathName; + if (StringUtils.isNotBlank(betaDataFile.getSampleTmpPath()) && !saveSamplePath.equals(betaDataFile.getSampleTmpPath())) { + File sampleTmp = new File(betaDataFile.getSampleTmpPath()); + ftpUtil.saveFile(saveSamplePath, new FileInputStream(sampleTmp)); + } } - if (StringUtils.isNotBlank(betaDataFile.getGasTmpPath())) { - File gasTmp = new File(betaDataFile.getGasTmpPath()); - ftpUtil.saveFile(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + gasFilePathName, new FileInputStream(gasTmp)); + { + //gas文件的saveFile存储路径 + String saveGasPath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + gasFilePathName; + if (StringUtils.isNotBlank(betaDataFile.getGasTmpPath()) && !saveGasPath.equals(betaDataFile.getGasTmpPath())) { + File gasTmp = new File(betaDataFile.getGasTmpPath()); + ftpUtil.saveFile(saveGasPath, new FileInputStream(gasTmp)); + } } - if (StringUtils.isNotBlank(betaDataFile.getDetTmpPath())) { - File detTmp = new File(betaDataFile.getDetTmpPath()); - ftpUtil.saveFile(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + detFilePathName, new FileInputStream(detTmp)); + { + //det文件的saveFile存储路径 + String saveDetPath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + detFilePathName; + if (StringUtils.isNotBlank(betaDataFile.getDetTmpPath()) && !saveDetPath.equals(betaDataFile.getDetTmpPath())) { + File detTmp = new File(betaDataFile.getDetTmpPath()); + ftpUtil.saveFile(saveDetPath, new FileInputStream(detTmp)); + } } - if (StringUtils.isNotBlank(betaDataFile.getQcTmpPath())) { - File qcTmp = new File(betaDataFile.getQcTmpPath()); - ftpUtil.saveFile(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + qcFilePathName, new FileInputStream(qcTmp)); + { + //qc文件的saveFile存储路径 + String saveQcPath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + qcFilePathName; + if (StringUtils.isNotBlank(betaDataFile.getQcTmpPath()) && !saveQcPath.equals(betaDataFile.getQcTmpPath())) { + File qcTmp = new File(betaDataFile.getQcTmpPath()); + ftpUtil.saveFile(saveQcPath, new FileInputStream(qcTmp)); + } } //分析成功后存储日志文件和报告文件 { From 70f3d172b6cd4f1127b7cf025a6f4f830e769806 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 15 Mar 2024 10:27:53 +0800 Subject: [PATCH 086/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E5=AD=98=E5=82=A8=E6=96=B9=E6=B3=95=EF=BC=8C?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E6=95=B0=E6=8D=AE=E5=88=B0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E6=96=87=E4=BB=B6=E5=B7=B2=E7=BB=8F=E5=AD=98=E5=9C=A8?= =?UTF-8?q?=E7=9A=84=E6=83=85=E5=86=B5=E4=B8=8B=EF=BC=8C=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=8F=90=E4=BA=A4=E5=AF=BC=E8=87=B4=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A4=A7=E5=B0=8F=E5=8F=98=E6=88=900=E7=9A=84?= =?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 --- .../modules/service/impl/SpectrumAnalysisServiceImpl.java | 8 ++++---- 1 file changed, 4 insertions(+), 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 692c512a..d35c6227 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 @@ -4260,7 +4260,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } //上传本次文件到ftp人工交互存储路径下 try { - { + if (StringUtils.isNotBlank(sampleFilePathName)) { //sample文件的saveFile存储路径 String saveSamplePath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + sampleFilePathName; if (StringUtils.isNotBlank(betaDataFile.getSampleTmpPath()) && !saveSamplePath.equals(betaDataFile.getSampleTmpPath())) { @@ -4268,7 +4268,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements ftpUtil.saveFile(saveSamplePath, new FileInputStream(sampleTmp)); } } - { + if (StringUtils.isNotBlank(gasFilePathName)) { //gas文件的saveFile存储路径 String saveGasPath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + gasFilePathName; if (StringUtils.isNotBlank(betaDataFile.getGasTmpPath()) && !saveGasPath.equals(betaDataFile.getGasTmpPath())) { @@ -4276,7 +4276,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements ftpUtil.saveFile(saveGasPath, new FileInputStream(gasTmp)); } } - { + if (StringUtils.isNotBlank(detFilePathName)) { //det文件的saveFile存储路径 String saveDetPath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + detFilePathName; if (StringUtils.isNotBlank(betaDataFile.getDetTmpPath()) && !saveDetPath.equals(betaDataFile.getDetTmpPath())) { @@ -4284,7 +4284,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements ftpUtil.saveFile(saveDetPath, new FileInputStream(detTmp)); } } - { + if (StringUtils.isNotBlank(qcFilePathName)) { //qc文件的saveFile存储路径 String saveQcPath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + qcFilePathName; if (StringUtils.isNotBlank(betaDataFile.getQcTmpPath()) && !saveQcPath.equals(betaDataFile.getQcTmpPath())) { From 14084248932ce6f655383e0eba698ec7b2cfd85f Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 15 Mar 2024 10:57:57 +0800 Subject: [PATCH 087/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97Beta=E5=88=86=E6=9E=90=E7=AE=97=E6=B3=95?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=86=85=E5=AE=B9=E5=A2=9E=E5=8A=A0message?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/common/util/PHDFileUtil.java | 2 ++ .../impl/SpectrumAnalysisServiceImpl.java | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) 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 2b19508d..4f7d35cb 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 @@ -1002,6 +1002,7 @@ public class PHDFileUtil extends AbstractLogOrReport { } map.put("DetBoundary", boundaryList); } + map.put("message", analyseResult.error_log); bRet = false; return bRet; } else { @@ -1088,6 +1089,7 @@ public class PHDFileUtil extends AbstractLogOrReport { } map.put("DetBoundary", boundaryList); } + map.put("message", "analyse Success."); return bRet; } } 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 d35c6227..c32d3aa3 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 @@ -3811,7 +3811,22 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements map.put("savedAnalysisResult", true); } } else { - map.clear(); + List sampleBoundary = (List) map.get("SampleBoundary"); + if(CollectionUtils.isNotEmpty(sampleBoundary)) { + betaDataFile.setSampleBoundary(sampleBoundary); + } + List gasBoundary = (List) map.get("GasBoundary"); + if(CollectionUtils.isNotEmpty(gasBoundary)) { + betaDataFile.setGasBoundary(gasBoundary); + } + List detBoundary = (List) map.get("DetBoundary"); + if(CollectionUtils.isNotEmpty(detBoundary)) { + betaDataFile.setDetBoundary(detBoundary); + } + List qcBoundary = (List) map.get("QCBoundary"); + if(CollectionUtils.isNotEmpty(qcBoundary)) { + betaDataFile.setQcBoundary(qcBoundary); + } map.put("XeData", Collections.EMPTY_LIST); } } catch (Exception e) { From 29821e708d14ef94d624d11ee272b8832c398fc7 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 15 Mar 2024 11:12:57 +0800 Subject: [PATCH 088/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E4=BF=9D=E5=AD=98=E6=96=87=E4=BB=B6=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=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/FTPUtil.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java index a4f35ece..c5c85095 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java @@ -288,7 +288,7 @@ public class FTPUtil { //声明目标文件 File targetFile = new File(filePath); //创建输出流 - BufferedOutputStream outputStream = null; + FileOutputStream outputStream = null; try { //获取父级路径 File directory = targetFile.getParentFile(); @@ -297,7 +297,7 @@ public class FTPUtil { directory.mkdirs(); } // 创建输出流对象并写入数据到文件 - outputStream = new BufferedOutputStream(new FileOutputStream(targetFile)); + outputStream = new FileOutputStream(targetFile); byte[] buffer = new byte[1024]; int length; while ((length = inputStream.read(buffer)) > 0) { From 8d7bee473509c792e15bf6c560099475d7c45441 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 15 Mar 2024 11:20:21 +0800 Subject: [PATCH 089/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E4=BF=9D=E5=AD=98=E6=96=87=E4=BB=B6=E4=BB=A3?= =?UTF-8?q?=E7=A0=81,=E6=96=87=E4=BB=B6=E8=B7=AF=E5=BE=84\=E6=94=B9?= =?UTF-8?q?=E4=B8=BA/=E5=8C=B9=E9=85=8D=EF=BC=8C=E9=81=BF=E5=85=8D?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E8=A2=AB=E8=A6=86=E7=9B=96=E4=B8=BA0KB?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/jeecg/common/util/GammaFileUtil.java | 2 +- .../modules/service/impl/SpectrumAnalysisServiceImpl.java | 8 ++++---- 2 files changed, 5 insertions(+), 5 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 0d77da9e..97b7889c 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 @@ -3232,7 +3232,7 @@ public class GammaFileUtil extends AbstractLogOrReport { sampleTmp = new File(fileAnlyse.getTmpFilePath()); //sample文件的存储路径 String saveSamplePath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + middleData.analyses_save_filePath; - if (Objects.nonNull(sampleTmp) && !saveSamplePath.equals(fileAnlyse.getTmpFilePath())) { + if (Objects.nonNull(sampleTmp) && !saveSamplePath.equals(fileAnlyse.getTmpFilePath().replace(StringPool.BACK_SLASH, StringPool.SLASH))) { bRet = ftpUtil.saveFile(saveSamplePath, new FileInputStream(sampleTmp)); } } catch (FileNotFoundException e) { 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 c32d3aa3..b34dfe34 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 @@ -4278,7 +4278,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements if (StringUtils.isNotBlank(sampleFilePathName)) { //sample文件的saveFile存储路径 String saveSamplePath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + sampleFilePathName; - if (StringUtils.isNotBlank(betaDataFile.getSampleTmpPath()) && !saveSamplePath.equals(betaDataFile.getSampleTmpPath())) { + if (StringUtils.isNotBlank(betaDataFile.getSampleTmpPath()) && !saveSamplePath.equals(betaDataFile.getSampleTmpPath().replace(StringPool.BACK_SLASH, StringPool.SLASH))) { File sampleTmp = new File(betaDataFile.getSampleTmpPath()); ftpUtil.saveFile(saveSamplePath, new FileInputStream(sampleTmp)); } @@ -4286,7 +4286,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements if (StringUtils.isNotBlank(gasFilePathName)) { //gas文件的saveFile存储路径 String saveGasPath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + gasFilePathName; - if (StringUtils.isNotBlank(betaDataFile.getGasTmpPath()) && !saveGasPath.equals(betaDataFile.getGasTmpPath())) { + if (StringUtils.isNotBlank(betaDataFile.getGasTmpPath()) && !saveGasPath.equals(betaDataFile.getGasTmpPath().replace(StringPool.BACK_SLASH, StringPool.SLASH))) { File gasTmp = new File(betaDataFile.getGasTmpPath()); ftpUtil.saveFile(saveGasPath, new FileInputStream(gasTmp)); } @@ -4294,7 +4294,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements if (StringUtils.isNotBlank(detFilePathName)) { //det文件的saveFile存储路径 String saveDetPath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + detFilePathName; - if (StringUtils.isNotBlank(betaDataFile.getDetTmpPath()) && !saveDetPath.equals(betaDataFile.getDetTmpPath())) { + if (StringUtils.isNotBlank(betaDataFile.getDetTmpPath()) && !saveDetPath.equals(betaDataFile.getDetTmpPath().replace(StringPool.BACK_SLASH, StringPool.SLASH))) { File detTmp = new File(betaDataFile.getDetTmpPath()); ftpUtil.saveFile(saveDetPath, new FileInputStream(detTmp)); } @@ -4302,7 +4302,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements if (StringUtils.isNotBlank(qcFilePathName)) { //qc文件的saveFile存储路径 String saveQcPath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + qcFilePathName; - if (StringUtils.isNotBlank(betaDataFile.getQcTmpPath()) && !saveQcPath.equals(betaDataFile.getQcTmpPath())) { + if (StringUtils.isNotBlank(betaDataFile.getQcTmpPath()) && !saveQcPath.equals(betaDataFile.getQcTmpPath().replace(StringPool.BACK_SLASH, StringPool.SLASH))) { File qcTmp = new File(betaDataFile.getQcTmpPath()); ftpUtil.saveFile(saveQcPath, new FileInputStream(qcTmp)); } From f8da6c3aaea3bbb864c11c05fa3f68582275afa5 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 15 Mar 2024 11:34:57 +0800 Subject: [PATCH 090/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97Beta=E9=83=A8=E5=88=86=E5=88=86=E6=9E=90?= =?UTF-8?q?=E7=AE=97=E6=B3=95=EF=BC=8C=E5=A4=B1=E8=B4=A5=E7=9A=84=E6=83=85?= =?UTF-8?q?=E5=86=B5=E4=B8=8BBProcessd=E5=8F=82=E6=95=B0=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=B8=BAfalse=E5=B9=B6=E4=BC=A0=E9=80=92=E7=BB=99=E5=89=8D?= =?UTF-8?q?=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SpectrumAnalysisServiceImpl.java | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 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 b34dfe34..f64d9503 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 @@ -3248,17 +3248,11 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements return result; } map = BetaGammaAnalyzeCurrentProcess(analyseData, betaDataFile); - map.put("bProcessed", true); - map.put("savedAnalysisResult", true); result.setSuccess(true); result.setResult(map); } else if ("AllSpectrum".equals(analyseData.getApplyType())) { //获取当前选中的文件名称 map = BetaGammaAnalyzeAllProcess(analyseData, userName, currentFileName); - if (CollectionUtils.isNotEmpty(map)) { - map.put("bProcessed", true); - map.put("savedAnalysisResult", true); - } result.setSuccess(true); result.setResult(map); } @@ -3450,9 +3444,9 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } betaDataFile.setXeResultsSpectrumList(xeResultsSpectrumList); betaDataFile.setBProcessed(true); - betaDataFile.setSaveAnalysisResult(true); betaDataFile.setBgPara(spectrum_group.BgCalPara); } + xeMap.put("bProcessed", true); } else { List sampleBoundary = (List) xeMap.get("SampleBoundary"); if(CollectionUtils.isNotEmpty(sampleBoundary)) { @@ -3470,7 +3464,9 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements if(CollectionUtils.isNotEmpty(qcBoundary)) { betaDataFile.setQcBoundary(qcBoundary); } + betaDataFile.setBProcessed(false); xeMap.put("XeData", Collections.EMPTY_LIST); + xeMap.put("bProcessed", false); } } } catch (Exception e) { @@ -3681,9 +3677,9 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } sampleBetaData.setXeResultsSpectrumList(xeResultsSpectrumList); sampleBetaData.setBProcessed(true); - sampleBetaData.setSaveAnalysisResult(true); sampleBetaData.setBgPara(spectrum_group.BgCalPara); } + xeMap.put("bProcessed", true); analyseResultMap.put(sampleFileName, xeMap); } else { List sampleBoundary = (List) xeMap.get("SampleBoundary"); @@ -3702,7 +3698,9 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements if(CollectionUtils.isNotEmpty(qcBoundary)) { sampleBetaData.setQcBoundary(qcBoundary); } + sampleBetaData.setBProcessed(false); xeMap.put("XeData", Collections.EMPTY_LIST); + xeMap.put("bProcessed", false); analyseResultMap.put(sampleFileName, xeMap); } } @@ -3806,9 +3804,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements betaDataFile.setXeResultsSpectrumList(xeDataList); } betaDataFile.setBProcessed(true); - betaDataFile.setSaveAnalysisResult(true); map.put("bProcessed", true); - map.put("savedAnalysisResult", true); } } else { List sampleBoundary = (List) map.get("SampleBoundary"); @@ -3828,6 +3824,8 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements betaDataFile.setQcBoundary(qcBoundary); } map.put("XeData", Collections.EMPTY_LIST); + betaDataFile.setBProcessed(false); + map.put("bProcessed", false); } } catch (Exception e) { e.printStackTrace(); @@ -3927,9 +3925,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements betaDataFile.setXeResultsSpectrumList(xeDataList); } betaDataFile.setBProcessed(true); - betaDataFile.setSaveAnalysisResult(true); map.put("bProcessed", true); - map.put("savedAnalysisResult", true); mapList.put(sampleFileName, map); } else { List sampleBoundary = (List) map.get("SampleBoundary"); @@ -3949,6 +3945,8 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements betaDataFile.setQcBoundary(qcBoundary); } map.put("XeData", Collections.EMPTY_LIST); + betaDataFile.setBProcessed(false); + map.put("bProcessed", false); mapList.put(sampleFileName, map); } } From 953dd61988a289107ec69d342b0b1494e2493b86 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 15 Mar 2024 11:47:50 +0800 Subject: [PATCH 091/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97Beta=E9=83=A8=E5=88=86=E5=88=86=E6=9E=90?= =?UTF-8?q?=E7=AE=97=E6=B3=95=EF=BC=8C=E5=A4=B1=E8=B4=A5=E7=9A=84=E6=83=85?= =?UTF-8?q?=E5=86=B5=E4=B8=8BBProcessd,savedAnalysisResult=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E4=BF=AE=E6=94=B9=E4=B8=BAfalse=E5=B9=B6=E4=BC=A0?= =?UTF-8?q?=E9=80=92=E7=BB=99=E5=89=8D=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SpectrumAnalysisServiceImpl.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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 f64d9503..e557f635 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 @@ -3444,9 +3444,11 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } betaDataFile.setXeResultsSpectrumList(xeResultsSpectrumList); betaDataFile.setBProcessed(true); + betaDataFile.setSaveAnalysisResult(true); betaDataFile.setBgPara(spectrum_group.BgCalPara); } xeMap.put("bProcessed", true); + xeMap.put("savedAnalysisResult", true); } else { List sampleBoundary = (List) xeMap.get("SampleBoundary"); if(CollectionUtils.isNotEmpty(sampleBoundary)) { @@ -3465,8 +3467,10 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements betaDataFile.setQcBoundary(qcBoundary); } betaDataFile.setBProcessed(false); + betaDataFile.setSaveAnalysisResult(false); xeMap.put("XeData", Collections.EMPTY_LIST); xeMap.put("bProcessed", false); + xeMap.put("savedAnalysisResult", false); } } } catch (Exception e) { @@ -3677,9 +3681,11 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } sampleBetaData.setXeResultsSpectrumList(xeResultsSpectrumList); sampleBetaData.setBProcessed(true); + sampleBetaData.setSaveAnalysisResult(true); sampleBetaData.setBgPara(spectrum_group.BgCalPara); } xeMap.put("bProcessed", true); + xeMap.put("savedAnalysisResult", true); analyseResultMap.put(sampleFileName, xeMap); } else { List sampleBoundary = (List) xeMap.get("SampleBoundary"); @@ -3699,8 +3705,10 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements sampleBetaData.setQcBoundary(qcBoundary); } sampleBetaData.setBProcessed(false); + sampleBetaData.setSaveAnalysisResult(false); xeMap.put("XeData", Collections.EMPTY_LIST); xeMap.put("bProcessed", false); + xeMap.put("savedAnalysisResult", false); analyseResultMap.put(sampleFileName, xeMap); } } @@ -3804,7 +3812,9 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements betaDataFile.setXeResultsSpectrumList(xeDataList); } betaDataFile.setBProcessed(true); + betaDataFile.setSaveAnalysisResult(true); map.put("bProcessed", true); + map.put("savedAnalysisResult", true); } } else { List sampleBoundary = (List) map.get("SampleBoundary"); @@ -3825,7 +3835,9 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } map.put("XeData", Collections.EMPTY_LIST); betaDataFile.setBProcessed(false); + betaDataFile.setSaveAnalysisResult(false); map.put("bProcessed", false); + map.put("savedAnalysisResult", false); } } catch (Exception e) { e.printStackTrace(); @@ -3925,7 +3937,9 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements betaDataFile.setXeResultsSpectrumList(xeDataList); } betaDataFile.setBProcessed(true); + betaDataFile.setSaveAnalysisResult(true); map.put("bProcessed", true); + map.put("savedAnalysisResult", true); mapList.put(sampleFileName, map); } else { List sampleBoundary = (List) map.get("SampleBoundary"); @@ -3946,7 +3960,9 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } map.put("XeData", Collections.EMPTY_LIST); betaDataFile.setBProcessed(false); + betaDataFile.setSaveAnalysisResult(false); map.put("bProcessed", false); + map.put("savedAnalysisResult", false); mapList.put(sampleFileName, map); } } From 0654872c3b18487b127fe7ca9f23847dd5c26f84 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 15 Mar 2024 15:54:47 +0800 Subject: [PATCH 092/133] =?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=A8=A1=E5=9D=97Beta=E5=9C=A8=E5=88=86?= =?UTF-8?q?=E6=9E=90=E5=A4=B1=E8=B4=A5=E7=9A=84=E6=83=85=E5=86=B5=E4=B8=8B?= =?UTF-8?q?=E4=B8=8D=E8=BF=9B=E8=A1=8C=E5=AD=98=E5=82=A8=EF=BC=8C=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E6=AD=A3=E7=A1=AE=E9=9C=80=E8=A6=81=E5=88=86=E6=9E=90?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/service/impl/SpectrumAnalysisServiceImpl.java | 5 +++++ 1 file changed, 5 insertions(+) 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 e557f635..0702af0e 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 @@ -4066,6 +4066,11 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements //从本地缓存获取beta gamma的数组 Cache cache = betaCache.getBetaCache(); BetaDataFile betaDataFile = cache.getIfPresent(anlyseResultIn.getSampleFileName() + "-" + userName); + //判断保存分析结果标识 + if (!betaDataFile.isSaveAnalysisResult()) { + result.error500("Please first Analyse File!"); + return result; + } List betaList = new LinkedList<>(); List betaFittingPara = new LinkedList<>(); List gammaList = new LinkedList<>(); From 765ea99ad84fcd9afbb6175cc977d567af2d945f Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 15 Mar 2024 16:00:36 +0800 Subject: [PATCH 093/133] =?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=A8=A1=E5=9D=97Beta=E5=9C=A8=E5=88=86?= =?UTF-8?q?=E6=9E=90=E5=A4=B1=E8=B4=A5=E7=9A=84=E6=83=85=E5=86=B5=E4=B8=8B?= =?UTF-8?q?=E4=B8=8D=E8=BF=9B=E8=A1=8C=E5=AD=98=E5=82=A8=EF=BC=8C=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E6=AD=A3=E7=A1=AE=E9=9C=80=E8=A6=81=E5=88=86=E6=9E=90?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 0702af0e..4ed12286 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 @@ -4067,7 +4067,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements Cache cache = betaCache.getBetaCache(); BetaDataFile betaDataFile = cache.getIfPresent(anlyseResultIn.getSampleFileName() + "-" + userName); //判断保存分析结果标识 - if (!betaDataFile.isSaveAnalysisResult()) { + if (Objects.nonNull(betaDataFile) && !betaDataFile.isSaveAnalysisResult()) { result.error500("Please first Analyse File!"); return result; } From 0c5eadbb2c807c33604975d9eb450acdbe9ec838 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 15 Mar 2024 16:51:49 +0800 Subject: [PATCH 094/133] =?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=A8=A1=E5=9D=97=E4=BF=9D=E5=AD=98=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=88=B0=E6=95=B0=E6=8D=AE=E5=BA=93=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=96=87=E4=BB=B6=E6=97=B6=EF=BC=8C=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=96=87=E4=BB=B6=E5=90=8D=E7=A7=B0=E9=94=99=E8=AF=AF?= =?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 --- .../jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 4ed12286..4929c8b4 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 @@ -4328,7 +4328,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } //分析成功后存储日志文件和报告文件 { - String logFileName = analyses_absolute_LogPath.substring(analyses_absolute_LogPath.lastIndexOf(StringPool.SLASH)+1); + String logFileName = betaDataFile.getSampleFileName().replace("PHD", "log"); //获取日志的文件存放路径 String logFilePath = parameterProperties.getLogFilePath() + File.separator + DateUtils.formatDate(new Date(), "yyyy-MM-dd"); //判断文件路径是否存在 From 924cddb1f2d4c700d0bb64f12e174b47e029775b Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Tue, 19 Mar 2024 17:00:16 +0800 Subject: [PATCH 095/133] =?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=A8=A1=E5=9D=97Beta=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96=EF=BC=8C?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E5=89=8D=E7=9A=84=E5=88=86=E6=9E=90=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E7=A7=BB=E9=99=A4=EF=BC=8C=E6=A0=B9=E6=8D=AE=E5=88=86?= =?UTF-8?q?=E6=9E=90=E7=BB=93=E6=9E=9C=E6=95=B0=E6=8D=AE=E5=AD=98=E5=82=A8?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GardsCalibrationSpectrumMapper.java | 3 + .../xml/GardsCalibrationSpectrumMapper.xml | 28 + ...IGardsCalibrationPairsSpectrumService.java | 3 +- .../IGardsCalibrationSpectrumService.java | 3 +- .../IGardsROIChannelsSpectrumService.java | 3 +- .../IGardsROIResultsSpectrumService.java | 3 +- .../IGardsXeResultsSpectrumService.java | 3 +- ...dsCalibrationPairsSpectrumServiceImpl.java | 91 +- .../GardsCalibrationSpectrumServiceImpl.java | 121 ++- .../GardsROIChannelsSpectrumServiceImpl.java | 50 +- .../GardsROIResultsSpectrumServiceImpl.java | 26 +- .../GardsXeResultsSpectrumServiceImpl.java | 8 +- .../impl/SpectrumAnalysisServiceImpl.java | 987 +++++------------- 13 files changed, 584 insertions(+), 745 deletions(-) diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/GardsCalibrationSpectrumMapper.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/GardsCalibrationSpectrumMapper.java index 3f24e6f8..a411196d 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/GardsCalibrationSpectrumMapper.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/GardsCalibrationSpectrumMapper.java @@ -7,6 +7,9 @@ import org.jeecg.modules.base.entity.rnman.GardsCalibration; public interface GardsCalibrationSpectrumMapper extends BaseMapper { + @InterceptorIgnore(tenantLine = "true") + void insertCalibration(@Param(value = "calibration") GardsCalibration calibration); + @InterceptorIgnore(tenantLine = "true") void insertCalibrationGamma(@Param(value = "calibration") GardsCalibration calibration); diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/GardsCalibrationSpectrumMapper.xml b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/GardsCalibrationSpectrumMapper.xml index 5f18eb40..58da4e85 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/GardsCalibrationSpectrumMapper.xml +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/GardsCalibrationSpectrumMapper.xml @@ -2,6 +2,34 @@ + + INSERT INTO + RNMAN.GARDS_CALIBRATION( + SAMPLE_ID, + IDANALYSIS, + SAMPLE_TYPE, + CALTYPE, + FUNCTION, + FUNCTIONDEF, + STARTOFRANGE, + ENDOFRANGE, + COEFF1, + COEFF2, + COEFF3) + VALUES(#{calibration.sampleId}, + #{calibration.idAnalysis}, + #{calibration.sampleType}, + #{calibration.calType}, + #{calibration.function}, + #{calibration.functionDef}, + #{calibration.startOfRange}, + #{calibration.endOfRange}, + #{calibration.coeff1}, + #{calibration.coeff2}, + #{calibration.coeff3}) + + + INSERT INTO RNMAN.GARDS_CALIBRATION( diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsCalibrationPairsSpectrumService.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsCalibrationPairsSpectrumService.java index 508e5d9b..69a96631 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsCalibrationPairsSpectrumService.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsCalibrationPairsSpectrumService.java @@ -2,6 +2,7 @@ package org.jeecg.modules.service; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.base.entity.rnman.GardsCalibrationPairs; +import org.jeecg.modules.entity.vo.BgDataAnlyseResultIn; import org.jeecg.modules.entity.vo.GStoreMiddleProcessData; import org.jeecg.modules.entity.vo.PHDFile; @@ -9,7 +10,7 @@ import java.util.List; public interface IGardsCalibrationPairsSpectrumService extends IService { - int saveGardsCalibrationPairs(List calibrationPairsList); + int saveGardsCalibrationPairs(BgDataAnlyseResultIn anlyseResultIn, Integer sampleId, Integer gasId, Integer detId, Integer idAnalysis); int saveGardsCalibrationPairsGamma(GStoreMiddleProcessData middleData, Integer sampleId, String idAnalysis); diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsCalibrationSpectrumService.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsCalibrationSpectrumService.java index c76067b0..f4e2a2f7 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsCalibrationSpectrumService.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsCalibrationSpectrumService.java @@ -2,13 +2,14 @@ package org.jeecg.modules.service; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.base.entity.rnman.GardsCalibration; +import org.jeecg.modules.entity.vo.BgDataAnlyseResultIn; import org.jeecg.modules.entity.vo.GStoreMiddleProcessData; import java.util.List; public interface IGardsCalibrationSpectrumService extends IService { - int saveGardsCalibration(List calibrationPairsList); + int saveGardsCalibration(BgDataAnlyseResultIn anlyseResultIn, Integer sampleId, Integer gasId, Integer detId, Integer idAnalysis); int saveCalibrationGamma(GStoreMiddleProcessData middleData, Integer sampleId, String idAnalysis); diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsROIChannelsSpectrumService.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsROIChannelsSpectrumService.java index 90b781d4..a94e6f63 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsROIChannelsSpectrumService.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsROIChannelsSpectrumService.java @@ -2,11 +2,12 @@ package org.jeecg.modules.service; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.base.entity.rnman.GardsRoiChannels; +import org.jeecg.modules.entity.vo.BgDataAnlyseResultIn; import java.util.List; public interface IGardsROIChannelsSpectrumService extends IService { - int saveGardsROIChannels(List roiChannelsList); + int saveGardsROIChannels(BgDataAnlyseResultIn anlyseResultIn, Integer sampleId, Integer gasId, Integer detId, Integer idAnalysis); } diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsROIResultsSpectrumService.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsROIResultsSpectrumService.java index eed0f3d2..9a583e07 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsROIResultsSpectrumService.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsROIResultsSpectrumService.java @@ -2,11 +2,12 @@ package org.jeecg.modules.service; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.base.entity.rnman.GardsRoiResults; +import org.jeecg.modules.entity.vo.BgDataAnlyseResultIn; import java.util.List; public interface IGardsROIResultsSpectrumService extends IService { - int saveGardsROIResults(List roiResultsList); + int saveGardsROIResults(BgDataAnlyseResultIn anlyseResultIn, Integer sampleId, Integer idAnalysis); } diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsXeResultsSpectrumService.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsXeResultsSpectrumService.java index 800d3726..a6cfecae 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsXeResultsSpectrumService.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGardsXeResultsSpectrumService.java @@ -2,11 +2,12 @@ package org.jeecg.modules.service; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.base.entity.rnman.GardsXeResults; +import org.jeecg.modules.entity.vo.BgDataAnlyseResultIn; import java.util.List; public interface IGardsXeResultsSpectrumService extends IService { - int saveGardsXeResults(List xeResultsList); + int saveGardsXeResults(BgDataAnlyseResultIn anlyseResultIn, Integer sampleId, Integer idAnalysis); } diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsCalibrationPairsSpectrumServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsCalibrationPairsSpectrumServiceImpl.java index 0f70be56..210e7cc2 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsCalibrationPairsSpectrumServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsCalibrationPairsSpectrumServiceImpl.java @@ -4,6 +4,10 @@ import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.modules.base.entity.rnman.GardsCalibrationPairs; +import org.jeecg.modules.base.enums.CalName; +import org.jeecg.modules.base.enums.CalType; +import org.jeecg.modules.base.enums.SystemType; +import org.jeecg.modules.entity.vo.BgDataAnlyseResultIn; import org.jeecg.modules.entity.vo.GStoreMiddleProcessData; import org.jeecg.modules.entity.vo.PHDFile; import org.jeecg.modules.entity.GardsCalibrationPairsSpectrum; @@ -22,7 +26,92 @@ public class GardsCalibrationPairsSpectrumServiceImpl extends ServiceImpl calibrationPairsList) { + public int saveGardsCalibrationPairs(BgDataAnlyseResultIn anlyseResultIn, Integer sampleId, Integer gasId, Integer detId, Integer idAnalysis) { + List calibrationPairsList = new LinkedList<>(); + if (CollectionUtils.isNotEmpty(anlyseResultIn.getB_channel_sample())) { + for (int i=0; i< anlyseResultIn.getB_channel_sample().size(); i++){ + GardsCalibrationPairs calibrationPairs = new GardsCalibrationPairs(); + calibrationPairs.setSampleId(sampleId); + calibrationPairs.setIdAnalysis(idAnalysis); + calibrationPairs.setSampleType(SystemType.BETA.getType()); + calibrationPairs.setCaltype(CalType.ENERGY_CAL.getType()); + calibrationPairs.setInput(CalName.CalPHD.getType()); + calibrationPairs.setIdCalPoint(i); + calibrationPairs.setXValue(anlyseResultIn.getB_channel_sample().get(i)); + calibrationPairs.setYValue(anlyseResultIn.getB_energy_sample().get(i)); + calibrationPairsList.add(calibrationPairs); + } + } + if (CollectionUtils.isNotEmpty(anlyseResultIn.getG_channel_sample())) { + for (int i=0; i< anlyseResultIn.getG_channel_sample().size(); i++){ + GardsCalibrationPairs calibrationPairs = new GardsCalibrationPairs(); + calibrationPairs.setSampleId(sampleId); + calibrationPairs.setIdAnalysis(idAnalysis); + calibrationPairs.setSampleType(SystemType.GAMMA.getType()); + calibrationPairs.setCaltype(CalType.ENERGY_CAL.getType()); + calibrationPairs.setInput(CalName.CalPHD.getType()); + calibrationPairs.setIdCalPoint(i); + calibrationPairs.setXValue(anlyseResultIn.getG_channel_sample().get(i)); + calibrationPairs.setYValue(anlyseResultIn.getG_energy_sample().get(i)); + calibrationPairsList.add(calibrationPairs); + } + } + if (CollectionUtils.isNotEmpty(anlyseResultIn.getB_channel_gas())) { + for (int i=0; i< anlyseResultIn.getB_channel_gas().size(); i++){ + GardsCalibrationPairs calibrationPairs = new GardsCalibrationPairs(); + calibrationPairs.setSampleId(gasId); + calibrationPairs.setIdAnalysis(idAnalysis); + calibrationPairs.setSampleType(SystemType.BETA.getType()); + calibrationPairs.setCaltype(CalType.ENERGY_CAL.getType()); + calibrationPairs.setInput(CalName.CalPHD.getType()); + calibrationPairs.setIdCalPoint(i); + calibrationPairs.setXValue(anlyseResultIn.getB_channel_gas().get(i)); + calibrationPairs.setYValue(anlyseResultIn.getB_energy_gas().get(i)); + calibrationPairsList.add(calibrationPairs); + } + } + if (CollectionUtils.isNotEmpty(anlyseResultIn.getG_channel_gas())) { + for (int i=0; i< anlyseResultIn.getG_channel_gas().size(); i++){ + GardsCalibrationPairs calibrationPairs = new GardsCalibrationPairs(); + calibrationPairs.setSampleId(gasId); + calibrationPairs.setIdAnalysis(idAnalysis); + calibrationPairs.setSampleType(SystemType.GAMMA.getType()); + calibrationPairs.setCaltype(CalType.ENERGY_CAL.getType()); + calibrationPairs.setInput(CalName.CalPHD.getType()); + calibrationPairs.setIdCalPoint(i); + calibrationPairs.setXValue(anlyseResultIn.getG_channel_gas().get(i)); + calibrationPairs.setYValue(anlyseResultIn.getG_energy_gas().get(i)); + calibrationPairsList.add(calibrationPairs); + } + } + if (CollectionUtils.isNotEmpty(anlyseResultIn.getB_channel_det())) { + for (int i=0; i< anlyseResultIn.getB_channel_det().size(); i++){ + GardsCalibrationPairs calibrationPairs = new GardsCalibrationPairs(); + calibrationPairs.setSampleId(detId); + calibrationPairs.setIdAnalysis(idAnalysis); + calibrationPairs.setSampleType(SystemType.BETA.getType()); + calibrationPairs.setCaltype(CalType.ENERGY_CAL.getType()); + calibrationPairs.setInput(CalName.CalPHD.getType()); + calibrationPairs.setIdCalPoint(i); + calibrationPairs.setXValue(anlyseResultIn.getB_channel_det().get(i)); + calibrationPairs.setYValue(anlyseResultIn.getB_energy_det().get(i)); + calibrationPairsList.add(calibrationPairs); + } + } + if (CollectionUtils.isNotEmpty(anlyseResultIn.getG_channel_det())) { + for (int i=0; i< anlyseResultIn.getG_channel_det().size(); i++){ + GardsCalibrationPairs calibrationPairs = new GardsCalibrationPairs(); + calibrationPairs.setSampleId(detId); + calibrationPairs.setIdAnalysis(idAnalysis); + calibrationPairs.setSampleType(SystemType.GAMMA.getType()); + calibrationPairs.setCaltype(CalType.ENERGY_CAL.getType()); + calibrationPairs.setInput(CalName.CalPHD.getType()); + calibrationPairs.setIdCalPoint(i); + calibrationPairs.setXValue(anlyseResultIn.getG_channel_det().get(i)); + calibrationPairs.setYValue(anlyseResultIn.getG_energy_det().get(i)); + calibrationPairsList.add(calibrationPairs); + } + } if (CollectionUtils.isNotEmpty(calibrationPairsList)) { this.saveBatch(calibrationPairsList); } diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsCalibrationSpectrumServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsCalibrationSpectrumServiceImpl.java index ba21ac82..dd4f6f30 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsCalibrationSpectrumServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsCalibrationSpectrumServiceImpl.java @@ -4,6 +4,12 @@ import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.modules.base.entity.rnman.GardsCalibration; +import org.jeecg.modules.base.enums.CalType; +import org.jeecg.modules.base.enums.DataTypeAbbr; +import org.jeecg.modules.base.enums.FittingType; +import org.jeecg.modules.base.enums.SystemType; +import org.jeecg.modules.entity.GardsCalibrationSpectrum; +import org.jeecg.modules.entity.vo.BgDataAnlyseResultIn; import org.jeecg.modules.entity.vo.GStoreMiddleProcessData; import org.jeecg.modules.mapper.GardsCalibrationSpectrumMapper; import org.jeecg.modules.service.IGardsCalibrationSpectrumService; @@ -12,6 +18,8 @@ import org.springframework.transaction.annotation.Transactional; import java.util.LinkedList; import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; @Service("gardsCalibrationSpectrumService") @DS("ora") @@ -20,11 +28,116 @@ public class GardsCalibrationSpectrumServiceImpl extends ServiceImpl calibrationPairsList) { - if (CollectionUtils.isNotEmpty(calibrationPairsList)) { - this.saveBatch(calibrationPairsList); + public int saveGardsCalibration(BgDataAnlyseResultIn anlyseResultIn, Integer sampleId, Integer gasId, Integer detId, Integer idAnalysis) { + List calibrationSpectrumList = new LinkedList<>(); + if (Objects.nonNull(sampleId)) { + GardsCalibration calibrationB = new GardsCalibration(); + calibrationB.setSampleId(sampleId); + calibrationB.setIdAnalysis(idAnalysis); + calibrationB.setSampleType(SystemType.BETA.getType()); + calibrationB.setCalType(CalType.ENERGY_CAL.getType()); + calibrationB.setFunction(FittingType.POLY2.getCode()); + calibrationB.setFunctionDef(FittingType.POLY2.getDescription()); + calibrationB.setStartOfRange(0); + calibrationB.setEndOfRange(1); + List betaCollect = anlyseResultIn.getBetaCalibrationSpectrumList().stream().filter(item -> item.getDataType().equals(DataTypeAbbr.SAMPLEPHD.getType())).collect(Collectors.toList()); + GardsCalibrationSpectrum betaCalibrationSpectrum = betaCollect.get(0); + calibrationB.setCoeff1(Double.valueOf(betaCalibrationSpectrum.getCoeff1())); + calibrationB.setCoeff2(Double.valueOf(betaCalibrationSpectrum.getCoeff2())); + calibrationB.setCoeff3(Double.valueOf(betaCalibrationSpectrum.getCoeff3())); + calibrationSpectrumList.add(calibrationB); + + GardsCalibration calibrationG = new GardsCalibration(); + calibrationG.setSampleId(sampleId); + calibrationG.setIdAnalysis(idAnalysis); + calibrationG.setSampleType(SystemType.GAMMA.getType()); + calibrationG.setCalType(CalType.ENERGY_CAL.getType()); + calibrationG.setFunction(FittingType.POLY2.getCode()); + calibrationG.setFunctionDef(FittingType.POLY2.getDescription()); + calibrationG.setStartOfRange(0); + calibrationG.setEndOfRange(1); + List gammaCollect = anlyseResultIn.getGammaCalibrationSpectrumList().stream().filter(item -> item.getDataType().equals(DataTypeAbbr.SAMPLEPHD.getType())).collect(Collectors.toList()); + GardsCalibrationSpectrum gammaCalibrationSpectrum = gammaCollect.get(0); + calibrationG.setCoeff1(Double.valueOf(gammaCalibrationSpectrum.getCoeff1())); + calibrationG.setCoeff2(Double.valueOf(gammaCalibrationSpectrum.getCoeff2())); + calibrationG.setCoeff3(Double.valueOf(gammaCalibrationSpectrum.getCoeff3())); + calibrationSpectrumList.add(calibrationG); } - return calibrationPairsList.size(); + + if (Objects.nonNull(gasId)) { + //gas文件 Beta部分 + GardsCalibration calibrationB = new GardsCalibration(); + calibrationB.setSampleId(gasId); + calibrationB.setIdAnalysis(idAnalysis); + calibrationB.setSampleType(SystemType.BETA.getType()); + calibrationB.setCalType(CalType.ENERGY_CAL.getType()); + calibrationB.setFunction(FittingType.POLY2.getCode()); + calibrationB.setFunctionDef(FittingType.POLY2.getDescription()); + calibrationB.setStartOfRange(0); + calibrationB.setEndOfRange(1); + List betaCollect = anlyseResultIn.getBetaCalibrationSpectrumList().stream().filter(item -> item.getDataType().equals(DataTypeAbbr.GASBKPHD.getType())).collect(Collectors.toList()); + GardsCalibrationSpectrum betaCalibrationSpectrum = betaCollect.get(0); + calibrationB.setCoeff1(Double.valueOf(betaCalibrationSpectrum.getCoeff1())); + calibrationB.setCoeff2(Double.valueOf(betaCalibrationSpectrum.getCoeff2())); + calibrationB.setCoeff3(Double.valueOf(betaCalibrationSpectrum.getCoeff3())); + calibrationSpectrumList.add(calibrationB); + //gas文件 gamma部分 + GardsCalibration calibrationG = new GardsCalibration(); + calibrationG.setSampleId(gasId); + calibrationG.setIdAnalysis(idAnalysis); + calibrationG.setSampleType(SystemType.GAMMA.getType()); + calibrationG.setCalType(CalType.ENERGY_CAL.getType()); + calibrationG.setFunction(FittingType.POLY2.getCode()); + calibrationG.setFunctionDef(FittingType.POLY2.getDescription()); + calibrationG.setStartOfRange(0); + calibrationG.setEndOfRange(1); + List gammaCollect = anlyseResultIn.getGammaCalibrationSpectrumList().stream().filter(item -> item.getDataType().equals(DataTypeAbbr.GASBKPHD.getType())).collect(Collectors.toList()); + GardsCalibrationSpectrum gammaCalibrationSpectrum = gammaCollect.get(0); + calibrationG.setCoeff1(Double.valueOf(gammaCalibrationSpectrum.getCoeff1())); + calibrationG.setCoeff2(Double.valueOf(gammaCalibrationSpectrum.getCoeff2())); + calibrationG.setCoeff3(Double.valueOf(gammaCalibrationSpectrum.getCoeff3())); + calibrationSpectrumList.add(calibrationG); + } + + if (Objects.nonNull(detId)) { + GardsCalibration calibrationB = new GardsCalibration(); + calibrationB.setSampleId(detId); + calibrationB.setIdAnalysis(idAnalysis); + calibrationB.setSampleType(SystemType.BETA.getType()); + calibrationB.setCalType(CalType.ENERGY_CAL.getType()); + calibrationB.setFunction(FittingType.POLY2.getCode()); + calibrationB.setFunctionDef(FittingType.POLY2.getDescription()); + calibrationB.setStartOfRange(0); + calibrationB.setEndOfRange(1); + List betaCollect = anlyseResultIn.getBetaCalibrationSpectrumList().stream().filter(item -> item.getDataType().equals(DataTypeAbbr.DETBKPHD.getType())).collect(Collectors.toList()); + GardsCalibrationSpectrum betaCalibrationSpectrum = betaCollect.get(0); + calibrationB.setCoeff1(Double.valueOf(betaCalibrationSpectrum.getCoeff1())); + calibrationB.setCoeff2(Double.valueOf(betaCalibrationSpectrum.getCoeff2())); + calibrationB.setCoeff3(Double.valueOf(betaCalibrationSpectrum.getCoeff3())); + calibrationSpectrumList.add(calibrationB); + GardsCalibration calibrationG = new GardsCalibration(); + calibrationG.setSampleId(detId); + calibrationG.setIdAnalysis(idAnalysis); + calibrationG.setSampleType(SystemType.GAMMA.getType()); + calibrationG.setCalType(CalType.ENERGY_CAL.getType()); + calibrationG.setFunction(FittingType.POLY2.getCode()); + calibrationG.setFunctionDef(FittingType.POLY2.getDescription()); + calibrationG.setStartOfRange(0); + calibrationG.setEndOfRange(1); + List gammaCollect = anlyseResultIn.getGammaCalibrationSpectrumList().stream().filter(item -> item.getDataType().equals(DataTypeAbbr.DETBKPHD.getType())).collect(Collectors.toList()); + GardsCalibrationSpectrum gammaCalibrationSpectrum = gammaCollect.get(0); + calibrationG.setCoeff1(Double.valueOf(gammaCalibrationSpectrum.getCoeff1())); + calibrationG.setCoeff2(Double.valueOf(gammaCalibrationSpectrum.getCoeff2())); + calibrationG.setCoeff3(Double.valueOf(gammaCalibrationSpectrum.getCoeff3())); + calibrationSpectrumList.add(calibrationG); + } + + if (CollectionUtils.isNotEmpty(calibrationSpectrumList)) { + for (GardsCalibration calibration:calibrationSpectrumList) { + this.baseMapper.insertCalibration(calibration); + } + } + return calibrationSpectrumList.size(); } @Override diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsROIChannelsSpectrumServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsROIChannelsSpectrumServiceImpl.java index 3ef84935..6cf29d63 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsROIChannelsSpectrumServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GardsROIChannelsSpectrumServiceImpl.java @@ -4,12 +4,18 @@ import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.modules.base.entity.rnman.GardsRoiChannels; +import org.jeecg.modules.base.enums.DataType; +import org.jeecg.modules.base.enums.DataTypeAbbr; +import org.jeecg.modules.entity.GardsROIChannelsSpectrum; +import org.jeecg.modules.entity.vo.BgDataAnlyseResultIn; import org.jeecg.modules.mapper.GardsROIChannelsSpectrumMapper; import org.jeecg.modules.service.IGardsROIChannelsSpectrumService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.LinkedList; import java.util.List; +import java.util.stream.Collectors; @Service("roiChannelsService") @DS("ora") @@ -17,7 +23,49 @@ public class GardsROIChannelsSpectrumServiceImpl extends ServiceImpl roiChannelsList) { + public int saveGardsROIChannels(BgDataAnlyseResultIn anlyseResultIn, Integer sampleId, Integer gasId, Integer detId, Integer idAnalysis) { + List roiChannelsList = new LinkedList<>(); + List roiChannelsSpectrumList = anlyseResultIn.getRoiChannelsSpectrumList(); + //过滤出sample相关的数据 + List sampleRoiChannelsSpectrumList = roiChannelsSpectrumList.stream().filter(item-> item.getDataType().equals(DataTypeAbbr.SAMPLEPHD.getType())).collect(Collectors.toList()); + for (int i=0; i gasRoiChannelsSpectrumList = roiChannelsSpectrumList.stream().filter(item-> item.getDataType().equals(DataTypeAbbr.GASBKPHD.getType())).collect(Collectors.toList()); + for (int i=0; i detRoiChannelsSpectrumList = roiChannelsSpectrumList.stream().filter(item-> item.getDataType().equals(DataTypeAbbr.DETBKPHD.getType())).collect(Collectors.toList()); + for (int i=0; i implements IGardsROIResultsSpectrumService { @Override - public int saveGardsROIResults(List roiResultsList) { + public int saveGardsROIResults(BgDataAnlyseResultIn anlyseResultIn, Integer sampleId, Integer idAnalysis) { + List roiResultsList = new LinkedList<>(); + List roiResultsSpectrumList = anlyseResultIn.getRoiResultsSpectrumList(); + for (int i=0; i xeResultsList) { + public int saveGardsXeResults(BgDataAnlyseResultIn anlyseResultIn, Integer sampleId, Integer idAnalysis) { + List xeResultsList = anlyseResultIn.getXeData(); + for (GardsXeResults xeResults:xeResultsList) { + xeResults.setIdAnalysis(idAnalysis); + xeResults.setSampleId(sampleId); + } if (CollectionUtils.isNotEmpty(xeResultsList)) { this.saveBatch(xeResultsList); } 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 4929c8b4..12421e5e 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 @@ -122,6 +122,17 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements private NameStandUtil nameStandUtil; @Autowired private IDataService dataService; + @Autowired + private IGardsCalibrationPairsSpectrumService gardsCalibrationPairsSpectrumService; + @Autowired + private IGardsCalibrationSpectrumService gardsCalibrationSpectrumService; + @Autowired + private IGardsROIChannelsSpectrumService gardsROIChannelsSpectrumService; + @Autowired + private IGardsXeResultsSpectrumService gardsXeResultsSpectrumService; + @Autowired + private IGardsROIResultsSpectrumService gardsROIResultsSpectrumService; + @Override @@ -4102,8 +4113,6 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements if (userStation.contains(String.valueOf(stationId))) { bAnalysisResultWriteAuthority = true; } - //获取ROI Limit数据 -// getROILimit(anlyseResultIn); //根据sample文件名称模糊查询sampleId if (StringUtils.isNotBlank(betaDataFile.getSampleFilePathName())) { anlyseResultIn.setSampleFilePath(betaDataFile.getSampleFilePathName().substring(0, betaDataFile.getSampleFilePathName().lastIndexOf(StringPool.SLASH))); @@ -4144,7 +4153,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements //处理数据 获取对应的channel/energy值 getChannelAndEnergy(anlyseResultIn, betaList, gammaList, betaDataFile); //分析文件内容 - analyzePHDFile(anlyseResultIn, BgCalPara, betaFittingPara, gammaFittingPara, betaDataFile); + analyzePHDFile(anlyseResultIn, betaDataFile); //判断文件是否存储过 如果没有则解析文件并进行存储 if ( !OriginalDataStore(betaDataFile, "gas", gasFilePathName) ){ result.error500("gasFile save failed"); @@ -4212,87 +4221,60 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements GardsAnalysesSpectrum analysis = spectrumAnalysisMapper.getAnalysis("RNMAN.GARDS_ANALYSES", sampleId, userName); Integer idAnalysis = analysis.getIdAnalysis(); //获取sample,gas,det三个文件分别对应的beta,gamma数据集合 - List calibrationPairsList = getCalibrationPairs(anlyseResultIn, sampleId, gasId, detId, idAnalysis); //如果分析过--删除GARDS_CALIBRATION_PAIRS表数据 新增GARDS_CALIBRATION_PAIRS表数据 if (Objects.nonNull(isExist)){ //根据idAnalysis删除GARDS_CALIBRATION_PAIRS表数据 spectrumAnalysisMapper.deleteCalibrationPairs(idAnalysis); //遍历新增GARDS_CALIBRATION_PAIRS表数据 - for (GardsCalibrationPairs calibrationPairs:calibrationPairsList) { - spectrumAnalysisMapper.insertCalibrationPairs(calibrationPairs); - } + gardsCalibrationPairsSpectrumService.saveGardsCalibrationPairs(anlyseResultIn, sampleId, gasId, detId, idAnalysis); }else {//如果没有分析过--新增GARDS_CALIBRATION_PAIRS表数据 //遍历新增GARDS_CALIBRATION_PAIRS表数据 - for (GardsCalibrationPairs calibrationPairs:calibrationPairsList) { - spectrumAnalysisMapper.insertCalibrationPairs(calibrationPairs); - } + gardsCalibrationPairsSpectrumService.saveGardsCalibrationPairs(anlyseResultIn, sampleId, gasId, detId, idAnalysis); } //gards_calibration 数据表 - List calibrationList = getCalibration(anlyseResultIn, sampleId, gasId, detId, idAnalysis); //判断是否分析过 - if (Objects.nonNull(isExist)) { + if (Objects.nonNull(isExist)) { //删除Gards_Calibration表数据 spectrumAnalysisMapper.deleteCalibration(idAnalysis); //新增Gards_Calibration表数据数据 - for (GardsCalibration calibration:calibrationList) { - spectrumAnalysisMapper.insertCalibration(calibration); - } + gardsCalibrationSpectrumService.saveGardsCalibration(anlyseResultIn, sampleId, gasId, detId, idAnalysis); } else { //新增Gards_Calibration表数据数据 - for (GardsCalibration calibration:calibrationList) { - spectrumAnalysisMapper.insertCalibration(calibration); - } + gardsCalibrationSpectrumService.saveGardsCalibration(anlyseResultIn, sampleId, gasId, detId, idAnalysis); } //gards_roi_channels数据表 - List roiChannelsList = new LinkedList<>(); - getROIChannel(sampleId, idAnalysis, anlyseResultIn.getRoiChannelsSpectrumList(), roiChannelsList, DataTypeAbbr.SAMPLEPHD.getType()); - getROIChannel(gasId, idAnalysis, anlyseResultIn.getRoiChannelsSpectrumList(), roiChannelsList, DataTypeAbbr.GASBKPHD.getType()); - getROIChannel(detId, idAnalysis, anlyseResultIn.getRoiChannelsSpectrumList(), roiChannelsList, DataTypeAbbr.DETBKPHD.getType()); //如果分析过数据 if (Objects.nonNull(isExist)){ //删除gards_roi_channels数据表数据 spectrumAnalysisMapper.deleteROIChannels(idAnalysis); //新增gards_roi_channels数据表数据 - for (GardsRoiChannels roiChannels:roiChannelsList) { - spectrumAnalysisMapper.insertROIChannels(roiChannels); - } + gardsROIChannelsSpectrumService.saveGardsROIChannels(anlyseResultIn, sampleId, gasId, detId, idAnalysis); }else {//没有分析过 //新增gards_roi_channels数据表数据 - for (GardsRoiChannels roiChannels:roiChannelsList) { - spectrumAnalysisMapper.insertROIChannels(roiChannels); - } + gardsROIChannelsSpectrumService.saveGardsROIChannels(anlyseResultIn, sampleId, gasId, detId, idAnalysis); } //gards_Xe_results数据表 - List xeResultsList = getXeResults(anlyseResultIn, sampleId, idAnalysis); if(Objects.nonNull(isExist)) { //删除gards_Xe_results数据表数据 spectrumAnalysisMapper.deleteXeResult(idAnalysis); //新增gards_Xe_results数据表数据 - for (GardsXeResults xeResults:xeResultsList) { - spectrumAnalysisMapper.insertXeResult(xeResults); - } + gardsXeResultsSpectrumService.saveGardsXeResults(anlyseResultIn, sampleId, idAnalysis); } else { //新增gards_Xe_results数据表数据 - for (GardsXeResults xeResults:xeResultsList) { - spectrumAnalysisMapper.insertXeResult(xeResults); - } + gardsXeResultsSpectrumService.saveGardsXeResults(anlyseResultIn, sampleId, idAnalysis); } //gards_roi_results数据表 - List roiResultsSpectrumList = getROIResult(anlyseResultIn.getRoiResultsSpectrumList(), sampleId, idAnalysis); if(Objects.nonNull(isExist)) { //删除gards_roi_results数据表数据 spectrumAnalysisMapper.deleteROIResults(idAnalysis); //新增gards_roi_results数据表数据 - for (GardsRoiResults roiResults:roiResultsSpectrumList) { - spectrumAnalysisMapper.insertROIResults(roiResults); - } + gardsROIResultsSpectrumService.saveGardsROIResults(anlyseResultIn, sampleId, idAnalysis); } else { //新增gards_roi_results数据表数据 - for (GardsRoiResults roiResults:roiResultsSpectrumList) { - spectrumAnalysisMapper.insertROIResults(roiResults); - } + gardsROIResultsSpectrumService.saveGardsROIResults(anlyseResultIn, sampleId, idAnalysis); } //上传本次文件到ftp人工交互存储路径下 + long uploadStartTime = System.currentTimeMillis(); try { if (StringUtils.isNotBlank(sampleFilePathName)) { //sample文件的saveFile存储路径 @@ -4392,6 +4374,191 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements return result; } + @Transactional + public boolean OriginalDataStore(BetaDataFile betaDataFile, String type, String filePathName) { + //根据新的文件路径名称查询数据是否存在 + GardsSampleData isExist = spectrumAnalysisMapper.findSampleByFile(filePathName); + //如果数据已经存入过数据库 则 修改状态后返回 + if (Objects.nonNull(isExist)){ + //如果文件已经存入过数据库则修改状态 + spectrumAnalysisMapper.updateAnalysesStatus(filePathName); + return true; + } + //读取文件内容 + EnergySpectrumStruct sourceData = null; + File file = null; + try { + if (Objects.nonNull(betaDataFile)){ + + if (type.equalsIgnoreCase("sample")) { + file = new File(betaDataFile.getSampleTmpPath()); + sourceData = betaDataFile.getSampleStruct(); + } else if (type.equalsIgnoreCase("gas")) { + file = new File(betaDataFile.getGasTmpPath()); + sourceData = betaDataFile.getGasStruct(); + } else if (type.equalsIgnoreCase("det")) { + file = new File(betaDataFile.getDetTmpPath()); + sourceData = betaDataFile.getDetStruct(); + } else if (type.equalsIgnoreCase("qc")) { + file = new File(betaDataFile.getQcTmpPath()); + sourceData = betaDataFile.getQcStruct(); + } + //获取文件中块名信息 + List readLines = getFileBlockList(file); + //查询台站id + Integer stationId = spectrumAnalysisMapper.getStationId(sourceData.site_code); + Integer detectorId = spectrumAnalysisMapper.getDetectorId(sourceData.detector_code); + if(Objects.isNull(stationId) || Objects.isNull(detectorId)) { + String error = "get station_id or detect_id error"; + return false; + } + //新增Gards_Sample_Data表数据 + sampleDataSpectrumService.saveSampleData(sourceData, stationId, detectorId, filePathName, readLines); + //获取sampleId + Integer sampleId = spectrumAnalysisMapper.getSampleId(filePathName); + //存储Gards_Sample_Aux表数据 + sampleAuxSpectrumService.saveSampleAux(sourceData, sampleId, readLines); + //判断文件是否包含Comment块 新增Gards_Description数据 + if (readLines.contains(SampleFileHeader.COMMENT.getMessage())){ + sampleDescriptionSpectrumService.saveSampleDescription(sourceData, sampleId); + } + //判断文件是否包含Certificate块 新增Gards_Sample_Cert数据 + if (readLines.contains(SampleFileHeader.CERTIFICATE.getMessage())){ + sampleCertSpectrumService.saveSampleCert(sourceData, sampleId); + sampleCertLineSpectrumService.saveSampleCertLine(sourceData, sampleId); + } + //新增Gards_Calibration_Pairs_Orig数据 + calibrationPairsOrigSpectrumService.saveGardsCalibrationPairsOrig(sourceData, sampleId, readLines); + //判断文件是否包含b-gEfficiency块 新增Gards_Sample_Cert数据 + if (readLines.contains(SampleFileHeader.BGEFFICIENCY.getMessage())){ + bgEfficiencyPairsSpectrumService.saveBgEfficiencyPairs(sourceData, sampleId); + } + //判断文件是否包含TotalEff块 新增Gards_Sample_Cert数据 + if (readLines.contains(SampleFileHeader.TOTALEFF.getMessage())){ + totalEfficiencyPairsSpectrumService.saveTotalEfficiencyPairs(sourceData, sampleId); + } + //判断文件是否包含Ratios块 新增Gards_Sample_Ratios数据 + if (readLines.contains(SampleFileHeader.RATIOS.getMessage())){ + sampleRatiosSpectrumService.saveSampleRatios(sourceData, sampleId); + } + //判断是否包含ROI_Limits块 新增Gards_ROI_Limits数据 + if (readLines.contains(SampleFileHeader.ROILIMITS.getMessage())){ + roiLimitsSpectrumService.saveRoiLimits(sourceData, sampleId); + } + //新增Gards_Spectrum数据 + spectrumService.saveSpectrum(sourceData, sampleId, readLines, filePathName); + //判断是否包含Histogram块 新增Gards_Histogram数据 + if (readLines.contains(SampleFileHeader.HISTOGRAM.getMessage())){ + histogramService.saveHistogram(sourceData, sampleId, filePathName); + } + } + return true; + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + public List getFileBlockList(File file) { + List readLines = new LinkedList<>(); + try { + List allLines = FileUtils.readLines(file, "UTF-8"); + for (String line:allLines) { + if (line.contains("#")){ + readLines.add(line); + } + } + } catch (IOException e) { + throw new RuntimeException(e); + } + return readLines; + } + + public SpectrumData getSpectrumData(Integer sampleId, BetaDataFile betaDataFile, String type) { + //根据 sampleId获取sampleData的数据内容 + GardsSampleDataSpectrum sampleData = spectrumAnalysisMapper.getSampleData(sampleId); + File file = null; + EnergySpectrumStruct struct = null; + if (type.equalsIgnoreCase("sample")) { + file = new File(betaDataFile.getSampleTmpPath()); + struct = betaDataFile.getSampleStruct(); + } else if (type.equalsIgnoreCase("gas")) { + file = new File(betaDataFile.getGasTmpPath()); + struct = betaDataFile.getGasStruct(); + } else if (type.equalsIgnoreCase("det")) { + file = new File(betaDataFile.getDetTmpPath()); + struct = betaDataFile.getDetStruct(); + } else if (type.equalsIgnoreCase("qc")) { + file = new File(betaDataFile.getQcTmpPath()); + struct = betaDataFile.getQcStruct(); + } + SpectrumData spectrumData = new SpectrumData(); + try { + //封装散点图下的基础数据信息 + //Station Code + String stationCode = struct.site_code; + //Detector Code + String detectorCode = struct.detector_code; + //Data Type + String dataType = struct.data_type; + //Collection Start + Date CollectionStart = null; + if ( StringUtils.isNotBlank(struct.collection_start_date) && StringUtils.isNotBlank(struct.collection_start_time) ){ + CollectionStart = DateUtils.parseDate(struct.collection_start_date + StringPool.SPACE + struct.collection_start_time); + } + //Collection Stop + Date CollectionStop = null; + if ( StringUtils.isNotBlank(struct.collection_stop_date) && StringUtils.isNotBlank(struct.collection_stop_time) ){ + CollectionStop = DateUtils.parseDate(struct.collection_stop_date + StringPool.SPACE + struct.collection_stop_time); + } + //Collection Time + String CollectionTime = ""; + if ( Objects.nonNull(CollectionStart) && Objects.nonNull(CollectionStop) ){ + CollectionTime = String.format ("%.2f",Double.valueOf(CollectionStop.getTime()/1000 - CollectionStart.getTime()/ 1000)); + } + //Acquisition Start + Date AcquisitionStart = null; + if ( StringUtils.isNotBlank(struct.collection_start_date) && StringUtils.isNotBlank(struct.collection_start_time) ){ + AcquisitionStart = DateUtils.parseDate(struct.acquisition_start_date + StringPool.SPACE + struct.acquisition_start_time); + } + //Acq Real Time + double AcquisitionRealTime = struct.acquisition_real_time; + //Acq live Time + double AcquisitionLiveTime = struct.acquisition_live_time; + //Air Volume[m3] + double airVolume = struct.air_volume; + //Xe Volume[m3] + double xeVolume = struct.sample_volume_of_Xe; + //xeCollectionYield + double xeCollectionYield = struct.Xe_collection_yield; + //gasBkMeasurementId + String gasBkMeasurementId = struct.gas_bk_measurement_id; + //detectorBkMeasurementId + String detectorBkMeasurementId = struct.detector_bk_measurement_id; + //measurementId + String measurementId = struct.measurement_id; + spectrumData.setSampleId(sampleId); + spectrumData.setStatus(sampleData.getStatus()); + spectrumData.setStationCode(stationCode); + spectrumData.setDetectorCode(detectorCode); + spectrumData.setDataType(dataType); + spectrumData.setCollectionStart(CollectionStart); + spectrumData.setCollectionStop(CollectionStop); + spectrumData.setCollectionTime(CollectionTime); + spectrumData.setAcquisitionStart(AcquisitionStart); + spectrumData.setAcquisitionRealTime(String.format("%.2f", AcquisitionRealTime)); + spectrumData.setAcquisitionLiveTime(String.format("%.2f", AcquisitionLiveTime)); + spectrumData.setAirVolume(String.format("%.5f", airVolume)); + spectrumData.setXeVolume(String.format("%.5f", xeVolume)); + spectrumData.setYield(xeCollectionYield); + spectrumData.setGasBkMeasurementId(gasBkMeasurementId); + spectrumData.setDetectorBkMeasurementId(detectorBkMeasurementId); + spectrumData.setMeasurementId(measurementId); + } catch (ParseException e) { + throw new RuntimeException(e); + } + return spectrumData; + } + /** * 分析成功数据发送到Redis */ @@ -5038,7 +5205,6 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements ExportUtil.exportXls(response, template, analyze, export); } - public void saveToTxtOld(BgDataAnlyseResultIn anlyseResultIn, HttpServletRequest request, HttpServletResponse response) { String userName = JwtUtil.getUserNameByToken(request); // 解析文件,生成导出数据 @@ -5610,701 +5776,58 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } } - public void analyzePHDFile(BgDataAnlyseResultIn anlyseResultIn, BgCalibratePara BgCalPara, List betaFittingPara, List gammaFittingPara, BetaDataFile betaDataFile) { - File sampleTmp = null; - File gasTmp = null; - File detTmp = null; - try { - //根据文件路径 文件名称获取对应的临时文件 - sampleTmp = new File(betaDataFile.getSampleTmpPath()); - gasTmp = new File(betaDataFile.getGasTmpPath()); - detTmp = new File(betaDataFile.getDetTmpPath()); - //调用动态库解析文件 - //Gamma Energy Calibration页面 如果点击过fitting使BGammaEnergyValid并且有勾选 - //如果三个sampleData,GasData,DetData数据都是被勾选状态 则需要传递新的参数重新分析 否则不需要改变数据分析当前文件内容 - BgAnalyseResult bgAnalyseResult = null; - if (Objects.nonNull(sampleTmp) && Objects.nonNull(gasTmp) && Objects.nonNull(detTmp)) { - if (Objects.isNull(BgCalPara)) { - bgAnalyseResult = EnergySpectrumHandler.bgAnalyse(sampleTmp.getAbsolutePath(), gasTmp.getAbsolutePath(), detTmp.getAbsolutePath()); - } else { - bgAnalyseResult = EnergySpectrumHandler.bgReAnalyse(sampleTmp.getAbsolutePath(), gasTmp.getAbsolutePath(), detTmp.getAbsolutePath(), BgCalPara); - } - if (StringUtils.isBlank(bgAnalyseResult.error_log) || bgAnalyseResult.error_log.equalsIgnoreCase("no error.")) { - //处理XeData的数据 - List xeResultsSpectrumList = new LinkedList<>(); - GardsXeResults xe131m = new GardsXeResults(); - xe131m.setNuclideName(XeNuclideName.XE_131m.getType()); - xe131m.setConc(bgAnalyseResult.Xe131m_con); - xe131m.setConcErr(bgAnalyseResult.Xe131m_uncer); - xe131m.setLc(bgAnalyseResult.LC_Xe131m); - xe131m.setMdc(bgAnalyseResult.MDC_Xe131m); - xe131m.setNidFlag(anlyseResultIn.getXe131mFlag()); - xeResultsSpectrumList.add(xe131m); - GardsXeResults xe133 = new GardsXeResults(); - xe133.setNuclideName(XeNuclideName.XE_133.getType()); - xe133.setConc(bgAnalyseResult.Xe133_con); - xe133.setConcErr(bgAnalyseResult.Xe133_uncer); - xe133.setLc(bgAnalyseResult.LC_Xe133); - xe133.setMdc(bgAnalyseResult.MDC_Xe133); - xe133.setNidFlag(anlyseResultIn.getXe133Flag()); - xeResultsSpectrumList.add(xe133); - GardsXeResults xe133m = new GardsXeResults(); - xe133m.setNuclideName(XeNuclideName.XE_133m.getType()); - xe133m.setConc(bgAnalyseResult.Xe133m_con); - xe133m.setConcErr(bgAnalyseResult.Xe133m_uncer); - xe133m.setLc(bgAnalyseResult.LC_Xe133m); - xe133m.setMdc(bgAnalyseResult.MDC_Xe133m); - xe133m.setNidFlag(anlyseResultIn.getXe133mFlag()); - xeResultsSpectrumList.add(xe133m); - GardsXeResults xe135 = new GardsXeResults(); - xe135.setNuclideName(XeNuclideName.XE_135.getType()); - xe135.setConc(bgAnalyseResult.Xe135_con); - xe135.setConcErr(bgAnalyseResult.Xe135_uncer); - xe135.setLc(bgAnalyseResult.LC_Xe135); - xe135.setMdc(bgAnalyseResult.MDC_Xe135); - xe135.setNidFlag(anlyseResultIn.getXe135Flag()); - xeResultsSpectrumList.add(xe135); - anlyseResultIn.setXeData(xeResultsSpectrumList); - //处理GammaCalibration的数据 - List gammaCalibrationSpectrumList = new LinkedList<>(); - if (anlyseResultIn.isBGammaEnergyValidSample()) { - GardsCalibrationSpectrum gammaCalibrationS = new GardsCalibrationSpectrum(); - gammaCalibrationS.setDataType(DataTypeAbbr.SAMPLEPHD.getType()); - gammaCalibrationS.setCoeff1(Double.valueOf(gammaFittingPara.get(0))); - gammaCalibrationS.setCoeff2(Double.valueOf(gammaFittingPara.get(1))); - gammaCalibrationS.setCoeff3(Double.valueOf(gammaFittingPara.get(2))); - gammaCalibrationSpectrumList.add(gammaCalibrationS); - } else { - GardsCalibrationSpectrum gammaCalibrationS = new GardsCalibrationSpectrum(); - gammaCalibrationS.setDataType(DataTypeAbbr.SAMPLEPHD.getType()); - gammaCalibrationS.setCoeff1(bgAnalyseResult.s_g_fitting_e_c.get(0)); - gammaCalibrationS.setCoeff2(bgAnalyseResult.s_g_fitting_e_c.get(1)); - gammaCalibrationS.setCoeff3(bgAnalyseResult.s_g_fitting_e_c.get(2)); - gammaCalibrationSpectrumList.add(gammaCalibrationS); - } - if (anlyseResultIn.isBGammaEnergyValidGas()) { - GardsCalibrationSpectrum gammaCalibrationG = new GardsCalibrationSpectrum(); - gammaCalibrationG.setDataType(DataTypeAbbr.GASBKPHD.getType()); - gammaCalibrationG.setCoeff1(Double.valueOf(gammaFittingPara.get(0))); - gammaCalibrationG.setCoeff2(Double.valueOf(gammaFittingPara.get(1))); - gammaCalibrationG.setCoeff3(Double.valueOf(gammaFittingPara.get(2))); - gammaCalibrationSpectrumList.add(gammaCalibrationG); - } else { - GardsCalibrationSpectrum gammaCalibrationG = new GardsCalibrationSpectrum(); - gammaCalibrationG.setDataType(DataTypeAbbr.GASBKPHD.getType()); - gammaCalibrationG.setCoeff1(bgAnalyseResult.g_g_fitting_e_c.get(0)); - gammaCalibrationG.setCoeff2(bgAnalyseResult.g_g_fitting_e_c.get(1)); - gammaCalibrationG.setCoeff3(bgAnalyseResult.g_g_fitting_e_c.get(2)); - gammaCalibrationSpectrumList.add(gammaCalibrationG); - } - if (anlyseResultIn.isBGammaEnergyValidDet()) { - GardsCalibrationSpectrum gammaCalibrationD = new GardsCalibrationSpectrum(); - gammaCalibrationD.setDataType(DataTypeAbbr.DETBKPHD.getType()); - gammaCalibrationD.setCoeff1(Double.valueOf(gammaFittingPara.get(0))); - gammaCalibrationD.setCoeff2(Double.valueOf(gammaFittingPara.get(1))); - gammaCalibrationD.setCoeff3(Double.valueOf(gammaFittingPara.get(2))); - gammaCalibrationSpectrumList.add(gammaCalibrationD); - } else { - GardsCalibrationSpectrum gammaCalibrationD = new GardsCalibrationSpectrum(); - gammaCalibrationD.setDataType(DataTypeAbbr.DETBKPHD.getType()); - gammaCalibrationD.setCoeff1(bgAnalyseResult.d_g_fitting_e_c.get(0)); - gammaCalibrationD.setCoeff2(bgAnalyseResult.d_g_fitting_e_c.get(1)); - gammaCalibrationD.setCoeff3(bgAnalyseResult.d_g_fitting_e_c.get(2)); - gammaCalibrationSpectrumList.add(gammaCalibrationD); - } - anlyseResultIn.setGammaCalibrationSpectrumList(gammaCalibrationSpectrumList); - //处理BetaCalibration数据 - List betaCalibrationSpectrumList = new LinkedList<>(); - if (anlyseResultIn.isBBetaEnergyValidSample()) { - GardsCalibrationSpectrum betaCalibrationS = new GardsCalibrationSpectrum(); - betaCalibrationS.setDataType(DataTypeAbbr.SAMPLEPHD.getType()); - betaCalibrationS.setCoeff1(Double.valueOf(betaFittingPara.get(0))); - betaCalibrationS.setCoeff2(Double.valueOf(betaFittingPara.get(1))); - betaCalibrationS.setCoeff3(Double.valueOf(betaFittingPara.get(2))); - betaCalibrationSpectrumList.add(betaCalibrationS); - } else { - GardsCalibrationSpectrum betaCalibrationS = new GardsCalibrationSpectrum(); - betaCalibrationS.setDataType(DataTypeAbbr.SAMPLEPHD.getType()); - betaCalibrationS.setCoeff1(bgAnalyseResult.s_b_fitting_e_c.get(0)); - betaCalibrationS.setCoeff2(bgAnalyseResult.s_b_fitting_e_c.get(1)); - betaCalibrationS.setCoeff3(bgAnalyseResult.s_b_fitting_e_c.get(2)); - betaCalibrationSpectrumList.add(betaCalibrationS); - } - if (anlyseResultIn.isBBetaEnergyValidGas()) { - GardsCalibrationSpectrum betaCalibrationG = new GardsCalibrationSpectrum(); - betaCalibrationG.setDataType(DataTypeAbbr.GASBKPHD.getType()); - betaCalibrationG.setCoeff1(Double.valueOf(betaFittingPara.get(0))); - betaCalibrationG.setCoeff2(Double.valueOf(betaFittingPara.get(1))); - betaCalibrationG.setCoeff3(Double.valueOf(betaFittingPara.get(2))); - betaCalibrationSpectrumList.add(betaCalibrationG); - } else { - GardsCalibrationSpectrum betaCalibrationG = new GardsCalibrationSpectrum(); - betaCalibrationG.setDataType(DataTypeAbbr.GASBKPHD.getType()); - betaCalibrationG.setCoeff1(bgAnalyseResult.g_b_fitting_e_c.get(0)); - betaCalibrationG.setCoeff2(bgAnalyseResult.g_b_fitting_e_c.get(1)); - betaCalibrationG.setCoeff3(bgAnalyseResult.g_b_fitting_e_c.get(2)); - betaCalibrationSpectrumList.add(betaCalibrationG); - } - if (anlyseResultIn.isBBetaEnergyValidDet()) { - GardsCalibrationSpectrum betaCalibrationD = new GardsCalibrationSpectrum(); - betaCalibrationD.setDataType(DataTypeAbbr.DETBKPHD.getType()); - betaCalibrationD.setCoeff1(Double.valueOf(betaFittingPara.get(0))); - betaCalibrationD.setCoeff2(Double.valueOf(betaFittingPara.get(1))); - betaCalibrationD.setCoeff3(Double.valueOf(betaFittingPara.get(2))); - betaCalibrationSpectrumList.add(betaCalibrationD); - } else { - GardsCalibrationSpectrum betaCalibrationD = new GardsCalibrationSpectrum(); - betaCalibrationD.setDataType(DataTypeAbbr.DETBKPHD.getType()); - betaCalibrationD.setCoeff1(bgAnalyseResult.d_b_fitting_e_c.get(0)); - betaCalibrationD.setCoeff2(bgAnalyseResult.d_b_fitting_e_c.get(1)); - betaCalibrationD.setCoeff3(bgAnalyseResult.d_b_fitting_e_c.get(2)); - betaCalibrationSpectrumList.add(betaCalibrationD); - } - anlyseResultIn.setBetaCalibrationSpectrumList(betaCalibrationSpectrumList); - //存储roiChannel数据 - List roiChannelsSpectrumList = new LinkedList<>(); - for (int i=0; i roiResultsSpectrumList = new LinkedList<>(); - for (int i=0; ibgAnalyseResult.MDC.get(i)) { - roiResults.setNidFlag(1); - } else { - roiResults.setNidFlag(0); - } - 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()); - } - }); - } + public void analyzePHDFile(BgDataAnlyseResultIn anlyseResultIn, BetaDataFile betaDataFile) { + //处理XeData表数据 + List xeDataList = betaDataFile.getXeDataList(); + if (CollectionUtils.isEmpty(xeDataList)) { + List xeResultsSpectrumList = betaDataFile.getXeResultsSpectrumList(); + xeDataList = getXeDataList(xeResultsSpectrumList); + } + for (GardsXeResults xeData :xeDataList) { + if (xeData.getNuclideName().equals(XeNuclideName.XE_131m)) { + xeData.setNidFlag(anlyseResultIn.getXe131mFlag()); + } else if (xeData.getNuclideName().equals(XeNuclideName.XE_133)) { + xeData.setNidFlag(anlyseResultIn.getXe133Flag()); + } else if (xeData.getNuclideName().equals(XeNuclideName.XE_133m)) { + xeData.setNidFlag(anlyseResultIn.getXe133mFlag()); + } else if (xeData.getNuclideName().equals(XeNuclideName.XE_135)) { + xeData.setNidFlag(anlyseResultIn.getXe135Flag()); } - } catch (Exception e) { - e.printStackTrace(); } - } - - public List getCalibrationPairs(BgDataAnlyseResultIn anlyseResultIn, Integer sampleId, Integer gasId, Integer detId, Integer idAnalysis) { - List calibrationPairsList = new LinkedList<>(); - for (int i=0; i< anlyseResultIn.getB_channel_sample().size(); i++){ - GardsCalibrationPairs calibrationPairs = new GardsCalibrationPairs(); - calibrationPairs.setSampleId(sampleId); - calibrationPairs.setIdAnalysis(idAnalysis); - calibrationPairs.setSampleType(SystemType.BETA.getType()); - calibrationPairs.setCaltype(CalType.ENERGY_CAL.getType()); - calibrationPairs.setInput(CalName.CalPHD.getType()); - calibrationPairs.setIdCalPoint(i); - calibrationPairs.setXValue(anlyseResultIn.getB_channel_sample().get(i)); - calibrationPairs.setYValue(anlyseResultIn.getB_energy_sample().get(i)); - calibrationPairsList.add(calibrationPairs); - } - for (int i=0; i< anlyseResultIn.getG_channel_sample().size(); i++){ - GardsCalibrationPairs calibrationPairs = new GardsCalibrationPairs(); - calibrationPairs.setSampleId(sampleId); - calibrationPairs.setIdAnalysis(idAnalysis); - calibrationPairs.setSampleType(SystemType.GAMMA.getType()); - calibrationPairs.setCaltype(CalType.ENERGY_CAL.getType()); - calibrationPairs.setInput(CalName.CalPHD.getType()); - calibrationPairs.setIdCalPoint(i); - calibrationPairs.setXValue(anlyseResultIn.getG_channel_sample().get(i)); - calibrationPairs.setYValue(anlyseResultIn.getG_energy_sample().get(i)); - calibrationPairsList.add(calibrationPairs); - } - - for (int i=0; i< anlyseResultIn.getB_channel_gas().size(); i++){ - GardsCalibrationPairs calibrationPairs = new GardsCalibrationPairs(); - calibrationPairs.setSampleId(gasId); - calibrationPairs.setIdAnalysis(idAnalysis); - calibrationPairs.setSampleType(SystemType.BETA.getType()); - calibrationPairs.setCaltype(CalType.ENERGY_CAL.getType()); - calibrationPairs.setInput(CalName.CalPHD.getType()); - calibrationPairs.setIdCalPoint(i); - calibrationPairs.setXValue(anlyseResultIn.getB_channel_gas().get(i)); - calibrationPairs.setYValue(anlyseResultIn.getB_energy_gas().get(i)); - calibrationPairsList.add(calibrationPairs); - } - - for (int i=0; i< anlyseResultIn.getG_channel_gas().size(); i++){ - GardsCalibrationPairs calibrationPairs = new GardsCalibrationPairs(); - calibrationPairs.setSampleId(gasId); - calibrationPairs.setIdAnalysis(idAnalysis); - calibrationPairs.setSampleType(SystemType.GAMMA.getType()); - calibrationPairs.setCaltype(CalType.ENERGY_CAL.getType()); - calibrationPairs.setInput(CalName.CalPHD.getType()); - calibrationPairs.setIdCalPoint(i); - calibrationPairs.setXValue(anlyseResultIn.getG_channel_gas().get(i)); - calibrationPairs.setYValue(anlyseResultIn.getG_energy_gas().get(i)); - calibrationPairsList.add(calibrationPairs); - } - - for (int i=0; i< anlyseResultIn.getB_channel_det().size(); i++){ - GardsCalibrationPairs calibrationPairs = new GardsCalibrationPairs(); - calibrationPairs.setSampleId(detId); - calibrationPairs.setIdAnalysis(idAnalysis); - calibrationPairs.setSampleType(SystemType.BETA.getType()); - calibrationPairs.setCaltype(CalType.ENERGY_CAL.getType()); - calibrationPairs.setInput(CalName.CalPHD.getType()); - calibrationPairs.setIdCalPoint(i); - calibrationPairs.setXValue(anlyseResultIn.getB_channel_det().get(i)); - calibrationPairs.setYValue(anlyseResultIn.getB_energy_det().get(i)); - calibrationPairsList.add(calibrationPairs); - } - - for (int i=0; i< anlyseResultIn.getG_channel_det().size(); i++){ - GardsCalibrationPairs calibrationPairs = new GardsCalibrationPairs(); - calibrationPairs.setSampleId(detId); - calibrationPairs.setIdAnalysis(idAnalysis); - calibrationPairs.setSampleType(SystemType.GAMMA.getType()); - calibrationPairs.setCaltype(CalType.ENERGY_CAL.getType()); - calibrationPairs.setInput(CalName.CalPHD.getType()); - calibrationPairs.setIdCalPoint(i); - calibrationPairs.setXValue(anlyseResultIn.getG_channel_det().get(i)); - calibrationPairs.setYValue(anlyseResultIn.getG_energy_det().get(i)); - calibrationPairsList.add(calibrationPairs); - } - return calibrationPairsList; - } - - public List getCalibration(BgDataAnlyseResultIn anlyseResultIn, Integer sampleId, Integer gasId, Integer detId, Integer idAnalysis) { - List calibrationSpectrumList = new LinkedList<>(); - if (Objects.nonNull(sampleId)) { - GardsCalibration calibrationB = new GardsCalibration(); - calibrationB.setSampleId(sampleId); - calibrationB.setIdAnalysis(idAnalysis); - calibrationB.setSampleType(SystemType.BETA.getType()); - calibrationB.setCalType(CalType.ENERGY_CAL.getType()); - calibrationB.setFunction(FittingType.POLY2.getCode()); - calibrationB.setFunctionDef(FittingType.POLY2.getDescription()); - calibrationB.setStartOfRange(0); - calibrationB.setEndOfRange(1); - List betaCollect = anlyseResultIn.getBetaCalibrationSpectrumList().stream().filter(item -> item.getDataType().equals(DataTypeAbbr.SAMPLEPHD.getType())).collect(Collectors.toList()); - GardsCalibrationSpectrum betaCalibrationSpectrum = betaCollect.get(0); - calibrationB.setCoeff1(Double.valueOf(betaCalibrationSpectrum.getCoeff1())); - calibrationB.setCoeff2(Double.valueOf(betaCalibrationSpectrum.getCoeff2())); - calibrationB.setCoeff3(Double.valueOf(betaCalibrationSpectrum.getCoeff3())); - calibrationSpectrumList.add(calibrationB); - - GardsCalibration calibrationG = new GardsCalibration(); - calibrationG.setSampleId(sampleId); - calibrationG.setIdAnalysis(idAnalysis); - calibrationG.setSampleType(SystemType.GAMMA.getType()); - calibrationG.setCalType(CalType.ENERGY_CAL.getType()); - calibrationG.setFunction(FittingType.POLY2.getCode()); - calibrationG.setFunctionDef(FittingType.POLY2.getDescription()); - calibrationG.setStartOfRange(0); - calibrationG.setEndOfRange(1); - List gammaCollect = anlyseResultIn.getGammaCalibrationSpectrumList().stream().filter(item -> item.getDataType().equals(DataTypeAbbr.SAMPLEPHD.getType())).collect(Collectors.toList()); - GardsCalibrationSpectrum gammaCalibrationSpectrum = gammaCollect.get(0); - calibrationG.setCoeff1(Double.valueOf(gammaCalibrationSpectrum.getCoeff1())); - calibrationG.setCoeff2(Double.valueOf(gammaCalibrationSpectrum.getCoeff2())); - calibrationG.setCoeff3(Double.valueOf(gammaCalibrationSpectrum.getCoeff3())); - calibrationSpectrumList.add(calibrationG); - } - - if (Objects.nonNull(gasId)) { - //gas文件 Beta部分 - GardsCalibration calibrationB = new GardsCalibration(); - calibrationB.setSampleId(gasId); - calibrationB.setIdAnalysis(idAnalysis); - calibrationB.setSampleType(SystemType.BETA.getType()); - calibrationB.setCalType(CalType.ENERGY_CAL.getType()); - calibrationB.setFunction(FittingType.POLY2.getCode()); - calibrationB.setFunctionDef(FittingType.POLY2.getDescription()); - calibrationB.setStartOfRange(0); - calibrationB.setEndOfRange(1); - List betaCollect = anlyseResultIn.getBetaCalibrationSpectrumList().stream().filter(item -> item.getDataType().equals(DataTypeAbbr.GASBKPHD.getType())).collect(Collectors.toList()); - GardsCalibrationSpectrum betaCalibrationSpectrum = betaCollect.get(0); - calibrationB.setCoeff1(Double.valueOf(betaCalibrationSpectrum.getCoeff1())); - calibrationB.setCoeff2(Double.valueOf(betaCalibrationSpectrum.getCoeff2())); - calibrationB.setCoeff3(Double.valueOf(betaCalibrationSpectrum.getCoeff3())); - calibrationSpectrumList.add(calibrationB); - //gas文件 gamma部分 - GardsCalibration calibrationG = new GardsCalibration(); - calibrationG.setSampleId(gasId); - calibrationG.setIdAnalysis(idAnalysis); - calibrationG.setSampleType(SystemType.GAMMA.getType()); - calibrationG.setCalType(CalType.ENERGY_CAL.getType()); - calibrationG.setFunction(FittingType.POLY2.getCode()); - calibrationG.setFunctionDef(FittingType.POLY2.getDescription()); - calibrationG.setStartOfRange(0); - calibrationG.setEndOfRange(1); - List gammaCollect = anlyseResultIn.getGammaCalibrationSpectrumList().stream().filter(item -> item.getDataType().equals(DataTypeAbbr.GASBKPHD.getType())).collect(Collectors.toList()); - GardsCalibrationSpectrum gammaCalibrationSpectrum = gammaCollect.get(0); - calibrationG.setCoeff1(Double.valueOf(gammaCalibrationSpectrum.getCoeff1())); - calibrationG.setCoeff2(Double.valueOf(gammaCalibrationSpectrum.getCoeff2())); - calibrationG.setCoeff3(Double.valueOf(gammaCalibrationSpectrum.getCoeff3())); - calibrationSpectrumList.add(calibrationG); - } - - if (Objects.nonNull(detId)) { - GardsCalibration calibrationB = new GardsCalibration(); - calibrationB.setSampleId(detId); - calibrationB.setIdAnalysis(idAnalysis); - calibrationB.setSampleType(SystemType.BETA.getType()); - calibrationB.setCalType(CalType.ENERGY_CAL.getType()); - calibrationB.setFunction(FittingType.POLY2.getCode()); - calibrationB.setFunctionDef(FittingType.POLY2.getDescription()); - calibrationB.setStartOfRange(0); - calibrationB.setEndOfRange(1); - List betaCollect = anlyseResultIn.getBetaCalibrationSpectrumList().stream().filter(item -> item.getDataType().equals(DataTypeAbbr.DETBKPHD.getType())).collect(Collectors.toList()); - GardsCalibrationSpectrum betaCalibrationSpectrum = betaCollect.get(0); - calibrationB.setCoeff1(Double.valueOf(betaCalibrationSpectrum.getCoeff1())); - calibrationB.setCoeff2(Double.valueOf(betaCalibrationSpectrum.getCoeff2())); - calibrationB.setCoeff3(Double.valueOf(betaCalibrationSpectrum.getCoeff3())); - calibrationSpectrumList.add(calibrationB); - GardsCalibration calibrationG = new GardsCalibration(); - calibrationG.setSampleId(detId); - calibrationG.setIdAnalysis(idAnalysis); - calibrationG.setSampleType(SystemType.GAMMA.getType()); - calibrationG.setCalType(CalType.ENERGY_CAL.getType()); - calibrationG.setFunction(FittingType.POLY2.getCode()); - calibrationG.setFunctionDef(FittingType.POLY2.getDescription()); - calibrationG.setStartOfRange(0); - calibrationG.setEndOfRange(1); - List gammaCollect = anlyseResultIn.getGammaCalibrationSpectrumList().stream().filter(item -> item.getDataType().equals(DataTypeAbbr.DETBKPHD.getType())).collect(Collectors.toList()); - GardsCalibrationSpectrum gammaCalibrationSpectrum = gammaCollect.get(0); - calibrationG.setCoeff1(Double.valueOf(gammaCalibrationSpectrum.getCoeff1())); - calibrationG.setCoeff2(Double.valueOf(gammaCalibrationSpectrum.getCoeff2())); - calibrationG.setCoeff3(Double.valueOf(gammaCalibrationSpectrum.getCoeff3())); - calibrationSpectrumList.add(calibrationG); - } - return calibrationSpectrumList; - } - - public void getROIChannel(Integer sampleId, Integer idAnalysis, List roiChannelsSpectrumList, List roiChannelsList, String dataType) { - roiChannelsSpectrumList = roiChannelsSpectrumList.stream().filter(item-> item.getDataType().equals(dataType)).collect(Collectors.toList()); - for (int i=0; i getXeDataList(BgDataAnlyseResultIn anlyseResultIn, Integer sampleId, Integer idAnalysis) { - List xeResultsList = new LinkedList<>(); - //Xe131m - GardsXeResultsSpectrum xe131m = new GardsXeResultsSpectrum(); - xe131m.setSampleId(sampleId); - xe131m.setIdAnalysis(idAnalysis); - xe131m.setNuclideName(XeNuclideName.XE_131m.getType()); - xe131m.setConc(anlyseResultIn.getXe131m_con()); - xe131m.setConcErr(anlyseResultIn.getXe131m_uncer()); - xe131m.setMdc(anlyseResultIn.getMdc_Xe131m()); - xe131m.setLc(anlyseResultIn.getLc_Xe131m()); - xe131m.setNidFlag(anlyseResultIn.getXe131mFlag()); - xeResultsList.add(xe131m); - //Xe133 - GardsXeResultsSpectrum xe133 = new GardsXeResultsSpectrum(); - xe133.setSampleId(sampleId); - xe133.setIdAnalysis(idAnalysis); - xe133.setNuclideName(XeNuclideName.XE_133.getType()); - xe133.setConc(anlyseResultIn.getXe133_con()); - xe133.setConcErr(anlyseResultIn.getXe133_uncer()); - xe133.setMdc(anlyseResultIn.getMdc_Xe133()); - xe133.setLc(anlyseResultIn.getLc_Xe133()); - xe133.setNidFlag(anlyseResultIn.getXe133Flag()); - xeResultsList.add(xe133); - //Xe133m - GardsXeResultsSpectrum xe133m = new GardsXeResultsSpectrum(); - xe133m.setSampleId(sampleId); - xe133m.setIdAnalysis(idAnalysis); - xe133m.setNuclideName(XeNuclideName.XE_133m.getType()); - xe133m.setConc(anlyseResultIn.getXe133m_con()); - xe133m.setConcErr(anlyseResultIn.getXe133m_uncer()); - xe133m.setMdc(anlyseResultIn.getMdc_Xe133m()); - xe133m.setLc(anlyseResultIn.getLc_Xe133m()); - xe133m.setNidFlag(anlyseResultIn.getXe133mFlag()); - xeResultsList.add(xe133m); - //Xe135 - GardsXeResultsSpectrum xe135 = new GardsXeResultsSpectrum(); - xe135.setSampleId(sampleId); - xe135.setIdAnalysis(idAnalysis); - xe135.setNuclideName(XeNuclideName.XE_135.getType()); - xe135.setConc(anlyseResultIn.getXe135_con()); - xe135.setConcErr(anlyseResultIn.getXe135_uncer()); - xe135.setMdc(anlyseResultIn.getMdc_Xe135()); - xe135.setLc(anlyseResultIn.getLc_Xe135()); - xe135.setNidFlag(anlyseResultIn.getXe135Flag()); - xeResultsList.add(xe135); - return xeResultsList; - } - - public List getXeResults(BgDataAnlyseResultIn anlyseResultIn, Integer sampleId, Integer idAnalysis) { - List xeResultsList = anlyseResultIn.getXeData(); - for (GardsXeResults xeResults:xeResultsList) { - xeResults.setIdAnalysis(idAnalysis); - xeResults.setSampleId(sampleId); - } - return xeResultsList; - } - - @Transactional - public boolean OriginalDataStore(BetaDataFile betaDataFile, String type, String filePathName) { - //根据新的文件路径名称查询数据是否存在 - GardsSampleData isExist = spectrumAnalysisMapper.findSampleByFile(filePathName); - //如果数据已经存入过数据库 则 修改状态后返回 - if (Objects.nonNull(isExist)){ - //如果文件已经存入过数据库则修改状态 - spectrumAnalysisMapper.updateAnalysesStatus(filePathName); - return true; - } - //读取文件内容 - EnergySpectrumStruct sourceData = null; - File file = null; - try { - if (Objects.nonNull(betaDataFile)){ - - if (type.equalsIgnoreCase("sample")) { - file = new File(betaDataFile.getSampleTmpPath()); - sourceData = betaDataFile.getSampleStruct(); - } else if (type.equalsIgnoreCase("gas")) { - file = new File(betaDataFile.getGasTmpPath()); - sourceData = betaDataFile.getGasStruct(); - } else if (type.equalsIgnoreCase("det")) { - file = new File(betaDataFile.getDetTmpPath()); - sourceData = betaDataFile.getDetStruct(); - } else if (type.equalsIgnoreCase("qc")) { - file = new File(betaDataFile.getQcTmpPath()); - sourceData = betaDataFile.getQcStruct(); - } - //获取文件中块名信息 - List readLines = getFileBlockList(file); - //查询台站id - Integer stationId = spectrumAnalysisMapper.getStationId(sourceData.site_code); - Integer detectorId = spectrumAnalysisMapper.getDetectorId(sourceData.detector_code); - if(Objects.isNull(stationId) || Objects.isNull(detectorId)) { - String error = "get station_id or detect_id error"; - return false; - } - //新增Gards_Sample_Data表数据 - sampleDataSpectrumService.saveSampleData(sourceData, stationId, detectorId, filePathName, readLines); - //获取sampleId - Integer sampleId = spectrumAnalysisMapper.getSampleId(filePathName); - //存储Gards_Sample_Aux表数据 - sampleAuxSpectrumService.saveSampleAux(sourceData, sampleId, readLines); - //判断文件是否包含Comment块 新增Gards_Description数据 - if (readLines.contains(SampleFileHeader.COMMENT.getMessage())){ - sampleDescriptionSpectrumService.saveSampleDescription(sourceData, sampleId); - } - //判断文件是否包含Certificate块 新增Gards_Sample_Cert数据 - if (readLines.contains(SampleFileHeader.CERTIFICATE.getMessage())){ - sampleCertSpectrumService.saveSampleCert(sourceData, sampleId); - sampleCertLineSpectrumService.saveSampleCertLine(sourceData, sampleId); - } - //新增Gards_Calibration_Pairs_Orig数据 - calibrationPairsOrigSpectrumService.saveGardsCalibrationPairsOrig(sourceData, sampleId, readLines); - //判断文件是否包含b-gEfficiency块 新增Gards_Sample_Cert数据 - if (readLines.contains(SampleFileHeader.BGEFFICIENCY.getMessage())){ - bgEfficiencyPairsSpectrumService.saveBgEfficiencyPairs(sourceData, sampleId); - } - //判断文件是否包含TotalEff块 新增Gards_Sample_Cert数据 - if (readLines.contains(SampleFileHeader.TOTALEFF.getMessage())){ - totalEfficiencyPairsSpectrumService.saveTotalEfficiencyPairs(sourceData, sampleId); - } - //判断文件是否包含Ratios块 新增Gards_Sample_Ratios数据 - if (readLines.contains(SampleFileHeader.RATIOS.getMessage())){ - sampleRatiosSpectrumService.saveSampleRatios(sourceData, sampleId); - } - //判断是否包含ROI_Limits块 新增Gards_ROI_Limits数据 - if (readLines.contains(SampleFileHeader.ROILIMITS.getMessage())){ - roiLimitsSpectrumService.saveRoiLimits(sourceData, sampleId); - } - //新增Gards_Spectrum数据 - spectrumService.saveSpectrum(sourceData, sampleId, readLines, filePathName); - //判断是否包含Histogram块 新增Gards_Histogram数据 - if (readLines.contains(SampleFileHeader.HISTOGRAM.getMessage())){ - histogramService.saveHistogram(sourceData, sampleId, filePathName); - } + anlyseResultIn.setXeData(xeDataList); + 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()); } - return true; - } catch (Exception e) { - throw new RuntimeException(e); - } + }); + //处理GammaCalibration的数据 + List gammaCalibrationSpectrumList = betaDataFile.getGammaCalibrationSpectrumEList(); + anlyseResultIn.setGammaCalibrationSpectrumList(gammaCalibrationSpectrumList); + //处理BetaCalibration数据 + List betaCalibrationSpectrumList = betaDataFile.getBetaCalibrationSpectrumEList(); + anlyseResultIn.setBetaCalibrationSpectrumList(betaCalibrationSpectrumList); + //存储roiChannel数据 + List roiChannelsSpectrumList = betaDataFile.getRoiChannelsSpectrumList(); + anlyseResultIn.setRoiChannelsSpectrumList(roiChannelsSpectrumList); + //存储roiResult的数据 + List roiResultsSpectrumList = betaDataFile.getRoiResultsSpectrumList(); + anlyseResultIn.setRoiResultsSpectrumList(roiResultsSpectrumList); } - public List getFileBlockList(File file) { - List readLines = new LinkedList<>(); - try { - List allLines = FileUtils.readLines(file, "UTF-8"); - for (String line:allLines) { - if (line.contains("#")){ - readLines.add(line); - } - } - } catch (IOException e) { - throw new RuntimeException(e); + public List getXeDataList(List xeResultsSpectrumList) { + List xeDataList = new LinkedList<>(); + for (GardsXeResultsSpectrum xeResultsSpectrum:xeResultsSpectrumList) { + GardsXeResults xeResults = new GardsXeResults(); + BeanUtil.copyProperties(xeResultsSpectrum, xeResults); + xeDataList.add(xeResults); } - return readLines; - } - - public List getROIResult(List roiResultsSpectrumList, Integer sampleId, Integer idAnalysis) { - List roiResultsList = new LinkedList<>(); - for (int i=0; i Date: Tue, 19 Mar 2024 17:16:45 +0800 Subject: [PATCH 096/133] =?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=A8=A1=E5=9D=97Beta=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=BE=93=E5=87=BA=E8=AF=AD=E5=8F=A5=E7=A7=BB?= =?UTF-8?q?=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java | 1 - 1 file changed, 1 deletion(-) 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 12421e5e..930294d8 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 @@ -4274,7 +4274,6 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements gardsROIResultsSpectrumService.saveGardsROIResults(anlyseResultIn, sampleId, idAnalysis); } //上传本次文件到ftp人工交互存储路径下 - long uploadStartTime = System.currentTimeMillis(); try { if (StringUtils.isNotBlank(sampleFilePathName)) { //sample文件的saveFile存储路径 From c9ee863667a900fedfd8f0ffdd9096600893d350 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 20 Mar 2024 14:02:54 +0800 Subject: [PATCH 097/133] =?UTF-8?q?=E6=93=8D=E4=BD=9C=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A4=B9=E5=88=86=E6=94=AF=E4=BA=BA=E5=B7=A5?= =?UTF-8?q?=E4=BA=A4=E4=BA=92=E6=A8=A1=E5=9D=97=EF=BC=8C=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=A4=B9=E7=9A=84=E5=89=8D=E7=BC=80=E8=B7=AF=E5=BE=84=E8=AF=BB?= =?UTF-8?q?=E5=8F=96=E4=B8=8D=E5=86=8D=E4=BD=BF=E7=94=A8FTP=E7=9A=84?= =?UTF-8?q?=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/GammaServiceImpl.java | 28 +++++++++---------- .../impl/SpectrumAnalysisServiceImpl.java | 28 +++++++++---------- .../service/impl/SpectrumFileServiceImpl.java | 4 +-- 3 files changed, 30 insertions(+), 30 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 54484465..01a77634 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 @@ -180,7 +180,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi return result; } // 切割数据库存储的文件路径获取路径信息 - String pathName = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + sampleFilePath.substring(0, sampleFilePath.lastIndexOf(StringPool.SLASH)); + String pathName = spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + sampleFilePath.substring(0, sampleFilePath.lastIndexOf(StringPool.SLASH)); // 切割数据库存储的文件路径获取文件名称 String fileName = sampleFilePath.substring(sampleFilePath.lastIndexOf(StringPool.SLASH) + 1); // 声明phd实体类 @@ -598,7 +598,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi Map map = new HashMap<>(); Cache phdCache = localCache.getPHDCache(); // 上传文件路径 - String path = ftpUtil.getFtpRootPath() + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName; + String path = spectrumPathProperties.getRootPath() + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName; // 获取当前角色的颜色配置 Map colorMap = sysUserColorService.initColor(userName); PHDFile phd = phdCache.getIfPresent(fileName + StringPool.DASH + userName); @@ -737,7 +737,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi result.error500("The comparison file path does not exist"); return result; } - compareFilePath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + compareFilePath; + compareFilePath = spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + compareFilePath; File compareFile = ftpUtil.downloadFile(compareFilePath); if (Objects.isNull(compareFile)) { result.error500("The comparison file path does not exist"); @@ -769,7 +769,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi long m_nCount = phd.getSpec().getNum_g_channel(); List vEnergy = phd.getVEnergy(); //加载compare文件 - String compareFilePath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName; + String compareFilePath = spectrumPathProperties.getRootPath() + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName; String fromPath = compareFilePath + StringPool.SLASH + compareFileName; File compareFile = ftpUtil.downloadFile(fromPath); if (Objects.nonNull(compareFile)) { @@ -819,7 +819,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi result.error500("The comparison file path does not exist"); return result; } - stripFilePath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + stripFilePath; + stripFilePath = spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + stripFilePath; File stripFile = ftpUtil.downloadFile(stripFilePath); if (Objects.isNull(stripFile)) { result.error500("The comparison file path does not exist"); @@ -868,7 +868,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi m_vCount.add(0L); } //加载strip文件 - String stripFilePath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName; + String stripFilePath = spectrumPathProperties.getRootPath() + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName; String fromPath = stripFilePath + StringPool.SLASH + stripFileName; File stripFile = ftpUtil.downloadFile(fromPath); if (Objects.nonNull(stripFile)) { @@ -3937,7 +3937,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi if (StringUtils.isBlank(reportPath)) { throw new RuntimeException("The automatic handler generated report does not exist!"); } - String pathFileName = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + reportPath + ".txt"; + String pathFileName = spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + reportPath + ".txt"; InputStream inputStream = null; ServletOutputStream outputStream = null; try { @@ -3971,7 +3971,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi public void exportARR(Integer sampleId, HttpServletResponse response) { // 获取自动处理生成的报告地址 String reportPath = spectrumAnalysisMapper.viewARR(sampleId); - String pathFileName = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + reportPath + ".txt"; + String pathFileName = spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + reportPath + ".txt"; InputStream inputStream = null; ServletOutputStream outputStream = null; try { @@ -4571,7 +4571,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi if (StringUtils.isBlank(logPath)) { throw new RuntimeException("The log generated by the automatic processor does not exist!"); } - String pathFileName = ftpUtil.getFtpRootPath() + spectrumPathProperties.getLogPath() + StringPool.SLASH + logPath; + String pathFileName = spectrumPathProperties.getRootPath() + spectrumPathProperties.getLogPath() + StringPool.SLASH + logPath; InputStream inputStream = null; ServletOutputStream outputStream = null; try { @@ -4790,7 +4790,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi // File baselineFile = new File(rootPath+middleData.analyses_baseline_absolute_filePath); // try { // FileInputStream in = new FileInputStream(baselineFile); -// ftpUtil.saveFile(ftpUtil.getFtpRootPath()+middleData.analyses_baseline_absolute_filePath, in); +// ftpUtil.saveFile(spectrumPathProperties.getRootPath()+middleData.analyses_baseline_absolute_filePath, in); // } catch (FileNotFoundException e) { // throw new RuntimeException(e); // } @@ -4799,7 +4799,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi // File lcFile = new File(rootPath+middleData.analyses_lc_absolute_filePath); // try { // FileInputStream in = new FileInputStream(lcFile); -// ftpUtil.saveFile(ftpUtil.getFtpRootPath()+middleData.analyses_lc_absolute_filePath, in); +// ftpUtil.saveFile(spectrumPathProperties.getRootPath()+middleData.analyses_lc_absolute_filePath, in); // } catch (FileNotFoundException e) { // throw new RuntimeException(e); // } @@ -4808,7 +4808,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi // File scacFile = new File(rootPath+middleData.analyses_scac_absolute_filePath); // try { // FileInputStream in = new FileInputStream(scacFile); -// ftpUtil.saveFile(ftpUtil.getFtpRootPath()+middleData.analyses_scac_absolute_filePath, in); +// ftpUtil.saveFile(spectrumPathProperties.getRootPath()+middleData.analyses_scac_absolute_filePath, in); // } catch (FileNotFoundException e) { // throw new RuntimeException(e); // } @@ -4819,7 +4819,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi try { FileUtil.writeString(gammaFileUtil.GetLogContent(middleData), logFile, "UTF-8"); FileInputStream in = new FileInputStream(logFile); - ftpUtil.saveFile(ftpUtil.getFtpRootPath()+middleData.analyses_absolute_LogPath, in); + ftpUtil.saveFile(spectrumPathProperties.getRootPath()+middleData.analyses_absolute_LogPath, in); } catch (FileNotFoundException e) { throw new RuntimeException(e); } finally { @@ -4832,7 +4832,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi try { FileUtil.writeString(gammaFileUtil.GetReportContent(middleData), rptFile, "UTF-8"); FileInputStream in = new FileInputStream(rptFile); - ftpUtil.saveFile(ftpUtil.getFtpRootPath()+middleData.analyses_absolute_ReportPath+".txt", in); + ftpUtil.saveFile(spectrumPathProperties.getRootPath()+middleData.analyses_absolute_ReportPath+".txt", in); } catch (FileNotFoundException e) { throw new RuntimeException(e); } finally { 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 930294d8..cf20f059 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 @@ -301,7 +301,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements Result result = new Result(); List> resultList = new LinkedList<>(); String userName = JwtUtil.getUserNameByToken(request); - String filePath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getUploadPath() + StringPool.SLASH +userName; + String filePath = spectrumPathProperties.getRootPath() + spectrumPathProperties.getUploadPath() + StringPool.SLASH +userName; String sampleRx = "[a-zA-Z]{3}[0-9]{2}_[0-9]{3}-[0-9]{8}_[0-9]{4}_S_(FULL_|PREL_)\\d+\\.PHD"; Pattern regexPattern = Pattern.compile(sampleRx); String sampleRx1 = "[a-zA-Z]{3}[0-9]{2}_[0-9]{3}-[0-9]{8}_[0-9]{4}_S_(FULL_|PREL_)\\d+\\.\\d+\\.PHD"; @@ -482,7 +482,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements betaDataFile.setSampleId(String.valueOf(sampleId)); //判断sample信息是否存在 if (Objects.nonNull(sample)) { - betaDataFile.setSampleFilePathName(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbSpectrumFilePath.getSampleFilePath()); + betaDataFile.setSampleFilePathName(spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbSpectrumFilePath.getSampleFilePath()); betaDataFile.setSampleFileName(sampleFileName); sampleTmp = ftpUtil.downloadFile(betaDataFile.getSampleFilePathName()); if (Objects.nonNull(sampleTmp)) { @@ -519,7 +519,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } //判断gas信息是否存在 if (Objects.nonNull(gasBg)) { - betaDataFile.setGasFilePathName(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbSpectrumFilePath.getGasBgFilePath()); + betaDataFile.setGasFilePathName(spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbSpectrumFilePath.getGasBgFilePath()); betaDataFile.setGasFileName(gasFileName); gasTmp = ftpUtil.downloadFile(betaDataFile.getGasFilePathName()); if (Objects.nonNull(gasTmp)) { @@ -556,7 +556,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } //判断det信息是否存在 if (Objects.nonNull(detBg)) { - betaDataFile.setDetFilePathName(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbSpectrumFilePath.getDetBgFilePath()); + betaDataFile.setDetFilePathName(spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbSpectrumFilePath.getDetBgFilePath()); betaDataFile.setDetFileName(detFileName); detTmp = ftpUtil.downloadFile(betaDataFile.getDetFilePathName()); if (Objects.nonNull(detTmp)) { @@ -593,7 +593,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } //判断qc信息是否存在 if (Objects.nonNull(qc)) { - betaDataFile.setQcFilePathName(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbQcFilePath); + betaDataFile.setQcFilePathName(spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH +dbQcFilePath); betaDataFile.setQcFileName(qcFileName); qcTmp = ftpUtil.downloadFile(betaDataFile.getQcFilePathName()); if (Objects.nonNull(qcTmp)) { @@ -672,7 +672,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements //获取用户名 String userName = JwtUtil.getUserNameByToken(request); //上传文件路径 - String path = ftpUtil.getFtpRootPath() + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName; + String path = spectrumPathProperties.getRootPath() + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName; Map resultMap = new HashMap<>(); Map sampleMap = new HashMap<>(); Map gasBgMap = new HashMap<>(); @@ -929,7 +929,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements InputStream inputStream = null; ServletOutputStream outputStream = null; try { - inputStream = ftpUtil.downloadFileStream(ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + reportPath + ".txt"); + inputStream = ftpUtil.downloadFileStream(spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + reportPath + ".txt"); if (Objects.nonNull(inputStream)){ outputStream = response.getOutputStream(); byte[] buffer = new byte[1024]; @@ -3996,7 +3996,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements InputStream inputStream = null; ServletOutputStream outputStream = null; try { - inputStream = ftpUtil.downloadFileStream(ftpUtil.getFtpRootPath() + spectrumPathProperties.getLogPath() + StringPool.SLASH + logPath); + inputStream = ftpUtil.downloadFileStream(spectrumPathProperties.getRootPath() + spectrumPathProperties.getLogPath() + StringPool.SLASH + logPath); if (Objects.nonNull(inputStream)){ outputStream = response.getOutputStream(); byte[] buffer = new byte[1024]; @@ -4277,7 +4277,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements try { if (StringUtils.isNotBlank(sampleFilePathName)) { //sample文件的saveFile存储路径 - String saveSamplePath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + sampleFilePathName; + String saveSamplePath = spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + sampleFilePathName; if (StringUtils.isNotBlank(betaDataFile.getSampleTmpPath()) && !saveSamplePath.equals(betaDataFile.getSampleTmpPath().replace(StringPool.BACK_SLASH, StringPool.SLASH))) { File sampleTmp = new File(betaDataFile.getSampleTmpPath()); ftpUtil.saveFile(saveSamplePath, new FileInputStream(sampleTmp)); @@ -4285,7 +4285,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } if (StringUtils.isNotBlank(gasFilePathName)) { //gas文件的saveFile存储路径 - String saveGasPath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + gasFilePathName; + String saveGasPath = spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + gasFilePathName; if (StringUtils.isNotBlank(betaDataFile.getGasTmpPath()) && !saveGasPath.equals(betaDataFile.getGasTmpPath().replace(StringPool.BACK_SLASH, StringPool.SLASH))) { File gasTmp = new File(betaDataFile.getGasTmpPath()); ftpUtil.saveFile(saveGasPath, new FileInputStream(gasTmp)); @@ -4293,7 +4293,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } if (StringUtils.isNotBlank(detFilePathName)) { //det文件的saveFile存储路径 - String saveDetPath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + detFilePathName; + String saveDetPath = spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + detFilePathName; if (StringUtils.isNotBlank(betaDataFile.getDetTmpPath()) && !saveDetPath.equals(betaDataFile.getDetTmpPath().replace(StringPool.BACK_SLASH, StringPool.SLASH))) { File detTmp = new File(betaDataFile.getDetTmpPath()); ftpUtil.saveFile(saveDetPath, new FileInputStream(detTmp)); @@ -4301,7 +4301,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } if (StringUtils.isNotBlank(qcFilePathName)) { //qc文件的saveFile存储路径 - String saveQcPath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + qcFilePathName; + String saveQcPath = spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + qcFilePathName; if (StringUtils.isNotBlank(betaDataFile.getQcTmpPath()) && !saveQcPath.equals(betaDataFile.getQcTmpPath().replace(StringPool.BACK_SLASH, StringPool.SLASH))) { File qcTmp = new File(betaDataFile.getQcTmpPath()); ftpUtil.saveFile(saveQcPath, new FileInputStream(qcTmp)); @@ -4324,7 +4324,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements FileUtil.writeString("", logFile, "UTF-8"); } FileInputStream in = new FileInputStream(logFile); - ftpUtil.saveFile(ftpUtil.getFtpRootPath()+analyses_absolute_LogPath, in); + ftpUtil.saveFile(spectrumPathProperties.getRootPath()+analyses_absolute_LogPath, in); } catch (FileNotFoundException e) { throw new RuntimeException(e); } @@ -4336,7 +4336,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements try { FileUtil.writeString(rptContent, rptFile, "UTF-8"); FileInputStream in = new FileInputStream(rptFile); - ftpUtil.saveFile(ftpUtil.getFtpRootPath()+analyses_absolute_ReportPath+".txt", in); + ftpUtil.saveFile(spectrumPathProperties.getRootPath()+analyses_absolute_ReportPath+".txt", in); } catch (FileNotFoundException e) { throw new RuntimeException(e); } finally { diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumFileServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumFileServiceImpl.java index 9f2306e9..f758432a 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumFileServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumFileServiceImpl.java @@ -71,7 +71,7 @@ public class SpectrumFileServiceImpl implements ISpectrumFileService { ZipInputStream zipInputStream = null; String slash = SymbolConstant.SINGLE_SLASH; //上传文件夹路径 - String filePath = ftpUtil.getFtpRootPath() + slash + spectrumPathProperties.getUploadPath() + slash + username; + String filePath = spectrumPathProperties.getRootPath() + slash + spectrumPathProperties.getUploadPath() + slash + username; //本地临时文件夹路径 String tempFilePath = System.getProperty("java.io.tmpdir") + username + slash; //文件名称集合 @@ -176,7 +176,7 @@ public class SpectrumFileServiceImpl implements ISpectrumFileService { String username = user.getUsername(); String slash = SymbolConstant.SINGLE_SLASH; String comma = SymbolConstant.COMMA; - String filePath = ftpUtil.getFtpRootPath() + spectrumPathProperties.getUploadPath() + slash + username; + String filePath = spectrumPathProperties.getRootPath() + spectrumPathProperties.getUploadPath() + slash + username; FTPClient ftpClient = null; List fileDtos = new ArrayList<>(); Page page = new Page<>(pageNo, pageSize); From 89075bef6d4c935760ceb44f8473b97bf0cd61cb Mon Sep 17 00:00:00 2001 From: nieziyan Date: Thu, 21 Mar 2024 18:08:11 +0800 Subject: [PATCH 098/133] =?UTF-8?q?feat=EF=BC=9A1.=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=A8=A1=E5=9D=97FTP=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E6=9B=BF=E6=8D=A2=E4=B8=BA=E6=9C=AC=E5=9C=B0=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=9C=8D=E5=8A=A12.=E6=97=A5=E5=BF=97=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=A2=9E=E5=8A=A0=E5=88=86=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/comparator/FileComparator.java | 4 +- .../controller/LogManageController.java | 19 +- .../modules/service/ILogManageService.java | 12 +- .../service/impl/LogManageServiceImpl.java | 263 ++++++++---------- .../src/main/resources/application.yml | 3 +- 5 files changed, 132 insertions(+), 169 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/comparator/FileComparator.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/comparator/FileComparator.java index 28626188..4250675b 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/comparator/FileComparator.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/comparator/FileComparator.java @@ -6,8 +6,8 @@ import java.util.Comparator; public class FileComparator implements Comparator { - private String field; - private String order; + private final String field; + private final String order; public FileComparator(String field, String order) { this.field = field; diff --git a/jeecg-module-log-manage/src/main/java/org/jeecg/modules/controller/LogManageController.java b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/controller/LogManageController.java index bf783238..9b2ff809 100644 --- a/jeecg-module-log-manage/src/main/java/org/jeecg/modules/controller/LogManageController.java +++ b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/controller/LogManageController.java @@ -2,7 +2,9 @@ package org.jeecg.modules.controller; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.jeecg.common.api.vo.Result; import org.jeecg.common.util.FTPUtil; +import org.jeecg.modules.base.bizVo.FileVo; import org.jeecg.modules.entity.FileInfo; import org.jeecg.modules.entity.LogManage; import org.jeecg.modules.service.ILogManageService; @@ -20,31 +22,24 @@ import java.util.List; @Api(value = "日志管理", tags = "日志管理") public class LogManageController { - @Autowired - private FTPUtil ftpUtil; @Autowired private ILogManageService logManageService; @GetMapping("findFtpFolders") @ApiOperation(value = "查询日志文件夹树形结构", notes = "查询日志文件夹树形结构") public List findFtpFolders(String workPath) { - return logManageService.findFtpFolders(workPath); + return logManageService.fileTree(workPath); } - /** - * 查询目录下文件内容 - * @param path - * @return - */ @GetMapping("findFiles") @ApiOperation(value = "查询目录下文件内容", notes = "查询目录下文件内容") - public List findFiles(String path) { - return logManageService.findFiles(path); + public Result findFiles(String path, FileVo fileVo) { + return logManageService.findFiles(path, fileVo); } @PostMapping("downloadFile") @ApiOperation(value = "ftp文件下载", notes = "ftp文件下载") - public void downloadFile(String localPath, String fileName, HttpServletResponse response) { - ftpUtil.downloadFTPFile(localPath, response); + public void downloadFile(String localPath, HttpServletResponse response) { + logManageService.downloadFile(localPath, response); } } diff --git a/jeecg-module-log-manage/src/main/java/org/jeecg/modules/service/ILogManageService.java b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/service/ILogManageService.java index bab2dce0..5a073fc1 100644 --- a/jeecg-module-log-manage/src/main/java/org/jeecg/modules/service/ILogManageService.java +++ b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/service/ILogManageService.java @@ -1,24 +1,24 @@ package org.jeecg.modules.service; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.base.bizVo.FileVo; import org.jeecg.modules.entity.FileInfo; import org.jeecg.modules.entity.LogManage; +import javax.servlet.http.HttpServletResponse; import java.util.List; public interface ILogManageService { /** * 查询日志文件夹树形结构 - * @param workPath - * @return */ - List findFtpFolders(String workPath); + List fileTree(String workPath); /** * 查询目录下文件内容 - * @param path - * @return */ - List findFiles(String path); + Result findFiles(String path, FileVo fileVo); + void downloadFile(String localPath, HttpServletResponse response); } diff --git a/jeecg-module-log-manage/src/main/java/org/jeecg/modules/service/impl/LogManageServiceImpl.java b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/service/impl/LogManageServiceImpl.java index 3138b956..33fc1c18 100644 --- a/jeecg-module-log-manage/src/main/java/org/jeecg/modules/service/impl/LogManageServiceImpl.java +++ b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/service/impl/LogManageServiceImpl.java @@ -1,192 +1,159 @@ package org.jeecg.modules.service.impl; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.ListUtil; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.StringPool; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.Prompt; +import org.jeecg.common.properties.SpectrumPathProperties; import org.jeecg.common.util.DateUtils; -import org.jeecg.common.util.FTPUtil; +import org.jeecg.common.util.ExportUtil; +import org.jeecg.common.util.PageUtil; +import org.jeecg.modules.base.bizVo.FileVo; import org.jeecg.modules.entity.FileInfo; import org.jeecg.modules.entity.LogManage; import org.jeecg.modules.service.ILogManageService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import java.util.*; +import java.util.stream.Collectors; -@Service("logManageService") +@Slf4j +@Service public class LogManageServiceImpl implements ILogManageService { @Autowired - private FTPUtil ftpUtil; + private SpectrumPathProperties spectrumPath; @Override - public List findFtpFolders(String workPath) { + public List fileTree(String workPath) { List result = new ArrayList<>(); - FTPClient ftpClient = ftpUtil.LoginFTP(); - if(Objects.isNull(ftpClient)){ - throw new RuntimeException("ftp connection failed!"); + workPath = spectrumPath.getRootPath() + StringPool.SLASH + workPath; + List files = ListUtil.toList(FileUtil.ls(workPath)); + if (CollUtil.isEmpty(files)) return result; + int num = 1; + for (File file : files) { + LogManage logManage = new LogManage(); + logManage.setName(file.getName()); + logManage.setOrderNum(num++); + logManage.setPath(workPath + StringPool.SLASH + file.getName()); + List children = this.getChildren(logManage); + logManage.setHashChild(CollUtil.isNotEmpty(children)); + logManage.setChildren(children); + result.add(logManage); } - try { - //切换被动模式 - ftpClient.enterLocalPassiveMode(); - ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); - // 设置编码,当文件中存在中文且上传后文件乱码时可使用此配置项 - ftpClient.setControlEncoding("UTF-8"); - ftpClient.setFileTransferMode(FTPClient.STREAM_TRANSFER_MODE); - //切换工作文件路径 - workPath = ftpUtil.getFtpRootPath()+StringPool.SLASH+workPath; - ftpClient.changeWorkingDirectory(workPath); - List ftpFiles = Arrays.asList(ftpClient.listDirectories()); - if (CollectionUtils.isNotEmpty(ftpFiles)){ - int num =1; - for (FTPFile ftpFile:ftpFiles) { - LogManage logManage = new LogManage(); - logManage.setName(ftpFile.getName()); - logManage.setOrderNum(num); - logManage.setParentNum(0); - logManage.setPath(workPath + StringPool.SLASH + ftpFile.getName()); - result.add(logManage); - num++; - } - } - if (CollectionUtils.isNotEmpty(result)){ - List list = new LinkedList<>(); - for (LogManage logManage:result) { - list = this.findDirectory(ftpClient, list, logManage.getOrderNum(), workPath + StringPool.SLASH + logManage.getName() , logManage.getName()); - ftpClient.changeToParentDirectory(); - } - result.addAll(list); - } - - } catch (IOException e) { - throw new RuntimeException(e); - } finally { - try { - if (ftpClient != null){ - ftpClient.disconnect(); - } - } catch (IOException e) { - throw new RuntimeException(e); - } - } - result = this.LogManageTree(result); return result; } @Override - public List findFiles(String path) { - List result = new ArrayList<>(); - FTPClient ftpClient = ftpUtil.LoginFTP(); - if (Objects.isNull(ftpClient)){ - throw new RuntimeException("ftp connection failed!"); + public Result findFiles(String path, FileVo fileVo) { + String name = fileVo.getName(); + Integer pageNo = fileVo.getPageNo(); + Integer pageSize = fileVo.getPageSize(); + Page page = new Page<>(pageNo, pageSize); + List files = CollUtil.toList(FileUtil.ls(path)); + // 文件名过滤 + if (StrUtil.isNotBlank(name)) + files = files.stream().filter(file -> StrUtil.containsIgnoreCase(file.getName(), name)) + .collect(Collectors.toList()); + page.setTotal(files.size()); + // 分页 + files = PageUtil.page(pageNo, pageSize, files); + List records = new ArrayList<>(); + for (File file : files) { + if (FileUtil.isDirectory(file)) continue; + FileInfo fileInfo = new FileInfo(); + fileInfo.setFileName(file.getName()); + fileInfo.setFilePath(path + StringPool.SLASH + file.getName()); + fileInfo.setFileSize(FileUtil.readableFileSize(file)); + fileInfo.setFileDate(DateUtil.formatDateTime(FileUtil.lastModifiedTime(file))); + records.add(fileInfo); } + page.setRecords(records); + return Result.OK(page); + } + + @Override + public void downloadFile(String localPath, HttpServletResponse response) { + OutputStream outputStream = null; + InputStream inputStream = null; try { - //切换被动模式 - ftpClient.enterLocalPassiveMode(); - ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); - // 设置编码,当文件中存在中文且上传后文件乱码时可使用此配置项 - ftpClient.setControlEncoding("UTF-8"); - ftpClient.setFileTransferMode(FTPClient.STREAM_TRANSFER_MODE); - //切换工作文件路径 - ftpClient.changeWorkingDirectory(path); - List ftpFiles = Arrays.asList(ftpClient.listFiles()); - if (CollectionUtils.isNotEmpty(ftpFiles)){ - for (FTPFile ftpFile:ftpFiles) { - if (ftpFile.isFile()){ - FileInfo fileInfo = new FileInfo(); - fileInfo.setFileName(ftpFile.getName()); - fileInfo.setFilePath(path + StringPool.SLASH + ftpFile.getName()); - fileInfo.setFileSize(String.format("%.2f", Double.valueOf(Double.valueOf(ftpFile.getSize())/1024)) + "KB"); - fileInfo.setFileDate(DateUtils.formatDate(ftpFile.getTimestamp(),"yyyy-MM-dd")); - result.add(fileInfo); - } - } + // 如果是目录 则直接退出方法 + if (FileUtil.isDirectory(localPath)) return; + + // 判断是否存在此文件 + if (!FileUtil.exist(localPath)) return; + + // 获取文件名 + String fileName = FileUtil.getName(localPath); + + inputStream = FileUtil.getInputStream(localPath); + outputStream = ExportUtil.stream(response, fileName); + + // 缓冲区大小 + byte[] buffer = new byte[4096]; + int bytesRead; + + // 将文件输出流写入到输出流中 + while ((bytesRead = inputStream.read(buffer)) != -1) { + outputStream.write(buffer, 0, bytesRead); } } catch (IOException e) { - throw new RuntimeException(e); + log.error("文件{}下载失败 :{}", localPath, e.getMessage()); } finally { try { - if (ftpClient != null){ - ftpClient.disconnect(); - } + if (ObjectUtil.isNotNull(inputStream))inputStream.close(); + if (ObjectUtil.isNotNull(outputStream))outputStream.close(); } catch (IOException e) { - throw new RuntimeException(e); + e.printStackTrace(); } } - return result; } /** - * 遍历查询当前路径下的文件夹信息 - * @param ftpClient - * @param list - * @param filePath 以"/"开始和结束 - * @return + * 获取当前目录节点所有子孙节点Tree */ - public List findDirectory(FTPClient ftpClient, List list, Integer parentNum, String filePath, String fileName){ - try { - //切换被动模式 - ftpClient.enterLocalPassiveMode(); - ftpClient.changeWorkingDirectory(fileName); - List ftpFiles = Arrays.asList(ftpClient.listDirectories()); - if (CollectionUtils.isNotEmpty(ftpFiles)){ - int num = 1; - for (FTPFile file : ftpFiles) { - if (file.isDirectory()) { - LogManage logManage = new LogManage(); - logManage.setName(file.getName()); - logManage.setOrderNum(parentNum*10+num); - logManage.setParentNum(parentNum); - logManage.setPath(filePath + StringPool.SLASH + file.getName()); - list.add(logManage); - // 需要加此判断。否则,ftp默认将‘项目文件所在目录之下的目录(./)’与‘项目文件所在目录向上一级目录下的目录(../)’都纳入递归,这样下去就陷入一个死循环了。需将其过滤掉。 - if (!".".equals(file.getName()) && !"..".equals(file.getName())) { - findDirectory(ftpClient, list, parentNum*10+num, filePath + StringPool.SLASH + file.getName(), file.getName()); - ftpClient.changeToParentDirectory(); - } - num++; - } - } - } - } catch (IOException e) { - throw new RuntimeException(e); - } - return list; - } - - /** - * 将当前的文件夹转换成树形结构 - * @param logManages - * @return - */ - public List LogManageTree(List logManages){ - if (logManages == null) { - return null; - } + private List getChildren(LogManage parent){ List result = new LinkedList<>(); - Integer TOP_NODE_ID = 0; - logManages.forEach(logManage -> { - Integer pid = logManage.getParentNum(); - if (pid == null || TOP_NODE_ID.equals(pid)) { - result.add(logManage); - return; - } - for (LogManage manage : logManages) { - Integer id = manage.getOrderNum(); - if (id != null && id.equals(pid)) { - if (manage.getChildren() == null) { - manage.initChildren(); - } - logManage.setHashParent(true); - manage.getChildren().add(logManage); - manage.setHashChild(true); - return; - } - } - }); + String parentPath = parent.getPath(); + // 如果是文件 则直接返回空集合 + if (FileUtil.isFile(parentPath)) return result; + List files = ListUtil.toList(FileUtil.ls(parentPath)); + // 如果当前目录不存在子文件 则返回空集合 + if (CollUtil.isEmpty(files)) return result; + int parentOrderNum = parent.getOrderNum(); + int num = parentOrderNum * 10 + 1; + for (File file : files) { + // 过滤掉文件 只收集目录 + if (FileUtil.isFile(file)) continue; + LogManage logManage = new LogManage(); + logManage.setName(file.getName()); + logManage.setOrderNum(num++); + logManage.setHashParent(true); + logManage.setParentNum(parentOrderNum); + logManage.setPath(parentPath + StringPool.SLASH + file.getName()); + List children = getChildren(logManage); + logManage.setHashChild(CollUtil.isNotEmpty(children)); + logManage.setChildren(children); + result.add(logManage); + } return result; } - } 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 a6d71a86..4ba3ba15 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 @@ -15,4 +15,5 @@ spring: config: import: - optional:nacos:armd.yaml - - optional:nacos:armd-@profile.name@.yaml \ No newline at end of file + - optional:nacos:armd-@profile.name@.yaml + - optional:nacos:armd-analysis-@profile.name@.yaml \ No newline at end of file From 83017ee87752f1e4a0656f81697e3d37c3dd575c Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 22 Mar 2024 09:24:55 +0800 Subject: [PATCH 099/133] =?UTF-8?q?=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=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E6=95=B0=E6=8D=AE=E6=97=B6=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=9A=84=E5=B1=9E=E4=BA=8E=E5=9B=A0=E4=B8=BA?= =?UTF-8?q?=E7=BC=93=E5=AD=98=E5=B7=B2=E7=BB=8F=E5=AD=98=E5=9C=A8=E7=9A=84?= =?UTF-8?q?=E6=83=85=E5=86=B5=E5=AF=BC=E8=87=B4=E6=95=B0=E6=8D=AE=E8=A2=AB?= =?UTF-8?q?=E9=87=8D=E7=BD=AE=EF=BC=8C=E5=AD=98=E5=82=A8=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E6=97=B6=E4=B8=8B=E6=A0=87=E8=B6=8A=E7=95=8C=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/SpectrumAnalysisServiceImpl.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 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 cf20f059..0004f64a 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 @@ -607,6 +607,13 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } //更新缓存数据对应的缓存数据 phdFileUtil.createBgCalPara(betaDataFile, gammaCalibrationSpectrumList, betaCalibrationSpectrumList, gammaCalibrationPairsList, betaCalibrationPairsList); + //第一次加载时初始化数据库数据 + betaDataFile.setGammaCalibrationSpectrumEList(gammaCalibrationSpectrumList); + betaDataFile.setBetaCalibrationSpectrumEList(betaCalibrationSpectrumList); + betaDataFile.setRoiChannelsSpectrumList(roiChannelsSpectrumList); + betaDataFile.setRoiResultsSpectrumList(roiResultsSpectrumList); + betaDataFile.setGammaCalibrationPairsList(gammaCalibrationPairsList); + betaDataFile.setBetaCalibrationPairsList(betaCalibrationPairsList); } else { xeResultsSpectrumList = betaDataFile.getXeResultsSpectrumList(); sampleMap = loadData("sample", betaDataFile); @@ -641,12 +648,6 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements xeData.setConcErr(Double.valueOf(NumberFormatUtil.numberSixLen(String.valueOf(xeData.getConcErr())))); } } - betaDataFile.setGammaCalibrationSpectrumEList(gammaCalibrationSpectrumList); - betaDataFile.setBetaCalibrationSpectrumEList(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)); From 2a99fabe53e0bbbe65c4050b8d7b1f9eb5a7aad2 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 11 Apr 2024 11:03:22 +0800 Subject: [PATCH 100/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97Beta=E4=BF=9D=E5=AD=98=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=88=B0=E6=95=B0=E6=8D=AE=E5=BA=93=E6=97=B6=EF=BC=8C=E5=A4=84?= =?UTF-8?q?=E7=90=86=E6=95=B0=E6=8D=AE=E6=A0=B8=E7=B4=A0=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E5=8C=B9=E9=85=8D=E6=97=B6=E5=A4=A7=E5=B0=8F=E5=86=99=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 | 8 ++++---- 1 file changed, 4 insertions(+), 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 0004f64a..55ea50b6 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 @@ -5784,13 +5784,13 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements xeDataList = getXeDataList(xeResultsSpectrumList); } for (GardsXeResults xeData :xeDataList) { - if (xeData.getNuclideName().equals(XeNuclideName.XE_131m)) { + if (xeData.getNuclideName().equals(XeNuclideName.XE_131m.getType())) { xeData.setNidFlag(anlyseResultIn.getXe131mFlag()); - } else if (xeData.getNuclideName().equals(XeNuclideName.XE_133)) { + } else if (xeData.getNuclideName().equals(XeNuclideName.XE_133.getType())) { xeData.setNidFlag(anlyseResultIn.getXe133Flag()); - } else if (xeData.getNuclideName().equals(XeNuclideName.XE_133m)) { + } else if (xeData.getNuclideName().equals(XeNuclideName.XE_133m.getType())) { xeData.setNidFlag(anlyseResultIn.getXe133mFlag()); - } else if (xeData.getNuclideName().equals(XeNuclideName.XE_135)) { + } else if (xeData.getNuclideName().equals(XeNuclideName.XE_135.getType())) { xeData.setNidFlag(anlyseResultIn.getXe135Flag()); } } From 3343412516b3434c2aa7decbe9b38b23d20904ad Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 11 Apr 2024 16:51:26 +0800 Subject: [PATCH 101/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97Gamma=E9=83=A8=E5=88=86=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E9=80=BB=E8=BE=91=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=B3=B0?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E4=BD=BF=E7=94=A8=E7=BC=93=E5=AD=98=E7=9A=84?= =?UTF-8?q?=E6=A0=B8=E7=B4=A0=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/modules/service/impl/GammaServiceImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 01a77634..64014b69 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 @@ -1302,7 +1302,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi HashMap map = new HashMap<>(); // 根据boolean 决定是否保留本次数据 如果保留则不需要操作vPeak 并重新拟合线 if (accept) { - Map nuclideLinesMap = (Map) redisUtil.get(userName+StringPool.DASH+phd.getHeader().getSystem_type()); + Map nuclideLinesMap = phd.getPhdNuclideMap();//(Map) redisUtil.get(userName+StringPool.DASH+phd.getHeader().getSystem_type()); if (flag.equalsIgnoreCase("insert")) {// 如果传递的flag标识 是 Insert则进行峰值的插入 //重新赋值index for (int k=0; k vPeak = gammaFileUtil.InitPeakTable(phd.getVPeak()); map.put("table", vPeak); //如果当前缓存的谱核素信息不包含当前核素 From 9f9466b52998856e4f250fd092b7e98e5a5e995c Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 12 Apr 2024 10:50:23 +0800 Subject: [PATCH 102/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97Gamma=E9=83=A8=E5=88=86=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=A0=B8=E7=B4=A0=E6=96=B9=E6=B3=95=E5=A2=9E=E5=8A=A0=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E6=A0=B8=E7=B4=A0=E5=AD=98=E5=9C=A8=E4=B8=8D=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E6=B7=BB=E5=8A=A0=E6=A0=B8=E7=B4=A0=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=20=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92=E6=A8=A1=E5=9D=97Beta?= =?UTF-8?q?=E9=83=A8=E5=88=86=E9=87=8D=E6=96=B0=E5=88=86=E6=9E=90=E5=85=A8?= =?UTF-8?q?=E9=83=A8=E8=B0=B1=E4=BF=A1=E6=81=AF=EF=BC=8C=E8=B5=8B=E5=80=BC?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/service/impl/GammaServiceImpl.java | 5 ++++- .../impl/SpectrumAnalysisServiceImpl.java | 16 ++++++++-------- 2 files changed, 12 insertions(+), 9 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 64014b69..05fd4687 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 @@ -1685,7 +1685,10 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi // 用户当前的核素信息新增核素名称 list_identify.add(nuclideName); // 根据要进行修改的列的数据下标 操作Vpeak数据 - phd.getVPeak().get(curRow).nuclides.add(nuclideName); + List peakNuclides = phd.getVPeak().get(curRow).nuclides; + if (peakNuclides.indexOf(nuclideName) < 0 ) { + peakNuclides.add(nuclideName); + } // 查询当前用户所关心的核素名称 Map mapNucLines = (Map) redisUtil.get(userName+StringPool.DASH+phd.getHeader().getSystem_type()); //用户当前缓存的核素信息 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 55ea50b6..95940b2f 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 @@ -3523,15 +3523,15 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements betaDataFile.setBetaFittingPara(betaDataFile.getBetaFittingParaNow()); betaDataFile.setBetaFittingParaToUi(betaDataFile.getBetaFittingParaToUiNow()); betaDataFile.setBetaNewEnergyList(betaDataFile.getBetaNewEnergyListNow()); + //将新的数组封装到各自的数组中 + betaList = betaDataFile.getBetaList(); + betaFittingPara = betaDataFile.getBetaFittingPara(); + betaFittingParaToUi = betaDataFile.getBetaFittingParaToUi(); //将当前文件用到的计算数据同步到需要计算的文件缓存 sampleBetaData.setBetaList(betaList); sampleBetaData.setBetaFittingPara(betaFittingPara); sampleBetaData.setBetaFittingParaToUi(betaFittingParaToUi); sampleBetaData.setBetaNewEnergyList(betaDataFile.getBetaNewEnergyListNow()); - //将新的数组封装到各自的数组中 - betaList = betaDataFile.getBetaList(); - betaFittingPara = betaDataFile.getBetaFittingPara(); - betaFittingParaToUi = betaDataFile.getBetaFittingParaToUi(); } List beCal = new LinkedList<>(); beCal.add(Double.valueOf(betaFittingParaToUi.get(0))); @@ -3580,15 +3580,15 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements betaDataFile.setGammaFittingPara(betaDataFile.getGammaFittingParaNow()); betaDataFile.setGammaFittingParaToUi(betaDataFile.getGammaFittingParaToUiNow()); betaDataFile.setGammaNewEnergyList(betaDataFile.getGammaNewEnergyListNow()); + //将新的数组封装到各自的数组中 + gammaList = betaDataFile.getGammaList(); + gammaFittingPara = betaDataFile.getGammaFittingPara(); + gammaFittingParaToUi = betaDataFile.getGammaFittingParaToUi(); //将当前文件用到的计算数据同步到需要计算的文件缓存 sampleBetaData.setGammaList(gammaList); sampleBetaData.setGammaFittingPara(gammaFittingPara); sampleBetaData.setGammaFittingParaToUi(gammaFittingParaToUi); sampleBetaData.setGammaNewEnergyList(betaDataFile.getGammaNewEnergyListNow()); - //将新的数组封装到各自的数组中 - gammaList = betaDataFile.getGammaList(); - gammaFittingPara = betaDataFile.getGammaFittingPara(); - gammaFittingParaToUi = betaDataFile.getGammaFittingParaToUi(); } List geCal = new LinkedList<>(); geCal.add(Double.valueOf(gammaFittingParaToUi.get(0))); From ea3cc4ea0edab46d12f293d0ae2e3455820cb2ba Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 12 Apr 2024 11:50:02 +0800 Subject: [PATCH 103/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97Gamma=E9=83=A8=E5=88=86=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=A0=B8=E7=B4=A0=E6=96=B9=E6=B3=95=E5=A2=9E=E5=8A=A0=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E6=A0=B8=E7=B4=A0=E5=AD=98=E5=9C=A8=E4=B8=8D=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E6=B7=BB=E5=8A=A0=E6=A0=B8=E7=B4=A0=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=20=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92=E6=A8=A1=E5=9D=97Beta?= =?UTF-8?q?=E9=83=A8=E5=88=86=E9=87=8D=E6=96=B0=E5=88=86=E6=9E=90=E5=85=A8?= =?UTF-8?q?=E9=83=A8=E8=B0=B1=E4=BF=A1=E6=81=AF=EF=BC=8C=E8=B5=8B=E5=80=BC?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SpectrumAnalysisServiceImpl.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 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 95940b2f..158eb10d 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 @@ -3505,10 +3505,12 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements List betaList = new LinkedList<>(); List betaFittingPara = new LinkedList<>(); List betaFittingParaToUi = new LinkedList<>(); + List> betaNewEnergyListNow = new LinkedList<>(); List gammaList = new LinkedList<>(); List gammaFittingPara = new LinkedList<>(); List gammaFittingParaToUi = new LinkedList<>(); - //根据sample文件名称获取当前文件的缓存信息 + List> gammaNewEnergyListNow = new LinkedList<>(); + //根据sample文件名称获取当前文件的缓存信息 BetaDataFile sampleBetaData = cache.getIfPresent(sampleFileName + "-" + userName); //存储重新分析字段的实体类 SpectrumGroup spectrum_group = new SpectrumGroup(); @@ -3527,11 +3529,12 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements betaList = betaDataFile.getBetaList(); betaFittingPara = betaDataFile.getBetaFittingPara(); betaFittingParaToUi = betaDataFile.getBetaFittingParaToUi(); + betaNewEnergyListNow = betaDataFile.getBetaNewEnergyListNow(); //将当前文件用到的计算数据同步到需要计算的文件缓存 sampleBetaData.setBetaList(betaList); sampleBetaData.setBetaFittingPara(betaFittingPara); sampleBetaData.setBetaFittingParaToUi(betaFittingParaToUi); - sampleBetaData.setBetaNewEnergyList(betaDataFile.getBetaNewEnergyListNow()); + sampleBetaData.setBetaNewEnergyList(betaNewEnergyListNow); } List beCal = new LinkedList<>(); beCal.add(Double.valueOf(betaFittingParaToUi.get(0))); @@ -3584,11 +3587,12 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements gammaList = betaDataFile.getGammaList(); gammaFittingPara = betaDataFile.getGammaFittingPara(); gammaFittingParaToUi = betaDataFile.getGammaFittingParaToUi(); + gammaNewEnergyListNow = betaDataFile.getGammaNewEnergyListNow(); //将当前文件用到的计算数据同步到需要计算的文件缓存 sampleBetaData.setGammaList(gammaList); sampleBetaData.setGammaFittingPara(gammaFittingPara); sampleBetaData.setGammaFittingParaToUi(gammaFittingParaToUi); - sampleBetaData.setGammaNewEnergyList(betaDataFile.getGammaNewEnergyListNow()); + sampleBetaData.setGammaNewEnergyList(gammaNewEnergyListNow); } List geCal = new LinkedList<>(); geCal.add(Double.valueOf(gammaFittingParaToUi.get(0))); @@ -3984,7 +3988,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements e.printStackTrace(); } result.setSuccess(true); - result.setResult(mapList.get(currentFileName)); + result.setResult(mapList); return result; } From a025eb5098a9ec107c41b53ee2bee1c64ce2e7df Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 12 Apr 2024 15:34:00 +0800 Subject: [PATCH 104/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97Beta=E9=83=A8=E5=88=86=E5=88=86=E6=9E=90?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E5=90=8E=E5=B0=86=E6=A0=B8=E7=B4=A0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=88=97=E8=A1=A8=E6=B8=85=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SpectrumAnalysisServiceImpl.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 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 158eb10d..f44a2ec7 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 @@ -3480,6 +3480,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } betaDataFile.setBProcessed(false); betaDataFile.setSaveAnalysisResult(false); + betaDataFile.setXeResultsSpectrumList(Collections.EMPTY_LIST); xeMap.put("XeData", Collections.EMPTY_LIST); xeMap.put("bProcessed", false); xeMap.put("savedAnalysisResult", false); @@ -3722,6 +3723,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements } sampleBetaData.setBProcessed(false); sampleBetaData.setSaveAnalysisResult(false); + sampleBetaData.setXeResultsSpectrumList(Collections.EMPTY_LIST); xeMap.put("XeData", Collections.EMPTY_LIST); xeMap.put("bProcessed", false); xeMap.put("savedAnalysisResult", false); @@ -3852,6 +3854,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements map.put("XeData", Collections.EMPTY_LIST); betaDataFile.setBProcessed(false); betaDataFile.setSaveAnalysisResult(false); + betaDataFile.setXeResultsSpectrumList(Collections.EMPTY_LIST); map.put("bProcessed", false); map.put("savedAnalysisResult", false); } @@ -3977,6 +3980,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements map.put("XeData", Collections.EMPTY_LIST); betaDataFile.setBProcessed(false); betaDataFile.setSaveAnalysisResult(false); + betaDataFile.setXeResultsSpectrumList(Collections.EMPTY_LIST); map.put("bProcessed", false); map.put("savedAnalysisResult", false); mapList.put(sampleFileName, map); @@ -5826,10 +5830,12 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements public List getXeDataList(List xeResultsSpectrumList) { List xeDataList = new LinkedList<>(); - for (GardsXeResultsSpectrum xeResultsSpectrum:xeResultsSpectrumList) { - GardsXeResults xeResults = new GardsXeResults(); - BeanUtil.copyProperties(xeResultsSpectrum, xeResults); - xeDataList.add(xeResults); + if (CollectionUtils.isNotEmpty(xeResultsSpectrumList)) { + for (GardsXeResultsSpectrum xeResultsSpectrum:xeResultsSpectrumList) { + GardsXeResults xeResults = new GardsXeResults(); + BeanUtil.copyProperties(xeResultsSpectrum, xeResults); + xeDataList.add(xeResults); + } } return xeDataList; } From a38a242e038f7ebbffa0d846d8a49ae946ec2f5b Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 18 Apr 2024 15:09:54 +0800 Subject: [PATCH 105/133] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/email/EmailServiceManager.java | 27 ++++++++++++------- .../common/properties/TaskProperties.java | 5 ++++ .../jeecg/modules/EmailParsingActuator.java | 24 +++++++++-------- .../spectrum/SpectrumParsingActuator.java | 5 +++- 4 files changed, 40 insertions(+), 21 deletions(-) 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 45018aca..3b3c2f39 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 @@ -7,6 +7,7 @@ import cn.hutool.core.util.StrUtil; import com.google.common.collect.Lists; import com.sun.mail.imap.IMAPStore; import com.sun.mail.smtp.SMTPAddressFailedException; +import io.swagger.models.auth.In; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.dto.message.MessageDTO; @@ -16,6 +17,7 @@ import org.jeecg.common.constant.SymbolConstant; import org.jeecg.common.email.emuns.MailContentType; import org.jeecg.common.exception.DownloadEmailException; import org.jeecg.common.properties.SpectrumPathProperties; +import org.jeecg.common.properties.TaskProperties; import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.Md5Util; import org.jeecg.common.util.RedisUtil; @@ -47,6 +49,8 @@ public class EmailServiceManager { private SysEmail email; private SpectrumPathProperties spectrumPathProperties; + + private TaskProperties taskProperties; /** * 系统启动时间 */ @@ -80,13 +84,14 @@ public class EmailServiceManager { * @param email 邮件属性 */ public void init(SysEmail email, Integer receiveNum, String temporaryStoragePath, - Date systemStartupTime, SpectrumPathProperties pathProperties, + Date systemStartupTime, SpectrumPathProperties pathProperties,TaskProperties taskProperties, RedisUtil redisUtil){ this.email = email; this.receiveNum = receiveNum; this.temporaryStoragePath = temporaryStoragePath; this.systemStartupTime = systemStartupTime; this.spectrumPathProperties = pathProperties; + this.taskProperties = taskProperties; this.redisUtil = redisUtil; } @@ -328,8 +333,9 @@ public class EmailServiceManager { props.put("mail.smtp.host", email.getEmailServerAddress()); props.put("mail.smtp.port", email.getPort()); props.put("mail.smtp.auth", "true"); - /*props.put("mail.smtp.socketFactory.port", email.getPort()); - props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");*/ + props.put("mail.smtp.starttls.enable", "true"); + props.put("mail.smtp.socketFactory.port", email.getPort()); + props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); Session session = Session.getInstance(props); @@ -629,10 +635,10 @@ public class EmailServiceManager { if(null != store){ store.close(); } - for(String messageId : messageIds){ - String key = RedisConstant.EMAIL_MSG_ID+StringConstant.COLON+messageId; - redisUtil.del(key); - } +// 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(); @@ -648,10 +654,13 @@ public class EmailServiceManager { boolean exist = false; try { String key = RedisConstant.EMAIL_MSG_ID+StringConstant.COLON+messageId; - exist = redisUtil.hasKey(key); - if(exist){ + int numberKey = redisUtil.get(key) != null? (int) redisUtil.get(key):0; +// exist = redisUtil.hasKey(key); + if(numberKey > taskProperties.getForceDeletedNumber()){ + exist = true; log.info("Check: Remove Email:{},receiveTime:{}",message.getSubject(), DateUtils.formatDate(message.getReceivedDate(),"yyyy-MM-dd HH:mm:ss")); message.setFlag(Flags.Flag.DELETED,true); + redisUtil.del(key); } return exist; } catch (MessagingException e) { diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/TaskProperties.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/TaskProperties.java index 34f9e294..3a9122b7 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/TaskProperties.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/TaskProperties.java @@ -41,6 +41,11 @@ public class TaskProperties implements Serializable { */ private Integer mailThreadExecCycle; + /** + * 线程获取失败邮件次数 + */ + private Integer forceDeletedNumber; + /** * 监测需删除的邮件线程执行周期(毫秒) */ 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 8abbeb06..737b53c8 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 @@ -74,23 +74,23 @@ 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(),spectrumServiceQuotes.getRedisUtil()); + this.systemStartupTime, spectrumServiceQuotes.getSpectrumPathProperties(), spectrumServiceQuotes.getTaskProperties(), spectrumServiceQuotes.getRedisUtil()); List messageIds = new ArrayList<>(); try { Message[] messages = emailServiceManager.receiveMail(); if(ArrayUtils.isNotEmpty(messages)){ log.info("EmailParsingActuator本次获取邮件数量为:{}",messages.length); //检验获取的邮件是否在之前删除失败列表中,若在直接调用邮件API删除,并且此次数组里元素也删除 -// for(int i=messages.length-1;i>=0;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); -// } -// } -// } + for(int i=messages.length-1;i>=0;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); + } + } + } log.info("EmailParsingActuator本次真实执行邮件数量为:{}",messages.length); if(messages.length > 0){ //本批次邮件号 @@ -107,6 +107,8 @@ public class EmailParsingActuator extends Thread{ } }catch (InterruptedException e) { e.printStackTrace(); + } catch (MessagingException e) { + throw new RuntimeException(e); } finally { //清除本批次邮件日志缓存 EmailLogManager.getInstance().clear(); 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 53f17107..22861fd2 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 @@ -96,7 +96,10 @@ public class SpectrumParsingActuator implements Runnable{ receiveDate = DateUtils.formatDate(message.getReceivedDate(),"yyyy-MM-dd HH:mm:ss"); String emlName = subject+ StringConstant.UNDER_LINE+ receiveDate; String key = RedisConstant.EMAIL_MSG_ID+StringConstant.COLON+messageId; - spectrumServiceQuotes.getRedisUtil().set(key,emlName,expiryTime); +// spectrumServiceQuotes.getRedisUtil().set(key,emlName,expiryTime); + //判断当前key的下载次数是否超过限制次数 + spectrumServiceQuotes.getRedisUtil().incr(key, 1L); + spectrumServiceQuotes.getRedisUtil().expire(key, expiryTime); //线程开始初始化时,初始本线程负责的能谱日志事件 SpectrumLogManager.mailSpectrumLogManager.offer(Thread.currentThread().getId(),null); From 85987985a11f2b58eb0f6b056f3f7916de76f752 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 19 Apr 2024 14:14:51 +0800 Subject: [PATCH 106/133] =?UTF-8?q?=E9=82=AE=E7=AE=B1=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E9=82=AE=E4=BB=B6=E9=83=A8=E5=88=86=E5=A2=9E=E5=8A=A0=E9=94=81?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E5=BC=82=E6=AD=A5=E4=B8=8B=E8=BD=BD=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=85=B3=E9=97=AD=E8=BE=93?= =?UTF-8?q?=E5=87=BA=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/email/EmailServiceManager.java | 115 ++++++++++-------- 1 file changed, 64 insertions(+), 51 deletions(-) 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 3b3c2f39..25b7094a 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 @@ -66,6 +66,8 @@ public class EmailServiceManager { private RedisUtil redisUtil; + private Object downloadEmlLocal = new Object(); + @NotNull public static EmailServiceManager getInstance(){ return new EmailServiceManager(); @@ -525,44 +527,47 @@ public class EmailServiceManager { * 当计数大于10000后从0开始,服务重启后也从0开始 */ public File downloadEmailToEmlDir(@NotNull Message message,Integer emailCounter,Integer batchesCounter) throws MessagingException { - String subject = ""; - File emlFile = null; - String status = EmailLogManager.STATUS_SUCCESS; - Date receivedDate = null; - try { - //获取发件人 - final String address = ((InternetAddress) message.getFrom()[0]).getAddress(); - final String from = address.substring(0,address.indexOf(StringConstant.AT)); - //获取主题 - subject = MimeUtility.decodeText(message.getSubject()); - if(subject.indexOf(StringConstant.SLASH) != -1){ - subject = StringUtils.replace(subject,StringConstant.SLASH,""); - } - if(subject.indexOf(StringConstant.COLON) != -1){ - subject = StringUtils.replace(subject,StringConstant.COLON,""); - } - receivedDate = message.getReceivedDate(); - StringBuilder fileName = new StringBuilder(); - fileName.append(from); - fileName.append(StringConstant.UNDER_LINE); - fileName.append(subject); - fileName.append(StringConstant.UNDER_LINE); - fileName.append(DateUtils.formatDate(new Date(),"YYMMdd")); - fileName.append(StringConstant.UNDER_LINE); - fileName.append(DateUtils.formatDate(new Date(),"HHmmssSSS")); - fileName.append(StringConstant.UNDER_LINE); - fileName.append("receive"); - fileName.append(StringConstant.UNDER_LINE); - fileName.append(DateUtils.formatDate(receivedDate,"YYMMdd")); - fileName.append(StringConstant.UNDER_LINE); - fileName.append(DateUtils.formatDate(receivedDate,"HHmmssSSS")); - fileName.append(StringConstant.UNDER_LINE); - fileName.append(emailCounter); - fileName.append(SAVE_EML_SUFFIX); - final String rootPath = spectrumPathProperties.getRootPath(); - final String emlPath = spectrumPathProperties.getEmlPath(); - emlFile = new File(rootPath+emlPath+File.separator+fileName); - message.writeTo(new FileOutputStream(emlFile)); + synchronized (downloadEmlLocal) { + String subject = ""; + File emlFile = null; + String status = EmailLogManager.STATUS_SUCCESS; + Date receivedDate = null; + FileOutputStream outputStream = null; + try { + //获取发件人 + final String address = ((InternetAddress) message.getFrom()[0]).getAddress(); + final String from = address.substring(0,address.indexOf(StringConstant.AT)); + //获取主题 + subject = MimeUtility.decodeText(message.getSubject()); + if(subject.indexOf(StringConstant.SLASH) != -1){ + subject = StringUtils.replace(subject,StringConstant.SLASH,""); + } + if(subject.indexOf(StringConstant.COLON) != -1){ + subject = StringUtils.replace(subject,StringConstant.COLON,""); + } + receivedDate = message.getReceivedDate(); + StringBuilder fileName = new StringBuilder(); + fileName.append(from); + fileName.append(StringConstant.UNDER_LINE); + fileName.append(subject); + fileName.append(StringConstant.UNDER_LINE); + fileName.append(DateUtils.formatDate(new Date(),"YYMMdd")); + fileName.append(StringConstant.UNDER_LINE); + fileName.append(DateUtils.formatDate(new Date(),"HHmmssSSS")); + fileName.append(StringConstant.UNDER_LINE); + fileName.append("receive"); + fileName.append(StringConstant.UNDER_LINE); + fileName.append(DateUtils.formatDate(receivedDate,"YYMMdd")); + fileName.append(StringConstant.UNDER_LINE); + fileName.append(DateUtils.formatDate(receivedDate,"HHmmssSSS")); + fileName.append(StringConstant.UNDER_LINE); + fileName.append(emailCounter); + fileName.append(SAVE_EML_SUFFIX); + final String rootPath = spectrumPathProperties.getRootPath(); + final String emlPath = spectrumPathProperties.getEmlPath(); + emlFile = new File(rootPath+emlPath+File.separator+fileName); + outputStream = new FileOutputStream(emlFile); + message.writeTo(outputStream); // int bufferSize = 1024 * 1024; // 1M // InputStream inputStream = message.getInputStream(); @@ -580,20 +585,28 @@ public class EmailServiceManager { // // 关闭流 // bufferedInputStream.close(); // bufferedOutputStream.close(); - } catch (MessagingException | IOException e) { - // 下载邮件失败 抛出自定义邮件下载异常 - status = EmailLogManager.STATUS_ERROR; - String errorMsg = StrUtil.format("The email download failed, the subject of the email is {}, the reason is {}.", subject, e.getMessage()); - log.error(errorMsg); - throw new DownloadEmailException(errorMsg); - }catch (Exception e) { - log.error("",e); - }finally { - EmailLogEvent event = new EmailLogEvent(batchesCounter,Thread.currentThread().getId(),EmailLogManager.GS_TYPE_GET,status,EmailLogManager.GETIDEML,subject,DateUtils.formatDate(receivedDate,"yyyy-MM-dd HH:mm:ss:SSS"), - (Objects.isNull(emlFile)?" ":emlFile.getAbsolutePath())); - EmailLogManager.getInstance().offer(Thread.currentThread().getId(),event); + } catch (MessagingException | IOException e) { + // 下载邮件失败 抛出自定义邮件下载异常 + status = EmailLogManager.STATUS_ERROR; + String errorMsg = StrUtil.format("The email download failed, the subject of the email is {}, the reason is {}.", subject, e.getMessage()); + log.error(errorMsg); + throw new DownloadEmailException(errorMsg); + }catch (Exception e) { + log.error("",e); + }finally { + EmailLogEvent event = new EmailLogEvent(batchesCounter,Thread.currentThread().getId(),EmailLogManager.GS_TYPE_GET,status,EmailLogManager.GETIDEML,subject,DateUtils.formatDate(receivedDate,"yyyy-MM-dd HH:mm:ss:SSS"), + (Objects.isNull(emlFile)?" ":emlFile.getAbsolutePath())); + EmailLogManager.getInstance().offer(Thread.currentThread().getId(),event); + try { + if (Objects.nonNull(outputStream)) { + outputStream.close(); + } + } catch (IOException e) { + throw new RuntimeException(e); + } + } + return emlFile; } - return emlFile; } /** From 01122e6daa5721bb2046344dcd3b8bf1953cc8d4 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 19 Apr 2024 16:08:45 +0800 Subject: [PATCH 107/133] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/common/constant/RedisConstant.java | 6 -- .../org/jeecg/common/util/TemplateUtil.java | 55 +++++++++++++++++++ .../base/comparator/FileComparator.java | 4 +- .../jeecg/modules/base/dto/NuclideInfo.java | 8 +++ .../jeecg/modules/base/enums/Condition.java | 2 +- .../org/jeecg/modules/base/enums/DSType.java | 16 ++++-- .../spectrum/SpectrumParsingActuator.java | 4 +- 7 files changed, 80 insertions(+), 15 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 8a1fa80f..2e885a34 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 @@ -13,16 +13,10 @@ public interface RedisConstant { */ String PREFIX_SILENCE = "SilenceCycle:"; - String STREAM_ALARM = "Stream:Alarm"; - String STREAM_ANALYSIS = "Stream:Analysis"; - String GROUP_ALARM = "Group_Alarm"; - String GROUP_ANALYSIS = "Group_Analysis"; - String CONSUMER_ALARM = "Consumer_Alarm"; - String CONSUMER_ANALYSIS = "Consumer_Analysis"; String NUCLIDE_LINES_LIB = "Nuclide_Lines_Lib:"; diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/TemplateUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/TemplateUtil.java index d61f655c..f3a902c0 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/TemplateUtil.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/TemplateUtil.java @@ -1,13 +1,20 @@ package org.jeecg.common.util; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.ReUtil; import cn.hutool.core.util.StrUtil; import org.jeecg.common.api.dto.message.MessageDTO; import org.jeecg.common.util.dynamic.db.FreemarkerParseFactory; import org.jeecg.modules.base.entity.postgre.SysMessageTemplate; import org.jeecg.modules.base.service.ISysMessageTemplateService; + +import java.util.ArrayList; +import java.util.List; import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; /* * 模板工具类 @@ -37,6 +44,30 @@ public class TemplateUtil { return messageDTO; } + public static MessageDTO parse1(String code, Map data){ + MessageDTO messageDTO = new MessageDTO(); + SysMessageTemplate template = templateService.getOne(code); + // 如果没有消息模板 + if(ObjectUtil.isNull(template)) + return messageDTO; + String templateName = template.getTemplateName(); + String templateContent = template.getTemplateContent(); + messageDTO.setTitle(templateName); + if (MapUtil.isEmpty(data)) + return messageDTO; + Set keys = data.keySet(); + String pattern = "\\<([^<>]*{}[^<>]*)\\>"; + List contents = new ArrayList<>(); + for (String key : keys) { + contents.add(ReUtil.getGroup1(StrUtil.format(pattern, key), templateContent)); + } + templateContent = CollUtil.join(contents, "#"); + String content = FreemarkerParseFactory + .parseTemplateContent(templateContent, data, true); + messageDTO.setContent(content); + return messageDTO; + } + public static MessageDTO parse(String title, String code, Map data) { MessageDTO messageDTO = new MessageDTO(); SysMessageTemplate template = templateService.getOne(code); @@ -53,4 +84,28 @@ public class TemplateUtil { messageDTO.setContent(content); return messageDTO; } + + public static MessageDTO parse1(String title, String code, Map data) { + MessageDTO messageDTO = new MessageDTO(); + SysMessageTemplate template = templateService.getOne(code); + // 如果没有消息模板 + if(ObjectUtil.isNull(template)) + return messageDTO; + String templateName = template.getTemplateName(); + String templateContent = template.getTemplateContent(); + messageDTO.setTitle(StrUtil.isBlank(title) ? templateName : title); + if (MapUtil.isEmpty(data)) + return messageDTO; + Set keys = data.keySet(); + String pattern = "\\<([^<>]*{}[^<>]*)\\>"; + List contents = new ArrayList<>(); + for (String key : keys) { + contents.add(ReUtil.getGroup1(StrUtil.format(pattern, key), templateContent)); + } + templateContent = CollUtil.join(contents, "#"); + String content = FreemarkerParseFactory + .parseTemplateContent(templateContent, data, true); + messageDTO.setContent(content); + return messageDTO; + } } diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/comparator/FileComparator.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/comparator/FileComparator.java index 4250675b..28626188 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/comparator/FileComparator.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/comparator/FileComparator.java @@ -6,8 +6,8 @@ import java.util.Comparator; public class FileComparator implements Comparator { - private final String field; - private final String order; + private String field; + private String order; public FileComparator(String field, String order) { this.field = field; diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/NuclideInfo.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/NuclideInfo.java index 77a23fac..cac153bc 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/NuclideInfo.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/NuclideInfo.java @@ -3,8 +3,12 @@ package org.jeecg.modules.base.dto; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; +import org.jeecg.common.util.NumUtil; + import java.io.Serializable; import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; @Data @JsonIgnoreProperties(ignoreUnknown = true) @@ -17,4 +21,8 @@ public class NuclideInfo implements Serializable { private String datasource; private String value; + + public void keepSix(){ + this.value = NumUtil.keepStr(this.value, 6); + } } diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/Condition.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/Condition.java index 7ce3278a..587c8923 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/Condition.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/Condition.java @@ -9,7 +9,7 @@ import lombok.Getter; public enum Condition { FIRST_FOUND("1"), ABOVE_AVERAGE("2"), MEANWHILE("3"); - private String value; + private final String value; public static Condition valueOf1(String value){ for (Condition condition : Condition.values()) { diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/DSType.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/DSType.java index 25ac6382..de9f309d 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/DSType.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/DSType.java @@ -1,10 +1,14 @@ package org.jeecg.modules.base.enums; +import cn.hutool.core.util.StrUtil; +import lombok.Getter; + /** * @author nieziyan * 数据源类型 */ +@Getter public enum DSType { /* ARMD自动处理库 */ ARMDARR("1"), @@ -15,13 +19,17 @@ public enum DSType { /* IDC人工交互库 */ IDCRRR("4"); - DSType(java.lang.String type) { + DSType(String type) { this.type = type; } - private String type; + private final String type; - public String getType() { - return type; + public static String typeOf(String type){ + for (DSType dsType : DSType.values()) { + if (StrUtil.equals(type, dsType.getType())) + return dsType.name(); + } + return null; } } 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 22861fd2..a88f07ad 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 @@ -126,6 +126,7 @@ public class SpectrumParsingActuator implements Runnable{ try { //开始解析 spectrumHandler.handler(); + spectrumServiceQuotes.getRedisUtil().del(key); } catch (Exception e) { //如果是gamma谱的分析异常 if (e instanceof AnalySpectrumException) { @@ -139,7 +140,6 @@ public class SpectrumParsingActuator implements Runnable{ throw e; } } - }else{ log.warn("This email {} parsing failed and is not listed in the Met, Alert, SOH, Sample, Detbkphd, QC, Gasbkphd spectra.",subject); } @@ -207,7 +207,7 @@ public class SpectrumParsingActuator implements Runnable{ final String finalPath = rootPath+emlErrorPath; FileOperation.moveFile(emlFile,finalPath,true); // 删除 key,防止下次线程执行删除邮件 - spectrumServiceQuotes.getRedisUtil().del(key); +// spectrumServiceQuotes.getRedisUtil().del(key); } } From b0529f0f3d093a48ef2520168e7cdfe5cefd42ea Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 19 Apr 2024 16:53:17 +0800 Subject: [PATCH 108/133] =?UTF-8?q?=E5=90=8C=E6=AD=A5mdc=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/email/EmailServiceManager.java | 2 +- .../modules/redisStream/AnalysisConsumer.java | 160 +++++++++--------- .../redisStream/RedisStreamConfig.java | 36 ++-- .../IAlarmAnalysisNuclideAvgService.java | 4 +- .../impl/AlarmAnalysisLogServiceImpl.java | 1 + .../AlarmAnalysisNuclideAvgServiceImpl.java | 13 +- .../jeecg/modules/feignclient/ManageUtil.java | 34 ++-- .../jeecg/modules/message/SendMessage.java | 50 +++--- .../jeecg/modules/quartz/job/DatabaseJob.java | 10 +- .../jeecg/modules/quartz/job/ServerJob.java | 8 +- .../modules/quartz/jobs/DatabaseJob.java | 9 +- .../jeecg/modules/quartz/jobs/EmailJob.java | 1 - .../jeecg/modules/quartz/jobs/ServerJob.java | 9 +- .../modules/quartz/jobs/TableSpaceJob.java | 3 +- 14 files changed, 189 insertions(+), 151 deletions(-) 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 25b7094a..f4f8b334 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 @@ -669,7 +669,7 @@ public class EmailServiceManager { String key = RedisConstant.EMAIL_MSG_ID+StringConstant.COLON+messageId; int numberKey = redisUtil.get(key) != null? (int) redisUtil.get(key):0; // exist = redisUtil.hasKey(key); - if(numberKey > taskProperties.getForceDeletedNumber()){ + if(numberKey >= taskProperties.getForceDeletedNumber()){ exist = true; log.info("Check: Remove Email:{},receiveTime:{}",message.getSubject(), DateUtils.formatDate(message.getReceivedDate(),"yyyy-MM-dd HH:mm:ss")); message.setFlag(Flags.Flag.DELETED,true); diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/redisStream/AnalysisConsumer.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/redisStream/AnalysisConsumer.java index 1165b97e..7bf3492c 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/redisStream/AnalysisConsumer.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/redisStream/AnalysisConsumer.java @@ -5,8 +5,10 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.map.MapUtil; +import cn.hutool.core.text.StrBuilder; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.ReUtil; import cn.hutool.core.util.StrUtil; import lombok.Data; import lombok.NoArgsConstructor; @@ -16,14 +18,15 @@ import org.jeecg.common.config.mqtoken.UserTokenContext; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.constant.SymbolConstant; import org.jeecg.common.constant.enums.SampleType; -import org.jeecg.common.util.RedisStreamUtil; -import org.jeecg.common.util.SpringContextUtils; +import org.jeecg.common.util.*; +import org.jeecg.common.util.dynamic.db.FreemarkerParseFactory; import org.jeecg.modules.base.dto.NuclideInfo; import org.jeecg.modules.base.dto.Info; import org.jeecg.modules.base.entity.postgre.AlarmAnalysisLog; import org.jeecg.modules.base.entity.postgre.AlarmAnalysisNuclideAvg; import org.jeecg.modules.base.entity.postgre.AlarmAnalysisRule; import org.jeecg.modules.base.enums.Condition; +import org.jeecg.modules.base.enums.DSType; import org.jeecg.modules.feignclient.SystemClient; import org.jeecg.modules.service.AnalysisResultService; import org.jeecg.modules.service.IAlarmAnalysisLogService; @@ -36,9 +39,14 @@ import org.springframework.stereotype.Component; import static org.jeecg.common.constant.enums.MessageTypeEnum.*; import static org.jeecg.common.util.TokenUtils.getTempToken; +import static org.jeecg.modules.base.enums.Template.ANALYSIS_NUCLIDE; +import static org.jeecg.modules.base.enums.Template.MONITOR_EMAIL; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; @Data @@ -71,7 +79,7 @@ public class AnalysisConsumer implements StreamListener nuclidesCross){ Set nuclideNames = nuclidesCross.keySet(); - StringBuilder alarmInfo = new StringBuilder(); - List firstDetected; - List moreThanAvg = new ArrayList<>(); String conditionStr = info.getConditions(); String betaOrGamma = info.getBetaOrGamma(); String datasource = info.getDatasource(); + String stationId = info.getStationId(); + // 获取谱文件采样日期 如果为null 则默认为LocalDate.now() + LocalDate collDate = ObjectUtil.isNull(info.getCollectionDate()) ? LocalDate.now() : + info.getCollectionDate().toLocalDate(); + List conditions = ListUtil.toList(conditionStr.split(COMMA)); + List firstDetected = new ArrayList<>(); // 首次发现 + List moreThanAvg = new ArrayList<>(); // 超浓度均值 + List meanwhile = new ArrayList<>(); // 同时出现两种及以上核素 for (String con : conditions) { Condition condition = Condition.valueOf1(con); - if (ObjectUtil.isNotNull(condition)){ - switch (condition){ - case FIRST_FOUND: // 首次发现该元素 - firstDetected = firstDetected(betaOrGamma,datasource,nuclideNames); - if (CollUtil.isNotEmpty(firstDetected)){ - String message = "First discovery of nuclides: [" + StrUtil.join(COMMA,firstDetected) + "]"; - alarmInfo.append(message); - } - break; - case ABOVE_AVERAGE: // 元素浓度高于均值 - moreThanAvg = moreThanAvg(datasource,nuclidesCross); - if (CollUtil.isNotEmpty(moreThanAvg)){ - for (NuclideInfo nuclideInfo : moreThanAvg) { - String nuclide = nuclideInfo.getNuclide(); - String threshold = nuclideInfo.getThreshold(); - String message = "Nuclide " + nuclide + "is above average: " + threshold; - alarmInfo.append(COMMA).append(message); - } - } - break; - case MEANWHILE: // 同时出现两种及以上核素 - if (nuclideNames.size() >= 2){ - String message = "Simultaneously detecting nuclides: [" + StrUtil.join(COMMA,nuclideNames) + "]"; - alarmInfo.append(COMMA).append(message); - } - break; - default: - break; - } + if (ObjectUtil.isNull(condition)) continue; + switch (condition){ + case FIRST_FOUND: // 首次发现该元素 + firstDetected = firstDetected(betaOrGamma, datasource, nuclideNames); + break; + case ABOVE_AVERAGE: // 元素浓度高于均值 + moreThanAvg = moreThanAvg(datasource, stationId, collDate, nuclidesCross); + break; + case MEANWHILE: // 同时出现两种及以上核素 + if (CollUtil.isNotEmpty(nuclideNames) && nuclideNames.size() >= 2) + meanwhile.addAll(nuclideNames); + break; + default: + break; } } - if (StrUtil.isNotBlank(alarmInfo.toString())){ - // 保存报警日志 - AlarmAnalysisLog logInfo = new AlarmAnalysisLog(); - BeanUtil.copyProperties(info,logInfo); - SampleType sampleType = SampleType.typeOf(betaOrGamma); - if (ObjectUtil.isNotNull(sampleType)) - logInfo.setSampleType(sampleType.getValue()); - if (alarmInfo.toString().startsWith(COMMA)) - alarmInfo = new StringBuilder(StrUtil.sub(alarmInfo.toString(), 1, alarmInfo.length())); - logInfo.setAlarmInfo(alarmInfo.toString()); - if (CollUtil.isNotEmpty(moreThanAvg)) - logInfo.setNuclideInfoList(moreThanAvg); - logService.saveLog(logInfo); - // 发送报警信息 - String groupId = info.getGroupId(); - MessageDTO messageDTO = new MessageDTO(); - messageDTO.setTitle("Nuclied Warn Info").setContent(alarmInfo.toString()); - if (StrUtil.isNotBlank(groupId)) { - systemClient.sendMessage(messageDTO, groupId, ALL.getValue()); - systemClient.pushMessageToSingle(messageDTO, groupId); - } + // 构建预警信息 + DataTool dataTool = DataTool.getInstance(); + if (CollUtil.isNotEmpty(firstDetected)) + dataTool.put("firstDetected", CollUtil.join(firstDetected, StrUtil.COMMA + StrUtil.SPACE)); + if (CollUtil.isNotEmpty(moreThanAvg)){ + String above = moreThanAvg.stream() + .map(item -> item.getNuclide() + "(" + item.getValue() + ")" + " > " + item.getThreshold()) + .collect(Collectors.joining(StrUtil.COMMA + StrUtil.SPACE)); + dataTool.put("moreThanAvg", above); } + if (CollUtil.isNotEmpty(meanwhile)) + dataTool.put("meanwhile", CollUtil.join(meanwhile, StrUtil.COMMA + StrUtil.SPACE)); + // 如果报警数据为空 则不需要发送报警信息和生成报警日志 + if (MapUtil.isEmpty(dataTool.get())) return; + MessageDTO messageDTO = TemplateUtil.parse1(ANALYSIS_NUCLIDE.getCode(), dataTool.get()); + // 保存报警日志 + AlarmAnalysisLog logInfo = new AlarmAnalysisLog(); + BeanUtil.copyProperties(info, logInfo); + SampleType sampleType = SampleType.typeOf(betaOrGamma); + if (ObjectUtil.isNotNull(sampleType)) + logInfo.setSampleType(sampleType.getValue()); + logInfo.setAlarmInfo(messageDTO.getContent()); + if (CollUtil.isNotEmpty(moreThanAvg)) + logInfo.setNuclideInfoList(moreThanAvg); + logService.saveLog(logInfo); + // 发送报警信息 + String groupId = info.getGroupId(); + systemClient.sendMessage(messageDTO, groupId, ALL.getValue()); + systemClient.pushMessageToSingle(messageDTO, groupId); } /** @@ -222,12 +228,12 @@ public class AnalysisConsumer implements StreamListener moreThanAvg(String dataSourceType, - Map nuclidesCross){ + private List moreThanAvg(String dataSourceType, String stationId, + LocalDate collDate, Map nuclidesCross){ List nuclideInfos = new ArrayList<>(); Set nuclideNames = nuclidesCross.keySet(); Map nuclideAvgs = nuclideAvgService - .list(nuclideNames, dataSourceType).stream() + .list(nuclideNames, dataSourceType, stationId, collDate).stream() .collect(Collectors.toMap(AlarmAnalysisNuclideAvg::getNuclide, AlarmAnalysisNuclideAvg::getVal)); for (Map.Entry nuclide : nuclidesCross.entrySet()) { @@ -246,41 +252,27 @@ public class AnalysisConsumer implements StreamListener readA1 = StreamMessageListenerContainer + /* 1.需要手动确认消费消息 */ + // 1.1 使用 register 方式 + StreamMessageListenerContainer.ConsumerStreamReadRequest readRequest = StreamMessageListenerContainer .StreamReadRequest - .builder(StreamOffset.create(warnKey, ReadOffset.lastConsumed())) - .consumer(Consumer.from(groupWarnA, consumerWarnA1)) + .builder(StreamOffset.create(analysisKey, ReadOffset.lastConsumed())) + .consumer(Consumer.from(analysisGroup, analysisConsumer)) + // 手动确认消费了消息 默认为自动确认消息 .autoAcknowledge(false) - // 如果消费者发生了异常,是否禁止消费者消费 + // 如果消费者发生了异常 不禁止消费者消费 默认为禁止 .cancelOnError(throwable -> false) .build(); - ConsumeA1 consumeA1 = new ConsumeA1(groupWarnA, consumerWarnA1); - streamMessageListenerContainer.register(readA1, consumeA1);*/ - AnalysisConsumer analysis = new AnalysisConsumer(analysisGroup,analysisConsumer); + AnalysisConsumer analysis = new AnalysisConsumer(analysisGroup, analysisConsumer); + streamMessageListenerContainer.register(readRequest, analysis); + // 1.2 使用 receive 方式 + /*AnalysisConsumer analysis = new AnalysisConsumer(analysisGroup, analysisConsumer); streamMessageListenerContainer.receive(Consumer.from(analysisGroup, analysisConsumer), - StreamOffset.create(analysisKey, ReadOffset.lastConsumed()), analysis); - // 创建消费组A中的消费者A2,自动ACK - /* ConsumeA2 consumeA2 = new ConsumeA2(consumerWarnA2); - streamMessageListenerContainer.receiveAutoAck(Consumer.from(groupWarnA, consumerWarnA2), - StreamOffset.create(warnKey, ReadOffset.lastConsumed()), consumeA2);*/ + StreamOffset.create(analysisKey, ReadOffset.lastConsumed()), analysis);*/ + /* 2.自动确认消费消息 */ + // 2.1 使用 receive 方式 + /*AnalysisConsumer analysis = new AnalysisConsumer(analysisGroup,analysisConsumer); + streamMessageListenerContainer.receiveAutoAck(Consumer.from(analysisGroup, analysisConsumer), + StreamOffset.create(analysisKey, ReadOffset.lastConsumed()), analysis);*/ return streamMessageListenerContainer; } } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmAnalysisNuclideAvgService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmAnalysisNuclideAvgService.java index 70199b04..a9afd7a9 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmAnalysisNuclideAvgService.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmAnalysisNuclideAvgService.java @@ -6,12 +6,14 @@ import org.jeecg.modules.base.entity.postgre.AlarmAnalysisNuclideAvg; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.base.bizVo.NuclideAvgVo; +import java.time.LocalDate; import java.util.List; import java.util.Set; public interface IAlarmAnalysisNuclideAvgService extends IService { - List list(Set nuclideNames,String dataSourceType); + List list(Set nuclideNames, String dataSourceType, + String stationId, LocalDate collDate); Page findPage(NuclideAvgVo nuclideAvgVo); } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisLogServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisLogServiceImpl.java index af13f2a3..47f34b54 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisLogServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisLogServiceImpl.java @@ -75,6 +75,7 @@ public class AlarmAnalysisLogServiceImpl extends ServiceImpl nuclideInfos = mapper.readValue(nuclideInfo, new TypeReference>() {}); + nuclideInfos.forEach(NuclideInfo::keepSix); logDto.setNuclideList(nuclideInfos); } catch (JsonProcessingException e) { log.error("NuclideInfo解析异常: {}", e.getMessage()); diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisNuclideAvgServiceImpl.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisNuclideAvgServiceImpl.java index 2659c56d..71d23713 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisNuclideAvgServiceImpl.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/impl/AlarmAnalysisNuclideAvgServiceImpl.java @@ -15,6 +15,7 @@ import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.List; import java.util.Map; import java.util.Set; @@ -27,13 +28,15 @@ public class AlarmAnalysisNuclideAvgServiceImpl extends ServiceImpl list(Set nuclideNames,String dataSourceType) { - LocalDate dayAgo = LocalDate.now().minusDays(1); + public List list(Set nuclideNames, String dataSourceType, + String stationId, LocalDate collDate) { + LocalDate dayAgo = collDate.minusDays(1); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(AlarmAnalysisNuclideAvg::getDataSourceType,dataSourceType); - wrapper.eq(AlarmAnalysisNuclideAvg::getCaclDate,dayAgo); + wrapper.eq(AlarmAnalysisNuclideAvg::getStationId, stationId); + wrapper.eq(AlarmAnalysisNuclideAvg::getDataSourceType, dataSourceType); + wrapper.eq(AlarmAnalysisNuclideAvg::getCaclDate, dayAgo); wrapper.in(AlarmAnalysisNuclideAvg::getNuclide,nuclideNames); - return list(wrapper); + return this.list(wrapper); } @Override diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/feignclient/ManageUtil.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/feignclient/ManageUtil.java index 17b8ed10..7f68d45c 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/feignclient/ManageUtil.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/feignclient/ManageUtil.java @@ -1,5 +1,6 @@ package org.jeecg.modules.feignclient; +import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.RedisConstant; import org.jeecg.common.system.util.JwtUtil; @@ -9,6 +10,7 @@ import org.jeecg.modules.base.dto.LoginResult; import org.jeecg.modules.base.dto.LoginVo; import org.springframework.core.env.Environment; +@Slf4j public class ManageUtil { private static RedisUtil redisUtil; @@ -31,20 +33,28 @@ public class ManageUtil { * 登录运管系统 获取Token * */ public static String getToken(){ - if (redisUtil.hasKey(RedisConstant.MANAGE_TOKEN)) - return (String) redisUtil.get(RedisConstant.MANAGE_TOKEN); - - LoginVo loginVo = new LoginVo(username, password); - Result loginRes = monitorSystem.login(loginVo); - String token = loginRes.getResult().getToken(); - redisUtil.set(RedisConstant.MANAGE_TOKEN, token, JwtUtil.EXPIRE_TIME / 1000 - 10); - return token; + String token = null; + try { + if (redisUtil.hasKey(RedisConstant.MANAGE_TOKEN)) + return (String) redisUtil.get(RedisConstant.MANAGE_TOKEN); + LoginVo loginVo = new LoginVo(username, password); + Result loginRes = monitorSystem.login(loginVo); + token = loginRes.getResult().getToken(); + redisUtil.set(RedisConstant.MANAGE_TOKEN, token, JwtUtil.EXPIRE_TIME / 1000 - 10); + return token; + }catch (RuntimeException e){ + return token; + } } public static void refreshToken(){ - LoginVo loginVo = new LoginVo(username, password); - Result loginRes = monitorSystem.login(loginVo); - String token = loginRes.getResult().getToken(); - redisUtil.set(RedisConstant.MANAGE_TOKEN, token, JwtUtil.EXPIRE_TIME / 1000 - 10); + try { + LoginVo loginVo = new LoginVo(username, password); + Result loginRes = monitorSystem.login(loginVo); + String token = loginRes.getResult().getToken(); + redisUtil.set(RedisConstant.MANAGE_TOKEN, token, JwtUtil.EXPIRE_TIME / 1000 - 10); + }catch (RuntimeException e){ + log.error("运管系统登录异常, Token刷新失败: {}", e.getMessage()); + } } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/SendMessage.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/SendMessage.java index 698fa427..d3e39205 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/SendMessage.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/message/SendMessage.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.ListUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.dto.message.MessageDTO; import org.jeecg.common.constant.SymbolConstant; import org.jeecg.common.constant.enums.MessageTypeEnum; @@ -27,6 +28,7 @@ import static org.jeecg.common.constant.enums.MessageTypeEnum.*; * @author nieziyan * @date 2023-06-21 */ +@Slf4j @Component public class SendMessage { @@ -50,6 +52,7 @@ public class SendMessage { */ public void send(MessageDTO messageDTO, String groupId, String notific){ Map contact = getContact(groupId); + if (MapUtil.isEmpty(contact)) return; if (StrUtil.isBlank(notific)) return; List ways = ListUtil.toList(StrUtil.split(notific, COMMA)); if (ways.contains(ALL.getValue())) @@ -96,26 +99,33 @@ public class SendMessage { * @param groupId */ private Map getContact(String groupId){ - List userIds = abnormalAlarmClient.userIds(groupId).getResult(); - // 查询用户信息 - List sysUsers = sysUserService.listByIds(userIds); - // 用户名 - String usernameList = sysUsers.stream().map(SysUser::getUsername).filter(StrUtil::isNotBlank) - .collect(Collectors.joining(COMMA)); - // 邮箱 - String emailList = sysUsers.stream().map(SysUser::getEmail).filter(StrUtil::isNotBlank) - .collect(Collectors.joining(COMMA)); - // 用户名-邮箱Map - Map userEmail = sysUsers.stream() - .collect(Collectors.toMap(SysUser::getUsername, SysUser::getEmail)); - // 手机号码 - String phoneList = sysUsers.stream().map(SysUser::getPhone).filter(StrUtil::isNotBlank) - .collect(Collectors.joining(COMMA)); Map result = new HashMap<>(); - result.put(SYSTEM, usernameList); - result.put(EMAIL, emailList); - result.put(SMS, phoneList); - result.putAll(userEmail); - return result; + try { + List userIds = abnormalAlarmClient.userIds(groupId).getResult(); + // 查询用户信息 + List sysUsers = sysUserService.listByIds(userIds); + // 用户名 + String usernameList = sysUsers.stream().map(SysUser::getUsername).filter(StrUtil::isNotBlank) + .collect(Collectors.joining(COMMA)); + // 邮箱 + String emailList = sysUsers.stream().map(SysUser::getEmail).filter(StrUtil::isNotBlank) + .collect(Collectors.joining(COMMA)); + // 用户名-邮箱Map + Map userEmail = sysUsers.stream() + .filter(item -> StrUtil.isNotBlank(item.getEmail())) + .collect(Collectors.toMap(SysUser::getUsername, SysUser::getEmail)); + // 手机号码 + String phoneList = sysUsers.stream().map(SysUser::getPhone).filter(StrUtil::isNotBlank) + .collect(Collectors.joining(COMMA)); + + result.put(SYSTEM, usernameList); + result.put(EMAIL, emailList); + result.put(SMS, phoneList); + result.putAll(userEmail); + return result; + }catch (Exception e) { + log.error("获取收件人联系信息异常: {}", e.getMessage()); + return result; + } } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/DatabaseJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/DatabaseJob.java index 9753f15a..5da9a25a 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/DatabaseJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/DatabaseJob.java @@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import feign.FeignException; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.dto.message.MessageDTO; @@ -102,6 +103,10 @@ public class DatabaseJob extends Monitor implements Job{ }*/ // 向运管查询监控项数据 String token = ManageUtil.getToken(); + if(StrUtil.isBlank(token)){ + log.error("运管系统登录异常, Token获取失败"); + continue; + } Result result = getMonitorSystem().itemBack(itemId, itemType, start, end, token); ItemHistory itemHistory = result.getResult(); if (ObjectUtil.isNull(itemHistory)){ @@ -141,9 +146,12 @@ public class DatabaseJob extends Monitor implements Job{ getSendMessage().send(messageDTO, groupId, notific); getPushAppUtil().pushToSingle(messageDTO, groupId); } + } catch (FeignException.Unauthorized e){ + ManageUtil.refreshToken(); + log.warn("向运管系统查询ItemHistory信息异常: Token失效,已刷新Token"); } catch (JsonProcessingException e) { log.error("Database预警规则: {}解析失败,失败原因: {}", operator, e.getMessage()); - }catch (Exception e){ + } catch (Exception e){ log.error("Database监控异常: {}", e.getMessage()); } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/ServerJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/ServerJob.java index 5d5c8a89..2c544195 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/ServerJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/job/ServerJob.java @@ -85,6 +85,10 @@ public class ServerJob extends Monitor implements Job { // 向运管查询监控项数据 String token = ManageUtil.getToken(); + if(StrUtil.isBlank(token)){ + log.error("运管系统登录异常, Token获取失败"); + continue; + } Result result = getMonitorSystem().itemBack(itemId, itemType, start, end, token); ItemHistory itemHistory = result.getResult(); if (ObjectUtil.isNull(itemHistory)){ @@ -124,12 +128,12 @@ public class ServerJob extends Monitor implements Job { getSendMessage().send(messageDTO, groupId, notific); getPushAppUtil().pushToSingle(messageDTO, groupId); } - }catch (FeignException.Unauthorized e){ + } catch (FeignException.Unauthorized e){ ManageUtil.refreshToken(); log.warn("向运管系统查询ItemHistory信息异常: Token失效,已刷新Token"); } catch (JsonProcessingException e) { log.error("Server预警规则: {}解析失败,失败原因: {}", operator, e.getMessage()); - }catch (Exception e){ + } catch (Exception e){ log.error("Server监控异常: {}", e.getMessage()); } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/DatabaseJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/DatabaseJob.java index 2c8d7036..5f76098c 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/DatabaseJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/DatabaseJob.java @@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import feign.FeignException; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.dto.message.MessageDTO; @@ -86,6 +87,10 @@ public class DatabaseJob extends Monitor { // 向运管查询监控项数据 String token = ManageUtil.getToken(); + if(StrUtil.isBlank(token)){ + log.error("运管系统登录异常, Token获取失败"); + continue; + } Result result = getMonitorSystem().itemBack(itemId, itemType, start, end, token); ItemHistory itemHistory = result.getResult(); if (ObjectUtil.isNull(itemHistory)){ @@ -125,11 +130,13 @@ public class DatabaseJob extends Monitor { getSendMessage().send(messageDTO, groupId, notific); getPushAppUtil().pushToSingle(messageDTO, groupId); } + }catch (FeignException.Unauthorized e){ + ManageUtil.refreshToken(); + log.warn("向运管系统查询ItemHistory信息异常: Token失效,已刷新Token"); } catch (JsonProcessingException e) { log.error("Database预警规则: {}解析失败,失败原因: {}", operator, e.getMessage()); }catch (Exception e){ log.error("Database监控异常: {}", e.getMessage()); - e.printStackTrace(); } } destroy(); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/EmailJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/EmailJob.java index 2259aa4c..ef51c991 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/EmailJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/EmailJob.java @@ -111,7 +111,6 @@ public class EmailJob extends Monitor{ log.error("Email预警规则: {}解析失败,失败原因: {}", operator, e.getMessage()); }catch (Exception e){ log.error("Email监控异常: {}", e.getMessage()); - e.printStackTrace(); } } destroy(); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/ServerJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/ServerJob.java index 9bfe5b86..42182ba7 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/ServerJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/ServerJob.java @@ -84,6 +84,10 @@ public class ServerJob extends Monitor{ // 向运管查询监控项数据 String token = ManageUtil.getToken(); + if(StrUtil.isBlank(token)){ + log.error("运管系统登录异常, Token获取失败"); + continue; + } Result result = getMonitorSystem().itemBack(itemId, itemType, start, end, token); ItemHistory itemHistory = result.getResult(); if (ObjectUtil.isNull(itemHistory)){ @@ -123,14 +127,13 @@ public class ServerJob extends Monitor{ getSendMessage().send(messageDTO, groupId, notific); getPushAppUtil().pushToSingle(messageDTO, groupId); } - }catch (FeignException.Unauthorized e){ + } catch (FeignException.Unauthorized e){ ManageUtil.refreshToken(); log.warn("向运管系统查询ItemHistory信息异常: Token失效,已刷新Token"); } catch (JsonProcessingException e) { log.error("Server预警规则: {}解析失败,失败原因: {}", operator, e.getMessage()); - }catch (Exception e){ + } catch (Exception e){ log.error("Server监控异常: {}", e.getMessage()); - e.printStackTrace(); } } destroy(); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/TableSpaceJob.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/TableSpaceJob.java index 441b344f..9705aceb 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/TableSpaceJob.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/jobs/TableSpaceJob.java @@ -44,7 +44,7 @@ public class TableSpaceJob extends Monitor { /** * 解析Oracle 表空间预警规则 **/ - @Scheduled(cron = "${task.period-space:0 0 */1 * * ?}") + @Scheduled(cron = "${task.period-space:0 0/1 * * * ?}") public void execute(){ init(); @@ -124,7 +124,6 @@ public class TableSpaceJob extends Monitor { log.error("Database-TableSpace预警规则: {}解析失败,失败原因: {}", operator, e.getMessage()); }catch (Exception e){ log.error("Database-TableSpace监控异常: {}", e.getMessage()); - e.printStackTrace(); } } destroy(); From 6335a3f588c9214529ad949ed9315efddb825df2 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Wed, 24 Apr 2024 09:34:59 +0800 Subject: [PATCH 109/133] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E6=94=B9FTP?= =?UTF-8?q?=E4=B8=BA=E6=9C=AC=E5=9C=B0=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/GardsSampleDataServiceImpl.java | 68 +++++++++---------- 1 file changed, 32 insertions(+), 36 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsSampleDataServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsSampleDataServiceImpl.java index 22984ab2..71e490fc 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsSampleDataServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsSampleDataServiceImpl.java @@ -1,8 +1,10 @@ package org.jeecg.modules.system.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.dynamic.datasource.annotation.DS; @@ -13,6 +15,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.toolkit.SqlRunner; +import com.google.common.io.Files; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; @@ -47,9 +50,6 @@ public class GardsSampleDataServiceImpl extends ServiceImpl failList = new ArrayList<>(); - for (String path:needDel) { - boolean success = ftpUtil.removeFiles(path); - if (!success) { - failList.add(path); - } + // 删除本地文件 + List fails = new ArrayList<>(); + for (String path : needDel) { + boolean success = FileUtil.del(path); + if (!success) fails.add(path); } - if (CollUtil.isNotEmpty(failList)) - return Result.error("Data clearing is complete, but file clearing fails!", failList); + if (CollUtil.isNotEmpty(fails)) + return Result.error("Data clearing is complete, but file clearing fails!", fails); return Result.OK("Data and file cleanup complete!"); }catch (Exception e){ transactionManager.rollback(txStatus); @@ -215,27 +213,25 @@ public class GardsSampleDataServiceImpl extends ServiceImpl fileList = new ArrayList<>(); List AnalysesDtoList = baseMapper.getAnalysis(owner, sampleId); - if (CollectionUtils.isNotEmpty(AnalysesDtoList)) { - for (AnalysesDto AnalysesDto:AnalysesDtoList) { - String baselinePath = AnalysesDto.getBaselinePath(); - if (StrUtil.isNotBlank(baselinePath)) { - fileList.add(savePath + baselinePath); - } - String lcPath = AnalysesDto.getLcPath(); - if (StrUtil.isNotBlank(lcPath)) { - fileList.add(savePath + lcPath); - } - String scacPath = AnalysesDto.getScacPath(); - if (StrUtil.isNotBlank(scacPath)) { - fileList.add(savePath + scacPath); - } - if (StrUtil.isNotBlank(AnalysesDto.getLogPath())) { - fileList.add(logPath + AnalysesDto.getLogPath()); - } - String reportPath = AnalysesDto.getReportPath(); - if (StrUtil.isNotBlank(reportPath)) { - fileList.add(savePath + reportPath + FileTypeEnum.txt.getType()); - } + for (AnalysesDto AnalysesDto:AnalysesDtoList) { + String baselinePath = AnalysesDto.getBaselinePath(); + if (StrUtil.isNotBlank(baselinePath)) { + fileList.add(savePath + baselinePath); + } + String lcPath = AnalysesDto.getLcPath(); + if (StrUtil.isNotBlank(lcPath)) { + fileList.add(savePath + lcPath); + } + String scacPath = AnalysesDto.getScacPath(); + if (StrUtil.isNotBlank(scacPath)) { + fileList.add(savePath + scacPath); + } + if (StrUtil.isNotBlank(AnalysesDto.getLogPath())) { + fileList.add(logPath + AnalysesDto.getLogPath()); + } + String reportPath = AnalysesDto.getReportPath(); + if (StrUtil.isNotBlank(reportPath)) { + fileList.add(savePath + reportPath + FileTypeEnum.txt.getType()); } } return fileList; From df16ed12a81254a32a1d4fccecb5c628c88d324f Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Wed, 24 Apr 2024 16:45:49 +0800 Subject: [PATCH 110/133] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=88=B0=E6=96=B0=E7=9A=84=E5=88=86=E6=94=AF?= =?UTF-8?q?onlyDownload=EF=BC=8C=E6=B5=8B=E8=AF=95=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E9=82=AE=E4=BB=B6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/email/EmailServiceManager.java | 144 +++++++++--------- .../org/jeecg/modules/AutoProcessManager.java | 6 +- .../jeecg/modules/EmailParsingActuator.java | 14 +- .../spectrum/SpectrumParsingActuator.java | 82 +++++----- .../jeecg/JeecgAutoProcessApplication.java | 4 +- 5 files changed, 131 insertions(+), 119 deletions(-) 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 f4f8b334..c5a1be52 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 @@ -66,6 +66,8 @@ public class EmailServiceManager { private RedisUtil redisUtil; + private Object receive; + private Object downloadEmlLocal = new Object(); @NotNull @@ -87,7 +89,7 @@ public class EmailServiceManager { */ public void init(SysEmail email, Integer receiveNum, String temporaryStoragePath, Date systemStartupTime, SpectrumPathProperties pathProperties,TaskProperties taskProperties, - RedisUtil redisUtil){ + RedisUtil redisUtil, Object receive){ this.email = email; this.receiveNum = receiveNum; this.temporaryStoragePath = temporaryStoragePath; @@ -95,6 +97,7 @@ public class EmailServiceManager { this.spectrumPathProperties = pathProperties; this.taskProperties = taskProperties; this.redisUtil = redisUtil; + this.receive = receive; } /** @@ -125,77 +128,79 @@ public class EmailServiceManager { * 接收邮件 */ public Message[] receiveMail() { - String status = EmailLogManager.STATUS_SUCCESS; - try{ - //配置邮件服务属性 - Properties properties = new Properties(); - properties.put("mail.store.protocol", "imap"); - properties.put("mail.imap.host", email.getEmailServerAddress()); - properties.put("mail.imap.port",email.getPort()); - if (email.getIsQiye() == 1) { - properties.put("mail.imap.ssl.enable", "true"); - } else { - 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); - //如果邮箱邮件数量 > 0 - final int messageCount = folder.getMessageCount(); - if(messageCount > 0){ - Message[] messages = null; - if(Objects.isNull(this.systemStartupTime)){ - int finalNum = messageCount > this.receiveNum?this.receiveNum:messageCount; - //邮箱邮件下标是从1开始的 - return folder.getMessages(1,finalNum); + synchronized (receive) { + String status = EmailLogManager.STATUS_SUCCESS; + try{ + //配置邮件服务属性 + Properties properties = new Properties(); + properties.put("mail.store.protocol", "imap"); + properties.put("mail.imap.host", email.getEmailServerAddress()); + properties.put("mail.imap.port",email.getPort()); + if (email.getIsQiye() == 1) { + properties.put("mail.imap.ssl.enable", "true"); + } else { + properties.put("mail.imap.ssl.enable", "false"); } - SearchTerm searchTerm = new ReceivedDateTerm(ComparisonTerm.GE,this.systemStartupTime); - messages = folder.search(searchTerm); - Arrays.sort(messages, (o1, o2) -> { - try { - return o1.getReceivedDate().compareTo(o2.getReceivedDate()); - } catch (MessagingException e) { - e.printStackTrace(); + + 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); + //如果邮箱邮件数量 > 0 + final int messageCount = folder.getMessageCount(); + if(messageCount > 0){ + Message[] messages = null; + if(Objects.isNull(this.systemStartupTime)){ + int finalNum = messageCount > this.receiveNum?this.receiveNum:messageCount; + //邮箱邮件下标是从1开始的 + return folder.getMessages(1,finalNum); + } + SearchTerm searchTerm = new ReceivedDateTerm(ComparisonTerm.GE,this.systemStartupTime); + messages = folder.search(searchTerm); + Arrays.sort(messages, (o1, o2) -> { + try { + return o1.getReceivedDate().compareTo(o2.getReceivedDate()); + } catch (MessagingException e) { + e.printStackTrace(); + } + return 0; + }); + if(this.receiveNum >= messages.length){ + return messages; + }else{ + return Arrays.copyOfRange(messages,0,this.receiveNum-1); } - return 0; - }); - if(this.receiveNum >= messages.length){ - return messages; - }else{ - return Arrays.copyOfRange(messages,0,this.receiveNum-1); } + }catch (MessagingException e){ + status = EmailLogManager.STATUS_ERROR; + log.error("Email connection is abnormal, account is {}, service is {},the reason is {}.",email.getName(),email.getEmailServerAddress(),e.getMessage()); + e.printStackTrace(); + return null; + }finally { + EmailLogEvent connectEvent = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,email,status,EmailLogManager.CONNECT); + EmailLogManager.getInstance().setConnectLogEvent(connectEvent); + //GetAllId C++原业务是把远程邮箱邮件同步到C++,本次java编写没有这一步,所以和Connect绑定,若Connect成功则GetAllId成功 + EmailLogEvent getAllEvent = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,status,EmailLogManager.GETALLID); + EmailLogManager.getInstance().setGetAllIdLogEvent(getAllEvent); } - }catch (MessagingException e){ - status = EmailLogManager.STATUS_ERROR; - log.error("Email connection is abnormal, account is {}, service is {},the reason is {}.",email.getName(),email.getEmailServerAddress(),e.getMessage()); - e.printStackTrace(); return null; - }finally { - EmailLogEvent connectEvent = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,email,status,EmailLogManager.CONNECT); - EmailLogManager.getInstance().setConnectLogEvent(connectEvent); - //GetAllId C++原业务是把远程邮箱邮件同步到C++,本次java编写没有这一步,所以和Connect绑定,若Connect成功则GetAllId成功 - EmailLogEvent getAllEvent = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,status,EmailLogManager.GETALLID); - EmailLogManager.getInstance().setGetAllIdLogEvent(getAllEvent); } - return null; } /* @@ -532,7 +537,7 @@ public class EmailServiceManager { File emlFile = null; String status = EmailLogManager.STATUS_SUCCESS; Date receivedDate = null; - FileOutputStream outputStream = null; + BufferedOutputStream outputStream = null; try { //获取发件人 final String address = ((InternetAddress) message.getFrom()[0]).getAddress(); @@ -566,9 +571,10 @@ public class EmailServiceManager { final String rootPath = spectrumPathProperties.getRootPath(); final String emlPath = spectrumPathProperties.getEmlPath(); emlFile = new File(rootPath+emlPath+File.separator+fileName); - outputStream = new FileOutputStream(emlFile); + outputStream = new BufferedOutputStream(new FileOutputStream(emlFile)); message.writeTo(outputStream); - + // 刷新缓冲区内容存入内存 + outputStream.flush(); // int bufferSize = 1024 * 1024; // 1M // InputStream inputStream = message.getInputStream(); // BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream, bufferSize); 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 3a0880dd..9fea1237 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 @@ -37,6 +37,10 @@ public class AutoProcessManager{ * 邮件Map数据锁 */ private final Object lock = new Object(); + /** + * 邮箱接收邮件锁 + */ + private final Object receive = new Object(); /** * 以邮件Id为key,邮件信息为value */ @@ -99,7 +103,7 @@ public class AutoProcessManager{ boolean testFlag = emailServiceManager.testConnectEmailServer(); if(testFlag){ EmailParsingActuator emailParsingActuator = new EmailParsingActuator(); - emailParsingActuator.init(next,spectrumServiceQuotes,emailCounter,systemStartupTime); + emailParsingActuator.init(next,spectrumServiceQuotes,emailCounter,systemStartupTime, receive); emailParsingActuator.setName(next.getUsername()+"-email-monitor"); emailParsingActuator.start(); //把邮件监测执行线程加入管理队列 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 737b53c8..fd8ae856 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 @@ -36,18 +36,20 @@ public class EmailParsingActuator extends Thread{ private SpectrumServiceQuotes spectrumServiceQuotes; private EmailCounter emailCounter; private Date systemStartupTime; + private Object receive; @Setter @Getter private boolean isStop; @Setter @Getter private Date stopTime; public void init(EmailProperties emailProperties,SpectrumServiceQuotes spectrumServiceQuotes, - EmailCounter emailCounter,Date systemStartupTime){ + EmailCounter emailCounter,Date systemStartupTime, Object receive){ this.emailProperties = emailProperties; this.spectrumServiceQuotes = spectrumServiceQuotes; this.taskProperties = spectrumServiceQuotes.getTaskProperties(); this.emailCounter = emailCounter; this.systemStartupTime = systemStartupTime; + this.receive = receive; //获取机器可用核心数 int systemCores = spectrumServiceQuotes.getMaximumPoolSizeProperties().getAuto(); @@ -74,7 +76,7 @@ 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(), spectrumServiceQuotes.getTaskProperties(), spectrumServiceQuotes.getRedisUtil()); + this.systemStartupTime, spectrumServiceQuotes.getSpectrumPathProperties(), spectrumServiceQuotes.getTaskProperties(), spectrumServiceQuotes.getRedisUtil(), receive); List messageIds = new ArrayList<>(); try { Message[] messages = emailServiceManager.receiveMail(); @@ -84,11 +86,11 @@ public class EmailParsingActuator extends Thread{ for(int i=messages.length-1;i>=0;i--){ if (!messages[i].isExpunged()){ String messageId = ((MimeMessage) messages[i]).getMessageID(); - final boolean exist = emailServiceManager.check(messages[i],messageId); +// final boolean exist = emailServiceManager.check(messages[i],messageId); messageIds.add(messageId); - if(exist){ - messages = ArrayUtils.remove(messages,i); - } +// if(exist){ +// messages = ArrayUtils.remove(messages,i); +// } } } log.info("EmailParsingActuator本次真实执行邮件数量为:{}",messages.length); 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 a88f07ad..aa9ba619 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 @@ -110,47 +110,47 @@ public class SpectrumParsingActuator implements Runnable{ //保存邮件日志到PG数据库 this.spectrumServiceQuotes.getMailLogService().create(message,emailProperties); - //获取邮件内容 - StringBuilder mailContent = new StringBuilder(); - if(Objects.nonNull(emlFile) && emlFile.length() > 0){ - mailContent.append(FileUtil.readUtf8String(emlFile)); - } - - //判断是否是IMS2.0协议文件 - // 如果邮件内容校验成功 将文件保存到eml目录 并删除邮件对象 - if(checkMailContent(mailContent,subject)){ - AbstractSpectrumHandler spectrumHandler = new SamplephdSpectrum(); - spectrumHandler.init(mailContent.toString(),emlFile.getName(),spectrumServiceQuotes,new StringBuilder(),SpectrumSource.FORM_EMAIL_SERVICE.getSourceType(),batchesCounter); - final boolean matchResult = spectrumHandler.saveEmailToLocal(); - if(matchResult){ - try { - //开始解析 - spectrumHandler.handler(); - spectrumServiceQuotes.getRedisUtil().del(key); - } catch (Exception e) { - //如果是gamma谱的分析异常 - if (e instanceof AnalySpectrumException) { - // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError - if (Objects.nonNull(emlFile) && emlFile.exists()){ - moveEmail(emlFile, key); - } - //删除邮件 - emailServiceManager.removeMail(message,batchesCounter); - } else { - throw e; - } - } - }else{ - log.warn("This email {} parsing failed and is not listed in the Met, Alert, SOH, Sample, Detbkphd, QC, Gasbkphd spectra.",subject); - } - emailServiceManager.removeMail(message,batchesCounter); - }else { - // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError - if (Objects.nonNull(emlFile) && emlFile.exists()){ - moveEmail(emlFile, key); - throw new DownloadEmailException("邮件移走后手动抛出DownloadEmailException"); - } - } +// //获取邮件内容 +// StringBuilder mailContent = new StringBuilder(); +// if(Objects.nonNull(emlFile) && emlFile.length() > 0){ +// mailContent.append(FileUtil.readUtf8String(emlFile)); +// } +// +// //判断是否是IMS2.0协议文件 +// // 如果邮件内容校验成功 将文件保存到eml目录 并删除邮件对象 +// if(checkMailContent(mailContent,subject)){ +// AbstractSpectrumHandler spectrumHandler = new SamplephdSpectrum(); +// spectrumHandler.init(mailContent.toString(),emlFile.getName(),spectrumServiceQuotes,new StringBuilder(),SpectrumSource.FORM_EMAIL_SERVICE.getSourceType(),batchesCounter); +// final boolean matchResult = spectrumHandler.saveEmailToLocal(); +// if(matchResult){ +// try { +// //开始解析 +// spectrumHandler.handler(); +// spectrumServiceQuotes.getRedisUtil().del(key); +// } catch (Exception e) { +// //如果是gamma谱的分析异常 +// if (e instanceof AnalySpectrumException) { +// // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError +// if (Objects.nonNull(emlFile) && emlFile.exists()){ +// moveEmail(emlFile, key); +// } +// //删除邮件 +// emailServiceManager.removeMail(message,batchesCounter); +// } else { +// throw e; +// } +// } +// }else{ +// log.warn("This email {} parsing failed and is not listed in the Met, Alert, SOH, Sample, Detbkphd, QC, Gasbkphd spectra.",subject); +// } +// emailServiceManager.removeMail(message,batchesCounter); +// }else { +// // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError +// if (Objects.nonNull(emlFile) && emlFile.exists()){ +// moveEmail(emlFile, key); +// throw new DownloadEmailException("邮件移走后手动抛出DownloadEmailException"); +// } +// } } catch (Exception e) { // 如果不是下载导致的失败 并且 下载成功,则删除下载的邮件对象 if(!(e instanceof DownloadEmailException) && downloadFlag){ 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 853ac505..f989894e 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 @@ -93,8 +93,8 @@ public class JeecgAutoProcessApplication extends SpringBootServletInitializer im //校验存储目录是否存在,不存在则创建,存在无操作 checkStorageDirectory(); autoProcessManager.start(systemStartupTime); - undealHandleManager.start(); - fileSourceHandleManager.start(); +// undealHandleManager.start(); +// fileSourceHandleManager.start(); // 删除过期的文件 delFileManager.start(); //统计报告执行线程 From 7da8eeb921aee1b9763a309294a4ce3dc06ec57d Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 25 Apr 2024 14:26:00 +0800 Subject: [PATCH 111/133] =?UTF-8?q?onlyDownload=E6=94=BE=E5=BC=80=E5=90=8E?= =?UTF-8?q?=E7=BB=AD=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/modules/EmailParsingActuator.java | 8 +- .../spectrum/SpectrumParsingActuator.java | 82 +++++++++---------- .../jeecg/JeecgAutoProcessApplication.java | 4 +- 3 files changed, 47 insertions(+), 47 deletions(-) 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 fd8ae856..11c83e4c 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 @@ -86,11 +86,11 @@ public class EmailParsingActuator extends Thread{ for(int i=messages.length-1;i>=0;i--){ if (!messages[i].isExpunged()){ String messageId = ((MimeMessage) messages[i]).getMessageID(); -// final boolean exist = emailServiceManager.check(messages[i],messageId); + final boolean exist = emailServiceManager.check(messages[i],messageId); messageIds.add(messageId); -// if(exist){ -// messages = ArrayUtils.remove(messages,i); -// } + if(exist){ + messages = ArrayUtils.remove(messages,i); + } } } log.info("EmailParsingActuator本次真实执行邮件数量为:{}",messages.length); 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 aa9ba619..a88f07ad 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 @@ -110,47 +110,47 @@ public class SpectrumParsingActuator implements Runnable{ //保存邮件日志到PG数据库 this.spectrumServiceQuotes.getMailLogService().create(message,emailProperties); -// //获取邮件内容 -// StringBuilder mailContent = new StringBuilder(); -// if(Objects.nonNull(emlFile) && emlFile.length() > 0){ -// mailContent.append(FileUtil.readUtf8String(emlFile)); -// } -// -// //判断是否是IMS2.0协议文件 -// // 如果邮件内容校验成功 将文件保存到eml目录 并删除邮件对象 -// if(checkMailContent(mailContent,subject)){ -// AbstractSpectrumHandler spectrumHandler = new SamplephdSpectrum(); -// spectrumHandler.init(mailContent.toString(),emlFile.getName(),spectrumServiceQuotes,new StringBuilder(),SpectrumSource.FORM_EMAIL_SERVICE.getSourceType(),batchesCounter); -// final boolean matchResult = spectrumHandler.saveEmailToLocal(); -// if(matchResult){ -// try { -// //开始解析 -// spectrumHandler.handler(); -// spectrumServiceQuotes.getRedisUtil().del(key); -// } catch (Exception e) { -// //如果是gamma谱的分析异常 -// if (e instanceof AnalySpectrumException) { -// // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError -// if (Objects.nonNull(emlFile) && emlFile.exists()){ -// moveEmail(emlFile, key); -// } -// //删除邮件 -// emailServiceManager.removeMail(message,batchesCounter); -// } else { -// throw e; -// } -// } -// }else{ -// log.warn("This email {} parsing failed and is not listed in the Met, Alert, SOH, Sample, Detbkphd, QC, Gasbkphd spectra.",subject); -// } -// emailServiceManager.removeMail(message,batchesCounter); -// }else { -// // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError -// if (Objects.nonNull(emlFile) && emlFile.exists()){ -// moveEmail(emlFile, key); -// throw new DownloadEmailException("邮件移走后手动抛出DownloadEmailException"); -// } -// } + //获取邮件内容 + StringBuilder mailContent = new StringBuilder(); + if(Objects.nonNull(emlFile) && emlFile.length() > 0){ + mailContent.append(FileUtil.readUtf8String(emlFile)); + } + + //判断是否是IMS2.0协议文件 + // 如果邮件内容校验成功 将文件保存到eml目录 并删除邮件对象 + if(checkMailContent(mailContent,subject)){ + AbstractSpectrumHandler spectrumHandler = new SamplephdSpectrum(); + spectrumHandler.init(mailContent.toString(),emlFile.getName(),spectrumServiceQuotes,new StringBuilder(),SpectrumSource.FORM_EMAIL_SERVICE.getSourceType(),batchesCounter); + final boolean matchResult = spectrumHandler.saveEmailToLocal(); + if(matchResult){ + try { + //开始解析 + spectrumHandler.handler(); + spectrumServiceQuotes.getRedisUtil().del(key); + } catch (Exception e) { + //如果是gamma谱的分析异常 + if (e instanceof AnalySpectrumException) { + // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError + if (Objects.nonNull(emlFile) && emlFile.exists()){ + moveEmail(emlFile, key); + } + //删除邮件 + emailServiceManager.removeMail(message,batchesCounter); + } else { + throw e; + } + } + }else{ + log.warn("This email {} parsing failed and is not listed in the Met, Alert, SOH, Sample, Detbkphd, QC, Gasbkphd spectra.",subject); + } + emailServiceManager.removeMail(message,batchesCounter); + }else { + // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError + if (Objects.nonNull(emlFile) && emlFile.exists()){ + moveEmail(emlFile, key); + throw new DownloadEmailException("邮件移走后手动抛出DownloadEmailException"); + } + } } catch (Exception e) { // 如果不是下载导致的失败 并且 下载成功,则删除下载的邮件对象 if(!(e instanceof DownloadEmailException) && downloadFlag){ 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 f989894e..853ac505 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 @@ -93,8 +93,8 @@ public class JeecgAutoProcessApplication extends SpringBootServletInitializer im //校验存储目录是否存在,不存在则创建,存在无操作 checkStorageDirectory(); autoProcessManager.start(systemStartupTime); -// undealHandleManager.start(); -// fileSourceHandleManager.start(); + undealHandleManager.start(); + fileSourceHandleManager.start(); // 删除过期的文件 delFileManager.start(); //统计报告执行线程 From f62158a721519750a02474f510f1fcc6457a2ade Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 26 Apr 2024 10:31:59 +0800 Subject: [PATCH 112/133] =?UTF-8?q?onlyDownload=E4=BF=AE=E6=94=B9=E9=82=AE?= =?UTF-8?q?=E7=AE=B1=E5=A4=84=E7=90=86=E7=A8=8B=E5=BA=8F=E9=A2=91=E7=B9=81?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BA=BF=E7=A8=8B=E9=97=AE=E9=A2=98=20onlyDo?= =?UTF-8?q?wnload=E4=BF=AE=E6=94=B9=E6=96=87=E4=BB=B6=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E9=83=A8=E5=88=86=E9=95=BF=E6=9C=9F=E5=A0=B5=E5=A1=9E=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/email/EmailServiceManager.java | 183 +++++++++--------- .../org/jeecg/modules/AutoProcessManager.java | 16 +- .../jeecg/modules/EmailParsingActuator.java | 19 +- .../spectrum/SpectrumParsingActuator.java | 82 ++++---- 4 files changed, 148 insertions(+), 152 deletions(-) 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 c5a1be52..e63fbd5d 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 @@ -9,6 +9,8 @@ import com.sun.mail.imap.IMAPStore; import com.sun.mail.smtp.SMTPAddressFailedException; import io.swagger.models.auth.In; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.Charsets; +import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.dto.message.MessageDTO; import org.jeecg.common.constant.RedisConstant; @@ -66,8 +68,6 @@ public class EmailServiceManager { private RedisUtil redisUtil; - private Object receive; - private Object downloadEmlLocal = new Object(); @NotNull @@ -89,7 +89,7 @@ public class EmailServiceManager { */ public void init(SysEmail email, Integer receiveNum, String temporaryStoragePath, Date systemStartupTime, SpectrumPathProperties pathProperties,TaskProperties taskProperties, - RedisUtil redisUtil, Object receive){ + RedisUtil redisUtil){ this.email = email; this.receiveNum = receiveNum; this.temporaryStoragePath = temporaryStoragePath; @@ -97,7 +97,6 @@ public class EmailServiceManager { this.spectrumPathProperties = pathProperties; this.taskProperties = taskProperties; this.redisUtil = redisUtil; - this.receive = receive; } /** @@ -128,79 +127,77 @@ public class EmailServiceManager { * 接收邮件 */ public Message[] receiveMail() { - synchronized (receive) { - String status = EmailLogManager.STATUS_SUCCESS; - try{ - //配置邮件服务属性 - Properties properties = new Properties(); - properties.put("mail.store.protocol", "imap"); - properties.put("mail.imap.host", email.getEmailServerAddress()); - properties.put("mail.imap.port",email.getPort()); - if (email.getIsQiye() == 1) { - properties.put("mail.imap.ssl.enable", "true"); - } else { - 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); - //如果邮箱邮件数量 > 0 - final int messageCount = folder.getMessageCount(); - if(messageCount > 0){ - Message[] messages = null; - if(Objects.isNull(this.systemStartupTime)){ - int finalNum = messageCount > this.receiveNum?this.receiveNum:messageCount; - //邮箱邮件下标是从1开始的 - return folder.getMessages(1,finalNum); - } - SearchTerm searchTerm = new ReceivedDateTerm(ComparisonTerm.GE,this.systemStartupTime); - messages = folder.search(searchTerm); - Arrays.sort(messages, (o1, o2) -> { - try { - return o1.getReceivedDate().compareTo(o2.getReceivedDate()); - } catch (MessagingException e) { - e.printStackTrace(); - } - return 0; - }); - if(this.receiveNum >= messages.length){ - return messages; - }else{ - return Arrays.copyOfRange(messages,0,this.receiveNum-1); - } - } - }catch (MessagingException e){ - status = EmailLogManager.STATUS_ERROR; - log.error("Email connection is abnormal, account is {}, service is {},the reason is {}.",email.getName(),email.getEmailServerAddress(),e.getMessage()); - e.printStackTrace(); - return null; - }finally { - EmailLogEvent connectEvent = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,email,status,EmailLogManager.CONNECT); - EmailLogManager.getInstance().setConnectLogEvent(connectEvent); - //GetAllId C++原业务是把远程邮箱邮件同步到C++,本次java编写没有这一步,所以和Connect绑定,若Connect成功则GetAllId成功 - EmailLogEvent getAllEvent = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,status,EmailLogManager.GETALLID); - EmailLogManager.getInstance().setGetAllIdLogEvent(getAllEvent); + String status = EmailLogManager.STATUS_SUCCESS; + try{ + //配置邮件服务属性 + Properties properties = new Properties(); + properties.put("mail.store.protocol", "imap"); + properties.put("mail.imap.host", email.getEmailServerAddress()); + properties.put("mail.imap.port",email.getPort()); + if (email.getIsQiye() == 1) { + properties.put("mail.imap.ssl.enable", "true"); + } else { + 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); + //如果邮箱邮件数量 > 0 + final int messageCount = folder.getMessageCount(); + if(messageCount > 0){ + Message[] messages = null; + if(Objects.isNull(this.systemStartupTime)){ + int finalNum = messageCount > this.receiveNum?this.receiveNum:messageCount; + //邮箱邮件下标是从1开始的 + return folder.getMessages(1,finalNum); + } + SearchTerm searchTerm = new ReceivedDateTerm(ComparisonTerm.GE,this.systemStartupTime); + messages = folder.search(searchTerm); + Arrays.sort(messages, (o1, o2) -> { + try { + return o1.getReceivedDate().compareTo(o2.getReceivedDate()); + } catch (MessagingException e) { + e.printStackTrace(); + } + return 0; + }); + if(this.receiveNum >= messages.length){ + return messages; + }else{ + return Arrays.copyOfRange(messages,0,this.receiveNum-1); + } + } + }catch (MessagingException e){ + status = EmailLogManager.STATUS_ERROR; + log.error("Email connection is abnormal, account is {}, service is {},the reason is {}.",email.getName(),email.getEmailServerAddress(),e.getMessage()); + e.printStackTrace(); return null; + }finally { + EmailLogEvent connectEvent = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,email,status,EmailLogManager.CONNECT); + EmailLogManager.getInstance().setConnectLogEvent(connectEvent); + //GetAllId C++原业务是把远程邮箱邮件同步到C++,本次java编写没有这一步,所以和Connect绑定,若Connect成功则GetAllId成功 + EmailLogEvent getAllEvent = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,status,EmailLogManager.GETALLID); + EmailLogManager.getInstance().setGetAllIdLogEvent(getAllEvent); } + return null; } /* @@ -537,6 +534,7 @@ public class EmailServiceManager { File emlFile = null; String status = EmailLogManager.STATUS_SUCCESS; Date receivedDate = null; + InputStream inputStream = null; BufferedOutputStream outputStream = null; try { //获取发件人 @@ -571,26 +569,19 @@ public class EmailServiceManager { final String rootPath = spectrumPathProperties.getRootPath(); final String emlPath = spectrumPathProperties.getEmlPath(); emlFile = new File(rootPath+emlPath+File.separator+fileName); - outputStream = new BufferedOutputStream(new FileOutputStream(emlFile)); - message.writeTo(outputStream); - // 刷新缓冲区内容存入内存 - outputStream.flush(); -// int bufferSize = 1024 * 1024; // 1M -// InputStream inputStream = message.getInputStream(); -// BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream, bufferSize); -// // 或者使用 BufferedOutputStream -// OutputStream outputStream = new FileOutputStream(emlFile); -// BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream, bufferSize); -// // 从邮件的输入流读取内容,并写入到本地文件 -// byte[] buffer = new byte[bufferSize]; -// int bytesRead; -// while ((bytesRead = bufferedInputStream.read(buffer)) != -1) { -// bufferedOutputStream.write(buffer, 0, bytesRead); -// } -// -// // 关闭流 -// bufferedInputStream.close(); -// bufferedOutputStream.close(); +// outputStream = new FileOutputStream(emlFile); +// message.writeTo(outputStream); + + int bufferSize = 1024 * 1024; // 1M + inputStream = message.getInputStream(); + outputStream = new BufferedOutputStream(new FileOutputStream(emlFile), bufferSize); + // 从邮件的输入流读取内容,并写入到本地文件 + byte[] buffer = new byte[bufferSize]; + int bytesRead; + while ((bytesRead = inputStream.read(buffer)) != -1) { + outputStream.write(buffer, 0, bytesRead); + } + } catch (MessagingException | IOException e) { // 下载邮件失败 抛出自定义邮件下载异常 status = EmailLogManager.STATUS_ERROR; @@ -604,7 +595,11 @@ public class EmailServiceManager { (Objects.isNull(emlFile)?" ":emlFile.getAbsolutePath())); EmailLogManager.getInstance().offer(Thread.currentThread().getId(),event); try { + if (Objects.nonNull(inputStream)) { + inputStream.close(); + } if (Objects.nonNull(outputStream)) { + outputStream.flush(); outputStream.close(); } } catch (IOException e) { 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 9fea1237..c9593dbf 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 @@ -37,10 +37,6 @@ public class AutoProcessManager{ * 邮件Map数据锁 */ private final Object lock = new Object(); - /** - * 邮箱接收邮件锁 - */ - private final Object receive = new Object(); /** * 以邮件Id为key,邮件信息为value */ @@ -103,7 +99,7 @@ public class AutoProcessManager{ boolean testFlag = emailServiceManager.testConnectEmailServer(); if(testFlag){ EmailParsingActuator emailParsingActuator = new EmailParsingActuator(); - emailParsingActuator.init(next,spectrumServiceQuotes,emailCounter,systemStartupTime, receive); + emailParsingActuator.init(next,spectrumServiceQuotes,emailCounter,systemStartupTime); emailParsingActuator.setName(next.getUsername()+"-email-monitor"); emailParsingActuator.start(); //把邮件监测执行线程加入管理队列 @@ -237,9 +233,15 @@ public class AutoProcessManager{ if(databaseEmail.getEnabled().equals(SysMailEnableType.ENABLE.getMailEnableType())){ final boolean testFlag = testConnectEmailServer(databaseEmail); if(testFlag){ - databaseEmail.setNewEmailFlag(true); + if (emailExecThreadMap.containsKey(databaseEmail.getId())) { + EmailParsingActuator actuator = emailExecThreadMap.get(databaseEmail.getId()); + actuator.setStop(false); + log.info("{}邮箱重新加入监测队列",databaseEmail.getUsername()); + } else { + databaseEmail.setNewEmailFlag(true); + log.info("{}邮箱加入监测队列,设置新增标记",databaseEmail.getUsername()); + } emailMap.put(databaseEmail.getId(),databaseEmail); - log.info("{}邮箱加入监测队列,设置新增标记",databaseEmail.getUsername()); } } } 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 11c83e4c..6097a1c3 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 @@ -36,20 +36,18 @@ public class EmailParsingActuator extends Thread{ private SpectrumServiceQuotes spectrumServiceQuotes; private EmailCounter emailCounter; private Date systemStartupTime; - private Object receive; @Setter @Getter private boolean isStop; @Setter @Getter private Date stopTime; public void init(EmailProperties emailProperties,SpectrumServiceQuotes spectrumServiceQuotes, - EmailCounter emailCounter,Date systemStartupTime, Object receive){ + EmailCounter emailCounter,Date systemStartupTime){ this.emailProperties = emailProperties; this.spectrumServiceQuotes = spectrumServiceQuotes; this.taskProperties = spectrumServiceQuotes.getTaskProperties(); this.emailCounter = emailCounter; this.systemStartupTime = systemStartupTime; - this.receive = receive; //获取机器可用核心数 int systemCores = spectrumServiceQuotes.getMaximumPoolSizeProperties().getAuto(); @@ -76,21 +74,21 @@ 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(), spectrumServiceQuotes.getTaskProperties(), spectrumServiceQuotes.getRedisUtil(), receive); + this.systemStartupTime, spectrumServiceQuotes.getSpectrumPathProperties(), spectrumServiceQuotes.getTaskProperties(), spectrumServiceQuotes.getRedisUtil()); List messageIds = new ArrayList<>(); try { Message[] messages = emailServiceManager.receiveMail(); if(ArrayUtils.isNotEmpty(messages)){ - log.info("EmailParsingActuator本次获取邮件数量为:{}",messages.length); + log.info("EmailParsingActuator本次{}获取邮件数量为:{}", Thread.currentThread().getName(), messages.length); //检验获取的邮件是否在之前删除失败列表中,若在直接调用邮件API删除,并且此次数组里元素也删除 for(int i=messages.length-1;i>=0;i--){ if (!messages[i].isExpunged()){ String messageId = ((MimeMessage) messages[i]).getMessageID(); - final boolean exist = emailServiceManager.check(messages[i],messageId); +// final boolean exist = emailServiceManager.check(messages[i],messageId); messageIds.add(messageId); - if(exist){ - messages = ArrayUtils.remove(messages,i); - } +// if(exist){ +// messages = ArrayUtils.remove(messages,i); +// } } } log.info("EmailParsingActuator本次真实执行邮件数量为:{}",messages.length); @@ -107,11 +105,12 @@ public class EmailParsingActuator extends Thread{ taskLatch.await(); } } - }catch (InterruptedException e) { + } catch (InterruptedException e) { e.printStackTrace(); } catch (MessagingException e) { throw new RuntimeException(e); } finally { + log.info(Thread.currentThread().getName() +"执行完毕!!!!"); //清除本批次邮件日志缓存 EmailLogManager.getInstance().clear(); //保存本批次所有能谱日志 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 a88f07ad..aa9ba619 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 @@ -110,47 +110,47 @@ public class SpectrumParsingActuator implements Runnable{ //保存邮件日志到PG数据库 this.spectrumServiceQuotes.getMailLogService().create(message,emailProperties); - //获取邮件内容 - StringBuilder mailContent = new StringBuilder(); - if(Objects.nonNull(emlFile) && emlFile.length() > 0){ - mailContent.append(FileUtil.readUtf8String(emlFile)); - } - - //判断是否是IMS2.0协议文件 - // 如果邮件内容校验成功 将文件保存到eml目录 并删除邮件对象 - if(checkMailContent(mailContent,subject)){ - AbstractSpectrumHandler spectrumHandler = new SamplephdSpectrum(); - spectrumHandler.init(mailContent.toString(),emlFile.getName(),spectrumServiceQuotes,new StringBuilder(),SpectrumSource.FORM_EMAIL_SERVICE.getSourceType(),batchesCounter); - final boolean matchResult = spectrumHandler.saveEmailToLocal(); - if(matchResult){ - try { - //开始解析 - spectrumHandler.handler(); - spectrumServiceQuotes.getRedisUtil().del(key); - } catch (Exception e) { - //如果是gamma谱的分析异常 - if (e instanceof AnalySpectrumException) { - // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError - if (Objects.nonNull(emlFile) && emlFile.exists()){ - moveEmail(emlFile, key); - } - //删除邮件 - emailServiceManager.removeMail(message,batchesCounter); - } else { - throw e; - } - } - }else{ - log.warn("This email {} parsing failed and is not listed in the Met, Alert, SOH, Sample, Detbkphd, QC, Gasbkphd spectra.",subject); - } - emailServiceManager.removeMail(message,batchesCounter); - }else { - // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError - if (Objects.nonNull(emlFile) && emlFile.exists()){ - moveEmail(emlFile, key); - throw new DownloadEmailException("邮件移走后手动抛出DownloadEmailException"); - } - } +// //获取邮件内容 +// StringBuilder mailContent = new StringBuilder(); +// if(Objects.nonNull(emlFile) && emlFile.length() > 0){ +// mailContent.append(FileUtil.readUtf8String(emlFile)); +// } +// +// //判断是否是IMS2.0协议文件 +// // 如果邮件内容校验成功 将文件保存到eml目录 并删除邮件对象 +// if(checkMailContent(mailContent,subject)){ +// AbstractSpectrumHandler spectrumHandler = new SamplephdSpectrum(); +// spectrumHandler.init(mailContent.toString(),emlFile.getName(),spectrumServiceQuotes,new StringBuilder(),SpectrumSource.FORM_EMAIL_SERVICE.getSourceType(),batchesCounter); +// final boolean matchResult = spectrumHandler.saveEmailToLocal(); +// if(matchResult){ +// try { +// //开始解析 +// spectrumHandler.handler(); +// spectrumServiceQuotes.getRedisUtil().del(key); +// } catch (Exception e) { +// //如果是gamma谱的分析异常 +// if (e instanceof AnalySpectrumException) { +// // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError +// if (Objects.nonNull(emlFile) && emlFile.exists()){ +// moveEmail(emlFile, key); +// } +// //删除邮件 +// emailServiceManager.removeMail(message,batchesCounter); +// } else { +// throw e; +// } +// } +// }else{ +// log.warn("This email {} parsing failed and is not listed in the Met, Alert, SOH, Sample, Detbkphd, QC, Gasbkphd spectra.",subject); +// } +// emailServiceManager.removeMail(message,batchesCounter); +// }else { +// // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError +// if (Objects.nonNull(emlFile) && emlFile.exists()){ +// moveEmail(emlFile, key); +// throw new DownloadEmailException("邮件移走后手动抛出DownloadEmailException"); +// } +// } } catch (Exception e) { // 如果不是下载导致的失败 并且 下载成功,则删除下载的邮件对象 if(!(e instanceof DownloadEmailException) && downloadFlag){ From f94b6ca9fa2342bbbbf4f6a0cdb6a3dc1a550f69 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 26 Apr 2024 10:33:21 +0800 Subject: [PATCH 113/133] =?UTF-8?q?onlyDownload=E4=BF=AE=E6=94=B9=E9=82=AE?= =?UTF-8?q?=E7=AE=B1=E5=A4=84=E7=90=86=E7=A8=8B=E5=BA=8F=E9=A2=91=E7=B9=81?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BA=BF=E7=A8=8B=E9=97=AE=E9=A2=98=20onlyDo?= =?UTF-8?q?wnload=E4=BF=AE=E6=94=B9=E6=96=87=E4=BB=B6=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E9=83=A8=E5=88=86=E9=95=BF=E6=9C=9F=E5=A0=B5=E5=A1=9E=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/jeecg/modules/EmailParsingActuator.java | 1 - 1 file changed, 1 deletion(-) 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 6097a1c3..107a0558 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 @@ -110,7 +110,6 @@ public class EmailParsingActuator extends Thread{ } catch (MessagingException e) { throw new RuntimeException(e); } finally { - log.info(Thread.currentThread().getName() +"执行完毕!!!!"); //清除本批次邮件日志缓存 EmailLogManager.getInstance().clear(); //保存本批次所有能谱日志 From 1e0d499b7a345c4891cc52d2e8085a9c342f3767 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 29 Apr 2024 18:24:15 +0800 Subject: [PATCH 114/133] =?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=BA=BF=E7=A8=8B=E5=B7=B2=E5=81=9C=E6=AD=A2?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E7=A7=BB=E9=99=A4emailMap=E4=B8=AD=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E7=9A=84=E9=82=AE=E7=AE=B1=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/jeecg/modules/AutoProcessManager.java | 1 + 1 file changed, 1 insertion(+) 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 c9593dbf..9460d44d 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 @@ -285,6 +285,7 @@ public class AutoProcessManager{ if(next.getValue().getState() == State.TERMINATED){ log.info("{}邮箱执行线程已停止,emailExecThreadMap删除此邮箱数据",next.getValue().getEmailProperties().getUsername()); checkStopThreads.remove(); + emailMap.remove(next.getKey()); } } From f58d629bd7c2609f20390e2a7b23a34fa800b48c Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 29 Apr 2024 18:29:23 +0800 Subject: [PATCH 115/133] =?UTF-8?q?onlyDownload=E5=90=8E=E7=BB=AD=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=94=BE=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spectrum/SpectrumParsingActuator.java | 82 +++++++++---------- 1 file changed, 41 insertions(+), 41 deletions(-) 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 aa9ba619..a88f07ad 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 @@ -110,47 +110,47 @@ public class SpectrumParsingActuator implements Runnable{ //保存邮件日志到PG数据库 this.spectrumServiceQuotes.getMailLogService().create(message,emailProperties); -// //获取邮件内容 -// StringBuilder mailContent = new StringBuilder(); -// if(Objects.nonNull(emlFile) && emlFile.length() > 0){ -// mailContent.append(FileUtil.readUtf8String(emlFile)); -// } -// -// //判断是否是IMS2.0协议文件 -// // 如果邮件内容校验成功 将文件保存到eml目录 并删除邮件对象 -// if(checkMailContent(mailContent,subject)){ -// AbstractSpectrumHandler spectrumHandler = new SamplephdSpectrum(); -// spectrumHandler.init(mailContent.toString(),emlFile.getName(),spectrumServiceQuotes,new StringBuilder(),SpectrumSource.FORM_EMAIL_SERVICE.getSourceType(),batchesCounter); -// final boolean matchResult = spectrumHandler.saveEmailToLocal(); -// if(matchResult){ -// try { -// //开始解析 -// spectrumHandler.handler(); -// spectrumServiceQuotes.getRedisUtil().del(key); -// } catch (Exception e) { -// //如果是gamma谱的分析异常 -// if (e instanceof AnalySpectrumException) { -// // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError -// if (Objects.nonNull(emlFile) && emlFile.exists()){ -// moveEmail(emlFile, key); -// } -// //删除邮件 -// emailServiceManager.removeMail(message,batchesCounter); -// } else { -// throw e; -// } -// } -// }else{ -// log.warn("This email {} parsing failed and is not listed in the Met, Alert, SOH, Sample, Detbkphd, QC, Gasbkphd spectra.",subject); -// } -// emailServiceManager.removeMail(message,batchesCounter); -// }else { -// // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError -// if (Objects.nonNull(emlFile) && emlFile.exists()){ -// moveEmail(emlFile, key); -// throw new DownloadEmailException("邮件移走后手动抛出DownloadEmailException"); -// } -// } + //获取邮件内容 + StringBuilder mailContent = new StringBuilder(); + if(Objects.nonNull(emlFile) && emlFile.length() > 0){ + mailContent.append(FileUtil.readUtf8String(emlFile)); + } + + //判断是否是IMS2.0协议文件 + // 如果邮件内容校验成功 将文件保存到eml目录 并删除邮件对象 + if(checkMailContent(mailContent,subject)){ + AbstractSpectrumHandler spectrumHandler = new SamplephdSpectrum(); + spectrumHandler.init(mailContent.toString(),emlFile.getName(),spectrumServiceQuotes,new StringBuilder(),SpectrumSource.FORM_EMAIL_SERVICE.getSourceType(),batchesCounter); + final boolean matchResult = spectrumHandler.saveEmailToLocal(); + if(matchResult){ + try { + //开始解析 + spectrumHandler.handler(); + spectrumServiceQuotes.getRedisUtil().del(key); + } catch (Exception e) { + //如果是gamma谱的分析异常 + if (e instanceof AnalySpectrumException) { + // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError + if (Objects.nonNull(emlFile) && emlFile.exists()){ + moveEmail(emlFile, key); + } + //删除邮件 + emailServiceManager.removeMail(message,batchesCounter); + } else { + throw e; + } + } + }else{ + log.warn("This email {} parsing failed and is not listed in the Met, Alert, SOH, Sample, Detbkphd, QC, Gasbkphd spectra.",subject); + } + emailServiceManager.removeMail(message,batchesCounter); + }else { + // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError + if (Objects.nonNull(emlFile) && emlFile.exists()){ + moveEmail(emlFile, key); + throw new DownloadEmailException("邮件移走后手动抛出DownloadEmailException"); + } + } } catch (Exception e) { // 如果不是下载导致的失败 并且 下载成功,则删除下载的邮件对象 if(!(e instanceof DownloadEmailException) && downloadFlag){ From 23bf9ee271f708569fdf2082c96e541bfe7fbdd9 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Tue, 30 Apr 2024 08:56:52 +0800 Subject: [PATCH 116/133] =?UTF-8?q?onlyDownload=E5=90=8E=E7=BB=AD=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=94=BE=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/jeecg/modules/EmailParsingActuator.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 107a0558..67983395 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 @@ -84,11 +84,11 @@ public class EmailParsingActuator extends Thread{ for(int i=messages.length-1;i>=0;i--){ if (!messages[i].isExpunged()){ String messageId = ((MimeMessage) messages[i]).getMessageID(); -// final boolean exist = emailServiceManager.check(messages[i],messageId); + final boolean exist = emailServiceManager.check(messages[i],messageId); messageIds.add(messageId); -// if(exist){ -// messages = ArrayUtils.remove(messages,i); -// } + if(exist){ + messages = ArrayUtils.remove(messages,i); + } } } log.info("EmailParsingActuator本次真实执行邮件数量为:{}",messages.length); From 72dbf2ba80d0de1f5d5322534a7b422161d09129 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Thu, 9 May 2024 09:34:21 +0800 Subject: [PATCH 117/133] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E4=BF=AE=E6=94=B9=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/email/EmailServiceManager.java | 9 ++++----- .../jeecg/modules/EmailParsingActuator.java | 18 ++++++++++++------ .../spectrum/SpectrumParsingActuator.java | 8 ++++---- 3 files changed, 20 insertions(+), 15 deletions(-) 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 e63fbd5d..a3ac56f3 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 @@ -126,7 +126,7 @@ public class EmailServiceManager { /** * 接收邮件 */ - public Message[] receiveMail() { + public Message[] receiveMail() throws MessagingException { String status = EmailLogManager.STATUS_SUCCESS; try{ //配置邮件服务属性 @@ -185,12 +185,11 @@ public class EmailServiceManager { return Arrays.copyOfRange(messages,0,this.receiveNum-1); } } - }catch (MessagingException e){ + } catch (MessagingException e){ status = EmailLogManager.STATUS_ERROR; log.error("Email connection is abnormal, account is {}, service is {},the reason is {}.",email.getName(),email.getEmailServerAddress(),e.getMessage()); - e.printStackTrace(); - return null; - }finally { + throw e; + } finally { EmailLogEvent connectEvent = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,email,status,EmailLogManager.CONNECT); EmailLogManager.getInstance().setConnectLogEvent(connectEvent); //GetAllId C++原业务是把远程邮箱邮件同步到C++,本次java编写没有这一步,所以和Connect绑定,若Connect成功则GetAllId成功 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 67983395..2f85fe4f 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 @@ -17,10 +17,7 @@ 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.Objects; +import java.util.*; import java.util.concurrent.*; /** @@ -82,8 +79,14 @@ public class EmailParsingActuator extends Thread{ log.info("EmailParsingActuator本次{}获取邮件数量为:{}", Thread.currentThread().getName(), messages.length); //检验获取的邮件是否在之前删除失败列表中,若在直接调用邮件API删除,并且此次数组里元素也删除 for(int i=messages.length-1;i>=0;i--){ + if (null == messages[i].getHeader("Message-ID")) { + System.out.println("Message ID是空值信息!!!!!!!"); + messages = ArrayUtils.remove(messages, i); + continue; + } if (!messages[i].isExpunged()){ String messageId = ((MimeMessage) messages[i]).getMessageID(); + System.out.println("正常获取到的Message ID是:"+messageId); final boolean exist = emailServiceManager.check(messages[i],messageId); messageIds.add(messageId); if(exist){ @@ -105,10 +108,13 @@ public class EmailParsingActuator extends Thread{ taskLatch.await(); } } - } catch (InterruptedException e) { - e.printStackTrace(); } catch (MessagingException e) { + System.out.println("捕获MessagingException!!!!!!!!"); + closeResource(); throw new RuntimeException(e); + } catch (Exception e) { + closeResource(); + log.error(""+e); } finally { //清除本批次邮件日志缓存 EmailLogManager.getInstance().clear(); 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 a88f07ad..5548ba1e 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 @@ -97,9 +97,6 @@ public class SpectrumParsingActuator implements Runnable{ String emlName = subject+ StringConstant.UNDER_LINE+ receiveDate; String key = RedisConstant.EMAIL_MSG_ID+StringConstant.COLON+messageId; // spectrumServiceQuotes.getRedisUtil().set(key,emlName,expiryTime); - //判断当前key的下载次数是否超过限制次数 - spectrumServiceQuotes.getRedisUtil().incr(key, 1L); - spectrumServiceQuotes.getRedisUtil().expire(key, expiryTime); //线程开始初始化时,初始本线程负责的能谱日志事件 SpectrumLogManager.mailSpectrumLogManager.offer(Thread.currentThread().getId(),null); @@ -144,7 +141,10 @@ public class SpectrumParsingActuator implements Runnable{ log.warn("This email {} parsing failed and is not listed in the Met, Alert, SOH, Sample, Detbkphd, QC, Gasbkphd spectra.",subject); } emailServiceManager.removeMail(message,batchesCounter); - }else { + } else { + //判断当前key的下载次数是否超过限制次数 + spectrumServiceQuotes.getRedisUtil().incr(key, 1L); + spectrumServiceQuotes.getRedisUtil().expire(key, expiryTime); // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError if (Objects.nonNull(emlFile) && emlFile.exists()){ moveEmail(emlFile, key); From caf47a58d5014800cc3a719a19c12ed1015118ee Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Fri, 10 May 2024 16:12:26 +0800 Subject: [PATCH 118/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E5=A2=9E=E5=8A=A0=E5=88=A4=E6=96=AD=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E4=B8=8D=E6=98=AF=E6=AD=A3=E5=B8=B8=E8=B0=B1=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E5=BC=82=E5=B8=B8=E4=BF=A1=E6=81=AF=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/modules/service/impl/GammaServiceImpl.java | 8 ++++++++ 1 file changed, 8 insertions(+) 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 05fd4687..42f90b0b 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 @@ -194,6 +194,10 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi if (!flag) { return result; } + if (Objects.nonNull(phd) && !phd.isValid()) { + result.error500("This Spectrum is invalid! it's counts are all zero"); + return result; + } // 加载phd数据所需的lc,scac,baseline数据 if (dbName.equals("auto")) { gammaFileUtil.SetBaseInfo(phd, "RNAUTO"); @@ -609,6 +613,10 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi if (!bRet) { return result; } + if (Objects.nonNull(phd) && !phd.isValid()) { + result.error500("This Spectrum is invalid! it's counts are all zero"); + 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"); From 6c5a0bf5464aef9bd3379b9fbff4912174275b01 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 13 May 2024 09:24:25 +0800 Subject: [PATCH 119/133] =?UTF-8?q?=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=A8=A1=E5=9D=97BetaDataFile=E5=AE=9E=E4=BD=93=E7=B1=BB?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0detectorId=E5=AD=97=E6=AE=B5=E7=94=A8?= =?UTF-8?q?=E4=BA=8E=E6=8A=A5=E8=AD=A6=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/jeecg/modules/entity/vo/BetaDataFile.java | 2 ++ .../jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java | 1 + 2 files changed, 3 insertions(+) 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 92a31639..2de9f6e2 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 @@ -41,6 +41,8 @@ public class BetaDataFile implements Serializable { private String stationId; + private String detectorId; + private boolean bProcessed; private boolean saveAnalysisResult; 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 f44a2ec7..8b997d75 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 @@ -4420,6 +4420,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements String error = "get station_id or detect_id error"; return false; } + betaDataFile.setDetectorId(detectorId.toString()); //新增Gards_Sample_Data表数据 sampleDataSpectrumService.saveSampleData(sourceData, stationId, detectorId, filePathName, readLines); //获取sampleId From 2407b65a067865b58baba748bb383776961bf19d Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 13 May 2024 14:09:42 +0800 Subject: [PATCH 120/133] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E4=B8=8B=E8=BD=BD=E9=82=AE=E4=BB=B6=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/email/EmailServiceManager.java | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) 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 f4f8b334..9c52eb09 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 @@ -532,7 +532,8 @@ public class EmailServiceManager { File emlFile = null; String status = EmailLogManager.STATUS_SUCCESS; Date receivedDate = null; - FileOutputStream outputStream = null; + InputStream inputStream = null; + BufferedOutputStream outputStream = null; try { //获取发件人 final String address = ((InternetAddress) message.getFrom()[0]).getAddress(); @@ -566,25 +567,19 @@ public class EmailServiceManager { final String rootPath = spectrumPathProperties.getRootPath(); final String emlPath = spectrumPathProperties.getEmlPath(); emlFile = new File(rootPath+emlPath+File.separator+fileName); - outputStream = new FileOutputStream(emlFile); - message.writeTo(outputStream); +// outputStream = new FileOutputStream(emlFile); +// message.writeTo(outputStream); + + int bufferSize = 1024 * 1024; // 1M + inputStream = message.getInputStream(); + outputStream = new BufferedOutputStream(new FileOutputStream(emlFile), bufferSize); + // 从邮件的输入流读取内容,并写入到本地文件 + byte[] buffer = new byte[bufferSize]; + int bytesRead; + while ((bytesRead = inputStream.read(buffer)) != -1) { + outputStream.write(buffer, 0, bytesRead); + } -// int bufferSize = 1024 * 1024; // 1M -// InputStream inputStream = message.getInputStream(); -// BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream, bufferSize); -// // 或者使用 BufferedOutputStream -// OutputStream outputStream = new FileOutputStream(emlFile); -// BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream, bufferSize); -// // 从邮件的输入流读取内容,并写入到本地文件 -// byte[] buffer = new byte[bufferSize]; -// int bytesRead; -// while ((bytesRead = bufferedInputStream.read(buffer)) != -1) { -// bufferedOutputStream.write(buffer, 0, bytesRead); -// } -// -// // 关闭流 -// bufferedInputStream.close(); -// bufferedOutputStream.close(); } catch (MessagingException | IOException e) { // 下载邮件失败 抛出自定义邮件下载异常 status = EmailLogManager.STATUS_ERROR; @@ -598,7 +593,11 @@ public class EmailServiceManager { (Objects.isNull(emlFile)?" ":emlFile.getAbsolutePath())); EmailLogManager.getInstance().offer(Thread.currentThread().getId(),event); try { + if (Objects.nonNull(inputStream)) { + inputStream.close(); + } if (Objects.nonNull(outputStream)) { + outputStream.flush(); outputStream.close(); } } catch (IOException e) { From 9fffd2436c3d74b8ba3d5fa0d9a883a4b7b2fbad Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Mon, 13 May 2024 14:14:01 +0800 Subject: [PATCH 121/133] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E6=A8=A1=E5=9D=97=E5=90=8C=E6=AD=A5=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/email/EmailServiceManager.java | 11 +++++----- .../org/jeecg/modules/AutoProcessManager.java | 11 ++++++++-- .../jeecg/modules/EmailParsingActuator.java | 20 ++++++++++++------- .../spectrum/SpectrumParsingActuator.java | 8 ++++---- 4 files changed, 32 insertions(+), 18 deletions(-) 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 9c52eb09..a3ac56f3 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 @@ -9,6 +9,8 @@ import com.sun.mail.imap.IMAPStore; import com.sun.mail.smtp.SMTPAddressFailedException; import io.swagger.models.auth.In; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.Charsets; +import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.dto.message.MessageDTO; import org.jeecg.common.constant.RedisConstant; @@ -124,7 +126,7 @@ public class EmailServiceManager { /** * 接收邮件 */ - public Message[] receiveMail() { + public Message[] receiveMail() throws MessagingException { String status = EmailLogManager.STATUS_SUCCESS; try{ //配置邮件服务属性 @@ -183,12 +185,11 @@ public class EmailServiceManager { return Arrays.copyOfRange(messages,0,this.receiveNum-1); } } - }catch (MessagingException e){ + } catch (MessagingException e){ status = EmailLogManager.STATUS_ERROR; log.error("Email connection is abnormal, account is {}, service is {},the reason is {}.",email.getName(),email.getEmailServerAddress(),e.getMessage()); - e.printStackTrace(); - return null; - }finally { + throw e; + } finally { EmailLogEvent connectEvent = new EmailLogEvent(EmailLogManager.GS_TYPE_GET,email,status,EmailLogManager.CONNECT); EmailLogManager.getInstance().setConnectLogEvent(connectEvent); //GetAllId C++原业务是把远程邮箱邮件同步到C++,本次java编写没有这一步,所以和Connect绑定,若Connect成功则GetAllId成功 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 3a0880dd..9460d44d 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 @@ -233,9 +233,15 @@ public class AutoProcessManager{ if(databaseEmail.getEnabled().equals(SysMailEnableType.ENABLE.getMailEnableType())){ final boolean testFlag = testConnectEmailServer(databaseEmail); if(testFlag){ - databaseEmail.setNewEmailFlag(true); + if (emailExecThreadMap.containsKey(databaseEmail.getId())) { + EmailParsingActuator actuator = emailExecThreadMap.get(databaseEmail.getId()); + actuator.setStop(false); + log.info("{}邮箱重新加入监测队列",databaseEmail.getUsername()); + } else { + databaseEmail.setNewEmailFlag(true); + log.info("{}邮箱加入监测队列,设置新增标记",databaseEmail.getUsername()); + } emailMap.put(databaseEmail.getId(),databaseEmail); - log.info("{}邮箱加入监测队列,设置新增标记",databaseEmail.getUsername()); } } } @@ -279,6 +285,7 @@ public class AutoProcessManager{ if(next.getValue().getState() == State.TERMINATED){ log.info("{}邮箱执行线程已停止,emailExecThreadMap删除此邮箱数据",next.getValue().getEmailProperties().getUsername()); checkStopThreads.remove(); + emailMap.remove(next.getKey()); } } 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 737b53c8..2f85fe4f 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 @@ -17,10 +17,7 @@ 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.Objects; +import java.util.*; import java.util.concurrent.*; /** @@ -79,11 +76,17 @@ public class EmailParsingActuator extends Thread{ try { Message[] messages = emailServiceManager.receiveMail(); if(ArrayUtils.isNotEmpty(messages)){ - log.info("EmailParsingActuator本次获取邮件数量为:{}",messages.length); + log.info("EmailParsingActuator本次{}获取邮件数量为:{}", Thread.currentThread().getName(), messages.length); //检验获取的邮件是否在之前删除失败列表中,若在直接调用邮件API删除,并且此次数组里元素也删除 for(int i=messages.length-1;i>=0;i--){ + if (null == messages[i].getHeader("Message-ID")) { + System.out.println("Message ID是空值信息!!!!!!!"); + messages = ArrayUtils.remove(messages, i); + continue; + } if (!messages[i].isExpunged()){ String messageId = ((MimeMessage) messages[i]).getMessageID(); + System.out.println("正常获取到的Message ID是:"+messageId); final boolean exist = emailServiceManager.check(messages[i],messageId); messageIds.add(messageId); if(exist){ @@ -105,10 +108,13 @@ public class EmailParsingActuator extends Thread{ taskLatch.await(); } } - }catch (InterruptedException e) { - e.printStackTrace(); } catch (MessagingException e) { + System.out.println("捕获MessagingException!!!!!!!!"); + closeResource(); throw new RuntimeException(e); + } catch (Exception e) { + closeResource(); + log.error(""+e); } finally { //清除本批次邮件日志缓存 EmailLogManager.getInstance().clear(); 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 a88f07ad..5548ba1e 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 @@ -97,9 +97,6 @@ public class SpectrumParsingActuator implements Runnable{ String emlName = subject+ StringConstant.UNDER_LINE+ receiveDate; String key = RedisConstant.EMAIL_MSG_ID+StringConstant.COLON+messageId; // spectrumServiceQuotes.getRedisUtil().set(key,emlName,expiryTime); - //判断当前key的下载次数是否超过限制次数 - spectrumServiceQuotes.getRedisUtil().incr(key, 1L); - spectrumServiceQuotes.getRedisUtil().expire(key, expiryTime); //线程开始初始化时,初始本线程负责的能谱日志事件 SpectrumLogManager.mailSpectrumLogManager.offer(Thread.currentThread().getId(),null); @@ -144,7 +141,10 @@ public class SpectrumParsingActuator implements Runnable{ log.warn("This email {} parsing failed and is not listed in the Met, Alert, SOH, Sample, Detbkphd, QC, Gasbkphd spectra.",subject); } emailServiceManager.removeMail(message,batchesCounter); - }else { + } else { + //判断当前key的下载次数是否超过限制次数 + spectrumServiceQuotes.getRedisUtil().incr(key, 1L); + spectrumServiceQuotes.getRedisUtil().expire(key, expiryTime); // 如果邮件内容校验失败(邮件内容不完整) 将错误邮件从eml移动到emlError if (Objects.nonNull(emlFile) && emlFile.exists()){ moveEmail(emlFile, key); From 86968e383b729909dfd44887b7099a4f2d6260d3 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Mon, 13 May 2024 14:58:41 +0800 Subject: [PATCH 122/133] =?UTF-8?q?fix=EF=BC=9A=E5=88=A0=E9=99=A4=E5=A4=9A?= =?UTF-8?q?=E4=BD=99=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../quartz/controller/TestController.java | 70 ------------------- 1 file changed, 70 deletions(-) delete mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/controller/TestController.java diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/controller/TestController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/controller/TestController.java deleted file mode 100644 index c350e0a8..00000000 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/quartz/controller/TestController.java +++ /dev/null @@ -1,70 +0,0 @@ -package org.jeecg.modules.quartz.controller; - -import cn.hutool.core.map.MapUtil; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import lombok.extern.slf4j.Slf4j; -import org.apache.shiro.SecurityUtils; -import org.jeecg.common.api.vo.Result; -import org.jeecg.common.constant.CommonConstant; -import org.jeecg.common.constant.Prompt; -import org.jeecg.common.constant.SymbolConstant; -import org.jeecg.common.system.query.QueryGenerator; -import org.jeecg.common.system.vo.LoginUser; -import org.jeecg.common.util.ImportExcelUtil; -import org.jeecg.common.util.RedisStreamUtil; -import org.jeecg.modules.base.dto.Info; -import org.jeecg.modules.quartz.entity.QuartzJob; -import org.jeecg.modules.quartz.service.IQuartzJobService; -import org.jeecgframework.poi.excel.ExcelImportUtil; -import org.jeecgframework.poi.excel.def.NormalExcelConstants; -import org.jeecgframework.poi.excel.entity.ExportParams; -import org.jeecgframework.poi.excel.entity.ImportParams; -import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; -import org.quartz.Scheduler; -import org.quartz.SchedulerException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.multipart.MultipartHttpServletRequest; -import org.springframework.web.servlet.ModelAndView; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; - -@RestController -@RequestMapping("sys/testana") -@Slf4j -@Api(tags = "定时任务接口") -public class TestController { - - @Autowired - private RedisStreamUtil redisStreamUtil; - - @GetMapping("test") - public void test(){ - Info info = new Info(); - info.setStationId("205"); - info.setSampleId("425496"); - info.setBetaOrGamma("Gamma"); - info.setFullOrPrel("FULL"); - info.setDatasource("1"); - info.setSampleName("CAX05_001-20230624_0220_Q_FULL_299.3.PHD"); - info.setCollectionDate(LocalDateTime.now()); - Map nuclides = MapUtil.newHashMap(); - nuclides.put("Be7","1000000"); - nuclides.put("sss","1000000"); - nuclides.put("Tl208","10"); - info.setNuclides(nuclides); - redisStreamUtil.pushAnalysis(info); - } -} From 9151233f115cd9075c14634ebd3be0d5a963c81a Mon Sep 17 00:00:00 2001 From: orgin Date: Thu, 30 May 2024 16:48:46 +0800 Subject: [PATCH 123/133] =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E8=B6=85=E6=97=B6?= =?UTF-8?q?=E4=B9=8B=E5=90=8E=E4=B8=8D=E4=B8=AD=E6=96=AD=E7=BA=BF=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/common/email/EmailServiceManager.java | 4 ++-- .../src/main/java/org/jeecg/modules/AutoProcessManager.java | 4 ++-- .../main/java/org/jeecg/modules/EmailParsingActuator.java | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) 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 a3ac56f3..257b0b26 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 @@ -621,7 +621,7 @@ public class EmailServiceManager { try { subject = MimeUtility.decodeText(message.getSubject()); receivedDate = message.getReceivedDate(); - message.setFlag(Flags.Flag.DELETED,true); +// message.setFlag(Flags.Flag.DELETED,true); // log.info("EmailServiceManager: Remove Email:{},receiveTime:{}",message.getSubject(), DateUtils.formatDate(message.getReceivedDate(),"yyyy-MM-dd HH:mm:ss")); } catch (MessagingException | UnsupportedEncodingException e) { status = EmailLogManager.STATUS_ERROR; @@ -672,7 +672,7 @@ public class EmailServiceManager { if(numberKey >= taskProperties.getForceDeletedNumber()){ exist = true; log.info("Check: Remove Email:{},receiveTime:{}",message.getSubject(), DateUtils.formatDate(message.getReceivedDate(),"yyyy-MM-dd HH:mm:ss")); - message.setFlag(Flags.Flag.DELETED,true); +// message.setFlag(Flags.Flag.DELETED,true); redisUtil.del(key); } 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 9460d44d..d62ad50e 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 @@ -290,7 +290,7 @@ public class AutoProcessManager{ } //遍历邮箱执行线程,如果邮箱执行线程stop属性已被设置为true则关闭资源停止线程 - final Iterator> iterator = emailExecThreadMap.entrySet().iterator(); + /*final Iterator> iterator = emailExecThreadMap.entrySet().iterator(); emailExecThreadMap.forEach((emailId,emailExecThread)->{ try{ if(emailExecThread.getState() != State.TERMINATED && emailExecThread.isStop()){ @@ -315,7 +315,7 @@ public class AutoProcessManager{ } } } - }); + });*/ } long end = System.currentTimeMillis(); long sleepTime = taskProperties.getDeletedMailThreadExecCycle() - (end-start); 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 2f85fe4f..2b46d2bc 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 @@ -65,7 +65,7 @@ public class EmailParsingActuator extends Thread{ if (isStop) { String nowDate = DateUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss"); log.info(nowDate + " " +this.emailProperties.getName()+" EmailParsingActuator is Stop!"); - closeResource(); +// closeResource(); return; } long start = System.currentTimeMillis(); @@ -110,10 +110,10 @@ public class EmailParsingActuator extends Thread{ } } catch (MessagingException e) { System.out.println("捕获MessagingException!!!!!!!!"); - closeResource(); +// closeResource(); throw new RuntimeException(e); } catch (Exception e) { - closeResource(); +// closeResource(); log.error(""+e); } finally { //清除本批次邮件日志缓存 From 11681f12dbf88c45780fdba9577e36921dcd3f7f Mon Sep 17 00:00:00 2001 From: orgin Date: Fri, 31 May 2024 09:15:57 +0800 Subject: [PATCH 124/133] =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E8=B6=85=E6=97=B6?= =?UTF-8?q?=E4=B9=8B=E5=90=8E=E4=B8=8D=E4=B8=AD=E6=96=AD=E7=BA=BF=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/jeecg/modules/EmailParsingActuator.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 2b46d2bc..975626fa 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 @@ -65,8 +65,13 @@ public class EmailParsingActuator extends Thread{ if (isStop) { String nowDate = DateUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss"); log.info(nowDate + " " +this.emailProperties.getName()+" EmailParsingActuator is Stop!"); + try { + Thread.sleep(1000L); + } catch (InterruptedException e) { + log.error("Thread sleep error"); + } // closeResource(); - return; + continue; } long start = System.currentTimeMillis(); final EmailServiceManager emailServiceManager = EmailServiceManager.getInstance(); From 97f4aae3ab84b584d83314b8cb7422276899111b Mon Sep 17 00:00:00 2001 From: nieziyan Date: Tue, 4 Jun 2024 09:23:21 +0800 Subject: [PATCH 125/133] =?UTF-8?q?fix=EF=BC=9A=E8=87=AA=E5=8A=A8=E5=A4=84?= =?UTF-8?q?=E7=90=86debug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/email/EmailServiceManager.java | 116 ++++++++++++++++-- .../org/jeecg/modules/AutoProcessManager.java | 23 ++-- .../jeecg/modules/EmailParsingActuator.java | 16 ++- 3 files changed, 135 insertions(+), 20 deletions(-) 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 257b0b26..49f02b82 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 @@ -1,16 +1,13 @@ package org.jeecg.common.email; -import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import com.google.common.collect.Lists; import com.sun.mail.imap.IMAPStore; import com.sun.mail.smtp.SMTPAddressFailedException; -import io.swagger.models.auth.In; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.io.Charsets; -import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.dto.message.MessageDTO; import org.jeecg.common.constant.RedisConstant; @@ -21,7 +18,6 @@ import org.jeecg.common.exception.DownloadEmailException; import org.jeecg.common.properties.SpectrumPathProperties; import org.jeecg.common.properties.TaskProperties; 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; @@ -36,6 +32,9 @@ import java.io.*; import java.net.InetSocketAddress; import java.net.Socket; import java.util.*; +import java.util.concurrent.*; +import java.util.concurrent.atomic.AtomicReference; +import java.util.concurrent.locks.ReentrantLock; import java.util.stream.Collectors; /** @@ -70,6 +69,8 @@ public class EmailServiceManager { private Object downloadEmlLocal = new Object(); + private final ReentrantLock lock = new ReentrantLock(); + @NotNull public static EmailServiceManager getInstance(){ return new EmailServiceManager(); @@ -155,6 +156,8 @@ public class EmailServiceManager { store = (IMAPStore) session.getStore(); //连接 store.connect(email.getUsername(),email.getPassword()); + if (RandomUtil.randomInt(1, 5) == 3) + throw new MessagingException(); // 解决163普通邮箱无法建立连接问题 store.id(IAM); //获取收件箱 @@ -609,6 +612,105 @@ public class EmailServiceManager { } } + /*public File downloadEmailToEmlDir(@NotNull Message message, Integer emailCounter, Integer batchesCounter) throws MessagingException, IOException { + AtomicReference outputStream = new AtomicReference<>(); + CompletableFuture future = CompletableFuture.supplyAsync(() -> { + try { + lock.lock(); // 获取锁 + // 执行需要获取锁才能进行的操作 + // return executeWithLock(message, emailCounter, batchesCounter); + File file = executeWithLock(message, emailCounter, batchesCounter); + outputStream.set(new FileOutputStream(file)); + a(outputStream,message); + return null; + } catch (MessagingException e) { + throw new RuntimeException(e); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } catch (IOException e) { + throw new RuntimeException(e); + } finally { + // 如果成功拿到锁 释放锁 + lock.unlock(); + } + }); + + try { + return future.get(5, TimeUnit.SECONDS); + // return future.get(5, TimeUnit.SECONDS);// 等待任务执行,超过5秒则抛出TimeoutException + } catch (InterruptedException | ExecutionException | TimeoutException e) { + future.cancel(true); // 取消任务执行 + if (ObjectUtil.isNotNull(outputStream) && ObjectUtil.isNotNull(outputStream.get())) + outputStream.get().close(); + log.error("下载 eml 执行超时", e); + throw new RuntimeException("下载 eml 执行超时"); + } + }*/ + public File executeWithLock(Message message,Integer emailCounter,Integer batchesCounter) throws MessagingException { + + String subject = ""; + File emlFile = null; + String status = EmailLogManager.STATUS_SUCCESS; + Date receivedDate = null; + try { + // 获取锁 设置超时 + //获取发件人 + final String address = ((InternetAddress) message.getFrom()[0]).getAddress(); + final String from = address.substring(0,address.indexOf(StringConstant.AT)); + //获取主题 + subject = MimeUtility.decodeText(message.getSubject()); + if(subject.contains(StringConstant.SLASH)){ + subject = StringUtils.replace(subject,StringConstant.SLASH,""); + } + if(subject.contains(StringConstant.COLON)){ + subject = StringUtils.replace(subject,StringConstant.COLON,""); + } + receivedDate = message.getReceivedDate(); + StringBuilder fileName = new StringBuilder(); + fileName.append(from); + fileName.append(StringConstant.UNDER_LINE); + fileName.append(subject); + fileName.append(StringConstant.UNDER_LINE); + fileName.append(DateUtils.formatDate(new Date(),"YYMMdd")); + fileName.append(StringConstant.UNDER_LINE); + fileName.append(DateUtils.formatDate(new Date(),"HHmmssSSS")); + fileName.append(StringConstant.UNDER_LINE); + fileName.append("receive"); + fileName.append(StringConstant.UNDER_LINE); + fileName.append(DateUtils.formatDate(receivedDate,"YYMMdd")); + fileName.append(StringConstant.UNDER_LINE); + fileName.append(DateUtils.formatDate(receivedDate,"HHmmssSSS")); + fileName.append(StringConstant.UNDER_LINE); + fileName.append(emailCounter); + fileName.append(SAVE_EML_SUFFIX); + final String rootPath = spectrumPathProperties.getRootPath(); + final String emlPath = spectrumPathProperties.getEmlPath(); + emlFile = new File(rootPath+emlPath+File.separator+fileName); + // Thread.sleep(6000l); + // try(FileOutputStream outputStream = new FileOutputStream(emlFile)) { + // message.writeTo(outputStream); + // } catch (IOException e) { + // throw new RuntimeException(e); + // } + } catch (MessagingException | IOException e) { + // 下载邮件失败 抛出自定义邮件下载异常 + status = EmailLogManager.STATUS_ERROR; + String errorMsg = StrUtil.format("The email download failed, the subject of the email is {}, the reason is {}.", subject, e.getMessage()); + log.error(errorMsg); + throw new DownloadEmailException(errorMsg); + } catch (Exception e) { + log.error("",e); + } finally { + EmailLogEvent event = new EmailLogEvent(batchesCounter,Thread.currentThread().getId(),EmailLogManager.GS_TYPE_GET,status,EmailLogManager.GETIDEML,subject,DateUtils.formatDate(receivedDate,"yyyy-MM-dd HH:mm:ss:SSS"), + (Objects.isNull(emlFile)?" ":emlFile.getAbsolutePath())); + EmailLogManager.getInstance().offer(Thread.currentThread().getId(),event); + } + return emlFile; + } + + public void a(AtomicReference outputStream, Message message) throws MessagingException, IOException { + message.writeTo(outputStream.get()); + } /** * 删除邮件 * @param message @@ -621,7 +723,7 @@ public class EmailServiceManager { try { subject = MimeUtility.decodeText(message.getSubject()); receivedDate = message.getReceivedDate(); -// message.setFlag(Flags.Flag.DELETED,true); + // message.setFlag(Flags.Flag.DELETED,true); // log.info("EmailServiceManager: Remove Email:{},receiveTime:{}",message.getSubject(), DateUtils.formatDate(message.getReceivedDate(),"yyyy-MM-dd HH:mm:ss")); } catch (MessagingException | UnsupportedEncodingException e) { status = EmailLogManager.STATUS_ERROR; @@ -672,7 +774,7 @@ public class EmailServiceManager { if(numberKey >= taskProperties.getForceDeletedNumber()){ exist = true; log.info("Check: Remove Email:{},receiveTime:{}",message.getSubject(), DateUtils.formatDate(message.getReceivedDate(),"yyyy-MM-dd HH:mm:ss")); -// message.setFlag(Flags.Flag.DELETED,true); + // message.setFlag(Flags.Flag.DELETED,true); redisUtil.del(key); } 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 d62ad50e..19bf67d0 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 @@ -1,5 +1,6 @@ package org.jeecg.modules; +import cn.hutool.core.util.RandomUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.constant.RedisConstant; @@ -15,7 +16,6 @@ import org.jeecg.modules.spectrum.SpectrumServiceQuotes; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; -import java.io.*; import java.util.*; import java.util.concurrent.TimeUnit; @@ -47,6 +47,8 @@ public class AutoProcessManager{ */ private Map emailExecThreadMap = new HashMap<>(); + private boolean flag = true; + /** * 启动自动处理 */ @@ -145,9 +147,14 @@ public class AutoProcessManager{ if(!email.isDelFlag()){ final EmailServiceManager emailServiceManager = EmailServiceManager.getInstance(); emailServiceManager.init(email); - boolean testFlag = emailServiceManager.testConnectEmailServer(); + /*boolean testFlag = emailServiceManager.testConnectEmailServer(); if(!testFlag){ emails.add(email); + }*/ + int i = RandomUtil.randomInt(1, 5); + flag = i == 3; + if(flag){ + emails.add(email); } } }); @@ -158,7 +165,7 @@ public class AutoProcessManager{ //如果这时邮箱线程里已有执行的线程则设置停止标记 if(emailExecThreadMap.containsKey(email.getId())){ EmailParsingActuator actuator = emailExecThreadMap.get(email.getId()); - actuator.setStop(true); + actuator.setThreadSleep(true); actuator.setStopTime(new Date()); } log.info("{}邮箱测试连接失败,emailMap删除此邮箱数据,emailExecThreadMap设置线程停止标记",email.getUsername()); @@ -231,11 +238,11 @@ public class AutoProcessManager{ }else{ //如果不包含邮箱id 并且 邮箱处于启用状态 将邮箱对象存入到map中 并将新邮箱标识设置为true if(databaseEmail.getEnabled().equals(SysMailEnableType.ENABLE.getMailEnableType())){ - final boolean testFlag = testConnectEmailServer(databaseEmail); - if(testFlag){ + // final boolean testFlag = testConnectEmailServer(databaseEmail); + if(flag){ if (emailExecThreadMap.containsKey(databaseEmail.getId())) { EmailParsingActuator actuator = emailExecThreadMap.get(databaseEmail.getId()); - actuator.setStop(false); + actuator.setThreadSleep(false); log.info("{}邮箱重新加入监测队列",databaseEmail.getUsername()); } else { databaseEmail.setNewEmailFlag(true); @@ -290,7 +297,7 @@ public class AutoProcessManager{ } //遍历邮箱执行线程,如果邮箱执行线程stop属性已被设置为true则关闭资源停止线程 - /*final Iterator> iterator = emailExecThreadMap.entrySet().iterator(); + final Iterator> iterator = emailExecThreadMap.entrySet().iterator(); emailExecThreadMap.forEach((emailId,emailExecThread)->{ try{ if(emailExecThread.getState() != State.TERMINATED && emailExecThread.isStop()){ @@ -315,7 +322,7 @@ public class AutoProcessManager{ } } } - });*/ + }); } long end = System.currentTimeMillis(); long sleepTime = taskProperties.getDeletedMailThreadExecCycle() - (end-start); 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 975626fa..c53a70d8 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 @@ -36,6 +36,8 @@ public class EmailParsingActuator extends Thread{ @Setter @Getter private boolean isStop; @Setter @Getter + private boolean threadSleep; + @Setter @Getter private Date stopTime; public void init(EmailProperties emailProperties,SpectrumServiceQuotes spectrumServiceQuotes, @@ -62,17 +64,21 @@ public class EmailParsingActuator extends Thread{ @Override public void run() { for(;;){ - if (isStop) { - String nowDate = DateUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss"); - log.info(nowDate + " " +this.emailProperties.getName()+" EmailParsingActuator is Stop!"); + String nowDate = DateUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss"); + if (threadSleep) { + log.info(nowDate + " " +this.emailProperties.getName()+" EmailParsingActuator is sleep!"); try { Thread.sleep(1000L); } catch (InterruptedException e) { log.error("Thread sleep error"); } -// closeResource(); continue; } + if (isStop) { + log.info(nowDate + " " +this.emailProperties.getName()+" EmailParsingActuator is Stop!"); + closeResource(); + return; + } long start = System.currentTimeMillis(); final EmailServiceManager emailServiceManager = EmailServiceManager.getInstance(); emailServiceManager.init(this.emailProperties,this.taskProperties.getReceiveNum(),this.taskProperties.getTemporaryStoragePath(), @@ -115,7 +121,7 @@ public class EmailParsingActuator extends Thread{ } } catch (MessagingException e) { System.out.println("捕获MessagingException!!!!!!!!"); -// closeResource(); + // closeResource(); throw new RuntimeException(e); } catch (Exception e) { // closeResource(); From 3d5080c1d85713886f49484e380814cc5c46f815 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Wed, 5 Jun 2024 09:42:20 +0800 Subject: [PATCH 126/133] =?UTF-8?q?fix=EF=BC=9AAutoProcess=E5=A4=9A?= =?UTF-8?q?=E7=BA=BF=E7=A8=8B=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 | 11 +++++------ .../java/org/jeecg/modules/AutoProcessManager.java | 13 +++---------- .../org/jeecg/modules/EmailParsingActuator.java | 13 +++++-------- 3 files changed, 13 insertions(+), 24 deletions(-) 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 49f02b82..ad7795fb 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 @@ -156,8 +156,6 @@ public class EmailServiceManager { store = (IMAPStore) session.getStore(); //连接 store.connect(email.getUsername(),email.getPassword()); - if (RandomUtil.randomInt(1, 5) == 3) - throw new MessagingException(); // 解决163普通邮箱无法建立连接问题 store.id(IAM); //获取收件箱 @@ -723,8 +721,8 @@ public class EmailServiceManager { try { subject = MimeUtility.decodeText(message.getSubject()); receivedDate = message.getReceivedDate(); - // message.setFlag(Flags.Flag.DELETED,true); -// log.info("EmailServiceManager: Remove Email:{},receiveTime:{}",message.getSubject(), DateUtils.formatDate(message.getReceivedDate(),"yyyy-MM-dd HH:mm:ss")); + message.setFlag(Flags.Flag.DELETED,true); + // log.info("EmailServiceManager: Remove Email:{},receiveTime:{}",message.getSubject(), DateUtils.formatDate(message.getReceivedDate(),"yyyy-MM-dd HH:mm:ss")); } 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()); @@ -750,6 +748,7 @@ public class EmailServiceManager { if(null != store){ store.close(); } + log.info("EmailServiceManage资源关闭完成."); // for(String messageId : messageIds){ // String key = RedisConstant.EMAIL_MSG_ID+StringConstant.COLON+messageId; // redisUtil.del(key); @@ -770,11 +769,11 @@ public class EmailServiceManager { try { String key = RedisConstant.EMAIL_MSG_ID+StringConstant.COLON+messageId; int numberKey = redisUtil.get(key) != null? (int) redisUtil.get(key):0; -// exist = redisUtil.hasKey(key); + // exist = redisUtil.hasKey(key); if(numberKey >= taskProperties.getForceDeletedNumber()){ exist = true; log.info("Check: Remove Email:{},receiveTime:{}",message.getSubject(), DateUtils.formatDate(message.getReceivedDate(),"yyyy-MM-dd HH:mm:ss")); - // message.setFlag(Flags.Flag.DELETED,true); + message.setFlag(Flags.Flag.DELETED,true); redisUtil.del(key); } 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 19bf67d0..99912a68 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 @@ -47,8 +47,6 @@ public class AutoProcessManager{ */ private Map emailExecThreadMap = new HashMap<>(); - private boolean flag = true; - /** * 启动自动处理 */ @@ -147,14 +145,9 @@ public class AutoProcessManager{ if(!email.isDelFlag()){ final EmailServiceManager emailServiceManager = EmailServiceManager.getInstance(); emailServiceManager.init(email); - /*boolean testFlag = emailServiceManager.testConnectEmailServer(); + boolean testFlag = emailServiceManager.testConnectEmailServer(); if(!testFlag){ emails.add(email); - }*/ - int i = RandomUtil.randomInt(1, 5); - flag = i == 3; - if(flag){ - emails.add(email); } } }); @@ -238,8 +231,8 @@ public class AutoProcessManager{ }else{ //如果不包含邮箱id 并且 邮箱处于启用状态 将邮箱对象存入到map中 并将新邮箱标识设置为true if(databaseEmail.getEnabled().equals(SysMailEnableType.ENABLE.getMailEnableType())){ - // final boolean testFlag = testConnectEmailServer(databaseEmail); - if(flag){ + final boolean testFlag = testConnectEmailServer(databaseEmail); + if(testFlag){ if (emailExecThreadMap.containsKey(databaseEmail.getId())) { EmailParsingActuator actuator = emailExecThreadMap.get(databaseEmail.getId()); actuator.setThreadSleep(false); 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 c53a70d8..d9ed4cd8 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 @@ -91,13 +91,11 @@ public class EmailParsingActuator extends Thread{ //检验获取的邮件是否在之前删除失败列表中,若在直接调用邮件API删除,并且此次数组里元素也删除 for(int i=messages.length-1;i>=0;i--){ if (null == messages[i].getHeader("Message-ID")) { - System.out.println("Message ID是空值信息!!!!!!!"); messages = ArrayUtils.remove(messages, i); continue; } if (!messages[i].isExpunged()){ String messageId = ((MimeMessage) messages[i]).getMessageID(); - System.out.println("正常获取到的Message ID是:"+messageId); final boolean exist = emailServiceManager.check(messages[i],messageId); messageIds.add(messageId); if(exist){ @@ -117,15 +115,14 @@ public class EmailParsingActuator extends Thread{ poolExecutor.execute(spectrumParsingActuator); } taskLatch.await(); + log.info("EmailParsingActuator本次{}封邮件处理完成", messages.length); } } - } catch (MessagingException e) { - System.out.println("捕获MessagingException!!!!!!!!"); - // closeResource(); - throw new RuntimeException(e); } catch (Exception e) { -// closeResource(); - log.error(""+e); + log.error("EmailParsingActuator has exception: {}", e.getMessage()); + log.info("Mail-Parsing线程池资源关闭..."); + closeResource(); + throw new RuntimeException(e); } finally { //清除本批次邮件日志缓存 EmailLogManager.getInstance().clear(); From 897f469ea936c5bbc0b404a9fd3cd96d23a1d884 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Thu, 6 Jun 2024 15:42:06 +0800 Subject: [PATCH 127/133] =?UTF-8?q?fix=EF=BC=9A=E5=A2=9E=E5=8A=A0=E8=B0=B1?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A4=84=E7=90=86=E7=8A=B6=E6=80=81=E5=88=A4?= =?UTF-8?q?=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeecg/modules/service/impl/GardsSampleDataServiceImpl.java | 3 ++- .../org/jeecg/modules/spectrum/AbstractSpectrumHandler.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java index 5a2d3d6a..b5b77ac7 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java @@ -84,7 +84,8 @@ public class GardsSampleDataServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(GardsSampleData::getInputFileName,inputFileName); final GardsSampleData sampleData = this.getOne(queryWrapper); - if(Objects.nonNull(sampleData) && !SampleStatus.COMPLETE.getValue().equals(sampleData.getStatus())){ + if(Objects.nonNull(sampleData) && !SampleStatus.COMPLETE.getValue().equals(sampleData.getStatus()) + && !SampleStatus.INTERACTIVE.getValue().equals(sampleData.getStatus())){ this.baseMapper.updateStatus(status,inputFileName); } } 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 86b4ca66..b8e6df8e 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 @@ -316,7 +316,7 @@ public abstract class AbstractSpectrumHandler extends AbstractChain { ex.printStackTrace(); } } else if(SpectrumSource.FROM_FILE_SOURCE.getSourceType().equals(spectrumSource) && (e instanceof FileRepeatException)){ - this.spectrumFile.delete(); + this.spectrumFile.delete(); // TODO 删除原始谱文件 } else if (SpectrumSource.FORM_FILE_UNDEL.getSourceType().equals(spectrumSource) && !(e instanceof FileRepeatException)) { try { if (isDateFormatErr) { From f1410028fa2f4b31b16331e349ac2733f4f66134 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Thu, 6 Jun 2024 16:51:24 +0800 Subject: [PATCH 128/133] =?UTF-8?q?fix=EF=BC=9A=E4=B8=8D=E5=88=A0=E9=99=A4?= =?UTF-8?q?saveFile=E4=B8=8B=E8=B0=B1=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/modules/spectrum/AbstractSpectrumHandler.java | 2 +- 1 file changed, 1 insertion(+), 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 b8e6df8e..d824459e 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 @@ -316,7 +316,7 @@ public abstract class AbstractSpectrumHandler extends AbstractChain { ex.printStackTrace(); } } else if(SpectrumSource.FROM_FILE_SOURCE.getSourceType().equals(spectrumSource) && (e instanceof FileRepeatException)){ - this.spectrumFile.delete(); // TODO 删除原始谱文件 + //this.spectrumFile.delete(); // TODO 删除原始谱文件 } else if (SpectrumSource.FORM_FILE_UNDEL.getSourceType().equals(spectrumSource) && !(e instanceof FileRepeatException)) { try { if (isDateFormatErr) { From 64a98bd4eae12aafd3d7f3e291b233cb0a970507 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Wed, 12 Jun 2024 15:33:23 +0800 Subject: [PATCH 129/133] =?UTF-8?q?fix=EF=BC=9A=E9=82=AE=E4=BB=B6=E6=8E=A5?= =?UTF-8?q?=E6=94=B6=E8=B6=85=E6=97=B6=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/jeecg/common/email/EmailServiceManager.java | 2 ++ 1 file changed, 2 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 ad7795fb..2f05814d 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 @@ -135,6 +135,8 @@ public class EmailServiceManager { properties.put("mail.store.protocol", "imap"); properties.put("mail.imap.host", email.getEmailServerAddress()); properties.put("mail.imap.port",email.getPort()); + properties.put("mail.imap.connectiontimeout", "3000"); // 设置连接超时时间为3秒 + properties.put("mail.imap.timeout", "3000"); // 设置读取超时时间为3秒 if (email.getIsQiye() == 1) { properties.put("mail.imap.ssl.enable", "true"); } else { From cf0751109da56849e6659a304cea7fa59a783ca2 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Tue, 18 Jun 2024 14:52:44 +0800 Subject: [PATCH 130/133] =?UTF-8?q?feat=EF=BC=9A=E6=B7=BB=E5=8A=A0IDC?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=BA=90=E6=8E=A7=E5=88=B6=E8=AE=BF=E9=97=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/JeecgSpectrumAnalysisApplication.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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 3a5017b3..dbdbc6ff 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 @@ -1,5 +1,6 @@ package org.jeecg; +import cn.hutool.core.util.ObjectUtil; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.cache.BetaCache; import org.jeecg.common.cache.LocalCache; @@ -9,6 +10,7 @@ import org.jeecg.modules.service.IDataService; import org.jeecg.modules.service.IGammaService; import org.jeecg.modules.service.IGardsNuclCoincidenceSumSpectrumService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -40,6 +42,9 @@ public class JeecgSpectrumAnalysisApplication extends SpringBootServletInitializ @Autowired private IDataService dataService; + @Value("${isOpen}") + private Boolean isOpen; + @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { @@ -78,6 +83,7 @@ public class JeecgSpectrumAnalysisApplication extends SpringBootServletInitializ gammaService.readMDCParameter(); nuclLibService.getNuclideMap(); nuclCoincidenceSumSpectrumService.getNuclCoincidenceMap(); - dataService.viewStations(); + if (ObjectUtil.isNotNull(isOpen) && isOpen) + dataService.viewStations(); } } \ No newline at end of file From 8b4064607697965149a0c9a70981ae53e9f814ca Mon Sep 17 00:00:00 2001 From: nieziyan Date: Wed, 19 Jun 2024 16:33:55 +0800 Subject: [PATCH 131/133] =?UTF-8?q?feat=EF=BC=9AApplication=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E7=BB=93=E6=9D=9F=E9=80=80=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/JeecgAbnormalAlarmApplication.java | 14 +++++++++++++- .../org/jeecg/JeecgAutoProcessApplication.java | 14 +++++++++++++- .../java/org/jeecg/JeecgLogManageApplication.java | 14 +++++++++++++- .../jeecg/JeecgSpectrumAnalysisApplication.java | 14 +++++++++++++- .../jeecg/JeecgStationOperationApplication.java | 15 ++++++++++++++- .../org/jeecg/JeecgSystemCloudApplication.java | 13 ++++++++++++- .../org/jeecg/JeecgWebStatisticsApplication.java | 14 +++++++++++++- 7 files changed, 91 insertions(+), 7 deletions(-) diff --git a/jeecg-server-cloud/armd-abnormal-alarm-start/src/main/java/org/jeecg/JeecgAbnormalAlarmApplication.java b/jeecg-server-cloud/armd-abnormal-alarm-start/src/main/java/org/jeecg/JeecgAbnormalAlarmApplication.java index b692a493..853f8c77 100644 --- a/jeecg-server-cloud/armd-abnormal-alarm-start/src/main/java/org/jeecg/JeecgAbnormalAlarmApplication.java +++ b/jeecg-server-cloud/armd-abnormal-alarm-start/src/main/java/org/jeecg/JeecgAbnormalAlarmApplication.java @@ -31,7 +31,19 @@ public class JeecgAbnormalAlarmApplication extends SpringBootServletInitializer } public static void main(String[] args) throws UnknownHostException { - ConfigurableApplicationContext application = SpringApplication.run(JeecgAbnormalAlarmApplication.class, args); + int exitCode = 1; + ConfigurableApplicationContext application = null; + try { + application = SpringApplication.run(JeecgAbnormalAlarmApplication.class, args); + } catch (Exception e) { + if (null != application) { + application.close(); + exitCode = SpringApplication.exit(application, () -> 0); + } + System.exit(exitCode); + } + + // ConfigurableApplicationContext application = SpringApplication.run(JeecgAbnormalAlarmApplication.class, args); Environment env = application.getEnvironment(); String ip = InetAddress.getLocalHost().getHostAddress(); String port = env.getProperty("server.port"); 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 853ac505..f1883692 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 @@ -53,7 +53,19 @@ public class JeecgAutoProcessApplication extends SpringBootServletInitializer im } public static void main(String[] args) throws UnknownHostException { - ConfigurableApplicationContext application = SpringApplication.run(JeecgAutoProcessApplication.class, args); + int exitCode = 1; + ConfigurableApplicationContext application = null; + try { + application = SpringApplication.run(JeecgAutoProcessApplication.class, args); + } catch (Exception e) { + if (null != application) { + application.close(); + exitCode = SpringApplication.exit(application, () -> 0); + } + System.exit(exitCode); + } + + // ConfigurableApplicationContext application = SpringApplication.run(JeecgAutoProcessApplication.class, args); Environment env = application.getEnvironment(); String ip = InetAddress.getLocalHost().getHostAddress(); String port = env.getProperty("server.port"); diff --git a/jeecg-server-cloud/armd-log-manage-start/src/main/java/org/jeecg/JeecgLogManageApplication.java b/jeecg-server-cloud/armd-log-manage-start/src/main/java/org/jeecg/JeecgLogManageApplication.java index a4a117ed..61c29aac 100644 --- a/jeecg-server-cloud/armd-log-manage-start/src/main/java/org/jeecg/JeecgLogManageApplication.java +++ b/jeecg-server-cloud/armd-log-manage-start/src/main/java/org/jeecg/JeecgLogManageApplication.java @@ -27,7 +27,19 @@ public class JeecgLogManageApplication extends SpringBootServletInitializer impl } public static void main(String[] args) throws UnknownHostException { - ConfigurableApplicationContext application = SpringApplication.run(JeecgLogManageApplication.class, args); + int exitCode = 1; + ConfigurableApplicationContext application = null; + try { + application = SpringApplication.run(JeecgLogManageApplication.class, args); + } catch (Exception e) { + if (null != application) { + application.close(); + exitCode = SpringApplication.exit(application, () -> 0); + } + System.exit(exitCode); + } + + // ConfigurableApplicationContext application = SpringApplication.run(JeecgLogManageApplication.class, args); Environment env = application.getEnvironment(); String ip = InetAddress.getLocalHost().getHostAddress(); String port = env.getProperty("server.port"); 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 dbdbc6ff..5ca9816c 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 @@ -52,7 +52,19 @@ public class JeecgSpectrumAnalysisApplication extends SpringBootServletInitializ } public static void main(String[] args) throws UnknownHostException { - ConfigurableApplicationContext application = SpringApplication.run(JeecgSpectrumAnalysisApplication.class, args); + int exitCode = 1; + ConfigurableApplicationContext application = null; + try { + application = SpringApplication.run(JeecgSpectrumAnalysisApplication.class, args); + } catch (Exception e) { + if (null != application) { + application.close(); + exitCode = SpringApplication.exit(application, () -> 0); + } + System.exit(exitCode); + } + + // ConfigurableApplicationContext application = SpringApplication.run(JeecgSpectrumAnalysisApplication.class, args); Environment env = application.getEnvironment(); String ip = InetAddress.getLocalHost().getHostAddress(); String port = env.getProperty("server.port"); 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 8c3db501..e44e7459 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 @@ -5,6 +5,7 @@ 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.ExitCodeGenerator; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; @@ -35,7 +36,19 @@ public class JeecgStationOperationApplication extends SpringBootServletInitializ } public static void main(String[] args) throws UnknownHostException { - ConfigurableApplicationContext application = SpringApplication.run(JeecgStationOperationApplication.class, args); + int exitCode = 1; + ConfigurableApplicationContext application = null; + try { + application = SpringApplication.run(JeecgStationOperationApplication.class, args); + } catch (Exception e) { + if (null != application) { + application.close(); + exitCode = SpringApplication.exit(application, () -> 0); + } + System.exit(exitCode); + } + + //ConfigurableApplicationContext application = SpringApplication.run(JeecgStationOperationApplication.class, args); Environment env = application.getEnvironment(); String ip = InetAddress.getLocalHost().getHostAddress(); String port = env.getProperty("server.port"); diff --git a/jeecg-server-cloud/armd-system-cloud-start/src/main/java/org/jeecg/JeecgSystemCloudApplication.java b/jeecg-server-cloud/armd-system-cloud-start/src/main/java/org/jeecg/JeecgSystemCloudApplication.java index ea5070ee..c270153a 100644 --- a/jeecg-server-cloud/armd-system-cloud-start/src/main/java/org/jeecg/JeecgSystemCloudApplication.java +++ b/jeecg-server-cloud/armd-system-cloud-start/src/main/java/org/jeecg/JeecgSystemCloudApplication.java @@ -52,7 +52,18 @@ public class JeecgSystemCloudApplication extends SpringBootServletInitializer im } public static void main(String[] args) throws UnknownHostException { - ConfigurableApplicationContext application = SpringApplication.run(JeecgSystemCloudApplication.class, args); + int exitCode = 1; + ConfigurableApplicationContext application = null; + try { + application = SpringApplication.run(JeecgSystemCloudApplication.class, args); + } catch (Exception e) { + if (null != application) { + application.close(); + exitCode = SpringApplication.exit(application, () -> 0); + } + System.exit(exitCode); + } + // ConfigurableApplicationContext application = SpringApplication.run(JeecgSystemCloudApplication.class, args); Environment env = application.getEnvironment(); String ip = InetAddress.getLocalHost().getHostAddress(); String port = env.getProperty("server.port"); diff --git a/jeecg-server-cloud/armd-web-statistics-start/src/main/java/org/jeecg/JeecgWebStatisticsApplication.java b/jeecg-server-cloud/armd-web-statistics-start/src/main/java/org/jeecg/JeecgWebStatisticsApplication.java index 2c0c4f34..f227a7c5 100644 --- a/jeecg-server-cloud/armd-web-statistics-start/src/main/java/org/jeecg/JeecgWebStatisticsApplication.java +++ b/jeecg-server-cloud/armd-web-statistics-start/src/main/java/org/jeecg/JeecgWebStatisticsApplication.java @@ -26,7 +26,19 @@ public class JeecgWebStatisticsApplication extends SpringBootServletInitializer } public static void main(String[] args) throws UnknownHostException { - ConfigurableApplicationContext application = SpringApplication.run(JeecgWebStatisticsApplication.class, args); + int exitCode = 1; + ConfigurableApplicationContext application = null; + try { + application = SpringApplication.run(JeecgWebStatisticsApplication.class, args); + } catch (Exception e) { + if (null != application) { + application.close(); + exitCode = SpringApplication.exit(application, () -> 0); + } + System.exit(exitCode); + } + + // ConfigurableApplicationContext application = SpringApplication.run(JeecgWebStatisticsApplication.class, args); Environment env = application.getEnvironment(); String ip = InetAddress.getLocalHost().getHostAddress(); String port = env.getProperty("server.port"); From f6b963145f884f42f8dd4ee72cc3a2b98f66963d Mon Sep 17 00:00:00 2001 From: xiaoguangbin Date: Tue, 25 Jun 2024 11:03:09 +0800 Subject: [PATCH 132/133] =?UTF-8?q?fix:=E5=A2=9E=E5=8A=A0catch=E4=B8=ADexc?= =?UTF-8?q?eption=E5=86=99=E5=85=A5log=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/common/email/EmailServiceManager.java | 12 ++++++------ .../java/org/jeecg/modules/AutoProcessManager.java | 8 +++++++- .../java/org/jeecg/modules/EmailParsingActuator.java | 5 ++++- 3 files changed, 17 insertions(+), 8 deletions(-) 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 2f05814d..222d5ffb 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 @@ -1,8 +1,6 @@ package org.jeecg.common.email; import cn.hutool.core.util.ArrayUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import com.google.common.collect.Lists; import com.sun.mail.imap.IMAPStore; @@ -32,7 +30,6 @@ import java.io.*; import java.net.InetSocketAddress; import java.net.Socket; import java.util.*; -import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.locks.ReentrantLock; import java.util.stream.Collectors; @@ -127,7 +124,7 @@ public class EmailServiceManager { /** * 接收邮件 */ - public Message[] receiveMail() throws MessagingException { + public Message[] receiveMail() throws Exception { String status = EmailLogManager.STATUS_SUCCESS; try{ //配置邮件服务属性 @@ -179,6 +176,7 @@ public class EmailServiceManager { return o1.getReceivedDate().compareTo(o2.getReceivedDate()); } catch (MessagingException e) { e.printStackTrace(); + log.error(e.getMessage(), e); } return 0; }); @@ -188,7 +186,7 @@ public class EmailServiceManager { return Arrays.copyOfRange(messages,0,this.receiveNum-1); } } - } catch (MessagingException e){ + } catch (Exception e){ status = EmailLogManager.STATUS_ERROR; log.error("Email connection is abnormal, account is {}, service is {},the reason is {}.",email.getName(),email.getEmailServerAddress(),e.getMessage()); throw e; @@ -729,6 +727,7 @@ public class EmailServiceManager { status = EmailLogManager.STATUS_ERROR; log.error("Email deletion failed, the subject of the email is :{}, the reason is :{}.",subject,e.getMessage()); e.printStackTrace(); + log.error(e.getMessage(), e); }finally { EmailLogEvent removeEvent = new EmailLogEvent(batchesCounter,Thread.currentThread().getId(),EmailLogManager.GS_TYPE_GET,status,EmailLogManager.DELETEID,subject,DateUtils.formatDate(receivedDate,"yyyy-MM-dd HH:mm:ss:SSS")); EmailLogManager.getInstance().offer(Thread.currentThread().getId(),removeEvent); @@ -750,7 +749,7 @@ public class EmailServiceManager { if(null != store){ store.close(); } - log.info("EmailServiceManage资源关闭完成."); + log.info(Thread.currentThread().getName() + ",EmailServiceManage资源关闭完成."); // for(String messageId : messageIds){ // String key = RedisConstant.EMAIL_MSG_ID+StringConstant.COLON+messageId; // redisUtil.del(key); @@ -758,6 +757,7 @@ public class EmailServiceManager { } catch (MessagingException e) { log.error("Email closure failed, email address is: {}, reason is: {}",email.getUsername(),e.getMessage()); e.printStackTrace(); + log.error(e.getMessage(), e); } } 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 99912a68..2574ec35 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 @@ -1,6 +1,5 @@ package org.jeecg.modules; -import cn.hutool.core.util.RandomUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.constant.RedisConstant; @@ -120,6 +119,7 @@ public class AutoProcessManager{ TimeUnit.MILLISECONDS.sleep(sleepTime); } catch (InterruptedException e) { e.printStackTrace(); + log.error(e.getMessage(), e); } } } @@ -169,6 +169,7 @@ public class AutoProcessManager{ //捕获异常不处理保障线程异常不退出 }catch (Exception e){ e.printStackTrace(); + log.error(e.getMessage(), e); } long end = System.currentTimeMillis(); long sleepTime = taskProperties.getMonitoringMailCommStatusCycle() - (end-start); @@ -178,6 +179,7 @@ public class AutoProcessManager{ TimeUnit.MILLISECONDS.sleep(sleepTime); } catch (InterruptedException e) { e.printStackTrace(); + log.error(e.getMessage(), e); } } } @@ -251,6 +253,7 @@ public class AutoProcessManager{ //捕获异常不处理保障线程异常不退出 }catch (Exception e){ e.printStackTrace(); + log.error(e.getMessage(), e); } long end = System.currentTimeMillis(); long sleepTime = taskProperties.getMonitoringMailDataCycle() - (end-start); @@ -260,6 +263,7 @@ public class AutoProcessManager{ TimeUnit.MILLISECONDS.sleep(sleepTime); } catch (InterruptedException e) { e.printStackTrace(); + log.error(e.getMessage(), e); } } } @@ -304,6 +308,7 @@ public class AutoProcessManager{ } }catch (Exception e){ e.printStackTrace(); + log.error(e.getMessage(), e); }finally { if(emailExecThread.getState() != State.TERMINATED && emailExecThread.isStop()){ final long nowTime = System.currentTimeMillis(); @@ -325,6 +330,7 @@ public class AutoProcessManager{ TimeUnit.MILLISECONDS.sleep(sleepTime); } catch (InterruptedException e) { e.printStackTrace(); + log.error(e.getMessage(), e); } } } 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 d9ed4cd8..93ec8fa4 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 @@ -86,8 +86,8 @@ public class EmailParsingActuator extends Thread{ List messageIds = new ArrayList<>(); try { Message[] messages = emailServiceManager.receiveMail(); + log.info("EmailParsingActuator本次{}获取邮件数量为:{}", Thread.currentThread().getName(), ArrayUtils.isEmpty(messages) ? 0 : messages.length); if(ArrayUtils.isNotEmpty(messages)){ - log.info("EmailParsingActuator本次{}获取邮件数量为:{}", Thread.currentThread().getName(), messages.length); //检验获取的邮件是否在之前删除失败列表中,若在直接调用邮件API删除,并且此次数组里元素也删除 for(int i=messages.length-1;i>=0;i--){ if (null == messages[i].getHeader("Message-ID")) { @@ -122,6 +122,7 @@ public class EmailParsingActuator extends Thread{ log.error("EmailParsingActuator has exception: {}", e.getMessage()); log.info("Mail-Parsing线程池资源关闭..."); closeResource(); + log.error(e.getMessage(), e); throw new RuntimeException(e); } finally { //清除本批次邮件日志缓存 @@ -142,6 +143,8 @@ public class EmailParsingActuator extends Thread{ TimeUnit.MILLISECONDS.sleep(sleepTime); } catch (InterruptedException e) { e.printStackTrace(); + log.error(e.getMessage(), e); + throw new RuntimeException(); } } } From ebdf8d863a69c3f23c64dc7c746f790ef4427dbf Mon Sep 17 00:00:00 2001 From: xiaoguangbin Date: Wed, 26 Jun 2024 15:42:08 +0800 Subject: [PATCH 133/133] =?UTF-8?q?fix=EF=BC=9A=E5=A2=9E=E5=8A=A0=E6=B5=B7?= =?UTF-8?q?=E6=B0=B4=E7=B3=BB=E7=BB=9F=E5=92=8C=E8=87=AA=E5=BB=BA=E5=8F=B0?= =?UTF-8?q?=E7=AB=99beta=E7=9A=84=E7=B3=BB=E7=BB=9F=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/modules/base/enums/SystemType.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/SystemType.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/SystemType.java index 9bd0b84e..e3e78b9e 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/SystemType.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/SystemType.java @@ -15,9 +15,13 @@ public enum SystemType { */ GAMMA("G"), /** - * 自建台站 + * 自建台站 β-γ */ - SELFSTATION("C"); + SELFSTATION("C"), + /** + * 海水系统 γ + */ + WATER("W"); private String type;