Merge remote-tracking branch 'origin/station' into station

This commit is contained in:
nieziyan 2023-08-11 18:37:48 +08:00
commit cdfdbc374a
73 changed files with 4722 additions and 600 deletions

View File

@ -82,7 +82,7 @@ public class GardsNuclearfacility implements Serializable {
*/
@TableField(value = "RETIREDATE")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date retireDate;
/**
@ -90,7 +90,7 @@ public class GardsNuclearfacility implements Serializable {
*/
@TableField(value = "GRIDCONEETIONDATE")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date gridconeetionDate;
/**

View File

@ -159,7 +159,7 @@ public class GardsSampleData implements Serializable {
*/
@TableField(value = "MODDATE")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date moddate;

View File

@ -31,12 +31,16 @@ public class GardsAnalyses implements Serializable {
* 分析开始时间
*/
@TableField(value = "ANALYSISBEGIN")
private Data analysisBegin;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date analysisBegin;
/**
* 分析结束时间
*/
@TableField(value = "ANALYSISEND")
private Data analysisEnd;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date analysisEnd;
/**
* Reviewed:交互,auto:自动
*/

View File

@ -111,4 +111,5 @@ public class GardsCalibration implements Serializable {
@TableField(value = "COEFF_STRING")
private String coeffString;
}

View File

@ -67,4 +67,5 @@ public class GardsCalibrationPairs implements Serializable {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date moddate;
}

View File

@ -114,4 +114,5 @@ public class GardsNuclIded implements Serializable {
@TableField(value = "KEY_YIELD")
private String keyYield;
}

View File

@ -16,6 +16,12 @@ import java.util.Date;
@TableName("RNAUTO.GARDS_NUCL_LINES_IDED")
public class GardsNuclLinesIded implements Serializable {
/**
* 分析ID号
*/
@TableField(value = "IDANALYSIS")
private Integer idAnalysis;
/**
* 样品id
*/
@ -26,16 +32,11 @@ public class GardsNuclLinesIded implements Serializable {
*/
@TableField(value = "IDPEAK")
private Integer idPeak;
/**
* 分析ID号
*/
@TableField(value = "IDANALYSIS")
private Integer idAnalysis;
/**
* 核素名称
*/
@TableField(value = "NUCLIDE_NAME")
@TableField(value = "NUCLIDENAME")
private String nuclideName;
@TableField(value = "MODDATE")
@ -108,4 +109,14 @@ public class GardsNuclLinesIded implements Serializable {
*/
@TableField(value = "CSC_MOD_FLAG")
private Double cscModFlag;
@TableField(value = "NUCLIDEFULLNAME")
private String nuclidefullname;
@TableField(value = "MDC")
private String mdc;
@TableField(value = "CONCENTRATION")
private String concentration;
}

View File

@ -159,4 +159,5 @@ public class GardsPeaks implements Serializable {
@TableField(value = "PEAKCOMMENTS")
private String peakcomments;
}

View File

@ -0,0 +1,40 @@
package org.jeecg.modules.base.entity.rnauto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import sun.security.krb5.internal.PAData;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName(value = "RNAUTO.GARDS_QC_CHECK")
public class GardsQcCheck implements Serializable {
@TableField(value = "SAMPLE_ID")
private Integer sampleId;
@TableField(value = "IDANALYSIS")
private Integer idanalysis;
@TableField(value = "QC_NAME")
private String qcName;
@TableField(value = "QC_VALUE")
private Double qcValue;
@TableField(value = "QC_STANDARD")
private String qcStandard;
@TableField(value = "QC_RESULT")
private Integer qcResult;
@TableField(value = "MODDATE")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date moddate;
}

View File

@ -0,0 +1,76 @@
package org.jeecg.modules.base.entity.rnman;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName(value = "RNMAN.GARDS_ANALY_SETTING")
public class GardsAnalySetting implements Serializable {
@TableField(value = "IDANALYSIS")
private Integer idanalysis;
@TableField(value = "SAMPLE_ID")
private Integer sampleId;
@TableField(value = "MODDATE")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date moddate;
@TableField(value = "ECUTANALYSIS_LOW")
private Double ecutanalysisLow;
@TableField(value = "ECUTANALYSIS_HIGH")
private Double ecutanalysisHigh;
@TableField(value = "ENERGYTOLERANCE")
private Double energytolerance;
@TableField(value = "CALIBRATIONPSS_HIGH")
private Double calibrationpssHigh;
@TableField(value = "CALIBRATIONPSS_LOW")
private Double calibrationpssLow;
@TableField(value = "BASEIMPROVEPSS")
private Double baseimprovepss;
@TableField(value = "PSS_LOW")
private Double pssLow;
@TableField(value = "K_BACK")
private Double KBack;
@TableField(value = "K_ALPHA")
private Double KAlpha;
@TableField(value = "K_BETA")
private Double KBeta;
@TableField(value = "RISKLEVELK")
private Double risklevelk;
@TableField(value = "BUPDATECAL")
private Integer bupdatecal;
@TableField(value = "KEEPCALPEAKSERCHPEAKS")
private Integer keepcalpeakserchpeaks;
@TableField(value = "REFTIME_ACT")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date reftimeAct;
@TableField(value = "REFTIME_CONC")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date reftimeConc;
}

View File

@ -31,12 +31,16 @@ public class GardsAnalyses implements Serializable {
* 分析开始时间
*/
@TableField(value = "ANALYSISBEGIN")
private Data analysisBegin;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date analysisBegin;
/**
* 分析结束时间
*/
@TableField(value = "ANALYSISEND")
private Data analysisEnd;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date analysisEnd;
/**
* Reviewed:交互,auto:自动
*/

View File

@ -108,4 +108,14 @@ public class GardsNuclLinesIded implements Serializable {
*/
@TableField(value = "CSC_MOD_FLAG")
private Double cscModFlag;
@TableField(value = "NUCLIDEFULLNAME")
private String nuclidefullname;
@TableField(value = "MDC")
private String mdc;
@TableField(value = "CONCENTRATION")
private String concentration;
}

View File

@ -0,0 +1,39 @@
package org.jeecg.modules.base.entity.rnman;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName(value = "RNMAN.GARDS_QC_CHECK")
public class GardsQcCheck implements Serializable {
@TableField(value = "SAMPLE_ID")
private Integer sampleId;
@TableField(value = "IDANALYSIS")
private Integer idanalysis;
@TableField(value = "QC_NAME")
private String qcName;
@TableField(value = "QC_VALUE")
private Double qcValue;
@TableField(value = "QC_STANDARD")
private String qcStandard;
@TableField(value = "QC_RESULT")
private Integer qcResult;
@TableField(value = "MODDATE")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date moddate;
}

View File

@ -22,6 +22,13 @@
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-boot-base-core</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.ejml/ejml-simple -->
<dependency>
<groupId>org.ejml</groupId>
<artifactId>ejml-simple</artifactId>
<version>0.39</version>
</dependency>
</dependencies>
</project>

View File

@ -1,8 +1,8 @@
package org.jeecg.common.util;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import org.jeecg.modules.base.entity.postgre.SysUser;
import org.jeecg.modules.service.IUserTaskService;
import org.jeecg.modules.system.entity.SysUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

View File

@ -1,6 +1,7 @@
package org.jeecg.modules.controller;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.service.IDataService;
import org.jeecg.modules.service.IGammaService;
import org.jeecg.modules.service.ISpectrumAnalysisService;
import org.springframework.beans.factory.annotation.Autowired;
@ -9,22 +10,36 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
@RestController
@RequestMapping("gamma")
public class GammaController {
@Autowired
private IGammaService gammaService;
@Autowired
private ISpectrumAnalysisService spectrumAnalysisService;
private IDataService dataService;
@GetMapping("gammaByFile")
public Result gammaByFile(@RequestParam Integer sampleId,
@RequestParam String dbName){
return spectrumAnalysisService.getDBSpectrumChart(dbName, sampleId);
@GetMapping("initValue")
public Result initValue(HttpServletRequest request){
return dataService.initValue(request);
}
@GetMapping("gammaByDB")
public Result gammaByDB(@RequestParam Integer sampleId, @RequestParam String dbName){
return gammaService.gammaByDB(dbName, sampleId);
}
@GetMapping("configure")
public Result configure(@RequestParam Integer sampleId){
return gammaService.configure(sampleId);
}
@GetMapping("Reprocessing")
public Result Reprocessing(@RequestParam Integer sampleId){
return gammaService.Reprocessing(sampleId);
}
}

View File

@ -5,6 +5,9 @@ import io.swagger.annotations.ApiOperation;
import org.jeecg.common.api.QueryRequest;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.entity.GardsSampleDataSpectrum;
import org.jeecg.modules.entity.vo.AnalyseData;
import org.jeecg.modules.entity.vo.FittingBody;
import org.jeecg.modules.entity.vo.SeriseData;
import org.jeecg.modules.entity.vo.StatisticsQueryData;
import org.jeecg.modules.service.ISpectrumAnalysisService;
import org.springframework.beans.factory.annotation.Autowired;
@ -133,10 +136,31 @@ public class SpectrumAnalysesController {
return spectrumAnalysisService.statisticsQueryBtn(detectorName, stationId, statisticsType, startTime, endTime);
}
@GetMapping("fitting")
@PostMapping("fitting")
@ApiOperation(value = "公式计算新的曲线", notes = "公式计算新的曲线")
public Result fitting(Double paramA, Double paramB, Double paramC, List<Double> tempPoints){
return spectrumAnalysisService.fitting(paramA, paramB, paramC, tempPoints);
public Result fitting(@RequestBody FittingBody fittingBody){
return spectrumAnalysisService.fitting(fittingBody.getParamA(), fittingBody.getParamB(), fittingBody.getParamC(), fittingBody.getTempPoints(), fittingBody.getCount());
}
@GetMapping("getGammaGated")
@ApiOperation(value = "获取gamma对应count数据", notes = "获取gamma对应count数据")
public Result getGammaGated(Integer chartHeight, Integer channelWidth, Integer gammaChannel, Integer sampleId){
return spectrumAnalysisService.getGammaGated(chartHeight, channelWidth, gammaChannel, sampleId);
}
@PostMapping("ReAnalyse")
public Result ReAnalyse(@RequestBody AnalyseData analyseData){
return spectrumAnalysisService.ReAnalyse(analyseData);
}
@PostMapping("analyseCurrentSpectrum")
public Result analyseCurrentSpectrum(String dbName, Integer sampleId){
return null;
}
@PostMapping("analyseAllSpectrum")
public Result analyseAllSpectrum(){
return null;
}
}

View File

@ -0,0 +1,139 @@
package org.jeecg.modules.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
public class GardsAnalysesSpectrum implements Serializable {
/**
* 分析ID号
*/
private Integer idAnalysis;
/**
* 样品id
*/
private Integer sampleId;
/**
* 分析开始时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date analysisBegin;
/**
* 分析结束时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date analysisEnd;
/**
* Reviewed:交互,auto:自动
*/
private String type;
/**
* 使用的软件名称
*/
private String software;
/**
* 软件版本号
*/
private String swVersion;
/**
* 分析员名称
*/
private String analyst;
/**
* 基线计数方法描述
*/
private String baselineMethod;
/**
* 寻峰方法描述
*/
private String peaksMethod;
/**
* 核素识别方法描述
*/
private String nuclideMethod;
/**
* 不确定度计算描述
*/
private String uncCalcMethod;
/**
* Lc计算方法描述
*/
private String lcMethod;
/**
* 寻峰起始道
*/
private Integer searchStartChannel;
/**
* 寻峰结束道
*/
private Integer searchEndChannel;
/**
* 寻峰阈值
*/
private Double searchThreshold;
/**
* 峰数目
*/
private Integer numberOfPeaks;
/**
* 总计数
*/
private Float totalCounts;
/**
* 分级结果
*/
private Integer category;
/**
* 注释
*/
private String comments;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date moddate;
private String usedgasphd;
private String useddetphd;
private Integer usedgasphdId;
private Integer useddetphdId;
private String baselinePath;
private String lcPath;
private String scacPath;
private String logPath;
private String reportPath;
}

View File

@ -0,0 +1,61 @@
package org.jeecg.modules.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
public class GardsCalibrationPairsSpectrum implements Serializable {
/**
* 样品id
*/
private Integer sampleId;
/**
* 分析ID号
*/
private Integer idAnalysis;
/**
* Ggamma探测器的数据#g_Bbeta探测器的数据,#b_
*/
private String sampleType;
/**
* energy能量刻度
* efficiency效率刻度
* Resolution分辨率刻度
*/
private String caltype;
/**
* PHD代表数据来自PHD文件External代表数据来自外部如刻度工具其它文件等
*/
private String input;
/**
* 刻度点ID号
*/
private Integer idCalPoint;
private Double xValue;
private Double yValue;
private String decayMode;
/**
* y值不确定度
*/
private String uncYValue;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date moddate;
}

View File

@ -0,0 +1,107 @@
package org.jeecg.modules.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
public class GardsCalibrationSpectrum implements Serializable {
/**
* 样品id
*/
private Integer sampleId;
/**
* 分析ID号
*/
private Integer idAnalysis;
/**
* Ggamma探测器的数据#g_Bbeta探测器的数据,#b_
*/
private String sampleType;
/**
* energy能量刻度
* efficiency效率刻度
* Resolution分辨率刻度
*/
private String calType;
/**
* 拟合方程ID号统一定义
*/
private Integer function;
/**
* 拟合方程描述
*/
private String functionDef;
/**
* 拟合的起始值
*/
private Integer startOfRange;
/**
* 拟合的结束值
*/
private Integer endOfRange;
/**
* 拟合系数1
*/
private Double coeff1;
/**
* 拟合系数2
*/
private Double coeff2;
/**
* 拟合系数3
*/
private Double coeff3;
/**
* 拟合系数4
*/
private Double coeff4;
/**
* 拟合系数5
*/
private Double coeff5;
/**
* 拟合系数6
*/
private Double coeff6;
/**
* 拟合系数7
*/
private Double coeff7;
/**
* 拟合系数8
*/
private Double coeff8;
/**
* 拟合系数9
*/
private Double coeff9;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date moddate;
private String coeffString;
}

View File

@ -0,0 +1,104 @@
package org.jeecg.modules.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
public class GardsNuclIdedSpectrum implements Serializable {
/**
* 样品id
*/
private Integer sampleId;
/**
* 分析ID号
*/
private Integer idAnalysis;
/**
* 核素名称
*/
private String nuclideName;
/**
* 核素类型
*/
private String type;
/**
* 核素半衰期
*/
private String halflife;
/**
* 平均活度值
*/
private String aveActiv;
/**
* 平均活度值不确定度
*/
private Double aveActivErr;
/**
* 主射线活度值
*/
private Double activKey;
/**
* 主射线活度值不确定度
*/
private Double activKeyErr;
/**
* 核素的最小可探测活度
*/
private String mda;
/**
* 核素的最小可探测活度不确定度
*/
private Double mdaErr;
/**
* 核素识别标志
*/
private Integer nidFlag;
private Double activDecay;
private Double activDecayErr;
/**
* 符合相加校正因子无设为1
*/
private Double cscRatio;
/**
* 符合相加校正因子不确定度无设为0
*/
private Double cscRatioErr;
/**
* 活度是否经过符合相加校正
*/
private Integer cscModFlag;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date moddate;
private String mdc;
private String concentration;
private String keyEnergy;
private String keyYield;
}

View File

@ -0,0 +1,109 @@
package org.jeecg.modules.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
public class GardsNuclLinesIdedSpectrum implements Serializable {
/**
* 样品id
*/
private Integer sampleId;
/**
* 峰序号
*/
private Integer idPeak;
/**
* 分析ID号
*/
private Integer idAnalysis;
/**
* 核素名称
*/
private String nuclideName;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date moddate;
/**
* 核素库中核素对应峰的能量keV
*/
private Double energy;
/**
* 核素库中核素对应峰的能量不确定度keV
*/
private Double uncEnergy;
/**
* 核素库中核素对应峰的发射几率
*/
private Double abundance;
/**
* 核素库中核素对应峰的发射几率不确定度
*/
private Double uncAbundance;
/**
* 利用该峰计算得到的活度
*/
private String activity;
/**
* 利用该峰计算得到的活度不确定度
*/
private Double uncActivity;
/**
* 该峰处的探测效率
*/
private Double effic;
/**
* 该峰处的探测效率不确定度
*/
private Double uncEffic;
/**
* 利用该峰计算得到的最小可探测活度
*/
private Double mda;
/**
* 主射线标识01
*/
private Double keyFlag;
/**
* 符合相加校正因子无设为1
*/
private Double cscRatio;
/**
* 符合相加校正因子不确定度无设为0
*/
private Double cscRatioErr;
/**
* 活度是否经过符合相加校正
*/
private Double cscModFlag;
private String nuclidefullname;
private String mdc;
private String concentration;
}

View File

@ -0,0 +1,155 @@
package org.jeecg.modules.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
public class GardsPeaksSpectrum implements Serializable {
/**
* 样品id
*/
private Integer sampleId;
/**
* 峰序号
*/
private Integer idPeak;
/**
* 分析ID号
*/
private Integer idAnalysis;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date moddate;
/**
* 峰中心道道址
*/
private Double centroidChannel;
/**
* 峰中心道不确定度道址
*/
private Double uncCentroidChannel;
/**
* 峰中心道能量keV
*/
private Double energy;
/**
* 峰中心道能量不确定度keV
*/
private Double uncEnergy;
/**
* 峰面积计数已扣除基线面积但未扣除空白样品计数和探测器本底计数
*/
private Double area;
/**
* 峰面积不确定度计数
*/
private Double uncArea;
/**
* 峰的净计数率1/s=峰面积/活时间
*/
private Double netCountRate;
/**
* 峰的净计数率的不确定度1/s
*/
@TableField(value = "UNCNETCOUNTRATE")
private Double uncNetCountRate;
/**
* 测量系统在峰能量处的绝对效率
*/
@TableField(value = "EFFICIENCY")
private Double efficiency;
/**
* 测量系统在峰能量处的绝对效率的不确定度
*/
@TableField(value = "UNCEFFICIENCY")
private Double uncefficiency;
/**
* 峰的半高宽
*/
@TableField(value = "FWHM")
private Double fwhm;
/**
* 峰的十分之一高宽
*/
@TableField(value = "FWTM")
private Double fwtm;
/**
* 峰的重要性因子
*/
@TableField(value = "SIGNIFICANCE")
private Double significance;
/**
* 峰的可探测线Lc
*/
@TableField(value = "LC")
private Double lc;
/**
* 峰的感兴趣区的起始道
*/
@TableField(value = "ROISTART")
private Double roiStart;
/**
* 峰的感兴趣区的结束道
*/
@TableField(value = "ROIEND")
private Double roiEnd;
@TableField(value = "MULTIINDEX")
private Double mulitiIndex;
@TableField(value = "TAIL")
private Double tail;
@TableField(value = "TAILALPHA")
private Double tailAlpha;
@TableField(value = "UPPERTAIL")
private Double upperTail;
@TableField(value = "UPPERTAILALPHA")
private Double upperTailAlpha;
@TableField(value = "BWWIDTHCHAN")
private Double bwwidthchan;
@TableField(value = "RECOILDELTACHAN")
private Double recoildeltachan;
@TableField(value = "STEPRAIO")
private Double stepraio;
@TableField(value = "LD")
private Double ld;
@TableField(value = "SENSITIVITY")
private Double sensitivity;
@TableField(value = "BACKGROUNDAREA")
private Double backgroundarea;
@TableField(value = "MEANBACKCOUNT")
private Double meanbackcount;
@TableField(value = "RECOILBETACHAN")
private Double recoilbetachan;
@TableField(value = "PEAKCOMMENTS")
private String peakcomments;
}

View File

@ -0,0 +1,29 @@
package org.jeecg.modules.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
public class GardsQcCheckSpectrum implements Serializable {
private Integer sampleId;
private Integer idanalysis;
private String qcName;
private Double qcValue;
private String qcStandard;
private Integer qcResult;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date moddate;
}

View File

@ -0,0 +1,26 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class AcquisitionBlock implements Serializable {
/* Acquisition Block */
private String acquisition_start_date; // acquisition start date (yyyy / mm / dd)
private String acquisition_start_time; // acquisition start time (hh : mm : ss . s)
private Double acquisition_real_time; // acquisition real time (s)
private Double acquisition_live_time; // acquisition live time (s)
public AcquisitionBlock(){
acquisition_start_date="";
acquisition_start_time="";
acquisition_real_time=0.0;
acquisition_live_time=0.0;
}
}

View File

@ -0,0 +1,44 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class AnalyseData implements Serializable {
private String applyType;
private boolean sampleData;
private boolean GasBgData;
private boolean DetBgData;
private boolean QCData;
private boolean gFitting;
private boolean bFitting;
private boolean bGammaEnergyValid;
private boolean bBetaEnergyValid;
private List<TableWidget> fittingChannelEnergy;
private CalibrationParam g_calibration_param;
private CalibrationParam b_calibration_param;
private String dbName;
private List<Integer> sampleIds;
public AnalyseData(){
g_calibration_param = new CalibrationParam();
b_calibration_param = new CalibrationParam();
}
}

View File

@ -0,0 +1,33 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
@Data
public class BaseControls implements Serializable {
private boolean ReplotUsed;
private boolean ReplotNeeded;
private int rg_low; //分析范围的最小值
private int rg_high; //分析范围的最大值
private List<Double> XCtrl;
private List<Double> YCtrl;
private List<Double> YSlope;
private List<Double> Baseline;
private List<Double> StepCounts;
public BaseControls(){
rg_low = 1;
rg_high = 1;
ReplotUsed = false;
ReplotNeeded = false;
XCtrl=new LinkedList<>();
YCtrl=new LinkedList<>();
YSlope=new LinkedList<>();
Baseline=new LinkedList<>();
StepCounts=new LinkedList<>();
}
}

View File

@ -0,0 +1,31 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
@Data
public class BgCalibratePara implements Serializable {
private List<Double> b_e_cal; //b 能刻度系数
private List<Double> g_e_cal; //g 能刻度系数
private int b_e_cal_flag; //b 自计算刻度系数配置
private int g_e_cal_flag; //g 自计算刻度系数配置
private boolean bApplyNewCalicSample; // 界面交互新刻度应用
private boolean bApplyNewCalicDetBg;
private boolean bApplyNewCalicGasBg;
private boolean bApplyNewCalicQc;
public BgCalibratePara() {
b_e_cal = new LinkedList<>();
g_e_cal = new LinkedList<>();
b_e_cal_flag = 2;
g_e_cal_flag = 2;
bApplyNewCalicSample = false;
bApplyNewCalicDetBg = false;
bApplyNewCalicGasBg = false;
bApplyNewCalicQc = false;
}
}

View File

@ -0,0 +1,20 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class CalibrationBlock implements Serializable {
/* Calibration Block */
private String date_calibration; // date of last calibration (yyyy / mm / dd)
private String time_calibration; // time of last calibration (hh : mm : ss)
public CalibrationBlock(){
date_calibration = "";
time_calibration = "";
}
}

View File

@ -0,0 +1,40 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class CalibrationParam implements Serializable {
public double param_a_c2e_old;
public double param_b_c2e_old;
public double param_c_c2e_old;
public double param_a_c2e_new;
public double param_b_c2e_new;
public double param_c_c2e_new;
public double param_a_e2c_old;
public double param_b_e2c_old;
public double param_c_e2c_old;
public double param_a_e2c_new;
public double param_b_e2c_new;
public double param_c_e2c_new;
public CalibrationParam() {
param_a_c2e_old = 0;
param_b_c2e_old = 0;
param_c_c2e_old = 0;
param_a_e2c_old = 0;
param_b_e2c_old = 0;
param_c_e2c_old = 0;
param_a_c2e_new = 0;
param_b_c2e_new = 0;
param_c_c2e_new = 0;
param_a_e2c_new = 0;
param_b_e2c_new = 0;
param_c_e2c_new = 0;
}
}

View File

@ -0,0 +1,61 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
@Data
public class CertificateBlock implements Serializable {
/* Certificate Block */
private double total_source_activity; // total source activity (Bq)
private String assay_date; // assay date (yyyy / mm / dd)
private String assay_time; // assay time (hh : mm : ss)
private String units_activity; // units of activity: B, b for Bq or [blank]; if nothing, then B is assigned
private List<String> nuclide_name; // nuclide name
private List<String> half_life_time; // half-life in seconds, hours, days, or years
private List<String> time_unit; // time unit(Y, D, H, S)
private List<Double> activity_nuclide_time_assay;// activity of nuclide at time of assay
private List<Double> uncertainty; // uncertainty (%)
private List<Double> g_energy; // γ-energy (keV)
private List<Double> g_intensity; // γ-intensity (percent)
private List<String> electron_decay_mode; // electron decay mode descriptor: B for β particle or C for conversion electron (CE), 0 for none (that is, γ-only source)
private List<Double> maximum_energy; // maximum β-particle energy or CE energy (keV)
private List<Double> intensity_b_particle; // intensity of β-particle (percent)
private int record_count;
public CertificateBlock(){
total_source_activity=0;
assay_date="";
assay_time="";
units_activity="";
nuclide_name= new LinkedList<>();
half_life_time= new LinkedList<>();
time_unit= new LinkedList<>();
activity_nuclide_time_assay= new LinkedList<>();
uncertainty= new LinkedList<>();
g_energy= new LinkedList<>();
g_intensity= new LinkedList<>();
electron_decay_mode= new LinkedList<>();
maximum_energy= new LinkedList<>();
intensity_b_particle= new LinkedList<>();
record_count=0;
}
}

View File

@ -0,0 +1,26 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
@Data
public class ChartData implements Serializable {
private String name;
private String group;
private String color;
private boolean show;
private String type;
private List<SeriseData> pointlist;
public ChartData() {
name = "";
group = "";
color = "yellow";
show = true;
type = "Either";
pointlist = new LinkedList<>();
}
}

View File

@ -0,0 +1,29 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class CollectionBlock implements Serializable {
/* Collection Block */
private String collection_start_date; // collection start date (yyyy / mm / dd)
private String collection_start_time; // collection start time (hh : mm : ss . s)
private String collection_stop_date; // collection stop date (yyyy / mm / dd)
private String collection_stop_time; // collection stop time (hh : mm : ss . s)
private double air_volume; // total air volume sampled (standard cubic meters [scm])
public CollectionBlock(){
collection_start_date="";
collection_start_time="";
collection_stop_date="";
collection_stop_time="";
air_volume=0;
}
}

View File

@ -0,0 +1,22 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import org.springframework.web.bind.annotation.RequestParam;
import java.io.Serializable;
import java.util.List;
@Data
public class FittingBody implements Serializable {
private Double paramA;
private Double paramB;
private Double paramC;
private List<SeriseData> tempPoints;
private Integer count;
}

View File

@ -0,0 +1,26 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
@Data
public class GEfficiencyBlock implements Serializable {
private List<Double> g_energy; // γ -energy (keV)
private List<Double> efficiency; // efficiency (counts in peak/photon emitted)
private List<Double> uncertainty; // uncertainty (counts in peak/photon emitted)
private Integer record_count;
public GEfficiencyBlock(){
g_energy = new LinkedList<>();
efficiency = new LinkedList<>();
uncertainty = new LinkedList<>();
}
}

View File

@ -0,0 +1,26 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
@Data
public class GEnergyBlock implements Serializable {
private List<Double> g_energy; // γ -energy (keV)
private List<Double> centroid_channel; // centroid channel
private List<Double> uncertainty; // uncertainty (channels)
private Integer record_count;
public GEnergyBlock(){
g_energy = new LinkedList<>();
centroid_channel = new LinkedList<>();
uncertainty = new LinkedList<>();
}
}

View File

@ -0,0 +1,26 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
@Data
public class GResolutionBlock implements Serializable {
private List<Double> g_energy; // γ -energy (keV)
private List<Double> FWHM; // FWHM (keV)
private List<Double> uncertainty; // uncertainty (keV)
private Integer record_count;
public GResolutionBlock(){
g_energy = new LinkedList<>();
FWHM = new LinkedList<>();
uncertainty = new LinkedList<>();
}
}

View File

@ -0,0 +1,28 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
@Data
public class GSpectrumBlock implements Serializable {
/* g_Spectrum Block */
private long num_g_channel; // number of γ channels
private long g_energy_span; // γ-energy span (keV)
private long begin_channel; // begin of channels
private List<Long> counts; // count at channel
public GSpectrumBlock(){
num_g_channel=0;
g_energy_span=0;
begin_channel=0;
counts= new LinkedList<>();
}
}

View File

@ -0,0 +1,14 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class HalfData implements Serializable {
private String name;
private Double half;
}

View File

@ -0,0 +1,51 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class HeaderBlock implements Serializable {
/* Header Black */
private String designator; // designator
private String site_code; // site code
private String detector_code; // detector code
private String system_type; // system type: P for particulate; B for gas with 3-D β - γ coincidence detection; and
// G for all other gas systems (high-resolu-tion γ-spectrometry or 2-D β-γ coinci-dence detection)
private String sample_geometry; // sample geometry
private String spectrum_quantity; // spectrum qualifier: preliminary ( PREL )or full ( FULL)
private String sample_ref_id; // sample reference identification
private String measurement_id; // measurement identification
private String detector_bk_measurement_id; // detector background measurement identification
private String gas_bk_measurement_id; // gas background measurement identification (memory effect)
private String transmit_date; // transmit date (yyyy / mm / dd)
private String transmit_time; // transmit time (hh : mm : ss . s)
public HeaderBlock(){
designator="";
site_code="";
detector_code="";
system_type="";
sample_geometry="";
spectrum_quantity="";
sample_ref_id="";
measurement_id="";
detector_bk_measurement_id="";
gas_bk_measurement_id="";
transmit_date="";
transmit_time="";
}
}

View File

@ -0,0 +1,47 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class MessageInfo implements Serializable {
/* Infomations */
private String msg_type;
private String msg_id;
private String msg_src_code;
private String ref_id_str;
private String ref_src_code;
private String seq_num;
private String tot_num;
private String product_id;
private String delivery_id;
private String data_type;
private boolean verify_srid;
public MessageInfo(){
msg_type="";
msg_id="";
msg_src_code="";
ref_id_str="";
ref_src_code="";
seq_num="";
tot_num="";
product_id="";
delivery_id="";
data_type="";
verify_srid=false;
}
}

View File

@ -0,0 +1,49 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
@Data
public class NuclideActMda implements Serializable {
private boolean bCalculateMDA;
private int calculateIdx;
private int key_flag; // key_flag 条射线是主射线 0 开始编号, key_flag < 0 表示无主射线
private double halflife;
private double activity;
private double act_err;
private double mda;
private double mdc;
private double efficiency;
private double effi_err;
private double concentration;
private List<String> fullNames;
private List<Double> vEnergy; // 匹配的γ射线能量
private List<Double> vUncertE;
private List<Double> vYield; // 匹配的γ射线分支比
private List<Double> vUncertY;
private List<Integer> vPeakIdx; // 匹配的峰序号, 1 开始
public NuclideActMda() {
bCalculateMDA = false;
calculateIdx = -1;
key_flag = -1;
halflife = 0.0;
activity = 0.0;
act_err = 0.0;
mda = 0.0;
mdc = 0.0;
efficiency = 0.0;
effi_err = 0.0;
concentration = 0.0;
fullNames = new LinkedList<>();
vEnergy = new LinkedList<>();
vUncertE = new LinkedList<>();
vYield = new LinkedList<>();
vUncertY = new LinkedList<>();
vPeakIdx = new LinkedList<>();
}
}

View File

@ -0,0 +1,24 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class NuclideLine implements Serializable {
private String FullName;
private Double energy;
private Double energy_uncert;
private Double yield;
private Double yield_uncert;
private Double key_flag;
private String name;
}

View File

@ -0,0 +1,31 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
@Data
public class NuclideLines implements Serializable {
public List<String> fullNames; // 核素全名
public List<Double> vEnergy; // 核素的所有γ射线能量
public List<Double> vUncertE;
public List<Double> vYield; // 核素γ射线分支比
public List<Double> vUncertY;
public double halflife;// 单位
public int key_flag; // 记录主射线下标
public int maxYeildIdx;
public NuclideLines() {
maxYeildIdx = -1;
key_flag = -1;
halflife = 0;
fullNames=new LinkedList<>();
vEnergy=new LinkedList<>();
vUncertE=new LinkedList<>();
vYield=new LinkedList<>();
vUncertY=new LinkedList<>();
}
}

View File

@ -0,0 +1,169 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@Data
public class PHDFile implements Serializable {
private boolean isValid; // 是否有效谱
private boolean bAnalyed; // 记录是否被分析
private String analy_start_time;
private String filename; // 谱文件名称
private String filepath; // 谱文件路径
private String log_path;
private String report_path;
private String baseline_path;
private String lc_path;
private String scac_path;
private String totalCmt; // 谱文件总注释
private String oriTotalCmt;// 原始谱总注释
SpecSetup usedSetting; // 当前使用的分析设置
SpecSetup setting; // 新修改的分析设置
// 分析结果
private List<PeakInfo> vPeak;
private List<Double> vEnergy;
private List<Double> vBase;
private List<Double> vLc;
private List<Double> vScac;
//stdvec vFwhm;
//stdvec vFwhmc;
BaseControls baseCtrls;
// 当前修改的刻度名称
private String newEner;
private String newReso;
private String newEffi;
private String newTotE;
// 当前寻峰结果所用的刻度名称
private String usedEner;
private String usedReso;
private String usedEffi;
private String usedTotE;
// 当前寻峰结果所用的刻度数据
private GEnergyBlock usedEnerKD;
private GResolutionBlock usedResoKD;
private GEfficiencyBlock usedEffiKD;
private TotaleffBlock usedTotEKD;
// 存储所有的刻度数据
private Map<String, GEnergyBlock> mapEnerKD; // 能量刻度
private Map<String, GResolutionBlock> mapResoKD; // 分辨率刻度
private Map<String, GEfficiencyBlock> mapEffiKD; // 效率刻度
private Map<String, TotaleffBlock> mapTotEKD; // 总效率刻度
// 当前寻峰结果所用的刻度参数
private ParameterInfo usedEnerPara;
private ParameterInfo usedResoPara;
private ParameterInfo usedEffiPara;
private ParameterInfo usedTotEPara;
// 存储所有的刻度参数
private Map<String, ParameterInfo> mapEnerPara;
private Map<String, ParameterInfo> mapResoPara;
private Map<String, ParameterInfo> mapEffiPara;
private Map<String, ParameterInfo> mapTotEPara;
// 其他参数目前存储的是默认值
private ParameterInfo para_stepRatio;
private ParameterInfo para_tail;
private ParameterInfo para_tailAlpha;
private ParameterInfo para_tailRight;
private ParameterInfo para_tailRightAlpha;
// 谱基本信息
private String id_sample;
private String id_analysis;
private String status;
private String category;
private HeaderBlock header;
private MessageInfo msgInfo;
private GSpectrumBlock Spec;
private AcquisitionBlock acq;
private CollectionBlock collect;
private ProcessingBlock process;
private CalibrationBlock calibration;
private SampleBlock sampleBlock;
private CertificateBlock certificate;
// QC Check
private Map<String, QcCheckItem> QcItems;
// 核素活度浓度
private Map<String, NuclideActMda> mapNucActMda;
public PHDFile() {
bAnalyed = false;
isValid = true;
analy_start_time = "";
filename = "";
filepath = "";
log_path = "";
report_path = "";
baseline_path="";
lc_path="";
scac_path="";
totalCmt = "";
oriTotalCmt="";
usedSetting = new SpecSetup();
setting = new SpecSetup();
vPeak = new LinkedList<>();
vEnergy = new LinkedList<>();
vBase = new LinkedList<>();
vLc = new LinkedList<>();
vScac = new LinkedList<>();
baseCtrls = new BaseControls();
newEner = "PHD";
newReso = "PHD";
newEffi = "PHD";
newTotE = "PHD";
usedEner= "";
usedReso= "";
usedEffi= "";
usedTotE= "";
mapEnerKD = new HashMap<>();
mapResoKD = new HashMap<>();
mapEffiKD = new HashMap<>();
mapTotEKD = new HashMap<>();
usedEnerPara = new ParameterInfo();
usedResoPara = new ParameterInfo();
usedEffiPara = new ParameterInfo();
usedTotEPara = new ParameterInfo();
mapEnerPara = new HashMap<>();
mapResoPara = new HashMap<>();
mapEffiPara = new HashMap<>();
mapTotEPara = new HashMap<>();
para_stepRatio = new ParameterInfo();
para_tail = new ParameterInfo();
para_tailAlpha = new ParameterInfo();
para_tailRight = new ParameterInfo();
para_tailRightAlpha = new ParameterInfo();
id_sample = "";
id_analysis = "";
status = "";
category = "";
header = new HeaderBlock();
msgInfo = new MessageInfo();
Spec = new GSpectrumBlock();
acq = new AcquisitionBlock();
collect = new CollectionBlock();
process = new ProcessingBlock();
calibration = new CalibrationBlock();
sampleBlock = new SampleBlock();
certificate = new CertificateBlock();
QcItems = new HashMap<>();
mapNucActMda = new HashMap<>();
}
}

View File

@ -0,0 +1,21 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
@Data
public class ParameterInfo implements Serializable {
private List<Double> p;
private List<Double> perr;
public ParameterInfo(){
p = new LinkedList<>();
perr = new LinkedList<>();
}
}

View File

@ -0,0 +1,68 @@
package org.jeecg.modules.entity.vo;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
public class PeakInfo implements Serializable {
public int index; //峰序号
public int multiIndex; //重峰序号
public int left; //峰的左边界
public int right; //峰的右边界
public double peakCentroid; //峰拟合后加权峰中心道
public double energy;
public double fwhmc; //半高宽
public double fwhm; //以keV为单位的半高宽
public double area; //净面积
public double areaErr; //
public double efficiency;
public double lc;
public double ld;
public double meanBackCount;
public double backgroundArea;
public double significance;
public double sensitivity;
public double stepRatio;
public double tail;
public double tailAlpha;
public double upperTail;
public double upperTailAlpha;
public double BWWidthChan;
public double recoilBetaChan;
public double recoilDeltaChan;
public String comments;
public List<String> nuclides;
public PeakInfo(){
nuclides = new LinkedList<>();
}
}

View File

@ -0,0 +1,29 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class ProcessingBlock implements Serializable {
/* Processing Block */
private double sample_volume_of_Xe; // sample volume of Xe (cm 3 )
private double uncertainty_1; // uncertainty (cm 3 )
private double Xe_collection_yield; // Xe collection yield (Xe gas in sample/total Xe gas sampled)
private double uncertainty_2; // uncertainty (Xe gas in sample/total Xe gas sampled)
private String archive_bottle_id; // archive bottle identification
public ProcessingBlock(){
sample_volume_of_Xe=0;
uncertainty_1=0;
Xe_collection_yield=0;
uncertainty_2=0;
archive_bottle_id="";
}
}

View File

@ -0,0 +1,22 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class QcCheckItem implements Serializable {
private String standard;
private double value;
private boolean bPass;
public QcCheckItem(){
standard="";
bPass = false;
value = 0.0;
}
}

View File

@ -0,0 +1,20 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class SampleBlock implements Serializable {
/* Sample Block */
private double dimension_1;
private double dimension_2;
public SampleBlock(){
dimension_1=0;
dimension_2=0;
}
}

View File

@ -0,0 +1,26 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class ShapeData implements Serializable {
private int size;
private String name;
private String color;
private SeriseData point;
private String type;
public ShapeData() {
size = 4;
color = "red";
type = "Shape_Round";
}
}

View File

@ -0,0 +1,57 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
public class SpecSetup implements Serializable {
private double ECutAnalysis_Low;
private double ECutAnalysis_High;
private double EnergyTolerance;
private double CalibrationPSS_high;
private double CalibrationPSS_low;
private double BaseImprovePSS;
private double PSS_low;
private double k_back;
private double k_alpha;
private double k_beta;
private double RiskLevelK;
private boolean bUpdateCal;
private boolean KeepCalPeakSearchPeaks;
private Date refTime_act; //活度参考时间默认是AcqStartTime
private Date refTime_conc; //默认是CollectStartTime
public SpecSetup(){
ECutAnalysis_Low = 12.0;
ECutAnalysis_High = 12.0;
EnergyTolerance = 0.5;
CalibrationPSS_high = 10.0;
CalibrationPSS_low = 5.0;
BaseImprovePSS = 10.0;
PSS_low = 2.7;
k_back = 1.25;
k_alpha = 2.576;
k_beta = 1.645;
RiskLevelK = 4.264890;
bUpdateCal = false;
KeepCalPeakSearchPeaks = false;
}
}

View File

@ -0,0 +1,25 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
@Data
public class SpectrumGroup implements Serializable {
private String SampleSpectrumFile;
private String GasBgSpectrumFile;
private String DetBgSpectrumFile;
private BgCalibratePara BgCalPara;
private List<Double> b_c2e;
private List<Double> g_c2e;
public SpectrumGroup(){
BgCalPara = new BgCalibratePara();
b_c2e = new LinkedList<>();
g_c2e = new LinkedList<>();
}
}

View File

@ -13,8 +13,8 @@ public class TableWidget implements Serializable {
private Double energy;
private String c;
private String FWHMC;
private String keV;
private String FWHMkeV;
}

View File

@ -0,0 +1,27 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
@Data
public class TotaleffBlock implements Serializable {
private List<Double> g_energy; // γ -energy (keV)
private List<Double> total_efficiency; // total efficiency (counts/photon emitted)
private List<Double> uncertainty; // uncertainty (counts/photon emitted)
private int record_count;
public TotaleffBlock(){
g_energy = new LinkedList<>();
total_efficiency = new LinkedList<>();
uncertainty = new LinkedList<>();
record_count = 0;
}
}

View File

@ -1,7 +1,7 @@
package org.jeecg.modules.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.system.entity.GardsDetectors;
import org.jeecg.modules.base.entity.configuration.GardsDetectors;
public interface GardsDetectorsSpectrumMapper extends BaseMapper<GardsDetectors> {
}

View File

@ -3,12 +3,9 @@ package org.jeecg.modules.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.entity.GardsSampleDataSpectrum;
import org.jeecg.modules.entity.GardsXeResultsSpectrum;
import org.jeecg.modules.entity.vo.CommentData;
import org.jeecg.modules.entity.vo.SpectrumFileRecord;
import org.jeecg.modules.entity.vo.StatisticsData;
import org.jeecg.modules.entity.vo.StatisticsQueryData;
import org.jeecg.modules.base.entity.rnman.GardsAnalySetting;
import org.jeecg.modules.entity.*;
import org.jeecg.modules.entity.vo.*;
import java.util.List;
@ -50,5 +47,28 @@ public interface SpectrumAnalysisMapper {
List<StatisticsData> statisticsQuerySampleVolumn(String startDate, String endDate, List<String> detectorList);
String getStatus(@Param(value = "sampleId") Integer sampleId);
GardsAnalysesSpectrum getAnalysis(@Param(value = "dbName") String dbName, @Param(value = "sampleId") Integer sampleId);
List<GardsPeaksSpectrum> getPeaks(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis);
List<GardsCalibrationPairsSpectrum> getCalibrationPairs(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis);
List<GardsCalibrationSpectrum> getPara(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis);
List<GardsNuclLinesIdedSpectrum> getNuclLinesIded(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis);
List<GardsNuclIdedSpectrum> getNuclIded(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis);
List<GardsQcCheckSpectrum> getQcCheck(@Param(value = "dbName") String dbName, @Param(value = "idAnalysis") Integer idAnalysis);
GardsAnalySetting getAnalySetting(@Param(value = "idAnalysis") Integer idAnalysis);
List<NuclideLine> getNuclideLines(@Param(value = "name") String name);
List<HalfData> getHalf(@Param(value = "names") List<String> names);
List<String> UserNuclide(@Param(value = "systemType") String systemType, @Param(value = "userName") String userName);
}

View File

@ -361,5 +361,134 @@
order by gsd.COLLECT_START
</select>
<select id="getStatus" resultType="java.lang.String">
SELECT STATUS FROM ORIGINAL.GARDS_SAMPLE_DATA WHERE SAMPLE_ID = #{sampleId}
</select>
<select id="getAnalysis" resultType="org.jeecg.modules.entity.GardsAnalysesSpectrum">
SELECT
IDANALYSIS,
COMMENTS,
SEARCHSTARTCHANNEL,
SEARCHENDCHANNEL,
SEARCHTHRESHOLD,
NUMBEROFPEAKS,
BASELINE_PATH,
LC_PATH,
SCAC_PATH
FROM
${dbName}
WHERE SAMPLE_ID = #{sampleId}
</select>
<select id="getPeaks" resultType="org.jeecg.modules.entity.GardsPeaksSpectrum">
SELECT
IDPEAK,
CENTROIDCHANNEL,
ENERGY,
AREA,
UNCAREA,
EFFICIENCY,
FWHM,
FWTM,
SIGNIFICANCE,
LC,
ROISTART,
ROIEND,
MULTIINDEX,
TAIL,
TAILALPHA,
UPPERTAIL,
UPPERTAILALPHA,
BWWIDTHCHAN,
RECOILDELTACHAN,
STEPRAIO,
LD,
SENSITIVITY,
BACKGROUNDAREA,
MEANBACKCOUNT,
PEAKCOMMENTS
FROM ${dbName}
WHERE IDANALYSIS = #{idAnalysis}
ORDER BY IDPEAK
</select>
<select id="getCalibrationPairs" resultType="org.jeecg.modules.entity.GardsCalibrationPairsSpectrum">
SELECT CALTYPE, INPUT, XVALUE, YVALUE, UNCYVALUE FROM ${dbName} WHERE IDANALYSIS = #{idAnalysis} ORDER BY XVALUE
</select>
<select id="getPara" resultType="org.jeecg.modules.entity.GardsCalibrationSpectrum">
SELECT * FROM ${dbName} WHERE IDANALYSIS = #{idAnalysis}
</select>
<select id="getNuclLinesIded" resultType="org.jeecg.modules.entity.GardsNuclLinesIdedSpectrum">
SELECT
NUCLIDENAME,
NUCLIDEFULLNAME,
IDPEAK,
ENERGY,
UNCENERGY,
ABUNDANCE,
UNCABUNDANCE,
ACTIVITY,
UNCACTIVITY,
EFFIC,
UNEFFIC,
MDA,
KEY_FLAG,
MDC,
CONCENTRATION
FROM ${dbName}
WHERE IDANALYSIS = #{idAnalysis}
</select>
<select id="getNuclIded" resultType="org.jeecg.modules.entity.GardsNuclIdedSpectrum">
SELECT NUCLIDENAME, HALFLIFE, KEY_ENERGY, KEY_YIELD FROM ${dbName} WHERE IDANALYSIS = #{idAnalysis}
</select>
<select id="getQcCheck" resultType="org.jeecg.modules.entity.GardsQcCheckSpectrum">
SELECT QC_NAME, QC_VALUE, QC_STANDARD, QC_RESULT FROM ${dbName} WHERE IDANALYSIS = #{idAnalysis}
</select>
<select id="getAnalySetting" resultType="org.jeecg.modules.base.entity.rnman.GardsAnalySetting">
SELECT
ECUTANALYSIS_LOW,
ECUTANALYSIS_HIGH,
ENERGYTOLERANCE,
CALIBRATIONPSS_HIGH,
CALIBRATIONPSS_LOW,
BASEIMPROVEPSS,
PSS_LOW,
K_BACK,
K_ALPHA,
K_BETA,
RISKLEVELK,
BUPDATECAL,
KEEPCALPEAKSERCHPEAKS,
REFTIME_ACT,
REFTIME_CONC
FROM RNMAN.GARDS_ANALY_SETTING
WHERE idanalysis = #{idAnalysis}
</select>
<select id="getNuclideLines" resultType="org.jeecg.modules.entity.vo.NuclideLine">
SELECT FULLNAME,ENERGY,ENERGY_UNCERT,YIELD,YIELD_UNCERT,KEY_FLAG from CONFIGURATION.GARDS_NUCL_LINES_LIB WHERE NAME = #{name} ORDER BY ENERGY
</select>
<select id="getHalf" resultType="org.jeecg.modules.entity.vo.HalfData">
SELECT
NAME,
HALFLIFE
FROM
CONFIGURATION.GARDS_NUCL_LIB
WHERE NAME IN
<foreach collection="names" item="name" open="(" separator="," close=")">
#{name}
</foreach>
</select>
<select id="UserNuclide" resultType="java.lang.String">
SELECT nuclide_name FROM sys_default_nuclide where use_type = 3 and nuclide_type = #{systemType} and create_by = #{userName}
</select>
</mapper>

View File

@ -0,0 +1,18 @@
package org.jeecg.modules.native_jni;
import org.jeecg.modules.entity.vo.PeakInfo;
import org.jeecg.modules.native_jni.struct.CalValuesOut;
import java.util.List;
public class CalValuesHandler {
public static native CalValuesOut calFcnEval(List<Double> x, List<Double> para);
public static native CalValuesOut energyToChannel(List<Double> energy, List<Double> para);
public static native CalValuesOut calDerivEval(List<Double> channel, List<Double> para);
public static native List<Double> interp1(PeakInfo peak, List<Double> t_base, List<Double> regChan);
}

View File

@ -0,0 +1,13 @@
package org.jeecg.modules.native_jni.struct;
import java.util.List;
public class CalValuesOut {
public int rowNum;
public int colNum;
public List<Double> counts;
}

View File

@ -70,6 +70,10 @@ public class EnergySpectrumStruct {
* transmit time (hh : mm : ss . s)
*/
public String transmit_time;
/************************* Comment ******************/
public Double dimension_1;
public Double dimension_2;
/************************* Comment ******************/
public String comment;
@ -357,47 +361,192 @@ public class EnergySpectrumStruct {
*/
public List<Long> h_counts;
/************************* Certificate_Block ******************/
/**
* total source activity (Bq)
*/
public double total_source_activity;
/**
* assay date (yyyy / mm / dd)
*/
public String assay_date;
/**
* assay time (hh : mm : ss)
*/
public String assay_time;
/**
* units of activity: B, b for Bq or [blank]; if nothing, then B is assigned
*/
public String units_activity;
/**
* nuclide name
*/
public List<String> nuclide_name;
/**
* half-life in seconds, hours, days, or years
*/
public List<String> half_life_time;
/**
* time unit(Y, D, H, S)
*/
public List<String> time_unit;
/**
* activity of nuclide at time of assay
*/
public List<Double> activity_nuclide_time_assay;
/**
* uncertainty (%)
*/
public List<Double> uncertainty;
/**
* γ-energy (keV)
*/
public List<Double> cer_g_energy;
/**
* γ-intensity (percent)
*/
public List<Double> g_intensity;
/**
* electron decay mode descriptor: B for β particle or C for conversion electron (CE), 0 for none (that is, γ-only source)
*/
public List<String> electron_decay_mode;
/**
* maximum β-particle energy or CE energy (keV)
*/
public List<Double> maximum_energy;
/**
* intensity of β-particle (percent)
*/
public List<Double> intensity_b_particle;
public int record_count;
/************************* Totaleff Block ******************/
/**
* γ-energy (keV)
*/
public List<Double> t_g_energy;
/**
* total efficiency (counts/photon emitted)
*/
public List<Double> total_efficiency;
/**
* uncertainty (counts/photon emitted)
*/
public List<Double> t_uncertainty;
public int t_record_count;
public EnergySpectrumStruct() {
super();
}
@Override
public String toString() {
return "EnergySpectrumStruct [msg_type=" + msg_type + ", msg_id=" + msg_id + ", data_type=" + data_type
+ ", designator=" + designator + ", site_code=" + site_code + ", detector_code=" + detector_code
+ ", system_type=" + system_type + ", sample_geometry=" + sample_geometry + ", spectrum_quantity="
+ spectrum_quantity + ", sample_ref_id=" + sample_ref_id + ", measurement_id=" + measurement_id
+ ", detector_bk_measurement_id=" + detector_bk_measurement_id + ", gas_bk_measurement_id="
+ gas_bk_measurement_id + ", transmit_date=" + transmit_date + ", transmit_time=" + transmit_time
+ ", comment=" + comment + ", acquisition_start_date=" + acquisition_start_date
+ ", acquisition_start_time=" + acquisition_start_time + ", acquisition_real_time="
+ acquisition_real_time + ", acquisition_live_time=" + acquisition_live_time
+ ", collection_start_date=" + collection_start_date + ", collection_start_time="
+ collection_start_time + ", collection_stop_date=" + collection_stop_date + ", collection_stop_time="
+ collection_stop_time + ", air_volume=" + air_volume + ", sample_volume_of_Xe=" + sample_volume_of_Xe
+ ", uncertainty_1=" + uncertainty_1 + ", Xe_collection_yield=" + Xe_collection_yield
+ ", uncertainty_2=" + uncertainty_2 + ", archive_bottle_id=" + archive_bottle_id
+ ", date_calibration=" + date_calibration + ", time_calibration=" + time_calibration + ", g_energy="
+ g_energy + ", g_centroid_channel=" + g_centroid_channel + ", g_uncertainty=" + g_uncertainty
+ ", g_record_count=" + g_record_count + ", b_electron_energy=" + b_electron_energy + ", b_decay_mode="
+ b_decay_mode + ", b_channel=" + b_channel + ", b_uncertainty=" + b_uncertainty + ", b_record_count="
+ b_record_count + ", g_r_energy=" + g_r_energy + ", g_r_FWHM=" + g_r_FWHM + ", g_r_uncertainty="
+ g_r_uncertainty + ", g_r_record_count=" + g_r_record_count + ", b_r_electron_energy="
+ b_r_electron_energy + ", b_r_FWHM=" + b_r_FWHM + ", b_r_uncertainty=" + b_r_uncertainty
+ ", b_r_record_count=" + b_r_record_count + ", g_e_energy=" + g_e_energy + ", g_e_efficiency="
+ g_e_efficiency + ", g_e_uncertainty=" + g_e_uncertainty + ", g_e_record_count=" + g_e_record_count
+ ", ROI_number=" + ROI_number + ", POI_B_x1=" + POI_B_x1 + ", POI_B_x2=" + POI_B_x2 + ", POI_G_y1="
+ POI_G_y1 + ", POI_G_y2=" + POI_G_y2 + ", roi_record_count=" + roi_record_count + ", bg_nuclide_name="
+ bg_nuclide_name + ", bg_ROI_number=" + bg_ROI_number + ", bg_efficiency=" + bg_efficiency
+ ", bg_uncertainty=" + bg_uncertainty + ", bg_record_count=" + bg_record_count + ", ratio_id="
+ ratio_id + ", ROI_num_highter_G_energy_ROI=" + ROI_num_highter_G_energy_ROI
+ ", ROI_num_lower_G_energy_ROI=" + ROI_num_lower_G_energy_ROI + ", count_ratio=" + count_ratio
+ ", count_ratio_uncertainty=" + count_ratio_uncertainty + ", ratio_record_count=" + ratio_record_count
+ ", num_g_channel=" + num_g_channel + ", g_energy_span=" + g_energy_span + ", g_begin_channel="
+ g_begin_channel + ", g_counts=" + g_counts + ", num_b_channel=" + num_b_channel + ", b_energy_span="
+ b_energy_span + ", b_begin_channel=" + b_begin_channel + ", b_counts=" + b_counts + ", b_channels="
+ b_channels + ", g_channels=" + g_channels + ", b_h_energy_span=" + b_h_energy_span
+ ", g_h_energy_span=" + g_h_energy_span + ", h_counts="+ h_counts +"]";
return "EnergySpectrumStruct{" +
"msg_type='" + msg_type + '\'' +
", msg_id='" + msg_id + '\'' +
", data_type='" + data_type + '\'' +
", designator='" + designator + '\'' +
", site_code='" + site_code + '\'' +
", detector_code='" + detector_code + '\'' +
", system_type='" + system_type + '\'' +
", sample_geometry='" + sample_geometry + '\'' +
", spectrum_quantity='" + spectrum_quantity + '\'' +
", sample_ref_id='" + sample_ref_id + '\'' +
", measurement_id='" + measurement_id + '\'' +
", detector_bk_measurement_id='" + detector_bk_measurement_id + '\'' +
", gas_bk_measurement_id='" + gas_bk_measurement_id + '\'' +
", transmit_date='" + transmit_date + '\'' +
", transmit_time='" + transmit_time + '\'' +
", comment='" + comment + '\'' +
", acquisition_start_date='" + acquisition_start_date + '\'' +
", acquisition_start_time='" + acquisition_start_time + '\'' +
", acquisition_real_time=" + acquisition_real_time +
", acquisition_live_time=" + acquisition_live_time +
", collection_start_date='" + collection_start_date + '\'' +
", collection_start_time='" + collection_start_time + '\'' +
", collection_stop_date='" + collection_stop_date + '\'' +
", collection_stop_time='" + collection_stop_time + '\'' +
", air_volume=" + air_volume +
", sample_volume_of_Xe=" + sample_volume_of_Xe +
", uncertainty_1=" + uncertainty_1 +
", Xe_collection_yield=" + Xe_collection_yield +
", uncertainty_2=" + uncertainty_2 +
", archive_bottle_id='" + archive_bottle_id + '\'' +
", date_calibration='" + date_calibration + '\'' +
", time_calibration='" + time_calibration + '\'' +
", g_energy=" + g_energy +
", g_centroid_channel=" + g_centroid_channel +
", g_uncertainty=" + g_uncertainty +
", g_record_count=" + g_record_count +
", b_electron_energy=" + b_electron_energy +
", b_decay_mode=" + b_decay_mode +
", b_channel=" + b_channel +
", b_uncertainty=" + b_uncertainty +
", b_record_count=" + b_record_count +
", g_r_energy=" + g_r_energy +
", g_r_FWHM=" + g_r_FWHM +
", g_r_uncertainty=" + g_r_uncertainty +
", g_r_record_count=" + g_r_record_count +
", b_r_electron_energy=" + b_r_electron_energy +
", b_r_FWHM=" + b_r_FWHM +
", b_r_uncertainty=" + b_r_uncertainty +
", b_r_record_count=" + b_r_record_count +
", g_e_energy=" + g_e_energy +
", g_e_efficiency=" + g_e_efficiency +
", g_e_uncertainty=" + g_e_uncertainty +
", g_e_record_count=" + g_e_record_count +
", ROI_number=" + ROI_number +
", POI_B_x1=" + POI_B_x1 +
", POI_B_x2=" + POI_B_x2 +
", POI_G_y1=" + POI_G_y1 +
", POI_G_y2=" + POI_G_y2 +
", roi_record_count=" + roi_record_count +
", bg_nuclide_name=" + bg_nuclide_name +
", bg_ROI_number=" + bg_ROI_number +
", bg_efficiency=" + bg_efficiency +
", bg_uncertainty=" + bg_uncertainty +
", bg_record_count=" + bg_record_count +
", ratio_id=" + ratio_id +
", ROI_num_highter_G_energy_ROI=" + ROI_num_highter_G_energy_ROI +
", ROI_num_lower_G_energy_ROI=" + ROI_num_lower_G_energy_ROI +
", count_ratio=" + count_ratio +
", count_ratio_uncertainty=" + count_ratio_uncertainty +
", ratio_record_count=" + ratio_record_count +
", num_g_channel=" + num_g_channel +
", g_energy_span=" + g_energy_span +
", g_begin_channel=" + g_begin_channel +
", g_counts=" + g_counts +
", num_b_channel=" + num_b_channel +
", b_energy_span=" + b_energy_span +
", b_begin_channel=" + b_begin_channel +
", b_counts=" + b_counts +
", b_channels=" + b_channels +
", g_channels=" + g_channels +
", b_h_energy_span=" + b_h_energy_span +
", g_h_energy_span=" + g_h_energy_span +
", h_counts=" + h_counts +
", total_source_activity=" + total_source_activity +
", assay_date='" + assay_date + '\'' +
", assay_time='" + assay_time + '\'' +
", units_activity='" + units_activity + '\'' +
", nuclide_name=" + nuclide_name +
", half_life_time=" + half_life_time +
", time_unit=" + time_unit +
", activity_nuclide_time_assay=" + activity_nuclide_time_assay +
", uncertainty=" + uncertainty +
", cer_g_energy=" + cer_g_energy +
", g_intensity=" + g_intensity +
", electron_decay_mode=" + electron_decay_mode +
", maximum_energy=" + maximum_energy +
", intensity_b_particle=" + intensity_b_particle +
", record_count=" + record_count +
'}';
}
public static void main(String[] args) {
EnergySpectrumStruct s = new EnergySpectrumStruct();
System.out.println(s);
System.out.println(s.gas_bk_measurement_id);
}
}

View File

@ -0,0 +1,11 @@
package org.jeecg.modules.service;
import org.jeecg.common.api.vo.Result;
import javax.servlet.http.HttpServletRequest;
public interface IDataService {
Result initValue(HttpServletRequest request);
}

View File

@ -1,5 +1,15 @@
package org.jeecg.modules.service;
import org.jeecg.common.api.vo.Result;
import javax.servlet.http.HttpServletRequest;
public interface IGammaService{
void gammaByFile(String path,String fileName);
Result gammaByDB(String dbName, Integer sampleId);
Result configure(Integer sampleId);
Result Reprocessing(Integer sampleId);
}

View File

@ -3,6 +3,8 @@ package org.jeecg.modules.service;
import org.jeecg.common.api.QueryRequest;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.entity.GardsSampleDataSpectrum;
import org.jeecg.modules.entity.vo.AnalyseData;
import org.jeecg.modules.entity.vo.SeriseData;
import org.jeecg.modules.entity.vo.StatisticsQueryData;
import javax.servlet.http.HttpServletRequest;
@ -48,6 +50,14 @@ public interface ISpectrumAnalysisService {
Result statisticsQueryBtn(String detectorName, Integer stationId, String statisticsType, Date startTime, Date endTime);
Result fitting(Double paramA, Double paramB, Double paramC, List<Double> tempPoints);
Result fitting(Double paramA, Double paramB, Double paramC, List<SeriseData> tempPointsArray, Integer count);
Result getGammaGated(Integer chartHeight, Integer channelWidth, Integer gammaChannel, Integer sampleId);
Result ReAnalyse(AnalyseData analyseData);
Result analyseCurrentSpectrum(String dbName, Integer sampleId);
Result analyseAllSpectrum();
}

View File

@ -1,6 +1,6 @@
package org.jeecg.modules.service;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.base.entity.postgre.SysUser;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestMapping;

View File

@ -0,0 +1,49 @@
package org.jeecg.modules.service.impl;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.util.JwtUtil;
import org.jeecg.common.util.GammaFileUtil;
import org.jeecg.common.util.RedisUtil;
import org.jeecg.modules.entity.vo.NuclideLines;
import org.jeecg.modules.mapper.SpectrumAnalysisMapper;
import org.jeecg.modules.service.IDataService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;
@Service("dataService")
public class DataServiceImpl implements IDataService {
@Autowired
private SpectrumAnalysisMapper spectrumAnalysisMapper;
@Autowired
private GammaFileUtil gammaFileUtil;
@Autowired
private RedisUtil redisUtil;
@Override
public Result initValue(HttpServletRequest request) {
Result result = new Result();
String userName = JwtUtil.getUserNameByToken(request);
List<String> PNuclideList = spectrumAnalysisMapper.UserNuclide("P", userName);
if (CollectionUtils.isEmpty(PNuclideList)){
PNuclideList = spectrumAnalysisMapper.UserNuclide("P", "admin");
}
List<String> GNuclideList = spectrumAnalysisMapper.UserNuclide("G", userName);
if (CollectionUtils.isEmpty(GNuclideList)){
GNuclideList = spectrumAnalysisMapper.UserNuclide("G", "admin");
}
Map<String, NuclideLines> PNuclideLinesMap = gammaFileUtil.GetNuclideLines(PNuclideList);
redisUtil.set("Gamma:GammaPInit"+userName,PNuclideLinesMap);
Map<String, NuclideLines> GNuclideLinesMap = gammaFileUtil.GetNuclideLines(GNuclideList);
redisUtil.set("Gamma:GammaGInit"+userName,GNuclideLinesMap);
result.setSuccess(true);
return result;
}
}

View File

@ -1,13 +1,97 @@
package org.jeecg.modules.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.util.JwtUtil;
import org.jeecg.common.util.GammaFileUtil;
import org.jeecg.common.util.RedisUtil;
import org.jeecg.modules.entity.vo.NuclideLines;
import org.jeecg.modules.entity.vo.PHDFile;
import org.jeecg.modules.entity.vo.SpecSetup;
import org.jeecg.modules.service.IGammaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@Service
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service(value = "gammaService")
@DS("ora")
public class GammaServiceImpl implements IGammaService {
@Override
public void gammaByFile(String path,String fileName) {
@Autowired
private RedisUtil redisUtil;
@Autowired
private GammaFileUtil gammaFileUtil;
@Override
public Result gammaByDB(String dbName, Integer sampleId) {
Result result = new Result();
Map<String, Object> map = new HashMap<>();
PHDFile phd = new PHDFile();
//读取文件内容
gammaFileUtil.loadFile(sampleId, phd, result);
//从数据库中读取相关信息 ---- 目前代码未完善
gammaFileUtil.getResultFromDB(dbName, sampleId, phd, result);
// 更新 QC Flags 状态
List<String> qcstate = gammaFileUtil.Qcstate(phd);
map.put("QCFlag", qcstate);
// 更新 Detailed Information 信息
List<String> detailedInfo = gammaFileUtil.DetailedInfo(phd);
map.put("DetailedInformation", detailedInfo);
// 更新 ACQ 模块中各时间信息
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();
map.put("dead_time", String.format("%.2f", deadTime*100));
gammaFileUtil.UpdateChart(phd, map);
redisUtil.set("Gamma : Gamma_"+sampleId, phd);
result.setSuccess(true);
result.setResult(map);
return result;
}
@Override
public Result configure(Integer sampleId) {
Result result = new Result();
PHDFile phd = (PHDFile) redisUtil.get("Gamma_" + sampleId);
Map<String, Object> map = new HashMap<>();
// 用当前谱使用的设置初始化界面控件
SpecSetup setup = phd.getUsedSetting();
map.put("edit_ps_low", setup.getECutAnalysis_Low());
map.put("edit_ps_high", setup.getECutAnalysis_High());
map.put("edit_energy", setup.getEnergyTolerance());
map.put("edit_pss_low", setup.getPSS_low());
map.put("edit_cal_low", setup.getCalibrationPSS_low());
map.put("edit_cal_high", setup.getCalibrationPSS_high());
map.put("checkBox_updateCal", setup.isBUpdateCal());
map.put("checkBox_keepPeak", setup.isKeepCalPeakSearchPeaks());
map.put("edit_bi_pss", setup.getBaseImprovePSS());
map.put("edit_riskLevelK", setup.getRiskLevelK());
map.put("edit_k_back", setup.getK_back());
map.put("edit_k_alpha", setup.getK_alpha());
map.put("edit_k_beta", setup.getK_beta());
map.put("dateTime_Act", setup.getRefTime_act());
map.put("dateTime_Conc", setup.getRefTime_conc());
// 当前谱文件为非 P 类型时禁用刻度更新模块
if(!phd.getHeader().getSystem_type().toUpperCase().contains("P")) {
map.put("group_calPS", false);
}
result.setSuccess(true);
result.setResult(map);
return result;
}
@Override
public Result Reprocessing(Integer sampleId) {
return null;
}
}

View File

@ -173,9 +173,6 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
result.error500("数据库类型不存在");
return result;
}
if (redisUtil.hasKey("Spectrum_"+sampleId)){
redisUtil.del("Spectrum_"+sampleId);
}
//查询数据库文件信息
SpectrumFileRecord dbSpectrumFilePath = spectrumAnalysisMapper.getDBSpectrumFilePath(dbName, sampleId);
//查询数据库中结果的Xe数据
@ -213,7 +210,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
detBgMap = this.fenxi(pathName, fileName, xeDataList, detBg.getSampleId(), detBg.getStatus());
resultMap.put("detBg",detBgMap);
}
String collectStartStr = DateUtils.formatDate(dbSpectrumFilePath.getCollectStart(), "yyyy-MM-dd HH:mm:ss");
String collectStartStr = DateUtils.formatDate(dbSpectrumFilePath.getCollectStart(), "yyyy/MM/dd HH:mm:ss");
String dbQcFilePath = spectrumAnalysisMapper.getQCFilePath(dbSpectrumFilePath.getSiteDetCode(), collectStartStr);
dbSpectrumFilePath.setQcFilePath(dbQcFilePath);
filePath.add(dbQcFilePath);
@ -226,7 +223,6 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
}
phdFileUtil.getLightColor(sampleMap,gasBgMap,detBgMap,qcMap);
}
redisUtil.set("Spectrum_"+sampleId, filePath);
result.setSuccess(true);
result.setResult(resultMap);
return result;
@ -285,9 +281,6 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
result.error500("删除失败!");
return result;
}
for (Integer sampleId:sampleIds) {
redisUtil.del("Spectrum_"+sampleId);
}
result.success("删除成功");
return result;
}
@ -498,7 +491,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
List<String> lines = phdFileUtil.readLine(detBgFilePath);
map.put("detBg", lines);
}
String collectStartStr = DateUtils.formatDate(dbSpectrumFilePath.getCollectStart(), "yyyy-MM-dd HH:mm:ss");
String collectStartStr = DateUtils.formatDate(dbSpectrumFilePath.getCollectStart(), "yyyy/MM/dd HH:mm:ss");
String dbQcFilePath = StringPool.SLASH+ spectrumPathProperties.getRootPath() +StringPool.SLASH+spectrumAnalysisMapper.getQCFilePath(dbSpectrumFilePath.getSiteDetCode(), collectStartStr);
if(StringUtils.isNotBlank(dbQcFilePath)){
List<String> lines = phdFileUtil.readLine(dbQcFilePath);
@ -554,15 +547,15 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
String sit_det_code = struct.site_code;
String detect_code = struct.detector_code;
String sample_id = sampleId.toString();
Date collectStartDate = DateUtils.parseDate(struct.collection_start_date.replace(StringPool.SLASH, StringPool.DASH) + StringPool.SPACE + struct.collection_start_time.substring(0, struct.collection_start_time.indexOf(StringPool.DOT)), "yyyy-MM-dd HH:mm:ss");
Date collectStopDate = DateUtils.parseDate(struct.collection_stop_date.replace(StringPool.SLASH, StringPool.DASH) + StringPool.SPACE + struct.collection_stop_time.substring(0, struct.collection_stop_time.indexOf(StringPool.DOT)), "yyyy-MM-dd HH:mm:ss");
String collect_start = DateUtils.formatDate(collectStartDate, "yyyy-MM-dd HH:mm:ss");
String collect_stop = DateUtils.formatDate(collectStopDate, "yyyy-MM-dd HH:mm:ss");
Date collectStartDate = DateUtils.parseDate(struct.collection_start_date + StringPool.SPACE + struct.collection_start_time.substring(0, struct.collection_start_time.indexOf(StringPool.DOT)), "yyyy/MM/dd HH:mm:ss");
Date collectStopDate = DateUtils.parseDate(struct.collection_stop_date + StringPool.SPACE + struct.collection_stop_time.substring(0, struct.collection_stop_time.indexOf(StringPool.DOT)), "yyyy/MM/dd HH:mm:ss");
String collect_start = DateUtils.formatDate(collectStartDate, "yyyy/MM/dd HH:mm:ss");
String collect_stop = DateUtils.formatDate(collectStopDate, "yyyy/MM/dd HH:mm:ss");
String collection_time_value = String.format ("%.2f",Double.valueOf(collectStopDate.getTime()/1000 - collectStartDate.getTime()/ 1000));
String s_volume_of_Xe = String.valueOf(struct.air_volume);
String s_xe_stable_volume = String.valueOf(struct.sample_volume_of_Xe);
Date acquisitionStartDate = DateUtils.parseDate(struct.acquisition_start_date.replace(StringPool.SLASH, StringPool.DASH) + StringPool.SPACE + struct.acquisition_start_time.substring(0, struct.acquisition_start_time.indexOf(StringPool.DOT)), "yyyy-MM-dd HH:mm:ss");
String acquisition_start = DateUtils.formatDate(acquisitionStartDate, "yyyy-MM-dd HH:mm:ss");
Date acquisitionStartDate = DateUtils.parseDate(struct.acquisition_start_date + StringPool.SPACE + struct.acquisition_start_time.substring(0, struct.acquisition_start_time.indexOf(StringPool.DOT)), "yyyy/MM/dd HH:mm:ss");
String acquisition_start = DateUtils.formatDate(acquisitionStartDate, "yyyy/MM/dd HH:mm:ss");
String acquisition_real_sec = String.valueOf(struct.acquisition_real_time);
String acquisition_live_sec = String.valueOf(struct.acquisition_live_time);
StringBuffer strBuffer = new StringBuffer();
@ -671,19 +664,19 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(file.getAbsolutePath());
bkgdMeasurementID = struct.detector_bk_measurement_id;
gasBkgdMeasurementID = struct.gas_bk_measurement_id;
Date collectStartDate = DateUtils.parseDate(struct.collection_start_date.replace(StringPool.SLASH, StringPool.DASH) + StringPool.SPACE + struct.collection_start_time.substring(0, struct.collection_start_time.indexOf(StringPool.DOT)), "yyyy-MM-dd HH:mm:ss");
Date collectStopDate = DateUtils.parseDate(struct.collection_stop_date.replace(StringPool.SLASH, StringPool.DASH) + StringPool.SPACE + struct.collection_stop_time.substring(0, struct.collection_stop_time.indexOf(StringPool.DOT)), "yyyy-MM-dd HH:mm:ss");
Date collectStartDate = DateUtils.parseDate(struct.collection_start_date + StringPool.SPACE + struct.collection_start_time.substring(0, struct.collection_start_time.indexOf(StringPool.DOT)), "yyyy/MM/dd HH:mm:ss");
Date collectStopDate = DateUtils.parseDate(struct.collection_stop_date + StringPool.SPACE + struct.collection_stop_time.substring(0, struct.collection_stop_time.indexOf(StringPool.DOT)), "yyyy/MM/dd HH:mm:ss");
Double collection_time = Double.valueOf(collectStopDate.getTime() / 1000 - collectStartDate.getTime() / 1000);
String collection_time_value = String.format("%.2f",Double.valueOf(collectStopDate.getTime()/1000 - collectStartDate.getTime()/ 1000)/3600.0);
qcResult.setCollectTimeValue(collection_time_value);
if (collectionTimeSections.get(1) < collection_time && collection_time < collectionTimeSections.get(4)){
if (collectionTimeSections.get(1) < collection_time/3600 && collection_time/3600 < collectionTimeSections.get(4)){
qcResult.setCollectTimeStatus("Pass");
}else {
qcResult.setCollectTimeStatus("Failed");
}
String acquisition_live_sec = String.format("%.2f",struct.acquisition_live_time/3600.0);
qcResult.setAcquisitionTimeValue(acquisition_live_sec);
if (acquisitionTimeSections.get(1) < struct.acquisition_live_time && struct.acquisition_live_time < acquisitionTimeSections.get(4)){
if (acquisitionTimeSections.get(1) < struct.acquisition_live_time/3600.0 && struct.acquisition_live_time/3600.0 < acquisitionTimeSections.get(4)){
qcResult.setAcquisitionTimeStatus("Pass");
}else {
qcResult.setAcquisitionTimeStatus("Failed");
@ -943,7 +936,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
Result result = new Result();
Map<String, Object> map = new HashMap<>();
GardsSampleData sampleData = spectrumAnalysisMapper.getSampleData(sampleId);
String collectStartStr = DateUtils.formatDate(sampleData.getCollectStart(), "yyyy-MM-dd HH:mm:ss");
String collectStartStr = DateUtils.formatDate(sampleData.getCollectStart(), "yyyy/MM/dd HH:mm:ss");
String dbQcFilePath = spectrumAnalysisMapper.getQCFilePath(sampleData.getSiteDetCode(), collectStartStr);
FTPClient ftpClient = ftpUtil.LoginFTP();
if (Objects.isNull(ftpClient)){
@ -1075,7 +1068,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
Result result = new Result();
Map<String, Object> map = new HashMap<>();
GardsSampleData sampleData = spectrumAnalysisMapper.getSampleData(sampleId);
String collectStartStr = DateUtils.formatDate(sampleData.getCollectStart(), "yyyy-MM-dd HH:mm:ss");
String collectStartStr = DateUtils.formatDate(sampleData.getCollectStart(), "yyyy/MM/dd HH:mm:ss");
String dbQcFilePath = spectrumAnalysisMapper.getQCFilePath(sampleData.getSiteDetCode(), collectStartStr);
FTPClient ftpClient = ftpUtil.LoginFTP();
if (Objects.isNull(ftpClient)){
@ -1143,9 +1136,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
long gChannels = struct.g_channels;
List<Long> hCounts = struct.h_counts;
List<HistogramData> histogramDataList = new LinkedList<>();
Map<String, List<Long>> countMap = new HashMap<>();
for (int column=0; column<bChannels; column++) {
List<Long> counts = new LinkedList<>();
for (int row=0; row<gChannels; row++) {
Long index = column * gChannels + row;
long count = hCounts.get(index.intValue());
@ -1155,13 +1146,9 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
histogramData.setG(column);
histogramDataList.add(histogramData);
}
counts.add(count);
}
countMap.put(String.valueOf(column), counts);
}
map.put("histogramData", histogramDataList);
//Gamma-gated Beta Spectrum: QC
map.put("gammaGatedBetaSpectrum", countMap);
//计算Calibration Parameter Of Gamma Detector
List<Double> bChannelList = struct.b_channel;
List<Double> bEnergy = struct.b_electron_energy;
@ -1221,21 +1208,19 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
public Result viewExtrapolation(Integer sampleId) {
Result result = new Result();
Map<String, Object> map = new HashMap<>();
String dbName = "RNAUTO.GARDS_ANALYSES";
SpectrumFileRecord dbSpectrumFilePath = spectrumAnalysisMapper.getDBSpectrumFilePath(dbName, sampleId);
String sampleFilePath = spectrumAnalysisMapper.getSampleFilePath(sampleId);
//加载dll工具库
System.loadLibrary("ReadPHDFile");
if (Objects.nonNull(dbSpectrumFilePath)){
String sampleFilePath = dbSpectrumFilePath.getSampleFilePath();
if (StringUtils.isNotBlank(sampleFilePath)){
String samplePathName = sampleFilePath.substring(0, sampleFilePath.lastIndexOf(StringPool.SLASH));
String sampleFileName = sampleFilePath.substring(sampleFilePath.lastIndexOf(StringPool.SLASH)+1);
FTPClient ftpClient = ftpUtil.LoginFTP();
if (Objects.isNull(ftpClient)){
result.error500("ftp连接失败");
return result;
}
if (StringUtils.isNotBlank(sampleFilePath)){
String samplePathName = sampleFilePath.substring(0, sampleFilePath.lastIndexOf(StringPool.SLASH));
String sampleFileName = sampleFilePath.substring(sampleFilePath.lastIndexOf(StringPool.SLASH)+1);
try {
//切换被动模式
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
// 设置编码当文件中存在中文且上传后文件乱码时可使用此配置项
@ -1340,7 +1325,6 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
}
}
}
}
result.setSuccess(true);
result.setResult(map);
return result;
@ -1441,13 +1425,13 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
result.error500("开始时间不能为空");
return result;
}
String startDate = DateUtils.formatDate(statisticsQueryData.getStartTime(), "yyyy-MM-dd");
String startDate = DateUtils.formatDate(statisticsQueryData.getStartTime(), "yyyy/MM/dd");
statisticsQueryData.setStartDate(startDate);
if (Objects.isNull(statisticsQueryData.getEndTime())){
result.error500("结束时间不能为空");
return result;
}
String endDate = DateUtils.formatDate(statisticsQueryData.getEndTime(), "yyyy-MM-dd");
String endDate = DateUtils.formatDate(statisticsQueryData.getEndTime(), "yyyy/MM/dd");
statisticsQueryData.setEndDate(endDate);
List<String> detectorList = new LinkedList<>();
if (StringUtils.isNotBlank(statisticsQueryData.getDetectorName())){
@ -1634,12 +1618,12 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
result.error500("开始时间不能为空");
return result;
}
String startDate = DateUtils.formatDate(startTime, "yyyy-MM-dd");
String startDate = DateUtils.formatDate(startTime, "yyyy/MM/dd");
if (Objects.isNull(endTime)){
result.error500("结束时间不能为空");
return result;
}
String endDate = DateUtils.formatDate(endTime, "yyyy-MM-dd");
String endDate = DateUtils.formatDate(endTime, "yyyy/MM/dd");
List<String> detectorList = new LinkedList<>();
if (StringUtils.isNotBlank(detectorName)){
if (detectorName.equals("All")){
@ -1713,18 +1697,57 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
}
@Override
public Result fitting(Double paramA, Double paramB, Double paramC, List<Double> tempPoints) {
public Result fitting(Double paramA, Double paramB, Double paramC, List<SeriseData> tempPoints, Integer count) {
Result result = new Result();
Map<String, Object> map = new HashMap<>();
//加载dll工具库
System.loadLibrary("ReadPHDFile");
if ((CollectionUtils.isNotEmpty(tempPoints) && Objects.nonNull(count) && tempPoints.size() != count) || (Objects.isNull(paramA) || StringUtils.isBlank(String.valueOf(paramA)))
|| (Objects.isNull(paramB) || StringUtils.isBlank(String.valueOf(paramB))) || (Objects.isNull(paramC) || StringUtils.isBlank(String.valueOf(paramC))) ){
List<Double> xs = new LinkedList<>();
List<Double> ys = new LinkedList<>();
for (int i=0; i<tempPoints.size(); i++){
xs.add(tempPoints.get(i).getX());
ys.add(tempPoints.get(i).getY());
}
//C to E
List<Double> fittingPara = EnergySpectrumHandler.GetFileFittingPara(xs, ys);
List<String> fittingParaStr = new LinkedList<>();
for (Double para:fittingPara) {
fittingParaStr.add(String.valueOf(para));
}
map.put("CToE", fittingParaStr);
List<Double> channels = new LinkedList<>();
for (int i=0; i<255; i++) {
channels.add(Double.valueOf(i));
}
List<Double> energys = EnergySpectrumHandler.GetFileFittingData(channels,fittingPara);
List<SeriseData> newLineSeries = new LinkedList<>();
for (int i=0; i<channels.size(); ++i) {
SeriseData seriseData = new SeriseData();
seriseData.setX(channels.get(i));
seriseData.setY(energys.get(i));
newLineSeries.add(seriseData);
}
map.put("newLineSeries", newLineSeries);
//E to C
List<Double> fittingParaToUi = EnergySpectrumHandler.GetFileFittingPara(ys, xs);
List<String> fittingParaToUiStr = new LinkedList<>();
for (Double para:fittingParaToUi) {
fittingParaToUiStr.add(String.valueOf(para));
}
map.put("EToC", fittingParaToUiStr);
}else {
List<Double> fittingPara = new LinkedList<>();
fittingPara.add(paramA);
fittingPara.add(paramB);
fittingPara.add(paramC);
List<Double> xs = new LinkedList<>();
for (int i=0; i<tempPoints.size(); i++){
xs.add(tempPoints.get(i));
xs.add(tempPoints.get(i).getX());
}
List<Double> ys = EnergySpectrumHandler.GetFileFittingPara(xs, fittingPara);
List<Double> ys = EnergySpectrumHandler.GetFileFittingData(xs, fittingPara);
List<SeriseData> seriseDataList = new LinkedList<>();
List<TableWidget> tableWidgets = new LinkedList<>();
for (int i=0; i<xs.size(); i++) {
@ -1753,6 +1776,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
SeriseData seriseData = new SeriseData();
seriseData.setX(channels.get(i));
seriseData.setY(energys.get(i));
newLineSeries.add(seriseData);
}
map.put("newLineSeries", newLineSeries);
//E to C
@ -1762,9 +1786,252 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
fittingParaToUiStr.add(String.valueOf(para));
}
map.put("EToC", fittingParaToUiStr);
}
result.setSuccess(true);
result.setResult(map);
return result;
}
@Override
public Result getGammaGated(Integer chartHeight, Integer channelWidth, Integer gammaChannel, Integer sampleId) {
//选择矩形框高度
Integer flagHeight = channelWidth * (chartHeight/256);
int value = Double.valueOf(flagHeight / 2).intValue();
//计算得到最高值
int up = gammaChannel - value;
if (up<0){
up = 0;
}
//计算得到最低值
int down = up + value;
Result result = new Result();
Map<String, Object> map = new HashMap<>();
GardsSampleData sampleData = spectrumAnalysisMapper.getSampleData(sampleId);
String collectStartStr = DateUtils.formatDate(sampleData.getCollectStart(), "yyyy/MM/dd HH:mm:ss");
String dbQcFilePath = spectrumAnalysisMapper.getQCFilePath(sampleData.getSiteDetCode(), collectStartStr);
FTPClient ftpClient = ftpUtil.LoginFTP();
if (Objects.isNull(ftpClient)){
result.error500("ftp连接失败");
return result;
}
try {
//切换被动模式
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
// 设置编码当文件中存在中文且上传后文件乱码时可使用此配置项
ftpClient.setControlEncoding("UTF-8");
ftpClient.setFileTransferMode(FTPClient.STREAM_TRANSFER_MODE);
if (StringUtils.isNotBlank(dbQcFilePath)){
String qcPathName = dbQcFilePath.substring(0, dbQcFilePath.lastIndexOf(StringPool.SLASH));
String qcFileName = dbQcFilePath.substring(dbQcFilePath.lastIndexOf(StringPool.SLASH)+1);
qcPathName=StringPool.SLASH + spectrumPathProperties.getRootPath() + StringPool.SLASH + qcPathName;
ftpClient.changeWorkingDirectory(qcPathName);
List<FTPFile> qcFtpFiles = Arrays.asList(ftpClient.listFiles());
qcFtpFiles=qcFtpFiles.stream().filter(item -> item.getName().equals(qcFileName)).collect(Collectors.toList());
if (CollectionUtils.isEmpty(qcFtpFiles)){
result.error500("ftp下对应的QC文件不存在");
return result;
}
FTPFile qcFtpFile = qcFtpFiles.get(0);
if (Objects.nonNull(qcFtpFile)){
InputStream inputStream = ftpClient.retrieveFileStream(qcFtpFile.getName());
//声明一个临时文件
File file = File.createTempFile("tmp", null);
//将ftp文件的输入流复制给临时文件
FileUtils.copyInputStreamToFile(inputStream, file);
//加载dll工具库
System.loadLibrary("ReadPHDFile");
EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(file.getAbsolutePath());
//Beta-Gamma Spectrum: QC
long bChannels = struct.b_channels;
List<Long> hCounts = struct.h_counts;
List<SeriseData> serise_data = new LinkedList<>();
for ( int i=0; i<bChannels; ++i ) {
long count = 0;
for (int j=up; j<=down; ++j) {
Long index = j * bChannels + i;
count += hCounts.get(index.intValue());
}
SeriseData temp = new SeriseData();
temp.setX(i);
temp.setY(count);
serise_data.add(temp);
}
map.put("data", serise_data);
}
}
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
try {
if (Objects.nonNull(ftpClient)){
ftpClient.disconnect();
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
result.setSuccess(true);
result.setResult(map);
return result;
}
@Override
public Result ReAnalyse(AnalyseData analyseData) {
String dbName = "";
if (analyseData.getDbName().equalsIgnoreCase("auto")){
dbName = "RNAUTO.GARDS_ANALYSES";
}else if (analyseData.getDbName().equalsIgnoreCase("man")){
dbName = "RNMAN.GARDS_ANALYSES";
}
if ("CurrentSpectrum".equals(analyseData.getApplyType())) {
List<Integer> sampleIds = analyseData.getSampleIds();
if (CollectionUtils.isNotEmpty(sampleIds)){
Integer sampleId = sampleIds.get(0);
SpectrumFileRecord dbSpectrumFilePath = spectrumAnalysisMapper.getDBSpectrumFilePath(dbName, sampleId);
if (Objects.nonNull(dbSpectrumFilePath)) {
BetaGammaAnalyzeCurrentProcess(analyseData, dbSpectrumFilePath);
}
}
} else if ("AllSpectrum".equals(analyseData.getApplyType())) {
Map<String, SpectrumFileRecord> m_loadData = new HashMap<>();
for (int i=0; i<analyseData.getSampleIds().size(); i++) {
Integer sampleId = analyseData.getSampleIds().get(i);
SpectrumFileRecord dbSpectrumFilePath = spectrumAnalysisMapper.getDBSpectrumFilePath(dbName, sampleId);
m_loadData.put(String.valueOf(sampleId), dbSpectrumFilePath);
}
BetaGammaAnalyzeAllProcess(m_loadData, analyseData);
}
// if (analyseData.isBBetaEnergyValid()) {
// ui->BetaOriginalChartView->SetFittingParam(fit_analy_param.b_calibration_param.param_a_c2e_new,
// fit_analy_param.b_calibration_param.param_b_c2e_new,
// fit_analy_param.b_calibration_param.param_c_c2e_new);
// ui->BetaProjectedChartView->SetFittingParam(fit_analy_param.b_calibration_param.param_a_c2e_new,
// fit_analy_param.b_calibration_param.param_b_c2e_new,
// fit_analy_param.b_calibration_param.param_c_c2e_new);
// }
// if (analyseData.isBGammaEnergyValid()) {
// ui->GammaOriginalChartView->SetFittingParam(fit_analy_param.g_calibration_param.param_a_c2e_new,
// fit_analy_param.g_calibration_param.param_b_c2e_new,
// fit_analy_param.g_calibration_param.param_c_c2e_new);
// ui->GammaProjectedChartView->SetFittingParam(fit_analy_param.g_calibration_param.param_a_c2e_new,
// fit_analy_param.g_calibration_param.param_b_c2e_new,
// fit_analy_param.g_calibration_param.param_c_c2e_new);
// }
return null;
}
private void BetaGammaAnalyzeCurrentProcess(AnalyseData analyseData, SpectrumFileRecord dbSpectrumFilePath){
SpectrumGroup spectrum_group = new SpectrumGroup();
spectrum_group.setSampleSpectrumFile(dbSpectrumFilePath.getSampleFilePath());
spectrum_group.setGasBgSpectrumFile(dbSpectrumFilePath.getGasBgFilePath());
spectrum_group.setDetBgSpectrumFile(dbSpectrumFilePath.getDetBgFilePath());
if (analyseData.isBBetaEnergyValid()) {
List<Double> beCal = new LinkedList<>();
beCal.add(analyseData.getB_calibration_param().param_c_e2c_new);
beCal.add(analyseData.getB_calibration_param().param_b_e2c_new);
beCal.add(analyseData.getB_calibration_param().param_a_e2c_new);
spectrum_group.getBgCalPara().setB_e_cal(beCal);
List<Double> bc2e = new LinkedList<>();
bc2e.add(analyseData.getB_calibration_param().param_c_c2e_new);
bc2e.add(analyseData.getB_calibration_param().param_b_c2e_new);
bc2e.add(analyseData.getB_calibration_param().param_a_c2e_new);
spectrum_group.setB_c2e(bc2e);
}
if (analyseData.isBGammaEnergyValid()) {
List<Double> geCal = new LinkedList<>();
geCal.add(analyseData.getG_calibration_param().param_c_e2c_new);
geCal.add(analyseData.getG_calibration_param().param_b_e2c_new);
geCal.add(analyseData.getG_calibration_param().param_a_e2c_new);
spectrum_group.getBgCalPara().setG_e_cal(geCal);
List<Double> gc2e = new LinkedList<>();
gc2e.add(analyseData.getG_calibration_param().param_c_c2e_new);
gc2e.add(analyseData.getG_calibration_param().param_b_c2e_new);
gc2e.add(analyseData.getG_calibration_param().param_a_c2e_new);
spectrum_group.setG_c2e(gc2e);
}
spectrum_group.getBgCalPara().setBApplyNewCalicSample(analyseData.isSampleData());
spectrum_group.getBgCalPara().setBApplyNewCalicGasBg(analyseData.isGasBgData());
spectrum_group.getBgCalPara().setBApplyNewCalicDetBg(analyseData.isDetBgData());
spectrum_group.getBgCalPara().setBApplyNewCalicQc(analyseData.isQCData());
List<SpectrumGroup> spectrum_group_list = new LinkedList<>();
spectrum_group_list.add(spectrum_group);
// beta_gamma_analy.SetSpectrumGroupList(spectrum_group_list);
// AnalyProcessDlg analy_dlg(beta_gamma_analy);
// analy_dlg.SetProgressRange(0, spectrum_group_list.count());
// analy_dlg.exec();
}
private void BetaGammaAnalyzeAllProcess(Map<String, SpectrumFileRecord> m_loadData, AnalyseData analyseData){
List<SpectrumGroup> spectrum_group_list = new LinkedList<>();
for (Map.Entry<String, SpectrumFileRecord> entry: m_loadData.entrySet()){
SpectrumGroup spectrum_group = new SpectrumGroup();
SpectrumFileRecord spectrumFileRecord = entry.getValue();
spectrum_group.setSampleSpectrumFile(spectrumFileRecord.getSampleFilePath());
spectrum_group.setGasBgSpectrumFile(spectrumFileRecord.getGasBgFilePath());
spectrum_group.setDetBgSpectrumFile(spectrumFileRecord.getDetBgFilePath());
if (analyseData.isBBetaEnergyValid()) {
List<Double> beCal = new LinkedList<>();
beCal.add(analyseData.getB_calibration_param().param_c_e2c_new);
beCal.add(analyseData.getB_calibration_param().param_b_e2c_new);
beCal.add(analyseData.getB_calibration_param().param_a_e2c_new);
spectrum_group.getBgCalPara().setB_e_cal(beCal);
List<Double> bc2e = new LinkedList<>();
bc2e.add(analyseData.getB_calibration_param().param_c_c2e_new);
bc2e.add(analyseData.getB_calibration_param().param_b_c2e_new);
bc2e.add(analyseData.getB_calibration_param().param_a_c2e_new);
spectrum_group.setB_c2e(bc2e);
}
if (analyseData.isBGammaEnergyValid()) {
List<Double> geCal = new LinkedList<>();
geCal.add(analyseData.getG_calibration_param().param_c_e2c_new);
geCal.add(analyseData.getG_calibration_param().param_b_e2c_new);
geCal.add(analyseData.getG_calibration_param().param_a_e2c_new);
spectrum_group.getBgCalPara().setG_e_cal(geCal);
List<Double> gc2e = new LinkedList<>();
gc2e.add(analyseData.getG_calibration_param().param_c_c2e_new);
gc2e.add(analyseData.getG_calibration_param().param_b_c2e_new);
gc2e.add(analyseData.getG_calibration_param().param_a_c2e_new);
spectrum_group.setG_c2e(gc2e);
}
spectrum_group.getBgCalPara().setBApplyNewCalicSample(analyseData.isSampleData());
spectrum_group.getBgCalPara().setBApplyNewCalicGasBg(analyseData.isGasBgData());
spectrum_group.getBgCalPara().setBApplyNewCalicDetBg(analyseData.isDetBgData());
spectrum_group.getBgCalPara().setBApplyNewCalicQc(analyseData.isQCData());
spectrum_group_list.add(spectrum_group);
}
if (CollectionUtils.isNotEmpty(spectrum_group_list)) {
// beta_gamma_analy.SetSpectrumGroupList(spectrum_group_list);
// AnalyProcessDlg analy_dlg(beta_gamma_analy);
// analy_dlg.SetProgressRange(0, spectrum_group_list.count());
// analy_dlg.exec();
}
}
@Override
public Result analyseCurrentSpectrum(String dbName, Integer sampleId) {
if (dbName.equalsIgnoreCase("auto")){
dbName = "RNAUTO.GARDS_ANALYSES";
}else if (dbName.equalsIgnoreCase("man")){
dbName = "RNMAN.GARDS_ANALYSES";
}
SpectrumFileRecord dbSpectrumFilePath = spectrumAnalysisMapper.getDBSpectrumFilePath(dbName, sampleId);
// BetaGammaAnalyzeCurrentProcess();
return null;
}
@Override
public Result analyseAllSpectrum() {
return null;
}
}

View File

@ -1,69 +0,0 @@
package org.jeecg.modules.system.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName(value = "CONFIGURATION.GARDS_DETECTORS")
public class GardsDetectors implements Serializable {
@TableField(value = "DETECTOR_ID")
private Integer detectorId;
@TableField(value = "DETECTOR_CODE")
private String detectorCode;
@TableField(value = "LON")
private Double lon;
@TableField(value = "LAT")
private Double lat;
@TableField(value = "TYPE")
private String type;
@TableField(value = "CHANNELS")
private Double channels;
@TableField(value = "RATED_EFFICIENCY")
private Double ratedEfficiency;
@TableField(value = "RATED_RESOLUTION")
private Double ratedResolution;
@TableField(value = "ECAL_RANGE_MAX")
private Double ecalRangeMax;
@TableField(value = "DATE_BEGIN")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date dateBegin;
@TableField(value = "DATE_END")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date dateEnd;
@TableField(value = "STATUS")
private String status;
@TableField(value = "DESCRIPTION")
private String description;
@TableField(value = "MODDATE")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date moddate;
@TableField(value = "STATION_ID")
private Integer stationId;
@TableField(exist = false)
private String stationName;
}

View File

@ -1,58 +0,0 @@
package org.jeecg.modules.system.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName(value = "CONFIGURATION.GARDS_STATIONS")
public class GardsStations implements Serializable {
@TableField(value = "STATION_ID")
private Integer stationId;
@TableField(value = "STATION_CODE")
private String stationCode;
@TableField(value = "COUNTRY_CODE")
private String countryCode;
@TableField(value = "TYPE")
private String type;
@TableField(value = "LON")
private Double lon;
@TableField(value = "LAT")
private Double lat;
@TableField(value = "ELEVATION")
private Double elevation;
@TableField(value = "DESCRIPTION")
private String description;
@TableField(value = "DATE_BEGIN")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date dateBegin;
@TableField(value = "DATE_END")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date dateEnd;
@TableField(value = "STATUS")
private String status;
@TableField(value = "MODDATE")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date moddate;
}

View File

@ -1,204 +0,0 @@
package org.jeecg.modules.system.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 用户表
* </p>
*
* @Author scott
* @since 2018-12-20
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class SysUser implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
private String id;
/**
* 登录账号
*/
@Excel(name = "登录账号", width = 15)
private String username;
/**
* 真实姓名
*/
@Excel(name = "真实姓名", width = 15)
private String realname;
/**
* 密码
*/
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private String password;
/**
* md5密码盐
*/
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private String salt;
/**
* 头像
*/
@Excel(name = "头像", width = 15,type = 2)
private String avatar;
/**
* 生日
*/
@Excel(name = "生日", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birthday;
/**
* 性别1 2
*/
@Excel(name = "性别", width = 15,dicCode="sex")
@Dict(dicCode = "sex")
private Integer sex;
/**
* 电子邮件
*/
@Excel(name = "电子邮件", width = 15)
private String email;
/**
* 电话
*/
@Excel(name = "电话", width = 15)
private String phone;
/**
* 登录选择部门编码
*/
private String orgCode;
/**
* 登录选择租户ID
*/
private Integer loginTenantId;
/**部门名称*/
private transient String orgCodeTxt;
/**
* 状态(1正常 2冻结
*/
@Excel(name = "状态", width = 15,dicCode="user_status")
@Dict(dicCode = "user_status")
private Integer status;
/**
* 删除状态0正常1已删除
*/
@Excel(name = "删除状态", width = 15,dicCode="del_flag")
@TableLogic
private Integer delFlag;
/**
* 工号唯一键
*/
@Excel(name = "工号", width = 15)
private String workNo;
/**
* 职务关联职务表
*/
@Excel(name = "职务", width = 15)
@Dict(dictTable ="sys_position",dicText = "name",dicCode = "code")
private String post;
/**
* 座机号
*/
@Excel(name = "座机号", width = 15)
private String telephone;
/**
* 创建人
*/
private String createBy;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新人
*/
private String updateBy;
/**
* 更新时间
*/
private Date updateTime;
/**
* 同步工作流引擎1同步0不同步
*/
private Integer activitiSync;
/**
* 身份0 普通成员 1 上级
*/
@Excel(name="1普通成员 2上级",width = 15)
private Integer userIdentity;
/**
* 负责部门
*/
@Excel(name="负责部门",width = 15,dictTable ="sys_depart",dicText = "depart_name",dicCode = "id")
@Dict(dictTable ="sys_depart",dicText = "depart_name",dicCode = "id")
private String departIds;
/**
* 多租户ids临时用不持久化数据库(数据库字段不存在)
*/
@TableField(exist = false)
private String relTenantIds;
/**设备id uniapp推送用*/
private String clientId;
/**
* 登录首页地址
*/
@TableField(exist = false)
private String homePath;
/**
* 职位名称
*/
@TableField(exist = false)
private String postText;
/**
* 流程状态
*/
private String bpmStatus;
}

View File

@ -17,7 +17,7 @@ public class SysTaskChangeVo {
private List<String> stationIds;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date day;
}