fix:1.修改从邮箱来的邮件在临时目录时以邮件名称+序号命名

This commit is contained in:
panbaolin 2024-01-08 14:31:20 +08:00
parent b6b72b9ad2
commit 82f69d9e7a
8 changed files with 23 additions and 10 deletions

View File

@ -5,6 +5,7 @@ import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.jeecg.common.constant.StringConstant;
import org.jeecg.common.email.EmailLogEvent;
import org.jeecg.common.email.EmailLogManager;
import org.jeecg.common.properties.SpectrumPathProperties;
@ -43,6 +44,10 @@ public abstract class AbstractSpectrumHandler extends AbstractChain {
* 当前解析的邮件内容文本
*/
protected String mailContent;
/**
* eml文件名称
*/
protected String emlFileName;
/**
* 能谱类型
*/
@ -77,11 +82,12 @@ public abstract class AbstractSpectrumHandler extends AbstractChain {
/**
* 初始化参数
*/
public void init(String mailContent,SpectrumServiceQuotes spectrumServiceQuotes,StringBuilder returnFileName,Integer spectrumSource) throws Exception{
public void init(String mailContent,String emlFileName,SpectrumServiceQuotes spectrumServiceQuotes,StringBuilder returnFileName,Integer spectrumSource) throws Exception{
this.mailContent = mailContent;
this.spectrumServiceQuotes = spectrumServiceQuotes;
this.returnFileName = returnFileName;
this.spectrumSource = spectrumSource;
this.emlFileName = emlFileName;
}
/**
@ -102,12 +108,13 @@ public abstract class AbstractSpectrumHandler extends AbstractChain {
*/
protected void initNext(SpectrumServiceQuotes spectrumServiceQuotes,File spectrumFile,
String sourceFilePath,DataType currDataType,
String mailContent,Integer spectrumSource,StringBuilder returnFileName){
String mailContent,String emlFileName,Integer spectrumSource,StringBuilder returnFileName){
this.spectrumServiceQuotes = spectrumServiceQuotes;
this.spectrumFile = spectrumFile;
this.sourceFilePath = sourceFilePath;
this.currDataType = currDataType;
this.mailContent = mailContent;
this.emlFileName = emlFileName;
this.spectrumSource = spectrumSource;
this.returnFileName = returnFileName;
this.setChina();
@ -209,7 +216,7 @@ public abstract class AbstractSpectrumHandler extends AbstractChain {
StringBuilder localPath = new StringBuilder();
localPath.append(this.spectrumServiceQuotes.getTaskProperties().getTemporaryStoragePath());
localPath.append(File.separator);
localPath.append(UUID.randomUUID());
localPath.append(emlFileName.substring(0,emlFileName.lastIndexOf(StringConstant.DOT)));
localPath.append(value.getSuffix());
this.spectrumFile = FileUtil.writeString(this.mailContent, localPath.toString(), "UTF-8");
this.sourceFilePath = spectrumFile.getAbsolutePath();

View File

@ -52,7 +52,8 @@ public class AlertSpectrum extends AbstractSpectrumHandler{
protected void setChina() {
AbstractSpectrumHandler spectrumHandler = new HealthStatusSpectrum();
spectrumHandler.initNext(super.spectrumServiceQuotes,super.spectrumFile,super.sourceFilePath,
super.currDataType,super.mailContent,super.spectrumSource,super.returnFileName);
super.currDataType,super.mailContent,super.emlFileName,
super.spectrumSource,super.returnFileName);
spectrumHandler.setPrevious(this);
super.setNext(spectrumHandler);
}

View File

@ -16,7 +16,8 @@ public class DetbkphdSpectrum extends AbstractS_D_Q_G_SpectrumHandler {
protected void setChina() {
AbstractSpectrumHandler spectrumHandler = new QcphdSpectrum();
spectrumHandler.initNext(super.spectrumServiceQuotes,super.spectrumFile,super.sourceFilePath,
super.currDataType,super.mailContent,super.spectrumSource,super.returnFileName);
super.currDataType,super.mailContent,super.emlFileName,
super.spectrumSource,super.returnFileName);
spectrumHandler.setPrevious(this);
super.setNext(spectrumHandler);
}

View File

@ -18,7 +18,8 @@ public class GasbkphdSpectrum extends AbstractS_D_Q_G_SpectrumHandler {
protected void setChina() {
AbstractSpectrumHandler spectrumHandler = new MetSpectrum();
spectrumHandler.initNext(super.spectrumServiceQuotes,super.spectrumFile,super.sourceFilePath,
super.currDataType,super.mailContent,super.spectrumSource,super.returnFileName);
super.currDataType,super.mailContent,super.emlFileName,
super.spectrumSource,super.returnFileName);
spectrumHandler.setPrevious(this);
super.setNext(spectrumHandler);
}

View File

@ -44,7 +44,8 @@ public class MetSpectrum extends AbstractSpectrumHandler{
protected void setChina() {
AbstractSpectrumHandler spectrumHandler = new AlertSpectrum();
spectrumHandler.initNext(super.spectrumServiceQuotes,super.spectrumFile,super.sourceFilePath,
super.currDataType,super.mailContent,super.spectrumSource,super.returnFileName);
super.currDataType,super.mailContent,super.emlFileName,
super.spectrumSource,super.returnFileName);
spectrumHandler.setPrevious(this);
super.setNext(spectrumHandler);
}

View File

@ -16,7 +16,8 @@ public class QcphdSpectrum extends AbstractS_D_Q_G_SpectrumHandler {
protected void setChina() {
AbstractSpectrumHandler spectrumHandler = new GasbkphdSpectrum();
spectrumHandler.initNext(super.spectrumServiceQuotes,super.spectrumFile,super.sourceFilePath,
super.currDataType,super.mailContent,super.spectrumSource,super.returnFileName);
super.currDataType,super.mailContent,super.emlFileName,
super.spectrumSource,super.returnFileName);
spectrumHandler.setPrevious(this);
super.setNext(spectrumHandler);
}

View File

@ -17,7 +17,8 @@ public class SamplephdSpectrum extends AbstractS_D_Q_G_SpectrumHandler {
protected void setChina() {
AbstractSpectrumHandler spectrumHandler = new DetbkphdSpectrum();
spectrumHandler.initNext(super.spectrumServiceQuotes,super.spectrumFile,super.sourceFilePath,
super.currDataType,super.mailContent,super.spectrumSource,super.returnFileName);
super.currDataType,super.mailContent,super.emlFileName,
super.spectrumSource,super.returnFileName);
spectrumHandler.setPrevious(this);
super.setNext(spectrumHandler);
}

View File

@ -85,7 +85,7 @@ public class SpectrumParsingActuator implements Runnable{
//判断是否是IMS2.0协议文件
if(checkMailContent(mailContent,subject)){
AbstractSpectrumHandler spectrumHandler = new SamplephdSpectrum();
spectrumHandler.init(mailContent.toString(),spectrumServiceQuotes,new StringBuilder(),SpectrumSource.FORM_EMAIL_SERVICE.getSourceType());
spectrumHandler.init(mailContent.toString(),emlFile.getName(),spectrumServiceQuotes,new StringBuilder(),SpectrumSource.FORM_EMAIL_SERVICE.getSourceType());
final boolean matchResult = spectrumHandler.saveEmailToLocal();
if(matchResult){
//开始解析