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(); //统计报告执行线程