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 6d0ddaec..7207ee4d 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 @@ -134,12 +134,13 @@ public class FileSourceHandleManager{ @Override public void run() { + StringBuilder finalFileName = new StringBuilder(); try { //获取文件内容 fileContent = FileUtils.readFileToString(spectrumFile,"UTF-8"); //解析文件 AbstractSpectrumHandler spectrumHandler = new SamplephdSpectrum(); - spectrumHandler.init(fileContent,spectrumServiceQuotes); + spectrumHandler.init(fileContent,spectrumServiceQuotes,finalFileName); final boolean matchResult = spectrumHandler.saveEmailToLocal(); if(matchResult){ //开始解析 @@ -153,7 +154,7 @@ public class FileSourceHandleManager{ } else { warning = e.getMessage(); } - spectrumServiceQuotes.getLogFileUtil().errorLog(spectrumFile.getName(), warning, e); + spectrumServiceQuotes.getLogFileUtil().errorLog(finalFileName.toString(), warning, e); log.error("Parsing the {} file of the filesource directory failed.The reason is {}",spectrumFile.getName(),e.getMessage()); e.printStackTrace(); 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 ea867546..1035c708 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 @@ -135,6 +135,7 @@ public class UndealHandleManager{ @Override public void run() { + StringBuilder finalFileName = new StringBuilder(); long currentMillis = System.currentTimeMillis(); long createMillis = currentMillis; //判断redis是否包含文件名称 key @@ -148,7 +149,7 @@ public class UndealHandleManager{ final String fileContent = FileUtils.readFileToString(spectrumFile,"UTF-8"); //解析文件 AbstractSpectrumHandler spectrumHandler = new SamplephdSpectrum(); - spectrumHandler.init(fileContent,spectrumServiceQuotes,true); + spectrumHandler.init(fileContent,spectrumServiceQuotes,finalFileName,true); final boolean matchResult = spectrumHandler.saveEmailToLocal(); if(matchResult){ //开始解析 @@ -163,7 +164,7 @@ public class UndealHandleManager{ } else { warning = e.getMessage(); } - spectrumServiceQuotes.getLogFileUtil().errorLog(spectrumFile.getName(), warning, e); + spectrumServiceQuotes.getLogFileUtil().errorLog(finalFileName.toString(), warning, e); log.error("The {} file of the undeal directory fails to be parsed again.The reason is {}",spectrumFile.getName(),e.getMessage()); e.printStackTrace(); }finally { 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 f9daa734..8c34be87 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 @@ -57,6 +57,10 @@ public abstract class AbstractS_D_Q_G_SpectrumHandler extends AbstractSpectrumHa * 能谱文件处理状态,默认为:未处理 */ protected String status = SampleStatus.UNTREATED.getValue(); + /** + * 原始库是否存储成功 + */ + protected boolean isStoreSuccess = false; /** * 前置检查 @@ -90,7 +94,7 @@ public abstract class AbstractS_D_Q_G_SpectrumHandler extends AbstractSpectrumHa @Override protected void parseingEmail() throws Exception { final EnergySpectrumStruct sourceData = EnergySpectrumHandler.getSourceData(super.spectrumFile.getAbsolutePath()); - if(Objects.isNull(sourceData)){ + if(Objects.isNull(sourceData) || StringUtils.isBlank(sourceData.data_type)){ throw new PHD_ReadException("THE PHDFile has some blocks can't be read:"+super.spectrumFile.getAbsolutePath()); } this.sourceData = sourceData; @@ -180,6 +184,7 @@ public abstract class AbstractS_D_Q_G_SpectrumHandler extends AbstractSpectrumHa } //提交事务 this.spectrumServiceQuotes.getTransactionManager().commit(transactionStatus); + this.isStoreSuccess = true; }catch (Exception e){ //回滚事务 spectrumServiceQuotes.getTransactionManager().rollback(transactionStatus); 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 c485d87a..40d5ad77 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 @@ -48,7 +48,10 @@ public abstract class AbstractSpectrumHandler extends AbstractChain { * 是否来自于undel目录 */ protected boolean fromUndel = false; - + /** + * 返回调用方(filesource,undel,SpectrumParsingActuator)的文件名称 + */ + protected StringBuilder returnFileName; /** * 保存当前能谱文件有哪些#开头的标签 */ @@ -57,17 +60,19 @@ public abstract class AbstractSpectrumHandler extends AbstractChain { /** * 初始化参数 */ - public void init(String mailContent,SpectrumServiceQuotes spectrumServiceQuotes) throws Exception{ + public void init(String mailContent,SpectrumServiceQuotes spectrumServiceQuotes,StringBuilder returnFileName) throws Exception{ this.mailContent = mailContent; this.spectrumServiceQuotes = spectrumServiceQuotes; + this.returnFileName = returnFileName; } /** * 初始化参数 */ - public void init(String mailContent,SpectrumServiceQuotes spectrumServiceQuotes,boolean fromUndel) throws Exception{ + public void init(String mailContent,SpectrumServiceQuotes spectrumServiceQuotes,StringBuilder returnFileName,boolean fromUndel) throws Exception{ this.mailContent = mailContent; this.spectrumServiceQuotes = spectrumServiceQuotes; + this.returnFileName = returnFileName; this.fromUndel = fromUndel; } @@ -75,12 +80,13 @@ public abstract class AbstractSpectrumHandler extends AbstractChain { * 初始化参数 */ protected void initNext(SpectrumServiceQuotes spectrumServiceQuotes,File spectrumFile,DataType currDataType, - String mailContent,boolean fromUndel){ + String mailContent,boolean fromUndel,StringBuilder returnFileName){ this.spectrumServiceQuotes = spectrumServiceQuotes; this.spectrumFile = spectrumFile; this.currDataType = currDataType; this.mailContent = mailContent; this.fromUndel = fromUndel; + this.returnFileName = returnFileName; this.setChina(); } 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 712e3acd..f05b8449 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 @@ -47,7 +47,7 @@ public class AlertSpectrum extends AbstractSpectrumHandler{ protected void setChina() { AbstractSpectrumHandler spectrumHandler = new HealthStatusSpectrum(); spectrumHandler.initNext(super.spectrumServiceQuotes,super.spectrumFile, - super.currDataType,super.mailContent,super.fromUndel); + super.currDataType,super.mailContent,super.fromUndel,super.returnFileName); spectrumHandler.setPrevious(this); super.setNext(spectrumHandler); } @@ -73,6 +73,8 @@ public class AlertSpectrum extends AbstractSpectrumHandler{ //若本次文件来自于undel目录,解析成功则删除 deleteIfFromUndelFile(); }catch (Exception e){ + //异常返回文件名称用于报错日志 + super.returnFileName.append(super.spectrumFile.getName()); throw e; }finally { //把流程日志保存到日志目录 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 56f86467..18fa6920 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 @@ -16,7 +16,7 @@ public class DetbkphdSpectrum extends AbstractS_D_Q_G_SpectrumHandler { protected void setChina() { AbstractSpectrumHandler spectrumHandler = new QcphdSpectrum(); spectrumHandler.initNext(super.spectrumServiceQuotes,super.spectrumFile, - super.currDataType,super.mailContent,super.fromUndel); + super.currDataType,super.mailContent,super.fromUndel,super.returnFileName); spectrumHandler.setPrevious(this); super.setNext(spectrumHandler); } @@ -48,6 +48,8 @@ public class DetbkphdSpectrum extends AbstractS_D_Q_G_SpectrumHandler { //若本次文件来自于undel目录,解析成功则删除 deleteIfFromUndelFile(); }catch (Exception e){ + //异常返回文件名称用于报错日志 + super.returnFileName.append(super.spectrumFile.getName()); //修改状态为解析失败 super.status = SampleStatus.FAIL.getValue(); super.updateStatus(); @@ -56,7 +58,7 @@ public class DetbkphdSpectrum extends AbstractS_D_Q_G_SpectrumHandler { super.handleParseingFailFile(); throw e; }finally { - if(Objects.nonNull(this.parsingProcessLog)){ + if(Objects.nonNull(this.parsingProcessLog) && super.isStoreSuccess){ this.parsingProcessLog.handleLog(); } } 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 19e8506f..7492ad45 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 @@ -18,7 +18,7 @@ public class GasbkphdSpectrum extends AbstractS_D_Q_G_SpectrumHandler { protected void setChina() { AbstractSpectrumHandler spectrumHandler = new MetSpectrum(); spectrumHandler.initNext(super.spectrumServiceQuotes,super.spectrumFile, - super.currDataType,super.mailContent,super.fromUndel); + super.currDataType,super.mailContent,super.fromUndel,super.returnFileName); spectrumHandler.setPrevious(this); super.setNext(spectrumHandler); } @@ -50,6 +50,8 @@ public class GasbkphdSpectrum extends AbstractS_D_Q_G_SpectrumHandler { //若本次文件来自于undel目录,解析成功则删除 deleteIfFromUndelFile(); }catch (Exception e){ + //异常返回文件名称用于报错日志 + super.returnFileName.append(super.spectrumFile.getName()); //修改状态为解析失败 super.status = SampleStatus.FAIL.getValue(); super.updateStatus(); @@ -58,7 +60,7 @@ public class GasbkphdSpectrum extends AbstractS_D_Q_G_SpectrumHandler { super.handleParseingFailFile(); throw e; }finally { - if(Objects.nonNull(this.parsingProcessLog)){ + if(Objects.nonNull(this.parsingProcessLog) && super.isStoreSuccess){ this.parsingProcessLog.handleLog(); } } diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/HealthStatusSpectrum.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/HealthStatusSpectrum.java index fb554287..edfc7112 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/HealthStatusSpectrum.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/HealthStatusSpectrum.java @@ -59,18 +59,24 @@ public class HealthStatusSpectrum extends AbstractSpectrumHandler{ @Override public void handler() throws Exception { if(DataType.SOH.getType().equals(super.currDataType.getType())){ - //打印当前处理的能谱类型 - super.printCurrDataType(); - //解析邮件内容 - this.parseingEmail(); - //保存PHD文件到savefile - super.saveFileToSavefile(); - //结构体数据入库 - this.handlerOriginalData(); - //把流程日志保存到日志目录 - this.saveLogToLogDir(); - //若本次文件来自于undel目录,解析成功则删除 - deleteIfFromUndelFile(); + try { + //打印当前处理的能谱类型 + super.printCurrDataType(); + //解析邮件内容 + this.parseingEmail(); + //保存PHD文件到savefile + super.saveFileToSavefile(); + //结构体数据入库 + this.handlerOriginalData(); + //把流程日志保存到日志目录 + this.saveLogToLogDir(); + //若本次文件来自于undel目录,解析成功则删除 + deleteIfFromUndelFile(); + }catch (Exception e){ + //异常返回文件名称用于报错日志 + super.returnFileName.append(super.spectrumFile.getName()); + throw e; + } } } 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 b243a61a..def4166c 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 @@ -43,7 +43,7 @@ public class MetSpectrum extends AbstractSpectrumHandler{ protected void setChina() { AbstractSpectrumHandler spectrumHandler = new AlertSpectrum(); spectrumHandler.initNext(super.spectrumServiceQuotes,super.spectrumFile, - super.currDataType,super.mailContent,super.fromUndel); + super.currDataType,super.mailContent,super.fromUndel,super.returnFileName); spectrumHandler.setPrevious(this); super.setNext(spectrumHandler); } @@ -54,18 +54,24 @@ public class MetSpectrum extends AbstractSpectrumHandler{ @Override public void handler() throws Exception { if(DataType.MET.getType().equals(super.currDataType.getType())){ - //打印当前处理的能谱类型 - super.printCurrDataType(); - //解析邮件内容 - this.parseingEmail(); - //保存PHD文件到savefile - super.saveFileToSavefile(); - //结构体数据入库 - this.handlerOriginalData(); - //把流程日志保存到日志目录 - this.saveLogToLogDir(); - //若本次文件来自于undel目录,解析成功则删除 - deleteIfFromUndelFile(); + try { + //打印当前处理的能谱类型 + super.printCurrDataType(); + //解析邮件内容 + this.parseingEmail(); + //保存PHD文件到savefile + super.saveFileToSavefile(); + //结构体数据入库 + this.handlerOriginalData(); + //把流程日志保存到日志目录 + this.saveLogToLogDir(); + //若本次文件来自于undel目录,解析成功则删除 + deleteIfFromUndelFile(); + }catch (Exception e){ + //异常返回文件名称用于报错日志 + super.returnFileName.append(super.spectrumFile.getName()); + throw e; + } }else{ super.next.handler(); } 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 ef489640..37fe423b 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 @@ -16,7 +16,7 @@ public class QcphdSpectrum extends AbstractS_D_Q_G_SpectrumHandler { protected void setChina() { AbstractSpectrumHandler spectrumHandler = new GasbkphdSpectrum(); spectrumHandler.initNext(super.spectrumServiceQuotes,super.spectrumFile, - super.currDataType,super.mailContent,super.fromUndel); + super.currDataType,super.mailContent,super.fromUndel,super.returnFileName); spectrumHandler.setPrevious(this); super.setNext(spectrumHandler); } @@ -49,6 +49,8 @@ public class QcphdSpectrum extends AbstractS_D_Q_G_SpectrumHandler { //若本次文件来自于undel目录,解析成功则删除 deleteIfFromUndelFile(); }catch (Exception e){ + //异常返回文件名称用于报错日志 + super.returnFileName.append(super.spectrumFile.getName()); //修改状态为解析失败 super.status = SampleStatus.FAIL.getValue(); super.updateStatus(); @@ -57,7 +59,7 @@ public class QcphdSpectrum extends AbstractS_D_Q_G_SpectrumHandler { super.handleParseingFailFile(); throw e; }finally { - if(Objects.nonNull(this.parsingProcessLog)){ + if(Objects.nonNull(this.parsingProcessLog) && super.isStoreSuccess){ this.parsingProcessLog.handleLog(); } } 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 d4e4f086..efc02304 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 @@ -17,7 +17,7 @@ public class SamplephdSpectrum extends AbstractS_D_Q_G_SpectrumHandler { protected void setChina() { AbstractSpectrumHandler spectrumHandler = new DetbkphdSpectrum(); spectrumHandler.initNext(super.spectrumServiceQuotes,super.spectrumFile, - super.currDataType,super.mailContent,super.fromUndel); + super.currDataType,super.mailContent,super.fromUndel,super.returnFileName); spectrumHandler.setPrevious(this); super.setNext(spectrumHandler); } @@ -52,6 +52,8 @@ public class SamplephdSpectrum extends AbstractS_D_Q_G_SpectrumHandler { //若本次文件来自于undel目录,解析成功则删除 deleteIfFromUndelFile(); }catch (Exception e){ + //异常返回文件名称用于报错日志 + super.returnFileName.append(super.spectrumFile.getName()); //修改状态为解析失败 super.status = SampleStatus.FAIL.getValue(); super.updateStatus(); @@ -60,7 +62,7 @@ public class SamplephdSpectrum extends AbstractS_D_Q_G_SpectrumHandler { super.handleParseingFailFile(); throw e; }finally { - if(Objects.nonNull(this.parsingProcessLog)){ + if(Objects.nonNull(this.parsingProcessLog) && super.isStoreSuccess){ this.parsingProcessLog.handleLog(); } } 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 2b3f1a5d..b9e5b28e 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 @@ -80,6 +80,7 @@ public class SpectrumParsingActuator implements Runnable{ StringBuilder mailContent = null; String sendTime = null; String receiveTime = null; + StringBuilder finalFileName = new StringBuilder(); try { subject = MimeUtility.decodeText(message.getSubject()); sendTime = DateUtils.formatDate(message.getSentDate(),"yyyy-MM-dd HH:mm:ss"); @@ -92,7 +93,7 @@ public class SpectrumParsingActuator implements Runnable{ //判断是否是IMS2.0协议文件 if(checkMailContent(mailContent,subject)){ AbstractSpectrumHandler spectrumHandler = new SamplephdSpectrum(); - spectrumHandler.init(mailContent.toString(),spectrumServiceQuotes); + spectrumHandler.init(mailContent.toString(),spectrumServiceQuotes,finalFileName); final boolean matchResult = spectrumHandler.saveEmailToLocal(); if(matchResult){ //保存邮件解析日志到PG数据库