feat:自建台站自动处理分析结果存库

This commit is contained in:
nieziyan 2024-07-25 14:28:50 +08:00
parent 970d4f3027
commit 2e0814fa14
42 changed files with 1489 additions and 163 deletions

View File

@ -0,0 +1,48 @@
package org.jeecg.modules.base.entity.rnauto;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
@Data
@TableName("RNAUTO.GARDS_ANALYSIS_ROI")
@Accessors(chain = true)
public class GardsAnalysisRoi {
@TableId("IDANALYSIS")
private Integer idAnalysis;
private Integer sampleId;
private Integer roiId;
private Integer roiNum;
private Double minX;
private Double maxX;
private Double minY;
private Double maxY;
private String phdPath;
private String baselinePath;
private String lcPath;
private String scacPath;
private String logPath;
private String reportPath;
}

View File

@ -0,0 +1,74 @@
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 java.io.Serializable;
import java.util.Date;
/**
* 存储数据分析过程中能量分辨率和效率刻度实际使用的刻度点数据
*/
@Data
@TableName("RNAUTO.GARDS_CALIBRATION_PAIRS_ROI")
public class GardsCalibrationPairsRoi implements Serializable {
/**
* 样品id
*/
@TableField(value = "SAMPLE_ID")
private Integer sampleId;
/**
* 分析ID号
*/
@TableField(value = "IDANALYSIS")
private Integer idAnalysis;
private Integer roiId;
/**
* Ggamma探测器的数据#g_Bbeta探测器的数据,#b_
*/
@TableField(value = "SAMPLE_TYPE")
private String sampleType;
/**
* energy能量刻度
* efficiency效率刻度
* Resolution分辨率刻度
*/
@TableField(value = "CALTYPE")
private String caltype;
/**
* PHD代表数据来自PHD文件External代表数据来自外部如刻度工具其它文件等
*/
@TableField(value = "INPUT")
private String input;
/**
* 刻度点ID号
*/
@TableField(value = "IDCALPOINT")
private Integer idCalPoint;
@TableField(value = "XVALUE")
private Double xValue;
@TableField(value = "YVALUE")
private Double yValue;
@TableField(value = "DECAY_MODE")
private String decayMode;
/**
* y值不确定度
*/
@TableField(value = "UNCYVALUE")
private Double uncYValue;
@TableField(value = "MODDATE")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date moddate;
}

View File

@ -0,0 +1,119 @@
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 java.io.Serializable;
import java.util.Date;
/**
* 存储数据分析过程中能量分辨率和效率刻度的拟合结果
*/
@Data
@TableName("RNAUTO.GARDS_CALIBRATION_ROI")
public class GardsCalibrationRoi implements Serializable {
/**
* 样品id
*/
@TableField(value = "SAMPLE_ID")
private Integer sampleId;
/**
* 分析ID号
*/
@TableField(value = "IDANALYSIS")
private Integer idAnalysis;
@TableField(value = "ROI_ID")
private Integer roiId;
/**
* Ggamma探测器的数据#g_Bbeta探测器的数据,#b_
*/
@TableField(value = "SAMPLE_TYPE")
private String sampleType;
/**
* energy能量刻度
* efficiency效率刻度
* Resolution分辨率刻度
*/
@TableField(value = "CALTYPE")
private String calType;
/**
* 拟合方程ID号统一定义
*/
@TableField(value = "FUNCTION")
private Integer function;
/**
* 拟合方程描述
*/
@TableField(value = "FUNCTIONDEF")
private String functionDef;
/**
* 拟合的起始值
*/
@TableField(value = "STARTOFRANGE")
private Integer startOfRange;
/**
* 拟合的结束值
*/
@TableField(value = "ENDOFRANGE")
private Integer endOfRange;
/**
* 拟合系数1
*/
@TableField(value = "COEFF1")
private Double coeff1;
/**
* 拟合系数2
*/
@TableField(value = "COEFF2")
private Double coeff2;
/**
* 拟合系数3
*/
@TableField(value = "COEFF3")
private Double coeff3;
/**
* 拟合系数4
*/
@TableField(value = "COEFF4")
private Double coeff4;
/**
* 拟合系数5
*/
@TableField(value = "COEFF5")
private Double coeff5;
/**
* 拟合系数6
*/
@TableField(value = "COEFF6")
private Double coeff6;
/**
* 拟合系数7
*/
@TableField(value = "COEFF7")
private Double coeff7;
/**
* 拟合系数8
*/
@TableField(value = "COEFF8")
private Double coeff8;
/**
* 拟合系数9
*/
@TableField(value = "COEFF9")
private Double coeff9;
@TableField(value = "MODDATE")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date moddate;
@TableField(value = "COEFF_STRING")
private String coeffString;
}

View File

@ -0,0 +1,48 @@
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 java.io.Serializable;
import java.util.Date;
@Data
@TableName("RNAUTO.GARDS_MDC_ROI")
public class GardsMDCRoi implements Serializable {
@TableField(value = "SAMPLE_ID")
private Integer sampleId;
@TableField(value = "IDANALYSIS")
private Integer idAnalysis;
@TableField(value = "ROI_ID")
private Integer roiId;
@TableField(value = "NUCLIDENAME")
private String nuclideName;
@TableField(value = "ENERGY")
private Double energy;
@TableField(value = "YIELD")
private Double yield;
@TableField(value = "EFFICIENCY")
private Double efficiency;
@TableField(value = "MDC")
private String mdc;
@TableField(value = "MDC_ERR")
private String mdcErr;
@TableField(value = "MODDATE")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date moddate;
}

View File

@ -0,0 +1,122 @@
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 java.io.Serializable;
import java.util.Date;
/**
* 存储gamma谱中识别到的核素计算结果
*/
@Data
@TableName("RNAUTO.GARDS_NUCL_IDED_ROI")
public class GardsNuclIdedRoi implements Serializable {
/**
* 样品id
*/
@TableField(value = "SAMPLE_ID")
private Integer sampleId;
/**
* 分析ID号
*/
@TableField(value = "IDANALYSIS")
private Integer idAnalysis;
@TableField(value = "ROI_ID")
private Integer roiId;
/**
* 核素名称
*/
@TableField(value = "NUCLIDENAME")
private String nuclideName;
/**
* 核素类型
*/
@TableField(value = "TYPE")
private String type;
/**
* 核素半衰期
*/
@TableField(value = "HALFLIFE")
private String halflife;
/**
* 平均活度值
*/
@TableField(value = "AVE_ACTIV")
private String aveActiv;
/**
* 平均活度值不确定度
*/
@TableField(value = "AVE_ACTIV_ERR")
private Double aveActivErr;
/**
* 主射线活度值
*/
@TableField(value = "ACTIV_KEY")
private Double activKey;
/**
* 主射线活度值不确定度
*/
@TableField(value = "ACTIV_KEY_ERR")
private Double activKeyErr;
/**
* 核素的最小可探测活度
*/
@TableField(value = "MDA")
private String mda;
/**
* 核素的最小可探测活度不确定度
*/
@TableField(value = "MDA_ERR")
private Double mdaErr;
/**
* 核素识别标志
*/
@TableField(value = "NID_FLAG")
private Integer nidFlag;
@TableField(value = "ACTIV_DECAY")
private Double activDecay;
@TableField(value = "ACTIV_DECAY_ERR")
private Double activDecayErr;
/**
* 符合相加校正因子无设为1
*/
@TableField(value = "CSC_RATIO")
private Double cscRatio;
/**
* 符合相加校正因子不确定度无设为0
*/
@TableField(value = "CSC_RATIO_ERR")
private Double cscRatioErr;
/**
* 活度是否经过符合相加校正
*/
@TableField(value = "CSC_MOD_FLAG")
private Integer cscModFlag;
@TableField(value = "MODDATE")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date moddate;
@TableField(value = "MDC")
private String mdc;
@TableField(value = "CONCENTRATION")
private String concentration;
@TableField(value = "KEY_ENERGY")
private String keyEnergy;
@TableField(value = "KEY_YIELD")
private String keyYield;
}

View File

@ -0,0 +1,126 @@
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 java.io.Serializable;
import java.util.Date;
/**
* 存储gamma谱中识别到的峰计算结果
*/
@Data
@TableName("RNAUTO.GARDS_NUCL_LINES_IDED_ROI")
public class GardsNuclLinesIdedRoi implements Serializable {
/**
* 分析ID号
*/
@TableField(value = "IDANALYSIS")
private Integer idAnalysis;
/**
* 样品id
*/
@TableField(value = "SAMPLE_ID")
private Integer sampleId;
@TableField(value = "ROI_ID")
private Integer roiId;
/**
* 峰序号
*/
@TableField(value = "IDPEAK")
private Integer idPeak;
/**
* 核素名称
*/
@TableField(value = "NUCLIDENAME")
private String nuclideName;
@TableField(value = "MODDATE")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date moddate;
/**
* 核素库中核素对应峰的能量keV
*/
@TableField(value = "ENERGY")
private Double energy;
/**
* 核素库中核素对应峰的能量不确定度keV
*/
@TableField(value = "UNCENERGY")
private Double uncEnergy;
/**
* 核素库中核素对应峰的发射几率
*/
@TableField(value = "ABUNDANCE")
private Double abundance;
/**
* 核素库中核素对应峰的发射几率不确定度
*/
@TableField(value = "UNCABUNDANCE")
private Double uncAbundance;
/**
* 利用该峰计算得到的活度
*/
@TableField(value = "ACTIVITY")
private String activity;
/**
* 利用该峰计算得到的活度不确定度
*/
@TableField(value = "UNCACTIVITY")
private Double uncActivity;
/**
* 该峰处的探测效率
*/
@TableField(value = "EFFIC")
private Double effic;
/**
* 该峰处的探测效率不确定度
*/
@TableField(value = "UNEFFIC")
private Double unEffic;
/**
* 利用该峰计算得到的最小可探测活度
*/
@TableField(value = "MDA")
private Double mda;
/**
* 主射线标识01
*/
@TableField(value = "KEY_FLAG")
private Double keyFlag;
/**
* 符合相加校正因子无设为1
*/
@TableField(value = "CSC_RATIO")
private Double cscRatio;
/**
* 符合相加校正因子不确定度无设为0
*/
@TableField(value = "CSC_RATIO_ERR")
private Double cscRatioErr;
/**
* 活度是否经过符合相加校正
*/
@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,166 @@
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 java.io.Serializable;
import java.util.Date;
/**
* 存储gamma谱的寻峰结果
*/
@Data
@TableName("RNAUTO.GARDS_PEAKS_ROI")
public class GardsPeaksRoi implements Serializable {
/**
* 样品id
*/
@TableField(value = "SAMPLE_ID")
private Integer sampleId;
/**
* 峰序号
*/
@TableField(value = "IDPEAK")
private Integer idPeak;
/**
* 分析ID号
*/
@TableField(value = "IDANALYSIS")
private Integer idAnalysis;
@TableField(value = "ROI_ID")
private Integer roiId;
@TableField(value = "MODDATE")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date moddate;
/**
* 峰中心道道址
*/
@TableField(value = "CENTROIDCHANNEL")
private Double centroidChannel;
/**
* 峰中心道不确定度道址
*/
@TableField(value = "UNCCENTROIDCHANNEL")
private Double uncCentroidChannel;
/**
* 峰中心道能量keV
*/
@TableField(value = "ENERGY")
private Double energy;
/**
* 峰中心道能量不确定度keV
*/
@TableField(value = "UNCENERGY")
private Double uncEnergy;
/**
* 峰面积计数已扣除基线面积但未扣除空白样品计数和探测器本底计数
*/
@TableField(value = "AREA")
private Double area;
/**
* 峰面积不确定度计数
*/
@TableField(value = "UNCAREA")
private Double uncArea;
/**
* 峰的净计数率1/s=峰面积/活时间
*/
@TableField(value = "NETCOUNTRATE")
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,42 @@
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 java.io.Serializable;
import java.util.Date;
@Data
@TableName(value = "RNAUTO.GARDS_QC_CHECK_ROI")
public class GardsQcCheckRoi implements Serializable {
@TableField(value = "SAMPLE_ID")
private Integer sampleId;
@TableField(value = "IDANALYSIS")
private Integer idAnalysis;
@TableField(value = "ROI_ID")
private Integer roiId;
@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

@ -2,14 +2,17 @@ package org.jeecg.modules.spectrum;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.google.common.collect.HashBasedTable;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.collect.Table;
import lombok.Data; import lombok.Data;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -18,6 +21,7 @@ import org.jeecg.common.constant.enums.SpectrumSystemType;
import org.jeecg.common.properties.ParameterProperties; import org.jeecg.common.properties.ParameterProperties;
import org.jeecg.common.properties.SpectrumPathProperties; import org.jeecg.common.properties.SpectrumPathProperties;
import org.jeecg.common.util.*; import org.jeecg.common.util.*;
import org.jeecg.modules.ErrorLogManager;
import org.jeecg.modules.base.bizVo.AttributeItemVo; import org.jeecg.modules.base.bizVo.AttributeItemVo;
import org.jeecg.modules.base.dto.*; import org.jeecg.modules.base.dto.*;
import org.jeecg.modules.base.entity.original.GardsSampleData; import org.jeecg.modules.base.entity.original.GardsSampleData;
@ -26,10 +30,10 @@ import org.jeecg.modules.base.enums.DSType;
import org.jeecg.modules.base.enums.MiddleDataType; import org.jeecg.modules.base.enums.MiddleDataType;
import org.jeecg.modules.base.enums.SpectrumType; import org.jeecg.modules.base.enums.SpectrumType;
import org.jeecg.modules.config.datasource.DataSourceSwitcher; import org.jeecg.modules.config.datasource.DataSourceSwitcher;
import org.jeecg.modules.eneity.event.SpectrumErrorEvent;
import org.jeecg.modules.entity.vo.*; import org.jeecg.modules.entity.vo.*;
import org.jeecg.modules.exception.AnalySpectrumException; import org.jeecg.modules.exception.AnalySpectrumException;
import org.jeecg.modules.exception.CAnalyseException; import org.jeecg.modules.exception.CAnalyseException;
import org.jeecg.modules.exception.GAnalyseException;
import org.jeecg.modules.file.FileOperation; import org.jeecg.modules.file.FileOperation;
import org.jeecg.modules.native_jni.EnergySpectrumHandler; import org.jeecg.modules.native_jni.EnergySpectrumHandler;
import org.jeecg.modules.native_jni.struct.BgBoundary; import org.jeecg.modules.native_jni.struct.BgBoundary;
@ -127,6 +131,8 @@ public class Sample_C_Analysis {
private PHDFile phdFile3; private PHDFile phdFile3;
private PHDFile phdFile4; private PHDFile phdFile4;
private Table<Integer, Integer, GStoreMiddleProcessData> middleDataTable;
public Sample_C_Analysis(AbstractS_D_Q_G_SpectrumHandler spectrumHandler, EnergySpectrumStruct sampleStruct, SpectrumServiceQuotes serviceQuotes, public Sample_C_Analysis(AbstractS_D_Q_G_SpectrumHandler spectrumHandler, EnergySpectrumStruct sampleStruct, SpectrumServiceQuotes serviceQuotes,
GardsSampleData sampleData) { GardsSampleData sampleData) {
this.spectrumHandler = spectrumHandler; this.spectrumHandler = spectrumHandler;
@ -189,19 +195,20 @@ public class Sample_C_Analysis {
Map<String, NuclideLines> nuclideLibs = this.getNuclideLinesG(); Map<String, NuclideLines> nuclideLibs = this.getNuclideLinesG();
//读取参数内容 //读取参数内容
readMDCParameter(phdFile1); Map<String, CalMDCInfo> mdcInfoMap = readMDCParameter(phdFile1, phdFile2, phdFile3, phdFile4);
readMDCParameter(phdFile2);
readMDCParameter(phdFile3);
readMDCParameter(phdFile4);
// 执行分析业务代码 // 执行分析业务代码
boolean analyFlag1 = gammaFileUtil.GetMiddleData(phdFile1, CommonConstant.REPORT_PREFIX_AUTO, nuclideLibs, middleData1, MiddleDataType.Auto.getType(), ""); boolean analyFlag1 = gammaFileUtil.GetMiddleData(phdFile1, CommonConstant.REPORT_PREFIX_AUTO, nuclideLibs, middleData1, MiddleDataType.Auto.getType(), "");
boolean analyFlag2 = gammaFileUtil.GetMiddleData(phdFile2, CommonConstant.REPORT_PREFIX_AUTO, nuclideLibs, middleData2, MiddleDataType.Auto.getType(), ""); boolean analyFlag2 = gammaFileUtil.GetMiddleData(phdFile2, CommonConstant.REPORT_PREFIX_AUTO, nuclideLibs, middleData2, MiddleDataType.Auto.getType(), "");
boolean analyFlag3 = gammaFileUtil.GetMiddleData(phdFile3, CommonConstant.REPORT_PREFIX_AUTO, nuclideLibs, middleData3, MiddleDataType.Auto.getType(), ""); boolean analyFlag3 = gammaFileUtil.GetMiddleData(phdFile3, CommonConstant.REPORT_PREFIX_AUTO, nuclideLibs, middleData3, MiddleDataType.Auto.getType(), "");
boolean analyFlag4 = gammaFileUtil.GetMiddleData(phdFile4, CommonConstant.REPORT_PREFIX_AUTO, nuclideLibs, middleData4, MiddleDataType.Auto.getType(), ""); boolean analyFlag4 = gammaFileUtil.GetMiddleData(phdFile4, CommonConstant.REPORT_PREFIX_AUTO, nuclideLibs, middleData4, MiddleDataType.Auto.getType(), "");
// 数据插入数据库
this.storageDataToDatabase(mdcInfoMap, null,
middleData1, middleData2, middleData3, middleData4);
/*if (analyFlag) { /*if (analyFlag) {
// 数据插入数据库 // 数据插入数据库
this.storageDataToDatabase(phdFile, middleData, phdFile.getQcItems()); this.storageDataToDatabase(mdcInfoMap, null,
middleData1, middleData2, middleData3, middleData4);
// 生成日志文件 // 生成日志文件
writeLog(middleData.getAnalyses_LogPath(), middleData); writeLog(middleData.getAnalyses_LogPath(), middleData);
@ -316,9 +323,11 @@ public class Sample_C_Analysis {
/** /**
* 读取计算MDC参数文件方法 * 读取计算MDC参数文件方法
*/ */
public void readMDCParameter(PHDFile phd) { public Map<String, CalMDCInfo> readMDCParameter(PHDFile... phdFiles) {
//存储文件结果用的map //存储文件结果用的map
Map<String, CalMDCInfo> mdcInfoMap = new TreeMap<>(); Map<String, CalMDCInfo> mdcInfoMap = new TreeMap<>();
if (ArrayUtil.isEmpty(phdFiles)) return mdcInfoMap;
String systemType = phdFiles[0].getHeader().getSystem_type();
//配置文件路径 //配置文件路径
String filePath = parameterProperties.getFilePath()+ File.separator + "MDCParameter.xml"; String filePath = parameterProperties.getFilePath()+ File.separator + "MDCParameter.xml";
try { try {
@ -339,7 +348,7 @@ public class Sample_C_Analysis {
for (int i=0; i<docChildNodes.getLength(); i++) { for (int i=0; i<docChildNodes.getLength(); i++) {
//获取节点信息 //获取节点信息
Node node = docChildNodes.item(i); Node node = docChildNodes.item(i);
if (node.getNodeName().equalsIgnoreCase(phd.getHeader().getSystem_type())) { if (node.getNodeName().equalsIgnoreCase(systemType)) {
NodeList childNodes = node.getChildNodes(); NodeList childNodes = node.getChildNodes();
if (Objects.nonNull(childNodes) && childNodes.getLength() > 0) { if (Objects.nonNull(childNodes) && childNodes.getLength() > 0) {
//遍历子节点信息 //遍历子节点信息
@ -374,16 +383,15 @@ public class Sample_C_Analysis {
} }
} }
} }
if (CollectionUtils.isNotEmpty(mdcInfoMap)) { if (MapUtil.isNotEmpty(mdcInfoMap)) {
phd.setMdcInfoMap(mdcInfoMap); for (PHDFile phdFile : phdFiles) {
phdFile.setMdcInfoMap(mdcInfoMap);
}
} }
} catch (ParserConfigurationException e) { } catch (ParserConfigurationException | IOException | SAXException e) {
throw new RuntimeException(e);
} catch (IOException e) {
throw new RuntimeException(e);
} catch (SAXException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
return mdcInfoMap;
} }
/** /**
@ -413,43 +421,40 @@ public class Sample_C_Analysis {
} }
} }
private void storageDataToDatabase(PHDFile phdFile, GStoreMiddleProcessData middleData, Map<String, QcCheckItem> qcItems){ public void storageDataToDatabase(Map<String, CalMDCInfo> mdcInfoMap, Map<String, QcCheckItem> qcItems, GStoreMiddleProcessData... middleDatas){
//如果数据已经存储不在重复存储 // 如果数据已经存储 不再重复存储
final Integer idAnalysis = serviceQuotes.getAnalysesService().getIdAnalysis(this.sampleData.getSampleId()); final Integer idAnalysisAny = serviceQuotes.getAnalysisRoiAutoService().getIdAnalysisAny(this.sampleData.getSampleId());
if(Objects.nonNull(idAnalysis)){ if(Objects.nonNull(idAnalysisAny)) return;
// log.warn("{} file analysis data has been stored",new File(this.sampleTempFilePath).getName());
return;
}
DataSourceSwitcher.switchToOracle(); DataSourceSwitcher.switchToOracle();
final TransactionStatus transactionStatus = serviceQuotes.getTransactionManager().getTransaction(serviceQuotes.getTransactionDefinition()); final TransactionStatus transactionStatus = serviceQuotes.getTransactionManager().getTransaction(serviceQuotes.getTransactionDefinition());
try { try {
Integer sampleId = this.sampleData.getSampleId(); Integer sampleId = this.sampleData.getSampleId();
// 保存分析结果 ==> INSERT INTO RNAUTO.GARDS_ANALYSES // 保存分析结果 ==> INSERT INTO RNAUTO.GARDS_ANALYSES
saveAnalysis(middleData, sampleId); saveAnalysisROI(sampleId, middleDatas);
// 获取分析结果ID ==> SELECT IDANALYSIS // 获取Table IdAnalysis:RoiId:GStoreMiddleProcessData
Integer IdAnalysis = getIdAnalysis(sampleId); middleDataTable(sampleId, middleDatas);
// 修改保存结果状态 ==> UPDATE ORIGINAL.GARDS_SAMPLE_DATA // 修改保存结果状态 ==> UPDATE ORIGINAL.GARDS_SAMPLE_DATA
// serviceQuotes.getSampleDataService().updateStatus(null,null); // serviceQuotes.getSampleDataService().updateStatus(null,null);
/* GARDS_CALIBRATION_PAIRS 数据表保存 */ /* GARDS_CALIBRATION_PAIRS_ROI 数据表保存 */
saveCalibrationPairs(middleData, sampleId, IdAnalysis); saveCalibrationPairsROI(sampleId);
/* GARDS_CALIBRATION 数据表保存 */ /* GARDS_CALIBRATION_ROI 数据表保存 */
saveCalibration(middleData, sampleId, IdAnalysis); saveCalibrationROI(sampleId);
/* Gards_Peaks 数据表保存 */ /* Gards_Peaks_ROI 数据表保存 */
savePeaks(middleData, sampleId, IdAnalysis); savePeaksROI(sampleId);
/* Gards_Nucl_Lines_Ided 数据表保存 */ /* Gards_Nucl_Lines_Ided_ROI 数据表保存 */
saveNuclLinesIded(middleData, sampleId, IdAnalysis); saveNuclLinesIdedROI(sampleId);
/* Gards_Nucl_Ided 数据表保存 */ /* Gards_Nucl_Ided_ROI 数据表保存 */
saveNuclIded(middleData, sampleId, IdAnalysis); saveNuclIdedROI(sampleId);
/* Gards_Qc_Check 数据表保存 */ /* Gards_Qc_Check_ROI 数据表保存 */
saveQcCheck(middleData, sampleId, IdAnalysis, qcItems); // saveQcCheckROI(sampleId, qcItems);
/* GARDS_MDC 数据表保存 */ /* GARDS_MDC_ROI 数据表保存 */
saveMDC(sampleId, IdAnalysis, phdFile.getMdcInfoMap()); saveMDCROI(sampleId, mdcInfoMap);
//提交事务 //提交事务
serviceQuotes.getTransactionManager().commit(transactionStatus); serviceQuotes.getTransactionManager().commit(transactionStatus);
} catch (Exception e) { } catch (Exception e) {
//设置分析数据存储失败标记 // 设置分析数据存储失败标记
// this.parsingProcessLog.setAnalysisDataStoreFlag(false); // this.parsingProcessLog.setAnalysisDataStoreFlag(false);
//回滚事务 // 回滚事务
serviceQuotes.getTransactionManager().rollback(transactionStatus); serviceQuotes.getTransactionManager().rollback(transactionStatus);
throw e; throw e;
} finally { } finally {
@ -732,31 +737,60 @@ public class Sample_C_Analysis {
} }
} }
public void saveAnalysis(GStoreMiddleProcessData middleData,Integer sampleId){ public void saveAnalysisROI(Integer sampleId, GStoreMiddleProcessData... middleDatas){
GardsAnalyses analysis = toAnalysis(middleData); List<GardsAnalysisRoi> analysisRois = new ArrayList<>();
analysis.setSampleId(sampleId); for (GStoreMiddleProcessData middleData : middleDatas) {
serviceQuotes.getAnalysesService().save(analysis); GardsAnalysisRoi analysisRoi = new GardsAnalysisRoi();
analysisRoi.setSampleId(sampleId);
analysisRoi.setPhdPath(this.spectrumHandler.spectrumFileRelativePath);
analysisRoi.setBaselinePath(middleData.getAnalyses_baseline_filePath());
analysisRoi.setLcPath(middleData.getAnalyses_lc_filePath());
analysisRoi.setScacPath(middleData.getAnalyses_scac_filePath());
analysisRoi.setLogPath(middleData.getAnalyses_LogPath());
analysisRoi.setReportPath(middleData.getAnalyses_ReportPath());
analysisRois.add(analysisRoi);
}
// ROI 相关列值赋值
List<String> roiNumber = this.sampleStruct.ROI_number;
for (int i = 0; i < roiNumber.size(); i++) {
GardsAnalysisRoi analysisRoi = analysisRois.get(i);
analysisRoi.setRoiNum(Integer.valueOf(roiNumber.get(i)));
analysisRoi.setMinX(this.sampleStruct.POI_B_x1.get(i));
analysisRoi.setMaxX(this.sampleStruct.POI_B_x2.get(i));
analysisRoi.setMinY(this.sampleStruct.POI_G_y1.get(i));
analysisRoi.setMaxY(this.sampleStruct.POI_G_y2.get(i));
}
serviceQuotes.getAnalysisRoiAutoService().saveBatch(analysisRois);
} }
public Integer getIdAnalysis(Integer sampleId){ public void middleDataTable(Integer sampleId, GStoreMiddleProcessData... middleDatas){
return serviceQuotes.getAnalysesService().getIdAnalysis(sampleId); List<GardsAnalysisRoi> analysisRois = serviceQuotes.getAnalysisRoiAutoService().analysisRoi(sampleId);
Table<Integer, Integer, GStoreMiddleProcessData> middleDataTable = HashBasedTable.create();
for (int i = 0; i < analysisRois.size(); i++) {
GardsAnalysisRoi analysisRoi = analysisRois.get(i);
Integer idAnalysis = analysisRoi.getIdAnalysis();
Integer roiId = analysisRoi.getRoiId();
middleDataTable.put(idAnalysis, roiId, middleDatas[i]);
}
this.middleDataTable = middleDataTable;
} }
public void saveCalibrationPairs(GStoreMiddleProcessData middleData, public List<GardsCalibrationPairsRoi> saveCalibrationPairsROI(Integer sampleId, Integer IdAnalysis,
Integer sampleId, Integer IdAnalysis){ Integer roiId, GStoreMiddleProcessData middleData){
String pairsSampleType = middleData.getCalibration_pairs_sample_type(); String pairsSampleType = middleData.getCalibration_pairs_sample_type();
GardsCalibrationPairs pairs = new GardsCalibrationPairs(); GardsCalibrationPairsRoi pairs = new GardsCalibrationPairsRoi();
// GARDS_CALIBRATION_PAIRS (Energy) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION_PAIRS // GARDS_CALIBRATION_PAIRS (Energy) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION_PAIRS
String base_E_Paris = "calibration_pairs_E_idCalPoint"; String base_E_Paris = "calibration_pairs_E_idCalPoint";
PairsEDto pairsEDto = new PairsEDto(); PairsEDto pairsEDto = new PairsEDto();
BeanUtil.copyProperties(middleData,pairsEDto); BeanUtil.copyProperties(middleData, pairsEDto);
List<GardsCalibrationPairs> pairsE = Lists.newArrayList(); List<GardsCalibrationPairsRoi> pairsE = Lists.newArrayList();
if (pairsEDto.getCalibration_pairs_E_idCalPoint().size() > 0) { if (pairsEDto.getCalibration_pairs_E_idCalPoint().size() > 0) {
pairsE = mapFields(pairsEDto, pairs, base_E_Paris, fieldMap); pairsE = mapFields(pairsEDto, pairs, base_E_Paris, fieldMap);
String pairsECaltype = middleData.getCalibration_pairs_E_Caltype(); String pairsECaltype = middleData.getCalibration_pairs_E_Caltype();
String pairsEInput = middleData.getCalibration_pairs_E_Input(); String pairsEInput = middleData.getCalibration_pairs_E_Input();
for (GardsCalibrationPairs onePairs : pairsE) { for (GardsCalibrationPairsRoi onePairs : pairsE) {
onePairs.setSampleId(sampleId); onePairs.setSampleId(sampleId);
onePairs.setRoiId(roiId);
onePairs.setIdAnalysis(IdAnalysis); onePairs.setIdAnalysis(IdAnalysis);
onePairs.setSampleType(pairsSampleType); onePairs.setSampleType(pairsSampleType);
onePairs.setCaltype(pairsECaltype); onePairs.setCaltype(pairsECaltype);
@ -766,14 +800,15 @@ public class Sample_C_Analysis {
// GARDS_CALIBRATION_PAIRS (Efficiency) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION_PAIRS // GARDS_CALIBRATION_PAIRS (Efficiency) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION_PAIRS
String base_EF_Paris = "calibration_pairs_EF_idCalPoint"; String base_EF_Paris = "calibration_pairs_EF_idCalPoint";
PairsEFDto pairsEFDto = new PairsEFDto(); PairsEFDto pairsEFDto = new PairsEFDto();
BeanUtil.copyProperties(middleData,pairsEFDto); BeanUtil.copyProperties(middleData, pairsEFDto);
List<GardsCalibrationPairs> pairsEF = Lists.newArrayList(); List<GardsCalibrationPairsRoi> pairsEF = Lists.newArrayList();
if (pairsEFDto.getCalibration_pairs_EF_idCalPoint().size() > 0) { if (pairsEFDto.getCalibration_pairs_EF_idCalPoint().size() > 0) {
pairsEF = mapFields(pairsEFDto, pairs, base_EF_Paris, fieldMap); pairsEF = mapFields(pairsEFDto, pairs, base_EF_Paris, fieldMap);
String pairsEFCaltype = middleData.getCalibration_pairs_EF_Caltype(); String pairsEFCaltype = middleData.getCalibration_pairs_EF_Caltype();
String pairsEFInput = middleData.getCalibration_pairs_EF_Input(); String pairsEFInput = middleData.getCalibration_pairs_EF_Input();
for (GardsCalibrationPairs onePairs : pairsEF) { for (GardsCalibrationPairsRoi onePairs : pairsEF) {
onePairs.setSampleId(sampleId); onePairs.setSampleId(sampleId);
onePairs.setRoiId(roiId);
onePairs.setIdAnalysis(IdAnalysis); onePairs.setIdAnalysis(IdAnalysis);
onePairs.setSampleType(pairsSampleType); onePairs.setSampleType(pairsSampleType);
onePairs.setCaltype(pairsEFCaltype); onePairs.setCaltype(pairsEFCaltype);
@ -784,13 +819,14 @@ public class Sample_C_Analysis {
String base_R_Paris = "calibration_pairs_R_idCalPoint"; String base_R_Paris = "calibration_pairs_R_idCalPoint";
PairsRDto pairsRDto = new PairsRDto(); PairsRDto pairsRDto = new PairsRDto();
BeanUtil.copyProperties(middleData,pairsRDto); BeanUtil.copyProperties(middleData,pairsRDto);
List<GardsCalibrationPairs> pairsR = Lists.newArrayList(); List<GardsCalibrationPairsRoi> pairsR = Lists.newArrayList();
if (pairsRDto.getCalibration_pairs_R_idCalPoint().size() > 0) { if (pairsRDto.getCalibration_pairs_R_idCalPoint().size() > 0) {
pairsR = mapFields(pairsRDto, pairs, base_R_Paris, fieldMap); pairsR = mapFields(pairsRDto, pairs, base_R_Paris, fieldMap);
String pairsRCaltype = middleData.getCalibration_pairs_R_Caltype(); String pairsRCaltype = middleData.getCalibration_pairs_R_Caltype();
String pairsRInput = middleData.getCalibration_pairs_R_Input(); String pairsRInput = middleData.getCalibration_pairs_R_Input();
for (GardsCalibrationPairs onePairs : pairsR) { for (GardsCalibrationPairsRoi onePairs : pairsR) {
onePairs.setSampleId(sampleId); onePairs.setSampleId(sampleId);
onePairs.setRoiId(roiId);
onePairs.setIdAnalysis(IdAnalysis); onePairs.setIdAnalysis(IdAnalysis);
onePairs.setSampleType(pairsSampleType); onePairs.setSampleType(pairsSampleType);
onePairs.setCaltype(pairsRCaltype); onePairs.setCaltype(pairsRCaltype);
@ -801,13 +837,14 @@ public class Sample_C_Analysis {
String base_T_Paris = "calibration_pairs_T_idCalPoint"; String base_T_Paris = "calibration_pairs_T_idCalPoint";
PairsTDto pairsTDto = new PairsTDto(); PairsTDto pairsTDto = new PairsTDto();
BeanUtil.copyProperties(middleData,pairsTDto); BeanUtil.copyProperties(middleData,pairsTDto);
List<GardsCalibrationPairs> pairsT = Lists.newArrayList(); List<GardsCalibrationPairsRoi> pairsT = Lists.newArrayList();
if (pairsTDto.getCalibration_pairs_T_idCalPoint().size() > 0) { if (pairsTDto.getCalibration_pairs_T_idCalPoint().size() > 0) {
pairsT = mapFields(pairsTDto, pairs, base_T_Paris, fieldMap); pairsT = mapFields(pairsTDto, pairs, base_T_Paris, fieldMap);
String pairsTCaltype = middleData.getCalibration_pairs_T_Caltype(); String pairsTCaltype = middleData.getCalibration_pairs_T_Caltype();
String pairsTInput = middleData.getCalibration_pairs_T_Input(); String pairsTInput = middleData.getCalibration_pairs_T_Input();
for (GardsCalibrationPairs onePairs : pairsT) { for (GardsCalibrationPairsRoi onePairs : pairsT) {
onePairs.setSampleId(sampleId); onePairs.setSampleId(sampleId);
onePairs.setRoiId(roiId);
onePairs.setIdAnalysis(IdAnalysis); onePairs.setIdAnalysis(IdAnalysis);
onePairs.setSampleType(pairsSampleType); onePairs.setSampleType(pairsSampleType);
onePairs.setCaltype(pairsTCaltype); onePairs.setCaltype(pairsTCaltype);
@ -815,23 +852,37 @@ public class Sample_C_Analysis {
} }
} }
// GARDS_CALIBRATION_PAIRS 汇总保存 // GARDS_CALIBRATION_PAIRS 汇总保存
List<GardsCalibrationPairs> allPairs = new ArrayList<>(); List<GardsCalibrationPairsRoi> allPairs = new ArrayList<>();
allPairs.addAll(pairsE);allPairs.addAll(pairsEF); allPairs.addAll(pairsE);allPairs.addAll(pairsEF);
allPairs.addAll(pairsR);allPairs.addAll(pairsT); allPairs.addAll(pairsR);allPairs.addAll(pairsT);
serviceQuotes.getGardsCalibrationPairsService().saveBatch(allPairs); return allPairs;
} }
public void saveCalibration(GStoreMiddleProcessData middleData,
Integer sampleId, Integer IdAnalysis){ public void saveCalibrationPairsROI(Integer sampleId){
List<GardsCalibrationPairsRoi> pairsRois = new ArrayList<>();
Set<Table.Cell<Integer, Integer, GStoreMiddleProcessData>> cells = this.middleDataTable.cellSet();
for (Table.Cell<Integer, Integer, GStoreMiddleProcessData> cell : cells) {
Integer IdAnalysis = cell.getRowKey();
Integer roiId = cell.getColumnKey();
GStoreMiddleProcessData middleData = cell.getValue();
pairsRois.addAll(saveCalibrationPairsROI(sampleId, IdAnalysis, roiId, middleData));
}
this.serviceQuotes.getCalibrationPairsRoiAutoService().saveBatch(pairsRois);
}
public List<GardsCalibrationRoi> saveCalibrationROI(Integer sampleId, Integer IdAnalysis, Integer roiId,
GStoreMiddleProcessData middleData){
String calibrationSampleType = middleData.getCalibration_sample_type(); String calibrationSampleType = middleData.getCalibration_sample_type();
List<String> pairsEIdCalPoint = middleData.getCalibration_pairs_E_idCalPoint(); List<String> pairsEIdCalPoint = middleData.getCalibration_pairs_E_idCalPoint();
List<String> pairsEFIdCalPoint = middleData.getCalibration_pairs_EF_idCalPoint(); List<String> pairsEFIdCalPoint = middleData.getCalibration_pairs_EF_idCalPoint();
List<String> pairsRIdCalPoint = middleData.getCalibration_pairs_R_idCalPoint(); List<String> pairsRIdCalPoint = middleData.getCalibration_pairs_R_idCalPoint();
List<String> pairsTIdCalPoint = middleData.getCalibration_pairs_T_idCalPoint(); List<String> pairsTIdCalPoint = middleData.getCalibration_pairs_T_idCalPoint();
List<GardsCalibration> calibrations = new ArrayList<>(); List<GardsCalibrationRoi> calibrations = new ArrayList<>();
// GARDS_CALIBRATION (E) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION // GARDS_CALIBRATION (E) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION
if (CollUtil.isNotEmpty(pairsEIdCalPoint)){ if (CollUtil.isNotEmpty(pairsEIdCalPoint)){
GardsCalibration calibration = new GardsCalibration(); GardsCalibrationRoi calibration = new GardsCalibrationRoi();
calibration.setSampleId(sampleId); calibration.setSampleId(sampleId);
calibration.setRoiId(roiId);
calibration.setIdAnalysis(IdAnalysis); calibration.setIdAnalysis(IdAnalysis);
calibration.setSampleType(calibrationSampleType); calibration.setSampleType(calibrationSampleType);
calibration.setCalType(middleData.getCalibration_E_Caltype()); calibration.setCalType(middleData.getCalibration_E_Caltype());
@ -845,8 +896,9 @@ public class Sample_C_Analysis {
} }
// GARDS_CALIBRATION (EF) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION // GARDS_CALIBRATION (EF) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION
if (CollUtil.isNotEmpty(pairsEFIdCalPoint)){ if (CollUtil.isNotEmpty(pairsEFIdCalPoint)){
GardsCalibration calibration = new GardsCalibration(); GardsCalibrationRoi calibration = new GardsCalibrationRoi();
calibration.setSampleId(sampleId); calibration.setSampleId(sampleId);
calibration.setRoiId(roiId);
calibration.setIdAnalysis(IdAnalysis); calibration.setIdAnalysis(IdAnalysis);
calibration.setSampleType(calibrationSampleType); calibration.setSampleType(calibrationSampleType);
String efCaltype = middleData.getCalibration_EF_Caltype(); String efCaltype = middleData.getCalibration_EF_Caltype();
@ -866,8 +918,9 @@ public class Sample_C_Analysis {
} }
// GARDS_CALIBRATION (R) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION // GARDS_CALIBRATION (R) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION
if (CollUtil.isNotEmpty(pairsRIdCalPoint)){ if (CollUtil.isNotEmpty(pairsRIdCalPoint)){
GardsCalibration calibration = new GardsCalibration(); GardsCalibrationRoi calibration = new GardsCalibrationRoi();
calibration.setSampleId(sampleId); calibration.setSampleId(sampleId);
calibration.setRoiId(roiId);
calibration.setIdAnalysis(IdAnalysis); calibration.setIdAnalysis(IdAnalysis);
calibration.setSampleType(calibrationSampleType); calibration.setSampleType(calibrationSampleType);
String rCaltype = middleData.getCalibration_R_Caltype(); String rCaltype = middleData.getCalibration_R_Caltype();
@ -887,8 +940,9 @@ public class Sample_C_Analysis {
} }
// GARDS_CALIBRATION (T) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION // GARDS_CALIBRATION (T) ==> INSERT INTO RNAUTO.GARDS_CALIBRATION
if (CollUtil.isNotEmpty(pairsTIdCalPoint)){ if (CollUtil.isNotEmpty(pairsTIdCalPoint)){
GardsCalibration calibration = new GardsCalibration(); GardsCalibrationRoi calibration = new GardsCalibrationRoi();
calibration.setSampleId(sampleId); calibration.setSampleId(sampleId);
calibration.setRoiId(roiId);
calibration.setIdAnalysis(IdAnalysis); calibration.setIdAnalysis(IdAnalysis);
calibration.setSampleType(calibrationSampleType); calibration.setSampleType(calibrationSampleType);
String tCaltype = middleData.getCalibration_T_Caltype(); String tCaltype = middleData.getCalibration_T_Caltype();
@ -906,71 +960,122 @@ public class Sample_C_Analysis {
calibration.setModdate(new Date()); calibration.setModdate(new Date());
calibrations.add(calibration); calibrations.add(calibration);
} }
if (calibrations.size() > 0) { return calibrations;
serviceQuotes.getGardsCalibrationService().createBatch(calibrations);
}
} }
public void savePeaks(GStoreMiddleProcessData middleData,Integer sampleId, Integer IdAnalysis){ public void saveCalibrationROI(Integer sampleId){
// Gards_Peaks数据表 ==> INSERT INTO RNAUTO.GARDS_PEAKS List<GardsCalibrationRoi> calibrationRois = new ArrayList<>();
Set<Table.Cell<Integer, Integer, GStoreMiddleProcessData>> cells = this.middleDataTable.cellSet();
for (Table.Cell<Integer, Integer, GStoreMiddleProcessData> cell : cells) {
Integer IdAnalysis = cell.getRowKey();
Integer roiId = cell.getColumnKey();
GStoreMiddleProcessData middleData = cell.getValue();
calibrationRois.addAll(saveCalibrationROI(sampleId, IdAnalysis, roiId, middleData));
}
this.serviceQuotes.getCalibrationRoiAutoService().createBatch(calibrationRois);
}
public List<GardsPeaksRoi> savePeaksROI(Integer sampleId, Integer IdAnalysis,
Integer roiId, GStoreMiddleProcessData middleData){
// Gards_Peaks_ROI数据表 ==> INSERT INTO RNAUTO.GARDS_PEAKS_ROI
String base_P_IdPeak = "peaks_idPeak"; String base_P_IdPeak = "peaks_idPeak";
GardsPeaksDto gardsPeaksDto = new GardsPeaksDto(); GardsPeaksDto gardsPeaksDto = new GardsPeaksDto();
BeanUtil.copyProperties(middleData,gardsPeaksDto); BeanUtil.copyProperties(middleData, gardsPeaksDto);
GardsPeaks gardsPeaks = new GardsPeaks(); GardsPeaksRoi peak = new GardsPeaksRoi();
if (gardsPeaksDto.getPeaks_idPeak().size() > 0) { List<GardsPeaksRoi> peaks = new ArrayList<>();
List<GardsPeaks> peaks = mapFields(gardsPeaksDto, gardsPeaks, base_P_IdPeak, fieldMap); if (CollUtil.isNotEmpty(gardsPeaksDto.getPeaks_idPeak())) {
peaks.forEach(ided -> { peaks = mapFields(gardsPeaksDto, peak, base_P_IdPeak, fieldMap);
ided.setSampleId(sampleId); peaks.forEach(item -> {
ided.setIdAnalysis(IdAnalysis); item.setRoiId(roiId);
item.setSampleId(sampleId);
item.setIdAnalysis(IdAnalysis);
}); });
serviceQuotes.getGardsPeaksAutoService().saveBatch(peaks);
} }
return peaks;
} }
public void saveNuclLinesIded(GStoreMiddleProcessData middleData, public void savePeaksROI(Integer sampleId){
Integer sampleId, Integer IdAnalysis){ List<GardsPeaksRoi> peaksRois = new ArrayList<>();
Set<Table.Cell<Integer, Integer, GStoreMiddleProcessData>> cells = this.middleDataTable.cellSet();
for (Table.Cell<Integer, Integer, GStoreMiddleProcessData> cell : cells) {
Integer IdAnalysis = cell.getRowKey();
Integer roiId = cell.getColumnKey();
GStoreMiddleProcessData middleData = cell.getValue();
peaksRois.addAll(savePeaksROI(sampleId, IdAnalysis, roiId, middleData));
}
this.serviceQuotes.getPeaksRoiAutoService().saveBatch(peaksRois);
}
public List<GardsNuclLinesIdedRoi> saveNuclLinesIdedROI(Integer sampleId, Integer IdAnalysis, Integer roiId,
GStoreMiddleProcessData middleData){
// Gards_Nucl_Lines_Ided数据表 ==> INSERT INTO RNAUTO.GARDS_NUCL_LINES_IDED // Gards_Nucl_Lines_Ided数据表 ==> INSERT INTO RNAUTO.GARDS_NUCL_LINES_IDED
Map<String, GStoreMiddleProcessDataNuclLinesIded> nuclLinesIdedData = middleData.getNucl_lines_ided_data(); Map<String, GStoreMiddleProcessDataNuclLinesIded> nuclLinesIdedData = middleData.getNucl_lines_ided_data();
String base_IdPeak = "idPeak"; String base_IdPeak = "idPeak";
List<GardsNuclLinesIded> allNuclLinesIdeds = new ArrayList<>(); List<GardsNuclLinesIdedRoi> allNuclLinesIdeds = new ArrayList<>();
for (Map.Entry<String, GStoreMiddleProcessDataNuclLinesIded> entry : nuclLinesIdedData.entrySet()) { for (Map.Entry<String, GStoreMiddleProcessDataNuclLinesIded> entry : nuclLinesIdedData.entrySet()) {
String nuclideName = entry.getKey(); String nuclideName = entry.getKey();
GStoreMiddleProcessDataNuclLinesIded nuclLinesIded = entry.getValue(); GStoreMiddleProcessDataNuclLinesIded nuclLinesIded = entry.getValue();
GardsNuclLinesIded gardsNuclLinesIded = new GardsNuclLinesIded(); GardsNuclLinesIdedRoi linesIdedRoi = new GardsNuclLinesIdedRoi();
List<GardsNuclLinesIded> gardsNuclLinesIdeds = mapFields(nuclLinesIded, gardsNuclLinesIded, base_IdPeak, fieldMap); List<GardsNuclLinesIdedRoi> linesIdedRois = mapFields(nuclLinesIded, linesIdedRoi, base_IdPeak, fieldMap);
if (CollUtil.isNotEmpty(gardsNuclLinesIdeds)){ if (CollUtil.isNotEmpty(linesIdedRois)){
for (GardsNuclLinesIded ided : gardsNuclLinesIdeds) { for (GardsNuclLinesIdedRoi idedRoi : linesIdedRois) {
ided.setSampleId(sampleId); idedRoi.setRoiId(roiId);
ided.setIdAnalysis(IdAnalysis); idedRoi.setSampleId(sampleId);
ided.setNuclideName(nuclideName); idedRoi.setIdAnalysis(IdAnalysis);
idedRoi.setNuclideName(nuclideName);
} }
allNuclLinesIdeds.addAll(gardsNuclLinesIdeds); allNuclLinesIdeds.addAll(linesIdedRois);
} }
} }
serviceQuotes.getGardsNuclLinesIdedAutoService().saveBatch(allNuclLinesIdeds); return allNuclLinesIdeds;
} }
public void saveNuclIded(GStoreMiddleProcessData middleData, public void saveNuclLinesIdedROI(Integer sampleId){
Integer sampleId, Integer IdAnalysis){ List<GardsNuclLinesIdedRoi> linesIdedRois = new ArrayList<>();
Set<Table.Cell<Integer, Integer, GStoreMiddleProcessData>> cells = this.middleDataTable.cellSet();
for (Table.Cell<Integer, Integer, GStoreMiddleProcessData> cell : cells) {
Integer IdAnalysis = cell.getRowKey();
Integer roiId = cell.getColumnKey();
GStoreMiddleProcessData middleData = cell.getValue();
linesIdedRois.addAll(saveNuclLinesIdedROI(sampleId, IdAnalysis, roiId, middleData));
}
this.serviceQuotes.getNuclLinesIdedRoiAutoService().saveBatch(linesIdedRois);
}
public List<GardsNuclIdedRoi> saveNuclIdedROI(Integer sampleId, Integer IdAnalysis,
Integer roiId, GStoreMiddleProcessData middleData){
// Gards_Nucl_Ided数据表 ==> INSERT INTO RNAUTO.GARDS_NUCL_IDED // Gards_Nucl_Ided数据表 ==> INSERT INTO RNAUTO.GARDS_NUCL_IDED
GardsNuclIdedDto gardsNuclIdedDto = new GardsNuclIdedDto(); GardsNuclIdedDto nuclIdedDto = new GardsNuclIdedDto();
GardsNuclIded gardsNuclIded = new GardsNuclIded(); GardsNuclIdedRoi nuclIdedRoi = new GardsNuclIdedRoi();
BeanUtil.copyProperties(middleData,gardsNuclIdedDto); BeanUtil.copyProperties(middleData, nuclIdedDto);
if (!gardsNuclIdedDto.getNucl_ided_Nuclidename().isEmpty()) { List<GardsNuclIdedRoi> nuclIdedRois = new ArrayList<>();
if (CollUtil.isNotEmpty(nuclIdedDto.getNucl_ided_Nuclidename())) {
String base_NuclideName = "nucl_ided_Nuclidename"; String base_NuclideName = "nucl_ided_Nuclidename";
List<GardsNuclIded> gardsNuclIdeds = nuclIdedRois = mapFields(nuclIdedDto, nuclIdedRoi, base_NuclideName, fieldMap);
mapFields(gardsNuclIdedDto, gardsNuclIded, base_NuclideName, fieldMap); for (GardsNuclIdedRoi idedRoi : nuclIdedRois) {
for (GardsNuclIded ided : gardsNuclIdeds) { idedRoi.setRoiId(roiId);
ided.setSampleId(sampleId); idedRoi.setSampleId(sampleId);
ided.setIdAnalysis(IdAnalysis); idedRoi.setIdAnalysis(IdAnalysis);
} }
serviceQuotes.getGardsNuclIdedAutoService().saveBatch(gardsNuclIdeds);
} }
// serviceQuotes.get return nuclIdedRois;
} }
public void saveQcCheck(GStoreMiddleProcessData middleData, public void saveNuclIdedROI(Integer sampleId){
Integer sampleId, Integer IdAnalysis,Map<String, QcCheckItem> qcItems){ List<GardsNuclIdedRoi> idedRois = new ArrayList<>();
Set<Table.Cell<Integer, Integer, GStoreMiddleProcessData>> cells = this.middleDataTable.cellSet();
for (Table.Cell<Integer, Integer, GStoreMiddleProcessData> cell : cells) {
Integer IdAnalysis = cell.getRowKey();
Integer roiId = cell.getColumnKey();
GStoreMiddleProcessData middleData = cell.getValue();
idedRois.addAll(saveNuclIdedROI(sampleId, IdAnalysis, roiId, middleData));
}
this.serviceQuotes.getNuclIdedRoiAutoService().saveBatch(idedRois);
}
public void saveQcCheckROI(Integer sampleId, Integer IdAnalysis, Integer roiId,
Map<String, QcCheckItem> qcItems,
GStoreMiddleProcessData middleData){
// Gards_Qc_Check数据表 ==> INSERT INTO RNAUTO.GARDS_QC_CHECK // Gards_Qc_Check数据表 ==> INSERT INTO RNAUTO.GARDS_QC_CHECK
if (MapUtil.isNotEmpty(qcItems)){ if (MapUtil.isNotEmpty(qcItems)){
String base_QC = String.valueOf(qcItems.size()); String base_QC = String.valueOf(qcItems.size());
@ -988,33 +1093,48 @@ public class Sample_C_Analysis {
} }
} }
public void saveMDC(Integer sampleId, Integer IdAnalysis, Map<String, CalMDCInfo> mdcInfoMap) { public void saveQcCheckROI(Integer sampleId, Map<String, QcCheckItem> qcItems){
List<GardsMDC> mdcList = new LinkedList<>();
if (CollectionUtils.isNotEmpty(mdcInfoMap)) { }
for (CalMDCInfo mdcInfo :mdcInfoMap.values()) {
if (Objects.nonNull(mdcInfo.getEnergy()) && Objects.nonNull(mdcInfo.getYield()) && Objects.nonNull(mdcInfo.getEfficiency())) { public List<GardsMDCRoi> saveMDCROI(Integer sampleId, Integer IdAnalysis,
GardsMDC mdc = new GardsMDC(); Integer roiId, Map<String, CalMDCInfo> mdcInfoMap) {
mdc.setIdAnalysis(IdAnalysis); List<GardsMDCRoi> mdcRois = new LinkedList<>();
mdc.setSampleId(sampleId); for (CalMDCInfo mdcInfo :mdcInfoMap.values()) {
mdc.setNuclideName(mdcInfo.getNuclideName()); if (ObjectUtil.isNull(mdcInfo)) continue;
mdc.setEnergy(mdcInfo.getEnergy()); if (Objects.nonNull(mdcInfo.getEnergy()) && Objects.nonNull(mdcInfo.getYield())
mdc.setYield(mdcInfo.getYield()); && Objects.nonNull(mdcInfo.getEfficiency())) {
mdc.setEfficiency(mdcInfo.getEfficiency()); GardsMDCRoi mdcRoi = new GardsMDCRoi();
if (Objects.nonNull(mdcInfo.getMdc()) && Double.isFinite(mdcInfo.getMdc())) { mdcRoi.setRoiId(roiId);
mdc.setMdc(String.valueOf(mdcInfo.getMdc())); mdcRoi.setSampleId(sampleId);
} else { mdcRoi.setIdAnalysis(IdAnalysis);
mdc.setMdc(null); mdcRoi.setNuclideName(mdcInfo.getNuclideName());
} mdcRoi.setEnergy(mdcInfo.getEnergy());
mdc.setMdcErr(null); mdcRoi.setYield(mdcInfo.getYield());
mdcList.add(mdc); mdcRoi.setEfficiency(mdcInfo.getEfficiency());
if (Objects.nonNull(mdcInfo.getMdc()) && Double.isFinite(mdcInfo.getMdc())) {
mdcRoi.setMdc(String.valueOf(mdcInfo.getMdc()));
} else {
mdcRoi.setMdc(null);
} }
mdcRoi.setMdcErr(null);
mdcRois.add(mdcRoi);
} }
} }
if (CollectionUtils.isNotEmpty(mdcList)) { return mdcRois;
serviceQuotes.getGardsMDCAutoService().saveBatch(mdcList);
}
} }
public void saveMDCROI(Integer sampleId, Map<String, CalMDCInfo> mdcInfoMap){
List<GardsMDCRoi> mdcRois = new ArrayList<>();
Set<Table.Cell<Integer, Integer, GStoreMiddleProcessData>> cells = this.middleDataTable.cellSet();
for (Table.Cell<Integer, Integer, GStoreMiddleProcessData> cell : cells) {
Integer IdAnalysis = cell.getRowKey();
Integer roiId = cell.getColumnKey();
mdcRois.addAll(saveMDCROI(sampleId, IdAnalysis, roiId, mdcInfoMap));
}
this.serviceQuotes.getMdcRoiAutoService().saveBatch(mdcRois);
}
public Map<String, NuclideLines> getNuclideLinesG() { public Map<String, NuclideLines> getNuclideLinesG() {
redisUtil = ApplicationContextUtil.getContext().getBean(RedisUtil.class); redisUtil = ApplicationContextUtil.getContext().getBean(RedisUtil.class);
Object nuclideLibs = redisUtil.get(RedisConstant.NUCLIDE_LINES_LIB + "G"); Object nuclideLibs = redisUtil.get(RedisConstant.NUCLIDE_LINES_LIB + "G");
@ -1173,35 +1293,6 @@ public class Sample_C_Analysis {
} }
} }
private GardsAnalyses toAnalysis(GStoreMiddleProcessData middleData){
GardsAnalyses gardsAnalyses = new GardsAnalyses();
String dateTime = DateConstant.DATE_BIAS_TIME;
String analysisBegin = middleData.getAnalyses_analysisBegin();
Date analysis_Begin = DateUtil.parse(analysisBegin, dateTime)
.toJdkDate();
gardsAnalyses.setAnalysisBegin(analysis_Begin);
String analysisEnd = middleData.getAnalyses_analysisEnd();
Date analysis_End = DateUtil.parse(analysisEnd, dateTime)
.toJdkDate();
gardsAnalyses.setAnalysisEnd(analysis_End);
gardsAnalyses.setType(middleData.getAnalyses_type());
gardsAnalyses.setSoftware(middleData.getAnalyses_software());
gardsAnalyses.setSwVersion(middleData.getAnalyses_swVersion());
gardsAnalyses.setAnalyst(middleData.getAnalyses_analyst());
gardsAnalyses.setComments(middleData.getAnalyses_comments());
gardsAnalyses.setSearchStartChannel((int)middleData.getAnalyses_searchStartChannel());
gardsAnalyses.setSearchEndChannel((int)middleData.getAnalyses_searchEndChannel());
gardsAnalyses.setSearchThreshold(middleData.getAnalyses_searchThreshold());
gardsAnalyses.setNumberOfPeaks((int) middleData.getAnalyses_numberOfPeaks());
gardsAnalyses.setTotalCounts((float) middleData.getAnalyses_totalCounts());
gardsAnalyses.setBaselinePath(middleData.getAnalyses_baseline_filePath());
gardsAnalyses.setLcPath(middleData.getAnalyses_lc_filePath());
gardsAnalyses.setScacPath(middleData.getAnalyses_scac_filePath());
gardsAnalyses.setLogPath(middleData.getAnalyses_LogPath());
gardsAnalyses.setReportPath(middleData.getAnalyses_ReportPath());
return gardsAnalyses;
}
/* public <T1,T2> List<T2> mapFields(T1 source, T2 tartget, String baseLine, Map<String,String> fieldMap) { /* public <T1,T2> List<T2> mapFields(T1 source, T2 tartget, String baseLine, Map<String,String> fieldMap) {
try { try {
List<T2> result = new ArrayList<>(); List<T2> result = new ArrayList<>();

View File

@ -9,6 +9,7 @@ import org.jeecg.common.util.RedisUtil;
import org.jeecg.common.util.SelfUtil; import org.jeecg.common.util.SelfUtil;
import org.jeecg.modules.datasource.OraDataSourceProperties; import org.jeecg.modules.datasource.OraDataSourceProperties;
import org.jeecg.modules.service.*; import org.jeecg.modules.service.*;
import org.jeecg.modules.service.impl.GardsCalibrationRoiAutoServiceImpl;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.core.io.ResourceLoader; import org.springframework.core.io.ResourceLoader;
import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.jdbc.datasource.DataSourceTransactionManager;
@ -91,6 +92,23 @@ public class SpectrumServiceQuotes {
private final SelfUtil selfStationUtil; private final SelfUtil selfStationUtil;
/* 自动处理库_ROI相关类引用 */
private final IGardsAnalysisRoiAutoService analysisRoiAutoService;
private final GardsCalibrationRoiAutoServiceImpl calibrationRoiAutoService;
private final IGardsCalibrationPairsRoiAutoService calibrationPairsRoiAutoService;
private final IGardsMdcRoiAutoService mdcRoiAutoService;
private final IGardsNuclIdedRoiAutoService nuclIdedRoiAutoService;
private final IGardsNuclLinesIdedRoiAutoService nuclLinesIdedRoiAutoService;
private final IGardsPeaksRoiAutoService peaksRoiAutoService;
private final IGardsQcCheckRoiAutoService qcCheckRoiAutoService;
/** /**
* 原始库插入数据锁 * 原始库插入数据锁
*/ */

View File

@ -0,0 +1,17 @@
package org.jeecg.modules.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.base.entity.rnauto.GardsAnalysisRoi;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description:
* @Author: jeecg-boot
* @Date: 2024-07-24
* @Version: V1.0
*/
public interface GardsAnalysisRoiMapper extends BaseMapper<GardsAnalysisRoi> {
}

View File

@ -0,0 +1,17 @@
package org.jeecg.modules.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.base.entity.rnauto.GardsCalibrationPairsRoi;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description:
* @Author: jeecg-boot
* @Date: 2024-07-24
* @Version: V1.0
*/
public interface GardsCalibrationPairsRoiMapper extends BaseMapper<GardsCalibrationPairsRoi> {
}

View File

@ -0,0 +1,15 @@
package org.jeecg.modules.mapper;
import java.util.List;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.base.entity.rnauto.GardsCalibration;
import org.jeecg.modules.base.entity.rnauto.GardsCalibrationRoi;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface GardsCalibrationRoiMapper extends BaseMapper<GardsCalibrationRoi> {
@InterceptorIgnore(tenantLine = "true")
int createBatch(@Param("calibrationRois") List<GardsCalibrationRoi> calibrationRois);
}

View File

@ -0,0 +1,17 @@
package org.jeecg.modules.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.base.entity.rnauto.GardsMDCRoi;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description:
* @Author: jeecg-boot
* @Date: 2024-07-24
* @Version: V1.0
*/
public interface GardsMdcRoiMapper extends BaseMapper<GardsMDCRoi> {
}

View File

@ -0,0 +1,17 @@
package org.jeecg.modules.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.base.entity.rnauto.GardsNuclIdedRoi;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description:
* @Author: jeecg-boot
* @Date: 2024-07-24
* @Version: V1.0
*/
public interface GardsNuclIdedRoiMapper extends BaseMapper<GardsNuclIdedRoi> {
}

View File

@ -0,0 +1,17 @@
package org.jeecg.modules.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.base.entity.rnauto.GardsNuclLinesIdedRoi;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description:
* @Author: jeecg-boot
* @Date: 2024-07-24
* @Version: V1.0
*/
public interface GardsNuclLinesIdedRoiMapper extends BaseMapper<GardsNuclLinesIdedRoi> {
}

View File

@ -0,0 +1,17 @@
package org.jeecg.modules.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.base.entity.rnauto.GardsPeaksRoi;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description:
* @Author: jeecg-boot
* @Date: 2024-07-24
* @Version: V1.0
*/
public interface GardsPeaksRoiMapper extends BaseMapper<GardsPeaksRoi> {
}

View File

@ -0,0 +1,17 @@
package org.jeecg.modules.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.base.entity.rnauto.GardsQcCheckRoi;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description:
* @Author: jeecg-boot
* @Date: 2024-07-24
* @Version: V1.0
*/
public interface GardsQcCheckRoiMapper extends BaseMapper<GardsQcCheckRoi> {
}

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.mapper.GardsAnalysisRoiMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.mapper.GardsCalibrationPairsRoiMapper">
</mapper>

View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.mapper.GardsCalibrationRoiMapper">
<insert id="createBatch" parameterType="org.jeecg.modules.base.entity.rnauto.GardsCalibrationRoi">
begin
<foreach collection="calibrationRois" separator=";" close=";" item="calibration">
insert into RNAUTO.GARDS_CALIBRATION_ROI(
SAMPLE_ID,
ROI_ID,
IDANALYSIS,
SAMPLE_TYPE,
CALTYPE,
FUNCTION,
FUNCTIONDEF,
STARTOFRANGE,
ENDOFRANGE,
COEFF_STRING,
moddate)
values
(#{calibration.sampleId},
#{calibration.roiId},
#{calibration.idAnalysis},
#{calibration.sampleType},
#{calibration.calType},
#{calibration.function},
#{calibration.functionDef},
#{calibration.startOfRange},
#{calibration.endOfRange},
#{calibration.coeffString},
#{calibration.moddate})
</foreach>
end;
</insert>
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.mapper.GardsMdcRoiMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.mapper.GardsNuclIdedRoiMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.mapper.GardsNuclLinesIdedRoiMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.mapper.GardsPeaksRoiMapper">
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.mapper.GardsQcCheckRoiMapper">
</mapper>

View File

@ -0,0 +1,13 @@
package org.jeecg.modules.service;
import org.jeecg.modules.base.entity.rnauto.GardsAnalysisRoi;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
public interface IGardsAnalysisRoiAutoService extends IService<GardsAnalysisRoi> {
Integer getIdAnalysisAny(Integer sampleId);
List<GardsAnalysisRoi> analysisRoi(Integer sampleId);
}

View File

@ -0,0 +1,14 @@
package org.jeecg.modules.service;
import org.jeecg.modules.base.entity.rnauto.GardsCalibrationPairsRoi;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description:
* @Author: jeecg-boot
* @Date: 2024-07-24
* @Version: V1.0
*/
public interface IGardsCalibrationPairsRoiAutoService extends IService<GardsCalibrationPairsRoi> {
}

View File

@ -0,0 +1,11 @@
package org.jeecg.modules.service;
import org.jeecg.modules.base.entity.rnauto.GardsCalibrationRoi;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
public interface IGardsCalibrationRoiAutoService extends IService<GardsCalibrationRoi> {
int createBatch(List<GardsCalibrationRoi> calibrationRois);
}

View File

@ -0,0 +1,8 @@
package org.jeecg.modules.service;
import org.jeecg.modules.base.entity.rnauto.GardsMDCRoi;
import com.baomidou.mybatisplus.extension.service.IService;
public interface IGardsMdcRoiAutoService extends IService<GardsMDCRoi> {
}

View File

@ -0,0 +1,14 @@
package org.jeecg.modules.service;
import org.jeecg.modules.base.entity.rnauto.GardsNuclIdedRoi;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description:
* @Author: jeecg-boot
* @Date: 2024-07-24
* @Version: V1.0
*/
public interface IGardsNuclIdedRoiAutoService extends IService<GardsNuclIdedRoi> {
}

View File

@ -0,0 +1,14 @@
package org.jeecg.modules.service;
import org.jeecg.modules.base.entity.rnauto.GardsNuclLinesIdedRoi;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description:
* @Author: jeecg-boot
* @Date: 2024-07-24
* @Version: V1.0
*/
public interface IGardsNuclLinesIdedRoiAutoService extends IService<GardsNuclLinesIdedRoi> {
}

View File

@ -0,0 +1,14 @@
package org.jeecg.modules.service;
import org.jeecg.modules.base.entity.rnauto.GardsPeaksRoi;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description:
* @Author: jeecg-boot
* @Date: 2024-07-24
* @Version: V1.0
*/
public interface IGardsPeaksRoiAutoService extends IService<GardsPeaksRoi> {
}

View File

@ -0,0 +1,14 @@
package org.jeecg.modules.service;
import org.jeecg.modules.base.entity.rnauto.GardsQcCheckRoi;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description:
* @Author: jeecg-boot
* @Date: 2024-07-24
* @Version: V1.0
*/
public interface IGardsQcCheckRoiAutoService extends IService<GardsQcCheckRoi> {
}

View File

@ -0,0 +1,36 @@
package org.jeecg.modules.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.jeecg.modules.base.entity.rnauto.GardsAnalyses;
import org.jeecg.modules.base.entity.rnauto.GardsAnalysisRoi;
import org.jeecg.modules.mapper.GardsAnalysisRoiMapper;
import org.jeecg.modules.service.IGardsAnalysisRoiAutoService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
@Service
@DS("ora")
public class GardsAnalysisRoiAutoServiceImpl extends ServiceImpl<GardsAnalysisRoiMapper, GardsAnalysisRoi> implements IGardsAnalysisRoiAutoService {
@Override
public Integer getIdAnalysisAny(Integer sampleId) {
LambdaQueryWrapper<GardsAnalysisRoi> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(GardsAnalysisRoi::getSampleId, sampleId);
List<GardsAnalysisRoi> analysisRois = list(wrapper);
return analysisRois.stream().findAny().orElse(new GardsAnalysisRoi())
.getIdAnalysis();
}
@Override
public List<GardsAnalysisRoi> analysisRoi(Integer sampleId) {
LambdaQueryWrapper<GardsAnalysisRoi> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(GardsAnalysisRoi::getSampleId, sampleId);
wrapper.orderByAsc(GardsAnalysisRoi::getIdAnalysis);
return list(wrapper);
}
}

View File

@ -0,0 +1,19 @@
package org.jeecg.modules.service.impl;
import org.jeecg.modules.base.entity.rnauto.GardsCalibrationPairsRoi;
import org.jeecg.modules.mapper.GardsCalibrationPairsRoiMapper;
import org.jeecg.modules.service.IGardsCalibrationPairsRoiAutoService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description:
* @Author: jeecg-boot
* @Date: 2024-07-24
* @Version: V1.0
*/
@Service
public class GardsCalibrationPairsRoiAutoServiceImpl extends ServiceImpl<GardsCalibrationPairsRoiMapper, GardsCalibrationPairsRoi> implements IGardsCalibrationPairsRoiAutoService {
}

View File

@ -0,0 +1,22 @@
package org.jeecg.modules.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import org.jeecg.modules.base.entity.rnauto.GardsCalibrationRoi;
import org.jeecg.modules.mapper.GardsCalibrationRoiMapper;
import org.jeecg.modules.service.IGardsCalibrationRoiAutoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
@Service
@DS("ora")
public class GardsCalibrationRoiAutoServiceImpl extends ServiceImpl<GardsCalibrationRoiMapper, GardsCalibrationRoi> implements IGardsCalibrationRoiAutoService {
@Override
public int createBatch(List<GardsCalibrationRoi> calibrationRois) {
return this.baseMapper.createBatch(calibrationRois);
}
}

View File

@ -0,0 +1,13 @@
package org.jeecg.modules.service.impl;
import org.jeecg.modules.base.entity.rnauto.GardsMDCRoi;
import org.jeecg.modules.mapper.GardsMdcRoiMapper;
import org.jeecg.modules.service.IGardsMdcRoiAutoService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@Service
public class GardsMdcRoiAutoServiceImpl extends ServiceImpl<GardsMdcRoiMapper, GardsMDCRoi> implements IGardsMdcRoiAutoService {
}

View File

@ -0,0 +1,19 @@
package org.jeecg.modules.service.impl;
import org.jeecg.modules.base.entity.rnauto.GardsNuclIdedRoi;
import org.jeecg.modules.mapper.GardsNuclIdedRoiMapper;
import org.jeecg.modules.service.IGardsNuclIdedRoiAutoService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description:
* @Author: jeecg-boot
* @Date: 2024-07-24
* @Version: V1.0
*/
@Service
public class GardsNuclIdedRoiAutoServiceImpl extends ServiceImpl<GardsNuclIdedRoiMapper, GardsNuclIdedRoi> implements IGardsNuclIdedRoiAutoService {
}

View File

@ -0,0 +1,19 @@
package org.jeecg.modules.service.impl;
import org.jeecg.modules.base.entity.rnauto.GardsNuclLinesIdedRoi;
import org.jeecg.modules.mapper.GardsNuclLinesIdedRoiMapper;
import org.jeecg.modules.service.IGardsNuclLinesIdedRoiAutoService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description:
* @Author: jeecg-boot
* @Date: 2024-07-24
* @Version: V1.0
*/
@Service
public class GardsNuclLinesIdedRoiAutoServiceImpl extends ServiceImpl<GardsNuclLinesIdedRoiMapper, GardsNuclLinesIdedRoi> implements IGardsNuclLinesIdedRoiAutoService {
}

View File

@ -0,0 +1,19 @@
package org.jeecg.modules.service.impl;
import org.jeecg.modules.base.entity.rnauto.GardsPeaksRoi;
import org.jeecg.modules.mapper.GardsPeaksRoiMapper;
import org.jeecg.modules.service.IGardsPeaksRoiAutoService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description:
* @Author: jeecg-boot
* @Date: 2024-07-24
* @Version: V1.0
*/
@Service
public class GardsPeaksRoiAutoServiceImpl extends ServiceImpl<GardsPeaksRoiMapper, GardsPeaksRoi> implements IGardsPeaksRoiAutoService {
}

View File

@ -0,0 +1,19 @@
package org.jeecg.modules.service.impl;
import org.jeecg.modules.base.entity.rnauto.GardsQcCheckRoi;
import org.jeecg.modules.mapper.GardsQcCheckRoiMapper;
import org.jeecg.modules.service.IGardsQcCheckRoiAutoService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description:
* @Author: jeecg-boot
* @Date: 2024-07-24
* @Version: V1.0
*/
@Service
public class GardsQcCheckRoiAutoServiceImpl extends ServiceImpl<GardsQcCheckRoiMapper, GardsQcCheckRoi> implements IGardsQcCheckRoiAutoService {
}