fix:修复新beta 保存到数据库失败问题
This commit is contained in:
parent
979f24a10c
commit
9a7cdbe1ed
|
@ -54,8 +54,9 @@ public class SelfStationUtil extends AbstractLogOrReport {
|
|||
} else {
|
||||
return;
|
||||
}
|
||||
//存储页面操作数据
|
||||
SelfStationVueData selfStationVueData = new SelfStationVueData();
|
||||
SelfStationVueData sampleVueData = selfStationData.getSampleVueData();
|
||||
SelfStationVueData detVueData = selfStationData.getDetVueData();
|
||||
|
||||
//封装散点图下的基础数据信息
|
||||
SpectrumData spectrumData = new SpectrumData();
|
||||
//Station Code
|
||||
|
@ -119,7 +120,6 @@ public class SelfStationUtil extends AbstractLogOrReport {
|
|||
spectrumData.setMeasurementId(measurementId);
|
||||
map.put("spectrumData", spectrumData);
|
||||
|
||||
//计算边界值
|
||||
//gamma能量部分的计算参数 道值对应能量
|
||||
List<Double> gEnergy = struct.g_energy;
|
||||
//gamma能量部分的计算参数 道值
|
||||
|
@ -144,92 +144,9 @@ public class SelfStationUtil extends AbstractLogOrReport {
|
|||
List<Integer> roiBBoundaryStart = bgBoundary.ROI_B_Boundary_start;
|
||||
List<Integer> roiBBoundaryStop = bgBoundary.ROI_B_Boundary_stop;
|
||||
|
||||
SelfStationVueData sampleVueData = selfStationData.getSampleVueData();
|
||||
SelfStationVueData detVueData = selfStationData.getDetVueData();
|
||||
|
||||
//根据范围1划分 范围1对应的折线图
|
||||
Map<String, Object> oneMap = statisticsROIList(roiBBoundaryStart.get(0), roiBBoundaryStop.get(0), struct.b_channels, struct.g_channels, struct.h_counts);
|
||||
if (CollectionUtils.isNotEmpty(oneMap) ) {
|
||||
Integer startChannel = (Integer) oneMap.get("startChannel");
|
||||
Integer endChannel = (Integer) oneMap.get("endChannel");
|
||||
List<SeriseData> seriseDataList = (List<SeriseData>) oneMap.get("dataList");
|
||||
if (systemType.equals("sample")) {
|
||||
sampleVueData.setROIOneBetaStart(startChannel);
|
||||
sampleVueData.setROIOneBetaStop(endChannel);
|
||||
sampleVueData.setROIOneList(seriseDataList);
|
||||
sampleVueData.setROIOneCounts((List<Long>)oneMap.get("counts"));
|
||||
} else if (systemType.equals("det")) {
|
||||
detVueData.setROIOneBetaStart(startChannel);
|
||||
detVueData.setROIOneBetaStop(endChannel);
|
||||
detVueData.setROIOneList(seriseDataList);
|
||||
}
|
||||
map.put("ROIOneStart", roiBBoundaryStart.get(0));
|
||||
map.put("ROIOneStop", roiBBoundaryStop.get(0));
|
||||
map.put("ROIOneList", seriseDataList);
|
||||
}
|
||||
//根据范围2划分 范围2对应的折线图
|
||||
Map<String, Object> twoMap = statisticsROIList(roiBBoundaryStart.get(1), roiBBoundaryStop.get(1),
|
||||
struct.b_channels, struct.g_channels, struct.h_counts);
|
||||
if ( CollectionUtils.isNotEmpty(twoMap) ) {
|
||||
Integer startChannel = (Integer) twoMap.get("startChannel");
|
||||
Integer endChannel = (Integer) twoMap.get("endChannel");
|
||||
List<SeriseData> seriseDataList = (List<SeriseData>) twoMap.get("dataList");
|
||||
if (systemType.equals("sample")) {
|
||||
sampleVueData.setROITwoBetaStart(startChannel);
|
||||
sampleVueData.setROITwoBetaStop(endChannel);
|
||||
sampleVueData.setROITwoList(seriseDataList);
|
||||
sampleVueData.setROITwoCounts((List<Long>)twoMap.get("counts"));
|
||||
} else if (systemType.equals("det")) {
|
||||
detVueData.setROITwoBetaStart(startChannel);
|
||||
detVueData.setROITwoBetaStop(endChannel);
|
||||
detVueData.setROITwoList(seriseDataList);
|
||||
}
|
||||
map.put("ROITwoStart", roiBBoundaryStart.get(1));
|
||||
map.put("ROITwoStop", roiBBoundaryStop.get(1));
|
||||
map.put("ROITwoList", seriseDataList);
|
||||
}
|
||||
//根据范围3划分 范围3对应的折线图
|
||||
Map<String, Object> threeMap = statisticsROIList(roiBBoundaryStart.get(2), roiBBoundaryStop.get(2),
|
||||
struct.b_channels, struct.g_channels, struct.h_counts);
|
||||
if ( CollectionUtils.isNotEmpty(threeMap) ) {
|
||||
Integer startChannel = (Integer) threeMap.get("startChannel");
|
||||
Integer endChannel = (Integer) threeMap.get("endChannel");
|
||||
List<SeriseData> seriseDataList = (List<SeriseData>) threeMap.get("dataList");
|
||||
if (systemType.equals("sample")) {
|
||||
sampleVueData.setROIThreeBetaStart(startChannel);
|
||||
sampleVueData.setROIThreeBetaStop(endChannel);
|
||||
sampleVueData.setROIThreeList(seriseDataList);
|
||||
sampleVueData.setROIThreeCounts((List<Long>)threeMap.get("counts"));
|
||||
} else if (systemType.equals("det")) {
|
||||
detVueData.setROIThreeBetaStart(startChannel);
|
||||
detVueData.setROIThreeBetaStop(endChannel);
|
||||
detVueData.setROIThreeList(seriseDataList);
|
||||
}
|
||||
map.put("ROIThreeStart", roiBBoundaryStart.get(2));
|
||||
map.put("ROIThreeStop", roiBBoundaryStop.get(2));
|
||||
map.put("ROIThreeList", seriseDataList);
|
||||
}
|
||||
//根据范围4划分 范围4对应的折线图
|
||||
Map<String, Object> fourMap = statisticsROIList(roiBBoundaryStart.get(3), roiBBoundaryStop.get(3), struct.b_channels, struct.g_channels, struct.h_counts);
|
||||
if ( CollectionUtils.isNotEmpty(fourMap) ) {
|
||||
Integer startChannel = (Integer) fourMap.get("startChannel");
|
||||
Integer endChannel = (Integer) fourMap.get("endChannel");
|
||||
List<SeriseData> seriseDataList = (List<SeriseData>) fourMap.get("dataList");
|
||||
if (systemType.equals("sample")) {
|
||||
sampleVueData.setROIFourBetaStart(startChannel);
|
||||
sampleVueData.setROIFourBetaStop(endChannel);
|
||||
sampleVueData.setROIFourList(seriseDataList);
|
||||
sampleVueData.setROIFourCounts((List<Long>)fourMap.get("counts"));
|
||||
} else if (systemType.equals("det")) {
|
||||
detVueData.setROIFourBetaStart(startChannel);
|
||||
detVueData.setROIFourBetaStop(endChannel);
|
||||
detVueData.setROIFourList(seriseDataList);
|
||||
}
|
||||
map.put("ROIFourStart", roiBBoundaryStart.get(3));
|
||||
map.put("ROIFourStop", roiBBoundaryStop.get(3));
|
||||
map.put("ROIFourList", seriseDataList);
|
||||
}
|
||||
//散点图
|
||||
Map<String, Object> gammaByROI = this.getGammaByROI(systemType, roiBBoundaryStart, roiBBoundaryStop, selfStationData);
|
||||
map.putAll(gammaByROI);
|
||||
//统计散点图
|
||||
//横坐标 beta-gamma
|
||||
long bChannels = struct.b_channels;
|
||||
|
@ -262,7 +179,7 @@ public class SelfStationUtil extends AbstractLogOrReport {
|
|||
map.put("histogramDataList", histogramDataList);
|
||||
// map.put("histogramDataDList", histogramDataDList);
|
||||
//调用算法 传入道值和道值对应的能量 得到计算gamma能量公式的参数
|
||||
List<Double> gammaParam = EnergySpectrumHandler.GetFileFittingPara(gCentroidChannel, gEnergy);
|
||||
List<Double> gammaParam = EnergySpectrumHandler.GetFileFittingPara(struct.g_centroid_channel, struct.g_energy);
|
||||
//存储需要计算gamma能量的道值
|
||||
List<Double> gchannels = new ArrayList<>();
|
||||
for (int i=0; i<gChannels; i++){
|
||||
|
@ -273,7 +190,7 @@ public class SelfStationUtil extends AbstractLogOrReport {
|
|||
//将gamma能量折线图进行赋值返回
|
||||
map.put("gammaEnergyData", gammaEnergyList);
|
||||
//调用算法 传入道值和道值对应的能量 得到计算beta能量公式的参数
|
||||
List<Double> betaParam = EnergySpectrumHandler.GetFileFittingPara(bChannel, bElectronEnergy);
|
||||
List<Double> betaParam = EnergySpectrumHandler.GetFileFittingPara(struct.b_channel, struct.b_electron_energy);
|
||||
List<Double> bchannels = new ArrayList<>();
|
||||
for (int i=0; i<bChannels; i++){
|
||||
bchannels.add(Double.valueOf(i));
|
||||
|
@ -354,6 +271,8 @@ public class SelfStationUtil extends AbstractLogOrReport {
|
|||
selfStationData.setSampleTmpPath(file.getAbsolutePath());
|
||||
} else if (type.equalsIgnoreCase("det")) {
|
||||
selfStationData.setDetTmpPath(file.getAbsolutePath());
|
||||
} else if (type.equalsIgnoreCase("qc")) {
|
||||
selfStationData.setQcTmpPath(file.getAbsolutePath());
|
||||
}
|
||||
//解析文件内容
|
||||
struct = EnergySpectrumHandler.getSourceData(file.getAbsolutePath());
|
||||
|
@ -408,6 +327,122 @@ public class SelfStationUtil extends AbstractLogOrReport {
|
|||
return map;
|
||||
}
|
||||
|
||||
public Map<String, Object> getGammaByROI(String systemType, List<Integer> roiBBoundaryStart, List<Integer> roiBBoundaryStop,
|
||||
SelfStationData selfStationData) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
|
||||
|
||||
|
||||
EnergySpectrumStruct struct = selfStationData.getSampleStruct();
|
||||
long betaChannels = struct.b_channels, gammaChannels = struct.g_channels;
|
||||
List<Long> h_counts = struct.h_counts;
|
||||
|
||||
SelfStationVueData sampleVueData = selfStationData.getSampleVueData();
|
||||
SelfStationVueData detVueData = selfStationData.getDetVueData();
|
||||
|
||||
for (int r = 0; r < roiBBoundaryStart.size(); r++) {
|
||||
List<SeriseData> seriseDataList = new LinkedList<>();
|
||||
// g_counts
|
||||
List<Long> counts = new LinkedList<>();
|
||||
//存储同一列不同行加和后的数量
|
||||
List<Integer> sumList = new LinkedList<>();
|
||||
String roiStart = "", roiStop= "", roiList = "";
|
||||
|
||||
//根据范围划分 范围对应的折线图
|
||||
int startChannel = roiBBoundaryStart.get(r);
|
||||
int endChannel = roiBBoundaryStop.get(r);
|
||||
//遍历所有列
|
||||
for (int i=0; i<gammaChannels; i++) {
|
||||
SeriseData seriseData = new SeriseData();
|
||||
seriseData.setX(i);
|
||||
int sum = 0;
|
||||
//根据起始道值和结束道值 获取这一列的所有对应道值的数据
|
||||
for (int j=startChannel; j <= endChannel; j++) {
|
||||
//列数 * 总行数 + 当前行下标 获取对应的数据数组下标
|
||||
int index = (int) (i * betaChannels + j);
|
||||
long count = 0;
|
||||
//判断下标是否在h_counts范围内
|
||||
if (index > 0 && index < h_counts.size()) {
|
||||
count = h_counts.get(index);
|
||||
}
|
||||
sum+=count;
|
||||
}
|
||||
seriseData.setY(sum);
|
||||
sumList.add(sum);
|
||||
counts.add((long) sum);
|
||||
seriseDataList.add(seriseData);
|
||||
}
|
||||
switch (r){
|
||||
case 0:
|
||||
roiStart = "ROIOneStart";
|
||||
roiStop = "ROIOneStop";
|
||||
roiList = "ROIOneList";
|
||||
if (systemType.equals("sample")) {
|
||||
sampleVueData.setROIOneBetaStart(startChannel);
|
||||
sampleVueData.setROIOneBetaStop(endChannel);
|
||||
sampleVueData.setROIOneList(seriseDataList);
|
||||
sampleVueData.setROIOneCounts(counts);
|
||||
} else if (systemType.equals("det")) {
|
||||
detVueData.setROIOneBetaStart(startChannel);
|
||||
detVueData.setROIOneBetaStop(endChannel);
|
||||
detVueData.setROIOneList(seriseDataList);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
roiStart = "ROITwoStart";
|
||||
roiStop = "ROITwoStop";
|
||||
roiList = "ROITwoList";
|
||||
if (systemType.equals("sample")) {
|
||||
sampleVueData.setROITwoBetaStart(startChannel);
|
||||
sampleVueData.setROITwoBetaStop(endChannel);
|
||||
sampleVueData.setROITwoList(seriseDataList);
|
||||
sampleVueData.setROITwoCounts(counts);
|
||||
} else if (systemType.equals("det")) {
|
||||
detVueData.setROITwoBetaStart(startChannel);
|
||||
detVueData.setROITwoBetaStop(endChannel);
|
||||
detVueData.setROITwoList(seriseDataList);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
roiStart = "ROIThreeStart";
|
||||
roiStop = "ROIThreeStop";
|
||||
roiList = "ROIThreeList";
|
||||
if (systemType.equals("sample")) {
|
||||
sampleVueData.setROIThreeBetaStart(startChannel);
|
||||
sampleVueData.setROIThreeBetaStop(endChannel);
|
||||
sampleVueData.setROIThreeList(seriseDataList);
|
||||
sampleVueData.setROIThreeCounts(counts);
|
||||
} else if (systemType.equals("det")) {
|
||||
detVueData.setROIThreeBetaStart(startChannel);
|
||||
detVueData.setROIThreeBetaStop(endChannel);
|
||||
detVueData.setROIThreeList(seriseDataList);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
roiStart = "ROIFourStart";
|
||||
roiStop = "ROIFourStop";
|
||||
roiList = "ROIFourList";
|
||||
if (systemType.equals("sample")) {
|
||||
sampleVueData.setROIFourBetaStart(startChannel);
|
||||
sampleVueData.setROIFourBetaStop(endChannel);
|
||||
sampleVueData.setROIFourList(seriseDataList);
|
||||
sampleVueData.setROIFourCounts(counts);
|
||||
} else if (systemType.equals("det")) {
|
||||
detVueData.setROIFourBetaStart(startChannel);
|
||||
detVueData.setROIFourBetaStop(endChannel);
|
||||
detVueData.setROIFourList(seriseDataList);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
map.put(roiStart, startChannel);
|
||||
map.put(roiStop, endChannel);
|
||||
map.put(roiList, seriseDataList);
|
||||
}
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
public List<Long> roiList(Integer startChannel, Integer endChannel, long betaChannels, long gammaChannels, List<Long> h_counts) {
|
||||
// g_counts
|
||||
List<Long> counts = new LinkedList<>();
|
||||
|
|
|
@ -90,9 +90,9 @@ public interface SpectrumAnalysisMapper {
|
|||
|
||||
List<String> UserNuclide(@Param(value = "systemType") String systemType, @Param(value = "userName") String userName);
|
||||
|
||||
Integer getAnalysisID(@Param(value = "dbName") String dbName, @Param(value = "sampleId") Integer sampleId, @Param(value = "userName") String userName);
|
||||
List<RoiDto> roiPaths(@Param("dbName") String dbName, @Param("idAnalysis") Integer idAnalysis);
|
||||
|
||||
List<RoiDto> roiPaths(@Param("dbName") String dbName, @Param("analysisId") Integer analysisId);
|
||||
Integer getAnalysisID(@Param(value = "dbName") String dbName, @Param(value = "sampleId") Integer sampleId, @Param(value = "userName") String userName);
|
||||
|
||||
List<GardsCalibrationPairsSpectrum> ReadGammaFitChannelEnergy(@Param(value = "idAnalysis") Integer idAnalysis);
|
||||
|
||||
|
|
|
@ -1113,7 +1113,7 @@
|
|||
select NAME from CONFIGURATION.GARDS_NUCL_LIB
|
||||
</select>
|
||||
<select id="roiPaths" resultType="org.jeecg.modules.base.dto.RoiDto">
|
||||
SELECT ROI_NUM, PHD_PATH FROM ${dbName}.GARDS_ANALYSIS_ROI WHERE IDANALYSIS = #{analysisId} ORDER BY ROI_NUM ASC
|
||||
SELECT ROI_NUM, PHD_PATH FROM ${dbName}.GARDS_ANALYSIS_ROI WHERE IDANALYSIS = #{idAnalysis} ORDER BY ROI_NUM ASC
|
||||
</select>
|
||||
|
||||
</mapper>
|
|
@ -12,12 +12,12 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.google.common.cache.Cache;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.math3.fitting.WeightedObservedPoints;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.cache.SelfCache;
|
||||
import org.jeecg.common.constant.Prompt;
|
||||
import org.jeecg.common.constant.StringConstant;
|
||||
import org.jeecg.common.constant.enums.FileTypeEnum;
|
||||
import org.jeecg.common.properties.ParameterProperties;
|
||||
|
@ -29,7 +29,7 @@ import org.jeecg.modules.base.entity.configuration.GardsNuclLib;
|
|||
import org.jeecg.modules.base.entity.configuration.GardsNuclLinesLib;
|
||||
import org.jeecg.modules.base.entity.original.GardsSampleData;
|
||||
import org.jeecg.modules.base.entity.rnauto.GardsAnalyses;
|
||||
import org.jeecg.modules.base.entity.rnauto.GardsAnalysisRoi;
|
||||
import org.jeecg.modules.base.entity.rnman.GardsAnalysisRoi;
|
||||
import org.jeecg.modules.base.entity.rnman.GardsAnalySetting;
|
||||
import org.jeecg.modules.base.enums.SampleFileHeader;
|
||||
import org.jeecg.modules.entity.*;
|
||||
|
@ -57,9 +57,9 @@ import java.text.ParseException;
|
|||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.aspectj.weaver.tools.cache.SimpleCacheFactory.path;
|
||||
|
||||
@Service
|
||||
@DS("ora")
|
||||
public class SelfStationServiceImpl implements ISelfStationService {
|
||||
|
||||
@Autowired
|
||||
|
@ -133,10 +133,18 @@ public class SelfStationServiceImpl implements ISelfStationService {
|
|||
}
|
||||
|
||||
@Override
|
||||
@DS("ora")
|
||||
public Result loadFromDB(String dbName, Integer sampleId, String analyst, HttpServletRequest request) {
|
||||
Result result = new Result();
|
||||
Map<String, Map<String, Object>> resultMap = new HashMap<>();
|
||||
//页面展示结果数组
|
||||
List<GardsXeResultsSpectrum> xeResultsSpectrumList = new LinkedList<>();
|
||||
List<GardsCalibrationSpectrum> gammaCalibrationSpectrumList= new LinkedList<>();
|
||||
List<GardsCalibrationSpectrum> betaCalibrationSpectrumList = new LinkedList<>();
|
||||
List<GardsROIChannelsSpectrum> roiChannelsSpectrumList = new LinkedList<>();
|
||||
List<GardsROIResultsSpectrum> roiResultsSpectrumList = new LinkedList<>();
|
||||
List<GardsCalibrationPairsSpectrum> gammaCalibrationPairsList = new LinkedList<>();
|
||||
List<GardsCalibrationPairsSpectrum> betaCalibrationPairsList = new LinkedList<>();
|
||||
|
||||
//获取用户名
|
||||
String userName = JwtUtil.getUserNameByToken(request);
|
||||
//获取自建台站缓存信息
|
||||
|
@ -152,14 +160,16 @@ public class SelfStationServiceImpl implements ISelfStationService {
|
|||
List<RoiDto> roiPaths = new ArrayList<>();
|
||||
if (dbName.equalsIgnoreCase("auto")){
|
||||
dbName = "RNAUTO";
|
||||
analysisID = spectrumAnalysisMapper.getAnalysisID(dbName, sampleId, "RNAUTO");
|
||||
// 获取gamma谱
|
||||
roiPaths = spectrumAnalysisMapper.roiPaths(dbName, analysisID);
|
||||
analyst = "RNAUTO";
|
||||
} else if (dbName.equalsIgnoreCase("man")){
|
||||
dbName = "RNMAN";
|
||||
analysisID = spectrumAnalysisMapper.getAnalysisID(dbName, sampleId, analyst);
|
||||
roiPaths = spectrumAnalysisMapper.roiPaths(dbName, analysisID);
|
||||
}
|
||||
analysisID = spectrumAnalysisMapper.getAnalysisID(dbName, sampleId, analyst);
|
||||
if (analysisID == null) {
|
||||
result.error500("The queried Sample data does not exist");
|
||||
return result;
|
||||
}
|
||||
roiPaths = spectrumAnalysisMapper.roiPaths(dbName, analysisID);
|
||||
try {
|
||||
if (Objects.nonNull(analysisID)) {
|
||||
//查询数据库文件信息
|
||||
|
@ -180,11 +190,39 @@ public class SelfStationServiceImpl implements ISelfStationService {
|
|||
detBg = spectrumAnalysisMapper.findSampleByFilePath(dbSpectrumFilePath.getDetBgFilePath());
|
||||
detFileName = dbSpectrumFilePath.getDetBgFilePath().substring(dbSpectrumFilePath.getDetBgFilePath().lastIndexOf(StringPool.SLASH)+1);
|
||||
}
|
||||
//获取qc相关信息
|
||||
String dbQcFilePath = "";
|
||||
GardsSampleData qc = null;
|
||||
String qcFileName = "";
|
||||
if (Objects.nonNull(dbSpectrumFilePath.getCollectStart()) && StringUtils.isNotBlank(dbSpectrumFilePath.getSiteDetCode())) {
|
||||
String collectStartStr = DateUtils.formatDate(dbSpectrumFilePath.getCollectStart(), "yyyy/MM/dd HH:mm:ss");
|
||||
dbQcFilePath = spectrumAnalysisMapper.getQCFilePath(dbSpectrumFilePath.getSiteDetCode(), collectStartStr);
|
||||
if (StringUtils.isNotBlank(dbQcFilePath)) {
|
||||
qc = spectrumAnalysisMapper.findSampleByFilePath(dbQcFilePath);
|
||||
qcFileName = dbQcFilePath.substring(dbQcFilePath.lastIndexOf(StringPool.SLASH)+1);
|
||||
}
|
||||
}
|
||||
|
||||
//从缓存中获取公用变量的数据
|
||||
SelfStationData selfStationData = selfCache.getIfPresent(sampleFileName + StringPool.DASH + userName);
|
||||
if (Objects.isNull(selfStationData)) {
|
||||
//初始化自建台站数据对象
|
||||
selfStationData = new SelfStationData();
|
||||
if (dbName.equalsIgnoreCase("RNAUTO")) {
|
||||
xeResultsSpectrumList = spectrumAnalysisMapper.ReadXeResults(dbName, analysisID, sampleId);
|
||||
gammaCalibrationSpectrumList = spectrumAnalysisMapper.ReadGammaCalibrationParam("RNAUTO", analysisID);
|
||||
betaCalibrationSpectrumList = spectrumAnalysisMapper.ReadBetaCalibrationParam("RNAUTO", analysisID);
|
||||
roiChannelsSpectrumList = spectrumAnalysisMapper.ReadROIChannels("RNAUTO", analysisID, sampleId);
|
||||
roiResultsSpectrumList = spectrumAnalysisMapper.ReadROIResults("RNAUTO", analysisID, sampleId);
|
||||
} else {
|
||||
gammaCalibrationPairsList = spectrumAnalysisMapper.ReadGammaFitChannelEnergy(analysisID);
|
||||
betaCalibrationPairsList = spectrumAnalysisMapper.ReadBetaFitChannelEnergy(analysisID);
|
||||
xeResultsSpectrumList = spectrumAnalysisMapper.ReadXeResults(dbName, analysisID, sampleId);
|
||||
gammaCalibrationSpectrumList = spectrumAnalysisMapper.ReadGammaCalibrationParam("RNMAN", analysisID);
|
||||
betaCalibrationSpectrumList = spectrumAnalysisMapper.ReadBetaCalibrationParam("RNMAN", analysisID);
|
||||
roiChannelsSpectrumList = spectrumAnalysisMapper.ReadROIChannels("RNMAN", analysisID, sampleId);
|
||||
roiResultsSpectrumList = spectrumAnalysisMapper.ReadROIResults("RNMAN", analysisID, sampleId);
|
||||
}
|
||||
//判断sample文件名是否为空
|
||||
if (Objects.nonNull(sample)) {
|
||||
//拼接sample文件路径
|
||||
|
@ -197,6 +235,18 @@ public class SelfStationServiceImpl implements ISelfStationService {
|
|||
selfStationData.setSampleStruct(struct);
|
||||
selfStationData.setSampleTmpPath(sampleFilePath);
|
||||
selfStationUtil.loadFile(selfStationData, sample.getSampleId(), sample.getStatus(), "sample", map);
|
||||
// 交互库需要获取最新的ROI数据
|
||||
if (dbName.equalsIgnoreCase("man")) {
|
||||
List<GardsAnalysisRoi> roiList = analysisRoiManService.analysisRoi(analysisID);
|
||||
LinkedList<Integer> start = Lists.newLinkedList();
|
||||
LinkedList<Integer> stop = Lists.newLinkedList();
|
||||
for (GardsAnalysisRoi f : roiList) {
|
||||
start.add(f.getRoiNum() -1, f.getMinX().intValue());
|
||||
stop.add(f.getRoiNum() -1, f.getMinY().intValue());
|
||||
}
|
||||
Map<String, Object> gammaByROI = selfStationUtil.getGammaByROI("", start, stop, selfStationData);
|
||||
map.putAll(gammaByROI);
|
||||
}
|
||||
resultMap.put("sample", map);
|
||||
|
||||
// 返回Beta和Gamma的数据
|
||||
|
@ -218,6 +268,21 @@ public class SelfStationServiceImpl implements ISelfStationService {
|
|||
resultMap.put("det", map);
|
||||
}
|
||||
}
|
||||
//判断qc文件名是否为空
|
||||
if (Objects.nonNull(qc)) {
|
||||
//拼接det文件路径
|
||||
String qcFilePath = prefix + dbSpectrumFilePath.getQcFilePath();
|
||||
//返回结果map
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
//获取sample分析后的对象
|
||||
EnergySpectrumStruct struct = selfStationUtil.getSourceData(qcFilePath, "qc", selfStationData);
|
||||
if (Objects.nonNull(struct)) {
|
||||
selfStationData.setQcStruct(struct);
|
||||
selfStationData.setQcTmpPath(qcFilePath);
|
||||
selfStationUtil.loadFile(selfStationData, qc.getSampleId(), qc.getStatus(), "qc", map);
|
||||
resultMap.put("qc", map);
|
||||
}
|
||||
}
|
||||
// 初始化自建台站Configure信息
|
||||
if (!StrUtil.equals(dbName, "RNAUTO")) initConfigure(analysisID, selfStationData);
|
||||
// 初始化自建台站用户核素库信息
|
||||
|
@ -280,6 +345,18 @@ public class SelfStationServiceImpl implements ISelfStationService {
|
|||
//返回结果map
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
selfStationUtil.loadFile(selfStationData, sample.getSampleId(), sample.getStatus(), "sample", map);
|
||||
// 交互库需要获取最新的ROI数据
|
||||
if (dbName.equalsIgnoreCase("man")) {
|
||||
List<GardsAnalysisRoi> roiList = analysisRoiManService.analysisRoi(analysisID);
|
||||
LinkedList<Integer> start = Lists.newLinkedList();
|
||||
LinkedList<Integer> stop = Lists.newLinkedList();
|
||||
for (GardsAnalysisRoi f : roiList) {
|
||||
start.add(f.getRoiNum() -1, f.getMinX().intValue());
|
||||
stop.add(f.getRoiNum() -1, f.getMinY().intValue());
|
||||
}
|
||||
Map<String, Object> gammaByROI = selfStationUtil.getGammaByROI("", start, stop, selfStationData);
|
||||
map.putAll(gammaByROI);
|
||||
}
|
||||
resultMap.put("sample", map);
|
||||
// 返回Beta和Gamma的数据
|
||||
bGSpectrum(selfStationData.getSampleStruct(), map);
|
||||
|
@ -664,35 +741,39 @@ public class SelfStationServiceImpl implements ISelfStationService {
|
|||
default:
|
||||
break;
|
||||
}
|
||||
LinkedList<Integer> roiBBoundaryStart = Lists.newLinkedList();
|
||||
LinkedList<Integer> roiBBoundaryStop = Lists.newLinkedList();
|
||||
for (ROIParam roiParam : roiParams) {
|
||||
Integer ROINum = roiParam.getRoiNum();
|
||||
Map<String, Object> resultMap = selfStationUtil.statisticsROIList(roiParam.getStartChannel(), roiParam.getEndChannel(),
|
||||
struct.b_channels, struct.g_channels, struct.h_counts);
|
||||
if ( CollectionUtils.isNotEmpty(resultMap) ) {
|
||||
Integer startChannelValue = (Integer) resultMap.get("startChannel");
|
||||
Integer endChannelValue = (Integer) resultMap.get("endChannel");
|
||||
List<SeriseData> seriseDataList = (List<SeriseData>) resultMap.get("dataList");
|
||||
if (1 == ROINum) {
|
||||
map.put("ROIOneList", seriseDataList);
|
||||
map.put("ROIOneStart", startChannelValue);
|
||||
map.put("ROIOneStop", endChannelValue);
|
||||
} else if (2 == ROINum) {
|
||||
map.put("ROITwoList", seriseDataList);
|
||||
map.put("ROITwoStart", startChannelValue);
|
||||
map.put("ROITwoStop", endChannelValue);
|
||||
} else if (3 == ROINum) {
|
||||
map.put("ROIThreeList", seriseDataList);
|
||||
map.put("ROIThreeStart", startChannelValue);
|
||||
map.put("ROIThreeStop", endChannelValue);
|
||||
} else if (4 == ROINum) {
|
||||
map.put("ROIFourList", seriseDataList);
|
||||
map.put("ROIFourStart", startChannelValue);
|
||||
map.put("ROIFourStop", endChannelValue);
|
||||
}
|
||||
}
|
||||
roiBBoundaryStart.add(roiParam.getRoiNum()-1, roiParam.getStartChannel());
|
||||
roiBBoundaryStop.add(roiParam.getRoiNum()-1, roiParam.getEndChannel());
|
||||
|
||||
// Map<String, Object> resultMap = selfStationUtil.statisticsROIList(roiParam.getStartChannel(), roiParam.getEndChannel(),
|
||||
// struct.b_channels, struct.g_channels, struct.h_counts);
|
||||
// if ( CollectionUtils.isNotEmpty(resultMap) ) {
|
||||
// Integer startChannelValue = (Integer) resultMap.get("startChannel");
|
||||
// Integer endChannelValue = (Integer) resultMap.get("endChannel");
|
||||
// List<SeriseData> seriseDataList = (List<SeriseData>) resultMap.get("dataList");
|
||||
// if (1 == ROINum) {
|
||||
// map.put("ROIOneList", seriseDataList);
|
||||
// map.put("ROIOneStart", startChannelValue);
|
||||
// map.put("ROIOneStop", endChannelValue);
|
||||
// } else if (2 == ROINum) {
|
||||
// map.put("ROITwoList", seriseDataList);
|
||||
// map.put("ROITwoStart", startChannelValue);
|
||||
// map.put("ROITwoStop", endChannelValue);
|
||||
// } else if (3 == ROINum) {
|
||||
// map.put("ROIThreeList", seriseDataList);
|
||||
// map.put("ROIThreeStart", startChannelValue);
|
||||
// map.put("ROIThreeStop", endChannelValue);
|
||||
// } else if (4 == ROINum) {
|
||||
// map.put("ROIFourList", seriseDataList);
|
||||
// map.put("ROIFourStart", startChannelValue);
|
||||
// map.put("ROIFourStop", endChannelValue);
|
||||
// }
|
||||
// }
|
||||
}
|
||||
result.setSuccess(true);
|
||||
result.setResult(map);
|
||||
result.setResult(selfStationUtil.getGammaByROI(struct.system_type, roiBBoundaryStart, roiBBoundaryStop, selfStationData));
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -5219,8 +5300,8 @@ public class SelfStationServiceImpl implements ISelfStationService {
|
|||
if (!FileUtil.exist(reportPath))
|
||||
return Result.error("The automatic handler generated report does not exist!");
|
||||
result.put("Beta", FileUtil.readUtf8String(reportPath));
|
||||
List<GardsAnalysisRoi> analysisRois = analysisRoiAutoService.analysisRoi(idAnalysis);
|
||||
for (GardsAnalysisRoi analysisRoi : analysisRois) {
|
||||
List<org.jeecg.modules.base.entity.rnauto.GardsAnalysisRoi> analysisRois = analysisRoiAutoService.analysisRoi(idAnalysis);
|
||||
for (org.jeecg.modules.base.entity.rnauto.GardsAnalysisRoi analysisRoi : analysisRois) {
|
||||
Integer roiNum = analysisRoi.getRoiNum();
|
||||
String roiReportPath = analysisRoi.getReportPath();
|
||||
roiReportPath = rootPath + saveFilePath + StrUtil.SLASH + roiReportPath + FileTypeEnum.arr.getType();
|
||||
|
|
Loading…
Reference in New Issue
Block a user