diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/GardsAnalysesService.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/GardsAnalysesService.java index 312a192b..d70ad140 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/GardsAnalysesService.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/GardsAnalysesService.java @@ -27,4 +27,11 @@ public interface GardsAnalysesService extends IService { public GardsAnalyses create(Integer sampleId, GardsSampleData detSampleData, GardsSampleData gasSampleData, Date beginDate, Date endDate, String logPath, String reportPath); Integer getIdAnalysis(Integer sampleId); + + /** + * 修改分析结束时间 + * @param idAnalysis + * @param endTime + */ + void updateAnalysesEndTime(Integer idAnalysis,Date endTime); } diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/GardsAnalysesServiceImpl.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/GardsAnalysesServiceImpl.java index 59b69f32..ef4ef3ab 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/GardsAnalysesServiceImpl.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/GardsAnalysesServiceImpl.java @@ -13,6 +13,7 @@ import org.jeecg.modules.mapper.GardsAnalysesMapper; import org.jeecg.modules.service.GardsAnalysesService; import org.springframework.stereotype.Service; import java.util.Date; +import java.util.Objects; /** * 存储谱数据分析的基本信息 @@ -66,4 +67,21 @@ public class GardsAnalysesServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(GardsAnalyses::getIdAnalysis,idAnalysis); + final GardsAnalyses gardsAnalyses = this.getOne(wrapper); + if(Objects.nonNull(gardsAnalyses)){ + gardsAnalyses.setAnalysisEnd(endTime); + this.updateById(gardsAnalyses); + } + } } diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/ParsingProcessLog.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/ParsingProcessLog.java index 258a9464..627d3381 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/ParsingProcessLog.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/ParsingProcessLog.java @@ -781,10 +781,10 @@ public class ParsingProcessLog { private void saveLogToFTP(String log){ //保存日志文件到ftp final SpectrumPathProperties properties = spectrumHandler.spectrumServiceQuotes.getSpectrumPathProperties(); - spectrumHandler.logFilePath = spectrumHandler.getFileSavePath(); - spectrumHandler.logFileName = spectrumHandler.mailFile.getName().replace(spectrumHandler.currDataType.getSuffix(),SpectrumHandler.LOG_FILE_SUFFIX); + String logFilePath = properties.getLogPath()+StringConstant.SLASH+spectrumHandler.getFileSavePath(); + String logFileName = spectrumHandler.mailFile.getName().replace(DataType.SAMPLEPHD.getSuffix(),SpectrumHandler.LOG_FILE_SUFFIX); - spectrumHandler.ftpUtil.saveOrAppendFile(properties.getLogPath()+StringConstant.SLASH+spectrumHandler.logFilePath,spectrumHandler.logFileName,new ByteArrayInputStream(log.getBytes(StandardCharsets.UTF_8))); + spectrumHandler.ftpUtil.saveOrAppendFile(logFilePath,logFileName,new ByteArrayInputStream(log.getBytes(StandardCharsets.UTF_8))); } /** diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/S_D_Q_G_SpectrumHandler.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/S_D_Q_G_SpectrumHandler.java index 0fd305ef..6df53c2a 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/S_D_Q_G_SpectrumHandler.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/S_D_Q_G_SpectrumHandler.java @@ -52,14 +52,6 @@ public abstract class S_D_Q_G_SpectrumHandler extends SpectrumHandler{ * 基础数据 */ protected GardsSampleData sampleData; - /** - * 日志文件路径 - */ - protected String logFilePath; - /** - * 日志文件名称 - */ - protected String logFileName; /** * 流程日志对象 */ diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_B_Analysis.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_B_Analysis.java index 81b45857..bd7dee08 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_B_Analysis.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/Sample_B_Analysis.java @@ -75,6 +75,15 @@ public class Sample_B_Analysis implements BlockConstant { * gas谱PHD文件临时路径 */ private String gasTempFilePath; + /** + * SamplephdSpectrum类->saveFileToFtp()构造的能谱文件ftp保存路径 + * 可根据此路径构造log和arr保存路径 + */ + protected String ftpSavePath; + /** + * SamplephdSpectrum类->updateSpectrumFileName()构造的能谱文件名称 可根据此路径构造log和arr文件名称 + */ + protected String phdFileName; /** * 日志文件路径 */ @@ -111,6 +120,10 @@ public class Sample_B_Analysis implements BlockConstant { * 结束分析时间 */ protected Date endAnalysisTime; + /** + * 分析基础数据 + */ + protected GardsAnalyses analyses; /** * 流程日志对象 @@ -120,30 +133,32 @@ public class Sample_B_Analysis implements BlockConstant { public Sample_B_Analysis() { } - public Sample_B_Analysis(GardsSampleData sampleData, String sampleTempFilePath, SpectrumServiceQuotes spectrumServiceQuotes, - EnergySpectrumStruct sampleStruct, FTPUtils ftpUtil, String logFilePath, String logFileName,ParsingProcessLog parsingProcessLog){ - this.sampleData = sampleData; - this.sampleTempFilePath = sampleTempFilePath; - this.spectrumServiceQuotes = spectrumServiceQuotes; - this.sampleStruct = sampleStruct; - this.ftpUtil = ftpUtil; - this.logFilePath = logFilePath; - this.logFileName = logFileName; - this.parsingProcessLog = parsingProcessLog; + public Sample_B_Analysis(S_D_Q_G_SpectrumHandler spectrumHandler){ + this.sampleData = spectrumHandler.sampleData; + this.sampleTempFilePath = spectrumHandler.mailFile.getAbsolutePath(); + this.spectrumServiceQuotes = spectrumHandler.spectrumServiceQuotes; + this.sampleStruct = spectrumHandler.sourceData; + this.ftpUtil = spectrumHandler.ftpUtil; + this.parsingProcessLog = spectrumHandler.parsingProcessLog; + this.ftpSavePath = spectrumHandler.getFileSavePath(); + this.phdFileName = spectrumHandler.mailFile.getName(); + } /** * 执行解析过程 */ public void start() throws BAnalyseException { + //标记整个分析过程是否分析失败 + boolean analyseFail = false; try{ this.startAnalysisTime = new Date(); //声明分析日志对象 parsingProcessLog.setSample_B_Analysis(this); //查询det、gas数据(sampleId,inputFileName),sample数据在构造函数已经传过来 this.queryPHDFile(); - //构造报告文件存储路径及文件名称,日志文件存储路径及文件名称在原始库存储阶段已存在,已经传过来 - this.structureArrFilePath(); + //构造报告文件存储路径及文件名称、日志文件存储路径及文件名称 + this.structureLogAndArrFilePath(); //下载det和gas谱PHD文件,sample谱PHD文件位置在构造函数已经传过来 this.downloadPHDFile(); //传入sample、det和gas谱PHD文件调用dll进行分析 @@ -154,10 +169,15 @@ public class Sample_B_Analysis implements BlockConstant { Sample_B_Analysis.B_AnalysisReport report = new Sample_B_Analysis.B_AnalysisReport(); report.start(); }catch (Exception e){ + analyseFail = true; e.printStackTrace(); throw new BAnalyseException("Sample Analyse Error at "+DateUtils.formatDate(new Date(),"yyyy-MM-dd HH:mm:ss")); }finally { this.endAnalysisTime = new Date(); + //如果分析成功并且analyses对象不为空 + if(!analyseFail && Objects.nonNull(this.analyses)){ + spectrumServiceQuotes.getAnalysesService().updateAnalysesEndTime(this.analyses.getIdAnalysis(),this.endAnalysisTime); + } //删除下载的det和gas临时文件 this.deleteLocalTemporaryFile(); } @@ -168,7 +188,7 @@ public class Sample_B_Analysis implements BlockConstant { * @throws FileNotExistException */ private void queryPHDFile() throws FileNotExistException { - //查询det和gas能谱文件 + //查询det和gas能谱文 this.detSampleData = spectrumServiceQuotes.getSampleDataService().getSampleIdAndInputFileName(this.sampleStruct.detector_bk_measurement_id, DataTypeAbbr.DETBKPHD.getType()); this.gasSampleData = spectrumServiceQuotes.getSampleDataService().getSampleIdAndInputFileName(this.sampleStruct.gas_bk_measurement_id, DataTypeAbbr.GASBKPHD.getType()); @@ -184,27 +204,19 @@ public class Sample_B_Analysis implements BlockConstant { /** * 创建报告文件路径 */ - private void structureArrFilePath(){ - //处理此文件需要保存到ftp服务的路径 - //measurement_id切割后的字符数组 - String[] arr = this.sampleStruct.measurement_id.split(StringConstant.DASH); - //切割后第一个,元素是年,第二个是月 - final String[] yearMonth = arr[1].split(StringConstant.SLASH); + private void structureLogAndArrFilePath(){ final SpectrumPathProperties properties = this.spectrumServiceQuotes.getSpectrumPathProperties(); + //构造报告文件路径 StringBuilder ftpPath = new StringBuilder(); ftpPath.append(properties.getArrPath()); ftpPath.append(StringConstant.SLASH); - ftpPath.append(properties.getFilePathMap().get(this.sampleStruct.system_type)); - ftpPath.append(StringConstant.SLASH); - ftpPath.append(properties.getFilePathMap().get(this.sampleStruct.data_type)); - ftpPath.append(StringConstant.SLASH); - ftpPath.append(yearMonth[0]); - ftpPath.append(StringConstant.SLASH); - ftpPath.append(yearMonth[1]); + ftpPath.append(this.ftpSavePath); this.arrFilePath = ftpPath.toString(); String arrFileTail = ARR_FILE_NAME_TAIL+ARR_FILE_SUFFIX; - String sourceFileName = this.sampleData.getInputFileName().substring(this.sampleData.getInputFileName().lastIndexOf(StringConstant.SLASH)+1); - this.arrFileName = sourceFileName.replace(DataType.SAMPLEPHD.getSuffix(),arrFileTail); + this.arrFileName = this.phdFileName.replace(DataType.SAMPLEPHD.getSuffix(),arrFileTail); + //构造日志文件路径 + this.logFilePath = properties.getLogPath()+StringConstant.SLASH+this.ftpSavePath; + this.logFileName = this.phdFileName.replace(DataType.SAMPLEPHD.getSuffix(),SpectrumHandler.LOG_FILE_SUFFIX); } /** @@ -271,7 +283,7 @@ public class Sample_B_Analysis implements BlockConstant { final TransactionStatus transactionStatus = spectrumServiceQuotes.getTransactionManager().getTransaction(spectrumServiceQuotes.getTransactionDefinition()); try{ //存储基础数据 - final GardsAnalyses analyses = spectrumServiceQuotes.getAnalysesService().create(this.sampleData.getSampleId(),this.detSampleData, + this.analyses = spectrumServiceQuotes.getAnalysesService().create(this.sampleData.getSampleId(),this.detSampleData, this.gasSampleData,this.startAnalysisTime,this.endAnalysisTime,logFileRelativePath,arrFileRelativePath); //调用原始数据dll获取gas、det谱数据入库,sample已有数据直接入库 //存储sample谱B_Energy和G_Energy块数据 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 2f5b6ef1..4b88e7a3 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 @@ -75,10 +75,11 @@ public class SamplephdSpectrum extends S_D_Q_G_SpectrumHandler{ */ protected void autoAnalysis() throws Exception { if(this.sourceData.system_type.equals(SystemType.BETA.getType())){ - Sample_B_Analysis bAnalysis = new Sample_B_Analysis(super.sampleData,super.mailFile.getAbsolutePath(), - super.spectrumServiceQuotes,super.sourceData,super.ftpUtil, - super.logFilePath,super.logFileName,super.parsingProcessLog); + Sample_B_Analysis bAnalysis = new Sample_B_Analysis(this); bAnalysis.start(); +// Sample_B_Analysis bAnalysis = new Sample_B_Analysis(super.sampleData,super.mailFile.getAbsolutePath(), +// super.spectrumServiceQuotes,super.sourceData,super.ftpUtil,super.parsingProcessLog); +// bAnalysis.start(); } // if (this.sourceData.system_type.equals(SystemType.GAMMA.getType())) { // Sample_G_Analysis sample_g_analysis = new Sample_G_Analysis(super.sourceData, super.spectrumServiceQuotes, super.sampleData);