feat:ExportFile

This commit is contained in:
nieziyan 2023-09-06 20:07:10 +08:00
parent a210b75205
commit 61f328d577
15 changed files with 249 additions and 54 deletions

View File

@ -258,5 +258,25 @@
<artifactId>commons-net</artifactId> <artifactId>commons-net</artifactId>
<version>3.3</version> <version>3.3</version>
</dependency> </dependency>
<!--<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls-poi</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls-jexcel</artifactId>
<version>1.0.8</version>
</dependency>
<dependency>
<groupId>org.jxls</groupId>
<artifactId>jxls-reader</artifactId>
<version>2.0.5</version>
</dependency>-->
</dependencies> </dependencies>
</project> </project>

View File

@ -1,10 +1,19 @@
package org.jeecg.common.util; package org.jeecg.common.util;
import cn.hutool.core.util.ObjectUtil;
import org.apache.poi.ss.usermodel.Workbook;
import org.jeecg.modules.base.dto.QCResultDto;
import org.jeecgframework.poi.excel.ExcelExportUtil;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.TemplateExportParams;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.Map;
public class ExportUtil { public class ExportUtil {
@ -33,4 +42,63 @@ public class ExportUtil {
response.setHeader("Content-disposition", "attachment;filename=" + name); response.setHeader("Content-disposition", "attachment;filename=" + name);
return response.getOutputStream(); return response.getOutputStream();
} }
public static <T> void exportXls(HttpServletResponse response, Class<T> target,
List<T> data, String sheetName, String fileName){
ExportParams params = new ExportParams();
params.setSheetName(sheetName);
Workbook workbook = null;
OutputStream outputStream = null;
try {
// 设置文件名Excel类型(xls|xlsx)
outputStream = ExportUtil.xls(response,fileName);
workbook = ExcelExportUtil.
exportExcel(params, target, data);
workbook.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if (ObjectUtil.isNotNull(outputStream))
outputStream.close();
if (ObjectUtil.isNotNull(workbook))
workbook.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static <T> void exportXls(HttpServletResponse response, Class<T> target, List<T> data){
exportXls(response, target, data, "sheet1", "file");
}
public static TemplateExportParams excelTemplate(String name){
//return new TemplateExportParams("C:/Users/a/Desktop/"+ name +".xlsx");
return new TemplateExportParams("E:\\Code\\IDEA\\AnalysisSystemForRadionuclide\\jeecg-boot-base-core\\src\\main\\resources\\excelTemplate\\"+ name +".xlsx");
}
public static void exportXls(HttpServletResponse response, String template,
Map<String,Object> data, String fileName){
TemplateExportParams params = excelTemplate(template);
Workbook workbook = null;
OutputStream outputStream = null;
try {
// 设置文件名Excel类型(xls|xlsx)
outputStream = ExportUtil.xls(response,fileName);
workbook = ExcelExportUtil.exportExcel(params, data);
workbook.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if (ObjectUtil.isNotNull(outputStream))
outputStream.close();
if (ObjectUtil.isNotNull(workbook))
workbook.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
} }

View File

@ -0,0 +1,14 @@
package org.jeecg.modules.base.dto;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
@Data
public class QCResultDto {
@Excel(name = "Name",orderNum = "1",width = 30)
private String fieldName;
@Excel(name = "Value",orderNum = "2",width = 10)
private Object fieldValue;
}

View File

@ -1,18 +1,23 @@
package org.jeecg.modules.entity.vo; package org.jeecg.modules.entity.vo;
import lombok.Data; import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable; import java.io.Serializable;
@Data @Data
public class TableQCResult implements Serializable { public class TableQCResult implements Serializable {
@Excel(name = "Name",orderNum = "1",width = 20)
private String name; private String name;
@Excel(name = "Flag",orderNum = "2",width = 10)
private String flag; private String flag;
@Excel(name = "Value",orderNum = "3",width = 15)
private double value; private double value;
@Excel(name = "Standard",orderNum = "4",width = 30)
private String standard; private String standard;
} }

View File

@ -62,7 +62,7 @@ public class Sample_G_Analysis {
saveNuclIded(middleData,sampleId,IdAnalysis); saveNuclIded(middleData,sampleId,IdAnalysis);
/* Gards_Qc_Check 数据表保存 */ /* Gards_Qc_Check 数据表保存 */
saveQcCheck(middleData,sampleId,IdAnalysis); saveQcCheck(middleData,sampleId,IdAnalysis);
// 收尾处理 ==> 写日志文件和报告文件 /** 收尾处理 ==> 写日志文件和报告文件 **/
}catch (Exception e){ }catch (Exception e){
e.printStackTrace(); e.printStackTrace();

View File

@ -75,19 +75,21 @@ public class GammaFileUtil {
pathName = StringPool.SLASH + spectrumPathProperties.getRootPath() + StringPool.SLASH + pathName; pathName = StringPool.SLASH + spectrumPathProperties.getRootPath() + StringPool.SLASH + pathName;
ftpClient.changeWorkingDirectory(pathName); ftpClient.changeWorkingDirectory(pathName);
List<FTPFile> ftpFiles = Arrays.asList(ftpClient.listFiles()); List<FTPFile> ftpFiles = Arrays.asList(ftpClient.listFiles());
ftpFiles = ftpFiles.stream().filter(item-> item.getName().equals(fileName)).collect(Collectors.toList()); ftpFiles = ftpFiles.stream().filter(item -> item.getName().equals(fileName)).collect(Collectors.toList());
if (ftpFiles.size() == 0){ if (ftpFiles.size() == 0) {
result.error500("ftp获取文件数据失败"); result.error500("ftp获取文件数据失败");
return false; return false;
} }
FTPFile ftpFile = ftpFiles.get(0); FTPFile ftpFile = ftpFiles.get(0);
if (Objects.nonNull(ftpFile)){ if (Objects.nonNull(ftpFile)) {
InputStream inputStream = ftpClient.retrieveFileStream(ftpFile.getName()); InputStream inputStream = ftpClient.retrieveFileStream(ftpFile.getName());
//声明一个临时文件 //声明一个临时文件
File file = File.createTempFile("tmp", null); File file = File.createTempFile("tmp", null);
//将ftp文件的输入流复制给临时文件 //将ftp文件的输入流复制给临时文件
FileUtils.copyInputStreamToFile(inputStream, file); FileUtils.copyInputStreamToFile(inputStream, file);
//读取文件信息 //读取文件信息
//String path = "C:\\Users\\a\\Desktop\\AUX04_005-20230601_1405_S_FULL_40186.PHD";
//EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(path);
EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(file.getAbsolutePath()); EnergySpectrumStruct struct = EnergySpectrumHandler.getSourceData(file.getAbsolutePath());
//MsgInfo //MsgInfo
phd.getMsgInfo().setMsg_id(struct.msg_id); phd.getMsgInfo().setMsg_id(struct.msg_id);
@ -109,64 +111,64 @@ public class GammaFileUtil {
//Comment //Comment
phd.setOriTotalCmt(struct.comment); phd.setOriTotalCmt(struct.comment);
//Collection //Collection
if (StringUtils.isNotBlank(struct.collection_start_date) || StringUtils.isNotBlank(struct.collection_start_time) || StringUtils.isNotBlank(struct.collection_stop_date) || StringUtils.isNotBlank(struct.collection_stop_time) || Objects.nonNull(struct.air_volume)){ if (StringUtils.isNotBlank(struct.collection_start_date) || StringUtils.isNotBlank(struct.collection_start_time) || StringUtils.isNotBlank(struct.collection_stop_date) || StringUtils.isNotBlank(struct.collection_stop_time) || Objects.nonNull(struct.air_volume)) {
phd.getCollect().setCollection_start_date(struct.collection_start_date); phd.getCollect().setCollection_start_date(struct.collection_start_date);
phd.getCollect().setCollection_start_time(struct.collection_start_time); phd.getCollect().setCollection_start_time(struct.collection_start_time);
phd.getCollect().setCollection_stop_date(struct.collection_stop_date); phd.getCollect().setCollection_stop_date(struct.collection_stop_date);
phd.getCollect().setCollection_stop_time(struct.collection_stop_time); phd.getCollect().setCollection_stop_time(struct.collection_stop_time);
phd.getCollect().setAir_volume(struct.air_volume); phd.getCollect().setAir_volume(struct.air_volume);
if(phd.getCollect().getCollection_start_time().indexOf('.')<0) { if (phd.getCollect().getCollection_start_time().indexOf('.') < 0) {
phd.getCollect().setCollection_start_time(phd.getCollect().getCollection_start_time()+".0"); phd.getCollect().setCollection_start_time(phd.getCollect().getCollection_start_time() + ".0");
} }
if(phd.getCollect().getCollection_stop_time().indexOf('.')<0) { if (phd.getCollect().getCollection_stop_time().indexOf('.') < 0) {
phd.getCollect().setCollection_stop_time(phd.getCollect().getCollection_stop_time()+".0"); phd.getCollect().setCollection_stop_time(phd.getCollect().getCollection_stop_time() + ".0");
} }
}else { } else {
phd.getCollect().setAir_volume(0.0); phd.getCollect().setAir_volume(0.0);
} }
//Acquisition //Acquisition
if (StringUtils.isNotBlank(struct.acquisition_start_date) || StringUtils.isNotBlank(struct.acquisition_start_time) || Objects.nonNull(struct.acquisition_real_time) || Objects.nonNull(struct.acquisition_live_time)){ if (StringUtils.isNotBlank(struct.acquisition_start_date) || StringUtils.isNotBlank(struct.acquisition_start_time) || Objects.nonNull(struct.acquisition_real_time) || Objects.nonNull(struct.acquisition_live_time)) {
phd.getAcq().setAcquisition_start_date(struct.acquisition_start_date); phd.getAcq().setAcquisition_start_date(struct.acquisition_start_date);
phd.getAcq().setAcquisition_start_time(struct.acquisition_start_time); phd.getAcq().setAcquisition_start_time(struct.acquisition_start_time);
phd.getAcq().setAcquisition_real_time(struct.acquisition_real_time); phd.getAcq().setAcquisition_real_time(struct.acquisition_real_time);
phd.getAcq().setAcquisition_live_time(struct.acquisition_live_time); phd.getAcq().setAcquisition_live_time(struct.acquisition_live_time);
if(phd.getAcq().getAcquisition_start_time().indexOf('.')<0) { if (phd.getAcq().getAcquisition_start_time().indexOf('.') < 0) {
phd.getAcq().setAcquisition_start_time(phd.getAcq().getAcquisition_start_time()+".0"); phd.getAcq().setAcquisition_start_time(phd.getAcq().getAcquisition_start_time() + ".0");
} }
}else { } else {
phd.getAcq().setAcquisition_live_time(0.0); phd.getAcq().setAcquisition_live_time(0.0);
phd.getAcq().setAcquisition_real_time(0.0); phd.getAcq().setAcquisition_real_time(0.0);
} }
//Processing //Processing
if (Objects.nonNull(struct.sample_volume_of_Xe) || Objects.nonNull(struct.uncertainty_1) || Objects.nonNull(struct.Xe_collection_yield) || Objects.nonNull(struct.uncertainty_2) || StringUtils.isNotBlank(struct.archive_bottle_id) ){ if (Objects.nonNull(struct.sample_volume_of_Xe) || Objects.nonNull(struct.uncertainty_1) || Objects.nonNull(struct.Xe_collection_yield) || Objects.nonNull(struct.uncertainty_2) || StringUtils.isNotBlank(struct.archive_bottle_id)) {
phd.getProcess().setSample_volume_of_Xe(struct.sample_volume_of_Xe); phd.getProcess().setSample_volume_of_Xe(struct.sample_volume_of_Xe);
phd.getProcess().setUncertainty_1(struct.uncertainty_1); phd.getProcess().setUncertainty_1(struct.uncertainty_1);
phd.getProcess().setXe_collection_yield(struct.Xe_collection_yield); phd.getProcess().setXe_collection_yield(struct.Xe_collection_yield);
phd.getProcess().setUncertainty_2(struct.uncertainty_2); phd.getProcess().setUncertainty_2(struct.uncertainty_2);
phd.getProcess().setArchive_bottle_id(struct.archive_bottle_id); phd.getProcess().setArchive_bottle_id(struct.archive_bottle_id);
}else { } else {
phd.getProcess().setSample_volume_of_Xe(0.0); phd.getProcess().setSample_volume_of_Xe(0.0);
phd.getProcess().setXe_collection_yield(0.0); phd.getProcess().setXe_collection_yield(0.0);
phd.getProcess().setUncertainty_1(0.0); phd.getProcess().setUncertainty_1(0.0);
phd.getProcess().setUncertainty_2(0.0); phd.getProcess().setUncertainty_2(0.0);
} }
//Sample //Sample
if (Objects.nonNull(struct.dimension_1) || Objects.nonNull(struct.dimension_2)){ if (Objects.nonNull(struct.dimension_1) || Objects.nonNull(struct.dimension_2)) {
phd.getSampleBlock().setDimension_1(struct.dimension_1); phd.getSampleBlock().setDimension_1(struct.dimension_1);
phd.getSampleBlock().setDimension_2(struct.dimension_2); phd.getSampleBlock().setDimension_2(struct.dimension_2);
}else { } else {
phd.getSampleBlock().setDimension_1(0.0); phd.getSampleBlock().setDimension_1(0.0);
phd.getSampleBlock().setDimension_2(0.0); phd.getSampleBlock().setDimension_2(0.0);
} }
//Calibration //Calibration
if (StringUtils.isNotBlank(struct.date_calibration) || StringUtils.isNotBlank(struct.time_calibration)){ if (StringUtils.isNotBlank(struct.date_calibration) || StringUtils.isNotBlank(struct.time_calibration)) {
phd.getCalibration().setDate_calibration(struct.date_calibration); phd.getCalibration().setDate_calibration(struct.date_calibration);
phd.getCalibration().setTime_calibration(struct.time_calibration); phd.getCalibration().setTime_calibration(struct.time_calibration);
} }
//Certificate //Certificate
if (Objects.nonNull(struct.total_source_activity) || StringUtils.isNotBlank(struct.assay_date) || StringUtils.isNotBlank(struct.assay_time) || StringUtils.isNotBlank(struct.units_activity) || CollectionUtils.isNotEmpty(struct.nuclide_name) if (Objects.nonNull(struct.total_source_activity) || StringUtils.isNotBlank(struct.assay_date) || StringUtils.isNotBlank(struct.assay_time) || StringUtils.isNotBlank(struct.units_activity) || CollectionUtils.isNotEmpty(struct.nuclide_name)
|| CollectionUtils.isNotEmpty(struct.half_life_time) || CollectionUtils.isNotEmpty(struct.time_unit) || CollectionUtils.isNotEmpty(struct.activity_nuclide_time_assay) || CollectionUtils.isNotEmpty(struct.uncertainty) || CollectionUtils.isNotEmpty(struct.half_life_time) || CollectionUtils.isNotEmpty(struct.time_unit) || CollectionUtils.isNotEmpty(struct.activity_nuclide_time_assay) || CollectionUtils.isNotEmpty(struct.uncertainty)
|| CollectionUtils.isNotEmpty(struct.cer_g_energy) || CollectionUtils.isNotEmpty(struct.g_intensity) || CollectionUtils.isNotEmpty(struct.electron_decay_mode) || CollectionUtils.isNotEmpty(struct.maximum_energy) || CollectionUtils.isNotEmpty(struct.intensity_b_particle) || Objects.nonNull(struct.record_count)){ || CollectionUtils.isNotEmpty(struct.cer_g_energy) || CollectionUtils.isNotEmpty(struct.g_intensity) || CollectionUtils.isNotEmpty(struct.electron_decay_mode) || CollectionUtils.isNotEmpty(struct.maximum_energy) || CollectionUtils.isNotEmpty(struct.intensity_b_particle) || Objects.nonNull(struct.record_count)) {
phd.getCertificate().setTotal_source_activity(struct.total_source_activity); phd.getCertificate().setTotal_source_activity(struct.total_source_activity);
phd.getCertificate().setAssay_date(struct.assay_date); phd.getCertificate().setAssay_date(struct.assay_date);
phd.getCertificate().setAssay_time(struct.assay_time); phd.getCertificate().setAssay_time(struct.assay_time);
@ -184,23 +186,23 @@ public class GammaFileUtil {
phd.getCertificate().setRecord_count(struct.record_count); phd.getCertificate().setRecord_count(struct.record_count);
} }
//g_Spectrum //g_Spectrum
if (Objects.nonNull(struct.num_g_channel) || Objects.nonNull(struct.g_energy_span) || Objects.nonNull(struct.g_begin_channel) || CollectionUtils.isNotEmpty(struct.g_counts)){ if (Objects.nonNull(struct.num_g_channel) || Objects.nonNull(struct.g_energy_span) || Objects.nonNull(struct.g_begin_channel) || CollectionUtils.isNotEmpty(struct.g_counts)) {
phd.getSpec().setNum_g_channel(struct.num_g_channel); phd.getSpec().setNum_g_channel(struct.num_g_channel);
phd.getSpec().setG_energy_span(struct.g_energy_span); phd.getSpec().setG_energy_span(struct.g_energy_span);
phd.getSpec().setBegin_channel(struct.g_begin_channel); phd.getSpec().setBegin_channel(struct.g_begin_channel);
phd.getSpec().setCounts(struct.g_counts); phd.getSpec().setCounts(struct.g_counts);
int i=0; int i = 0;
for (;i<phd.getSpec().getNum_g_channel();++i){ for (; i < phd.getSpec().getNum_g_channel(); ++i) {
if(phd.getSpec().getCounts().get(i) > 0){ if (phd.getSpec().getCounts().get(i) > 0) {
break; break;
} }
} }
if(i == phd.getSpec().getNum_g_channel()){ if (i == phd.getSpec().getNum_g_channel()) {
phd.setValid(false); phd.setValid(false);
} }
} }
//g_Energy //g_Energy
if (CollectionUtils.isNotEmpty(struct.g_energy) || CollectionUtils.isNotEmpty(struct.g_centroid_channel) || CollectionUtils.isNotEmpty(struct.g_uncertainty) || Objects.nonNull(struct.g_record_count)){ if (CollectionUtils.isNotEmpty(struct.g_energy) || CollectionUtils.isNotEmpty(struct.g_centroid_channel) || CollectionUtils.isNotEmpty(struct.g_uncertainty) || Objects.nonNull(struct.g_record_count)) {
GEnergyBlock gEnergyBlock = new GEnergyBlock(); GEnergyBlock gEnergyBlock = new GEnergyBlock();
gEnergyBlock.setG_energy(struct.g_energy); gEnergyBlock.setG_energy(struct.g_energy);
gEnergyBlock.setCentroid_channel(struct.g_centroid_channel); gEnergyBlock.setCentroid_channel(struct.g_centroid_channel);
@ -209,7 +211,7 @@ public class GammaFileUtil {
phd.getMapEnerKD().put(CalName.CalPHD.getType(), gEnergyBlock); phd.getMapEnerKD().put(CalName.CalPHD.getType(), gEnergyBlock);
} }
//g_Resolution //g_Resolution
if (CollectionUtils.isNotEmpty(struct.g_r_energy) || CollectionUtils.isNotEmpty(struct.g_r_FWHM) || CollectionUtils.isNotEmpty(struct.g_r_uncertainty) || Objects.nonNull(struct.g_r_record_count)){ if (CollectionUtils.isNotEmpty(struct.g_r_energy) || CollectionUtils.isNotEmpty(struct.g_r_FWHM) || CollectionUtils.isNotEmpty(struct.g_r_uncertainty) || Objects.nonNull(struct.g_r_record_count)) {
GResolutionBlock gResolutionBlock = new GResolutionBlock(); GResolutionBlock gResolutionBlock = new GResolutionBlock();
gResolutionBlock.setG_energy(struct.g_r_energy); gResolutionBlock.setG_energy(struct.g_r_energy);
gResolutionBlock.setFWHM(struct.g_r_FWHM); gResolutionBlock.setFWHM(struct.g_r_FWHM);
@ -218,7 +220,7 @@ public class GammaFileUtil {
phd.getMapResoKD().put(CalName.CalPHD.getType(), gResolutionBlock); phd.getMapResoKD().put(CalName.CalPHD.getType(), gResolutionBlock);
} }
//g_Efficiency //g_Efficiency
if (CollectionUtils.isNotEmpty(struct.g_e_energy) || CollectionUtils.isNotEmpty(struct.g_e_efficiency) || CollectionUtils.isNotEmpty(struct.g_e_uncertainty) || Objects.nonNull(struct.g_e_record_count)){ if (CollectionUtils.isNotEmpty(struct.g_e_energy) || CollectionUtils.isNotEmpty(struct.g_e_efficiency) || CollectionUtils.isNotEmpty(struct.g_e_uncertainty) || Objects.nonNull(struct.g_e_record_count)) {
GEfficiencyBlock gEfficiencyBlock = new GEfficiencyBlock(); GEfficiencyBlock gEfficiencyBlock = new GEfficiencyBlock();
gEfficiencyBlock.setG_energy(struct.g_e_energy); gEfficiencyBlock.setG_energy(struct.g_e_energy);
gEfficiencyBlock.setEfficiency(struct.g_e_efficiency); gEfficiencyBlock.setEfficiency(struct.g_e_efficiency);
@ -227,7 +229,7 @@ public class GammaFileUtil {
phd.getMapEffiKD().put(CalName.CalPHD.getType(), gEfficiencyBlock); phd.getMapEffiKD().put(CalName.CalPHD.getType(), gEfficiencyBlock);
} }
//TotalEff //TotalEff
if (CollectionUtils.isNotEmpty(struct.t_g_energy) || CollectionUtils.isNotEmpty(struct.total_efficiency) || CollectionUtils.isNotEmpty(struct.t_uncertainty) || Objects.nonNull(struct.t_record_count)){ if (CollectionUtils.isNotEmpty(struct.t_g_energy) || CollectionUtils.isNotEmpty(struct.total_efficiency) || CollectionUtils.isNotEmpty(struct.t_uncertainty) || Objects.nonNull(struct.t_record_count)) {
TotaleffBlock totaleffBlock = new TotaleffBlock(); TotaleffBlock totaleffBlock = new TotaleffBlock();
totaleffBlock.setG_energy(struct.t_g_energy); totaleffBlock.setG_energy(struct.t_g_energy);
totaleffBlock.setTotal_efficiency(struct.total_efficiency); totaleffBlock.setTotal_efficiency(struct.total_efficiency);
@ -237,18 +239,19 @@ public class GammaFileUtil {
} }
// 初始化默认分析设置 // 初始化默认分析设置
if(phd.getHeader().getSystem_type().equals("P")) { if (phd.getHeader().getSystem_type().equals("P")) {
phd.getSetting().setECutAnalysis_Low(35.0); phd.getSetting().setECutAnalysis_Low(35.0);
phd.getSetting().setBUpdateCal(true); phd.getSetting().setBUpdateCal(true);
} }
phd.getSetting().setRefTime_conc(DateUtils.parseDate(phd.getCollect().getCollection_start_date() + " " + phd.getCollect().getCollection_start_time().substring(0, phd.getCollect().getCollection_start_time().indexOf(StringPool.DOT)),"yyyy/MM/dd HH:mm:ss")); phd.getSetting().setRefTime_conc(DateUtils.parseDate(phd.getCollect().getCollection_start_date() + " " + phd.getCollect().getCollection_start_time().substring(0, phd.getCollect().getCollection_start_time().indexOf(StringPool.DOT)), "yyyy/MM/dd HH:mm:ss"));
phd.getSetting().setRefTime_act(DateUtils.parseDate(phd.getAcq().getAcquisition_start_date() + " " + phd.getAcq().getAcquisition_start_time().substring(0, phd.getAcq().getAcquisition_start_time().indexOf(StringPool.DOT)),"yyyy/MM/dd HH:mm:ss")); phd.getSetting().setRefTime_act(DateUtils.parseDate(phd.getAcq().getAcquisition_start_date() + " " + phd.getAcq().getAcquisition_start_time().substring(0, phd.getAcq().getAcquisition_start_time().indexOf(StringPool.DOT)), "yyyy/MM/dd HH:mm:ss"));
phd.setUsedSetting(phd.getSetting()); phd.setUsedSetting(phd.getSetting());
phd.setBAnalyed(false); phd.setBAnalyed(false);
phd.setAnaly_start_time(DateUtils.formatDate(new Date(), "yyyy/MM/dd HH:mm:ss")); phd.setAnaly_start_time(DateUtils.formatDate(new Date(), "yyyy/MM/dd HH:mm:ss"));
} }
} catch (IOException e) { }catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} catch (ParseException e) { } catch (ParseException e) {
throw new RuntimeException(e); throw new RuntimeException(e);

View File

@ -1,10 +1,8 @@
package org.jeecg.modules.controller; package org.jeecg.modules.controller;
import cn.hutool.core.collection.CollUtil;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.entity.vo.ChangeData; import org.jeecg.modules.entity.vo.*;
import org.jeecg.modules.entity.vo.CoeffData;
import org.jeecg.modules.entity.vo.ConfigureData;
import org.jeecg.modules.entity.vo.InputData;
import org.jeecg.modules.service.IGammaService; import org.jeecg.modules.service.IGammaService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -189,11 +187,25 @@ public class GammaController {
return gammaService.sampleInformation(sampleId, fileName); return gammaService.sampleInformation(sampleId, fileName);
} }
@GetMapping("exportSampleInformation")
public void exportSampleInformation(Integer sampleId, String fileName,
HttpServletResponse response){
gammaService.exportSampleInformation(sampleId, fileName, response);
}
@GetMapping("viewQCResult") @GetMapping("viewQCResult")
public Result viewQCResult(Integer sampleId, String fileName){ public Result<List<TableQCResult>> viewQCResult(Integer sampleId, String fileName){
return gammaService.viewQCResult(sampleId, fileName); return gammaService.viewQCResult(sampleId, fileName);
} }
@GetMapping("exportQCResult")
public void exportQCResult(Integer sampleId, String fileName,HttpServletResponse response){
Result<List<TableQCResult>> result = gammaService.viewQCResult(sampleId, fileName);
List<TableQCResult> tableQCResults = result.getResult();
if (CollUtil.isEmpty(tableQCResults))return;
gammaService.exportQCResult(tableQCResults,response);
}
@GetMapping("viewRLR") @GetMapping("viewRLR")
public Result viewRLR(Integer sampleId, String fileName){ public Result viewRLR(Integer sampleId, String fileName){
return gammaService.viewRLR(sampleId, fileName); return gammaService.viewRLR(sampleId, fileName);

View File

@ -1,14 +1,13 @@
package org.jeecg.modules.controller; package org.jeecg.modules.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.QueryRequest;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.entity.GardsSampleDataSpectrum; import org.jeecg.modules.entity.GardsSampleDataSpectrum;
import org.jeecg.modules.entity.vo.AnalyseData; import org.jeecg.modules.entity.vo.*;
import org.jeecg.modules.entity.vo.BgDataAnlyseResultIn;
import org.jeecg.modules.entity.vo.FittingBody;
import org.jeecg.modules.entity.vo.StatisticsQueryData;
import org.jeecg.modules.service.ISpectrumAnalysisService; import org.jeecg.modules.service.ISpectrumAnalysisService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
@ -103,6 +102,16 @@ public class SpectrumAnalysesController {
return spectrumAnalysisService.viewQCResult(sampleId); return spectrumAnalysisService.viewQCResult(sampleId);
} }
@GetMapping("exportQCResult")
@ApiOperation(value = "导出QC Result数据", notes = "导出QC Result数据")
public void exportQCResult(Integer sampleId,HttpServletResponse response){
Result<QCResult> result = spectrumAnalysisService.viewQCResult(sampleId);
QCResult qcResult = result.getResult();
if (ObjectUtil.isNull(qcResult))return;
spectrumAnalysisService.exportQCResult(qcResult,response);
}
@GetMapping("viewRLR") @GetMapping("viewRLR")
@ApiOperation(value = "查看RLR数据", notes = "查看RLR数据") @ApiOperation(value = "查看RLR数据", notes = "查看RLR数据")
public Result viewRLR(Integer sampleId){ public Result viewRLR(Integer sampleId){
@ -183,4 +192,12 @@ public class SpectrumAnalysesController {
return spectrumAnalysisService.saveToDB(anlyseResultIn); return spectrumAnalysisService.saveToDB(anlyseResultIn);
} }
public static void main(String[] args) {
String str = "\n#FILE INFORMATION\n SampleMeasID: AUX04_005-2023/06/18-14:05\n GASBKMeasID: AUX04_005-2023/06/18-02:05\n DETBKMeasID: AUX04_005-2022/04/22-13:27\n SRID: 04202306171811X\n\n#COLLECTION INFORMATION\n Station CODE: AUX04\n Detector CODE: AUX04_005\n Sample ID: 426132\n Collection Start: 2023/06/17 18:54:10\n Collection Stop: 2023/06/18 06:54:08\n Collection TIME: 43198.00\n Sample Volume[m3]: 14.410883\n Xe Volume[cm3]: 1.00978\n\n#ACQUISITION INFORMATION\n Acquisition Start: 2023/06/18 14:05:09\n Acq Real Time: 40200.803\n Acq Live Time: 40187.202\n\n";
String[] parts = str.split("\\n");
for (String part : parts) {
System.out.println(part);
}
}
} }

View File

@ -6,6 +6,7 @@ import org.jeecg.modules.entity.vo.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
import java.util.Map;
public interface IGammaService{ public interface IGammaService{
@ -72,9 +73,14 @@ public interface IGammaService{
Result Spectrum(Integer sampleId, String fileName); Result Spectrum(Integer sampleId, String fileName);
Result sampleInformation(Integer sampleId, String fileName); Result<Map<String, String>> sampleInformation(Integer sampleId, String fileName);
Result viewQCResult(Integer sampleId, String fileName); void exportSampleInformation(Integer sampleId, String fileName,
HttpServletResponse response);
Result<List<TableQCResult>> viewQCResult(Integer sampleId, String fileName);
void exportQCResult(List<TableQCResult> data,HttpServletResponse response);
Result viewRLR(Integer sampleId, String fileName); Result viewRLR(Integer sampleId, String fileName);

View File

@ -37,7 +37,9 @@ public interface ISpectrumAnalysisService {
Result viewSampleInformation(Integer sampleId); Result viewSampleInformation(Integer sampleId);
Result viewQCResult(Integer sampleId); Result<QCResult> viewQCResult(Integer sampleId);
void exportQCResult(QCResult qcResult,HttpServletResponse response);
Result viewRLR(Integer sampleId); Result viewRLR(Integer sampleId);

View File

@ -1,5 +1,6 @@
package org.jeecg.modules.service.impl; package org.jeecg.modules.service.impl;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@ -8,6 +9,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.google.common.cache.Cache; import com.google.common.cache.Cache;
import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile; import org.apache.commons.net.ftp.FTPFile;
import org.jeecg.common.Excel.ExportExcel;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.common.cache.LocalCache; import org.jeecg.common.cache.LocalCache;
import org.jeecg.common.properties.SpectrumPathProperties; import org.jeecg.common.properties.SpectrumPathProperties;
@ -20,15 +22,17 @@ import org.jeecg.modules.entity.*;
import org.jeecg.modules.mapper.SpectrumAnalysisMapper; import org.jeecg.modules.mapper.SpectrumAnalysisMapper;
import org.jeecg.modules.native_jni.CalValuesHandler; import org.jeecg.modules.native_jni.CalValuesHandler;
import org.jeecg.modules.service.*; import org.jeecg.modules.service.*;
import org.jeecgframework.poi.excel.ExcelExportUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.core.io.Resource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.servlet.ServletOutputStream; import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.*;
import java.io.InputStream;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.sql.Connection; import java.sql.Connection;
import java.sql.ResultSet; import java.sql.ResultSet;
@ -1432,8 +1436,8 @@ public class GammaServiceImpl implements IGammaService {
} }
@Override @Override
public Result sampleInformation(Integer sampleId, String fileName) { public Result<Map<String, String>> sampleInformation(Integer sampleId, String fileName) {
Result result = new Result(); Result<Map<String, String>> result = new Result();
Cache<String, PHDFile> phdCache = localCache.getPHDCache(); Cache<String, PHDFile> phdCache = localCache.getPHDCache();
PHDFile phd = phdCache.getIfPresent(fileName); PHDFile phd = phdCache.getIfPresent(fileName);
if (Objects.isNull(phd)){ if (Objects.isNull(phd)){
@ -1478,8 +1482,23 @@ public class GammaServiceImpl implements IGammaService {
} }
@Override @Override
public Result viewQCResult(Integer sampleId, String fileName) { public void exportSampleInformation(Integer sampleId, String fileName,
Result result = new Result(); HttpServletResponse response) {
/*Result<Map<String, String>> result = sampleInformation(sampleId, fileName);
Map<String, String> sampleInfo = result.getResult();
if (MapUtil.isEmpty(sampleInfo)) return;*/
/*Map<String, Object> data = sampleInfo.entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));*/
/*String exportFileName = "SampleInfo-Gamma.xls";
ExportUtil.exportXls(response,"SampleInfo-G",data,exportFileName);*/
Map<String, Object> data = new HashMap<>();
data.put("name","123");
data.put("sex",1);
}
@Override
public Result<List<TableQCResult>> viewQCResult(Integer sampleId, String fileName) {
Result<List<TableQCResult>> result = new Result();
Cache<String, PHDFile> phdCache = localCache.getPHDCache(); Cache<String, PHDFile> phdCache = localCache.getPHDCache();
PHDFile phd = phdCache.getIfPresent(fileName); PHDFile phd = phdCache.getIfPresent(fileName);
if (Objects.isNull(phd)){ if (Objects.isNull(phd)){
@ -1546,6 +1565,13 @@ public class GammaServiceImpl implements IGammaService {
return result; return result;
} }
@Override
public void exportQCResult(List<TableQCResult> data, HttpServletResponse response) {
String sheetName = "QCResult-Gamma";
String fileName = "QCResult-Gamma.xls";
ExportUtil.exportXls(response,TableQCResult.class,data,sheetName,fileName);
}
@Override @Override
public Result viewRLR(Integer sampleId, String fileName) { public Result viewRLR(Integer sampleId, String fileName) {
Result result = new Result(); Result result = new Result();

View File

@ -1,5 +1,8 @@
package org.jeecg.modules.service.impl; package org.jeecg.modules.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@ -10,11 +13,13 @@ import org.apache.commons.io.FileUtils;
import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile; import org.apache.commons.net.ftp.FTPFile;
import org.apache.poi.ss.usermodel.Workbook;
import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.QueryRequest;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.common.properties.SpectrumPathProperties; import org.jeecg.common.properties.SpectrumPathProperties;
import org.jeecg.common.system.util.JwtUtil; import org.jeecg.common.system.util.JwtUtil;
import org.jeecg.common.util.*; import org.jeecg.common.util.*;
import org.jeecg.modules.base.dto.QCResultDto;
import org.jeecg.modules.base.entity.original.*; import org.jeecg.modules.base.entity.original.*;
import org.jeecg.modules.base.enums.*; import org.jeecg.modules.base.enums.*;
import org.jeecg.modules.entity.*; import org.jeecg.modules.entity.*;
@ -25,6 +30,8 @@ import org.jeecg.modules.native_jni.struct.BgAnalyseResult;
import org.jeecg.modules.native_jni.struct.BgBoundary; import org.jeecg.modules.native_jni.struct.BgBoundary;
import org.jeecg.modules.native_jni.struct.EnergySpectrumStruct; import org.jeecg.modules.native_jni.struct.EnergySpectrumStruct;
import org.jeecg.modules.service.*; import org.jeecg.modules.service.*;
import org.jeecgframework.poi.excel.ExcelExportUtil;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -1049,8 +1056,8 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
} }
@Override @Override
public Result viewQCResult(Integer sampleId) { public Result<QCResult> viewQCResult(Integer sampleId) {
Result result = new Result(); Result<QCResult> result = new Result();
QCResult qcResult = new QCResult(); QCResult qcResult = new QCResult();
Sections sections = new Sections(); Sections sections = new Sections();
List<Double> collectionTimeSections = sections.getCollectionTimeSections(); List<Double> collectionTimeSections = sections.getCollectionTimeSections();
@ -1276,6 +1283,21 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
return result; return result;
} }
@Override
public void exportQCResult(QCResult qcResult, HttpServletResponse response) {
Map<String, Object> qcMap = BeanUtil.beanToMap(qcResult);
List<QCResultDto> qcResultDtos = new ArrayList<>();
for (Map.Entry<String, Object> entry : qcMap.entrySet()) {
QCResultDto qcResultDto = new QCResultDto();
qcResultDto.setFieldName(entry.getKey());
qcResultDto.setFieldValue(entry.getValue());
qcResultDtos.add(qcResultDto);
}
String sheetName = "QCResult-Beta";
String fileName = "QCResult-Beta.xls";
ExportUtil.exportXls(response,QCResultDto.class,qcResultDtos,sheetName,fileName);
}
@Override @Override
public Result viewRLR(Integer sampleId) { public Result viewRLR(Integer sampleId) {
Result result = new Result(); Result result = new Result();