diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/StringConstant.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/StringConstant.java new file mode 100644 index 00000000..b3bd19a5 --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/StringConstant.java @@ -0,0 +1,70 @@ +package org.jeecg.common.constant; + +/** + * String常量 + */ +public interface StringConstant { + + String AMPERSAND = "&"; + String AND = "and"; + String AT = "@"; + String ASTERISK = "*"; + String STAR = "*"; + String BACK_SLASH = "\\"; + String COLON = ":"; + String DOUBLE_COLON = "::"; + String COMMA = ","; + String DASH = "-"; + String DOLLAR = "$"; + String DOT = "."; + String UNDER_LINE = "_"; + String DOUBLE_DOT = ".."; + String DOT_CLASS = ".class"; + String DOT_JAVA = ".java"; + String DOT_XML = ".xml"; + String EMPTY = ""; + String EQUALS = "="; + String FALSE = "false"; + String SLASH = "/"; + String HASH = "#"; + String HAT = "^"; + String LEFT_BRACE = "{"; + String LEFT_BRACKET = "("; + String LEFT_CHEV = "<"; + String DOT_NEWLINE = ",\n"; + String NEWLINE = "\n"; + String N = "n"; + String NO = "no"; + String NULL = "null"; + String OFF = "off"; + String ON = "on"; + String PERCENT = "%"; + String PIPE = "|"; + String PLUS = "+"; + String QUESTION_MARK = "?"; + String EXCLAMATION_MARK = "!"; + String QUOTE = "\""; + String RETURN = "\r"; + String TAB = "\t"; + String RIGHT_BRACE = "}"; + String RIGHT_BRACKET = ")"; + String RIGHT_CHEV = ">"; + String SEMICOLON = ";"; + String SINGLE_QUOTE = "'"; + String BACKTICK = "`"; + String SPACE = " "; + String TILDA = "~"; + String LEFT_SQ_BRACKET = "["; + String RIGHT_SQ_BRACKET = "]"; + String TRUE = "true"; + String UTF_8 = "UTF-8"; + String US_ASCII = "US-ASCII"; + String ISO_8859_1 = "ISO-8859-1"; + String Y = "y"; + String YES = "yes"; + String ONE = "1"; + String ZERO = "0"; + String DOLLAR_LEFT_BRACE = "${"; + String HASH_LEFT_BRACE = "#{"; + String CRLF = "\r\n"; +} diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/AcquisitionBlockException.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/AcquisitionBlockException.java new file mode 100644 index 00000000..4cb00e1c --- /dev/null +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/AcquisitionBlockException.java @@ -0,0 +1,18 @@ +package org.jeecg.modules.exception; +/** + * 能谱未包含#Acquisition块 + */ +public class AcquisitionBlockException extends RuntimeException{ + + /** + * Constructs a new runtime exception with the specified detail message. + * The cause is not initialized, and may subsequently be initialized by a + * call to {@link #initCause}. + * + * @param message the detail message. The detail message is saved for + * later retrieval by the {@link #getMessage()} method. + */ + public AcquisitionBlockException(String message) { + super(message); + } +} diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/AirSamplerFlowException.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/AirSamplerFlowException.java new file mode 100644 index 00000000..5d9d8d12 --- /dev/null +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/AirSamplerFlowException.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.exception; + +/** + * SOH如果不包含此#AirSamplerFlow block,或者解析后info.record_count<=0 || info.start_date.size()<0 || info.start_time.size()<0 + */ +public class AirSamplerFlowException extends RuntimeException{ + + /** + * Constructs a new runtime exception with the specified detail message. + * The cause is not initialized, and may subsequently be initialized by a + * call to {@link #initCause}. + * + * @param message the detail message. The detail message is saved for + * later retrieval by the {@link #getMessage()} method. + */ + public AirSamplerFlowException(String message) { + super(message); + } +} diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/FileRepeatException.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/FileRepeatException.java new file mode 100644 index 00000000..e4c09236 --- /dev/null +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/FileRepeatException.java @@ -0,0 +1,16 @@ +package org.jeecg.modules.exception; + +public class FileRepeatException extends RuntimeException{ + + /** + * Constructs a new runtime exception with the specified detail message. + * The cause is not initialized, and may subsequently be initialized by a + * call to {@link #initCause}. + * + * @param message the detail message. The detail message is saved for + * later retrieval by the {@link #getMessage()} method. + */ + public FileRepeatException(String message) { + super(message); + } +} diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/HeaderBlockException.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/HeaderBlockException.java new file mode 100644 index 00000000..44c518ea --- /dev/null +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/exception/HeaderBlockException.java @@ -0,0 +1,20 @@ +package org.jeecg.modules.exception; + +/** + * 能谱未包含#Header块 + */ +public class HeaderBlockException extends RuntimeException{ + + /** + * Constructs a new runtime exception with the specified detail message. + * The cause is not initialized, and may subsequently be initialized by a + * call to {@link #initCause}. + * + * @param message the detail message. The detail message is saved for + * later retrieval by the {@link #getMessage()} method. + */ + public HeaderBlockException(String message) { + super(message); + } + +} diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/native_jni/EnergySpectrumHandler.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/native_jni/EnergySpectrumHandler.java index f956fb59..898469b3 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/native_jni/EnergySpectrumHandler.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/native_jni/EnergySpectrumHandler.java @@ -1,9 +1,6 @@ package org.jeecg.modules.native_jni; -import org.jeecg.modules.native_jni.struct.AlertSpectrumStruct; -import org.jeecg.modules.native_jni.struct.EnergySpectrumStruct; -import org.jeecg.modules.native_jni.struct.MetSpectrumStruct; -import org.jeecg.modules.native_jni.struct.SOHSpectrumStruct; +import org.jeecg.modules.native_jni.struct.*; import java.util.List; @@ -39,4 +36,13 @@ public class EnergySpectrumHandler { * @return 能谱原始数据 */ public static native MetSpectrumStruct getMetSourceData(String path); + + /** + * BetaGamma 分析算法 + * @param sampleFile 样品谱文件 + * @param gasFile 气体谱文件 + * @param detFile 探测器本地谱文件 + * @return + */ + public static native BgAnalyseResult bgAnalyse(String sampleFile, String gasFile, String detFile); } diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/native_jni/struct/BgAnalyseResult.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/native_jni/struct/BgAnalyseResult.java new file mode 100644 index 00000000..2b5439de --- /dev/null +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/native_jni/struct/BgAnalyseResult.java @@ -0,0 +1,38 @@ +package org.jeecg.modules.native_jni.struct; + +import java.util.List; + +public class BgAnalyseResult { + /************************** BgMDCPara **************************/ + /** MDC XE135 */ + public double MDC_Xe135; + /** MDC XE131m */ + public double MDC_Xe131m; + /** MDC XE133m*/ + public double MDC_Xe133m; + /** MDC XE133 */ + public double MDC_Xe133; + public List MDC; + public List MDC_CTS; + + /************************** BgXeConUncer **************************/ + /** 135不浓度 */ + public double Xe135_con; + /** 135不确定度 */ + public double Xe135_uncer; + public double Xe131m_con; + public double Xe131m_uncer; + public double Xe133m_con; + public double Xe133m_uncer; + public double Xe133_con; + public double Xe133_uncer; + + /** + * 分析结果标记,true成功,false失败 + */ + public boolean analyse_flag; + /** + * 失败原因 + */ + public String error_log; +} diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/GardsSampleDataService.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/GardsSampleDataService.java new file mode 100644 index 00000000..3a9eb69d --- /dev/null +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/GardsSampleDataService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.base.entity.original.GardsSampleData; + +public interface GardsSampleDataService extends IService { + + /** + * 判断文件是否存在 + * @param inputFileName + * @return + */ + public boolean fileExist(String inputFileName); +} diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java new file mode 100644 index 00000000..3c3edac7 --- /dev/null +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java @@ -0,0 +1,29 @@ +package org.jeecg.modules.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.modules.base.entity.original.GardsSampleData; +import org.jeecg.modules.mapper.GardsSampleDataMapper; +import org.jeecg.modules.service.GardsSampleDataService; +import org.springframework.stereotype.Service; + +import java.util.Objects; + +@Service +public class GardsSampleDataServiceImpl extends ServiceImpl implements GardsSampleDataService { + + /** + * 判断文件是否存在 + * + * @param inputFileName + * @return + */ + @Override + public boolean fileExist(String inputFileName) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(GardsSampleData::getInputFileName,inputFileName); + queryWrapper.select(GardsSampleData::getSampleId); + final GardsSampleData sampleData = this.getOne(queryWrapper); + return Objects.nonNull(sampleData); + } +} 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 61600d6d..7acdf9e2 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 @@ -2,6 +2,7 @@ package org.jeecg.modules.spectrum; import cn.hutool.core.io.FileUtil; import org.apache.commons.lang3.StringUtils; +import org.jeecg.common.constant.StringConstant; import org.jeecg.common.properties.SpectrumPathProperties; import org.jeecg.common.util.DateUtils; import org.jeecg.modules.base.entity.original.GardsAlertData; @@ -43,7 +44,7 @@ public class AlertSpectrum extends SpectrumHandler{ protected void setChina() { SpectrumHandler spectrumHandler = new HealthStatusSpectrum(); spectrumHandler.initNext(super.spectrumServiceQuotes,super.mailFile, - super.currDataType,super.message,super.emailProperties,super.ftpUtil); + super.currDataType,super.message,super.emailProperties,super.ftpUtil,super.mailContent); spectrumHandler.setPrevious(this); super.setNext(spectrumHandler); } @@ -105,10 +106,10 @@ public class AlertSpectrum extends SpectrumHandler{ //获取文件保存路径 String fileSavePath = this.getFileSavePath(); final SpectrumPathProperties properties = this.spectrumServiceQuotes.getSpectrumPathProperties(); - fileSavePath = properties.getRootPath()+"/"+fileSavePath; + fileSavePath = properties.getRootPath()+StringConstant.SLASH+fileSavePath; super.ftpUtil.saveFile(fileSavePath,this.mailFile.getName(),new FileInputStream(this.mailFile)); //设置FTP文件保存路径 - super.ftpSavePath = fileSavePath+"/"+this.mailFile.getName(); + super.ftpSavePath = fileSavePath+StringConstant.SLASH+this.mailFile.getName(); } /** @@ -122,9 +123,9 @@ public class AlertSpectrum extends SpectrumHandler{ final SpectrumPathProperties properties = this.spectrumServiceQuotes.getSpectrumPathProperties(); StringBuilder ftpPath = new StringBuilder(); ftpPath.append(properties.getFilePathMap().get(super.currDataType.getType())); - ftpPath.append("/"); + ftpPath.append(StringConstant.SLASH); ftpPath.append(year); - ftpPath.append("/"); + ftpPath.append(StringConstant.SLASH); ftpPath.append(month>=10?month:"0"+month); return ftpPath.toString(); } @@ -136,11 +137,11 @@ public class AlertSpectrum extends SpectrumHandler{ protected void updateSpectrumFileName() { StringBuilder newFileName = new StringBuilder(); newFileName.append(this.sourceData.station_code); - newFileName.append("_"); + newFileName.append(StringConstant.UNDER_LINE); newFileName.append(super.currDataType.getType()); - newFileName.append("-"); - newFileName.append(StringUtils.replace(this.sourceData.date,"/","")); - newFileName.append("_"); + newFileName.append(StringConstant.DASH); + newFileName.append(StringUtils.replace(this.sourceData.date,StringConstant.SLASH,"")); + newFileName.append(StringConstant.UNDER_LINE); newFileName.append(StringUtils.replace(this.sourceData.time,":","")); newFileName.append(super.currDataType.getSuffix()); mailFile = FileUtil.rename(mailFile,newFileName.toString(),true); @@ -164,14 +165,14 @@ public class AlertSpectrum extends SpectrumHandler{ //组装日志文件内容 StringBuilder logContent = new StringBuilder(); logContent.append("-------------------------- Write Data into Database at ").append(DateUtils.formatDate(this.startIntoDatabaseTime,"yyyy-MM-dd HH:mm:ss")).append(" ---------------------------"); - logContent.append("\n\n"); - logContent.append("ALERT ID: ").append(this.alertData.getAlertId()).append(" StandardFile:").append(spectrumServiceQuotes.getFtpProperties().getFtpRootPath()).append("/").append(super.ftpSavePath); - logContent.append("\n\n"); + logContent.append(System.lineSeparator()).append(System.lineSeparator()); + logContent.append("ALERT ID: ").append(this.alertData.getAlertId()).append(" StandardFile:").append(spectrumServiceQuotes.getFtpProperties().getFtpRootPath()).append(StringConstant.SLASH).append(super.ftpSavePath); + logContent.append(System.lineSeparator()).append(System.lineSeparator()); logContent.append("------------------- ").append("Write Data into Database Successfully at ").append(DateUtils.formatDate(this.endIntoDatabaseTime,"yyyy-MM-dd HH:mm:ss")).append(" --------------------"); //保存日志文件到ftp final SpectrumPathProperties properties = this.spectrumServiceQuotes.getSpectrumPathProperties(); - final String ftpPath = properties.getLogPath()+"/"+this.getFileSavePath(); - final String fileName = super.mailFile.getName().replace(this.currDataType.getSuffix(),".log"); + final String ftpPath = properties.getLogPath()+StringConstant.SLASH+this.getFileSavePath(); + final String fileName = super.mailFile.getName().replace(this.currDataType.getSuffix(),LOG_FILE_SUFFIX); super.ftpUtil.saveFile(ftpPath,fileName,new ByteArrayInputStream(logContent.toString().getBytes(StandardCharsets.UTF_8))); } } 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 ce48be7f..55722e6a 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 @@ -14,7 +14,7 @@ public class DetbkphdSpectrum extends S_D_Q_G_SpectrumHandler{ protected void setChina() { SpectrumHandler spectrumHandler = new QcphdSpectrum(); spectrumHandler.initNext(super.spectrumServiceQuotes,super.mailFile, - super.currDataType,super.message,super.emailProperties,super.ftpUtil); + super.currDataType,super.message,super.emailProperties,super.ftpUtil,super.mailContent); spectrumHandler.setPrevious(this); super.setNext(spectrumHandler); } @@ -25,6 +25,8 @@ public class DetbkphdSpectrum extends S_D_Q_G_SpectrumHandler{ @Override protected void handler() throws Exception { if(DataType.DETBKPHD.getType().equals(super.currDataType.getType())){ + //前置检查 + this.preCheck(); //打印当前处理的能谱类型 super.printCurrDataType(); //解析邮件内容 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 7354d29c..2b24545b 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 @@ -16,7 +16,7 @@ public class GasbkphdSpectrum extends S_D_Q_G_SpectrumHandler{ protected void setChina() { SpectrumHandler spectrumHandler = new MetSpectrum(); spectrumHandler.initNext(super.spectrumServiceQuotes,super.mailFile, - super.currDataType,super.message,super.emailProperties,super.ftpUtil); + super.currDataType,super.message,super.emailProperties,super.ftpUtil,super.mailContent); spectrumHandler.setPrevious(this); super.setNext(spectrumHandler); } @@ -27,6 +27,8 @@ public class GasbkphdSpectrum extends S_D_Q_G_SpectrumHandler{ @Override protected void handler() throws Exception { if(DataType.GASBKPHD.getType().equals(super.currDataType.getType())){ + //前置检查 + this.preCheck(); //打印当前处理的能谱类型 super.printCurrDataType(); //解析邮件内容 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 46a95d5c..996c77a7 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 @@ -2,10 +2,12 @@ package org.jeecg.modules.spectrum; import cn.hutool.core.io.FileUtil; import org.apache.commons.lang3.StringUtils; +import org.jeecg.common.constant.StringConstant; import org.jeecg.common.properties.SpectrumPathProperties; import org.jeecg.common.util.DateUtils; import org.jeecg.modules.base.entity.original.GardsSohData; import org.jeecg.modules.emuns.DataType; +import org.jeecg.modules.exception.AirSamplerFlowException; import org.jeecg.modules.native_jni.EnergySpectrumHandler; import org.jeecg.modules.native_jni.struct.SOHSpectrumStruct; import org.springframework.util.CollectionUtils; @@ -43,7 +45,12 @@ public class HealthStatusSpectrum extends SpectrumHandler{ */ @Override protected void setChina() { + } + protected void checkAirSamplerFlowBlock(){ + if(this.mailContent.indexOf("#AirSamplerFlow") == -1){ + throw new AirSamplerFlowException("this is no ariSamplerFlow data"); + } } /** @@ -86,6 +93,9 @@ public class HealthStatusSpectrum extends SpectrumHandler{ if(Objects.isNull(sourceData)){ throw new RuntimeException("THE PHDFile has some blocks can't be read:"+this.mailFile.getAbsolutePath()); } + if(sourceData.af_record_count <= 0 || sourceData.af_start_date.size() < 0 || sourceData.af_start_time.size() < 0){ + throw new AirSamplerFlowException("ariSamplerFlow data error"); + } this.sourceData = sourceData; } @@ -115,9 +125,9 @@ public class HealthStatusSpectrum extends SpectrumHandler{ final SpectrumPathProperties properties = this.spectrumServiceQuotes.getSpectrumPathProperties(); StringBuilder ftpPath = new StringBuilder(); ftpPath.append(properties.getFilePathMap().get(super.currDataType.getType())); - ftpPath.append("/"); + ftpPath.append(StringConstant.SLASH); ftpPath.append(year); - ftpPath.append("/"); + ftpPath.append(StringConstant.SLASH); ftpPath.append(month>=10?month:"0"+month); return ftpPath.toString(); } @@ -129,11 +139,11 @@ public class HealthStatusSpectrum extends SpectrumHandler{ protected void updateSpectrumFileName() { StringBuilder newFileName = new StringBuilder(); newFileName.append(this.sourceData.station_code); - newFileName.append("_"); + newFileName.append(StringConstant.UNDER_LINE); newFileName.append(super.currDataType.getType()); - newFileName.append("-"); - newFileName.append(StringUtils.replace(this.sourceData.start_date,"/","")); - newFileName.append("_"); + newFileName.append(StringConstant.DASH); + newFileName.append(StringUtils.replace(this.sourceData.start_date,StringConstant.SLASH,"")); + newFileName.append(StringConstant.UNDER_LINE); newFileName.append(StringUtils.replace(this.sourceData.start_time,":","")); newFileName.append(super.currDataType.getSuffix()); mailFile = FileUtil.rename(mailFile,newFileName.toString(),true); @@ -162,14 +172,14 @@ public class HealthStatusSpectrum extends SpectrumHandler{ //组装日志文件内容 StringBuilder logContent = new StringBuilder(); logContent.append("-------------------------- Write Data into Database at ").append(DateUtils.formatDate(this.startIntoDatabaseTime,"yyyy-MM-dd HH:mm:ss")).append(" ---------------------------"); - logContent.append("\n\n"); - logContent.append("SOH ID: ").append(sohIdRange).append(" StandardFile:").append(spectrumServiceQuotes.getFtpProperties().getFtpRootPath()).append("/").append(super.ftpSavePath); - logContent.append("\n\n"); + logContent.append(System.lineSeparator()).append(System.lineSeparator()); + logContent.append("SOH ID: ").append(sohIdRange).append(" StandardFile:").append(spectrumServiceQuotes.getFtpProperties().getFtpRootPath()).append(StringConstant.SLASH).append(super.ftpSavePath); + logContent.append(System.lineSeparator()).append(System.lineSeparator()); logContent.append("------------------- ").append("Write Data into Database Successfully at ").append(DateUtils.formatDate(this.endIntoDatabaseTime,"yyyy-MM-dd HH:mm:ss")).append(" --------------------"); //保存日志文件到ftp final SpectrumPathProperties properties = this.spectrumServiceQuotes.getSpectrumPathProperties(); - final String ftpPath = properties.getLogPath()+"/"+this.getFileSavePath(); - final String fileName = super.mailFile.getName().replace(this.currDataType.getSuffix(),".log"); + final String ftpPath = properties.getLogPath()+StringConstant.SLASH+this.getFileSavePath(); + final String fileName = super.mailFile.getName().replace(this.currDataType.getSuffix(),LOG_FILE_SUFFIX); super.ftpUtil.saveFile(ftpPath,fileName,new ByteArrayInputStream(logContent.toString().getBytes(StandardCharsets.UTF_8))); } } 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 afb8fdc3..a6023810 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 @@ -2,6 +2,7 @@ package org.jeecg.modules.spectrum; import cn.hutool.core.io.FileUtil; import org.apache.commons.lang3.StringUtils; +import org.jeecg.common.constant.StringConstant; import org.jeecg.common.properties.SpectrumPathProperties; import org.jeecg.common.util.DateUtils; import org.jeecg.modules.base.entity.original.GardsMetData; @@ -45,7 +46,7 @@ public class MetSpectrum extends SpectrumHandler{ protected void setChina() { SpectrumHandler spectrumHandler = new AlertSpectrum(); spectrumHandler.initNext(super.spectrumServiceQuotes,super.mailFile, - super.currDataType,super.message,super.emailProperties,super.ftpUtil); + super.currDataType,super.message,super.emailProperties,super.ftpUtil,super.mailContent); spectrumHandler.setPrevious(this); super.setNext(spectrumHandler); } @@ -121,9 +122,9 @@ public class MetSpectrum extends SpectrumHandler{ final SpectrumPathProperties properties = this.spectrumServiceQuotes.getSpectrumPathProperties(); StringBuilder ftpPath = new StringBuilder(); ftpPath.append(properties.getFilePathMap().get(super.currDataType.getType())); - ftpPath.append("/"); + ftpPath.append(StringConstant.SLASH); ftpPath.append(year); - ftpPath.append("/"); + ftpPath.append(StringConstant.SLASH); ftpPath.append(month>=10?month:"0"+month); return ftpPath.toString(); } @@ -135,11 +136,11 @@ public class MetSpectrum extends SpectrumHandler{ protected void updateSpectrumFileName() { StringBuilder newFileName = new StringBuilder(); newFileName.append(this.sourceData.station_code); - newFileName.append("_"); + newFileName.append(StringConstant.UNDER_LINE); newFileName.append(super.currDataType.getType()); - newFileName.append("-"); - newFileName.append(StringUtils.replace(this.sourceData.met_start_date.get(0),"/","")); - newFileName.append("_"); + newFileName.append(StringConstant.DASH); + newFileName.append(StringUtils.replace(this.sourceData.met_start_date.get(0),StringConstant.SLASH,"")); + newFileName.append(StringConstant.UNDER_LINE); newFileName.append(StringUtils.replace(this.sourceData.met_start_time.get(0),":","")); newFileName.append(super.currDataType.getSuffix()); mailFile = FileUtil.rename(mailFile,newFileName.toString(),true); @@ -168,14 +169,14 @@ public class MetSpectrum extends SpectrumHandler{ //组装日志文件内容 StringBuilder logContent = new StringBuilder(); logContent.append("-------------------------- Write Data into Database at ").append(DateUtils.formatDate(this.startIntoDatabaseTime,"yyyy-MM-dd HH:mm:ss")).append(" ---------------------------"); - logContent.append("\n\n"); - logContent.append("Met ID: ").append(metIdRange).append(" StandardFile:").append(spectrumServiceQuotes.getFtpProperties().getFtpRootPath()).append("/").append(super.ftpSavePath); - logContent.append("\n\n"); + logContent.append(System.lineSeparator()).append(System.lineSeparator()); + logContent.append("Met ID: ").append(metIdRange).append(" StandardFile:").append(spectrumServiceQuotes.getFtpProperties().getFtpRootPath()).append(StringConstant.SLASH).append(super.ftpSavePath); + logContent.append(System.lineSeparator()).append(System.lineSeparator()); logContent.append("------------------- ").append("Write Data into Database Successfully at ").append(DateUtils.formatDate(this.endIntoDatabaseTime,"yyyy-MM-dd HH:mm:ss")).append(" --------------------"); //保存日志文件到ftp final SpectrumPathProperties properties = this.spectrumServiceQuotes.getSpectrumPathProperties(); - final String ftpPath = properties.getLogPath()+"/"+this.getFileSavePath(); - final String fileName = super.mailFile.getName().replace(this.currDataType.getSuffix(),".log"); + final String ftpPath = properties.getLogPath()+StringConstant.SLASH+this.getFileSavePath(); + final String fileName = super.mailFile.getName().replace(this.currDataType.getSuffix(),LOG_FILE_SUFFIX); super.ftpUtil.saveFile(ftpPath,fileName,new ByteArrayInputStream(logContent.toString().getBytes(StandardCharsets.UTF_8))); } } 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 c51361a9..f0e1c677 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 @@ -15,7 +15,7 @@ public class QcphdSpectrum extends S_D_Q_G_SpectrumHandler{ protected void setChina() { SpectrumHandler spectrumHandler = new GasbkphdSpectrum(); spectrumHandler.initNext(super.spectrumServiceQuotes,super.mailFile, - super.currDataType,super.message,super.emailProperties,super.ftpUtil); + super.currDataType,super.message,super.emailProperties,super.ftpUtil,super.mailContent); spectrumHandler.setPrevious(this); super.setNext(spectrumHandler); } @@ -27,6 +27,8 @@ public class QcphdSpectrum extends S_D_Q_G_SpectrumHandler{ protected void handler() throws Exception { //判断当前邮件内容是否是QC谱 if(DataType.QCPHD.getType().equals(super.currDataType.getType())){ + //前置检查 + this.preCheck(); //打印当前处理的能谱类型 super.printCurrDataType(); //解析邮件内容 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 7de54040..e868e590 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 @@ -4,10 +4,14 @@ import cn.hutool.core.io.FileUtil; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.util.Strings; +import org.jeecg.common.constant.StringConstant; import org.jeecg.common.properties.SpectrumPathProperties; import org.jeecg.common.util.DateUtils; import org.jeecg.modules.base.entity.original.GardsSampleData; import org.jeecg.modules.config.datasource.DataSourceSwitcher; +import org.jeecg.modules.exception.AcquisitionBlockException; +import org.jeecg.modules.exception.FileRepeatException; +import org.jeecg.modules.exception.HeaderBlockException; import org.jeecg.modules.native_jni.EnergySpectrumHandler; import org.jeecg.modules.native_jni.struct.EnergySpectrumStruct; import org.jeecg.modules.service.ISpectrumBlockService; @@ -46,6 +50,32 @@ public abstract class S_D_Q_G_SpectrumHandler extends SpectrumHandler{ */ private GardsSampleData sampleData; + /** + * 前置检查 + */ + protected void preCheck() { + this.checkHeaderBlock(); + this.checkAcquisitionBlock(); + } + + /** + * 检查此邮件是否包含#Header block + */ + protected void checkHeaderBlock(){ + if(this.mailContent.indexOf("#Header") == -1){ + throw new HeaderBlockException("header data error"); + } + } + + /** + * 检查此邮件是否包含#Acquisition block + */ + protected void checkAcquisitionBlock(){ + if(this.mailContent.indexOf("#Acquisition") == -1){ + throw new AcquisitionBlockException("acquisition data error"); + } + } + /** * 调用dll解析邮件 */ @@ -68,10 +98,10 @@ public abstract class S_D_Q_G_SpectrumHandler extends SpectrumHandler{ //获取文件保存路径 String fileSavePath = this.getFileSavePath(); final SpectrumPathProperties properties = this.spectrumServiceQuotes.getSpectrumPathProperties(); - fileSavePath = properties.getRootPath()+"/"+fileSavePath; + fileSavePath = properties.getRootPath()+StringConstant.SLASH+fileSavePath; super.ftpUtil.saveFile(fileSavePath,this.mailFile.getName(),new FileInputStream(this.mailFile)); //设置FTP文件保存路径 - super.ftpSavePath = fileSavePath+"/"+this.mailFile.getName(); + super.ftpSavePath = fileSavePath+StringConstant.SLASH+this.mailFile.getName(); } /** @@ -85,11 +115,11 @@ public abstract class S_D_Q_G_SpectrumHandler extends SpectrumHandler{ final SpectrumPathProperties properties = this.spectrumServiceQuotes.getSpectrumPathProperties(); StringBuilder ftpPath = new StringBuilder(); ftpPath.append(properties.getFilePathMap().get(this.sourceData.system_type)); - ftpPath.append("/"); + ftpPath.append(StringConstant.SLASH); ftpPath.append(properties.getFilePathMap().get(this.sourceData.data_type)); - ftpPath.append("/"); + ftpPath.append(StringConstant.SLASH); ftpPath.append(year); - ftpPath.append("/"); + ftpPath.append(StringConstant.SLASH); ftpPath.append(month>=10?month:"0"+month); return ftpPath.toString(); } @@ -101,15 +131,15 @@ public abstract class S_D_Q_G_SpectrumHandler extends SpectrumHandler{ protected void updateSpectrumFileName() { StringBuilder newFileName = new StringBuilder(); newFileName.append(this.sourceData.detector_code); - newFileName.append("-"); - newFileName.append(StringUtils.replace(this.sourceData.acquisition_start_date,"/","")); - newFileName.append("_"); + newFileName.append(StringConstant.DASH); + newFileName.append(StringUtils.replace(this.sourceData.acquisition_start_date,StringConstant.SLASH,"")); + newFileName.append(StringConstant.UNDER_LINE); newFileName.append(StringUtils.replace(this.sourceData.acquisition_start_time.substring(0,this.sourceData.acquisition_start_time.lastIndexOf(":")),":","")); - newFileName.append("_"); + newFileName.append(StringConstant.UNDER_LINE); newFileName.append(this.sourceData.data_type.charAt(0)); - newFileName.append("_"); + newFileName.append(StringConstant.UNDER_LINE); newFileName.append(this.sourceData.spectrum_quantity); - newFileName.append("_"); + newFileName.append(StringConstant.UNDER_LINE); newFileName.append(this.sourceData.acquisition_live_time); newFileName.append(super.currDataType.getSuffix()); mailFile = FileUtil.rename(mailFile,newFileName.toString(),true); @@ -129,12 +159,15 @@ public abstract class S_D_Q_G_SpectrumHandler extends SpectrumHandler{ } } - /** * 处理原始数据 */ @Override protected void handlerOriginalData() throws Exception { + final boolean exist = spectrumServiceQuotes.getSampleDataService().fileExist(super.ftpSavePath); + if(exist){ + throw new FileRepeatException("file repeat"); + } this.startIntoDatabaseTime = new Date(); DataSourceSwitcher.switchToOracle(); final TransactionStatus transactionStatus = spectrumServiceQuotes.getTransactionManager().getTransaction(spectrumServiceQuotes.getTransactionDefinition()); @@ -172,28 +205,28 @@ public abstract class S_D_Q_G_SpectrumHandler extends SpectrumHandler{ //组装日志文件内容 StringBuilder logContent = new StringBuilder(); logContent.append("-------------------------- Write Data into Database at ").append(DateUtils.formatDate(this.startIntoDatabaseTime,"yyyy-MM-dd HH:mm:ss")).append(" ---------------------------"); - logContent.append("\n\n"); + logContent.append(System.lineSeparator()).append(System.lineSeparator()); logContent.append("ApplicationPath:").append(this.getProjectAbsolutePath()).append(",").append("ApplicationName:").append(this.getProjectName()).append(",started by RNAUTO at ").append(this.startIntoDatabaseTime); - logContent.append("\n\n"); + logContent.append(System.lineSeparator()).append(System.lineSeparator()); logContent.append("Successfully connected to database,source:").append(oraUrl.substring(oraUrl.lastIndexOf(":")+1)).append(",user=").append(oraUsername); - logContent.append("\n\n"); + logContent.append(System.lineSeparator()).append(System.lineSeparator()); logContent.append("SourceFile:").append(super.mailFile.getAbsolutePath()); - logContent.append("\n"); - logContent.append("StandardFile:").append(spectrumServiceQuotes.getFtpProperties().getFtpRootPath()).append("/").append(super.ftpSavePath); - logContent.append("\n\n"); + logContent.append(System.lineSeparator()); + logContent.append("StandardFile:").append(spectrumServiceQuotes.getFtpProperties().getFtpRootPath()).append(StringConstant.SLASH).append(super.ftpSavePath); + logContent.append(System.lineSeparator()).append(System.lineSeparator()); logContent.append("Detector ID:").append(this.sampleData.getDetectorId()); - logContent.append("\n"); + logContent.append(System.lineSeparator()); logContent.append("Station ID:").append(this.sampleData.getStationId()); - logContent.append("\n"); + logContent.append(System.lineSeparator()); logContent.append("Sample ID:").append(this.sampleData.getSampleId()); - logContent.append("\n\n"); + logContent.append(System.lineSeparator()).append(System.lineSeparator()); logContent.append("Instance status successfully set to:").append(this.sampleData.getStatus()).append("....."); - logContent.append("\n\n"); + logContent.append(System.lineSeparator()).append(System.lineSeparator()); logContent.append("------------------- ").append("Write Data into Database Successfully at ").append(DateUtils.formatDate(this.endIntoDatabaseTime,"yyyy-MM-dd HH:mm:ss")).append(" --------------------"); //保存日志文件到ftp final SpectrumPathProperties properties = this.spectrumServiceQuotes.getSpectrumPathProperties(); - final String ftpPath = properties.getLogPath()+"/"+this.getFileSavePath(); - final String fileName = super.mailFile.getName().replace(this.currDataType.getSuffix(),".log"); + final String ftpPath = properties.getLogPath()+StringConstant.SLASH+this.getFileSavePath(); + final String fileName = super.mailFile.getName().replace(this.currDataType.getSuffix(),LOG_FILE_SUFFIX); super.ftpUtil.saveFile(ftpPath,fileName,new ByteArrayInputStream(logContent.toString().getBytes(StandardCharsets.UTF_8))); } 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 7f98af6f..ddc85d5c 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 @@ -14,7 +14,7 @@ public class SamplephdSpectrum extends S_D_Q_G_SpectrumHandler{ protected void setChina() { SpectrumHandler spectrumHandler = new DetbkphdSpectrum(); spectrumHandler.initNext(super.spectrumServiceQuotes,super.mailFile, - super.currDataType,super.message,super.emailProperties,super.ftpUtil); + super.currDataType,super.message,super.emailProperties,super.ftpUtil,super.mailContent); spectrumHandler.setPrevious(this); super.setNext(spectrumHandler); } @@ -25,6 +25,8 @@ public class SamplephdSpectrum extends S_D_Q_G_SpectrumHandler{ @Override protected void handler() throws Exception { if(DataType.SAMPLEPHD.getType().equals(super.currDataType.getType())){ + //前置检查 + this.preCheck(); //打印当前处理的能谱类型 super.printCurrDataType(); //解析邮件内容 diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumHandler.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumHandler.java index 9cf54469..7a0e7b3a 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumHandler.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumHandler.java @@ -19,6 +19,8 @@ import java.util.Objects; public abstract class SpectrumHandler extends Chain{ private final static String DATA_TYPE_PREFIX = "DATA_TYPE "; + + protected final static String LOG_FILE_SUFFIX = ".log"; /** * 当前邮件信息 */ @@ -73,13 +75,14 @@ public abstract class SpectrumHandler extends Chain{ * 初始化参数 */ protected void initNext(SpectrumServiceQuotes spectrumServiceQuotes,File mailFile,DataType currDataType, - Message message,EmailProperties emailProperties,FTPUtils ftpUtil){ + Message message,EmailProperties emailProperties,FTPUtils ftpUtil,String mailContent){ this.spectrumServiceQuotes = spectrumServiceQuotes; this.mailFile = mailFile; this.currDataType = currDataType; this.message = message; this.emailProperties = emailProperties; this.ftpUtil = ftpUtil; + this.mailContent = mailContent; this.setChina(); } @@ -113,17 +116,20 @@ public abstract class SpectrumHandler extends Chain{ */ protected abstract void handlerOriginalData() throws Exception; + /** + * 把流程日志写入ftp日志文件 + */ + protected abstract void saveLogToFtp() throws FileNotFoundException; + + /** + * 打印当前能谱类型 + */ protected void printCurrDataType(){ log.info("----------------------------------"); log.info(this.currDataType.getType()); log.info("----------------------------------"); } - /** - * 把流程日志写入ftp日志文件 - */ - protected abstract void saveLogToFtp() throws FileNotFoundException; - /** * 把邮件内容存储到本地 */ 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 dd5af9a2..f4485823 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 @@ -3,6 +3,7 @@ package org.jeecg.modules.spectrum; import cn.hutool.core.io.FileUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.jeecg.common.constant.StringConstant; import org.jeecg.common.email.EmailServiceManager; import org.jeecg.common.properties.SpectrumPathProperties; import org.jeecg.common.util.DateUtils; @@ -111,6 +112,7 @@ public class SpectrumParsingActuator implements Runnable{ } catch (Exception e) { log.error(mailContent.toString()); log.error("邮件解析失败,邮件主题为:{},发送时间为:{},接收时间为:{},失败原因为:{}",subject,sendTime,receiveTime,e.getMessage()); + this.handleErrorLog(e); e.printStackTrace(); }finally { this.taskLatch.countDown(); @@ -156,27 +158,36 @@ public class SpectrumParsingActuator implements Runnable{ private void downloadEmailToFtp() throws Exception{ //获取发件人 final String address = ((InternetAddress) message.getFrom()[0]).getAddress(); - final String from = address.substring(0,address.indexOf("@")); + final String from = address.substring(0,address.indexOf(StringConstant.AT)); //获取主题 String subject = MimeUtility.decodeText(message.getSubject()); - if(subject.indexOf("/") != -1){ - subject = StringUtils.replace(subject,"/",""); + if(subject.indexOf(StringConstant.SLASH) != -1){ + subject = StringUtils.replace(subject,StringConstant.SLASH,""); } - if(subject.indexOf(":") != -1){ - subject = StringUtils.replace(subject,":",""); + if(subject.indexOf(StringConstant.COLON) != -1){ + subject = StringUtils.replace(subject,StringConstant.COLON,""); } StringBuilder fileName = new StringBuilder(); fileName.append(from); - fileName.append("_"); + fileName.append(StringConstant.UNDER_LINE); fileName.append(subject); - fileName.append("_"); + fileName.append(StringConstant.UNDER_LINE); fileName.append(DateUtils.formatDate(new Date(),"YYMMdd")); - fileName.append("_"); + fileName.append(StringConstant.UNDER_LINE); fileName.append(DateUtils.formatDate(new Date(),"HHMMSSSSS")); - fileName.append("_"); + fileName.append(StringConstant.UNDER_LINE); fileName.append(emailCounter.getCurrValue()); fileName.append(SAVE_EML_SUFFIX); ftpUtil.saveFile(spectrumPathProperties.getEmlPath(),fileName.toString(),message.getInputStream()); } + + /** + * 处理解析报错日志 + * @param e + */ + private void handleErrorLog(Exception e){ + StringBuilder logContent = new StringBuilder(); + + } } diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumServiceQuotes.java b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumServiceQuotes.java index f907e193..124ac66d 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumServiceQuotes.java +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/spectrum/SpectrumServiceQuotes.java @@ -44,4 +44,6 @@ public class SpectrumServiceQuotes { private final OraDataSourceProperties oraDataSourceProperties; + private final GardsSampleDataService sampleDataService; + } diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/entity/vo/StructInsertOutput.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/entity/vo/StructInsertOutput.java index f1bb26cb..155c5ce9 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/entity/vo/StructInsertOutput.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/entity/vo/StructInsertOutput.java @@ -1,11 +1,8 @@ package org.jeecg.modules.entity.vo; -import lombok.Data; - import java.io.Serializable; import java.util.List; -@Data public class StructInsertOutput implements Serializable { //-----------------output:------------------ diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/common/CalculateDataRateThread.java b/jeecg-module-station-operation/src/main/java/org/jeecg/common/CalculateDataRateThread.java index 662fae54..e831dd38 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/common/CalculateDataRateThread.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/common/CalculateDataRateThread.java @@ -61,6 +61,7 @@ public class CalculateDataRateThread implements Runnable{ calculateDataRate.setParameter(mRateparam); //根据台站编码 查询 台站信息 StationInfo stationInfo = calCulStationDataService.getStationInfo(originalstationsinfo.getStationCode()); + stationInfo.setUsed(calCulStationDataService.getUsed(Integer.valueOf(stationInfo.getId()))); //赋值台站信息 calculateDataRate.setMStationId(stationInfo.getId()); calculateDataRate.setMStationCode(stationInfo.getStationCode()); diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/CalCulStationInfoMapper.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/CalCulStationInfoMapper.java index 508da7b0..cf730183 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/CalCulStationInfoMapper.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/CalCulStationInfoMapper.java @@ -4,6 +4,8 @@ import org.apache.ibatis.annotations.Param; import org.jeecg.modules.entity.data.ProvisionData; import org.jeecg.modules.entity.data.StationInfo; +import java.util.List; + public interface CalCulStationInfoMapper { StationInfo getStationInfo(@Param("stationCode") String stationCode); @@ -62,4 +64,6 @@ public interface CalCulStationInfoMapper { ProvisionData findSphdMetSohProvisionParticulate(@Param("SPHD_NUM") String SPHD_NUM, @Param("MET_NUM") String MET_NUM, @Param("curDateTime") String curDateTime, @Param("pretime") String pretime, @Param("sphdMetSoh") String sphdMetSoh, @Param("stationId") String stationId); + List getUsed(Integer stationId); + } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/calCulStationInfoMapper.xml b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/calCulStationInfoMapper.xml index 678504e9..52081c98 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/calCulStationInfoMapper.xml +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/calCulStationInfoMapper.xml @@ -395,4 +395,8 @@ + + \ No newline at end of file diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICalCulStationDataService.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICalCulStationDataService.java index b00184da..ac504a1f 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICalCulStationDataService.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICalCulStationDataService.java @@ -61,4 +61,6 @@ public interface ICalCulStationDataService { ProvisionData findSphdMetSohProvisionParticulate(String SPHD_NUM, String MET_NUM, String curDateTime, String pretime, String sphdMetSoh,String stationId); + String getUsed(Integer stationId); + } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/CalCulStationInfoServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/CalCulStationInfoServiceImpl.java index 2db7a7da..cdade4d4 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/CalCulStationInfoServiceImpl.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/CalCulStationInfoServiceImpl.java @@ -1,12 +1,18 @@ package org.jeecg.modules.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import org.jeecg.modules.entity.data.ProvisionData; import org.jeecg.modules.entity.data.StationInfo; import org.jeecg.modules.mapper.CalCulStationInfoMapper; import org.jeecg.modules.service.ICalCulStationDataService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Objects; @Service("calCulStationDataService") @DS("ora") @@ -440,5 +446,13 @@ public class CalCulStationInfoServiceImpl implements ICalCulStationDataService { return sphdMetSohProvision; } + @Override + @Transactional(propagation = Propagation.REQUIRES_NEW) + public String getUsed(Integer stationId){ + List detectorIds = calCulStationInfoMapper.getUsed(stationId); + String result = CollectionUtils.isNotEmpty(detectorIds) ? "YES" : "NO"; + return result; + } + }