自动处理gamma部分增加推送核素,台站,sampleId等相关信息到redis

人工交互处理beta,gamma部分增加推送核素,台站,sampleId等相关信息到redis
自动处理放开gamma相关分析操作代码
This commit is contained in:
qiaoqinzheng 2023-12-07 15:04:24 +08:00
parent f474d67385
commit c90e913701
5 changed files with 128 additions and 8 deletions

View File

@ -23,7 +23,9 @@ import org.jeecg.modules.base.bizVo.AttributeItemVo;
import org.jeecg.modules.base.dto.*;
import org.jeecg.modules.base.entity.original.GardsSampleData;
import org.jeecg.modules.base.entity.rnauto.*;
import org.jeecg.modules.base.enums.DSType;
import org.jeecg.modules.base.enums.MiddleDataType;
import org.jeecg.modules.base.enums.SpectrumType;
import org.jeecg.modules.config.datasource.DataSourceSwitcher;
import org.jeecg.modules.entity.vo.*;
import org.jeecg.modules.exception.GAnalyseException;
@ -34,8 +36,14 @@ import org.springframework.transaction.TransactionStatus;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Field;
import java.text.ParseException;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.*;
import static org.jeecg.modules.service.BlockConstant.XE_131m;
@Data
@Slf4j
public class Sample_G_Analysis {
@ -169,6 +177,9 @@ public class Sample_G_Analysis {
File.separator + reportName;
// 保存文件
FileOperation.saveOrAppendFile(savePath, reportContent, false);
//发送数据到redis
middleData.setSample_id(String.valueOf(sampleId));
pushToRedis(middleData);
}catch (Exception e){
e.printStackTrace();
log.error("Sample_G_Analysis", e);
@ -185,6 +196,32 @@ public class Sample_G_Analysis {
log.info("Gamma自动处理分析--End");
}
/**
* 分析成功数据发送到Redis
*/
private void pushToRedis(GStoreMiddleProcessData middleData){
try {
Info info = new Info();
info.setStationId(middleData.sample_stationID);
info.setSampleId(middleData.sample_id);
info.setSampleName(middleData.analyses_save_filePath.substring(middleData.analyses_save_filePath.lastIndexOf(StringPool.SLASH)+1));
final Instant instant = DateUtils.parseDate(middleData.sample_collection_start).toInstant();
final LocalDateTime collectTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime();
info.setCollectionDate(collectTime);
info.setDatasource(DSType.ARMDARR.getType());
info.setFullOrPrel(this.sampleData.getSpectralQualifie());
info.setBetaOrGamma(SpectrumType.GAMMA.getType());
Map<String,String> nuclides = Maps.newHashMap();
for (int i=0; i<middleData.nucl_ided_Nuclidename.size(); i++) {
nuclides.put(middleData.nucl_ided_Nuclidename.get(i), middleData.nucl_ided_Concentration.get(i));
}
info.setNuclides(nuclides);
serviceQuotes.getRedisStreamUtil().pushAnalysis(info);
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
private void storageDataToDatabase(GStoreMiddleProcessData middleData, Map<String, QcCheckItem> qcItems){
//如果数据已经存储不在重复存储
final Integer idAnalysis = serviceQuotes.getAnalysesService().getIdAnalysis(this.sampleData.getSampleId());
@ -226,6 +263,7 @@ public class Sample_G_Analysis {
DataSourceSwitcher.clearDataSource();
}
}
/**
* 生成日志文件
* @param logFilePath

View File

@ -80,9 +80,9 @@ public class SamplephdSpectrum extends AbstractS_D_Q_G_SpectrumHandler {
Sample_B_Analysis bAnalysis = new Sample_B_Analysis(this);
bAnalysis.analysis();
}
// if (this.sourceData.system_type.equals(SystemType.PARTICULATE.getType()) || this.sourceData.system_type.equals(SystemType.GAMMA.getType())) {
// Sample_G_Analysis sample_g_analysis = new Sample_G_Analysis(super.sourceData, super.spectrumServiceQuotes, super.sampleData);
// sample_g_analysis.analysis();
// }
if (this.sourceData.system_type.equals(SystemType.PARTICULATE.getType()) || this.sourceData.system_type.equals(SystemType.GAMMA.getType())) {
Sample_G_Analysis sample_g_analysis = new Sample_G_Analysis(super.sourceData, super.spectrumServiceQuotes, super.sampleData);
sample_g_analysis.analysis();
}
}
}

View File

@ -39,6 +39,8 @@ public class BetaDataFile implements Serializable {
private String sampleId;
private String stationId;
private boolean bProcessed;
private boolean saveAnalysisResult;
@ -225,6 +227,7 @@ public class BetaDataFile implements Serializable {
qcFilePathName = "";
qcFileName = "";
sampleId = "";
stationId = "";
bProcessed = false;
saveAnalysisResult = false;

View File

@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Maps;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
@ -31,16 +32,14 @@ import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.*;
import org.jeecg.modules.base.abstracts.AbstractLogOrReport;
import org.jeecg.modules.base.bizVo.GammaRLR;
import org.jeecg.modules.base.dto.Info;
import org.jeecg.modules.base.dto.NuclideActMdaDto;
import org.jeecg.modules.base.dto.PeakInfoDto;
import org.jeecg.modules.base.entity.configuration.GardsNuclLib;
import org.jeecg.modules.base.entity.configuration.GardsNuclLinesLib;
import org.jeecg.modules.base.entity.postgre.SysUser;
import org.jeecg.modules.base.entity.rnman.GardsAnalySetting;
import org.jeecg.modules.base.enums.CalName;
import org.jeecg.modules.base.enums.CalType;
import org.jeecg.modules.base.enums.ExportTemplate;
import org.jeecg.modules.base.enums.RoleType;
import org.jeecg.modules.base.enums.*;
import org.jeecg.modules.entity.vo.*;
import org.jeecg.modules.entity.*;
import org.jeecg.modules.mapper.SpectrumAnalysisMapper;
@ -68,7 +67,9 @@ import java.sql.Statement;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.ParseException;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.*;
import java.util.stream.Collectors;
@ -4588,11 +4589,44 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
//更新detial Information
List<String> detailedInfo = gammaFileUtil.DetailedInfo(phd.getId_sample(), phd);
map.put("DetailedInformation", detailedInfo);
//发送数据到redis
middleData.setSample_id(String.valueOf(phd.getId_sample()));
pushToRedis(middleData, phd);
result.setSuccess(true);
result.setResult(map);
return result;
}
/**
* 分析成功数据发送到Redis
*/
private void pushToRedis(GStoreMiddleProcessData middleData, PHDFile phd){
try {
Info info = new Info();
info.setStationId(middleData.sample_stationID);
info.setSampleId(middleData.sample_id);
info.setSampleName(middleData.analyses_save_filePath.substring(middleData.analyses_save_filePath.lastIndexOf(StringPool.SLASH)+1));
final Instant instant = DateUtils.parseDate(middleData.sample_collection_start).toInstant();
final LocalDateTime collectTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime();
info.setCollectionDate(collectTime);
info.setDatasource(DSType.ARMDRRR.getType());
info.setFullOrPrel(phd.getHeader().getSpectrum_quantity());
info.setBetaOrGamma(SpectrumType.GAMMA.getType());
Map<String,String> nuclides = Maps.newHashMap();
for (int i=0; i<middleData.nucl_ided_Nuclidename.size(); i++) {
nuclides.put(middleData.nucl_ided_Nuclidename.get(i), middleData.nucl_ided_Concentration.get(i));
}
info.setNuclides(nuclides);
RedisStreamUtil.class.newInstance().pushAnalysis(info);
} catch (ParseException e) {
throw new RuntimeException(e);
} catch (InstantiationException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
@Transactional
public boolean SaveSampleToDB(PHDFile phd, String input_file_name) {
boolean bRet = false;

View File

@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.cache.Cache;
import com.google.common.collect.Maps;
import io.swagger.models.auth.In;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
@ -55,7 +56,9 @@ import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.text.ParseException;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.regex.Pattern;
@ -3667,6 +3670,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements
String endDate = DateUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss");
//根据台站名称获取台站id
Integer stationId = spectrumAnalysisMapper.getStationId(anlyseResultIn.getStationName());
betaDataFile.setStationId(String.valueOf(stationId));
//判断当前分析员当天是否有对应台站的排班任务
List<String> userStation = userTaskUtil.findUserStation(userName);
boolean bAnalysisResultWriteAuthority = false;
@ -3865,11 +3869,52 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements
betaDataFile.setQcSpectrumData(qcData);
map.put("qc", qcData);
}
//发送数据到redis
pushToRedis(betaDataFile);
result.setSuccess(true);
result.setResult(map);
return result;
}
/**
* 分析成功数据发送到Redis
*/
private void pushToRedis(BetaDataFile betaDataFile){
try {
Info info = new Info();
info.setStationId(betaDataFile.getStationId());
info.setSampleId(betaDataFile.getSampleId());
info.setSampleName(betaDataFile.getSampleFileName());
final Instant instant = DateUtils.parseDate(betaDataFile.getSampleStruct().collection_start_date+ StringPool.SPACE+betaDataFile.getSampleStruct().collection_start_time).toInstant();
final LocalDateTime collectTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime();
info.setCollectionDate(collectTime);
info.setDatasource(DSType.ARMDRRR.getType());
info.setFullOrPrel(betaDataFile.getSampleStruct().spectrum_quantity);
info.setBetaOrGamma(SpectrumType.BETA.getType());
Map<String,String> nuclides = Maps.newHashMap();
for (int i=0; i< betaDataFile.getXeDataList().size(); i++) {
GardsXeResults xeResults = betaDataFile.getXeDataList().get(i);
if (xeResults.getNuclideName().equalsIgnoreCase(XeNuclideName.XE_131m.getType())) {
nuclides.put(XeNuclideName.XE_131m.getType(), String.valueOf(xeResults.getConc()));
} else if (xeResults.getNuclideName().equalsIgnoreCase(XeNuclideName.XE_133.getType())) {
nuclides.put(XeNuclideName.XE_133.getType(), String.valueOf(xeResults.getConc()));
} else if (xeResults.getNuclideName().equalsIgnoreCase(XeNuclideName.XE_133m.getType())) {
nuclides.put(XeNuclideName.XE_133m.getType(), String.valueOf(xeResults.getConc()));
} else if (xeResults.getNuclideName().equalsIgnoreCase(XeNuclideName.XE_135.getType())) {
nuclides.put(XeNuclideName.XE_135.getType(), String.valueOf(xeResults.getConc()));
}
}
info.setNuclides(nuclides);
RedisStreamUtil.class.newInstance().pushAnalysis(info);
} catch (ParseException e) {
throw new RuntimeException(e);
} catch (InstantiationException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
/**
* 获取需要导出的数据 (saveToHtml|saveToTxt|saveToExcel)
*/