diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisInterceptor.java b/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisInterceptor.java index 90cca20b..67f143f1 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisInterceptor.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisInterceptor.java @@ -70,6 +70,16 @@ public class MybatisInterceptor implements Interceptor { field.setAccessible(false); } } + if ("moddate".equalsIgnoreCase(field.getName())) { + field.setAccessible(true); + Object localCreateDate = field.get(parameter); + field.setAccessible(false); + if (localCreateDate == null || "".equals(localCreateDate)) { + field.setAccessible(true); + field.set(parameter, new Date()); + field.setAccessible(false); + } + } //注入部门编码 if ("sysOrgCode".equals(field.getName())) { field.setAccessible(true); diff --git a/jeecg-module-abnormal-alarm/pom.xml b/jeecg-module-abnormal-alarm/pom.xml index af014153..ad179798 100644 --- a/jeecg-module-abnormal-alarm/pom.xml +++ b/jeecg-module-abnormal-alarm/pom.xml @@ -51,6 +51,11 @@ + + com.jcraft + jsch + 0.1.55 + \ No newline at end of file diff --git a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/mapper/xml/StatReportMapper.xml b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/mapper/xml/StatReportMapper.xml index db1b942c..cf074343 100644 --- a/jeecg-module-auto-process/src/main/java/org/jeecg/modules/mapper/xml/StatReportMapper.xml +++ b/jeecg-module-auto-process/src/main/java/org/jeecg/modules/mapper/xml/StatReportMapper.xml @@ -3,54 +3,61 @@ \ No newline at end of file diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/SpectrumAnalysisPostgresMapper.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/SpectrumAnalysisPostgresMapper.java new file mode 100644 index 00000000..d5b6a467 --- /dev/null +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/SpectrumAnalysisPostgresMapper.java @@ -0,0 +1,199 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.base.entity.configuration.GardsDetectors; +import org.jeecg.modules.base.entity.configuration.GardsNuclLib; +import org.jeecg.modules.base.entity.configuration.GardsNuclLinesLib; +import org.jeecg.modules.base.entity.original.GardsSampleData; +import org.jeecg.modules.base.entity.rnman.*; +import org.jeecg.modules.entity.*; +import org.jeecg.modules.entity.vo.*; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface SpectrumAnalysisPostgresMapper { + List getDBSearchList(String dbName, List stationTypes, List userStations, boolean AllUsers); + + Page getDBSpectrumList(IPage page, GardsSampleDataSpectrum gardsSampleData, String dbName, List stationTypes, boolean CollectStopB, boolean AcqStartB, String startTime, String endTime, List userStations, boolean AllUsers, String orderField, String orderType); + + Page getDBSpectrumListByLeftJoin(IPage page, + GardsSampleDataSpectrum gardsSampleData, String dbName, + List stationTypes, boolean CollectStopB, + boolean AcqStartB, String startTime, String endTime, + List userStations, boolean AllUsers, + String orderField, String orderType); + + Page loadSampleData(IPage page, GardsSampleDataSpectrum gardsSampleData, List stationTypes, boolean CollectStopB, boolean AcqStartB, String startTime, String endTime, List userStations, boolean AllUsers, String orderField, String orderType); + + SpectrumFileRecord getDBSpectrumFilePath(String dbName, Integer sampleId, Integer analysisID); + + List getXeDataList(Integer sampleId); + + String getQCFilePath(String siteDetCode, String collectStartStr); + + CommentData viewComment(@Param(value = "sampleId") Integer sampleId); + + String getSampleFilePath(@Param(value = "sampleId") Integer sampleId); + + Integer findStationIdBySampleId(@Param(value = "sampleId") Integer sampleId); + + String viewARR(@Param(value = "sampleId") Integer sampleId); + + String viewRRR(@Param(value = "sampleId") Integer sampleId); + + GardsSampleDataSpectrum getSampleData(@Param(value = "sampleId") Integer sampleId); + + GardsSampleDataSpectrum findSampleByFilePath(@Param(value = "filePath") String filePath); + + List getDetectorList(@Param(value = "stationId") Integer stationId); + + List statisticsQueryNuclides(@Param(value = "statisticsQueryData") + StatisticsQueryData statisticsQueryData); + + List statisticsQueryCollection(String startDate, String endDate, List detectorList); + + List statisticsQueryAcquisition(String startDate, String endDate, List detectorList); + + List statisticsQueryXeVolumn(String startDate, String endDate, List detectorList); + + List statisticsQuerySampleVolumn(String startDate, String endDate, List detectorList); + + String getStatus(@Param(value = "sampleId") Integer sampleId); + + GardsAnalysesSpectrum getAnalysis(@Param(value = "dbName") String dbName, @Param(value = "sampleId") Integer sampleId, @Param(value = "userName") String userName); + + List getPeaks(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis); + + List getCalibrationPairs(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis); + + List getPara(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis); + + List getNuclLinesIded(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis); + + List getNuclIded(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis); + + List getQcCheck(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis); + + List getMDC(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis); + + GardsAnalySetting getAnalySetting(@Param(value = "idAnalysis") Integer idAnalysis); + + List getNuclideLines(@Param(value = "name") String name); + + List getHalf(@Param(value = "names") List names); + + HalfData getOneHalf(@Param(value = "name") String name); + + List UserNuclide(@Param(value = "systemType") String systemType, @Param(value = "userName") String userName); + + Integer getAnalysisID(@Param(value = "dbName") String dbName, @Param(value = "sampleId") Integer sampleId, @Param(value = "userName") String userName); + + List ReadGammaFitChannelEnergy(@Param(value = "idAnalysis") Integer idAnalysis); + + List ReadGammaCalibrationParam(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis); + + List ReadBetaFitChannelEnergy(@Param(value = "idAnalysis") Integer idAnalysis); + + List ReadBetaCalibrationParam(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis); + + List ReadROIChannels(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis, @Param(value = "sampleId") Integer sampleId); + + List ReadROIResults(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis, @Param(value = "sampleId") Integer sampleId); + + List ReadXeResults(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis, @Param(value = "sampleId") Integer sampleId); + + List getUserNuclideNames(@Param(value = "nuclides") List nuclides, @Param(value = "min") Double min, @Param(value = "max") Double max); + + List getFULLNuclideNames(@Param(value = "min") Double min, @Param(value = "max") Double max); + + List getRelevantNuclideNames(@Param(value = "min") Double min, @Param(value = "max") Double max); + + List getNuclideNames(@Param(value = "dbName") String dbName); + + List getNuclideLine(@Param(value = "min") Double min, @Param(value = "max") Double max, @Param(value = "name") String name); + + GardsNuclLib getNuclideInfo(@Param(value = "name") String name); + + GardsNuclLib getParentAndDaughter(@Param(value = "name") String name); + + String findAutomaticLogPath(@Param(value = "sampleId") Integer sampleId); + + List findNuclideList(@Param(value = "min") Double min, @Param(value = "max") Double max, @Param(value = "nuclides") List nuclides); + + List getNuclideTable(@Param(value = "name") String name, @Param(value = "span") Long span); + + List getPossibleNuclide(@Param(value = "nuclides") List nuclides, @Param(value = "min") double min, @Param(value = "max") double max); + + Integer SampleIsExist(@Param(value = "filePathName") String filePathName, @Param(value = "userName") String userName); + + GardsSampleData findSampleByFile(@Param(value = "filePathName") String filePathName); + + void updateAnalysesStatus(String filePathName); + + Integer getStationId(String stationName); + + Integer getDetectorId(String detectorName); + + Integer getSampleId(@Param(value = "filePathName") String filePathName); + + void updateGardsAnalyses(@Param(value = "gardsAnalyses") GardsAnalysesSpectrum gardsAnalyses); + + void insertGardsAnalyses(@Param(value = "gardsAnalyses") GardsAnalysesSpectrum gardsAnalyses); + + void deleteCalibrationPairs(Integer idAnalysis); + + @InterceptorIgnore(tenantLine = "true") + void insertCalibrationPairs(@Param(value = "calibrationPairs") + GardsCalibrationPairs calibrationPairs); + + void deleteCalibration(Integer idAnalysis); + + @InterceptorIgnore(tenantLine = "true") + void insertCalibration(@Param(value = "calibration") GardsCalibration calibration); + + void deleteROIChannels(Integer idAnalysis); + + @InterceptorIgnore(tenantLine = "true") + void insertROIChannels(@Param(value = "roiChannels") GardsRoiChannels roiChannels); + + void deleteXeResult(Integer idAnalysis); + + @InterceptorIgnore(tenantLine = "true") + void insertXeResult(@Param(value = "xeResult") GardsXeResults xeResult); + + void deleteROIResults(Integer idAnalysis); + + @InterceptorIgnore(tenantLine = "true") + void insertROIResults(@Param(value = "roiResultsSpectrum") GardsRoiResults roiResultsSpectrum); + + String getIdAnalysisByIdAnalyst(@Param(value = "sampleId") String sampleId, @Param(value = "userName") String userName); + + void deletePeaks(Integer idAnalysis); + + void deleteNuclLines(Integer idAnalysis); + + void deleteNucl(Integer idAnalysis); + + void deleteQCCheck(Integer idAnalysis); + + void deleteMDC(Integer idAnalysis); + + void deleteAnalySetting(Integer idAnalysis); + + Integer getSampleIdLikeFileName(@Param(value = "fileName") String fileName); + + List findNuclidesAnalysis(); + + List> selectThresholdDataBySampleId(@Param("schemaName") String schemaName, @Param("sampleId") String sampleId); + + List selectThresholdHistoryBySampleId(@Param("schemaName") String schemaName, @Param("sampleId") String sampleId); + + List selectXeDataPastYear( @Param("schemaName") String schemaName, @Param("sampleId") String sampleId,@Param(value = "userName") String userName); + +} diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/SpectrumAnalysisMapper.xml b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/SpectrumAnalysisMapper.xml index a295135e..9b34b0f1 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/SpectrumAnalysisMapper.xml +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/mapper/xml/SpectrumAnalysisMapper.xml @@ -127,7 +127,14 @@ left JOIN CONFIGURATION.GARDS_DETECTORS a on c.detector_id = a.detector_id left JOIN CONFIGURATION.GARDS_STATIONS b on c.station_id = b.station_id - c.data_type = 'S' + + + and c.data_type = #{gardsSampleData.dataType} + + + and c.data_type = 'S' + + and c.sample_id = #{gardsSampleData.sampleId} @@ -140,9 +147,6 @@ and c.sample_type = #{gardsSampleData.sampleType} - - and c.data_type = #{gardsSampleData.dataType} - and c.spectral_qualifie = #{gardsSampleData.spectralQualifie} @@ -512,14 +516,14 @@ + SELECT + DISTINCT + cfg_stations.station_code stationName, + cfg_detectors.detector_code detectorsName + FROM + ORIGINAL.GARDS_SAMPLE_DATA org_samples + inner join CONFIGURATION.GARDS_STATIONS cfg_stations on org_samples.station_id=cfg_stations.station_id + inner join CONFIGURATION.GARDS_DETECTORS cfg_detectors on org_samples.detector_id=cfg_detectors.detector_id + inner join ${dbName} analyses_sample_ids on org_samples.sample_id=analyses_sample_ids.sample_id + + cfg_stations.type in + + #{stationType} + + + + and org_samples.station_id in ('') + + + and org_samples.station_id in + + #{userStation} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + UPDATE ORIGINAL.GARDS_SAMPLE_DATA A SET A.STATUS='R' WHERE INPUT_FILE_NAME=#{filePathName} + + + + + + + + + + UPDATE + RNMAN.GARDS_ANALYSES + SET + ANALYSISBEGIN=TO_TIMESTAMP(#{gardsAnalyses.analysisBeginStr},'YYYY-MM-DD hh24:mi:ss'), + ANALYSISEND=TO_TIMESTAMP(#{gardsAnalyses.analysisEndStr},'YYYY-MM-DD hh24:mi:ss'), + TYPE=#{gardsAnalyses.type}, + SOFTWARE=#{gardsAnalyses.software}, + SWVERSION=#{gardsAnalyses.swVersion}, + CATEGORY=#{gardsAnalyses.category}, + COMMENTS=#{gardsAnalyses.comments}, + USEDGASPHD=#{gardsAnalyses.usedgasphd}, + USEDDETPHD=#{gardsAnalyses.useddetphd}, + USEDGASPHD_ID=#{gardsAnalyses.usedgasphdId}, + USEDDETPHD_ID=#{gardsAnalyses.useddetphdId}, + LOG_PATH = #{gardsAnalyses.logPath}, + REPORT_PAHT = #{gardsAnalyses.reportPath} + WHERE + SAMPLE_ID=#{gardsAnalyses.sampleId} + AND ANALYST=#{gardsAnalyses.analyst} + + + + INSERT INTO + RNMAN.GARDS_ANALYSES( + SAMPLE_ID, + ANALYSISBEGIN, + ANALYSISEND, + TYPE, + SOFTWARE, + SWVERSION, + ANALYST, + CATEGORY, + COMMENTS, + USEDGASPHD, + USEDDETPHD, + USEDGASPHD_ID, + USEDDETPHD_ID, + LOG_PATH, + REPORT_PAHT) + VALUES(#{gardsAnalyses.sampleId}, + TO_TIMESTAMP(#{gardsAnalyses.analysisBeginStr},'YYYY-MM-DD hh24:mi:ss'), + TO_TIMESTAMP(#{gardsAnalyses.analysisEndStr},'YYYY-MM-DD hh24:mi:ss'), + #{gardsAnalyses.type}, + #{gardsAnalyses.software}, + #{gardsAnalyses.swVersion}, + #{gardsAnalyses.analyst}, + #{gardsAnalyses.category}, + #{gardsAnalyses.comments}, + #{gardsAnalyses.usedgasphd}, + #{gardsAnalyses.useddetphd}, + #{gardsAnalyses.usedgasphdId}, + #{gardsAnalyses.useddetphdId}, + #{gardsAnalyses.logPath}, + #{gardsAnalyses.reportPath}) + + + + DELETE FROM RNMAN.GARDS_CALIBRATION_PAIRS WHERE IDANALYSIS=#{idAnalysis} + + + + INSERT INTO + RNMAN.GARDS_CALIBRATION_PAIRS(SAMPLE_ID,IDANALYSIS,SAMPLE_TYPE,CALTYPE,INPUT,IDCALPOINT,XVALUE,YVALUE) + VALUES + (#{calibrationPairs.sampleId},#{calibrationPairs.idAnalysis},#{calibrationPairs.sampleType},#{calibrationPairs.caltype},#{calibrationPairs.input},#{calibrationPairs.idCalPoint},#{calibrationPairs.xValue},#{calibrationPairs.yValue}) + + + + DELETE FROM RNMAN.GARDS_CALIBRATION WHERE IDANALYSIS=#{idAnalysis} + + + + INSERT INTO + RNMAN.GARDS_CALIBRATION( + SAMPLE_ID, + IDANALYSIS, + SAMPLE_TYPE, + CALTYPE, + FUNCTION, + FUNCTIONDEF, + STARTOFRANGE, + ENDOFRANGE, + COEFF1, + COEFF2, + COEFF3) + VALUES(#{calibration.sampleId}, + #{calibration.idAnalysis}, + #{calibration.sampleType}, + #{calibration.calType}, + #{calibration.function}, + #{calibration.functionDef}, + #{calibration.startOfRange}, + #{calibration.endOfRange}, + #{calibration.coeff1}, + #{calibration.coeff2}, + #{calibration.coeff3}) + + + + + DELETE FROM RNMAN.GARDS_ROI_CHANNELS WHERE IDANALYSIS=#{idAnalysis} + + + + INSERT INTO + RNMAN.GARDS_ROI_CHANNELS( + SAMPLE_ID, + IDANALYSIS, + ROI, + B_CHAN_START, + B_CHAN_STOP, + G_CHAN_START, + G_CHAN_STOP) + VALUES(#{roiChannels.sampleId}, + #{roiChannels.idAnalysis}, + #{roiChannels.roi}, + #{roiChannels.bChanStart}, + #{roiChannels.bChanStop}, + #{roiChannels.gChanStart}, + #{roiChannels.gChanStop}) + + + + DELETE FROM RNMAN.GARDS_XE_RESULTS WHERE IDANALYSIS=#{idAnalysis} + + + + INSERT INTO + RNMAN.GARDS_XE_RESULTS(SAMPLE_ID, + IDANALYSIS, + NUCLIDE_NAME, + CONC, + CONC_ERR, + MDC, + LC, + NID_FLAG) + VALUES(#{xeResult.sampleId}, + #{xeResult.idAnalysis}, + #{xeResult.nuclideName}, + #{xeResult.conc}, + #{xeResult.concErr}, + #{xeResult.mdc}, + #{xeResult.lc}, + #{xeResult.nidFlag}) + + + + DELETE FROM RNMAN.GARDS_ROI_RESULTS WHERE IDANALYSIS=#{idAnalysis} + + + + INSERT INTO + RNMAN.GARDS_ROI_RESULTS(SAMPLE_ID, + IDANALYSIS, + ROI, + LC, + S_GROSS, + G_GROSS, + B_GROSS, + S_NET, + G_NET, + NET, + NET_ERR, + CONC, + CONC_ERR, + MDC, + NID_FLAG) + VALUES(#{roiResultsSpectrum.sampleId}, + #{roiResultsSpectrum.idAnalysis}, + #{roiResultsSpectrum.roi}, + #{roiResultsSpectrum.lc}, + #{roiResultsSpectrum.sGross}, + #{roiResultsSpectrum.gGross}, + #{roiResultsSpectrum.bGross}, + #{roiResultsSpectrum.sNet}, + #{roiResultsSpectrum.gNet}, + #{roiResultsSpectrum.net}, + #{roiResultsSpectrum.netErr}, + #{roiResultsSpectrum.conc}, + #{roiResultsSpectrum.concErr}, + #{roiResultsSpectrum.mdc}, + #{roiResultsSpectrum.nidFlag}) + + + + + + DELETE FROM RNMAN.GARDS_PEAKS WHERE IDANALYSIS= #{idAnalysis} + + + + DELETE FROM RNMAN.GARDS_NUCL_LINES_IDED WHERE IDANALYSIS= #{idAnalysis} + + + + DELETE FROM RNMAN.GARDS_NUCL_IDED WHERE IDANALYSIS= #{idAnalysis} + + + + DELETE FROM RNMAN.GARDS_QC_CHECK WHERE IDANALYSIS= #{idAnalysis} + + + + DELETE FROM RNMAN.GARDS_MDC WHERE IDANALYSIS= #{idAnalysis} + + + + DELETE FROM RNMAN.GARDS_ANALY_SETTING WHERE IDANALYSIS= #{idAnalysis} + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GammaServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GammaServiceImpl.java index 4612beab..8e3588ce 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GammaServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GammaServiceImpl.java @@ -9,7 +9,9 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ReUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; +import com.baomidou.dynamic.datasource.DynamicRoutingDataSource; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -47,6 +49,7 @@ import org.jeecg.modules.base.service.ISampleGradingService; import org.jeecg.modules.entity.vo.*; import org.jeecg.modules.entity.*; import org.jeecg.modules.mapper.SpectrumAnalysisMapper; +import org.jeecg.modules.mapper.SpectrumAnalysisPostgresMapper; import org.jeecg.modules.native_jni.CalValuesHandler; import org.jeecg.modules.native_jni.struct.CalValuesOut; import org.jeecg.modules.service.*; @@ -59,9 +62,11 @@ import org.springframework.web.multipart.MultipartFile; import org.w3c.dom.*; import org.xml.sax.SAXException; +import javax.annotation.PostConstruct; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.sql.DataSource; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; @@ -166,8 +171,24 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi @Autowired private IRnManGardsThresholdService gardsThresholdService; + @Autowired + private SpectrumAnalysisPostgresMapper postgresMapper; + @Autowired + private DataSource dataSource; + private DbType databaseType; + + @PostConstruct + public void initDbType() throws SQLException { + DynamicRoutingDataSource ds = (DynamicRoutingDataSource) dataSource; + String databaseProductName = + ds.getDataSource("ora").getConnection().getMetaData().getDatabaseProductName(); + databaseType = DbType.getDbType(databaseProductName); + + } + @Override - public void initValue(Integer sampleId, String dbName, String analyst, String samfileName, HttpServletRequest request) { + public void initValue(Integer sampleId, String dbName, String analyst, String samfileName, + HttpServletRequest request) { if (Objects.nonNull(sampleId) && StringUtils.isNotBlank(dbName)) { gammaByDB(dbName, sampleId, analyst, request); } else { @@ -176,7 +197,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result gammaByDB(String dbName, Integer sampleId, String analyst, HttpServletRequest request) { + public Result gammaByDB(String dbName, Integer sampleId, String analyst, + HttpServletRequest request) { Result result = new Result(); // 通过token获取用户名 String userName = JwtUtil.getUserNameByToken(request); @@ -191,9 +213,13 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi return result; } // 切割数据库存储的文件路径获取路径信息 - String pathName = spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + sampleFilePath.substring(0, sampleFilePath.lastIndexOf(StringPool.SLASH)); + String pathName = + spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + + StringPool.SLASH + + sampleFilePath.substring(0, sampleFilePath.lastIndexOf(StringPool.SLASH)); // 切割数据库存储的文件路径获取文件名称 - String fileName = sampleFilePath.substring(sampleFilePath.lastIndexOf(StringPool.SLASH) + 1); + String fileName = + sampleFilePath.substring(sampleFilePath.lastIndexOf(StringPool.SLASH) + 1); // 声明phd实体类 PHDFile phd = phdCache.getIfPresent(fileName + StringPool.DASH + userName); if (Objects.isNull(phd)) { @@ -213,15 +239,21 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } // 从数据库中读取phd其他相关信息 boolean bRet = getResultFromDB(dbName, analyst, sampleId, phd, result); - if (!redisUtil.hasKey(userName + StringPool.DASH + phd.getHeader().getSystem_type()) || !redisUtil.hasKey(userName + StringPool.DASH + phd.getHeader().getSystem_type() + "-list")) { + if (!redisUtil.hasKey(userName + StringPool.DASH + phd.getHeader().getSystem_type()) || + !redisUtil.hasKey( + userName + StringPool.DASH + phd.getHeader().getSystem_type() + + "-list")) { //读取缓存的全部核素信息 - Map allNuclideMap = (Map) redisUtil.get("AllNuclideMap"); + Map allNuclideMap = + (Map) redisUtil.get("AllNuclideMap"); // 查询当前用户关联的核素信息 List userLib = new LinkedList<>(); // 从postgreSql中获取当前用户关注的核素信息 如果当前用户没有 则返回管理员的 - userLib = defaultNuclideSpectrumService.findNuclidesByUserName(userName, phd.getHeader().getSystem_type().toUpperCase()); + userLib = defaultNuclideSpectrumService.findNuclidesByUserName(userName, + phd.getHeader().getSystem_type().toUpperCase()); if (CollectionUtils.isEmpty(userLib)) { - userLib = defaultNuclideSpectrumService.findNuclidesByUserName("admin", phd.getHeader().getSystem_type().toUpperCase()); + userLib = defaultNuclideSpectrumService.findNuclidesByUserName("admin", + phd.getHeader().getSystem_type().toUpperCase()); } userLib = userLib.stream().sorted().collect(Collectors.toList()); Map nuclideMap = new HashMap<>(); @@ -230,18 +262,23 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi nuclideMap.put(entry.getKey(), entry.getValue()); } } - redisUtil.set(userName + StringPool.DASH + phd.getHeader().getSystem_type() + "-list", userLib); - redisUtil.set(userName + StringPool.DASH + phd.getHeader().getSystem_type(), nuclideMap); + redisUtil.set( + userName + StringPool.DASH + phd.getHeader().getSystem_type() + "-list", + userLib); + redisUtil.set(userName + StringPool.DASH + phd.getHeader().getSystem_type(), + nuclideMap); } //缓存phd谱的核素信息 - Map phdNuclideMap = (Map) redisUtil.get(userName + StringPool.DASH + phd.getHeader().getSystem_type()); + Map phdNuclideMap = (Map) redisUtil.get( + userName + StringPool.DASH + phd.getHeader().getSystem_type()); phd.setPhdNuclideMap(phdNuclideMap); // 判断数据库信息是否读取正常 if (!bRet) { return result; } //读取redis缓存的计算mdc信息 - Map mdcInfoMap = (Map) redisUtil.get("mdcInfoMap-" + phd.getHeader().getSystem_type()); + Map mdcInfoMap = (Map) redisUtil.get( + "mdcInfoMap-" + phd.getHeader().getSystem_type()); //如果是数据库加载 判断如果mdc计算结果是空的 就加入新的 否则使用数据库加载的mdc数据 if (CollectionUtils.isEmpty(phd.getMdcInfoMap())) { if (CollectionUtils.isNotEmpty(mdcInfoMap)) { @@ -270,10 +307,12 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi List detailedInfo = gammaFileUtil.DetailedInfo(String.valueOf(sampleId), phd); map.put("DetailedInformation", detailedInfo); // 更新 ACQ 模块中各时间信息 - map.put("start_time", phd.getAcq().getAcquisition_start_date() + "\n" + phd.getAcq().getAcquisition_start_time()); + map.put("start_time", phd.getAcq().getAcquisition_start_date() + "\n" + + phd.getAcq().getAcquisition_start_time()); map.put("real_time", String.format("%.2f", phd.getAcq().getAcquisition_real_time())); map.put("live_time", String.format("%.2f", phd.getAcq().getAcquisition_live_time())); - double deadTime = (phd.getAcq().getAcquisition_real_time() - phd.getAcq().getAcquisition_live_time()) / phd.getAcq().getAcquisition_real_time(); + double deadTime = (phd.getAcq().getAcquisition_real_time() - + phd.getAcq().getAcquisition_live_time()) / phd.getAcq().getAcquisition_real_time(); map.put("dead_time", String.format("%.2f", deadTime * 100)); map.put("checkBox_updateCal", phd.getSetting().isBUpdateCal()); map.put("bAnalyed", phd.isBAnalyed()); @@ -291,7 +330,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi return result; } - public boolean getResultFromDB(String dbName, String userName, Integer sampleId, PHDFile phd, Result result) { + public boolean getResultFromDB(String dbName, String userName, Integer sampleId, PHDFile phd, + Result result) { // 判断连接的数据库 String T_analy = ""; String T_calib = ""; @@ -335,14 +375,18 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } // 获取 ananlysis_id、BaseLine、Lc、Scac、峰数量、Category、谱注释等信息 - GardsAnalysesSpectrum analysis = spectrumAnalysisMapper.getAnalysis(T_analy, sampleId, userName); + GardsAnalysesSpectrum analysis = + spectrumAnalysisMapper.getAnalysis(T_analy, sampleId, userName); int peakNum = 0; if (Objects.nonNull(analysis)) { phd.setId_analysis(analysis.getIdAnalysis().toString()); - phd.setBaseline_path(spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + analysis.getBaselinePath()); - phd.setLc_path(spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + analysis.getLcPath()); - phd.setScac_path(spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + analysis.getScacPath()); - if (analysis.getCategory()!=null){ + phd.setBaseline_path(spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + + analysis.getBaselinePath()); + phd.setLc_path(spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + + analysis.getLcPath()); + phd.setScac_path(spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + + analysis.getScacPath()); + if (analysis.getCategory() != null) { phd.setCategory(analysis.getCategory().toString()); } peakNum = analysis.getNumberOfPeaks(); @@ -357,42 +401,63 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi if (peakNum > 0) { // 获取峰信息列表 - List peaks = spectrumAnalysisMapper.getPeaks(T_peaks, analysis.getIdAnalysis()); + List peaks = + spectrumAnalysisMapper.getPeaks(T_peaks, analysis.getIdAnalysis()); if (CollectionUtils.isNotEmpty(peaks)) { for (GardsPeaksSpectrum peaksSpectrum : peaks) { PeakInfo peakInfo = new PeakInfo(); - peakInfo.index = peaksSpectrum.getIdPeak() == null ? 0 : peaksSpectrum.getIdPeak(); - peakInfo.multiIndex = peaksSpectrum.getMulitiIndex() == null ? 0 : peaksSpectrum.getMulitiIndex().intValue(); - peakInfo.left = peaksSpectrum.getRoiStart() == null ? 0 : peaksSpectrum.getRoiStart().intValue(); - peakInfo.right = peaksSpectrum.getRoiEnd() == null ? 0 : peaksSpectrum.getRoiEnd().intValue(); - peakInfo.peakCentroid = peaksSpectrum.getCentroidChannel() == null ? 0 : peaksSpectrum.getCentroidChannel(); - peakInfo.energy = peaksSpectrum.getEnergy() == null ? 0 : peaksSpectrum.getEnergy(); + peakInfo.index = + peaksSpectrum.getIdPeak() == null ? 0 : peaksSpectrum.getIdPeak(); + peakInfo.multiIndex = peaksSpectrum.getMulitiIndex() == null ? 0 : + peaksSpectrum.getMulitiIndex().intValue(); + peakInfo.left = peaksSpectrum.getRoiStart() == null ? 0 : + peaksSpectrum.getRoiStart().intValue(); + peakInfo.right = peaksSpectrum.getRoiEnd() == null ? 0 : + peaksSpectrum.getRoiEnd().intValue(); + peakInfo.peakCentroid = peaksSpectrum.getCentroidChannel() == null ? 0 : + peaksSpectrum.getCentroidChannel(); + peakInfo.energy = + peaksSpectrum.getEnergy() == null ? 0 : peaksSpectrum.getEnergy(); peakInfo.fwhmc = peaksSpectrum.getFwtm() == null ? 0 : peaksSpectrum.getFwtm(); peakInfo.fwhm = peaksSpectrum.getFwhm() == null ? 0 : peaksSpectrum.getFwhm(); peakInfo.area = peaksSpectrum.getArea() == null ? 0 : peaksSpectrum.getArea(); - peakInfo.areaErr = peaksSpectrum.getUncArea() == null ? 0 : peaksSpectrum.getUncArea(); - peakInfo.efficiency = peaksSpectrum.getEfficiency() == null ? 0 : peaksSpectrum.getEfficiency(); + peakInfo.areaErr = + peaksSpectrum.getUncArea() == null ? 0 : peaksSpectrum.getUncArea(); + peakInfo.efficiency = peaksSpectrum.getEfficiency() == null ? 0 : + peaksSpectrum.getEfficiency(); peakInfo.lc = peaksSpectrum.getLc() == null ? 0 : peaksSpectrum.getLc(); peakInfo.ld = peaksSpectrum.getLd() == null ? 0 : peaksSpectrum.getLd(); - peakInfo.meanBackCount = peaksSpectrum.getMeanbackcount() == null ? 0 : peaksSpectrum.getMeanbackcount(); - peakInfo.backgroundArea = peaksSpectrum.getBackgroundarea() == null ? 0 : peaksSpectrum.getBackgroundarea(); - peakInfo.significance = peaksSpectrum.getSignificance() == null ? Double.NaN : peaksSpectrum.getSignificance(); - peakInfo.sensitivity = peaksSpectrum.getSensitivity() == null ? Double.NaN : peaksSpectrum.getSensitivity(); - peakInfo.stepRatio = peaksSpectrum.getStepraio() == null ? 0 : peaksSpectrum.getStepraio(); + peakInfo.meanBackCount = peaksSpectrum.getMeanbackcount() == null ? 0 : + peaksSpectrum.getMeanbackcount(); + peakInfo.backgroundArea = peaksSpectrum.getBackgroundarea() == null ? 0 : + peaksSpectrum.getBackgroundarea(); + peakInfo.significance = peaksSpectrum.getSignificance() == null ? Double.NaN : + peaksSpectrum.getSignificance(); + peakInfo.sensitivity = peaksSpectrum.getSensitivity() == null ? Double.NaN : + peaksSpectrum.getSensitivity(); + peakInfo.stepRatio = + peaksSpectrum.getStepraio() == null ? 0 : peaksSpectrum.getStepraio(); peakInfo.tail = peaksSpectrum.getTail() == null ? 0 : peaksSpectrum.getTail(); - peakInfo.tailAlpha = peaksSpectrum.getTailAlpha() == null ? 0 : peaksSpectrum.getTailAlpha(); - peakInfo.upperTail = peaksSpectrum.getUpperTail() == null ? 0 : peaksSpectrum.getUpperTail(); - peakInfo.upperTailAlpha = peaksSpectrum.getUpperTailAlpha() == null ? 0 : peaksSpectrum.getUpperTailAlpha(); - peakInfo.BWWidthChan = peaksSpectrum.getBwwidthchan() == null ? Double.NaN : peaksSpectrum.getBwwidthchan(); + peakInfo.tailAlpha = + peaksSpectrum.getTailAlpha() == null ? 0 : peaksSpectrum.getTailAlpha(); + peakInfo.upperTail = + peaksSpectrum.getUpperTail() == null ? 0 : peaksSpectrum.getUpperTail(); + peakInfo.upperTailAlpha = peaksSpectrum.getUpperTailAlpha() == null ? 0 : + peaksSpectrum.getUpperTailAlpha(); + peakInfo.BWWidthChan = peaksSpectrum.getBwwidthchan() == null ? Double.NaN : + peaksSpectrum.getBwwidthchan(); peakInfo.recoilBetaChan = "nan"; - peakInfo.recoilDeltaChan = peaksSpectrum.getRecoildeltachan() == null ? "nan" : String.valueOf(peaksSpectrum.getRecoildeltachan()); - peakInfo.comments = StringUtils.isNotBlank(peaksSpectrum.getPeakcomments()) ? peaksSpectrum.getPeakcomments() : ""; + peakInfo.recoilDeltaChan = peaksSpectrum.getRecoildeltachan() == null ? "nan" : + String.valueOf(peaksSpectrum.getRecoildeltachan()); + peakInfo.comments = StringUtils.isNotBlank(peaksSpectrum.getPeakcomments()) ? + peaksSpectrum.getPeakcomments() : ""; phd.getVPeak().add(peakInfo); } } } // 获取刻度点数据 - List calibrationPairs = spectrumAnalysisMapper.getCalibrationPairs(T_calib, analysis.getIdAnalysis()); + List calibrationPairs = + spectrumAnalysisMapper.getCalibrationPairs(T_calib, analysis.getIdAnalysis()); if (CollectionUtils.isNotEmpty(calibrationPairs)) { GEnergyBlock gEnergyBlock = new GEnergyBlock(); GResolutionBlock gResolutionBlock = new GResolutionBlock(); @@ -404,22 +469,30 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi phd.setUsedEner(pairsSpectrum.getInput()); gEnergyBlock.getCentroid_channel().add(pairsSpectrum.getXValue()); gEnergyBlock.getG_energy().add(pairsSpectrum.getYValue()); - gEnergyBlock.getUncertainty().add(StringUtils.isBlank(pairsSpectrum.getUncYValue()) ? 0 : Double.valueOf(pairsSpectrum.getUncYValue())); + gEnergyBlock.getUncertainty() + .add(StringUtils.isBlank(pairsSpectrum.getUncYValue()) ? 0 : + Double.valueOf(pairsSpectrum.getUncYValue())); } else if (calType.equals(CalType.RESOLUTION_CAL.getType())) { phd.setUsedReso(pairsSpectrum.getInput()); gResolutionBlock.getG_energy().add(pairsSpectrum.getXValue()); gResolutionBlock.getFWHM().add(pairsSpectrum.getYValue()); - gResolutionBlock.getUncertainty().add(StringUtils.isBlank(pairsSpectrum.getUncYValue()) ? 0 : Double.valueOf(pairsSpectrum.getUncYValue())); + gResolutionBlock.getUncertainty() + .add(StringUtils.isBlank(pairsSpectrum.getUncYValue()) ? 0 : + Double.valueOf(pairsSpectrum.getUncYValue())); } else if (calType.equals(CalType.EFFICIENCY_CAL.getType())) { phd.setUsedEffi(pairsSpectrum.getInput()); gEfficiencyBlock.getG_energy().add(pairsSpectrum.getXValue()); gEfficiencyBlock.getEfficiency().add(pairsSpectrum.getYValue()); - gEfficiencyBlock.getUncertainty().add(StringUtils.isBlank(pairsSpectrum.getUncYValue()) ? 0 : Double.valueOf(pairsSpectrum.getUncYValue())); + gEfficiencyBlock.getUncertainty() + .add(StringUtils.isBlank(pairsSpectrum.getUncYValue()) ? 0 : + Double.valueOf(pairsSpectrum.getUncYValue())); } else if (calType.equals(CalType.TOTALEFFICIENCY_CAL.getType())) { phd.setUsedTotE(pairsSpectrum.getInput()); totaleffBlock.getG_energy().add(pairsSpectrum.getXValue()); totaleffBlock.getTotal_efficiency().add(pairsSpectrum.getYValue()); - totaleffBlock.getUncertainty().add(StringUtils.isBlank(pairsSpectrum.getUncYValue()) ? 0 : Double.valueOf(pairsSpectrum.getUncYValue())); + totaleffBlock.getUncertainty() + .add(StringUtils.isBlank(pairsSpectrum.getUncYValue()) ? 0 : + Double.valueOf(pairsSpectrum.getUncYValue())); } } if (phd.getUsedEner().isEmpty()) { @@ -459,7 +532,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } } // 获取刻度拟合系数 - List paras = spectrumAnalysisMapper.getPara(T_param, analysis.getIdAnalysis()); + List paras = + spectrumAnalysisMapper.getPara(T_param, analysis.getIdAnalysis()); if (CollectionUtils.isNotEmpty(paras)) { for (GardsCalibrationSpectrum calibrationSpectrum : paras) { ParameterInfo para = new ParameterInfo(); @@ -490,7 +564,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } } // 获取被识别核素射线信息 - List nuclLinesIdeds = spectrumAnalysisMapper.getNuclLinesIded(T_nuc_line, analysis.getIdAnalysis()); + List nuclLinesIdeds = + spectrumAnalysisMapper.getNuclLinesIded(T_nuc_line, analysis.getIdAnalysis()); if (CollectionUtils.isNotEmpty(nuclLinesIdeds)) { for (GardsNuclLinesIdedSpectrum nuclLinesIdedSpectrum : nuclLinesIdeds) { String str_key = nuclLinesIdedSpectrum.getNuclideName(); @@ -498,25 +573,40 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi phd.getMapNucActMda().put(str_key, new NuclideActMda()); } if (Objects.nonNull(phd.getMapNucActMda().get(str_key))) { - phd.getMapNucActMda().get(str_key).setActivity(Double.valueOf(nuclLinesIdedSpectrum.getActivity())); - phd.getMapNucActMda().get(str_key).setAct_err(nuclLinesIdedSpectrum.getUncActivity()); - phd.getMapNucActMda().get(str_key).setEfficiency(nuclLinesIdedSpectrum.getEffic()); - phd.getMapNucActMda().get(str_key).setEffi_err(nuclLinesIdedSpectrum.getUnEffic()); + phd.getMapNucActMda().get(str_key) + .setActivity(Double.valueOf(nuclLinesIdedSpectrum.getActivity())); + phd.getMapNucActMda().get(str_key) + .setAct_err(nuclLinesIdedSpectrum.getUncActivity()); + phd.getMapNucActMda().get(str_key) + .setEfficiency(nuclLinesIdedSpectrum.getEffic()); + phd.getMapNucActMda().get(str_key) + .setEffi_err(nuclLinesIdedSpectrum.getUnEffic()); phd.getMapNucActMda().get(str_key).setMda(nuclLinesIdedSpectrum.getMda()); - phd.getMapNucActMda().get(str_key).setMdc(nuclLinesIdedSpectrum.getMdc().equalsIgnoreCase("inf") ? null : Double.valueOf(nuclLinesIdedSpectrum.getMdc())); - phd.getMapNucActMda().get(str_key).setConcentration(nuclLinesIdedSpectrum.getConcentration().equalsIgnoreCase("inf") ? null : Double.valueOf(nuclLinesIdedSpectrum.getConcentration())); + phd.getMapNucActMda().get(str_key) + .setMdc(nuclLinesIdedSpectrum.getMdc().equalsIgnoreCase("inf") ? null : + Double.valueOf(nuclLinesIdedSpectrum.getMdc())); + phd.getMapNucActMda().get(str_key).setConcentration( + nuclLinesIdedSpectrum.getConcentration().equalsIgnoreCase("inf") ? + null : + Double.valueOf(nuclLinesIdedSpectrum.getConcentration())); if (phd.getMapNucActMda().get(str_key).getActivity() > 0) { phd.getMapNucActMda().get(str_key).setBCalculateMDA(true); } } if (nuclLinesIdedSpectrum.getKeyFlag().toString().equals("1")) { - phd.getMapNucActMda().get(str_key).setKey_flag(phd.getMapNucActMda().get(str_key).getVYield().size()); + phd.getMapNucActMda().get(str_key) + .setKey_flag(phd.getMapNucActMda().get(str_key).getVYield().size()); } - phd.getMapNucActMda().get(str_key).getFullNames().add(nuclLinesIdedSpectrum.getNuclidefullname()); - phd.getMapNucActMda().get(str_key).getVEnergy().add(nuclLinesIdedSpectrum.getEnergy()); - phd.getMapNucActMda().get(str_key).getVUncertE().add(nuclLinesIdedSpectrum.getUncEnergy()); - phd.getMapNucActMda().get(str_key).getVYield().add(nuclLinesIdedSpectrum.getAbundance()); - phd.getMapNucActMda().get(str_key).getVUncertY().add(nuclLinesIdedSpectrum.getUncAbundance()); + phd.getMapNucActMda().get(str_key).getFullNames() + .add(nuclLinesIdedSpectrum.getNuclidefullname()); + phd.getMapNucActMda().get(str_key).getVEnergy() + .add(nuclLinesIdedSpectrum.getEnergy()); + phd.getMapNucActMda().get(str_key).getVUncertE() + .add(nuclLinesIdedSpectrum.getUncEnergy()); + phd.getMapNucActMda().get(str_key).getVYield() + .add(nuclLinesIdedSpectrum.getAbundance()); + phd.getMapNucActMda().get(str_key).getVUncertY() + .add(nuclLinesIdedSpectrum.getUncAbundance()); int idx = nuclLinesIdedSpectrum.getIdPeak() - 1; if (idx >= 0 && idx < peakNum) { @@ -528,12 +618,14 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } } // 获取被识别核素的活度浓度 - List nuclIdeds = spectrumAnalysisMapper.getNuclIded(T_nuc_act, analysis.getIdAnalysis()); + List nuclIdeds = + spectrumAnalysisMapper.getNuclIded(T_nuc_act, analysis.getIdAnalysis()); if (CollectionUtils.isNotEmpty(nuclIdeds)) { for (GardsNuclIdedSpectrum nuclIdedSpectrum : nuclIdeds) { String str_key = nuclIdedSpectrum.getNuclideName(); if (Objects.nonNull(phd.getMapNucActMda().get(str_key))) { - phd.getMapNucActMda().get(str_key).setHalflife(Double.valueOf(nuclIdedSpectrum.getHalflife())); + phd.getMapNucActMda().get(str_key) + .setHalflife(Double.valueOf(nuclIdedSpectrum.getHalflife())); List vEner = phd.getMapNucActMda().get(str_key).getVEnergy(); Double key_ener = Double.valueOf(nuclIdedSpectrum.getKeyEnergy()); for (int i = 0; i < vEner.size(); i++) { @@ -546,29 +638,38 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } } // 获取 QC 结果 - List qcChecks = spectrumAnalysisMapper.getQcCheck(T_qc, analysis.getIdAnalysis()); + List qcChecks = + spectrumAnalysisMapper.getQcCheck(T_qc, analysis.getIdAnalysis()); if (CollectionUtils.isNotEmpty(qcChecks)) { for (GardsQcCheckSpectrum qcCheckSpectrum : qcChecks) { String str_key = qcCheckSpectrum.getQcName(); QcCheckItem qcCheckItem = new QcCheckItem(); - qcCheckItem.setValue(qcCheckSpectrum.getQcValue() == null ? 0.0 : qcCheckSpectrum.getQcValue()); + qcCheckItem.setValue( + qcCheckSpectrum.getQcValue() == null ? 0.0 : qcCheckSpectrum.getQcValue()); qcCheckItem.setBPass(qcCheckSpectrum.getQcResult() == 1); qcCheckItem.setStandard(qcCheckSpectrum.getQcStandard()); phd.getQcItems().put(str_key, qcCheckItem); } } // 获取 MDC 结果 - List calMDCInfoList = spectrumAnalysisMapper.getMDC(T_mdc, analysis.getIdAnalysis()); + List calMDCInfoList = + spectrumAnalysisMapper.getMDC(T_mdc, analysis.getIdAnalysis()); if (CollectionUtils.isNotEmpty(calMDCInfoList)) { - Map mdcInfoMap = calMDCInfoList.stream().collect(Collectors.toMap(CalMDCInfo::getNuclideName, Function.identity())); + Map mdcInfoMap = calMDCInfoList.stream() + .collect(Collectors.toMap(CalMDCInfo::getNuclideName, Function.identity())); phd.setMdcInfoMap(mdcInfoMap); } // 从 RNMAN.GARDS_ANALY_SETTING 表读分析设置 if (!dbName.equals("auto")) { - GardsAnalySetting analySetting = spectrumAnalysisMapper.getAnalySetting(analysis.getIdAnalysis()); + GardsAnalySetting analySetting = + spectrumAnalysisMapper.getAnalySetting(analysis.getIdAnalysis()); if (Objects.nonNull(analySetting)) { phd.getUsedSetting().setECutAnalysis_Low(analySetting.getEcutanalysisLow()); - phd.getUsedSetting().setECutAnalysis_High((Objects.nonNull(analySetting.getEcutanalysisHigh()) ? (analySetting.getEcutanalysisHigh() <= phd.getUsedSetting().getECutAnalysis_Low() ? -9999 : analySetting.getEcutanalysisHigh()) : -9999)); + phd.getUsedSetting().setECutAnalysis_High( + (Objects.nonNull(analySetting.getEcutanalysisHigh()) ? + (analySetting.getEcutanalysisHigh() <= + phd.getUsedSetting().getECutAnalysis_Low() ? -9999 : + analySetting.getEcutanalysisHigh()) : -9999)); phd.getUsedSetting().setEnergyTolerance(analySetting.getEnergytolerance()); phd.getUsedSetting().setCalibrationPSS_high(analySetting.getCalibrationpssHigh()); phd.getUsedSetting().setCalibrationPSS_low(analySetting.getCalibrationpssLow()); @@ -579,7 +680,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi phd.getUsedSetting().setK_beta(analySetting.getKBeta()); phd.getUsedSetting().setRiskLevelK(analySetting.getRisklevelk()); phd.getUsedSetting().setBUpdateCal(analySetting.getBupdatecal() == 1); - phd.getUsedSetting().setKeepCalPeakSearchPeaks(analySetting.getKeepcalpeakserchpeaks() == 1); + phd.getUsedSetting() + .setKeepCalPeakSearchPeaks(analySetting.getKeepcalpeakserchpeaks() == 1); Date reftimeAct = analySetting.getReftimeAct(); if (Objects.nonNull(reftimeAct)) { phd.getUsedSetting().setRefTime_act(reftimeAct); @@ -598,7 +700,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi vChan.add(c); c += 1; } - CalValuesOut calValuesOut = CalValuesHandler.calFcnEval(vChan, phd.getUsedEnerPara().getP()); + CalValuesOut calValuesOut = + CalValuesHandler.calFcnEval(vChan, phd.getUsedEnerPara().getP()); phd.setVEnergy(calValuesOut.counts); phd.setBAnalyed(true); } @@ -612,7 +715,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi Map map = new HashMap<>(); Cache phdCache = localCache.getPHDCache(); // 上传文件路径 - String path = spectrumPathProperties.getRootPath() + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName; + String path = + spectrumPathProperties.getRootPath() + spectrumPathProperties.getUploadPath() + + StringPool.SLASH + userName; // 获取当前角色的颜色配置 Map colorMap = sysUserColorService.initColor(userName); PHDFile phd = phdCache.getIfPresent(fileName + StringPool.DASH + userName); @@ -623,15 +728,21 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi if (!bRet) { return result; } - if (!redisUtil.hasKey(userName + StringPool.DASH + phd.getHeader().getSystem_type()) || !redisUtil.hasKey(userName + StringPool.DASH + phd.getHeader().getSystem_type() + "-list")) { + if (!redisUtil.hasKey(userName + StringPool.DASH + phd.getHeader().getSystem_type()) || + !redisUtil.hasKey( + userName + StringPool.DASH + phd.getHeader().getSystem_type() + + "-list")) { //读取缓存的全部核素信息 - Map allNuclideMap = (Map) redisUtil.get("AllNuclideMap"); + Map allNuclideMap = + (Map) redisUtil.get("AllNuclideMap"); // 查询当前用户关联的核素信息 List userLib = new LinkedList<>(); // 从postgreSql中获取当前用户关注的核素信息 如果当前用户没有 则返回管理员的 - userLib = defaultNuclideSpectrumService.findNuclidesByUserName(userName, phd.getHeader().getSystem_type().toUpperCase()); + userLib = defaultNuclideSpectrumService.findNuclidesByUserName(userName, + phd.getHeader().getSystem_type().toUpperCase()); if (CollectionUtils.isEmpty(userLib)) { - userLib = defaultNuclideSpectrumService.findNuclidesByUserName("admin", phd.getHeader().getSystem_type().toUpperCase()); + userLib = defaultNuclideSpectrumService.findNuclidesByUserName("admin", + phd.getHeader().getSystem_type().toUpperCase()); } userLib = userLib.stream().sorted().collect(Collectors.toList()); Map nuclideMap = new HashMap<>(); @@ -640,14 +751,19 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi nuclideMap.put(entry.getKey(), entry.getValue()); } } - redisUtil.set(userName + StringPool.DASH + phd.getHeader().getSystem_type() + "-list", userLib); - redisUtil.set(userName + StringPool.DASH + phd.getHeader().getSystem_type(), nuclideMap); + redisUtil.set( + userName + StringPool.DASH + phd.getHeader().getSystem_type() + "-list", + userLib); + redisUtil.set(userName + StringPool.DASH + phd.getHeader().getSystem_type(), + nuclideMap); } //缓存phd谱的核素信息 - Map phdNuclideMap = (Map) redisUtil.get(userName + StringPool.DASH + phd.getHeader().getSystem_type()); + Map phdNuclideMap = (Map) redisUtil.get( + userName + StringPool.DASH + phd.getHeader().getSystem_type()); phd.setPhdNuclideMap(phdNuclideMap); //读取redis缓存的计算mdc信息 - Map mdcInfoMap = (Map) redisUtil.get("mdcInfoMap-" + phd.getHeader().getSystem_type()); + Map mdcInfoMap = (Map) redisUtil.get( + "mdcInfoMap-" + phd.getHeader().getSystem_type()); if (CollectionUtils.isNotEmpty(mdcInfoMap)) { phd.setMdcInfoMap(mdcInfoMap); } @@ -659,10 +775,12 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi List detailedInfo = gammaFileUtil.DetailedInfo(phd.getId_sample(), phd); map.put("DetailedInformation", detailedInfo); // 更新 ACQ 模块中各时间信息 - map.put("start_time", phd.getAcq().getAcquisition_start_date() + "\n" + phd.getAcq().getAcquisition_start_time()); + map.put("start_time", phd.getAcq().getAcquisition_start_date() + "\n" + + phd.getAcq().getAcquisition_start_time()); map.put("real_time", String.format("%.2f", phd.getAcq().getAcquisition_real_time())); map.put("live_time", String.format("%.2f", phd.getAcq().getAcquisition_live_time())); - double deadTime = (phd.getAcq().getAcquisition_real_time() - phd.getAcq().getAcquisition_live_time()) / phd.getAcq().getAcquisition_real_time(); + double deadTime = (phd.getAcq().getAcquisition_real_time() - + phd.getAcq().getAcquisition_live_time()) / phd.getAcq().getAcquisition_real_time(); map.put("dead_time", String.format("%.2f", deadTime * 100)); map.put("checkBox_updateCal", phd.getSetting().isBUpdateCal()); map.put("bAnalyed", phd.isBAnalyed()); @@ -690,7 +808,10 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result loadSampleData(QueryRequest queryRequest, GardsSampleDataSpectrum gardsSampleData, String[] menuTypes, boolean AllUsers, boolean CollectStopB, boolean AcqStartB, Date startDate, Date endDate, HttpServletRequest request) { + public Result loadSampleData(QueryRequest queryRequest, GardsSampleDataSpectrum gardsSampleData, + String[] menuTypes, boolean AllUsers, boolean CollectStopB, + boolean AcqStartB, Date startDate, Date endDate, + HttpServletRequest request) { Result result = new Result(); if (Objects.isNull(startDate)) { result.error500("The start time cannot be empty"); @@ -709,7 +830,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } List stationTypes = sysDictService.findStationType(menuTypeList); if (CollectionUtils.isEmpty(stationTypes)) { - result.error500("Please add the station type corresponding to the current system type in the data dictionary"); + result.error500( + "Please add the station type corresponding to the current system type in the data dictionary"); return result; } List userStations = new LinkedList<>(); @@ -722,8 +844,15 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi userStations = userTaskUtil.findUserStation(userName); } //声明分页page - Page page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize()); - Page sampleDataPage = spectrumAnalysisMapper.loadSampleData(page, gardsSampleData, stationTypes, CollectStopB, AcqStartB, startTime, endTime, userStations, AllUsers, queryRequest.getField(), queryRequest.getOrder()); + Page page = + new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize()); + Page sampleDataPage = databaseType == DbType.POSTGRE_SQL ? + postgresMapper.loadSampleData(page, gardsSampleData, stationTypes, CollectStopB, + AcqStartB, startTime, endTime, userStations, AllUsers, + queryRequest.getField(), queryRequest.getOrder()) : + spectrumAnalysisMapper.loadSampleData(page, gardsSampleData, stationTypes, + CollectStopB, AcqStartB, startTime, endTime, userStations, AllUsers, + queryRequest.getField(), queryRequest.getOrder()); result.setSuccess(true); result.setResult(sampleDataPage); return result; @@ -751,16 +880,20 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi result.error500("The comparison file path does not exist"); return result; } - compareFilePath = spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + compareFilePath; + compareFilePath = + spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + + StringPool.SLASH + compareFilePath; File compareFile = ftpUtil.downloadFile(compareFilePath); if (Objects.isNull(compareFile)) { result.error500("The comparison file path does not exist"); return result; } // 获取Compare数据 - List m_vecCompare = gammaFileUtil.loadCompareData(compareFile, userName, m_nCount, result); + List m_vecCompare = + gammaFileUtil.loadCompareData(compareFile, userName, m_nCount, result); if (CollectionUtils.isNotEmpty(m_vecCompare)) { - List chartDataList = gammaFileUtil.CompareData(m_vecCompare, m_nCount, colorMap, vEnergy); + List chartDataList = + gammaFileUtil.CompareData(m_vecCompare, m_nCount, colorMap, vEnergy); result.setSuccess(true); result.setResult(chartDataList); } @@ -783,14 +916,18 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi long m_nCount = phd.getSpec().getNum_g_channel(); List vEnergy = phd.getVEnergy(); //加载compare文件 - String compareFilePath = spectrumPathProperties.getRootPath() + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName; + String compareFilePath = + spectrumPathProperties.getRootPath() + spectrumPathProperties.getUploadPath() + + StringPool.SLASH + userName; String fromPath = compareFilePath + StringPool.SLASH + compareFileName; File compareFile = ftpUtil.downloadFile(fromPath); if (Objects.nonNull(compareFile)) { // 获取Compare数据 - List m_vecCompare = gammaFileUtil.loadCompareData(compareFile, userName, m_nCount, result); + List m_vecCompare = + gammaFileUtil.loadCompareData(compareFile, userName, m_nCount, result); if (CollectionUtils.isNotEmpty(m_vecCompare)) { - List chartDataList = gammaFileUtil.CompareData(m_vecCompare, m_nCount, colorMap, vEnergy); + List chartDataList = + gammaFileUtil.CompareData(m_vecCompare, m_nCount, colorMap, vEnergy); result.setSuccess(true); result.setResult(chartDataList); } @@ -799,7 +936,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result StripDB(String fileName, Integer sampleId, Double ratioRate, HttpServletRequest request) { + public Result StripDB(String fileName, Integer sampleId, Double ratioRate, + HttpServletRequest request) { Result result = new Result(); Map> stripMap = new HashMap<>(); String userName = JwtUtil.getUserNameByToken(request); @@ -833,17 +971,23 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi result.error500("The comparison file path does not exist"); return result; } - stripFilePath = spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + stripFilePath; + stripFilePath = + spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + + StringPool.SLASH + stripFilePath; File stripFile = ftpUtil.downloadFile(stripFilePath); if (Objects.isNull(stripFile)) { result.error500("The comparison file path does not exist"); return result; } // 获取Compare数据 - List m_vecCompare = gammaFileUtil.loadCompareData(stripFile, userName, m_nCount, result); + List m_vecCompare = + gammaFileUtil.loadCompareData(stripFile, userName, m_nCount, result); if (CollectionUtils.isNotEmpty(m_vecCompare)) { - List referenceDataList = gammaFileUtil.ReferenceData(m_vecCompare, m_nCount, colorMap, vEnergy); - List chartDataList = gammaFileUtil.StripData(m_vecCompare, m_vCount, m_nCount, colorMap, vEnergy, ratioRate); + List referenceDataList = + gammaFileUtil.ReferenceData(m_vecCompare, m_nCount, colorMap, vEnergy); + List chartDataList = + gammaFileUtil.StripData(m_vecCompare, m_vCount, m_nCount, colorMap, vEnergy, + ratioRate); stripMap.put("reference", referenceDataList); stripMap.put("result", chartDataList); result.setSuccess(true); @@ -853,7 +997,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result Strip(String fileName, String stripFileName, Double ratioRate, HttpServletRequest request) { + public Result Strip(String fileName, String stripFileName, Double ratioRate, + HttpServletRequest request) { Result result = new Result(); Map> stripMap = new HashMap<>(); String userName = JwtUtil.getUserNameByToken(request); @@ -882,15 +1027,21 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi m_vCount.add(0L); } //加载strip文件 - String stripFilePath = spectrumPathProperties.getRootPath() + spectrumPathProperties.getUploadPath() + StringPool.SLASH + userName; + String stripFilePath = + spectrumPathProperties.getRootPath() + spectrumPathProperties.getUploadPath() + + StringPool.SLASH + userName; String fromPath = stripFilePath + StringPool.SLASH + stripFileName; File stripFile = ftpUtil.downloadFile(fromPath); if (Objects.nonNull(stripFile)) { // 获取Compare数据 - List m_vecCompare = gammaFileUtil.loadCompareData(stripFile, userName, m_nCount, result); + List m_vecCompare = + gammaFileUtil.loadCompareData(stripFile, userName, m_nCount, result); if (CollectionUtils.isNotEmpty(m_vecCompare)) { - List referenceDataList = gammaFileUtil.ReferenceData(m_vecCompare, m_nCount, colorMap, vEnergy); - List chartDataList = gammaFileUtil.StripData(m_vecCompare, m_vCount, m_nCount, colorMap, vEnergy, ratioRate); + List referenceDataList = + gammaFileUtil.ReferenceData(m_vecCompare, m_nCount, colorMap, vEnergy); + List chartDataList = + gammaFileUtil.StripData(m_vecCompare, m_vCount, m_nCount, colorMap, vEnergy, + ratioRate); stripMap.put("reference", referenceDataList); stripMap.put("result", chartDataList); result.setSuccess(true); @@ -1019,7 +1170,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi "2. You didn't change any setting or calibration."; result.error500(warning); } else if (flag == -1) { - Map nuclideLinesMap = (Map) redisUtil.get(userName + StringPool.DASH + phd.getHeader().getSystem_type()); + Map nuclideLinesMap = (Map) redisUtil.get( + userName + StringPool.DASH + phd.getHeader().getSystem_type()); //分析时将phd的核素map重置 phd.setPhdNuclideMap(nuclideLinesMap); //重新计算核素的活度浓度 @@ -1029,7 +1181,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi phd.setEfficiencyEnergy(phd.getUsedEffiKD().getG_energy()); phd.setEfficiencyCurRow(0); // 重新计算峰值 - Map nuclideLinesMDCMap = (Map) redisUtil.get("AllNuclideMap"); + Map nuclideLinesMDCMap = + (Map) redisUtil.get("AllNuclideMap"); gammaFileUtil.getNuclideMDCValue(phd, phd.getMdcInfoMap(), nuclideLinesMDCMap); String warning = "Finish three tasks:\n" + "\t1.Update efficiencies of all peaks;\n" + @@ -1037,7 +1190,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi "\t3.Test QC again."; result.error500(warning); } else { - Map nuclideLinesMap = (Map) redisUtil.get(userName + StringPool.DASH + phd.getHeader().getSystem_type()); + Map nuclideLinesMap = (Map) redisUtil.get( + userName + StringPool.DASH + phd.getHeader().getSystem_type()); //分析时将phd的核素map重置 phd.setPhdNuclideMap(nuclideLinesMap); //调用分析算法 @@ -1049,7 +1203,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi phd.setEfficiencyEnergy(phd.getUsedEffiKD().getG_energy()); phd.setEfficiencyCurRow(0); // 重新计算峰值 - Map nuclideLinesMDCMap = (Map) redisUtil.get("AllNuclideMap"); + Map nuclideLinesMDCMap = + (Map) redisUtil.get("AllNuclideMap"); gammaFileUtil.getNuclideMDCValue(phd, phd.getMdcInfoMap(), nuclideLinesMDCMap); Map map = new HashMap<>(); gammaFileUtil.UpdateChart(phd, map, colorMap); @@ -1103,8 +1258,10 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi m_vCount.add(0L); } ChartData channelCountChart = gammaFileUtil.Channel_Count(phd, colorMap.get("Color_Spec")); - ChartData channelBaseLineChart = gammaFileUtil.Channel_BaseLine(phd, colorMap.get("Color_Base")); - List channelPeakChart = gammaFileUtil.Channel_Peak(phd, colorMap.get("Color_Peak")); + ChartData channelBaseLineChart = + gammaFileUtil.Channel_BaseLine(phd, colorMap.get("Color_Base")); + List channelPeakChart = + gammaFileUtil.Channel_Peak(phd, colorMap.get("Color_Peak")); List channelBaseCPChart = gammaFileUtil.Channel_BaseCP(phd); map.put("channelCountChart", channelCountChart); map.put("channelBaseLineChart", channelBaseLineChart); @@ -1125,7 +1282,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result insertPeak(Integer sampleId, String fileName, Integer curChan, HttpServletRequest request) { + public Result insertPeak(Integer sampleId, String fileName, Integer curChan, + HttpServletRequest request) { Result result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Map map = new HashMap<>(); @@ -1136,7 +1294,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi return result; } // 判断当前选中的channel是否在正常允许范围内 - if (curChan <= phd.getBaseCtrls().getRg_low() + 1 || curChan >= phd.getBaseCtrls().getRg_high() - 1) { + if (curChan <= phd.getBaseCtrls().getRg_low() + 1 || + curChan >= phd.getBaseCtrls().getRg_high() - 1) { result.error500("Couldn't insert peak, maybe out of range"); return result; } @@ -1168,7 +1327,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi // 确保绘制曲线时所有谱都是从1道开始 int i = 0; - if (m_nSChan == 0) i = 1; + if (m_nSChan == 0) { + i = 1; + } for (; i < m_nCount; ++i) { m_vCount.add(phd.getSpec().getCounts().get(i).doubleValue()); } @@ -1210,7 +1371,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi if (structInsertOutput.vIdx.size() > 0) { for (int j = 0; j < structInsertOutput.vIdx.size(); j++) { int a = 0; - while (a < phd.getVPeak().size() && structInsertOutput.peakCentroid.get(j) > phd.getVPeak().get(a).peakCentroid) { + while (a < phd.getVPeak().size() && structInsertOutput.peakCentroid.get(j) > + phd.getVPeak().get(a).peakCentroid) { ++a; } PeakInfo peak = new PeakInfo(); @@ -1220,7 +1382,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi peak.peakCentroid = structInsertOutput.peakCentroid.get(j); peak.energy = structInsertOutput.energy.get(j); peak.area = structInsertOutput.area.get(j); - Double sensitivity = String.valueOf(structInsertOutput.sensitivity.get(j)).equalsIgnoreCase("nan") ? Double.NaN : structInsertOutput.sensitivity.get(j); + Double sensitivity = String.valueOf(structInsertOutput.sensitivity.get(j)) + .equalsIgnoreCase("nan") ? Double.NaN : + structInsertOutput.sensitivity.get(j); peak.sensitivity = sensitivity; peak.fwhm = structInsertOutput.fwhm.get(j); peak.fwhmc = structInsertOutput.fwhmc.get(j); @@ -1231,8 +1395,12 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi peak.upperTailAlpha = structInsertOutput.upperTailAlpha.get(j); peak.efficiency = structInsertOutput.efficiency.get(j); peak.BWWidthChan = 0; - peak.recoilBetaChan = Objects.isNull(structInsertOutput.recoilBetaChan.get(j)) ? "nan" : String.valueOf(structInsertOutput.recoilBetaChan.get(j)); - peak.recoilDeltaChan = Objects.isNull(structInsertOutput.recoilDeltaChan.get(j)) ? "nan" : String.valueOf(structInsertOutput.recoilDeltaChan.get(j)); + peak.recoilBetaChan = + Objects.isNull(structInsertOutput.recoilBetaChan.get(j)) ? "nan" : + String.valueOf(structInsertOutput.recoilBetaChan.get(j)); + peak.recoilDeltaChan = + Objects.isNull(structInsertOutput.recoilDeltaChan.get(j)) ? "nan" : + String.valueOf(structInsertOutput.recoilDeltaChan.get(j)); newPeaks.add(a, peak); } } @@ -1258,7 +1426,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi return result; } - public void FitPeakBaseLine(List vPeaks, List p, List vIdx, Map map) { + public void FitPeakBaseLine(List vPeaks, List p, List vIdx, + Map map) { List tablePeaksList = new LinkedList<>(); int peakNum = vIdx.size(); for (int i = 0; i < peakNum; i++) { @@ -1270,14 +1439,17 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi for (String peakNuclide : peak.nuclides) { nuclide += peakNuclide + ";"; } - tablePeaks.setNuclide(StringUtils.isBlank(nuclide) ? nuclide : nuclide.substring(0, nuclide.length() - 1)); + tablePeaks.setNuclide(StringUtils.isBlank(nuclide) ? nuclide : + nuclide.substring(0, nuclide.length() - 1)); tablePeaks.setEnergy(NumberFormatUtil.numberFormat(String.valueOf(peak.energy))); tablePeaks.setNetArea(NumberFormatUtil.numberFormat(String.valueOf(peak.area))); tablePeaks.setFwhm(NumberFormatUtil.numberFormat(String.valueOf(peak.fwhm))); - tablePeaks.setStep(NumberFormatUtil.numberFormat(String.valueOf(peak.area * peak.stepRatio))); + tablePeaks.setStep( + NumberFormatUtil.numberFormat(String.valueOf(peak.area * peak.stepRatio))); double deriva = CalValuesHandler.calDerivaOut(peak.peakCentroid, p); - tablePeaks.setBwGamma(NumberFormatUtil.numberFormat(String.valueOf(peak.BWWidthChan * deriva))); + tablePeaks.setBwGamma( + NumberFormatUtil.numberFormat(String.valueOf(peak.BWWidthChan * deriva))); tablePeaks.setNetAreaB(false); tablePeaks.setCentroid(true); tablePeaks.setFwhmB(true); @@ -1287,7 +1459,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result acceptResults(String fileName, boolean accept, List oldPeak, List tablePeaksList, List newPeak, String flag, HttpServletRequest request) { + public Result acceptResults(String fileName, boolean accept, List oldPeak, + List tablePeaksList, List newPeak, + String flag, HttpServletRequest request) { Result result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Cache phdCache = localCache.getPHDCache(); @@ -1316,7 +1490,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi HashMap map = new HashMap<>(); // 根据boolean 决定是否保留本次数据 如果保留则不需要操作vPeak 并重新拟合线 if (accept) { - Map nuclideLinesMap = phd.getPhdNuclideMap();//(Map) redisUtil.get(userName+StringPool.DASH+phd.getHeader().getSystem_type()); + Map nuclideLinesMap = + phd.getPhdNuclideMap();//(Map) redisUtil.get(userName+StringPool.DASH+phd.getHeader().getSystem_type()); if (flag.equalsIgnoreCase("insert")) {// 如果传递的flag标识 是 Insert则进行峰值的插入 //重新赋值index for (int k = 0; k < newPeak.size(); k++) { @@ -1329,7 +1504,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi vC_Rg.add(Double.valueOf(phd.getBaseCtrls().getRg_low())); vC_Rg.add(Double.valueOf(phd.getBaseCtrls().getRg_high())); - List vE_Rg = CalValuesHandler.calFcnEval(vC_Rg, phd.getUsedEnerPara().getP()).counts; + List vE_Rg = + CalValuesHandler.calFcnEval(vC_Rg, phd.getUsedEnerPara().getP()).counts; if (vE_Rg.size() != 2 || vE_Rg.get(0).isNaN() || vE_Rg.get(1).isNaN()) { return result; } @@ -1341,7 +1517,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi for (int j = 0; j < tablePeaksList.size(); j++) { TablePeaks nPeak = tablePeaksList.get(j); PeakInfo peak = phd.getVPeak().get(Integer.valueOf(nPeak.getLab()) - 1); - double dE = CalValuesHandler.calDerivaOut(peak.peakCentroid, phd.getUsedEnerPara().getP()); + double dE = CalValuesHandler.calDerivaOut(peak.peakCentroid, + phd.getUsedEnerPara().getP()); peak.energy = Double.parseDouble(nPeak.getEnergy()); if (peak.energy < vE_Rg.get(0) || peak.energy > vE_Rg.get(1)) { @@ -1350,7 +1527,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } List energys = new LinkedList<>(); energys.add(peak.energy); - peak.peakCentroid = CalValuesHandler.energyToChannel(energys, phd.getUsedEnerPara().getP()).counts.get(0); + peak.peakCentroid = CalValuesHandler.energyToChannel(energys, + phd.getUsedEnerPara().getP()).counts.get(0); peak.area = Double.parseDouble(nPeak.getNetArea()); peak.fwhm = Double.parseDouble(nPeak.getFwhm()); peak.stepRatio = Double.valueOf(nPeak.getStep()) / peak.area; @@ -1375,7 +1553,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi Map parseMap = JSON.parseObject(strValue, Map.class); for (Map.Entry entry : parseMap.entrySet()) { if (entry.getKey().equalsIgnoreCase("vPeak")) { - List value = JSON.parseArray(JSON.toJSONString(entry.getValue()), PeakInfo.class); + List value = JSON.parseArray(JSON.toJSONString(entry.getValue()), + PeakInfo.class); for (PeakInfo info : value) { if (info.significance == -9999) { info.significance = Double.POSITIVE_INFINITY; @@ -1384,7 +1563,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi phd.setVPeak(value); } if (entry.getKey().equalsIgnoreCase("vBase")) { - List vBase = JSON.parseArray(JSON.toJSONString(entry.getValue()), Double.class); + List vBase = + JSON.parseArray(JSON.toJSONString(entry.getValue()), Double.class); phd.setVBase(vBase); phd.getBaseCtrls().setBaseline(vBase); } @@ -1396,9 +1576,11 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi List vPeak = gammaFileUtil.InitPeakTable(phd.getVPeak()); map.put("table", vPeak); - List channelPeak = gammaFileUtil.Channel_Peak(phd, colorMap.get("Color_Peak")); + List channelPeak = + gammaFileUtil.Channel_Peak(phd, colorMap.get("Color_Peak")); map.put("channelPeakChart", channelPeak); - ChartData channelBaseLine = gammaFileUtil.Channel_BaseLine(phd, colorMap.get("Color_Base")); + ChartData channelBaseLine = + gammaFileUtil.Channel_BaseLine(phd, colorMap.get("Color_Base")); map.put("channelBaseLineChart", channelBaseLine); List differance = gammaFileUtil.Differance(phd, phd.getVPeak()); map.put("barChart", differance); @@ -1408,7 +1590,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi phd.getVPeak().clear(); phd.setVPeak(oldPeak); map.put("table", phd.getVPeak()); - List channelPeak = gammaFileUtil.Channel_Peak(phd, colorMap.get("Color_Peak")); + List channelPeak = + gammaFileUtil.Channel_Peak(phd, colorMap.get("Color_Peak")); map.put("channelPeakChart", channelPeak); } } @@ -1488,7 +1671,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } List vPeak = gammaFileUtil.InitPeakTable(phd.getVPeak()); map.put("table", vPeak); - List channelPeak = gammaFileUtil.Channel_Peak(phd, colorMap.get("Color_Peak")); + List channelPeak = + gammaFileUtil.Channel_Peak(phd, colorMap.get("Color_Peak")); map.put("channelPeakChart", channelPeak); gammaFileUtil.UpdateChart(phd, map, colorMap); } @@ -1547,7 +1731,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result getGammaSelPosNuclide(Integer sampleId, String fileName, int channel, double energy, HttpServletRequest request) { + public Result getGammaSelPosNuclide(Integer sampleId, String fileName, int channel, + double energy, HttpServletRequest request) { Result result = new Result(); Map map = new HashMap<>(); String userName = JwtUtil.getUserNameByToken(request); @@ -1568,8 +1753,10 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi int index = gammaFileUtil.FindNearPeak(phd.getVPeak(), channel, false); //获取缓存的核素信息 - Map nuclideMap = (Map) redisUtil.get(userName + StringPool.DASH + phd.getHeader().getSystem_type()); - Map nuclCoincidenceSumMap = (Map) redisUtil.get("nuclCoincidenceSumMap"); + Map nuclideMap = (Map) redisUtil.get( + userName + StringPool.DASH + phd.getHeader().getSystem_type()); + Map nuclCoincidenceSumMap = + (Map) redisUtil.get("nuclCoincidenceSumMap"); //计算核素范围的最小能量值 double min = energy - phd.getSetting().getEnergyTolerance(); //计算核素范围的最大能量值 @@ -1588,7 +1775,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi //遍历能量 for (int i = 0; i < venergy.size(); i++) { //如果有一个能量在范围内 则将核素名称存入返回结果数组并结束当前核素名称的循环 - if (Objects.nonNull(venergy.get(i)) && venergy.get(i) > min && venergy.get(i) < max) { + if (Objects.nonNull(venergy.get(i)) && venergy.get(i) > min && + venergy.get(i) < max) { list_possible.add(fullNames.get(i)); } } @@ -1605,7 +1793,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi //遍历能量 for (int i = 0; i < venergy.size(); i++) { //如果有一个能量在范围内 则将核素名称存入返回结果数组并结束当前核素名称的循环 - if (Objects.nonNull(venergy.get(i)) && venergy.get(i) > min && venergy.get(i) < max) { + if (Objects.nonNull(venergy.get(i)) && venergy.get(i) > min && + venergy.get(i) < max) { list_possible.add(fullNames.get(i)); } } @@ -1624,7 +1813,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result getSelPosNuclide(Integer sampleId, String fileName, int channel, HttpServletRequest request) { + public Result getSelPosNuclide(Integer sampleId, String fileName, int channel, + HttpServletRequest request) { Result result = new Result(); Map map = new HashMap<>(); String userName = JwtUtil.getUserNameByToken(request); @@ -1640,7 +1830,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi int index = gammaFileUtil.FindNearPeak(phd.getVPeak(), channel, false); //获取缓存的核素信息 - Map nuclideMap = (Map) redisUtil.get(userName + StringPool.DASH + phd.getHeader().getSystem_type()); + Map nuclideMap = (Map) redisUtil.get( + userName + StringPool.DASH + phd.getHeader().getSystem_type()); //计算核素范围的最小能量值 double min = phd.getVPeak().get(index).energy - phd.getSetting().getEnergyTolerance(); //计算核素范围的最大能量值 @@ -1658,7 +1849,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi //遍历能量 for (int i = 0; i < venergy.size(); i++) { //如果有一个能量在范围内 则将核素名称存入返回结果数组并结束当前核素名称的循环 - if (Objects.nonNull(venergy.get(i)) && venergy.get(i) > min && venergy.get(i) < max) { + if (Objects.nonNull(venergy.get(i)) && venergy.get(i) > min && + venergy.get(i) < max) { list_possible.add(entry.getKey()); break; } @@ -1677,7 +1869,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result addNuclide(Integer curRow, String nuclideName, String fileName, List list_identify, + public Result addNuclide(Integer curRow, String nuclideName, String fileName, + List list_identify, Double energyTolerance, HttpServletRequest request) { Result result = new Result(); Map map = new HashMap<>(); @@ -1711,7 +1904,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi deletedNuclide.remove(nuclideName); } // 查询当前用户所关心的核素名称 - Map mapNucLines = (Map) redisUtil.get(userName + StringPool.DASH + phd.getHeader().getSystem_type()); + Map mapNucLines = (Map) redisUtil.get( + userName + StringPool.DASH + phd.getHeader().getSystem_type()); //用户当前缓存的核素信息 Map phdNuclideMap = phd.getPhdNuclideMap(); // 查询出核素信息 @@ -1746,7 +1940,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result deleteNuclide(Integer curRow, String nuclideName, String fileName, List list_identify, HttpServletRequest request) { + public Result deleteNuclide(Integer curRow, String nuclideName, String fileName, + List list_identify, HttpServletRequest request) { Result result = new Result(); //获取用户名 String userName = JwtUtil.getUserNameByToken(request); @@ -1818,7 +2013,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi // 处理核素MDA、MDC gammaFileUtil.ReCalcMdaMdc(phd, nuclideName, curRow + 1); // 谱的峰信息通过stream流过滤出包含当前核素名称的峰信息 - List peakInfoList = phd.getVPeak().stream().filter(item -> item.nuclides.indexOf(nuclideName) >= 0).collect(Collectors.toList()); + List peakInfoList = phd.getVPeak().stream() + .filter(item -> item.nuclides.indexOf(nuclideName) >= 0) + .collect(Collectors.toList()); //过滤结果小于等于0 则说明当前核素在峰值中不存在了 需要从缓存的核素信息map中移除核素 if (peakInfoList.size() <= 0) { //移除核素信息 @@ -1853,7 +2050,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result addPeakComment(String fileName, int curRow, String comments, HttpServletRequest request) { + public Result addPeakComment(String fileName, int curRow, String comments, + HttpServletRequest request) { Result result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Map map = new HashMap<>(); @@ -1907,7 +2105,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result nuclideReviewGamma(Integer sampleId, String fileName, Double channel, HttpServletRequest request) { + public Result nuclideReviewGamma(Integer sampleId, String fileName, Double channel, + HttpServletRequest request) { Result result = new Result(); if (Objects.isNull(channel) || channel <= 0) { return result; @@ -1930,8 +2129,10 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi double min = bigDecimal.doubleValue() - 0.5; double max = bigDecimal.doubleValue() + 0.5; //获取缓存的核素信息 - Map nuclideMap = (Map) redisUtil.get(userName + StringPool.DASH + phd.getHeader().getSystem_type()); - Map nuclCoincidenceSumMap = (Map) redisUtil.get("nuclCoincidenceSumMap"); + Map nuclideMap = (Map) redisUtil.get( + userName + StringPool.DASH + phd.getHeader().getSystem_type()); + Map nuclCoincidenceSumMap = + (Map) redisUtil.get("nuclCoincidenceSumMap"); //判断缓存的核素信息是否为空 if (CollectionUtils.isNotEmpty(nuclideMap)) { //遍历核素信息 @@ -1989,7 +2190,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result nuclideReview(Integer sampleId, String fileName, Double channel, HttpServletRequest request) { + public Result nuclideReview(Integer sampleId, String fileName, Double channel, + HttpServletRequest request) { Result result = new Result(); if (Objects.isNull(channel)) { return result; @@ -2012,7 +2214,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi double min = bigDecimal.doubleValue() - 0.5; double max = bigDecimal.doubleValue() + 0.5; //获取缓存的核素信息 - Map nuclideMap = (Map) redisUtil.get(userName + StringPool.DASH + phd.getHeader().getSystem_type()); + Map nuclideMap = (Map) redisUtil.get( + userName + StringPool.DASH + phd.getHeader().getSystem_type()); //判断缓存的核素信息是否为空 if (CollectionUtils.isNotEmpty(nuclideMap)) { //遍历核素信息 @@ -2049,7 +2252,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi return result; } - public void InitTable(String name, Map map, PHDFile phd, Map colorMap, Map nuclideMap) { + public void InitTable(String name, Map map, PHDFile phd, + Map colorMap, Map nuclideMap) { InitNuclideInfo(name, map); long span = phd.getSpec().getG_energy_span(); @@ -2057,24 +2261,33 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi if (CollectionUtils.isNotEmpty(nuclideMap)) { //获取当前核素名称的核素集合 NuclideLines lines = nuclideMap.get(name); - List nuclideTableList = new LinkedList<>();//spectrumAnalysisMapper.getNuclideTable(name, span); + List nuclideTableList = + new LinkedList<>();//spectrumAnalysisMapper.getNuclideTable(name, span); for (int i = 0; i < lines.fullNames.size(); i++) { Double energy = lines.venergy.get(i); if (Objects.nonNull(energy)) { if (lines.venergy.get(i) >= 30 && lines.venergy.get(i) <= span) { GardsNuclLinesLib nuclLinesLib = new GardsNuclLinesLib(); nuclLinesLib.setFullName(lines.fullNames.get(i)); - nuclLinesLib.setEnergy(Double.valueOf(String.format("%.3f", lines.venergy.get(i)))); - nuclLinesLib.setEnergyUncert(Objects.nonNull(lines.vuncertE.get(i)) ? Double.valueOf(String.format("%.3f", lines.vuncertE.get(i))) : 0.0); - nuclLinesLib.setYield(Objects.nonNull(lines.vyield.get(i)) ? Double.valueOf(String.format("%.3f", lines.vyield.get(i) * 100)) : 0.0); - nuclLinesLib.setYieldUncert(Objects.nonNull(lines.vuncertY.get(i)) ? Double.valueOf(String.format("%.3f", lines.vuncertY.get(i))) : 0.0); + nuclLinesLib.setEnergy( + Double.valueOf(String.format("%.3f", lines.venergy.get(i)))); + nuclLinesLib.setEnergyUncert(Objects.nonNull(lines.vuncertE.get(i)) ? + Double.valueOf(String.format("%.3f", lines.vuncertE.get(i))) : 0.0); + nuclLinesLib.setYield(Objects.nonNull(lines.vyield.get(i)) ? + Double.valueOf(String.format("%.3f", lines.vyield.get(i) * 100)) : + 0.0); + nuclLinesLib.setYieldUncert(Objects.nonNull(lines.vuncertY.get(i)) ? + Double.valueOf(String.format("%.3f", lines.vuncertY.get(i))) : 0.0); nuclideTableList.add(nuclLinesLib); } } } if (CollectionUtils.isNotEmpty(nuclideTableList)) { - nuclideTableList = nuclideTableList.stream().sorted(Comparator.comparing(GardsNuclLinesLib::getYield)).collect(Collectors.toList()); - nuclideTableList.stream().max(Comparator.comparing(GardsNuclLinesLib::getYield)).get().setKeyFlag(1); + nuclideTableList = nuclideTableList.stream() + .sorted(Comparator.comparing(GardsNuclLinesLib::getYield)) + .collect(Collectors.toList()); + nuclideTableList.stream().max(Comparator.comparing(GardsNuclLinesLib::getYield)) + .get().setKeyFlag(1); map.put("table", nuclideTableList); gammaFileUtil.InitChart(nuclideTableList, phd, map, colorMap); } @@ -2109,14 +2322,17 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi if (Objects.isNull(nuclideInfo.getHalflifeErr())) { map.put("halfLifeErr", ""); } else { - map.put("halfLifeErr", String.format("%.3f", nuclideInfo.getHalflifeErr().doubleValue()) + "%"); + map.put("halfLifeErr", + String.format("%.3f", nuclideInfo.getHalflifeErr().doubleValue()) + + "%"); } } } } @Override - public Result changeNuclideGamma(Integer sampleId, String fileName, String nuclideName, HttpServletRequest request) { + public Result changeNuclideGamma(Integer sampleId, String fileName, String nuclideName, + HttpServletRequest request) { Result result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Map map = new HashMap<>(); @@ -2129,8 +2345,10 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi Map colorMap = sysUserColorService.initColor(userName); //获取缓存的核素信息 Map nuclideLinesMap = new HashMap<>(); - Map nuclideMap = (Map) redisUtil.get(userName + StringPool.DASH + phd.getHeader().getSystem_type()); - Map nuclCoincidenceSumMap = (Map) redisUtil.get("nuclCoincidenceSumMap"); + Map nuclideMap = (Map) redisUtil.get( + userName + StringPool.DASH + phd.getHeader().getSystem_type()); + Map nuclCoincidenceSumMap = + (Map) redisUtil.get("nuclCoincidenceSumMap"); if (phd.getHeader().getSystem_type().equals("P")) { NuclideLines newNuclideLines = new NuclideLines(); List fullNames = new LinkedList<>(); @@ -2186,7 +2404,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result changeNuclide(Integer sampleId, String fileName, String nuclideName, HttpServletRequest request) { + public Result changeNuclide(Integer sampleId, String fileName, String nuclideName, + HttpServletRequest request) { Result result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Map map = new HashMap<>(); @@ -2198,7 +2417,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } Map colorMap = sysUserColorService.initColor(userName); //获取缓存的核素信息 - Map nuclideMap = (Map) redisUtil.get(userName + StringPool.DASH + phd.getHeader().getSystem_type()); + Map nuclideMap = (Map) redisUtil.get( + userName + StringPool.DASH + phd.getHeader().getSystem_type()); if (CollectionUtils.isNotEmpty(nuclideMap)) { for (Map.Entry entry : nuclideMap.entrySet()) { NuclideLines nuclideLines = entry.getValue(); @@ -2207,8 +2427,10 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } } } - Map nuclCoincidenceSumMap = (Map) redisUtil.get("nuclCoincidenceSumMap"); - if (phd.getHeader().getSystem_type().equals("P") && CollectionUtils.isNotEmpty(nuclCoincidenceSumMap)) { + Map nuclCoincidenceSumMap = + (Map) redisUtil.get("nuclCoincidenceSumMap"); + if (phd.getHeader().getSystem_type().equals("P") && + CollectionUtils.isNotEmpty(nuclCoincidenceSumMap)) { for (Map.Entry entry : nuclCoincidenceSumMap.entrySet()) { NuclideLines nuclideLines = entry.getValue(); if (nuclideLines.fullNames.contains(nuclideName)) { @@ -2223,7 +2445,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result searchNuclide(Integer sampleId, String fileName, Double energy, Double tolerance, HttpServletRequest request) { + public Result searchNuclide(Integer sampleId, String fileName, Double energy, Double tolerance, + HttpServletRequest request) { Result result = new Result(); Map map = new HashMap<>(); String userName = JwtUtil.getUserNameByToken(request); @@ -2242,7 +2465,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi double min = bigDecimal.doubleValue() - tolerance; double max = bigDecimal.doubleValue() + tolerance; //获取缓存的核素信息 - Map nuclideMap = (Map) redisUtil.get(userName + StringPool.DASH + phd.getHeader().getSystem_type()); + Map nuclideMap = (Map) redisUtil.get( + userName + StringPool.DASH + phd.getHeader().getSystem_type()); //判断缓存的核素信息是否为空 if (CollectionUtils.isNotEmpty(nuclideMap)) { //遍历核素信息 @@ -2313,9 +2537,13 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi baseLineCtrls.setReplotNeeded(false); BaseControls m_baseCtrl = new BaseLineCtrls(); BeanUtils.copyProperties(baseLineCtrls, m_baseCtrl); - List peakSet = gammaFileUtil.PeakSet(phd.getVPeak(), m_baseCtrl.getBaseline(), colorMap.get("Color_Peak"), m_nCount, null, false); + List peakSet = + gammaFileUtil.PeakSet(phd.getVPeak(), m_baseCtrl.getBaseline(), + colorMap.get("Color_Peak"), m_nCount, null, false); map.put("peakSet", peakSet); - ChartData chartData = gammaFileUtil.CreateTempBaseLine(colorMap.get("Color_Base"), "BaseLine", m_baseCtrl); + ChartData chartData = + gammaFileUtil.CreateTempBaseLine(colorMap.get("Color_Base"), "BaseLine", + m_baseCtrl); map.put("chartData", chartData); List shapeData = gammaFileUtil.CreateShapeCP(m_baseCtrl); map.put("shapeData", shapeData); @@ -2359,7 +2587,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi map.put("barChart", differance); ChartData channelBaseLine = gammaFileUtil.Channel_BaseLine(phd, colorMap.get("Color_Base")); map.put("channelBaseLineChart", channelBaseLine); - List peakSet = gammaFileUtil.PeakSet(phd.getVPeak(), phd.getVBase(), colorMap.get("Color_Peak"), phd.getSpec().getNum_g_channel(), null, false); + List peakSet = + gammaFileUtil.PeakSet(phd.getVPeak(), phd.getVBase(), colorMap.get("Color_Peak"), + phd.getSpec().getNum_g_channel(), null, false); map.put("peakSet", peakSet); List shapeData = gammaFileUtil.CreateShapeCP(phd.getBaseCtrls()); map.put("shapeData", shapeData); @@ -2382,7 +2612,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi map.put("list_fission1", zeroTimeList); map.put("list_fission2", zeroTimeList); LocalDateTime now = LocalDateTime.now(); - map.put("Date", now.getYear() + StringPool.DASH + now.getMonthValue() + StringPool.DASH + now.getDayOfMonth()); + map.put("Date", now.getYear() + StringPool.DASH + now.getMonthValue() + StringPool.DASH + + now.getDayOfMonth()); map.put("Time", now.getHour() + ":" + now.getMinute() + ":" + now.getSecond()); result.setSuccess(true); result.setResult(map); @@ -2390,7 +2621,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result ZeroTimeAnalyse(String nuclide1, String nuclide2, Double product1, Double product2, String target, String energyTFH, String date, String time) { + public Result ZeroTimeAnalyse(String nuclide1, String nuclide2, Double product1, + Double product2, String target, String energyTFH, String date, + String time) { Result result = new Result(); Map map = new HashMap<>(); // 建立数据库连接 @@ -2415,27 +2648,31 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi double FY_N1_C = 0, FY_N1_I = 0, FY_N2_C = 0, FY_N2_I = 0; String N1_A = "", N2_A = ""; // 查询第一个需要用到的计算值 - String sql1 = "select FY,A from FY_Table where NUCLIDE_NAME = '" + nuclide1 + "' and Target = '" + target + "' and IC = 'C' and ENERGY = '" + energyTFH + "'"; + String sql1 = "select FY,A from FY_Table where NUCLIDE_NAME = '" + nuclide1 + + "' and Target = '" + target + "' and IC = 'C' and ENERGY = '" + energyTFH + "'"; ResultSet query1 = statement.executeQuery(sql1); while (query1.next()) { FY_N1_C = query1.getDouble("FY"); N1_A = query1.getString("A"); } // 查询第一个需要用到的计算值 - String sql2 = "select FY from FY_Table where NUCLIDE_NAME = '" + nuclide1 + "' and Target = '" + target + "' and IC = 'I' and ENERGY = '" + energyTFH + "'"; + String sql2 = "select FY from FY_Table where NUCLIDE_NAME = '" + nuclide1 + + "' and Target = '" + target + "' and IC = 'I' and ENERGY = '" + energyTFH + "'"; ResultSet query2 = statement.executeQuery(sql2); while (query2.next()) { FY_N1_I = query2.getDouble("FY"); } // 查询第一个需要用到的计算值 - String sql3 = "select FY,A from FY_Table where NUCLIDE_NAME = '" + nuclide2 + "' and Target = '" + target + "' and IC = 'C' and ENERGY = '" + energyTFH + "'"; + String sql3 = "select FY,A from FY_Table where NUCLIDE_NAME = '" + nuclide2 + + "' and Target = '" + target + "' and IC = 'C' and ENERGY = '" + energyTFH + "'"; ResultSet query3 = statement.executeQuery(sql3); while (query3.next()) { FY_N2_C = query3.getDouble("FY"); N2_A = query3.getString("A"); } // 查询第一个需要用到的计算值 - String sql4 = "select FY,A from FY_Table where NUCLIDE_NAME = '" + nuclide2 + "' and Target = '" + target + "' and IC = 'I' and ENERGY = '" + energyTFH + "'"; + String sql4 = "select FY,A from FY_Table where NUCLIDE_NAME = '" + nuclide2 + + "' and Target = '" + target + "' and IC = 'I' and ENERGY = '" + energyTFH + "'"; ResultSet query4 = statement.executeQuery(sql4); while (query4.next()) { FY_N2_I = query4.getDouble("FY"); @@ -2453,13 +2690,16 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi double temp = 1.0 / (lamada_n2 - lamada_n1); double t; if (N1_A == N2_A) { - t = -temp * Math.log(((1 / lamada_n2) * (active2 / active1) - temp) / ((FY_N2_I / (FY_N1_C * lamada_n1)) - temp)); + t = -temp * Math.log(((1 / lamada_n2) * (active2 / active1) - temp) / + ((FY_N2_I / (FY_N1_C * lamada_n1)) - temp)); } else { - t = temp * Math.log((active1 / active2) * (FY_N2_C / FY_N1_C) * (lamada_n2 / lamada_n1)); + t = temp * Math.log( + (active1 / active2) * (FY_N2_C / FY_N1_C) * (lamada_n2 / lamada_n1)); } // date of Zero Time - Date datetime = DateUtils.parseDate(date + StringPool.SPACE + time, "yyyy-MM-dd HH:mm:ss"); + Date datetime = + DateUtils.parseDate(date + StringPool.SPACE + time, "yyyy-MM-dd HH:mm:ss"); Date oriDate = DateUtils.parseDate("1970-01-01 00:00:00", "yyyy-MM-dd HH:mm:ss"); double second = ((datetime.getTime() - oriDate.getTime()) / 1000) - t - 8 * 60 * 60; @@ -2482,8 +2722,12 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public void exportZeroTimeAnalyse(String nuclide1, String nuclide2, Double product1, Double product2, String target, String energyTFH, String date, String time, HttpServletResponse response) { - Result> result = ZeroTimeAnalyse(nuclide1, nuclide2, product1, product2, target, energyTFH, date, time); + public void exportZeroTimeAnalyse(String nuclide1, String nuclide2, Double product1, + Double product2, String target, String energyTFH, String date, + String time, HttpServletResponse response) { + Result> result = + ZeroTimeAnalyse(nuclide1, nuclide2, product1, product2, target, energyTFH, date, + time); Map annlyse = result.getResult(); annlyse.put("nuclide1", nuclide1); annlyse.put("nuclide2", nuclide2); @@ -2531,8 +2775,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } catch (IOException e) { e.printStackTrace(); } finally { - if (ObjectUtil.isNotNull(writer)) + if (ObjectUtil.isNotNull(writer)) { writer.close(); + } } } @@ -2614,10 +2859,19 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi data.setPeakEffi(null); } } else { - effi = Math.exp(coeffData.Effciency1 * ener + coeffData.Effciency2 + coeffData.Effciency3 / ener + coeffData.Effciency4 / Math.pow(ener, 2) + coeffData.Effciency5 / Math.pow(ener, 3) + coeffData.Effciency6 / Math.pow(ener, 4)); - totE = Math.exp(coeffData.totalEf1 * ener + coeffData.totalEf2 + coeffData.totalEf3 / ener + coeffData.totalEf4 / Math.pow(ener, 2) + coeffData.totalEf5 / Math.pow(ener, 3) + coeffData.totalEf6 / Math.pow(ener, 4)); - data.setTotalEffi(Double.parseDouble(NumberFormatUtil.numberFormat(String.valueOf(totE)))); - data.setPeakEffi(Double.parseDouble(NumberFormatUtil.numberFormat(String.valueOf(effi)))); + effi = Math.exp(coeffData.Effciency1 * ener + coeffData.Effciency2 + + coeffData.Effciency3 / ener + coeffData.Effciency4 / Math.pow(ener, 2) + + coeffData.Effciency5 / Math.pow(ener, 3) + + coeffData.Effciency6 / Math.pow(ener, 4)); + totE = Math.exp( + coeffData.totalEf1 * ener + coeffData.totalEf2 + coeffData.totalEf3 / ener + + coeffData.totalEf4 / Math.pow(ener, 2) + + coeffData.totalEf5 / Math.pow(ener, 3) + + coeffData.totalEf6 / Math.pow(ener, 4)); + data.setTotalEffi( + Double.parseDouble(NumberFormatUtil.numberFormat(String.valueOf(totE)))); + data.setPeakEffi( + Double.parseDouble(NumberFormatUtil.numberFormat(String.valueOf(effi)))); } data.setEnergy(energys.get(i)); data.setUncertain(10.0); @@ -2656,7 +2910,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi double totalEffi = inputData.getTotalEffi() * 1000; double peakEffi = inputData.getPeakEffi() * 1000; double uncertain = inputData.getUncertain(); - out.append(String.format("%-10s%-10s%-10s%-10s%-10s", df.format(energy), df.format(totalEffi), df.format(peakEffi), " ", df.format(uncertain))); + out.append(String.format("%-10s%-10s%-10s%-10s%-10s", df.format(energy), + df.format(totalEffi), df.format(peakEffi), " ", df.format(uncertain))); out.append(System.lineSeparator()); } out.append(System.lineSeparator()); @@ -2679,9 +2934,11 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi ProcessBuilder pb = null; // 如果操作系统是windows 调用KORSUM.exe程序 if (os.contains("win")) { - pb = new ProcessBuilder(parameterProperties.getFilePath() + StringPool.SLASH + "KORSUM.exe"); + pb = new ProcessBuilder( + parameterProperties.getFilePath() + StringPool.SLASH + "KORSUM.exe"); } else { // 其他操作系统 调用KORSUM - pb = new ProcessBuilder(parameterProperties.getFilePath() + StringPool.SLASH + "KORSUM"); + pb = new ProcessBuilder( + parameterProperties.getFilePath() + StringPool.SLASH + "KORSUM"); } // 设置工作目录 pb.directory(new File(parameterProperties.getFilePath())); @@ -2705,7 +2962,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi private Map processFile(File file) { Map m_mapNuclideInfo = new TreeMap<>(); - if (ObjectUtil.isNull(file)) return m_mapNuclideInfo; + if (ObjectUtil.isNull(file)) { + return m_mapNuclideInfo; + } FileReader fileReader = null; BufferedReader reader = null; try { @@ -2754,8 +3013,12 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi e.printStackTrace(); } finally { try { - if (ObjectUtil.isNotNull(fileReader)) fileReader.close(); - if (ObjectUtil.isNotNull(reader)) reader.close(); + if (ObjectUtil.isNotNull(fileReader)) { + fileReader.close(); + } + if (ObjectUtil.isNotNull(reader)) { + reader.close(); + } } catch (IOException e) { e.printStackTrace(); } @@ -2781,7 +3044,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } private String ReadRemaining() { - String txtPath = parameterProperties.getFilePath() + StringPool.SLASH + "Kordat_Remaining.txt"; + String txtPath = + parameterProperties.getFilePath() + StringPool.SLASH + "Kordat_Remaining.txt"; File file = new File(txtPath); StringBuilder m_remainingData = new StringBuilder(); @@ -2797,7 +3061,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result energyCalibration(Integer sampleId, String fileName, String currentText, Double width, HttpServletRequest request) { + public Result energyCalibration(Integer sampleId, String fileName, String currentText, + Double width, HttpServletRequest request) { Result result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Map map = new HashMap<>(); @@ -2810,7 +3075,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi if (StringUtils.isBlank(currentText)) { currentText = phd.getUsedEner(); } - List dataSourceList = phd.getMapEnerKD().keySet().stream().collect(Collectors.toList()); + List dataSourceList = + phd.getMapEnerKD().keySet().stream().collect(Collectors.toList()); map.put("list_dataSource", dataSourceList); if (StringUtils.isNotBlank(currentText)) { map.put("currentText", currentText); @@ -2827,7 +3093,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi if (num < 1) { return result; } - List vFit = CalValuesHandler.calFcnEval(m_vCurCentroid, m_curParam.getP()).counts; + List vFit = + CalValuesHandler.calFcnEval(m_vCurCentroid, m_curParam.getP()).counts; List energyDataList = new LinkedList<>(); for (int i = 0; i < num; ++i) { EnergyData energyData = new EnergyData(); @@ -2841,7 +3108,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi map.put("table", energyDataList); String equation = gammaFileUtil.UpdateEquationEnergy(m_curParam); map.put("equation", equation); - gammaFileUtil.UpdateChartEnergy(m_vCurEnergy, m_curParam, m_vCurCentroid, phd, width, map); + gammaFileUtil.UpdateChartEnergy(m_vCurEnergy, m_curParam, m_vCurCentroid, phd, width, + map); map.put("rg_low", phd.getBaseCtrls().getRg_low()); map.put("rg_high", phd.getBaseCtrls().getRg_high()); } @@ -2851,7 +3119,10 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result changeDataEnergy(List m_vCurCentroid, List m_vCurEnergy, List m_vCurUncert, ParameterInfo m_curParam, Integer sampleId, String fileName, Double width, HttpServletRequest request) { + public Result changeDataEnergy(List m_vCurCentroid, List m_vCurEnergy, + List m_vCurUncert, ParameterInfo m_curParam, + Integer sampleId, String fileName, Double width, + HttpServletRequest request) { Result result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Map map = new HashMap<>(); @@ -2867,7 +3138,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi return result; } - private void DataChangeEnergy(List m_vCurCentroid, List m_vCurEnergy, List m_vCurUncert, ParameterInfo m_curParam, PHDFile phd, Double width, Map map) { + private void DataChangeEnergy(List m_vCurCentroid, List m_vCurEnergy, + List m_vCurUncert, ParameterInfo m_curParam, PHDFile phd, + Double width, Map map) { if (m_vCurEnergy.size() < 1) { return; } else if (m_vCurEnergy.size() == 1) { @@ -2879,13 +3152,16 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi m_curParam.getPerr().add(0.0); } } else { - m_curParam.setP(CalValuesHandler.calFitPara("Cal_Energy", 2, m_vCurCentroid, m_vCurEnergy, m_vCurUncert)); + m_curParam.setP( + CalValuesHandler.calFitPara("Cal_Energy", 2, m_vCurCentroid, m_vCurEnergy, + m_vCurUncert)); } map.put("uncert", m_vCurUncert); map.put("param", m_curParam); List energyDataList = new LinkedList<>(); if (CollectionUtils.isNotEmpty(m_curParam.getP())) { - List vFit = CalValuesHandler.calFcnEval(m_vCurCentroid, m_curParam.getP()).counts; + List vFit = + CalValuesHandler.calFcnEval(m_vCurCentroid, m_curParam.getP()).counts; for (int j = 0; j < m_vCurEnergy.size(); j++) { EnergyData energyData = new EnergyData(); double delta = (m_vCurEnergy.get(j) - vFit.get(j)) / m_vCurEnergy.get(j) * 100; @@ -2913,7 +3189,10 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result applyDataEnergy(List m_vCurCentroid, List m_vCurEnergy, List m_vCurUncert, ParameterInfo m_curParam, String curCalName, Integer sampleId, String fileName, HttpServletRequest request) { + public Result applyDataEnergy(List m_vCurCentroid, List m_vCurEnergy, + List m_vCurUncert, ParameterInfo m_curParam, + String curCalName, Integer sampleId, String fileName, + HttpServletRequest request) { Result result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Cache phdCache = localCache.getPHDCache(); @@ -2923,8 +3202,10 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi return result; } if (!curCalName.contains("Input")) { - List list_cal = phd.getMapEnerKD().keySet().stream().collect(Collectors.toList()); - curCalName = "Input " + (list_cal.stream().filter(item -> item.contains("Input")).collect(Collectors.toList()).size() + 1); + List list_cal = + phd.getMapEnerKD().keySet().stream().collect(Collectors.toList()); + curCalName = "Input " + (list_cal.stream().filter(item -> item.contains("Input")) + .collect(Collectors.toList()).size() + 1); list_cal.add(curCalName); result.setSuccess(true); result.setResult(list_cal); @@ -2940,11 +3221,13 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public void saveDataEnergy(List m_vCurCentroid, List m_vCurEnergy, List m_vCurUncert, HttpServletResponse response) { + public void saveDataEnergy(List m_vCurCentroid, List m_vCurEnergy, + List m_vCurUncert, HttpServletResponse response) { StringBuffer strBuffer = new StringBuffer(); strBuffer.append("#g_Energy").append("\n"); for (int i = 0; i < m_vCurCentroid.size(); i++) { - strBuffer.append(m_vCurEnergy.get(i)).append("\t\t").append(m_vCurCentroid.get(i)).append("\t\t").append(m_vCurUncert.get(i)).append("\n"); + strBuffer.append(m_vCurEnergy.get(i)).append("\t\t").append(m_vCurCentroid.get(i)) + .append("\t\t").append(m_vCurUncert.get(i)).append("\n"); } OutputStream fos = null; try { @@ -2952,7 +3235,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi response.setContentType("application/octet-stream"); response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); // 解决中文不能生成文件 - response.setHeader("Content-Disposition", "attachment; fileName=" + URLEncoder.encode("EnergyCalibration.Ent", "UTF-8")); + response.setHeader("Content-Disposition", + "attachment; fileName=" + URLEncoder.encode("EnergyCalibration.Ent", "UTF-8")); fos = response.getOutputStream(); fos.write(strBuffer.toString().getBytes()); } catch (FileNotFoundException e) { @@ -2969,7 +3253,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result callDataEnergy(MultipartFile file, String sampleFileName, Double width, String currentText, HttpServletRequest request) { + public Result callDataEnergy(MultipartFile file, String sampleFileName, Double width, + String currentText, HttpServletRequest request) { Result result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Cache phdCache = localCache.getPHDCache(); @@ -3024,11 +3309,13 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi if (num < 1) { return result; } - List vFit = CalValuesHandler.calFcnEval(m_vCurCentroid, m_curParam.getP()).counts; + List vFit = + CalValuesHandler.calFcnEval(m_vCurCentroid, m_curParam.getP()).counts; List energyDataList = new LinkedList<>(); for (int i = 0; i < num; ++i) { EnergyData energyData = new EnergyData(); - double delta = (m_vCurEnergy.get(i) - vFit.get(i)) / m_vCurEnergy.get(i) * 100; + double delta = + (m_vCurEnergy.get(i) - vFit.get(i)) / m_vCurEnergy.get(i) * 100; energyData.setChannel(String.valueOf(m_vCurCentroid.get(i))); energyData.setEnergy(String.valueOf(m_vCurEnergy.get(i))); energyData.setFit(String.format("%.3f", vFit.get(i))); @@ -3038,7 +3325,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi map.put("table", energyDataList); String equation = gammaFileUtil.UpdateEquationEnergy(m_curParam); map.put("equation", equation); - gammaFileUtil.UpdateChartEnergy(m_vCurEnergy, m_curParam, m_vCurCentroid, phd, width, map); + gammaFileUtil.UpdateChartEnergy(m_vCurEnergy, m_curParam, m_vCurCentroid, phd, + width, map); map.put("rg_low", phd.getBaseCtrls().getRg_low()); map.put("rg_high", phd.getBaseCtrls().getRg_high()); result.setSuccess(true); @@ -3060,7 +3348,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result setCurrentEnergy(String fileName, String currentName, HttpServletRequest request) { + public Result setCurrentEnergy(String fileName, String currentName, + HttpServletRequest request) { Result result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Cache phdCache = localCache.getPHDCache(); @@ -3079,7 +3368,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result resolutionCalibration(Integer sampleId, String fileName, String currentText, Double width, HttpServletRequest request) { + public Result resolutionCalibration(Integer sampleId, String fileName, String currentText, + Double width, HttpServletRequest request) { Result result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Map map = new HashMap<>(); @@ -3092,7 +3382,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi if (StringUtils.isBlank(currentText)) { currentText = phd.getUsedReso(); } - List dataSourceList = phd.getMapResoKD().keySet().stream().collect(Collectors.toList()); + List dataSourceList = + phd.getMapResoKD().keySet().stream().collect(Collectors.toList()); map.put("list_dataSource", dataSourceList); if (StringUtils.isNotBlank(currentText)) { map.put("currentText", currentText); @@ -3123,7 +3414,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi map.put("table", resolutionDataList); String equation = gammaFileUtil.UpdateEquationResolution(m_curParam); map.put("equation", equation); - gammaFileUtil.UpdateChartResolution(m_vCurEnergy, m_curParam, m_vCurReso, phd, width, map); + gammaFileUtil.UpdateChartResolution(m_vCurEnergy, m_curParam, m_vCurReso, phd, width, + map); map.put("ECutAnalysis_Low", phd.getSetting().getECutAnalysis_Low()); map.put("G_energy_span", phd.getSpec().getG_energy_span()); } @@ -3133,7 +3425,10 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result changeDataResolution(List m_vCurReso, List m_vCurEnergy, List m_vCurUncert, ParameterInfo m_curParam, Integer sampleId, String fileName, Double width, HttpServletRequest request) { + public Result changeDataResolution(List m_vCurReso, List m_vCurEnergy, + List m_vCurUncert, ParameterInfo m_curParam, + Integer sampleId, String fileName, Double width, + HttpServletRequest request) { Result result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Map map = new HashMap<>(); @@ -3149,8 +3444,11 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi return result; } - public void DataChangeResolution(List m_vCurReso, List m_vCurEnergy, List m_vCurUncert, ParameterInfo m_curParam, PHDFile phd, Double width, Map map) { - m_curParam.setP(CalValuesHandler.calFitPara("Cal_Resolution", 4, m_vCurEnergy, m_vCurReso, m_vCurUncert)); + public void DataChangeResolution(List m_vCurReso, List m_vCurEnergy, + List m_vCurUncert, ParameterInfo m_curParam, + PHDFile phd, Double width, Map map) { + m_curParam.setP(CalValuesHandler.calFitPara("Cal_Resolution", 4, m_vCurEnergy, m_vCurReso, + m_vCurUncert)); map.put("uncert", m_vCurUncert); map.put("param", m_curParam); @@ -3175,7 +3473,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi resolutionData.setDelta(""); resolutionDataList.add(resolutionData); } - String Warning = "Fit failed. Maybe\nSquare root of polynomial isn't suitable for the datas."; + String Warning = + "Fit failed. Maybe\nSquare root of polynomial isn't suitable for the datas."; } map.put("table", resolutionDataList); String equation = gammaFileUtil.UpdateEquationResolution(m_curParam); @@ -3184,7 +3483,10 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result applyDataResolution(List m_vCurReso, List m_vCurEnergy, List m_vCurUncert, ParameterInfo m_curParam, String curCalName, Integer sampleId, String fileName, HttpServletRequest request) { + public Result applyDataResolution(List m_vCurReso, List m_vCurEnergy, + List m_vCurUncert, ParameterInfo m_curParam, + String curCalName, Integer sampleId, String fileName, + HttpServletRequest request) { Result result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Cache phdCache = localCache.getPHDCache(); @@ -3194,8 +3496,10 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi return result; } if (!curCalName.contains("Input")) { - List list_cal = phd.getMapResoKD().keySet().stream().collect(Collectors.toList()); - curCalName = "Input " + (list_cal.stream().filter(item -> item.contains("Input")).collect(Collectors.toList()).size() + 1); + List list_cal = + phd.getMapResoKD().keySet().stream().collect(Collectors.toList()); + curCalName = "Input " + (list_cal.stream().filter(item -> item.contains("Input")) + .collect(Collectors.toList()).size() + 1); list_cal.add(curCalName); result.setSuccess(true); result.setResult(list_cal); @@ -3211,11 +3515,13 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public void saveDataResolution(List m_vCurReso, List m_vCurEnergy, List m_vCurUncert, HttpServletResponse response) { + public void saveDataResolution(List m_vCurReso, List m_vCurEnergy, + List m_vCurUncert, HttpServletResponse response) { StringBuffer strBuffer = new StringBuffer(); strBuffer.append("#g_Resolution").append("\n"); for (int i = 0; i < m_vCurReso.size(); i++) { - strBuffer.append(m_vCurEnergy.get(i)).append("\t\t").append(m_vCurReso.get(i)).append("\t\t").append(m_vCurUncert.get(i)).append("\n"); + strBuffer.append(m_vCurEnergy.get(i)).append("\t\t").append(m_vCurReso.get(i)) + .append("\t\t").append(m_vCurUncert.get(i)).append("\n"); } OutputStream fos = null; try { @@ -3223,7 +3529,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi response.setContentType("application/octet-stream"); response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); // 解决中文不能生成文件 - response.setHeader("Content-Disposition", "attachment; fileName=" + URLEncoder.encode("ResolutionCalibration.Ent", "UTF-8")); + response.setHeader("Content-Disposition", "attachment; fileName=" + + URLEncoder.encode("ResolutionCalibration.Ent", "UTF-8")); fos = response.getOutputStream(); fos.write(strBuffer.toString().getBytes()); } catch (FileNotFoundException e) { @@ -3240,7 +3547,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result callDataResolution(MultipartFile file, String sampleFileName, Double width, String currentText, HttpServletRequest request) { + public Result callDataResolution(MultipartFile file, String sampleFileName, Double width, + String currentText, HttpServletRequest request) { Result result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Cache phdCache = localCache.getPHDCache(); @@ -3295,7 +3603,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi if (num < 1) { return result; } - List vFit = CalValuesHandler.calFcnEval(m_vCurEnergy, m_curParam.getP()).counts; + List vFit = + CalValuesHandler.calFcnEval(m_vCurEnergy, m_curParam.getP()).counts; List resolutionDataList = new LinkedList<>(); for (int i = 0; i < num; ++i) { ResolutionData resolutionData = new ResolutionData(); @@ -3309,7 +3618,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi map.put("table", resolutionDataList); String equation = gammaFileUtil.UpdateEquationResolution(m_curParam); map.put("equation", equation); - gammaFileUtil.UpdateChartResolution(m_vCurEnergy, m_curParam, m_vCurReso, phd, width, map); + gammaFileUtil.UpdateChartResolution(m_vCurEnergy, m_curParam, m_vCurReso, phd, + width, map); map.put("ECutAnalysis_Low", phd.getSetting().getECutAnalysis_Low()); map.put("G_energy_span", phd.getSpec().getG_energy_span()); result.setSuccess(true); @@ -3331,7 +3641,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result setCurrentResolution(String fileName, String currentName, HttpServletRequest request) { + public Result setCurrentResolution(String fileName, String currentName, + HttpServletRequest request) { Result result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Cache phdCache = localCache.getPHDCache(); @@ -3350,7 +3661,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result EfficiencyCalibration(Integer sampleId, String fileName, String currentText, Double width, HttpServletRequest request) { + public Result EfficiencyCalibration(Integer sampleId, String fileName, String currentText, + Double width, HttpServletRequest request) { Result result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Map map = new HashMap<>(); @@ -3372,7 +3684,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi if (StringUtils.isBlank(currentText)) { currentText = phd.getUsedEffi(); } - List dataSourceList = phd.getMapEffiKD().keySet().stream().collect(Collectors.toList()); + List dataSourceList = + phd.getMapEffiKD().keySet().stream().collect(Collectors.toList()); map.put("list_dataSource", dataSourceList); if (StringUtils.isNotBlank(currentText)) { map.put("currentText", currentText); @@ -3401,9 +3714,11 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi efficiencyDataList.add(efficiencyData); } map.put("table", efficiencyDataList); - String equation = gammaFileUtil.UpdateEquationEfficiency(m_vCurEnergy, m_curParam, 0, null); + String equation = + gammaFileUtil.UpdateEquationEfficiency(m_vCurEnergy, m_curParam, 0, null); map.put("equation", equation); - gammaFileUtil.UpdateChartEfficiency(m_vCurEnergy, m_curParam, m_vCurEffi, phd, width, map); + gammaFileUtil.UpdateChartEfficiency(m_vCurEnergy, m_curParam, m_vCurEffi, phd, width, + map); map.put("ECutAnalysis_Low", phd.getSetting().getECutAnalysis_Low()); map.put("G_energy_span", phd.getSpec().getG_energy_span()); } @@ -3413,7 +3728,10 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result changeDataEfficiency(List m_vCurEffi, List m_vCurEnergy, List m_vCurUncert, ParameterInfo m_curParam, Integer funcId, Integer sampleId, String fileName, Double width, Integer curRow, HttpServletRequest request) { + public Result changeDataEfficiency(List m_vCurEffi, List m_vCurEnergy, + List m_vCurUncert, ParameterInfo m_curParam, + Integer funcId, Integer sampleId, String fileName, + Double width, Integer curRow, HttpServletRequest request) { Result result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Map map = new HashMap<>(); @@ -3423,14 +3741,20 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi result.error500("Please select the parse file first!"); return result; } - DataChangeEfficiency(m_vCurEffi, m_vCurEnergy, m_vCurUncert, m_curParam, funcId, phd, width, curRow, map); + DataChangeEfficiency(m_vCurEffi, m_vCurEnergy, m_vCurUncert, m_curParam, funcId, phd, width, + curRow, map); result.setSuccess(true); result.setResult(map); return result; } - public void DataChangeEfficiency(List m_vCurEffi, List m_vCurEnergy, List m_vCurUncert, ParameterInfo m_curParam, Integer funcId, PHDFile phd, Double width, Integer curRow, Map map) { - m_curParam.setP(CalValuesHandler.calFitPara("Cal_Efficiency", funcId, m_vCurEnergy, m_vCurEffi, m_vCurUncert)); + public void DataChangeEfficiency(List m_vCurEffi, List m_vCurEnergy, + List m_vCurUncert, ParameterInfo m_curParam, + Integer funcId, PHDFile phd, Double width, Integer curRow, + Map map) { + m_curParam.setP( + CalValuesHandler.calFitPara("Cal_Efficiency", funcId, m_vCurEnergy, m_vCurEffi, + m_vCurUncert)); map.put("uncert", m_vCurUncert); map.put("param", m_curParam); @@ -3455,16 +3779,21 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi efficiencyData.setDelta(""); efficiencyDataList.add(efficiencyData); } - String Warning = "Fit failed. Maybe:\n1. data's number are too little;\n2. %1 isn't suitable for the data."; + String Warning = + "Fit failed. Maybe:\n1. data's number are too little;\n2. %1 isn't suitable for the data."; } map.put("table", efficiencyDataList); - String equation = gammaFileUtil.UpdateEquationEfficiency(m_vCurEnergy, m_curParam, curRow, funcId); + String equation = + gammaFileUtil.UpdateEquationEfficiency(m_vCurEnergy, m_curParam, curRow, funcId); map.put("equation", equation); gammaFileUtil.UpdateChartEfficiency(m_vCurEnergy, m_curParam, m_vCurEffi, phd, width, map); } @Override - public Result applyDataEfficiency(List m_vCurEffi, List m_vCurEnergy, List m_vCurUncert, ParameterInfo m_curParam, String curCalName, Integer sampleId, String fileName, HttpServletRequest request) { + public Result applyDataEfficiency(List m_vCurEffi, List m_vCurEnergy, + List m_vCurUncert, ParameterInfo m_curParam, + String curCalName, Integer sampleId, String fileName, + HttpServletRequest request) { Result result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Cache phdCache = localCache.getPHDCache(); @@ -3474,8 +3803,10 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi return result; } if (!curCalName.contains("Input")) { - List list_cal = phd.getMapEffiKD().keySet().stream().collect(Collectors.toList()); - curCalName = "Input " + (list_cal.stream().filter(item -> item.contains("Input")).collect(Collectors.toList()).size() + 1); + List list_cal = + phd.getMapEffiKD().keySet().stream().collect(Collectors.toList()); + curCalName = "Input " + (list_cal.stream().filter(item -> item.contains("Input")) + .collect(Collectors.toList()).size() + 1); list_cal.add(curCalName); result.setSuccess(true); result.setResult(list_cal); @@ -3491,11 +3822,14 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public void saveDataEfficiency(List m_vCurEffi, List m_vCurEnergy, List m_vCurUncert, Integer funId, HttpServletResponse response) { + public void saveDataEfficiency(List m_vCurEffi, List m_vCurEnergy, + List m_vCurUncert, Integer funId, + HttpServletResponse response) { StringBuffer strBuffer = new StringBuffer(); strBuffer.append("#g_Efficiency").append("\n"); for (int i = 0; i < m_vCurEffi.size(); i++) { - strBuffer.append(m_vCurEnergy.get(i)).append("\t\t").append(m_vCurEffi.get(i)).append("\t\t").append(m_vCurUncert.get(i)).append("\n"); + strBuffer.append(m_vCurEnergy.get(i)).append("\t\t").append(m_vCurEffi.get(i)) + .append("\t\t").append(m_vCurUncert.get(i)).append("\n"); } strBuffer.append("FitType = ").append(funId); OutputStream fos = null; @@ -3504,7 +3838,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi response.setContentType("application/octet-stream"); response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); // 解决中文不能生成文件 - response.setHeader("Content-Disposition", "attachment; fileName=" + URLEncoder.encode("EfficiencyCalibration.Eft", "UTF-8")); + response.setHeader("Content-Disposition", "attachment; fileName=" + + URLEncoder.encode("EfficiencyCalibration.Eft", "UTF-8")); fos = response.getOutputStream(); fos.write(strBuffer.toString().getBytes()); } catch (FileNotFoundException e) { @@ -3521,7 +3856,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result callDataEfficiency(MultipartFile file, String sampleFileName, Double width, String currentText, HttpServletRequest request) { + public Result callDataEfficiency(MultipartFile file, String sampleFileName, Double width, + String currentText, HttpServletRequest request) { Result result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Cache phdCache = localCache.getPHDCache(); @@ -3588,7 +3924,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi if (num < 1) { return result; } - List vFit = CalValuesHandler.calFcnEval(m_vCurEnergy, m_curParam.getP()).counts; + List vFit = + CalValuesHandler.calFcnEval(m_vCurEnergy, m_curParam.getP()).counts; List efficiencyDataList = new LinkedList<>(); for (int i = 0; i < num; ++i) { double delta = (m_vCurEffi.get(i) - vFit.get(i)) / m_vCurEffi.get(i) * 100; @@ -3600,9 +3937,12 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi efficiencyDataList.add(efficiencyData); } map.put("table", efficiencyDataList); - String equation = gammaFileUtil.UpdateEquationEfficiency(m_vCurEnergy, m_curParam, 0, null); + String equation = + gammaFileUtil.UpdateEquationEfficiency(m_vCurEnergy, m_curParam, 0, + null); map.put("equation", equation); - gammaFileUtil.UpdateChartEfficiency(m_vCurEnergy, m_curParam, m_vCurEffi, phd, width, map); + gammaFileUtil.UpdateChartEfficiency(m_vCurEnergy, m_curParam, m_vCurEffi, phd, + width, map); map.put("ECutAnalysis_Low", phd.getSetting().getECutAnalysis_Low()); map.put("G_energy_span", phd.getSpec().getG_energy_span()); result.setSuccess(true); @@ -3624,7 +3964,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result setCurrentEfficiency(String fileName, String currentName, HttpServletRequest request) { + public Result setCurrentEfficiency(String fileName, String currentName, + HttpServletRequest request) { Result result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Cache phdCache = localCache.getPHDCache(); @@ -3643,7 +3984,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result NuclideLibrary(Integer sampleId, String fileName, String editEnergy, double err, String libraryName, String nuclideName, HttpServletRequest request) { + public Result NuclideLibrary(Integer sampleId, String fileName, String editEnergy, double err, + String libraryName, String nuclideName, + HttpServletRequest request) { Result result = new Result(); Map map = new HashMap<>(); String userName = JwtUtil.getUserNameByToken(request); @@ -3661,7 +4004,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi double max = editEnergyDou + err; if (libraryName.equals("UserLibrary")) { //获取缓存的核素信息 - Map nuclideMap = (Map) redisUtil.get(userName + StringPool.DASH + phd.getHeader().getSystem_type()); + Map nuclideMap = (Map) redisUtil.get( + userName + StringPool.DASH + phd.getHeader().getSystem_type()); //判断缓存的核素信息是否为空 if (CollectionUtils.isNotEmpty(nuclideMap)) { //遍历核素信息 @@ -3688,11 +4032,13 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } else { if (libraryName.equals("UserLibrary")) { //redis中获取缓存的用户关注核素信息 - nuclides = (List) redisUtil.get(userName + StringPool.DASH + phd.getHeader().getSystem_type() + "-list"); + nuclides = (List) redisUtil.get( + userName + StringPool.DASH + phd.getHeader().getSystem_type() + "-list"); } else if (libraryName.equals("FULLLibrary")) { nuclides = spectrumAnalysisMapper.getNuclideNames("CONFIGURATION.GARDS_NUCL_LIB"); } else if (libraryName.equals("RelevantLibrary")) { - nuclides = spectrumAnalysisMapper.getNuclideNames("CONFIGURATION.GARDS_RELEVANT_NUCLIDE"); + nuclides = spectrumAnalysisMapper.getNuclideNames( + "CONFIGURATION.GARDS_RELEVANT_NUCLIDE"); } } map.put("nuclides", nuclides); @@ -3718,7 +4064,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi min = editEnergyDou - err; max = editEnergyDou + err; } - List nuclideLines = spectrumAnalysisMapper.getNuclideLine(min, max, name); + List nuclideLines = + spectrumAnalysisMapper.getNuclideLine(min, max, name); nuclideLines.stream().forEach(item -> { if (Objects.nonNull(item.getYield())) { item.setYield(Double.valueOf(String.format("%.3f", item.getYield()))); @@ -3766,7 +4113,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi if (Objects.isNull(nuclideInfo.getHalflifeErr())) { map.put("lab_halfLifeErr", ""); } else { - map.put("lab_halfLifeErr", String.format("%.3f", nuclideInfo.getHalflifeErr().doubleValue()) + "%"); + map.put("lab_halfLifeErr", + String.format("%.3f", nuclideInfo.getHalflifeErr().doubleValue()) + "%"); } } return map; @@ -3787,28 +4135,48 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi List daughterList = new LinkedList<>(); TableDaughter tableDaughter1 = new TableDaughter(); tableDaughter1.setDaughters(parentAndDaughter.getDaughters1()); - tableDaughter1.setBranchingratios(String.format("%.2f", parentAndDaughter.getBranchingratios1().doubleValue()) + "%"); - tableDaughter1.setDaughtersstable(parentAndDaughter.getDaughtersstable1().intValue() == 1 ? "Stable" : "Unstable"); + tableDaughter1.setBranchingratios( + String.format("%.2f", parentAndDaughter.getBranchingratios1().doubleValue()) + + "%"); + tableDaughter1.setDaughtersstable( + parentAndDaughter.getDaughtersstable1().intValue() == 1 ? "Stable" : + "Unstable"); daughterList.add(tableDaughter1); TableDaughter tableDaughter2 = new TableDaughter(); tableDaughter2.setDaughters(parentAndDaughter.getDaughters2()); - tableDaughter2.setBranchingratios(String.format("%.2f", parentAndDaughter.getBranchingratios2().doubleValue()) + "%"); - tableDaughter2.setDaughtersstable(parentAndDaughter.getDaughtersstable2().intValue() == 1 ? "Stable" : "Unstable"); + tableDaughter2.setBranchingratios( + String.format("%.2f", parentAndDaughter.getBranchingratios2().doubleValue()) + + "%"); + tableDaughter2.setDaughtersstable( + parentAndDaughter.getDaughtersstable2().intValue() == 1 ? "Stable" : + "Unstable"); daughterList.add(tableDaughter2); TableDaughter tableDaughter3 = new TableDaughter(); tableDaughter3.setDaughters(parentAndDaughter.getDaughters3()); - tableDaughter3.setBranchingratios(String.format("%.2f", parentAndDaughter.getBranchingratios3().doubleValue()) + "%"); - tableDaughter3.setDaughtersstable(parentAndDaughter.getDaughtersstable3().intValue() == 1 ? "Stable" : "Unstable"); + tableDaughter3.setBranchingratios( + String.format("%.2f", parentAndDaughter.getBranchingratios3().doubleValue()) + + "%"); + tableDaughter3.setDaughtersstable( + parentAndDaughter.getDaughtersstable3().intValue() == 1 ? "Stable" : + "Unstable"); daughterList.add(tableDaughter3); TableDaughter tableDaughter4 = new TableDaughter(); tableDaughter4.setDaughters(parentAndDaughter.getDaughters4()); - tableDaughter4.setBranchingratios(String.format("%.2f", parentAndDaughter.getBranchingratios4().doubleValue()) + "%"); - tableDaughter4.setDaughtersstable(parentAndDaughter.getDaughtersstable4().intValue() == 1 ? "Stable" : "Unstable"); + tableDaughter4.setBranchingratios( + String.format("%.2f", parentAndDaughter.getBranchingratios4().doubleValue()) + + "%"); + tableDaughter4.setDaughtersstable( + parentAndDaughter.getDaughtersstable4().intValue() == 1 ? "Stable" : + "Unstable"); daughterList.add(tableDaughter4); TableDaughter tableDaughter5 = new TableDaughter(); tableDaughter5.setDaughters(parentAndDaughter.getDaughters5()); - tableDaughter5.setBranchingratios(String.format("%.2f", parentAndDaughter.getBranchingratios5().doubleValue()) + "%"); - tableDaughter5.setDaughtersstable(parentAndDaughter.getDaughtersstable5().intValue() == 1 ? "Stable" : "Unstable"); + tableDaughter5.setBranchingratios( + String.format("%.2f", parentAndDaughter.getBranchingratios5().doubleValue()) + + "%"); + tableDaughter5.setDaughtersstable( + parentAndDaughter.getDaughtersstable5().intValue() == 1 ? "Stable" : + "Unstable"); daughterList.add(tableDaughter5); map.put("table_daughter", daughterList); } @@ -3826,9 +4194,11 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi result.error500("Please select the parse file first!"); return result; } - List nuclides = spectrumAnalysisMapper.getNuclideNames("CONFIGURATION.GARDS_NUCL_LIB"); + List nuclides = + spectrumAnalysisMapper.getNuclideNames("CONFIGURATION.GARDS_NUCL_LIB"); //redis中获取缓存的用户关注核素信息 - List userNuclides = (List) redisUtil.get(userName + StringPool.DASH + phd.getHeader().getSystem_type() + "-list"); + List userNuclides = (List) redisUtil.get( + userName + StringPool.DASH + phd.getHeader().getSystem_type() + "-list"); map.put("AllNuclides", nuclides); map.put("UserNuclides", userNuclides); result.setSuccess(true); @@ -3837,7 +4207,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result saveUserLibrary(List userLibraryName, String fileName, HttpServletRequest request) { + public Result saveUserLibrary(List userLibraryName, String fileName, + HttpServletRequest request) { Result result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Cache phdCache = localCache.getPHDCache(); @@ -3851,17 +4222,22 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi return result; } userLibraryName = userLibraryName.stream().distinct().collect(Collectors.toList()); - boolean save = defaultNuclideSpectrumService.saveNuclidesByUserName(userLibraryName, userName, phd.getHeader().getSystem_type().toUpperCase()); + boolean save = + defaultNuclideSpectrumService.saveNuclidesByUserName(userLibraryName, userName, + phd.getHeader().getSystem_type().toUpperCase()); if (save) { result.success("Modified successfully!"); // 重新计算峰值 - Map allNuclideMap = (Map) redisUtil.get("AllNuclideMap"); + Map allNuclideMap = + (Map) redisUtil.get("AllNuclideMap"); // 查询当前用户关联的核素信息 List userLib = new LinkedList<>(); // 从postgreSql中获取当前用户关注的核素信息 如果当前用户没有 则返回管理员的 - userLib = defaultNuclideSpectrumService.findNuclidesByUserName(userName, phd.getHeader().getSystem_type().toUpperCase()); + userLib = defaultNuclideSpectrumService.findNuclidesByUserName(userName, + phd.getHeader().getSystem_type().toUpperCase()); if (CollectionUtils.isEmpty(userLib)) { - userLib = defaultNuclideSpectrumService.findNuclidesByUserName("admin", phd.getHeader().getSystem_type().toUpperCase()); + userLib = defaultNuclideSpectrumService.findNuclidesByUserName("admin", + phd.getHeader().getSystem_type().toUpperCase()); } Map nuclideMap = new HashMap<>(); for (Map.Entry entry : allNuclideMap.entrySet()) { @@ -3869,8 +4245,10 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi nuclideMap.put(entry.getKey(), entry.getValue()); } } - redisUtil.set(userName + StringPool.DASH + phd.getHeader().getSystem_type() + "-list", userLib); - redisUtil.set(userName + StringPool.DASH + phd.getHeader().getSystem_type(), nuclideMap); + redisUtil.set(userName + StringPool.DASH + phd.getHeader().getSystem_type() + "-list", + userLib); + redisUtil.set(userName + StringPool.DASH + phd.getHeader().getSystem_type(), + nuclideMap); phd.setPhdNuclideMap(nuclideMap); } else { result.success("Modification failure!"); @@ -3926,7 +4304,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi return result; } - public Result> peakInformation(Integer sampleId, String fileName, HttpServletRequest request) { + public Result> peakInformation(Integer sampleId, String fileName, + HttpServletRequest request) { Result> result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Cache phdCache = localCache.getPHDCache(); @@ -3945,7 +4324,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi tablePeak.setMultiplet(String.valueOf(peak.multiIndex)); tablePeak.setFwhm(String.format("%.3f", peak.fwhm)); tablePeak.setNetArea(String.format("%.3f", peak.area)); - tablePeak.setAreaErr(peak.area > 0 ? String.format("%.3f", (peak.areaErr / peak.area) * 100) : "0"); + tablePeak.setAreaErr( + peak.area > 0 ? String.format("%.3f", (peak.areaErr / peak.area) * 100) : + "0"); tablePeak.setSignificant(String.format("%.3f", peak.significance)); tablePeak.setSensitivity(String.format("%.3f", peak.sensitivity)); tablePeak.setIndentify(StringUtils.join(peak.nuclides, ";")); @@ -3958,10 +4339,13 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public void exportPeakInformation(Integer sampleId, String fileName, HttpServletRequest request, HttpServletResponse response) { + public void exportPeakInformation(Integer sampleId, String fileName, HttpServletRequest request, + HttpServletResponse response) { Result> result = peakInformation(sampleId, fileName, request); List peaks = result.getResult(); - if (CollUtil.isEmpty(peaks)) return; + if (CollUtil.isEmpty(peaks)) { + return; + } String export = "PeakInformation-Gamma.xls"; for (int i = 0; i < peaks.size(); i++) { peaks.get(i).setNo(i + 1); @@ -3976,7 +4360,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi if (StringUtils.isBlank(reportPath)) { throw new RuntimeException("The automatic handler generated report does not exist!"); } - String pathFileName = spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + reportPath + ".txt"; + String pathFileName = + spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + + StringPool.SLASH + reportPath + ".txt"; InputStream inputStream = null; ServletOutputStream outputStream = null; try { @@ -4010,7 +4396,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi public void exportARR(Integer sampleId, HttpServletResponse response) { // 获取自动处理生成的报告地址 String reportPath = spectrumAnalysisMapper.viewARR(sampleId); - String pathFileName = spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + reportPath + ".txt"; + String pathFileName = + spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + + StringPool.SLASH + reportPath + ".txt"; InputStream inputStream = null; ServletOutputStream outputStream = null; try { @@ -4019,7 +4407,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi // 设置响应类型 response.setContentType("application/octet-stream"); // 解决中文不能生成文件 - response.setHeader("Content-Disposition", "attachment; fileName=" + URLEncoder.encode("ARR.txt", "UTF-8")); + response.setHeader("Content-Disposition", + "attachment; fileName=" + URLEncoder.encode("ARR.txt", "UTF-8")); outputStream = response.getOutputStream(); byte[] buffer = new byte[1024]; int bytesRead; @@ -4062,7 +4451,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public void exportRRR(Integer sampleId, String fileName, HttpServletRequest request, HttpServletResponse response) { + public void exportRRR(Integer sampleId, String fileName, HttpServletRequest request, + HttpServletResponse response) { String userName = JwtUtil.getUserNameByToken(request); Cache phdCache = localCache.getPHDCache(); PHDFile phd = phdCache.getIfPresent(fileName + StringPool.DASH + userName); @@ -4075,7 +4465,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi // 设置响应类型 response.setContentType("application/octet-stream"); // 解决中文不能生成文件 - response.setHeader("Content-Disposition", "attachment; fileName=" + URLEncoder.encode("RRR.txt", "UTF-8")); + response.setHeader("Content-Disposition", + "attachment; fileName=" + URLEncoder.encode("RRR.txt", "UTF-8")); fos = response.getOutputStream(); fos.write(reportContent.getBytes()); } catch (FileNotFoundException e) { @@ -4092,7 +4483,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result> radionuclideActivity(Integer sampleId, String fileName, HttpServletRequest request) { + public Result> radionuclideActivity(Integer sampleId, String fileName, + HttpServletRequest request) { Result> result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Cache phdCache = localCache.getPHDCache(); @@ -4101,31 +4493,38 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi result.error500("Please select the parse file first!"); return result; } - Map map = gammaFileUtil.UpdateDatasNuclideActivity(phd.getMapNucActMda(), phd.getUsedSetting().getRefTime_act(), phd.getUsedSetting().getRefTime_conc()); + Map map = gammaFileUtil.UpdateDatasNuclideActivity(phd.getMapNucActMda(), + phd.getUsedSetting().getRefTime_act(), phd.getUsedSetting().getRefTime_conc()); result.setSuccess(true); result.setResult(map); return result; } @Override - public void exportRadionuclideActivity(Integer sampleId, String fileName, String arTime, String crTime, HttpServletRequest request, HttpServletResponse response) { + public void exportRadionuclideActivity(Integer sampleId, String fileName, String arTime, + String crTime, HttpServletRequest request, + HttpServletResponse response) { Result> result = radionuclideActivity(sampleId, fileName, request); Map dataMap = result.getResult(); - if (MapUtil.isEmpty(dataMap)) return; + if (MapUtil.isEmpty(dataMap)) { + return; + } String formater = DateConstant.DATE_TIME; Date actRef = (Date) dataMap.get("dateTime_act_ref"); Date conRef = (Date) dataMap.get("dateTime_con_ref"); if (StrUtil.isNotBlank(arTime)) { dataMap.put("dateTime_act_ref", arTime); } else { - if (ObjectUtil.isNotNull(actRef)) + if (ObjectUtil.isNotNull(actRef)) { dataMap.put("dateTime_act_ref", DateUtil.format(actRef, formater)); + } } if (StrUtil.isNotBlank(crTime)) { dataMap.put("dateTime_con_ref", crTime); } else { - if (ObjectUtil.isNotNull(conRef)) + if (ObjectUtil.isNotNull(conRef)) { dataMap.put("dateTime_con_ref", DateUtil.format(conRef, formater)); + } } String export = "RadionuclideActivity-Gamma.xls"; @@ -4156,7 +4555,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result> sampleInformation(Integer sampleId, String fileName, HttpServletRequest request) { + public Result> sampleInformation(Integer sampleId, String fileName, + HttpServletRequest request) { Result> result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Cache phdCache = localCache.getPHDCache(); @@ -4169,25 +4569,32 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi try { String collect_start = ""; Date collect_start_dt = null; - if (StringUtils.isNotBlank(phd.getCollect().getCollection_start_date()) && StringUtils.isNotBlank(phd.getCollect().getCollection_start_time())) { - collect_start = phd.getCollect().getCollection_start_date() + StringPool.SPACE + phd.getCollect().getCollection_start_time(); + if (StringUtils.isNotBlank(phd.getCollect().getCollection_start_date()) && + StringUtils.isNotBlank(phd.getCollect().getCollection_start_time())) { + collect_start = phd.getCollect().getCollection_start_date() + StringPool.SPACE + + phd.getCollect().getCollection_start_time(); collect_start_dt = DateUtils.parseDate(collect_start); } String collect_stop = ""; Date collect_stop_dt = null; - if (StringUtils.isNotBlank(phd.getCollect().getCollection_stop_date()) && StringUtils.isNotBlank(phd.getCollect().getCollection_stop_time())) { - collect_stop = phd.getCollect().getCollection_stop_date() + StringPool.SPACE + phd.getCollect().getCollection_stop_time(); + if (StringUtils.isNotBlank(phd.getCollect().getCollection_stop_date()) && + StringUtils.isNotBlank(phd.getCollect().getCollection_stop_time())) { + collect_stop = phd.getCollect().getCollection_stop_date() + StringPool.SPACE + + phd.getCollect().getCollection_stop_time(); collect_stop_dt = DateUtils.parseDate(collect_stop); } String acq_start = ""; Date acq_start_dt = null; - if (StringUtils.isNotBlank(phd.getAcq().getAcquisition_start_date()) && StringUtils.isNotBlank(phd.getAcq().getAcquisition_start_time())) { - acq_start = phd.getAcq().getAcquisition_start_date() + StringPool.SPACE + phd.getAcq().getAcquisition_start_time(); + if (StringUtils.isNotBlank(phd.getAcq().getAcquisition_start_date()) && + StringUtils.isNotBlank(phd.getAcq().getAcquisition_start_time())) { + acq_start = phd.getAcq().getAcquisition_start_date() + StringPool.SPACE + + phd.getAcq().getAcquisition_start_time(); acq_start_dt = DateUtils.parseDate(acq_start); } double Sampling_Time = 0.0; if (Objects.nonNull(collect_stop_dt) && Objects.nonNull(collect_start_dt)) { - Sampling_Time = ((collect_stop_dt.getTime() - collect_start_dt.getTime()) / 1000) / 3600.0; + Sampling_Time = + ((collect_stop_dt.getTime() - collect_start_dt.getTime()) / 1000) / 3600.0; } double Decay_Time = 0.0; if (Objects.nonNull(acq_start_dt) && Objects.nonNull(collect_stop_dt)) { @@ -4195,12 +4602,14 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } String acq_stop = ""; if (Objects.nonNull(acq_start_dt)) { - long secs = (long) (acq_start_dt.getTime() + (phd.getAcq().getAcquisition_real_time() * 1000)); + long secs = (long) (acq_start_dt.getTime() + + (phd.getAcq().getAcquisition_real_time() * 1000)); acq_stop = DateUtils.formatDate(new Date(secs), "yyyy/MM/dd HH:mm:ss.S"); } map.put("stationId", phd.getHeader().getSite_code()); map.put("sampleId", phd.getId_sample()); - map.put("sampleQuantity", String.format("%.2f", phd.getCollect().getAir_volume()) + " m3"); + map.put("sampleQuantity", + String.format("%.2f", phd.getCollect().getAir_volume()) + " m3"); map.put("collectStart", collect_start); map.put("collectStop", collect_stop); map.put("acquisitionStart", acq_start); @@ -4211,8 +4620,12 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi map.put("sampleType", phd.getHeader().getSystem_type().toUpperCase()); map.put("samplingTime", String.format("%.2f", Sampling_Time) + " hours"); map.put("decayTime", String.format("%.2f", Decay_Time) + " hours"); - map.put("acquisitionTime", String.format("%.2f", phd.getAcq().getAcquisition_real_time() / 3600.0) + " hours"); - map.put("avgFlowRate", String.format("%.2f", phd.getCollect().getAir_volume() / Sampling_Time) + " m3/hour"); + map.put("acquisitionTime", + String.format("%.2f", phd.getAcq().getAcquisition_real_time() / 3600.0) + + " hours"); + map.put("avgFlowRate", + String.format("%.2f", phd.getCollect().getAir_volume() / Sampling_Time) + + " m3/hour"); } catch (ParseException e) { throw new RuntimeException(e); } @@ -4222,10 +4635,13 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public void exportSampleInformation(Integer sampleId, String fileName, HttpServletRequest request, HttpServletResponse response) { + public void exportSampleInformation(Integer sampleId, String fileName, + HttpServletRequest request, HttpServletResponse response) { Result> result = sampleInformation(sampleId, fileName, request); Map sampleInfo = result.getResult(); - if (MapUtil.isEmpty(sampleInfo)) return; + if (MapUtil.isEmpty(sampleInfo)) { + return; + } Map dataMap = sampleInfo.entrySet().stream() .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); String export = "SampleInfo-Gamma.xls"; @@ -4233,7 +4649,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result> viewQCResult(Integer sampleId, String fileName, HttpServletRequest request) { + public Result> viewQCResult(Integer sampleId, String fileName, + HttpServletRequest request) { Result> result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Cache phdCache = localCache.getPHDCache(); @@ -4271,14 +4688,16 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi item.setName(name); item.setFlag(iter.getValue().isBPass() ? "PASS" : "FAIL"); if (Double.isFinite(iter.getValue().getValue())) { - item.setValue(Double.parseDouble(NumberFormatUtil.numberFormat(String.valueOf(iter.getValue().getValue())))); + item.setValue(Double.parseDouble( + NumberFormatUtil.numberFormat(String.valueOf(iter.getValue().getValue())))); } else if (Double.isInfinite(iter.getValue().getValue())) { item.setValue(iter.getValue().getValue()); } else if (Double.isNaN(iter.getValue().getValue())) { item.setValue(iter.getValue().getValue()); } String standard = ""; - List strList = Arrays.asList(iter.getValue().getStandard().split(StringPool.COMMA)); + List strList = + Arrays.asList(iter.getValue().getStandard().split(StringPool.COMMA)); for (String str : strList) { if (str.contains(StringPool.DASH)) { if (str.contains("(") || str.contains("[")) { @@ -4307,10 +4726,13 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public void exportQCResult(Integer sampleId, String fileName, HttpServletRequest request, HttpServletResponse response) { + public void exportQCResult(Integer sampleId, String fileName, HttpServletRequest request, + HttpServletResponse response) { Result> result = viewQCResult(sampleId, fileName, request); List qcResults = result.getResult(); - if (CollUtil.isEmpty(qcResults)) return; + if (CollUtil.isEmpty(qcResults)) { + return; + } String export = "QCResult-Gamma.xls"; ExportUtil.exportXls(response, TableQCResult.class, qcResults, export); } @@ -4358,8 +4780,10 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi map.put("Obj_authorized", "High-resolution non-destructive gamma spectroscopy."); map.put("Obj_instruction", "0"); // Init #Collection - String col_start = phd.getCollect().getCollection_start_date() + StringPool.SPACE + phd.getCollect().getCollection_start_time(); - String col_stop = phd.getCollect().getCollection_stop_date() + StringPool.SPACE + phd.getCollect().getCollection_stop_time(); + String col_start = phd.getCollect().getCollection_start_date() + StringPool.SPACE + + phd.getCollect().getCollection_start_time(); + String col_stop = phd.getCollect().getCollection_stop_date() + StringPool.SPACE + + phd.getCollect().getCollection_stop_time(); map.put("collect_start", col_start); map.put("collect_stop", col_stop); map.put("collect_airVolume", NumUtil.keep(phd.getCollect().getAir_volume(), 4)); @@ -4391,13 +4815,18 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi tablePeak.setEnergy(NumberFormatUtil.numberFormat(String.valueOf(peak.energy))); tablePeak.setEnergyErr(energy_uncert); tablePeak.setNetArea(NumberFormatUtil.numberFormat(String.valueOf(peak.area))); - String area_err = peak.area > 0 ? NumberFormatUtil.numberFormat(String.valueOf(peak.areaErr / peak.area * 100)) : "0"; + String area_err = peak.area > 0 ? + NumberFormatUtil.numberFormat(String.valueOf(peak.areaErr / peak.area * 100)) : + "0"; tablePeak.setAreaErr(area_err); - String rate = live_time > 0 ? NumberFormatUtil.numberFormat(String.valueOf(peak.area / live_time)) : "0"; + String rate = live_time > 0 ? + NumberFormatUtil.numberFormat(String.valueOf(peak.area / live_time)) : "0"; tablePeak.setNetCountRate(rate); tablePeak.setNcRateErr(area_err); tablePeak.setLc(NumberFormatUtil.numberFormat(String.valueOf(peak.lc))); - tablePeak.setSignificance(Double.isFinite(peak.significance) ? NumberFormatUtil.numberFormat(String.valueOf(peak.significance)) : (Double.isInfinite(peak.significance) ? "inf" : "nan")); + tablePeak.setSignificance(Double.isFinite(peak.significance) ? + NumberFormatUtil.numberFormat(String.valueOf(peak.significance)) : + (Double.isInfinite(peak.significance) ? "inf" : "nan")); peakFitList.add(tablePeak); } map.put("peakFit", peakFitList); @@ -4438,10 +4867,12 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi Date refTimeConc = phd.getUsedSetting().getRefTime_conc(); String timeAct = ""; String timeConc = ""; - if (ObjectUtil.isNotNull(refTimeAct)) + if (ObjectUtil.isNotNull(refTimeAct)) { timeAct = DateUtil.format(refTimeAct, DateConstant.DATE_BIAS_TIME); - if (ObjectUtil.isNotNull(refTimeConc)) + } + if (ObjectUtil.isNotNull(refTimeConc)) { timeConc = DateUtil.format(refTimeConc, DateConstant.DATE_BIAS_TIME); + } map.put("Result_act_ref", timeAct); map.put("Result_conc_ref", timeConc); List tableResultList = new LinkedList<>(); @@ -4450,12 +4881,16 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi TableResult tableResult = new TableResult(); NuclideActMda nuc = it.getValue(); tableResult.setNuclide(it.getKey()); - tableResult.setActivity(NumberFormatUtil.numberFormat(String.valueOf(nuc.getActivity()))); - String act_err = nuc.getActivity() > 0 ? NumberFormatUtil.numberFormat(String.valueOf(nuc.getAct_err() / nuc.getActivity() * 100)) : "0"; + tableResult.setActivity( + NumberFormatUtil.numberFormat(String.valueOf(nuc.getActivity()))); + String act_err = nuc.getActivity() > 0 ? NumberFormatUtil.numberFormat( + String.valueOf(nuc.getAct_err() / nuc.getActivity() * 100)) : "0"; tableResult.setActErr(act_err); tableResult.setFactor1(NumberFormatUtil.numberFormat(coverage_factor)); tableResult.setConfidence1(NumberFormatUtil.numberFormat(level_confidence)); - tableResult.setConc(Objects.isNull(nuc.getConcentration()) ? null : NumberFormatUtil.numberFormat(String.valueOf(nuc.getConcentration() / 1000))); + tableResult.setConc(Objects.isNull(nuc.getConcentration()) ? null : + NumberFormatUtil.numberFormat( + String.valueOf(nuc.getConcentration() / 1000))); tableResult.setConcErr(act_err); tableResult.setFactor2(NumberFormatUtil.numberFormat(coverage_factor)); tableResult.setConfidence2(NumberFormatUtil.numberFormat(level_confidence)); @@ -4475,7 +4910,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi nuc += str + ","; } nuc = StringUtils.isNotBlank(nuc) ? nuc.substring(0, nuc.length() - 1) : nuc; - map.put("Conclusion_Lab", "The nuclides " + nuc + " are identified in the reference sample definitely."); + map.put("Conclusion_Lab", + "The nuclides " + nuc + " are identified in the reference sample definitely."); map.put("Conclusion_Res", "0"); // Init #Comment map.put("Comment", "0"); @@ -4487,7 +4923,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi @Override public void exportRLR(GammaRLR gammaRLR, HttpServletResponse response) { - if (ObjectUtil.isNull(gammaRLR)) return; + if (ObjectUtil.isNull(gammaRLR)) { + return; + } PrintWriter writer = null; try { String pathPrefix = "excelTemplate/"; @@ -4504,7 +4942,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi List skip = ListUtil.toList("${peakFit}", "${Association}", "${Result}", "${NuclideRatios}", "${g_CoincidenceCorrection}", "${mda}"); for (String line : lines) { - if (StrUtil.isBlank(line)) continue; + if (StrUtil.isBlank(line)) { + continue; + } List fieldNames = ReUtil.findAllGroup1(regex, line); if (CollUtil.isEmpty(fieldNames)) { newLines.add(line); @@ -4547,8 +4987,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi newLine = StrUtil.replace(newLine, search, replacement); } } - if (!CollUtil.contains(skip, newLine)) + if (!CollUtil.contains(skip, newLine)) { newLines.add(newLine); + } } String export = "Gamma.RLR"; @@ -4559,8 +5000,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } catch (IOException e) { e.printStackTrace(); } finally { - if (ObjectUtil.isNotNull(writer)) + if (ObjectUtil.isNotNull(writer)) { writer.close(); + } } } @@ -4582,18 +5024,24 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi CalMDCInfo calMDCInfo = new CalMDCInfo(); calMDCInfo.setNuclideName(mdcInfo.getNuclideName()); if (Objects.nonNull(mdcInfo.getMdc()) && Double.isFinite(mdcInfo.getMdc())) { - calMDCInfo.setMdc(Double.parseDouble(NumberFormatUtil.numberFormat(String.valueOf(mdcInfo.getMdc())))); + calMDCInfo.setMdc(Double.parseDouble( + NumberFormatUtil.numberFormat(String.valueOf(mdcInfo.getMdc())))); } if (Objects.nonNull(mdcInfo.getEnergy()) && Double.isFinite(mdcInfo.getEnergy())) { - calMDCInfo.setEnergy(Double.parseDouble(NumberFormatUtil.numberFormat(String.valueOf(mdcInfo.getEnergy())))); + calMDCInfo.setEnergy(Double.parseDouble( + NumberFormatUtil.numberFormat(String.valueOf(mdcInfo.getEnergy())))); } - if (Objects.nonNull(mdcInfo.getEfficiency()) && Double.isFinite(mdcInfo.getEfficiency())) { - calMDCInfo.setEfficiency(Double.parseDouble(NumberFormatUtil.numberFormat(String.valueOf(mdcInfo.getEfficiency())))); + if (Objects.nonNull(mdcInfo.getEfficiency()) && + Double.isFinite(mdcInfo.getEfficiency())) { + calMDCInfo.setEfficiency(Double.parseDouble(NumberFormatUtil.numberFormat( + String.valueOf(mdcInfo.getEfficiency())))); } if (Objects.nonNull(mdcInfo.getYield()) && Double.isFinite(mdcInfo.getYield())) { - calMDCInfo.setYield(Double.parseDouble(NumberFormatUtil.numberFormat(String.valueOf(mdcInfo.getYield())))); + calMDCInfo.setYield(Double.parseDouble( + NumberFormatUtil.numberFormat(String.valueOf(mdcInfo.getYield())))); } - if (Objects.nonNull(mdcInfo.getHalflife()) && Double.isFinite(mdcInfo.getHalflife())) { + if (Objects.nonNull(mdcInfo.getHalflife()) && + Double.isFinite(mdcInfo.getHalflife())) { calMDCInfo.setHalflifeView(mdcInfo.getHalflife() + "D"); } mdcInfoList.add(calMDCInfo); @@ -4608,9 +5056,12 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi public void viewAutomaticAnalysisLog(Integer sampleId, HttpServletResponse response) { String logPath = spectrumAnalysisMapper.findAutomaticLogPath(sampleId); if (StringUtils.isBlank(logPath)) { - throw new RuntimeException("The log generated by the automatic processor does not exist!"); + throw new RuntimeException( + "The log generated by the automatic processor does not exist!"); } - String pathFileName = spectrumPathProperties.getRootPath() + spectrumPathProperties.getLogPath() + StringPool.SLASH + logPath; + String pathFileName = + spectrumPathProperties.getRootPath() + spectrumPathProperties.getLogPath() + + StringPool.SLASH + logPath; InputStream inputStream = null; ServletOutputStream outputStream = null; try { @@ -4641,7 +5092,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public Result viewGammaviewerLog(Integer sampleId, String fileName, HttpServletRequest request) { + public Result viewGammaviewerLog(Integer sampleId, String fileName, + HttpServletRequest request) { Result result = new Result(); String userName = JwtUtil.getUserNameByToken(request); Cache phdCache = localCache.getPHDCache(); @@ -4670,10 +5122,13 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi // vPeak的数组大小大于0 当前下标在范围内 if (size > 0 && index < size && index >= 0) { PeakInfo peak = phd.getVPeak().get(index); - String message = "Peak:" + String.format("%.2f", peak.peakCentroid) + " = " + String.format("%.2f", peak.energy) + " keV\n" + + String message = "Peak:" + String.format("%.2f", peak.peakCentroid) + " = " + + String.format("%.2f", peak.energy) + " keV\n" + "FWHM:" + String.format("%.2f", peak.fwhm) + " keV\n" + "Net Area:" + String.format("%.2f", peak.area) + "\n" + - "BaseLine:" + String.format("%.2f", phd.getVBase().get((int) Math.round(peak.peakCentroid))) + "\n" + + "BaseLine:" + + String.format("%.2f", phd.getVBase().get((int) Math.round(peak.peakCentroid))) + + "\n" + "NID:" + StringUtils.join(peak.nuclides, ";"); result.setSuccess(true); result.setResult(message); @@ -4741,10 +5196,13 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi dateTimeSubdir += StringPool.SLASH + fileName.substring(pos + 5, pos + 7); } //判断当前分析员是否有过历史分析当前文件 - Integer isExist = spectrumAnalysisMapper.SampleIsExist(sysTemSubdir + dateTypeSubdir + dateTimeSubdir + StringPool.SLASH + mSaveFileName, userName); + Integer isExist = spectrumAnalysisMapper.SampleIsExist( + sysTemSubdir + dateTypeSubdir + dateTimeSubdir + StringPool.SLASH + mSaveFileName, + userName); // 如果用户没有权限操作 则查看当前用户是否是高级分析员/管理员 if (!bAnalysisResultWriteAuthority && Objects.isNull(isExist)) { - result.error500("You have no permission to save " + phd.getHeader().getSite_code() + " results to DB!"); + result.error500("You have no permission to save " + phd.getHeader().getSite_code() + + " results to DB!"); return result; } // 如果有权限则开始保存数据库操作 @@ -4756,7 +5214,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi return result; } // 根据文件名称查询对应的sampleId 如果存在则赋值sampleId, Status 如果不存在则先存储数据信息到sampleData - GardsSampleDataSpectrum sampleData = spectrumAnalysisMapper.findSampleByFilePath(middleData.analyses_save_filePath); + GardsSampleDataSpectrum sampleData = + spectrumAnalysisMapper.findSampleByFilePath(middleData.analyses_save_filePath); if (Objects.nonNull(sampleData)) { phd.setId_sample(sampleData.getSampleId().toString()); phd.setStatus(sampleData.getStatus()); @@ -4765,7 +5224,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi bRet = SaveSampleToDB(phd, middleData.analyses_save_filePath); } if (!bRet) { - result.error500("The Database hasn't this Spectrum(" + phd.getFilename() + ") and Insert it to Database failed."); + result.error500("The Database hasn't this Spectrum(" + phd.getFilename() + + ") and Insert it to Database failed."); return result; } // 根据sampleId,分析员名称查询idAnalysis @@ -4785,7 +5245,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi //TODO 获取样品级别 try { //获取阈值结果 - List thresholds = gardsThresholdService.findThresholdResults(stationId.toString()); + List thresholds = + gardsThresholdService.findThresholdResults(stationId.toString()); //样品分级 Integer category = sampleGradingService.processTypeP(info, thresholds); middleData.setAnalyses_category(category); @@ -4799,7 +5260,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi // 向 RNMAN.GARDS_ANALYSES 表插入数据 analysesSpectrumService.insertEntity(middleData, phd, userName, comments); //插入后重新查询出idAnalysis - idAnalysis = spectrumAnalysisMapper.getIdAnalysisByIdAnalyst(phd.getId_sample(), userName); + idAnalysis = + spectrumAnalysisMapper.getIdAnalysisByIdAnalyst(phd.getId_sample(), userName); // 修改sample_data状态 spectrumAnalysisMapper.updateAnalysesStatus(middleData.analyses_save_filePath); } else { @@ -4823,14 +5285,19 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi spectrumAnalysisMapper.deleteAnalySetting(Integer.valueOf(idAnalysis)); } // 向 RNMAN.GARDS_CALIBRATION_PAIRS 表写入 Energy 刻度数据对 - calibrationPairsSpectrumService.saveGardsCalibrationPairsGamma(middleData, Integer.valueOf(phd.getId_sample()), idAnalysis); - calibrationSpectrumService.saveCalibrationGamma(middleData, Integer.valueOf(phd.getId_sample()), idAnalysis); + calibrationPairsSpectrumService.saveGardsCalibrationPairsGamma(middleData, + Integer.valueOf(phd.getId_sample()), idAnalysis); + calibrationSpectrumService.saveCalibrationGamma(middleData, + Integer.valueOf(phd.getId_sample()), idAnalysis); // 向 RNMAN.GARDS_PEAKS 表写入峰信息 - peaksSpectrumService.savePeaksGamma(middleData, Integer.valueOf(phd.getId_sample()), idAnalysis); + peaksSpectrumService.savePeaksGamma(middleData, Integer.valueOf(phd.getId_sample()), + idAnalysis); // 向 RNMAN.GARDS_NUCL_LINES_IDED 表写入被识别核素的射线信息 - nuclLinesIdedSpectrumService.saveNuclLinesIdedGamma(middleData, Integer.valueOf(phd.getId_sample()), idAnalysis); + nuclLinesIdedSpectrumService.saveNuclLinesIdedGamma(middleData, + Integer.valueOf(phd.getId_sample()), idAnalysis); // 向 RNMAN.GARDS_NUCL_IDED 表写入被识别核素的活度浓度信息 - nuclIdedSpectrumService.saveNuclIdedGamma(middleData, Integer.valueOf(phd.getId_sample()), idAnalysis); + nuclIdedSpectrumService.saveNuclIdedGamma(middleData, Integer.valueOf(phd.getId_sample()), + idAnalysis); // 向 RNMAN.GARDS_QC_CHECK 表写入 QC 检查结果 qcCheckSpectrumService.saveQcCheckGamma(middleData, phd, idAnalysis); // 向 RNMAN.GARDS_ANALY_SETTING 表写入 SpecSetup 分析参数设置 @@ -4869,12 +5336,14 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi // } // } { - String logFileName = middleData.analyses_absolute_LogPath.substring(middleData.analyses_absolute_LogPath.lastIndexOf(StringPool.SLASH) + 1); + String logFileName = middleData.analyses_absolute_LogPath.substring( + middleData.analyses_absolute_LogPath.lastIndexOf(StringPool.SLASH) + 1); File logFile = new File(logFileName); try { FileUtil.writeString(gammaFileUtil.GetLogContent(middleData), logFile, "UTF-8"); FileInputStream in = new FileInputStream(logFile); - ftpUtil.saveFile(spectrumPathProperties.getRootPath() + middleData.analyses_absolute_LogPath, in); + ftpUtil.saveFile(spectrumPathProperties.getRootPath() + + middleData.analyses_absolute_LogPath, in); } catch (FileNotFoundException e) { throw new RuntimeException(e); } finally { @@ -4882,12 +5351,16 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } } { - String rptFileName = middleData.analyses_absolute_ReportPath.substring(middleData.analyses_absolute_ReportPath.lastIndexOf(StringPool.SLASH) + 1) + ".txt"; + String rptFileName = middleData.analyses_absolute_ReportPath.substring( + middleData.analyses_absolute_ReportPath.lastIndexOf(StringPool.SLASH) + 1) + + ".txt"; File rptFile = new File(rptFileName); try { - FileUtil.writeString(gammaFileUtil.GetReportContent(middleData), rptFile, "UTF-8"); + FileUtil.writeString(gammaFileUtil.GetReportContent(middleData), rptFile, + "UTF-8"); FileInputStream in = new FileInputStream(rptFile); - ftpUtil.saveFile(spectrumPathProperties.getRootPath() + middleData.analyses_absolute_ReportPath + ".txt", in); + ftpUtil.saveFile(spectrumPathProperties.getRootPath() + + middleData.analyses_absolute_ReportPath + ".txt", in); } catch (FileNotFoundException e) { throw new RuntimeException(e); } finally { @@ -4932,18 +5405,23 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi info.setSampleId(middleData.sample_id); info.setIdAnalysis(middleData.IdAnalysis); info.setSampleType(middleData.sample_Type); - info.setSampleName(middleData.analyses_save_filePath.substring(middleData.analyses_save_filePath.lastIndexOf(StringPool.SLASH) + 1)); - final Instant instant = DateUtils.parseDate(middleData.sample_collection_start).toInstant(); - final LocalDateTime collectTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime(); + info.setSampleName(middleData.analyses_save_filePath.substring( + middleData.analyses_save_filePath.lastIndexOf(StringPool.SLASH) + 1)); + final Instant instant = + DateUtils.parseDate(middleData.sample_collection_start).toInstant(); + final LocalDateTime collectTime = + instant.atZone(ZoneId.systemDefault()).toLocalDateTime(); info.setCollectionDate(collectTime); - final Instant instantStop = DateUtils.parseDate(middleData.sample_collection_stop).toInstant(); + final Instant instantStop = + DateUtils.parseDate(middleData.sample_collection_stop).toInstant(); info.setCollectStop(Date.from(instantStop)); info.setDatasource(DSType.ARMDRRR.getType()); info.setFullOrPrel(phd.getHeader().getSpectrum_quantity()); info.setBetaOrGamma(SpectrumType.GAMMA.getType()); Map nuclides = Maps.newHashMap(); for (int i = 0; i < middleData.nucl_ided_Nuclidename.size(); i++) { - nuclides.put(middleData.nucl_ided_Nuclidename.get(i), middleData.nucl_ided_Concentration.get(i)); + nuclides.put(middleData.nucl_ided_Nuclidename.get(i), + middleData.nucl_ided_Concentration.get(i)); } info.setNuclides(nuclides); info.setAnalyst(middleData.analyses_analyst); @@ -4962,7 +5440,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi Integer station_id = spectrumAnalysisMapper.getStationId(sit_det_code); Integer detect_id = spectrumAnalysisMapper.getDetectorId(detect_code); // ORIGINAL.GARDS_SAMPLE_DATA 表数据 - Integer saveSampleDataGamma = sampleDataSpectrumService.saveSampleDataGamma(phd, input_file_name, station_id, detect_id); + Integer saveSampleDataGamma = + sampleDataSpectrumService.saveSampleDataGamma(phd, input_file_name, station_id, + detect_id); if (saveSampleDataGamma > 0) { bRet = true; } else { @@ -4987,13 +5467,17 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi sampleCertLineSpectrumService.saveSampleCertLineGamma(phd, sampleId); } // gards_ calibration_pairs_orig数据表 - Integer saveCalibrationPairsOrigGamma = calibrationPairsOrigSpectrumService.saveCalibrationPairsOrigGamma(phd, sampleId); + Integer saveCalibrationPairsOrigGamma = + calibrationPairsOrigSpectrumService.saveCalibrationPairsOrigGamma(phd, sampleId); // gards_total_efficiency _pairs数据表(IDC没有) - Integer saveTotalEfficiencyPairsGamma = totalEfficiencyPairsSpectrumService.saveTotalEfficiencyPairsGamma(phd, sampleId); + Integer saveTotalEfficiencyPairsGamma = + totalEfficiencyPairsSpectrumService.saveTotalEfficiencyPairsGamma(phd, sampleId); // gards_spectrum数据表 - Integer saveSpectrumGamma = spectrumService.saveSpectrumGamma(phd, sampleId, input_file_name); + Integer saveSpectrumGamma = + spectrumService.saveSpectrumGamma(phd, sampleId, input_file_name); // 根据文件名称获取sample基础数据信息 - GardsSampleDataSpectrum samplData = spectrumAnalysisMapper.findSampleByFilePath(input_file_name); + GardsSampleDataSpectrum samplData = + spectrumAnalysisMapper.findSampleByFilePath(input_file_name); if (Objects.nonNull(samplData)) { phd.setId_sample(samplData.getSampleId().toString()); phd.setStatus(samplData.getStatus()); @@ -5002,7 +5486,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public void saveToTxt(String fileName, HttpServletRequest request, HttpServletResponse response) { + public void saveToTxt(String fileName, HttpServletRequest request, + HttpServletResponse response) { String userName = JwtUtil.getUserNameByToken(request); Cache phdCache = localCache.getPHDCache(); PHDFile phd = phdCache.getIfPresent(fileName + StringPool.DASH + userName); @@ -5024,7 +5509,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi // 文本内容第二块匹配格式 String title2 = "%-12s %-12s %-12s %-12s %-12s %-12s %-12s %-12s %-12s %-12s"; // 文本内容第二块头部信息 - String[] titleArgs2 = new String[]{"PeakID", "Energy(keV)", "Centroid", "Multiplet", "FWHM(keV)", "NetArea", "NAErr%", "Signif", "Sensit", "Nuclide"}; + String[] titleArgs2 = + new String[] {"PeakID", "Energy(keV)", "Centroid", "Multiplet", "FWHM(keV)", + "NetArea", "NAErr%", "Signif", "Sensit", "Nuclide"}; // 文本内容第二块头部信息匹配 strBuild.append(rowFormat(title2, titleArgs2)); // 换行 @@ -5034,15 +5521,20 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi PeakInfo peakInfo = phd.getVPeak().get(i); String peakId = String.valueOf(i + 1); String energy = NumberFormatUtil.numberFormat(String.valueOf(peakInfo.energy)); - String peakCentroid = NumberFormatUtil.numberFormat(String.valueOf(peakInfo.peakCentroid)); + String peakCentroid = + NumberFormatUtil.numberFormat(String.valueOf(peakInfo.peakCentroid)); String multiIndex = String.valueOf(peakInfo.multiIndex); String fwhm = NumberFormatUtil.numberFormat(String.valueOf(peakInfo.fwhm)); String area = NumberFormatUtil.numberFormat(String.valueOf(peakInfo.area)); String areaErr = NumberFormatUtil.numberFormat(String.valueOf(peakInfo.areaErr)); - String signif = Double.isFinite(peakInfo.significance) ? NumberFormatUtil.numberFormat(String.valueOf(peakInfo.significance)) : (Double.isInfinite(peakInfo.significance) ? "inf" : "nan"); + String signif = Double.isFinite(peakInfo.significance) ? + NumberFormatUtil.numberFormat(String.valueOf(peakInfo.significance)) : + (Double.isInfinite(peakInfo.significance) ? "inf" : "nan"); String sensit = NumberFormatUtil.numberFormat(String.valueOf(peakInfo.sensitivity)); String nuclide = StringUtils.join(peakInfo.nuclides, StringPool.SEMICOLON); - strBuild.append(rowFormat(title2, peakId, energy, peakCentroid, multiIndex, fwhm, area, areaErr, signif, sensit, nuclide)); + strBuild.append( + rowFormat(title2, peakId, energy, peakCentroid, multiIndex, fwhm, area, + areaErr, signif, sensit, nuclide)); // 换行 strBuild.append(System.lineSeparator()); } @@ -5056,7 +5548,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi strBuild.append(System.lineSeparator()); // 文本内容第三块数据 if (CollectionUtils.isNotEmpty(phd.getVPeak())) { - List> peakNuclides = phd.getVPeak().stream().map(item -> item.nuclides).collect(Collectors.toList()); + List> peakNuclides = phd.getVPeak().stream().map(item -> item.nuclides) + .collect(Collectors.toList()); List nuclides = new LinkedList<>(); for (int i = 0; i < peakNuclides.size(); i++) { List peakNuclide = peakNuclides.get(i); @@ -5082,13 +5575,15 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi strBuild.append(System.lineSeparator()); // 文本内容第四块第一部分数据 String data1 = "Activity Reference Time: %s"; - String actRefTime = DateUtils.formatDate(phd.getUsedSetting().getRefTime_act(), "yyyy/MM/dd HH:mm:ss"); + String actRefTime = DateUtils.formatDate(phd.getUsedSetting().getRefTime_act(), + "yyyy/MM/dd HH:mm:ss"); strBuild.append(rowFormat(data1, actRefTime)); // 换行 strBuild.append(System.lineSeparator()); // 文本内容第四块第二部分数据 String data2 = "Concentration Reference Time: %s"; - String concRefTime = DateUtils.formatDate(phd.getUsedSetting().getRefTime_conc(), "yyyy/MM/dd HH:mm:ss"); + String concRefTime = DateUtils.formatDate(phd.getUsedSetting().getRefTime_conc(), + "yyyy/MM/dd HH:mm:ss"); strBuild.append(rowFormat(data2, concRefTime)); // 换行 strBuild.append(System.lineSeparator()); @@ -5097,7 +5592,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi // 文本内容第五块 // 文本内容第五块头部信息 String title5 = "%-12s %-12s %-12s %-12s %-12s %-12s %-12s %-12s %-12s %-12s"; - String[] titleArgs5 = new String[]{"Nuclide", "Halflife", "Yield%", "Energy(keV)", "Efficiency", "Activity(Bq)", "ActErr%", "MDA(Bq)", "Conc(uBq/m^3)", "MDC(uBq/m^3)"}; + String[] titleArgs5 = + new String[] {"Nuclide", "Halflife", "Yield%", "Energy(keV)", "Efficiency", + "Activity(Bq)", "ActErr%", "MDA(Bq)", "Conc(uBq/m^3)", "MDC(uBq/m^3)"}; strBuild.append(rowFormat(title5, titleArgs5)); // 换行 strBuild.append(System.lineSeparator()); @@ -5121,24 +5618,36 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi halflife /= 3600; units = "H"; } - halflifeValue = NumberFormatUtil.numberFormat(String.valueOf(halflife)) + units; + halflifeValue = + NumberFormatUtil.numberFormat(String.valueOf(halflife)) + units; } - String efficiency = NumberFormatUtil.numberFormat(String.valueOf(nuc.getEfficiency())); - String activity = NumberFormatUtil.numberFormat(String.valueOf(nuc.getActivity())); + String efficiency = + NumberFormatUtil.numberFormat(String.valueOf(nuc.getEfficiency())); + String activity = + NumberFormatUtil.numberFormat(String.valueOf(nuc.getActivity())); String actErr = ""; if (nuc.getActivity() > 0) { - actErr = NumberFormatUtil.numberFormat(String.valueOf(nuc.getAct_err() / nuc.getActivity() * 100)); + actErr = NumberFormatUtil.numberFormat( + String.valueOf(nuc.getAct_err() / nuc.getActivity() * 100)); } String mda = NumberFormatUtil.numberFormat(String.valueOf(nuc.getMda())); - String conc = NumberFormatUtil.numberFormat(String.valueOf(nuc.getConcentration())); + String conc = + NumberFormatUtil.numberFormat(String.valueOf(nuc.getConcentration())); String mdc = NumberFormatUtil.numberFormat(String.valueOf(nuc.getMdc())); - if (nuc.getCalculateIdx() >= 0 && nuc.getCalculateIdx() < nuc.getVEnergy().size()) { - String yield = NumberFormatUtil.numberFormat(String.valueOf(nuc.getVYield().get(nuc.getCalculateIdx()) * 100)); - String energy = NumberFormatUtil.numberFormat(String.valueOf(nuc.getVEnergy().get(nuc.getCalculateIdx()))); - strBuild.append(rowFormat(title5, key, halflifeValue, yield, energy, efficiency, activity, actErr, mda, conc, mdc)); + if (nuc.getCalculateIdx() >= 0 && + nuc.getCalculateIdx() < nuc.getVEnergy().size()) { + String yield = NumberFormatUtil.numberFormat( + String.valueOf(nuc.getVYield().get(nuc.getCalculateIdx()) * 100)); + String energy = NumberFormatUtil.numberFormat( + String.valueOf(nuc.getVEnergy().get(nuc.getCalculateIdx()))); + strBuild.append( + rowFormat(title5, key, halflifeValue, yield, energy, efficiency, + activity, actErr, mda, conc, mdc)); strBuild.append(System.lineSeparator()); } else { - strBuild.append(rowFormat(title5, key, halflifeValue, "NULL", "NULL", efficiency, activity, actErr, mda, conc, mdc)); + strBuild.append( + rowFormat(title5, key, halflifeValue, "NULL", "NULL", efficiency, + activity, actErr, mda, conc, mdc)); strBuild.append(System.lineSeparator()); } } @@ -5149,10 +5658,13 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi String time = phd.getAcq().getAcquisition_start_time().replace(":", "").substring(0, 4); String dataType = phd.getMsgInfo().getData_type().substring(0, 1); String format = ".txt"; - String txtFileName = String.format("%s-%s_%s_%s_RESULT%s", detectorCode, date, time, dataType, format); + String txtFileName = + String.format("%s-%s_%s_%s_RESULT%s", detectorCode, date, time, dataType, + format); if (StrUtil.isNotBlank(fileName)) { - if (StrUtil.contains(fileName, ".PHD")) + if (StrUtil.contains(fileName, ".PHD")) { txtFileName = StrUtil.replace(fileName, ".PHD", ".txt"); + } } // 导出数据内容到txt文本 OutputStream fos = null; @@ -5161,7 +5673,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi response.setContentType("application/octet-stream"); // 解决中文不能生成文件 response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); - response.setHeader("Content-Disposition", "attachment; fileName=" + URLEncoder.encode(txtFileName, "UTF-8")); + response.setHeader("Content-Disposition", + "attachment; fileName=" + URLEncoder.encode(txtFileName, "UTF-8")); fos = response.getOutputStream(); fos.write(strBuild.toString().getBytes()); } catch (FileNotFoundException e) { @@ -5197,13 +5710,16 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi PeakInfoDto peakInfoDto = new PeakInfoDto(); peakInfoDto.setPeakId(String.valueOf(peakInfo.index)); peakInfoDto.setEnergy(NumberFormatUtil.numberFormat(String.valueOf(peakInfo.energy))); - peakInfoDto.setCentroid(NumberFormatUtil.numberFormat(String.valueOf(peakInfo.peakCentroid))); + peakInfoDto.setCentroid( + NumberFormatUtil.numberFormat(String.valueOf(peakInfo.peakCentroid))); peakInfoDto.setMultiplet(String.valueOf(peakInfo.multiIndex)); peakInfoDto.setFwhm(NumberFormatUtil.numberFormat(String.valueOf(peakInfo.fwhm))); peakInfoDto.setNetArea(NumberFormatUtil.numberFormat(String.valueOf(peakInfo.area))); peakInfoDto.setAreaErr(NumberFormatUtil.numberFormat(String.valueOf(peakInfo.areaErr))); - peakInfoDto.setSignificant(NumberFormatUtil.numberFormat(String.valueOf(peakInfo.significance))); - peakInfoDto.setSensitivity(NumberFormatUtil.numberFormat(String.valueOf(peakInfo.sensitivity))); + peakInfoDto.setSignificant( + NumberFormatUtil.numberFormat(String.valueOf(peakInfo.significance))); + peakInfoDto.setSensitivity( + NumberFormatUtil.numberFormat(String.valueOf(peakInfo.sensitivity))); String nuclide = StringUtils.join(peakInfo.nuclides, StringPool.SEMICOLON); peakInfoDto.setNuclides(nuclide); peakInfoDtos.add(peakInfoDto); @@ -5223,10 +5739,12 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi String concTime = ""; Date refTimeAct = phd.getUsedSetting().getRefTime_act(); Date refTimeConc = phd.getUsedSetting().getRefTime_conc(); - if (ObjectUtil.isNotNull(refTimeAct)) + if (ObjectUtil.isNotNull(refTimeAct)) { actTime = DateUtil.format(refTimeAct, DateConstant.DATE_BIAS_TIME); - if (ObjectUtil.isNotNull(refTimeConc)) + } + if (ObjectUtil.isNotNull(refTimeConc)) { concTime = DateUtil.format(refTimeConc, DateConstant.DATE_BIAS_TIME); + } data.put("actTime", actTime); data.put("concTime", concTime); // 数据部分 @@ -5254,7 +5772,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi halflifeValue = NumberFormatUtil.numberFormat(String.valueOf(halflife)) + units; } nuclideActMdaDto.setHalflife(halflifeValue); - String efficiency = NumberFormatUtil.numberFormat(String.valueOf(nuclideActMda.getEfficiency())); + String efficiency = + NumberFormatUtil.numberFormat(String.valueOf(nuclideActMda.getEfficiency())); nuclideActMdaDto.setEfficiency(efficiency); double actErrValue = nuclideActMda.getAct_err(); double activityValue = nuclideActMda.getActivity(); @@ -5262,12 +5781,14 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi nuclideActMdaDto.setActivity(activity); String actErr = ""; if (activityValue > 0) { - actErr = NumberFormatUtil.numberFormat(String.valueOf(actErrValue / activityValue * 100)); + actErr = NumberFormatUtil.numberFormat( + String.valueOf(actErrValue / activityValue * 100)); } nuclideActMdaDto.setActErr(actErr); String mda = NumberFormatUtil.numberFormat(String.valueOf(nuclideActMda.getMda())); nuclideActMdaDto.setMda(mda); - String conc = NumberFormatUtil.numberFormat(String.valueOf(nuclideActMda.getConcentration())); + String conc = + NumberFormatUtil.numberFormat(String.valueOf(nuclideActMda.getConcentration())); nuclideActMdaDto.setConc(conc); String mdc = NumberFormatUtil.numberFormat(String.valueOf(nuclideActMda.getMdc())); nuclideActMdaDto.setMdc(mdc); @@ -5275,8 +5796,10 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi List vEnergy = nuclideActMda.getVEnergy(); List vYield = nuclideActMda.getVYield(); if (calculateIdx >= 0 && calculateIdx < vEnergy.size()) { - String yield = NumberFormatUtil.numberFormat(String.valueOf(vYield.get(calculateIdx) * 100)); - String energy = NumberFormatUtil.numberFormat(String.valueOf(vEnergy.get(calculateIdx))); + String yield = NumberFormatUtil.numberFormat( + String.valueOf(vYield.get(calculateIdx) * 100)); + String energy = + NumberFormatUtil.numberFormat(String.valueOf(vEnergy.get(calculateIdx))); nuclideActMdaDto.setYield(yield); nuclideActMdaDto.setEnergy(energy); } else { @@ -5291,10 +5814,12 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi String time = phd.getAcq().getAcquisition_start_time().replace(":", "").substring(0, 4); String dataType = phd.getMsgInfo().getData_type().substring(0, 1); String format = ".xls"; - String xlsFileName = String.format("%s-%s_%s_%s_RESULT%s", detectorCode, date, time, dataType, format); + String xlsFileName = + String.format("%s-%s_%s_%s_RESULT%s", detectorCode, date, time, dataType, format); if (StrUtil.isNotBlank(fileName)) { - if (StrUtil.contains(fileName, ".PHD")) + if (StrUtil.contains(fileName, ".PHD")) { xlsFileName = StrUtil.replace(fileName, ".PHD", ".xls"); + } } String template = SAVETOEXCEL_G.getName(); // 导出时使用默认文件名 file.xls @@ -5302,7 +5827,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi } @Override - public void saveToPHD(String fileName, HttpServletRequest request, HttpServletResponse response) { + public void saveToPHD(String fileName, HttpServletRequest request, + HttpServletResponse response) { // 获取当前登陆用户名 String userName = JwtUtil.getUserNameByToken(request); // 读取本地缓存的phd文件信息 @@ -5323,7 +5849,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi //将acquisition_live_time保留六位有效数字 如果保留一位小数后小数点后的值是0则四舍五入保留整数,否则按正常条件四舍五入保留小数位 String numberCal = NumberFormatUtil.numberCal(String.valueOf(acquisitionLiveTime)); numberCal = df.format(Double.valueOf(numberCal)); - String phdFileName = String.format("%s-%s_%s_%s_%s_%s.PHD", detectorCode, date, time, dataType, spectrumQuantity, numberCal); + String phdFileName = + String.format("%s-%s_%s_%s_%s_%s.PHD", detectorCode, date, time, dataType, + spectrumQuantity, numberCal); String spectrum = gammaFileUtil.makeUpSpectrum(phd); // 导出数据内容到txt文本 OutputStream fos = null; @@ -5332,7 +5860,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi response.setContentType("application/octet-stream"); // 解决中文不能生成文件 response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); - response.setHeader("Content-Disposition", "attachment; fileName=" + URLEncoder.encode(phdFileName, "UTF-8")); + response.setHeader("Content-Disposition", + "attachment; fileName=" + URLEncoder.encode(phdFileName, "UTF-8")); fos = response.getOutputStream(); fos.write(spectrum.getBytes()); } catch (FileNotFoundException e) { @@ -5380,7 +5909,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi response.setContentType("application/octet-stream"); // 解决中文不能生成文件 response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); - response.setHeader("Content-Disposition", "attachment; fileName=" + URLEncoder.encode(IecName, "UTF-8")); + response.setHeader("Content-Disposition", + "attachment; fileName=" + URLEncoder.encode(IecName, "UTF-8")); fos = response.getOutputStream(); fos.write(iecValue.getBytes()); } catch (IOException e) { @@ -5430,7 +5960,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi response.setContentType("application/octet-stream"); // 解决中文不能生成文件 response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); - response.setHeader("Content-Disposition", "attachment; fileName=" + URLEncoder.encode(ImsName, "UTF-8")); + response.setHeader("Content-Disposition", + "attachment; fileName=" + URLEncoder.encode(ImsName, "UTF-8")); fos = response.getOutputStream(); fos.write(imsValue.getBytes()); } catch (IOException e) { @@ -5463,7 +5994,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi spcFile = File.createTempFile("betaGamma", null); inputStream = file.getInputStream(); FileUtils.copyInputStreamToFile(inputStream, spcFile); - if (!fileFtransitUtil.ReadSPC(spcFile, datas)) return; + if (!fileFtransitUtil.ReadSPC(spcFile, datas)) { + return; + } StopWatch stopWatch = new StopWatch(); stopWatch.start(); @@ -5471,14 +6004,19 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi stopWatch.stop(); log.info("{}处理耗时为:{}毫秒", SpcName, stopWatch.getTime(TimeUnit.MILLISECONDS)); - String suffix = nameStandUtil.GetSuffix(datas.getData_type(), datas.getQuantity(), String.valueOf(datas.getAcq_live())); - String ImsName = datas.getDetector() + StringPool.DASH + datas.getAcq_date().replace(StringPool.SLASH, StringPool.EMPTY) + StringPool.UNDERSCORE + - datas.getAcq_time().substring(0, 5).replace(StringPool.COLON, StringPool.EMPTY) + suffix; + String suffix = nameStandUtil.GetSuffix(datas.getData_type(), datas.getQuantity(), + String.valueOf(datas.getAcq_live())); + String ImsName = datas.getDetector() + StringPool.DASH + + datas.getAcq_date().replace(StringPool.SLASH, StringPool.EMPTY) + + StringPool.UNDERSCORE + + datas.getAcq_time().substring(0, 5) + .replace(StringPool.COLON, StringPool.EMPTY) + suffix; // 设置响应类型 response.setContentType("application/octet-stream"); // 解决中文不能生成文件 response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); - response.setHeader("Content-Disposition", "attachment; fileName=" + URLEncoder.encode(ImsName, "UTF-8")); + response.setHeader("Content-Disposition", + "attachment; fileName=" + URLEncoder.encode(ImsName, "UTF-8")); fos = response.getOutputStream(); fos.write(imsValue.getBytes()); } catch (IOException e) { @@ -5515,7 +6053,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi spcFile = File.createTempFile("spcTemp", ".SCP"); inputStream = file.getInputStream(); FileUtils.copyInputStreamToFile(inputStream, imsFile); - if (!fileFtransitUtil.ReadIMS(imsFile, datas)) return; + if (!fileFtransitUtil.ReadIMS(imsFile, datas)) { + return; + } StopWatch stopWatch = new StopWatch(); stopWatch.start(); @@ -5540,11 +6080,21 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi throw new RuntimeException(e); } finally { try { - if (Objects.nonNull(imsFile)) imsFile.delete(); - if (Objects.nonNull(spcFile)) spcFile.delete(); - if (Objects.nonNull(inputStream)) inputStream.close(); - if (ObjectUtil.isNotNull(spcInputStream)) spcInputStream.close(); - if (ObjectUtil.isNotNull(outputStream)) outputStream.close(); + if (Objects.nonNull(imsFile)) { + imsFile.delete(); + } + if (Objects.nonNull(spcFile)) { + spcFile.delete(); + } + if (Objects.nonNull(inputStream)) { + inputStream.close(); + } + if (ObjectUtil.isNotNull(spcInputStream)) { + spcInputStream.close(); + } + if (ObjectUtil.isNotNull(outputStream)) { + outputStream.close(); + } } catch (IOException e) { throw new RuntimeException(e); } @@ -5564,7 +6114,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi spcFile = File.createTempFile("betaGamma", null); inputStream = file.getInputStream(); FileUtils.copyInputStreamToFile(inputStream, spcFile); - if (!fileFtransitUtil.ReadSPC(spcFile, datas)) return; + if (!fileFtransitUtil.ReadSPC(spcFile, datas)) { + return; + } StopWatch stopWatch = new StopWatch(); stopWatch.start(); @@ -5576,7 +6128,8 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi response.setContentType("application/octet-stream"); // 解决中文不能生成文件 response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); - response.setHeader("Content-Disposition", "attachment; fileName=" + URLEncoder.encode(IecName, "UTF-8")); + response.setHeader("Content-Disposition", + "attachment; fileName=" + URLEncoder.encode(IecName, "UTF-8")); fos = response.getOutputStream(); fos.write(iecValue.getBytes()); } catch (IOException e) { @@ -5613,7 +6166,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi spcFile = File.createTempFile("spcTemp", ".SCP"); inputStream = file.getInputStream(); FileUtils.copyInputStreamToFile(inputStream, iecFile); - if (!fileFtransitUtil.ReadIEC(iecFile, datas)) return; + if (!fileFtransitUtil.ReadIEC(iecFile, datas)) { + return; + } StopWatch stopWatch = new StopWatch(); stopWatch.start(); @@ -5638,11 +6193,21 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi throw new RuntimeException(e); } finally { try { - if (Objects.nonNull(iecFile)) iecFile.delete(); - if (Objects.nonNull(spcFile)) spcFile.delete(); - if (Objects.nonNull(inputStream)) inputStream.close(); - if (ObjectUtil.isNotNull(spcInputStream)) spcInputStream.close(); - if (ObjectUtil.isNotNull(outputStream)) outputStream.close(); + if (Objects.nonNull(iecFile)) { + iecFile.delete(); + } + if (Objects.nonNull(spcFile)) { + spcFile.delete(); + } + if (Objects.nonNull(inputStream)) { + inputStream.close(); + } + if (ObjectUtil.isNotNull(spcInputStream)) { + spcInputStream.close(); + } + if (ObjectUtil.isNotNull(outputStream)) { + outputStream.close(); + } } catch (IOException e) { throw new RuntimeException(e); } @@ -5695,13 +6260,18 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi for (int k = 0; k < attributes.getLength(); k++) { //根据顺序读取属性 Node attribute = attributes.item(k); - if (attribute.getNodeName().equalsIgnoreCase("nuclide_name")) { + if (attribute.getNodeName() + .equalsIgnoreCase("nuclide_name")) { info.setNuclideName(attribute.getNodeValue()); - } else if (attribute.getNodeName().equalsIgnoreCase("halflife")) { - info.setHalflife(Double.valueOf(attribute.getNodeValue())); + } else if (attribute.getNodeName() + .equalsIgnoreCase("halflife")) { + info.setHalflife(Double.valueOf( + attribute.getNodeValue())); } } - if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank(info.getNuclideName()) && Objects.nonNull(info.getHalflife())) { + if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank( + info.getNuclideName()) && + Objects.nonNull(info.getHalflife())) { mdcInfoMap.put(info.getNuclideName(), info); } } @@ -5732,13 +6302,18 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi for (int k = 0; k < attributes.getLength(); k++) { //根据顺序读取属性 Node attribute = attributes.item(k); - if (attribute.getNodeName().equalsIgnoreCase("nuclide_name")) { + if (attribute.getNodeName() + .equalsIgnoreCase("nuclide_name")) { info.setNuclideName(attribute.getNodeValue()); - } else if (attribute.getNodeName().equalsIgnoreCase("halflife")) { - info.setHalflife(Double.valueOf(attribute.getNodeValue())); + } else if (attribute.getNodeName() + .equalsIgnoreCase("halflife")) { + info.setHalflife(Double.valueOf( + attribute.getNodeValue())); } } - if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank(info.getNuclideName()) && Objects.nonNull(info.getHalflife())) { + if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank( + info.getNuclideName()) && + Objects.nonNull(info.getHalflife())) { mdcInfoMap.put(info.getNuclideName(), info); } } @@ -5779,34 +6354,41 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi try { String collectStart = ""; if (phd.getCollect().getCollection_start_time().indexOf(StringPool.DOT) > 0) { - collectStart = phd.getCollect().getCollection_start_date() + " " + phd.getCollect().getCollection_start_time().substring(0, phd.getCollect().getCollection_start_time().indexOf(StringPool.DOT)); + collectStart = phd.getCollect().getCollection_start_date() + " " + + phd.getCollect().getCollection_start_time().substring(0, + phd.getCollect().getCollection_start_time() + .indexOf(StringPool.DOT)); } else { - collectStart = phd.getCollect().getCollection_start_date() + " " + phd.getCollect().getCollection_start_time(); + collectStart = phd.getCollect().getCollection_start_date() + " " + + phd.getCollect().getCollection_start_time(); } //获取采集开始时间 - Date acqStart = DateUtils.parseDate(phd.getAcq().getAcquisition_start_date() + " " + phd.getAcq().getAcquisition_start_time()); + Date acqStart = DateUtils.parseDate(phd.getAcq().getAcquisition_start_date() + " " + + phd.getAcq().getAcquisition_start_time()); //计算得到采集结束时间对应的毫秒数 - long stopTime = (long) (acqStart.getTime() + (phd.getAcq().getAcquisition_real_time() * 1000)); + long stopTime = + (long) (acqStart.getTime() + (phd.getAcq().getAcquisition_real_time() * 1000)); //根据毫秒数得到采集结束时间 Date acquisitionStopDate = new Date(stopTime); //格式化得到采集结束时间的字符串 - String acquisitionStop = DateUtils.formatDate(acquisitionStopDate, "yyyy-MM-dd HH:mm:ss"); + String acquisitionStop = + DateUtils.formatDate(acquisitionStopDate, "yyyy-MM-dd HH:mm:ss"); //从缓存的idc台站信息中获取当前台站对应的台站id Integer stationId = null; if (CollectionUtils.isNotEmpty(idcStationMap)) { stationId = idcStationMap.get(phd.getHeader().getSite_code()); } //连接本地同步的idc数据库 - conn = dataService.connectInland(); + //连接对象为空 则连接idc国际库 - if (Objects.isNull(conn)) { - conn = dataService.connectOverSea(); - } + //判断是否连接成功 - if (Objects.nonNull(conn)) { - //查询获取Peaks表的对比数据内容 - peakInfoList = dataService.viewPeaks(phd.getHeader().getDetector_code(), phd.getHeader().getSpectrum_quantity(), stationId, collectStart, acquisitionStop, conn); - } + + //查询获取Peaks表的对比数据内容 + peakInfoList = dataService.viewPeaks(phd.getHeader().getDetector_code(), + phd.getHeader().getSpectrum_quantity(), stationId, collectStart, + acquisitionStop); + result.setSuccess(true); result.setResult(peakInfoList); } catch (ParseException e) { @@ -5841,34 +6423,40 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi try { String collectStart = ""; if (phd.getCollect().getCollection_start_time().indexOf(StringPool.DOT) > 0) { - collectStart = phd.getCollect().getCollection_start_date() + " " + phd.getCollect().getCollection_start_time().substring(0, phd.getCollect().getCollection_start_time().indexOf(StringPool.DOT)); + collectStart = phd.getCollect().getCollection_start_date() + " " + + phd.getCollect().getCollection_start_time().substring(0, + phd.getCollect().getCollection_start_time() + .indexOf(StringPool.DOT)); } else { - collectStart = phd.getCollect().getCollection_start_date() + " " + phd.getCollect().getCollection_start_time(); + collectStart = phd.getCollect().getCollection_start_date() + " " + + phd.getCollect().getCollection_start_time(); } //获取采集开始时间 - Date acqStart = DateUtils.parseDate(phd.getAcq().getAcquisition_start_date() + " " + phd.getAcq().getAcquisition_start_time()); + Date acqStart = DateUtils.parseDate(phd.getAcq().getAcquisition_start_date() + " " + + phd.getAcq().getAcquisition_start_time()); //计算得到采集结束时间对应的毫秒数 - long stopTime = (long) (acqStart.getTime() + (phd.getAcq().getAcquisition_real_time() * 1000)); + long stopTime = + (long) (acqStart.getTime() + (phd.getAcq().getAcquisition_real_time() * 1000)); //根据毫秒数得到采集结束时间 Date acquisitionStopDate = new Date(stopTime); //格式化得到采集结束时间的字符串 - String acquisitionStop = DateUtils.formatDate(acquisitionStopDate, "yyyy-MM-dd HH:mm:ss"); + String acquisitionStop = + DateUtils.formatDate(acquisitionStopDate, "yyyy-MM-dd HH:mm:ss"); //从缓存的idc台站信息中获取当前台站对应的台站id Integer stationId = null; if (CollectionUtils.isNotEmpty(idcStationMap)) { stationId = idcStationMap.get(phd.getHeader().getSite_code()); } //连接本地同步的idc数据库 - conn = dataService.connectInland(); + //连接对象为空 则连接idc国际库 - if (Objects.isNull(conn)) { - conn = dataService.connectOverSea(); - } + //判断是否连接成功 - if (Objects.nonNull(conn)) { //查询获取Peaks表的对比数据内容 - nuclideActivityList = dataService.viewNucl(phd.getHeader().getDetector_code(), phd.getHeader().getSpectrum_quantity(), stationId, collectStart, acquisitionStop, conn); - } + nuclideActivityList = dataService.viewNucl(phd.getHeader().getDetector_code(), + phd.getHeader().getSpectrum_quantity(), stationId, collectStart, + acquisitionStop ); + result.setSuccess(true); result.setResult(nuclideActivityList); } catch (ParseException e) { diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java index 8a558057..388d1629 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java @@ -7,7 +7,9 @@ import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ReUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.dynamic.datasource.DynamicRoutingDataSource; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.core.toolkit.StringUtils; @@ -43,6 +45,7 @@ import org.jeecg.modules.entity.*; import org.jeecg.modules.entity.vo.*; import org.jeecg.modules.entity.vo.QCFlagParmData.Rule; import org.jeecg.modules.mapper.SpectrumAnalysisMapper; +import org.jeecg.modules.mapper.SpectrumAnalysisPostgresMapper; import org.jeecg.modules.native_jni.EnergySpectrumHandler; import org.jeecg.modules.native_jni.struct.BgAnalyseResult; import org.jeecg.modules.native_jni.struct.EnergySpectrumStruct; @@ -55,9 +58,11 @@ import org.thymeleaf.context.Context; import org.thymeleaf.spring5.SpringTemplateEngine; import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver; +import javax.annotation.PostConstruct; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.sql.DataSource; import java.io.*; import java.net.URLEncoder; import java.nio.file.Files; @@ -149,7 +154,21 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport // 获取阈值信息 @Autowired private IRnManGardsThresholdService gardsThresholdService; - Integer i = 1; + + @Autowired + private SpectrumAnalysisPostgresMapper postgresMapper; + @Autowired + private DataSource dataSource; + private DbType databaseType; + + @PostConstruct + public void initDbType() throws SQLException { + DynamicRoutingDataSource ds = (DynamicRoutingDataSource) dataSource; + String databaseProductName = + ds.getDataSource("ora").getConnection().getMetaData().getDatabaseProductName(); + databaseType = DbType.getDbType(databaseProductName); + + } @Override public void initValue(String dbName, Integer sampleId, String analyst, String sampleFileName, @@ -319,7 +338,10 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport //声明分页page Page page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize()); - Page sampleDataPage = + Page sampleDataPage = databaseType == DbType.POSTGRE_SQL ? + postgresMapper.getDBSpectrumListByLeftJoin(page, gardsSampleData, dbName, + stationTypes, CollectStopB, AcqStartB, startTime, endTime, userStations, + AllUsers, queryRequest.getField(), queryRequest.getOrder()) : spectrumAnalysisMapper.getDBSpectrumListByLeftJoin(page, gardsSampleData, dbName, stationTypes, CollectStopB, AcqStartB, startTime, endTime, userStations, AllUsers, queryRequest.getField(), queryRequest.getOrder()); @@ -846,8 +868,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport } else { resultMap.clear(); } - } - else { + } else { Map sampleMap = new HashMap<>(); Map gasBgMap = new HashMap<>(); Map detBgMap = new HashMap<>(); @@ -862,32 +883,39 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport BetaDataFile betaDataFile = cache.getIfPresent(sampleFileName + "-" + userName); if (Objects.isNull(betaDataFile)) { betaDataFile = new BetaDataFile(); - betaDataFile.setSampleFilePathName(spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + + betaDataFile.setSampleFilePathName(spectrumPathProperties.getRootPath() + + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + sampleFilePath); sampleTmp = ftpUtil.downloadFile(betaDataFile.getSampleFilePathName()); //获取smaple文件解析结果 - EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(sampleTmp.getAbsolutePath()); + EnergySpectrumStruct struct = + EnergySpectrumHandler.getSourceData(sampleTmp.getAbsolutePath()); if (Objects.nonNull(struct)) { betaDataFile.setSampleStruct(struct); betaDataFile.setSampleFilePathName(sampleFilePath); betaDataFile.setSampleFileName(sampleFileName); - sampleMap = phdFileUtil.getSourceData(struct, null, null, "sample", betaDataFile); + sampleMap = phdFileUtil.getSourceData(struct, null, null, "sample", + betaDataFile); sampleMap.put("fileName", betaDataFile.getSampleFileName()); resultMap.put("sample", sampleMap); } // 根据当前谱获取Gas、Det、QC谱 GardsSampleAux aux = sampleAuxSpectrumService.getSampleAuxBySampleId(sampleId); // 查询Det谱 - GardsSampleData detSampleData = sampleDataSpectrumService.getSampleByMId(aux.getBkgdMeasurementId(), - DataTypeAbbr.DETBKPHD.getType(), sampleData.getSampleType()); + GardsSampleData detSampleData = + sampleDataSpectrumService.getSampleByMId(aux.getBkgdMeasurementId(), + DataTypeAbbr.DETBKPHD.getType(), sampleData.getSampleType()); // 查询Gas谱 - GardsSampleData gasSampleData = sampleDataSpectrumService.getSampleByMId(aux.getGasBkgdMeasurementId(), - DataTypeAbbr.GASBKPHD.getType(), sampleData.getSampleType()); + GardsSampleData gasSampleData = + sampleDataSpectrumService.getSampleByMId(aux.getGasBkgdMeasurementId(), + DataTypeAbbr.GASBKPHD.getType(), sampleData.getSampleType()); if (StringUtils.isEmpty(sampleFilePath) - && (Objects.isNull(gasSampleData) || StringUtils.isEmpty(gasSampleData.getInputFileName())) - && (Objects.isNull(detSampleData) || StringUtils.isEmpty(detSampleData.getInputFileName()))) { + && (Objects.isNull(gasSampleData) || + StringUtils.isEmpty(gasSampleData.getInputFileName())) + && (Objects.isNull(detSampleData) || + StringUtils.isEmpty(detSampleData.getInputFileName()))) { result.error500("gas and det file is no exist or is error.."); return result; } @@ -909,46 +937,58 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport String detFileName = StrUtil.subAfter(detFilePath, StringPool.SLASH, true); // GAS - betaDataFile.setGasFilePathName(spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + betaDataFile.setGasFilePathName(spectrumPathProperties.getRootPath() + + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + gasFilePath); betaDataFile.setGasFileName(gasFileName); gasTmp = ftpUtil.downloadFile(betaDataFile.getGasFilePathName()); - EnergySpectrumStruct gasStruct = EnergySpectrumHandler.getSourceData(gasTmp.getAbsolutePath()); + EnergySpectrumStruct gasStruct = + EnergySpectrumHandler.getSourceData(gasTmp.getAbsolutePath()); if (Objects.nonNull(gasStruct)) { betaDataFile.setGasStruct(gasStruct); betaDataFile.setGasFilePathName(gasFilePath); betaDataFile.setGasFileName(gasFileName); - gasBgMap = phdFileUtil.getSourceData(gasStruct, null, null, "gas", betaDataFile); + gasBgMap = phdFileUtil.getSourceData(gasStruct, null, null, "gas", + betaDataFile); gasBgMap.put("fileName", betaDataFile.getGasFileName()); resultMap.put("gasBg", gasBgMap); } // DET - betaDataFile.setDetFilePathName(spectrumPathProperties.getRootPath() + spectrumPathProperties.getSaveFilePath() + betaDataFile.setDetFilePathName(spectrumPathProperties.getRootPath() + + spectrumPathProperties.getSaveFilePath() + StringPool.SLASH + detFilePath); detTmp = ftpUtil.downloadFile(betaDataFile.getDetFilePathName()); - EnergySpectrumStruct detStruct = EnergySpectrumHandler.getSourceData(detTmp.getAbsolutePath()); + EnergySpectrumStruct detStruct = + EnergySpectrumHandler.getSourceData(detTmp.getAbsolutePath()); if (Objects.nonNull(detStruct)) { betaDataFile.setDetStruct(detStruct); betaDataFile.setDetFilePathName(detFilePath); betaDataFile.setDetFileName(detFileName); - detBgMap = phdFileUtil.getSourceData(detStruct, null, null, "det", betaDataFile); + detBgMap = phdFileUtil.getSourceData(detStruct, null, null, "det", + betaDataFile); detBgMap.put("fileName", betaDataFile.getDetFileName()); resultMap.put("detBg", detBgMap); } - String collectStartStr = DateUtils.formatDate(sampleData.getCollectStart(), "yyyy/MM/dd HH:mm:ss"); + String collectStartStr = DateUtils.formatDate(sampleData.getCollectStart(), + "yyyy/MM/dd HH:mm:ss"); // 查询Qc谱 - String qcFilePath = spectrumAnalysisMapper.getQCFilePath(sampleData.getSiteDetCode(), collectStartStr); + String qcFilePath = + spectrumAnalysisMapper.getQCFilePath(sampleData.getSiteDetCode(), + collectStartStr); if (StringUtils.isNotBlank(qcFilePath)) { - GardsSampleData qcSampleData = spectrumAnalysisMapper.findSampleByFilePath(qcFilePath); + GardsSampleData qcSampleData = + spectrumAnalysisMapper.findSampleByFilePath(qcFilePath); String qcFileName = StrUtil.subAfter(qcFilePath, StringPool.SLASH, true); - EnergySpectrumStruct qcStruct = getSourceData(qcFilePath, "qc", betaDataFile); + EnergySpectrumStruct qcStruct = + getSourceData(qcFilePath, "qc", betaDataFile); if (Objects.nonNull(qcStruct)) { betaDataFile.setQcStruct(qcStruct); betaDataFile.setQcFilePathName(qcFilePath); betaDataFile.setQcFileName(qcFileName); - qcMap = phdFileUtil.getSourceData(qcStruct, null, null, "qc", betaDataFile); + qcMap = phdFileUtil.getSourceData(qcStruct, null, null, "qc", + betaDataFile); qcMap.put("fileName", betaDataFile.getQcFileName()); resultMap.put("qc", qcMap); } @@ -4541,7 +4581,8 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport statisticsQueryData.setNuclidesList(new LinkedList<>()); } //根据类型判断查询对应数据 - List statisticsData = + List statisticsData = databaseType == DbType.POSTGRE_SQL ? + postgresMapper.statisticsQueryNuclides(statisticsQueryData) : spectrumAnalysisMapper.statisticsQueryNuclides(statisticsQueryData); Map resultMap = new HashMap<>(); List stcGraphList = new LinkedList<>(); @@ -4756,7 +4797,8 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport } } if (statisticsType.equals("Colloc_Time")) { - List statisticsData = + List statisticsData = databaseType == DbType.POSTGRE_SQL ? + postgresMapper.statisticsQueryCollection(startDate, endDate, detectorIdList) : spectrumAnalysisMapper.statisticsQueryCollection(startDate, endDate, detectorIdList); StcGraph stcGraph = new StcGraph(); @@ -4773,7 +4815,8 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport result.setSuccess(true); result.setResult(stcGraph); } else if (statisticsType.equals("Acq_Time")) { - List statisticsData = + List statisticsData = databaseType == DbType.POSTGRE_SQL ? + postgresMapper.statisticsQueryAcquisition(startDate, endDate, detectorIdList) : spectrumAnalysisMapper.statisticsQueryAcquisition(startDate, endDate, detectorIdList); StcGraph stcGraph = new StcGraph(); @@ -4790,7 +4833,8 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport result.setSuccess(true); result.setResult(stcGraph); } else if (statisticsType.equals("Xe_volumn")) { - List statisticsData = + List statisticsData = databaseType == DbType.POSTGRE_SQL ? + postgresMapper.statisticsQueryXeVolumn(startDate, endDate, detectorIdList) : spectrumAnalysisMapper.statisticsQueryXeVolumn(startDate, endDate, detectorIdList); StcGraph stcGraph = new StcGraph(); @@ -4807,7 +4851,8 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport result.setSuccess(true); result.setResult(stcGraph); } else if (statisticsType.equals("Sample_Volumn")) { - List statisticsData = + List statisticsData = databaseType == DbType.POSTGRE_SQL ? + postgresMapper.statisticsQuerySampleVolumn(startDate, endDate, detectorIdList) : spectrumAnalysisMapper.statisticsQuerySampleVolumn(startDate, endDate, detectorIdList); StcGraph stcGraph = new StcGraph(); @@ -6155,10 +6200,20 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport gardsAnalyses.setAnalyst(anlyseResultIn.getUserName()); gardsAnalyses.setLogPath(qsLogPath); gardsAnalyses.setReportPath(qsReportPath); + boolean isPostgres = databaseType == DbType.POSTGRE_SQL; if (Objects.nonNull(isExist)) { - spectrumAnalysisMapper.updateGardsAnalyses(gardsAnalyses); + if (isPostgres) { + postgresMapper.updateGardsAnalyses(gardsAnalyses); + } else { + spectrumAnalysisMapper.updateGardsAnalyses(gardsAnalyses); + } } else {//如果没有分析过就新增--GARDS_ANALYSES - spectrumAnalysisMapper.insertGardsAnalyses(gardsAnalyses); + if (isPostgres) { + postgresMapper.insertGardsAnalyses(gardsAnalyses); + } else { + spectrumAnalysisMapper.insertGardsAnalyses(gardsAnalyses); + } + } //查询analysisId根据sampleId 分析员名称--GARDS_ANALYSES GardsAnalysesSpectrum analysis = @@ -6321,7 +6376,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport Files.createDirectories(destinationDir); } reportByThymeleaf.generateHtmlReportToFile(rrrMap, - targetDir + "\\"+analyses_absolute_ReportPath+".html"); + targetDir + "\\" + analyses_absolute_ReportPath + ".html"); copyEchartsLib(targetDir); } catch (IOException e) { @@ -8205,18 +8260,13 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport stationId = idcStationMap.get(struct.site_code); } //连接本地同步的idc数据库 - conn = dataService.connectInland(); //连接对象为空 则连接idc国际库 - if (Objects.isNull(conn)) { - conn = dataService.connectOverSea(); - } //判断是否连接成功 - if (Objects.nonNull(conn)) { - //查询获取beta分析后的xe结果表的对比数据内容 - xeResultsViewList = - dataService.viewBetaXeResult(struct.detector_code, struct.spectrum_quantity, - stationId, collectStart, acquisitionStop, conn); - } + //查询获取beta分析后的xe结果表的对比数据内容 + xeResultsViewList = + dataService.viewBetaXeResult(struct.detector_code, struct.spectrum_quantity, + stationId, collectStart, acquisitionStop); + result.setSuccess(true); result.setResult(xeResultsViewList); } catch (ParseException e) { @@ -9329,10 +9379,10 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport // 计算当前对象属于哪个区间索引 int index = (int) ((conc - min) / binWidth); - if (index < 0) { + if (index < 0) { index = 0; } - if (index >= numBins) { + if (index >= numBins) { index = numBins - 1; } diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleDataWebPostgresMapper.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleDataWebPostgresMapper.java new file mode 100644 index 00000000..a424d191 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/GardsSampleDataWebPostgresMapper.java @@ -0,0 +1,32 @@ +package org.jeecg.modules.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.entity.GardsSampleDataWeb; +import org.jeecg.modules.entity.vo.SpectrumFileRecord; + +import java.util.List; +import java.util.Map; + +@Mapper +public interface GardsSampleDataWebPostgresMapper { + + Page findAutoPage(String startDate, String endDate, List stationIdList, String qualifie, String sampleType, Page page); + + Page findReviewedPage(String startDate, String endDate, List stationIdList, String qualifie, Page page); + + Page findParticulatePage(String dataType, String spectralQualifie, String startDate, String endDate, List stationIdList, Page page); + + Integer getAnalysisID(@Param(value = "sampleId") Integer sampleId); + + SpectrumFileRecord getDBSpectrumFilePath(Integer sampleId, Integer analysisID); + + String getQCFilePath(String siteDetCode, String collectStartStr); + + Integer getSampleId(@Param(value = "filePathName") String filePathName); + + List> findNuclideStatistics(@Param(value = "stationId") String stationId, @Param(value = "startTime") String startTime, @Param(value = "endTime") String endTime, @Param(value = "nuclideSql") String nuclideSql); + +} diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/xml/GardsSampleDataWebMapper.xml b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/xml/GardsSampleDataWebMapper.xml index 3f302d6e..55a472d6 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/xml/GardsSampleDataWebMapper.xml +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/xml/GardsSampleDataWebMapper.xml @@ -209,11 +209,10 @@ A.ACQUISITION_LIVE_SEC, A.SITE_DET_CODE FROM - ORIGINAL.GARDS_SAMPLE_DATA A, - ORIGINAL.GARDS_SAMPLE_AUX B + ORIGINAL.GARDS_SAMPLE_DATA A + INNER JOIN ORIGINAL.GARDS_SAMPLE_AUX B ON A.SAMPLE_ID = B.SAMPLE_ID WHERE A.STATION_ID = #{stationId} - AND A.SAMPLE_ID = B.SAMPLE_ID AND A.DATA_TYPE = 'S' AND A.SPECTRAL_QUALIFIE = 'FULL' AND A.COLLECT_START BETWEEN TO_DATE(#{startTime}, 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{endTime}, 'YYYY-MM-DD HH24:MI:SS') diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/xml/GardsSampleDataWebPostgresMapper.xml b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/xml/GardsSampleDataWebPostgresMapper.xml new file mode 100644 index 00000000..c8c4cc54 --- /dev/null +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/mapper/xml/GardsSampleDataWebPostgresMapper.xml @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/AutoServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/AutoServiceImpl.java index 9da79ffa..b6b7dd2a 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/AutoServiceImpl.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/AutoServiceImpl.java @@ -3,7 +3,9 @@ package org.jeecg.modules.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.dynamic.datasource.DynamicRoutingDataSource; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -20,6 +22,7 @@ import org.jeecg.modules.entity.GardsSampleDataWeb; import org.jeecg.modules.entity.dto.SampleDataDto; import org.jeecg.modules.mapper.GardsAnalysesAutoMapper; import org.jeecg.modules.mapper.GardsSampleDataWebMapper; +import org.jeecg.modules.mapper.GardsSampleDataWebPostgresMapper; import org.jeecg.modules.service.IAutoService; import org.jeecg.modules.service.IGardsSampleDataWebService; import org.jeecgframework.poi.excel.ExcelExportUtil; @@ -27,49 +30,82 @@ import org.jeecgframework.poi.excel.entity.ExportParams; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.PostConstruct; import javax.servlet.http.HttpServletResponse; +import javax.sql.DataSource; import java.io.IOException; import java.io.OutputStream; +import java.sql.SQLException; import java.util.*; import java.util.stream.Collectors; @Service("autoService") @DS("ora") -public class AutoServiceImpl extends ServiceImpl implements IAutoService { +public class AutoServiceImpl extends ServiceImpl + implements IAutoService { @Autowired private IGardsSampleDataWebService gardsSampleDataService; @Autowired private GardsSampleDataWebMapper gardsSampleDataWebMapper; @Autowired + private GardsSampleDataWebPostgresMapper gardsSampleDataWebPostgresMapper; + @Autowired private RedisUtil redisUtil; + @Autowired + private DataSource dataSource; + private DbType databaseType; + + @PostConstruct + public void initDbType() throws SQLException { + DynamicRoutingDataSource ds = (DynamicRoutingDataSource) dataSource; + String databaseProductName = + ds.getDataSource("ora").getConnection().getMetaData().getDatabaseProductName(); + databaseType = DbType.getDbType(databaseProductName); + + } + @Override - public Result findAutoPage(QueryRequest queryRequest, Integer[] stationIds, String qualifie, String sampleType, Date startTime, Date endTime) { + public Result findAutoPage(QueryRequest queryRequest, Integer[] stationIds, String qualifie, + String sampleType, Date startTime, Date endTime) { Result result = new Result(); //获取redis中缓存的台站信息 - Map stationMap = (Map)redisUtil.get("stationMap"); - if (Objects.isNull(startTime)){ + Map stationMap = (Map) redisUtil.get("stationMap"); + if (Objects.isNull(startTime)) { result.error500("The start time cannot be empty"); return result; } String startDate = DateUtils.formatDate(startTime, "yyyy-MM-dd") + " 00:00:00"; - if (Objects.isNull(endTime)){ + if (Objects.isNull(endTime)) { result.error500("The end time cannot be empty"); return result; } String endDate = DateUtils.formatDate(endTime, "yyyy-MM-dd") + " 23:59:59"; List stationIdList; - if (Objects.isNull(stationIds)){ + if (Objects.isNull(stationIds)) { stationIdList = new LinkedList<>(); - }else { + } else { stationIdList = Arrays.asList(stationIds); } - Page page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize()); - Page sampleDataPage = gardsSampleDataWebMapper.findAutoPage(startDate, endDate, stationIdList, qualifie, sampleType, page); - sampleDataPage.getRecords().forEach(item->{ + Page page = + new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize()); + Page sampleDataPage = + new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize()); + if (databaseType == DbType.POSTGRE_SQL) { + sampleDataPage = + gardsSampleDataWebPostgresMapper.findAutoPage(startDate, endDate, stationIdList, + qualifie, sampleType, page); + } else if (databaseType == DbType.ORACLE) { + sampleDataPage = + gardsSampleDataWebMapper.findAutoPage(startDate, endDate, stationIdList, + qualifie, sampleType, page); + } + + sampleDataPage.getRecords().forEach(item -> { item.setSiteDetCode(StringUtils.trim(item.getSiteDetCode())); - if (stationMap.containsKey(item.getStationId().toString()) && CollectionUtils.isNotEmpty(stationMap)){ + if (stationMap.containsKey(item.getStationId().toString()) && + CollectionUtils.isNotEmpty(stationMap)) { String stationName = stationMap.get(item.getStationId().toString()); item.setStationName(stationName); } @@ -82,7 +118,7 @@ public class AutoServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(GardsAnalyses::getSampleId,sampleId); + wrapper.eq(GardsAnalyses::getSampleId, sampleId); GardsAnalyses gardsAnalyses = getOne(wrapper); return Optional.ofNullable(gardsAnalyses) .orElse(new GardsAnalyses()); @@ -101,7 +137,9 @@ public class AutoServiceImpl extends ServiceImpl sampleData = gardsSampleDataService.listBySampleIds(stationIds, @@ -118,18 +156,20 @@ public class AutoServiceImpl extends ServiceImpl> nuclideStatisticsMap = this.baseMapper.findNuclideStatistics(stationId, startTime, endTime, nuclideSql); + List> nuclideStatisticsMap =databaseType==DbType.POSTGRE_SQL?postgresMapper.findNuclideStatistics(stationId, startTime, endTime, nuclideSql): + this.baseMapper.findNuclideStatistics(stationId, startTime, endTime, nuclideSql); //处理查询结果 handleNuclideData(nuclideStatisticsMap, systemType, nuclideNameList, allDayTime, resultMap); //返回台站名称 @@ -1054,7 +1075,8 @@ public class GardsSampleDataWebServiceImpl extends ServiceImpl> nuclideStatisticsMap = this.baseMapper.findNuclideStatistics(stationId, startTime, endTime, nuclideSql); + List> nuclideStatisticsMap =databaseType==DbType.POSTGRE_SQL?postgresMapper.findNuclideStatistics(stationId, startTime, endTime, nuclideSql): + this.baseMapper.findNuclideStatistics(stationId, startTime, endTime, nuclideSql); resultMap.put(stationName, nuclideStatisticsMap); //添加台站名称到集合 stationNameList.add(stationName); diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/ReviewedServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/ReviewedServiceImpl.java index 9f2908f7..b39eaf3e 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/ReviewedServiceImpl.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/ReviewedServiceImpl.java @@ -2,7 +2,9 @@ package org.jeecg.modules.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.dynamic.datasource.DynamicRoutingDataSource; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -19,6 +21,7 @@ import org.jeecg.modules.entity.GardsSampleDataWeb; import org.jeecg.modules.entity.dto.SampleDataDto; import org.jeecg.modules.mapper.GardsAnalysesManMapper; import org.jeecg.modules.mapper.GardsSampleDataWebMapper; +import org.jeecg.modules.mapper.GardsSampleDataWebPostgresMapper; import org.jeecg.modules.service.IGardsSampleDataWebService; import org.jeecg.modules.service.IReviewedService; import org.jeecgframework.poi.excel.ExcelExportUtil; @@ -26,9 +29,12 @@ import org.jeecgframework.poi.excel.entity.ExportParams; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.PostConstruct; import javax.servlet.http.HttpServletResponse; +import javax.sql.DataSource; import java.io.IOException; import java.io.OutputStream; +import java.sql.SQLException; import java.util.*; import java.util.stream.Collectors; @@ -43,6 +49,21 @@ public class ReviewedServiceImpl extends ServiceImpl page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize()); - Page sampleDataPage = gardsSampleDataWebMapper.findReviewedPage(startDate, endDate, stationIdList, qualifie, page); + Page sampleDataPage =databaseType==DbType.POSTGRE_SQL?postgresMapper.findReviewedPage(startDate, endDate, stationIdList, qualifie, page): gardsSampleDataWebMapper.findReviewedPage(startDate, endDate, stationIdList, qualifie, page); sampleDataPage.getRecords().forEach(item->{ item.setSiteDetCode(StringUtils.trim(item.getSiteDetCode())); if (stationMap.containsKey(item.getStationId().toString()) && CollectionUtils.isNotEmpty(stationMap)){