fix:1.添加解析成功后返回文件名称逻辑2.修改生成日志条件原始库存储完成后再生成

This commit is contained in:
panbaolin 2023-10-25 18:55:23 +08:00
parent 89c5377c09
commit 25459ab06e
12 changed files with 80 additions and 44 deletions

View File

@ -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();

View File

@ -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 {

View File

@ -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);

View File

@ -48,7 +48,10 @@ public abstract class AbstractSpectrumHandler extends AbstractChain {
* 是否来自于undel目录
*/
protected boolean fromUndel = false;
/**
* 返回调用方filesourceundelSpectrumParsingActuator的文件名称
*/
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();
}

View File

@ -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 {
//把流程日志保存到日志目录

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -59,6 +59,7 @@ public class HealthStatusSpectrum extends AbstractSpectrumHandler{
@Override
public void handler() throws Exception {
if(DataType.SOH.getType().equals(super.currDataType.getType())){
try {
//打印当前处理的能谱类型
super.printCurrDataType();
//解析邮件内容
@ -71,6 +72,11 @@ public class HealthStatusSpectrum extends AbstractSpectrumHandler{
this.saveLogToLogDir();
//若本次文件来自于undel目录解析成功则删除
deleteIfFromUndelFile();
}catch (Exception e){
//异常返回文件名称用于报错日志
super.returnFileName.append(super.spectrumFile.getName());
throw e;
}
}
}

View File

@ -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,6 +54,7 @@ public class MetSpectrum extends AbstractSpectrumHandler{
@Override
public void handler() throws Exception {
if(DataType.MET.getType().equals(super.currDataType.getType())){
try {
//打印当前处理的能谱类型
super.printCurrDataType();
//解析邮件内容
@ -66,6 +67,11 @@ public class MetSpectrum extends AbstractSpectrumHandler{
this.saveLogToLogDir();
//若本次文件来自于undel目录解析成功则删除
deleteIfFromUndelFile();
}catch (Exception e){
//异常返回文件名称用于报错日志
super.returnFileName.append(super.spectrumFile.getName());
throw e;
}
}else{
super.next.handler();
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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数据库