From 735d9a1c592f37ecabab9aca0ba55ba1fe07f93b Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Tue, 20 Feb 2024 11:51:59 +0800 Subject: [PATCH 1/3] =?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 2/3] =?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 3/3] =?UTF-8?q?fix:1.=E6=96=B0=E5=8A=A0=E6=AF=8F=E6=AC=A1?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E9=82=AE=E4=BB=B6=E6=95=B0=E9=87=8F=E6=97=A5?= =?UTF-8?q?=E5=BF=972.=E4=BF=AE=E6=94=B9=E6=97=A5=E5=BF=97=E6=8E=A5?= =?UTF-8?q?=E6=94=B6=E6=97=B6=E9=97=B4=E4=B8=8D=E5=87=86=E7=A1=AE=E9=97=AE?= =?UTF-8?q?=E9=A2=983.=E4=BF=AE=E6=94=B9=E7=A7=BB=E5=8A=A8errorEml?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E6=96=87=E4=BB=B6=E5=90=8D=E7=A7=B0=E9=94=99?= =?UTF-8?q?=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 {