修改根据台站类型获取QCFlag参数
This commit is contained in:
parent
b73dc2b9e2
commit
7425a3909a
|
@ -39,6 +39,7 @@ import org.jeecg.modules.base.entity.rnman.*;
|
||||||
import org.jeecg.modules.base.enums.*;
|
import org.jeecg.modules.base.enums.*;
|
||||||
import org.jeecg.modules.entity.*;
|
import org.jeecg.modules.entity.*;
|
||||||
import org.jeecg.modules.entity.vo.*;
|
import org.jeecg.modules.entity.vo.*;
|
||||||
|
import org.jeecg.modules.entity.vo.QCFlagParmData.Rule;
|
||||||
import org.jeecg.modules.mapper.SpectrumAnalysisMapper;
|
import org.jeecg.modules.mapper.SpectrumAnalysisMapper;
|
||||||
import org.jeecg.modules.native_jni.EnergySpectrumHandler;
|
import org.jeecg.modules.native_jni.EnergySpectrumHandler;
|
||||||
import org.jeecg.modules.native_jni.struct.BgAnalyseResult;
|
import org.jeecg.modules.native_jni.struct.BgAnalyseResult;
|
||||||
|
@ -135,7 +136,6 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements
|
||||||
private IGardsROIResultsSpectrumService gardsROIResultsSpectrumService;
|
private IGardsROIResultsSpectrumService gardsROIResultsSpectrumService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initValue(String dbName, Integer sampleId, String analyst, String sampleFileName, String gasFileName, String detFileName, String qcFileName, HttpServletRequest request) {
|
public void initValue(String dbName, Integer sampleId, String analyst, String sampleFileName, String gasFileName, String detFileName, String qcFileName, HttpServletRequest request) {
|
||||||
if (StringUtils.isNotBlank(dbName) && Objects.nonNull(sampleId)) {
|
if (StringUtils.isNotBlank(dbName) && Objects.nonNull(sampleId)) {
|
||||||
|
@ -291,7 +291,9 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements
|
||||||
//声明分页page
|
//声明分页page
|
||||||
Page<GardsSampleDataSpectrum> page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize());
|
Page<GardsSampleDataSpectrum> page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize());
|
||||||
Page<GardsSampleDataSpectrum> sampleDataPage = spectrumAnalysisMapper.getDBSpectrumListByLeftJoin(page, gardsSampleData, dbName, stationTypes, CollectStopB, AcqStartB, startTime, endTime, userStations, AllUsers, queryRequest.getField(), queryRequest.getOrder());
|
Page<GardsSampleDataSpectrum> sampleDataPage = spectrumAnalysisMapper.getDBSpectrumListByLeftJoin(page, gardsSampleData, dbName, stationTypes, CollectStopB, AcqStartB, startTime, endTime, userStations, AllUsers, queryRequest.getField(), queryRequest.getOrder());
|
||||||
sampleDataPage.getRecords().stream().forEach(item->{item.setDbName(tempDBName);});
|
sampleDataPage.getRecords().stream().forEach(item -> {
|
||||||
|
item.setDbName(tempDBName);
|
||||||
|
});
|
||||||
result.setSuccess(true);
|
result.setSuccess(true);
|
||||||
result.setResult(sampleDataPage);
|
result.setResult(sampleDataPage);
|
||||||
return result;
|
return result;
|
||||||
|
@ -409,6 +411,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Result getDBSpectrumChart(String dbName, Integer sampleId, String analyst, HttpServletRequest request) {
|
public Result getDBSpectrumChart(String dbName, Integer sampleId, String analyst, HttpServletRequest request) {
|
||||||
|
HashMap<String, GardsStations> stationInfoMap = (HashMap<String, GardsStations>) redisUtil.get("stationInfoMap");
|
||||||
Result result = new Result();
|
Result result = new Result();
|
||||||
//获取当前的用户名称
|
//获取当前的用户名称
|
||||||
String userName = JwtUtil.getUserNameByToken(request);
|
String userName = JwtUtil.getUserNameByToken(request);
|
||||||
|
@ -655,8 +658,23 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements
|
||||||
qcMap.put("fileName", betaDataFile.getQcFileName());
|
qcMap.put("fileName", betaDataFile.getQcFileName());
|
||||||
resultMap.put("qc", qcMap);
|
resultMap.put("qc", qcMap);
|
||||||
}
|
}
|
||||||
|
Integer stationId = spectrumAnalysisMapper.getStationId(betaDataFile.getSampleStruct().getSite_code());
|
||||||
|
GardsStations station = stationInfoMap.get(stationId.toString());
|
||||||
|
switch (station.getEfficCalculType()) {
|
||||||
|
case "SAUNA":
|
||||||
|
//分析状态颜色
|
||||||
|
phdFileUtil.getLightColor(StationDetailType.SAUNA, sampleMap, gasBgMap, detBgMap, qcMap);
|
||||||
|
break;
|
||||||
|
case "SAUNA2":
|
||||||
|
//分析状态颜色
|
||||||
|
phdFileUtil.getLightColor(StationDetailType.SAUNA2, sampleMap, gasBgMap, detBgMap, qcMap);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
//分析状态颜色
|
//分析状态颜色
|
||||||
phdFileUtil.getLightColor(sampleMap, gasBgMap, detBgMap, qcMap);
|
phdFileUtil.getLightColor(sampleMap, gasBgMap, detBgMap, qcMap);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
//Xe
|
//Xe
|
||||||
if (CollectionUtils.isNotEmpty(xeResultsSpectrumList)) {
|
if (CollectionUtils.isNotEmpty(xeResultsSpectrumList)) {
|
||||||
for (GardsXeResultsSpectrum xeData : xeResultsSpectrumList) {
|
for (GardsXeResultsSpectrum xeData : xeResultsSpectrumList) {
|
||||||
|
@ -696,6 +714,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements
|
||||||
@Override
|
@Override
|
||||||
public Result getFileSpectrumChart(String sampleFileName, String gasFileName, String detFileName, String qcFileName, HttpServletRequest request) {
|
public Result getFileSpectrumChart(String sampleFileName, String gasFileName, String detFileName, String qcFileName, HttpServletRequest request) {
|
||||||
Result result = new Result();
|
Result result = new Result();
|
||||||
|
HashMap<String, GardsStations> stationInfoMap = (HashMap<String, GardsStations>) redisUtil.get("stationInfoMap");
|
||||||
//获取用户名
|
//获取用户名
|
||||||
String userName = JwtUtil.getUserNameByToken(request);
|
String userName = JwtUtil.getUserNameByToken(request);
|
||||||
//上传文件路径
|
//上传文件路径
|
||||||
|
@ -777,7 +796,22 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements
|
||||||
qcMap.put("fileName", betaDataFile.getQcFileName());
|
qcMap.put("fileName", betaDataFile.getQcFileName());
|
||||||
resultMap.put("qc", qcMap);
|
resultMap.put("qc", qcMap);
|
||||||
}
|
}
|
||||||
|
Integer stationId = spectrumAnalysisMapper.getStationId(betaDataFile.getSampleStruct().getSite_code());
|
||||||
|
GardsStations station = stationInfoMap.get(stationId.toString());
|
||||||
|
switch (station.getEfficCalculType()) {
|
||||||
|
case "SAUNA":
|
||||||
|
//分析状态颜色
|
||||||
|
phdFileUtil.getLightColor(StationDetailType.SAUNA, sampleMap, gasBgMap, detBgMap, qcMap);
|
||||||
|
break;
|
||||||
|
case "SAUNA2":
|
||||||
|
//分析状态颜色
|
||||||
|
phdFileUtil.getLightColor(StationDetailType.SAUNA2, sampleMap, gasBgMap, detBgMap, qcMap);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
//分析状态颜色
|
||||||
phdFileUtil.getLightColor(sampleMap, gasBgMap, detBgMap, qcMap);
|
phdFileUtil.getLightColor(sampleMap, gasBgMap, detBgMap, qcMap);
|
||||||
|
break;
|
||||||
|
}
|
||||||
//Xe
|
//Xe
|
||||||
if (CollectionUtils.isNotEmpty(xeResultsSpectrumList)) {
|
if (CollectionUtils.isNotEmpty(xeResultsSpectrumList)) {
|
||||||
for (GardsXeResultsSpectrum xeData : xeResultsSpectrumList) {
|
for (GardsXeResultsSpectrum xeData : xeResultsSpectrumList) {
|
||||||
|
@ -1585,6 +1619,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements
|
||||||
@Override
|
@Override
|
||||||
public Result<QCResult> viewQCResult(Integer sampleId, String dbName, String sampleFileName, String gasFileName, String detFileName, HttpServletRequest request) {
|
public Result<QCResult> viewQCResult(Integer sampleId, String dbName, String sampleFileName, String gasFileName, String detFileName, HttpServletRequest request) {
|
||||||
Result<QCResult> result = new Result();
|
Result<QCResult> result = new Result();
|
||||||
|
HashMap<String, GardsStations> stationInfoMap = (HashMap<String, GardsStations>) redisUtil.get("stationInfoMap");
|
||||||
//获取用户名称
|
//获取用户名称
|
||||||
String userName = JwtUtil.getUserNameByToken(request);
|
String userName = JwtUtil.getUserNameByToken(request);
|
||||||
//读取本地缓存
|
//读取本地缓存
|
||||||
|
@ -1594,6 +1629,26 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements
|
||||||
result.error500("Load basic file information first!");
|
result.error500("Load basic file information first!");
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
Integer stationId = spectrumAnalysisMapper.getStationId(betaDataFile.getSampleStruct().getSite_code());
|
||||||
|
GardsStations station = stationInfoMap.get(stationId.toString());
|
||||||
|
QCResult qcResult = new QCResult();
|
||||||
|
switch (station.getEfficCalculType()) {
|
||||||
|
case "SAUNA":
|
||||||
|
qcResult = ProcessQCResultBranch(StationDetailType.SAUNA, betaDataFile);
|
||||||
|
break;
|
||||||
|
case "SAUNA2":
|
||||||
|
qcResult = ProcessQCResultBranch(StationDetailType.SAUNA2, betaDataFile);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
result.setSuccess(true);
|
||||||
|
result.setResult(qcResult);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Result<QCResult> ProcessQCResultBranch(BetaDataFile betaDataFile) {
|
||||||
|
Result<QCResult> result = new Result();
|
||||||
QCResult qcResult = new QCResult();
|
QCResult qcResult = new QCResult();
|
||||||
//获取各数据的范围信息
|
//获取各数据的范围信息
|
||||||
Sections sections = new Sections();
|
Sections sections = new Sections();
|
||||||
|
@ -1626,7 +1681,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements
|
||||||
if (Objects.nonNull(sampleSourceData) && Objects.nonNull(gasSourceData) && Objects.nonNull(detSourceData)) {
|
if (Objects.nonNull(sampleSourceData) && Objects.nonNull(gasSourceData) && Objects.nonNull(detSourceData)) {
|
||||||
Date collectStartDate = DateUtils.parseDate(sampleSourceData.collection_start_date + StringPool.SPACE + sampleSourceData.collection_start_time);
|
Date collectStartDate = DateUtils.parseDate(sampleSourceData.collection_start_date + StringPool.SPACE + sampleSourceData.collection_start_time);
|
||||||
Date collectStopDate = DateUtils.parseDate(sampleSourceData.collection_stop_date + StringPool.SPACE + sampleSourceData.collection_stop_time);
|
Date collectStopDate = DateUtils.parseDate(sampleSourceData.collection_stop_date + StringPool.SPACE + sampleSourceData.collection_stop_time);
|
||||||
Double collection_time = Double.valueOf((collectStopDate.getTime() - collectStartDate.getTime()) / 1000);
|
Double collection_time = (double)((collectStopDate.getTime() - collectStartDate.getTime()) / 1000);
|
||||||
String collection_time_value = String.format("%.4f", collection_time / 3600.0);
|
String collection_time_value = String.format("%.4f", collection_time / 3600.0);
|
||||||
qcResult.setCollectTimeValue(collection_time_value);
|
qcResult.setCollectTimeValue(collection_time_value);
|
||||||
if (collectionTimeSections.get(1) < collection_time / 3600.0 && collection_time / 3600.0 < collectionTimeSections.get(4)) {
|
if (collectionTimeSections.get(1) < collection_time / 3600.0 && collection_time / 3600.0 < collectionTimeSections.get(4)) {
|
||||||
|
@ -1693,6 +1748,116 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements
|
||||||
result.setResult(qcResult);
|
result.setResult(qcResult);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
private QCResult ProcessQCResultBranch(StationDetailType stationType, BetaDataFile betaDataFile) {
|
||||||
|
//region 参数信息
|
||||||
|
QCResult qcResult = new QCResult();
|
||||||
|
String pathname = parameterProperties.getFilePath() + File.separator + "parameter.xml";
|
||||||
|
//获取各数据的范围信息
|
||||||
|
Sections sections = new Sections(stationType, pathname);
|
||||||
|
List<Rule> collectionTimeRules = sections.getCollectionTimeRules();
|
||||||
|
if (CollectionUtils.isNotEmpty(collectionTimeRules)) {
|
||||||
|
String collectionMerits = collectionTimeRules.get(1).getMin() + "~" + collectionTimeRules.get(collectionTimeRules.size() - 1).getMin();
|
||||||
|
qcResult.setCollectTimeEvaluationMetrics(collectionMerits);
|
||||||
|
}
|
||||||
|
List<Rule> acquisitionTimeRules = sections.getAcquisitionTimeRules();
|
||||||
|
if (CollectionUtils.isNotEmpty(acquisitionTimeRules)) {
|
||||||
|
String acquisitionMerits = acquisitionTimeRules.get(1).getMin() + "~" + acquisitionTimeRules.get(acquisitionTimeRules.size() - 1).getMin();
|
||||||
|
qcResult.setAcquisitionTimeEvaluationMetrics(acquisitionMerits);
|
||||||
|
}
|
||||||
|
List<Rule> xeVolumeRules = sections.getXeVolumeRules();
|
||||||
|
if (CollectionUtils.isNotEmpty(xeVolumeRules)) {
|
||||||
|
String xeMerits = xeVolumeRules.get(1).getMin() + "~ ";
|
||||||
|
qcResult.setXenonVolumeEvaluationMetrics(xeMerits);
|
||||||
|
}
|
||||||
|
String xe133MDCEvaluationMetrics = "0.001 ~ 5";
|
||||||
|
qcResult.setXe133MDCEvaluationMetrics(xe133MDCEvaluationMetrics);
|
||||||
|
//endregion
|
||||||
|
|
||||||
|
//获取数据信息
|
||||||
|
GardsXeResultsSpectrum gardsXeResults = null;
|
||||||
|
List<GardsXeResultsSpectrum> xeDataList = new LinkedList<>();
|
||||||
|
try {
|
||||||
|
xeDataList = betaDataFile.getXeResultsSpectrumList();
|
||||||
|
if (CollectionUtils.isNotEmpty(xeDataList)) {
|
||||||
|
xeDataList = xeDataList.stream().filter(item -> item.getNuclideName().equals(XeNuclideName.XE_133.getType())).collect(Collectors.toList());
|
||||||
|
gardsXeResults = xeDataList.get(0);
|
||||||
|
}
|
||||||
|
//解析sample,gas,det文件并判断数据状态
|
||||||
|
EnergySpectrumStruct sampleSourceData = betaDataFile.getSampleStruct();
|
||||||
|
EnergySpectrumStruct gasSourceData = betaDataFile.getGasStruct();
|
||||||
|
EnergySpectrumStruct detSourceData = betaDataFile.getDetStruct();
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (Objects.nonNull(sampleSourceData) && Objects.nonNull(gasSourceData) && Objects.nonNull(detSourceData)) {
|
||||||
|
Date collectStartDate = DateUtils.parseDate(sampleSourceData.collection_start_date + StringPool.SPACE + sampleSourceData.collection_start_time);
|
||||||
|
Date collectStopDate = DateUtils.parseDate(sampleSourceData.collection_stop_date + StringPool.SPACE + sampleSourceData.collection_stop_time);
|
||||||
|
double collection_time = ((double) ((collectStopDate.getTime() - collectStartDate.getTime()) / 1000)) / 3600.0;
|
||||||
|
String collection_time_value = String.format("%.4f", collection_time);
|
||||||
|
qcResult.setCollectTimeValue(collection_time_value);
|
||||||
|
if (collectionTimeRules.get(1).getMin() < collection_time && collection_time < collectionTimeRules.get(collectionTimeRules.size() - 1).getMin()) {
|
||||||
|
qcResult.setCollectTimeStatus("Pass");
|
||||||
|
} else {
|
||||||
|
qcResult.setCollectTimeStatus("Failed");
|
||||||
|
}
|
||||||
|
double acquisition_live_time = sampleSourceData.acquisition_live_time / 3600.0;
|
||||||
|
String acquisition_live_sec = String.format("%.2f", sampleSourceData.acquisition_live_time / 3600.0);
|
||||||
|
qcResult.setAcquisitionTimeValue(acquisition_live_sec);
|
||||||
|
if (acquisitionTimeRules.get(1).getMin() < acquisition_live_time && acquisition_live_time < acquisitionTimeRules.get(acquisitionTimeRules.size() - 1).getMin()) {
|
||||||
|
qcResult.setAcquisitionTimeStatus("Pass");
|
||||||
|
} else {
|
||||||
|
qcResult.setAcquisitionTimeStatus("Failed");
|
||||||
|
}
|
||||||
|
|
||||||
|
String s_xe_stable_volume = String.valueOf(sampleSourceData.sample_volume_of_Xe);
|
||||||
|
qcResult.setXenonVolumeValue(s_xe_stable_volume);
|
||||||
|
if (xeVolumeRules.get(1).getMin() < sampleSourceData.sample_volume_of_Xe) {
|
||||||
|
qcResult.setXenonVolumeStatus("Pass");
|
||||||
|
} else {
|
||||||
|
qcResult.setXenonVolumeStatus("Failed");
|
||||||
|
}
|
||||||
|
//
|
||||||
|
String gasMeasurementID = gasSourceData.measurement_id;
|
||||||
|
if (gasMeasurementID.equals(sampleSourceData.gas_bk_measurement_id)) {
|
||||||
|
qcResult.setGasBgValue("Match");
|
||||||
|
qcResult.setGasBgEvaluationMetrics("Match");
|
||||||
|
qcResult.setGasBgValueAndStatus(true);
|
||||||
|
} else {
|
||||||
|
qcResult.setGasBgValue("");
|
||||||
|
qcResult.setGasBgEvaluationMetrics("");
|
||||||
|
qcResult.setGasBgValueAndStatus(false);
|
||||||
|
}
|
||||||
|
//
|
||||||
|
String detMeasurementID = detSourceData.measurement_id;
|
||||||
|
if (detMeasurementID.equals(sampleSourceData.detector_bk_measurement_id)) {
|
||||||
|
qcResult.setDetBgValue("Match");
|
||||||
|
qcResult.setDetBgEvaluationMetrics("Match");
|
||||||
|
qcResult.setDetBgValueAndStatus(true);
|
||||||
|
} else {
|
||||||
|
qcResult.setDetBgValue("");
|
||||||
|
qcResult.setDetBgEvaluationMetrics("");
|
||||||
|
qcResult.setDetBgValueAndStatus(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (RuntimeException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
if (Objects.nonNull(gardsXeResults)) {
|
||||||
|
qcResult.setXe133MDCValue(String.valueOf(gardsXeResults.getMdc()));
|
||||||
|
if (0.001 < gardsXeResults.getMdc() && gardsXeResults.getMdc() < 5.0) {
|
||||||
|
qcResult.setXe133MDCStatus("Pass");
|
||||||
|
} else {
|
||||||
|
qcResult.setXe133MDCStatus("Failed");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
qcResult.setXe133MDCValue("None");
|
||||||
|
qcResult.setXe133MDCStatus("None");
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return qcResult;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void exportQCResult(Integer sampleId, String dbName, String sampleFileName, String gasFileName, String detFileName, HttpServletRequest request, HttpServletResponse response) {
|
public void exportQCResult(Integer sampleId, String dbName, String sampleFileName, String gasFileName, String detFileName, HttpServletRequest request, HttpServletResponse response) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user