添加生成html格式的RRR报告

This commit is contained in:
duwenyuan 2026-07-20 18:27:36 +08:00
parent d04a18db0b
commit b73d9b54e2
14 changed files with 2884 additions and 5904 deletions

View File

@ -26,8 +26,11 @@ public class SpectrumAnalysesController {
@GetMapping("initValue")
@ApiOperation(value = "初始化数据", notes = "初始化数据")
public void initValue(String dbName, Integer sampleId, String analyst, String sampleFileName, String gasFileName, String detFileName, String qcFileName, HttpServletRequest request) {
spectrumAnalysisService.initValue(dbName, sampleId, analyst, sampleFileName, gasFileName, detFileName, qcFileName, request);
public void initValue(String dbName, Integer sampleId, String analyst, String sampleFileName,
String gasFileName, String detFileName, String qcFileName,
HttpServletRequest request) {
spectrumAnalysisService.initValue(dbName, sampleId, analyst, sampleFileName, gasFileName,
detFileName, qcFileName, request);
}
@GetMapping("getDBSearchList")
@ -38,9 +41,15 @@ public class SpectrumAnalysesController {
@GetMapping("getDBSpectrumList")
@ApiOperation(value = "获取数据库中交互分析基础数据", notes = "获取数据库中交互分析基础数据")
public Result getDBSpectrumList(QueryRequest queryRequest, GardsSampleDataSpectrum gardsSampleData, String dbName, String[] menuTypes, boolean AllUsers, boolean CollectStopB, boolean AcqStartB,
@DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate, @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate, HttpServletRequest request) {
return spectrumAnalysisService.getDBSpectrumList(queryRequest, gardsSampleData, dbName, menuTypes, AllUsers, CollectStopB, AcqStartB, startDate, endDate, request);
public Result getDBSpectrumList(QueryRequest queryRequest,
GardsSampleDataSpectrum gardsSampleData, String dbName,
String[] menuTypes, boolean AllUsers, boolean CollectStopB,
boolean AcqStartB,
@DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
@DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate,
HttpServletRequest request) {
return spectrumAnalysisService.getDBSpectrumList(queryRequest, gardsSampleData, dbName,
menuTypes, AllUsers, CollectStopB, AcqStartB, startDate, endDate, request);
}
@GetMapping("getFilesBySampleFile")
@ -51,32 +60,39 @@ public class SpectrumAnalysesController {
@GetMapping("getDBSpectrumChart")
@ApiOperation(value = "查询折线图相关信息接口", notes = "查询折线图相关信息接口")
public Result getDBSpectrumChart(String dbName, Integer sampleId, String analyst, HttpServletRequest request) {
public Result getDBSpectrumChart(String dbName, Integer sampleId, String analyst,
HttpServletRequest request) {
return spectrumAnalysisService.getDBSpectrumChart(dbName, sampleId, analyst, request);
}
@GetMapping("getDBSpectrumChartApp")
@ApiOperation(value = "查询折线图相关信息接口", notes = "查询折线图相关信息接口")
public Result getDBSpectrumChartApp(@RequestParam("dbName") String dbName,@RequestParam("sampleId") Integer sampleId,
@RequestParam("analyst") String analyst, HttpServletRequest request) {
public Result getDBSpectrumChartApp(@RequestParam("dbName") String dbName,
@RequestParam("sampleId") Integer sampleId,
@RequestParam("analyst") String analyst,
HttpServletRequest request) {
return spectrumAnalysisService.getDBSpectrumChart(dbName, sampleId, analyst, request);
}
@GetMapping("getFileSpectrumChart")
@ApiOperation(value = "查询文件折线图相关信息接口", notes = "查询文件折线图相关信息接口")
public Result getFileSpectrumChart(String sampleFileName, String gasFileName, String detFileName, String qcFileName, HttpServletRequest request) {
return spectrumAnalysisService.getFileSpectrumChart(sampleFileName, gasFileName, detFileName, qcFileName, request);
public Result getFileSpectrumChart(String sampleFileName, String gasFileName,
String detFileName, String qcFileName,
HttpServletRequest request) {
return spectrumAnalysisService.getFileSpectrumChart(sampleFileName, gasFileName,
detFileName, qcFileName, request);
}
@DeleteMapping("deleteSpectrumCacheData")
@ApiOperation(value = "删除缓存数据",notes = "删除缓存数据")
@ApiOperation(value = "删除缓存数据", notes = "删除缓存数据")
public void deleteSpectrumCacheData(String sampleFileName, HttpServletRequest request) {
spectrumAnalysisService.deleteSpectrumCacheData(sampleFileName, request);
}
@DeleteMapping("deleteSpectrumCacheDataApp")
@ApiOperation(value = "删除缓存数据",notes = "删除缓存数据")
public void deleteSpectrumCacheDataApp(@RequestParam("sampleFileName") String sampleFileName, HttpServletRequest request) {
@ApiOperation(value = "删除缓存数据", notes = "删除缓存数据")
public void deleteSpectrumCacheDataApp(@RequestParam("sampleFileName") String sampleFileName,
HttpServletRequest request) {
spectrumAnalysisService.deleteSpectrumCacheData(sampleFileName, request);
}
@ -98,78 +114,110 @@ public class SpectrumAnalysesController {
return spectrumAnalysisService.viewRRR(rrrLogInfo, request);
}
@PostMapping("viewRRRHtml")
@ApiOperation(value = "查看RRRHtml报告", notes = "查看RRRHtml报告")
public Result viewRRRHtml(@RequestBody RRRLogInfo rrrLogInfo, HttpServletRequest request){
return spectrumAnalysisService.viewRRRHtml(rrrLogInfo, request);
}
@GetMapping("viewSpectrum")
@ApiOperation(value = "查看Spectrum数据", notes = "查看Spectrum数据")
public Result viewSpectrum(Integer sampleId, String dbName, String sampleFileName, String gasFileName, String detFileName, String qcFileName, HttpServletRequest request) {
return spectrumAnalysisService.viewSpectrum(sampleId, dbName, sampleFileName, gasFileName, detFileName, qcFileName, request);
public Result viewSpectrum(Integer sampleId, String dbName, String sampleFileName,
String gasFileName, String detFileName, String qcFileName,
HttpServletRequest request) {
return spectrumAnalysisService.viewSpectrum(sampleId, dbName, sampleFileName, gasFileName,
detFileName, qcFileName, request);
}
@GetMapping("viewSampleInformation")
@ApiOperation(value = "查看SampleInformation数据", notes = "查看SampleInformation数据")
public Result viewSampleInformation(Integer sampleId, String sampleFileName, HttpServletRequest request) {
public Result viewSampleInformation(Integer sampleId, String sampleFileName,
HttpServletRequest request) {
return spectrumAnalysisService.viewSampleInformation(sampleId, sampleFileName, request);
}
@GetMapping("exportSampleInformation")
@ApiOperation(value = "导出SampleInformation数据", notes = "导出SampleInformation数据")
public void exportSampleInformation(Integer sampleId, String sampleFileName, HttpServletRequest request, HttpServletResponse response){
spectrumAnalysisService.exportSampleInformation(sampleId, sampleFileName, request,response);
public void exportSampleInformation(Integer sampleId, String sampleFileName,
HttpServletRequest request, HttpServletResponse response) {
spectrumAnalysisService.exportSampleInformation(sampleId, sampleFileName, request,
response);
}
@GetMapping("viewQCResult")
@ApiOperation(value = "查看QC Result数据", notes = "查看QC Result数据")
public Result viewQCResult(Integer sampleId, String dbName, String sampleFileName, String gasFileName, String detFileName, HttpServletRequest request) {
return spectrumAnalysisService.viewQCResult(sampleId, dbName, sampleFileName, gasFileName ,detFileName, request);
public Result viewQCResult(Integer sampleId, String dbName, String sampleFileName,
String gasFileName, String detFileName, HttpServletRequest request) {
return spectrumAnalysisService.viewQCResult(sampleId, dbName, sampleFileName, gasFileName,
detFileName, request);
}
@GetMapping("exportQCResult")
@ApiOperation(value = "导出QC Result数据", notes = "导出QC Result数据")
public void exportQCResult(Integer sampleId, String dbName, String sampleFileName, String gasFileName, String detFileName, HttpServletRequest request, HttpServletResponse response){
spectrumAnalysisService.exportQCResult(sampleId, dbName, sampleFileName, gasFileName ,detFileName, request,response);
public void exportQCResult(Integer sampleId, String dbName, String sampleFileName,
String gasFileName, String detFileName, HttpServletRequest request,
HttpServletResponse response) {
spectrumAnalysisService.exportQCResult(sampleId, dbName, sampleFileName, gasFileName,
detFileName, request, response);
}
@GetMapping("exportQCResultTXT")
public void exportQCResultTXT(Integer sampleId, String dbName, String sampleFileName, String gasFileName, String detFileName, HttpServletRequest request, HttpServletResponse response) {
spectrumAnalysisService.exportQCResultTXT(sampleId, dbName, sampleFileName, gasFileName, detFileName, request, response);
public void exportQCResultTXT(Integer sampleId, String dbName, String sampleFileName,
String gasFileName, String detFileName,
HttpServletRequest request, HttpServletResponse response) {
spectrumAnalysisService.exportQCResultTXT(sampleId, dbName, sampleFileName, gasFileName,
detFileName, request, response);
}
@GetMapping("viewRLR")
@ApiOperation(value = "查看RLR数据", notes = "查看RLR数据")
public Result viewRLR(Integer sampleId, String sampleFileName, String gasFileName, String detFileName, HttpServletRequest request) {
return spectrumAnalysisService.viewRLR(sampleId, sampleFileName, gasFileName, detFileName, request);
public Result viewRLR(Integer sampleId, String sampleFileName, String gasFileName,
String detFileName, HttpServletRequest request) {
return spectrumAnalysisService.viewRLR(sampleId, sampleFileName, gasFileName, detFileName,
request);
}
@PostMapping("exportRLR")
@ApiOperation(value = "导出RLR数据", notes = "导出RLR数据")
public void exportRLR(@RequestBody BetaRLR betaRLR , HttpServletResponse response) {
public void exportRLR(@RequestBody BetaRLR betaRLR, HttpServletResponse response) {
spectrumAnalysisService.exportRLR(betaRLR, response);
}
@GetMapping("viewGammaDetectorCalibration")
@ApiOperation(value = "查询GammaDetectorCalibration数据", notes = "查询GammaDetectorCalibration数据")
public Result viewGammaDetectorCalibration(Integer sampleId, String sampleFileName, String qcFileName, boolean fittingBtn, HttpServletRequest request) {
return spectrumAnalysisService.viewGammaDetectorCalibration(sampleId, sampleFileName, qcFileName, fittingBtn, request);
public Result viewGammaDetectorCalibration(Integer sampleId, String sampleFileName,
String qcFileName, boolean fittingBtn,
HttpServletRequest request) {
return spectrumAnalysisService.viewGammaDetectorCalibration(sampleId, sampleFileName,
qcFileName, fittingBtn, request);
}
@GetMapping("viewBetaDetectorCalibration")
@ApiOperation(value = "查询BetaDetectorCalibration数据", notes = "查询BetaDetectorCalibration数据")
public Result viewBetaDetectorCalibration(Integer sampleId, String sampleFileName, String qcFileName, boolean fittingBtn, HttpServletRequest request) {
return spectrumAnalysisService.viewBetaDetectorCalibration(sampleId, sampleFileName, qcFileName, fittingBtn, request);
public Result viewBetaDetectorCalibration(Integer sampleId, String sampleFileName,
String qcFileName, boolean fittingBtn,
HttpServletRequest request) {
return spectrumAnalysisService.viewBetaDetectorCalibration(sampleId, sampleFileName,
qcFileName, fittingBtn, request);
}
@GetMapping("viewExtrapolation")
@ApiOperation(value = "查询Extrapolation数据", notes = "查询Extrapolation数据")
public Result viewExtrapolation(Integer sampleId, String sampleFileName, HttpServletRequest request) {
public Result viewExtrapolation(Integer sampleId, String sampleFileName,
HttpServletRequest request) {
return spectrumAnalysisService.viewExtrapolation(sampleId, sampleFileName, request);
}
@PostMapping("changeDataExtrapolation")
public Result changeDataExtrapolation(@RequestBody ChangeExtInfo extInfo, HttpServletRequest request) {
public Result changeDataExtrapolation(@RequestBody ChangeExtInfo extInfo,
HttpServletRequest request) {
return spectrumAnalysisService.changeDataExtrapolation(extInfo, request);
}
@PostMapping("analyseExtrapolation")
public Result analyseExtrapolation(@RequestBody AnalyseExtInfo extInfo, HttpServletRequest request) {
public Result analyseExtrapolation(@RequestBody AnalyseExtInfo extInfo,
HttpServletRequest request) {
return spectrumAnalysisService.analyseExtrapolation(extInfo, request);
}
@ -193,20 +241,30 @@ public class SpectrumAnalysesController {
@GetMapping("statisticsQueryBtn")
@ApiOperation(value = "报警按钮分析数据", notes = "报警按钮分析数据")
public Result statisticsQueryBtn(Integer detectorId, String detectorName, Integer stationId, String statisticsType, @DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime, @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
return spectrumAnalysisService.statisticsQueryBtn(detectorId, detectorName, stationId, statisticsType, startTime, endTime);
public Result statisticsQueryBtn(Integer detectorId, String detectorName, Integer stationId,
String statisticsType,
@DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime,
@DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime) {
return spectrumAnalysisService.statisticsQueryBtn(detectorId, detectorName, stationId,
statisticsType, startTime, endTime);
}
@PostMapping("fitting")
@ApiOperation(value = "公式计算新的曲线", notes = "公式计算新的曲线")
public Result fitting(@RequestBody FittingBody fittingBody, HttpServletRequest request) {
return spectrumAnalysisService.fitting(fittingBody.getParamA(), fittingBody.getParamB(), fittingBody.getParamC(), fittingBody.getTempPoints(), fittingBody.getCount(), fittingBody.getSampleFileName(), fittingBody.getTabName(), fittingBody.isFittingBtn(), request);
return spectrumAnalysisService.fitting(fittingBody.getParamA(), fittingBody.getParamB(),
fittingBody.getParamC(), fittingBody.getTempPoints(), fittingBody.getCount(),
fittingBody.getSampleFileName(), fittingBody.getTabName(),
fittingBody.isFittingBtn(), request);
}
@GetMapping("getGammaGated")
@ApiOperation(value = "获取gamma对应count数据", notes = "获取gamma对应count数据")
public Result getGammaGated(Integer chartHeight, Integer channelWidth, Integer gammaChannel, Integer sampleId, String qcFileName, String sampleFileName, HttpServletRequest request) {
return spectrumAnalysisService.getGammaGated(chartHeight, channelWidth, gammaChannel, sampleId, qcFileName, sampleFileName, request);
public Result getGammaGated(Integer chartHeight, Integer channelWidth, Integer gammaChannel,
Integer sampleId, String qcFileName, String sampleFileName,
HttpServletRequest request) {
return spectrumAnalysisService.getGammaGated(chartHeight, channelWidth, gammaChannel,
sampleId, qcFileName, sampleFileName, request);
}
@PostMapping("resetButton")
@ -222,20 +280,26 @@ public class SpectrumAnalysesController {
@PostMapping("analyseCurrentSpectrum")
@ApiOperation(value = "解析当前加载文件数据", notes = "解析当前加载文件数据")
public Result analyseCurrentSpectrum(@RequestBody AnalyseBetaInfo analyseBetaInfo, HttpServletRequest request) {
public Result analyseCurrentSpectrum(@RequestBody AnalyseBetaInfo analyseBetaInfo,
HttpServletRequest request) {
String dbName = analyseBetaInfo.getDbNames().get(0);
Integer sampleId = analyseBetaInfo.getSampleIds().get(0);
String sampleFileName = analyseBetaInfo.getSampleFileNames().get(0);
String gasFileName = analyseBetaInfo.getGasFileNames().get(0);
String detFileName = analyseBetaInfo.getDetFileNames().get(0);
String qcFileName = analyseBetaInfo.getQcFileNames().get(0);
return spectrumAnalysisService.analyseCurrentSpectrum(dbName, sampleId, sampleFileName, gasFileName, detFileName, qcFileName, request);
return spectrumAnalysisService.analyseCurrentSpectrum(dbName, sampleId, sampleFileName,
gasFileName, detFileName, qcFileName, request);
}
@PostMapping("analyseAllSpectrum")
@ApiOperation(value = "解析全部加载文件数据", notes = "解析全部加载文件数据")
public Result analyseAllSpectrum(@RequestBody AnalyseBetaInfo analyseBetaInfo, HttpServletRequest request) {
return spectrumAnalysisService.analyseAllSpectrum(analyseBetaInfo.getDbNames(), analyseBetaInfo.getSampleIds(), analyseBetaInfo.getSampleFileNames(), analyseBetaInfo.getGasFileNames(), analyseBetaInfo.getDetFileNames(), analyseBetaInfo.getQcFileNames(), analyseBetaInfo.getCurrentFileName(), request);
public Result analyseAllSpectrum(@RequestBody AnalyseBetaInfo analyseBetaInfo,
HttpServletRequest request) {
return spectrumAnalysisService.analyseAllSpectrum(analyseBetaInfo.getDbNames(),
analyseBetaInfo.getSampleIds(), analyseBetaInfo.getSampleFileNames(),
analyseBetaInfo.getGasFileNames(), analyseBetaInfo.getDetFileNames(),
analyseBetaInfo.getQcFileNames(), analyseBetaInfo.getCurrentFileName(), request);
}
@GetMapping("viewAutomaticAnalysisLog")
@ -251,25 +315,26 @@ public class SpectrumAnalysesController {
}
@PostMapping("saveToDB")
public Result saveToDB(@RequestBody BgDataAnlyseResultIn anlyseResultIn, HttpServletRequest request) {
public Result saveToDB(@RequestBody BgDataAnlyseResultIn anlyseResultIn,
HttpServletRequest request) {
return spectrumAnalysisService.saveToDB(anlyseResultIn, request);
}
@PostMapping("saveToHTML")
public void saveToHTML(HttpServletRequest request, HttpServletResponse response,
@RequestBody RRRLogInfo rrrLogInfo){
@RequestBody RRRLogInfo rrrLogInfo) {
spectrumAnalysisService.saveToHTML(rrrLogInfo, request, response);
}
@PostMapping("saveToExcel")
public void saveToExcel(HttpServletRequest request, HttpServletResponse response,
@RequestBody RRRLogInfo rrrLogInfo){
@RequestBody RRRLogInfo rrrLogInfo) {
spectrumAnalysisService.saveToExcel(rrrLogInfo, request, response);
}
@PostMapping("saveToTxt")
public void saveToTxt(HttpServletRequest request, HttpServletResponse response,
@RequestBody RRRLogInfo rrrLogInfo){
@RequestBody RRRLogInfo rrrLogInfo) {
spectrumAnalysisService.saveToTxt(rrrLogInfo, request, response);
}

View File

@ -2,6 +2,7 @@ package org.jeecg.modules.entity.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.jeecg.modules.entity.RatioType;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@ -9,16 +10,42 @@ import java.util.Date;
@Data
public class NuclideRatioResult {
private String sampleId;
private Double ratio; // Xe-133 / Xe-131m
private RatioType ratioType; // 新增标识哪种比值
private Double ratio;
private Double numerator; // 新增分子值调试用
private Double denominator; // 新增分母值调试用
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date collectStop; // 停止采集时间
private String status; // 计算状态 SUCCESS, MISSING_DATA, ZERO_DENOMINATOR
private Date collectStop;
public NuclideRatioResult(String sampleId, Double ratio, Date collectStop, String status) {
private String status; // SUCCESS, MISSING_DATA, ZERO_DENOMINATOR
/**
* 成功时的构造
*/
public NuclideRatioResult(String sampleId, RatioType ratioType,
Double ratio, Double numerator,
Double denominator, Date collectStop) {
this.sampleId = sampleId;
this.ratioType = ratioType;
this.ratio = ratio;
this.numerator = numerator;
this.denominator = denominator;
this.collectStop = collectStop;
this.status = "SUCCESS";
}
/**
* 失败时的构造无比值结果
*/
public NuclideRatioResult(String sampleId, RatioType ratioType,
String status) {
this.sampleId = sampleId;
this.ratioType = ratioType;
this.ratio = null;
this.numerator = null;
this.denominator = null;
this.collectStop = null;
this.status = status;
}
}

View File

@ -240,9 +240,13 @@ public interface SpectrumAnalysisMapper {
@Param("startTime") Date startTime);
List<NuclideAnalysisInfo> selectXeDataPastYear(@Param("schemaName") String schemaName,
@Param("sampleId") String sampleId,
@Param("stationId") String stationId,
@Param(value = "userName") String userName,
@Param("startTime") Date startTime,
@Param("endTime") Date endTime);
List<NuclideAnalysisInfo> selectXeData(@Param("schemaName") String schemaName,
@Param("sampleId") String sampleId,
@Param(value = "userName") String userName
);
}

View File

@ -58,4 +58,40 @@
WHERE IDANALYSIS = #{analyses.idAnalysis}
</update>
<update id="updateEntity">
UPDATE RNMAN.GARDS_ANALYSES
SET ANALYSISBEGIN =
<choose>
<when test="dbType == 'Oracle'">
TO_DATE(#{analyses.analysisBeginStr}, 'YYYY/MM/DD HH24:MI:SS')
</when>
<otherwise>
TO_TIMESTAMP(#{analyses.analysisBeginStr}, 'YYYY/MM/DD HH24:MI:SS')
</otherwise>
</choose>,
ANALYSISEND =
<choose>
<when test="dbType == 'PostgreSQL'">
TO_DATE(#{analyses.analysisEndStr}, 'YYYY/MM/DD HH24:MI:SS')
</when>
<otherwise>
TO_TIMESTAMP(#{analyses.analysisEndStr}, 'YYYY/MM/DD HH24:MI:SS')
</otherwise>
</choose>,
SOFTWARE = #{analyses.software},
SWVERSION = #{analyses.swVersion},
COMMENTS = #{analyses.comments},
SEARCHSTARTCHANNEL = #{analyses.searchStartChannel},
SEARCHENDCHANNEL = #{analyses.searchEndChannel},
SEARCHTHRESHOLD = #{analyses.searchThreshold},
NUMBEROFPEAKS = #{analyses.numberOfPeaks},
TOTALCOUNTS = #{analyses.totalCounts},
BASELINE_PATH = #{analyses.baselinePath},
LC_PATH = #{analyses.lcPath},
SCAC_PATH = #{analyses.scacPath},
LOG_PATH = #{analyses.logPath},
REPORT_PAHT = #{analyses.reportPath}
WHERE IDANALYSIS = #{analyses.idAnalysis}
</update>
</mapper>

View File

@ -40,7 +40,11 @@
WHEN 10 THEN 'XE133'
WHEN 11 THEN 'XE135'
ELSE 'UNKNOWN'
END as NUCLIDE_NAME, CONC, CONC_ERR, MDC, NID_FLAG
END as NUCLIDE_NAME,
TRIM(TO_CHAR(CONC, 'FM999990.099999')) AS CONC,
TRIM(TO_CHAR(CONC_ERR, 'FM999990.099999')) AS CONC_ERR,
TRIM(TO_CHAR(MDC, 'FM999990.099999')) AS MDC,
NID_FLAG
FROM rmsman.gards_bg_isotope_concs
WHERE SAMPLE_ID = #{sampleId}
</select>

View File

@ -1291,11 +1291,31 @@
AND xe.IDANALYSIS = b.IDANALYSIS
LEFT JOIN ORIGINAL.GARDS_SAMPLE_DATA a
ON xe.SAMPLE_ID = a.SAMPLE_ID
WHERE a.SAMPLE_ID = #{sampleId}
WHERE a.STATION_ID = #{stationId}
AND b.ANALYST = #{userName}
AND a.COLLECT_STOP IS NOT NULL
AND a.COLLECT_STOP BETWEEN #{startTime} AND #{endTime}
</select>
<select id="selectXeData" resultType="org.jeecg.modules.entity.vo.NuclideAnalysisInfo">
SELECT a.SAMPLE_ID,
a.COLLECT_STOP,
b.CATEGORY,
xe.CONC,
xe.CONC_ERR,
xe.MDC,
xe.NUCLIDE_NAME,
xe.LC
FROM ${schemaName}.GARDS_XE_RESULTS xe
LEFT JOIN ${schemaName}.GARDS_ANALYSES b
ON xe.SAMPLE_ID = b.SAMPLE_ID
AND xe.IDANALYSIS = b.IDANALYSIS
LEFT JOIN ORIGINAL.GARDS_SAMPLE_DATA a
ON xe.SAMPLE_ID = a.SAMPLE_ID
WHERE a.SAMPLE_ID = #{sampleId}
AND b.ANALYST = #{userName}
AND a.COLLECT_STOP IS NOT NULL
</select>
<select id="roiPaths" resultType="org.jeecg.modules.base.dto.RoiDto">
SELECT ROI_NUM, PHD_PATH

View File

@ -148,6 +148,8 @@ public interface IGammaService{
Result viewRRR(Integer sampleId, String fileName, HttpServletRequest request);
Result viewRRRHtml(Integer sampleId, String fileName, HttpServletRequest request);
void exportRRR(Integer sampleId, String fileName, HttpServletRequest request, HttpServletResponse response);
Result<?> radionuclideActivity(Integer sampleId, String fileName, HttpServletRequest request);

View File

@ -34,7 +34,14 @@ public interface IGenerateHtmlReport {
* @return 生成的HTML字符串
*/
String generateHtmlReportWithTemplate(Map<String, Object> data, String templatePath);
/**
* 使用自定义模板路径生成报告并保存到指定输出目录
* @param data 报告数据键值对形式
* @param templatePath 模板文件路径相对于classpath例如 "templates/custom-report.html"
* @param outputPath 目标文件保存路径包含文件名和后缀例如 "D:/reports/report_2026.html"
* @return 保存成功返回true失败返回false
*/
boolean generateHtmlReportWithTemplateToFile(Map<String, Object> data, String templatePath, String outputPath);
/**
* 生成带图表和交互功能的HTML报告
* @param data 报告数据

View File

@ -33,6 +33,7 @@ public interface ISpectrumAnalysisService {
void viewARR(Integer sampleId, HttpServletResponse response);
Result viewRRR(RRRLogInfo rrrLogInfo, HttpServletRequest request);
Result viewRRRHtml(RRRLogInfo rrrLogInfo, HttpServletRequest request);
Result viewSpectrum(Integer sampleId, String dbName, String sampleFileName, String gasFileName, String detFileName, String qcFileName, HttpServletRequest request);

View File

@ -2,13 +2,16 @@ package org.jeecg.modules.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.common.constant.enums.DbType;
import org.jeecg.common.util.DateUtils;
import org.jeecg.common.util.DynamicDsProperties;
import org.jeecg.modules.base.entity.rnman.GardsAnalyses;
import org.jeecg.modules.entity.vo.GStoreMiddleProcessData;
import org.jeecg.modules.entity.vo.PHDFile;
import org.jeecg.modules.entity.GardsAnalysesSpectrum;
import org.jeecg.modules.mapper.GardsAnalysesManMapper;
import org.jeecg.modules.service.IGardsAnalysesSpectrumService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -19,6 +22,8 @@ import java.util.Date;
@DS("ora")
public class GardsAnalysesSpectrumServiceImpl extends ServiceImpl<GardsAnalysesManMapper, GardsAnalyses> implements IGardsAnalysesSpectrumService {
@Autowired
private DynamicDsProperties dynamicDsProperties;
@Override
@Transactional
public Integer insertEntity(GStoreMiddleProcessData middleData, PHDFile phd, String userName, String comments) {
@ -71,7 +76,8 @@ public class GardsAnalysesSpectrumServiceImpl extends ServiceImpl<GardsAnalysesM
analyses.setScacPath(middleData.analyses_scac_filePath);
analyses.setLogPath(middleData.analyses_LogPath);
analyses.setReportPath(middleData.analyses_ReportPath);
this.baseMapper.updateEntity(analyses);
DbType dbType = dynamicDsProperties.getDatasource().get("ora").getDbTypeEnum();
this.baseMapper.updateEntity(analyses,dbType.getText());
}
}

View File

@ -1,5 +1,6 @@
package org.jeecg.modules.service.impl;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.service.IGenerateHtmlReport;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -11,11 +12,12 @@ import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Base64;
import java.util.List;
import java.util.Map;
@Slf4j
@Service
public class HtmlReportGenerator implements IGenerateHtmlReport {
@ -100,7 +102,36 @@ public class HtmlReportGenerator implements IGenerateHtmlReport {
return tempEngine.process(templatePath, context);
}
/**
* 使用自定义模板路径生成报告并保存到指定输出目录
* @param data 报告数据键值对形式
* @param templatePath 模板文件路径相对于classpath
* @param outputPath 目标文件保存路径包含文件名
* @return 保存成功返回true失败返回false
*/
@Override
public boolean generateHtmlReportWithTemplateToFile(Map<String, Object> data, String templatePath, String outputPath) {
try {
// 使用自定义模板路径解析并生成 HTML 字符串
String htmlContent = generateHtmlReportWithTemplate(data, templatePath);
// 获取输出文件的 Path 对象
Path path = Paths.get(outputPath);
// 如果目标文件的父级目录不存在则自动创建目录
Path parentDir = path.getParent();
if (parentDir != null && Files.notExists(parentDir)) {
Files.createDirectories(parentDir);
}
// HTML 字符串以 UTF-8 编码写入指定的目标文件中
Files.write(path, htmlContent.getBytes(StandardCharsets.UTF_8));
return true;
} catch (IOException e) {
log.error("使用自定义模板路径生成报告,并保存到指定输出目录错误:",e);
return false;
}
}
/**
* 生成高级HTML报告可选包含图表和交互功能
* @param data 报告数据键值对形式