diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/PeakInfoDto.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/PeakInfoDto.java new file mode 100644 index 00000000..05cf616d --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/PeakInfoDto.java @@ -0,0 +1,27 @@ +package org.jeecg.modules.base.dto; + +import lombok.Data; + +@Data +public class PeakInfoDto { + + private String peakId; + + private String energy; + + private String centroid; + + private String multiplet; + + private String fwhm; + + private String netArea; + + private String areaErr; + + private String significant; + + private String sensitivity; + + private String nuclides; +} diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/ExportTemplate.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/ExportTemplate.java index 4c068c88..4366ffb8 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/ExportTemplate.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/ExportTemplate.java @@ -16,7 +16,7 @@ public enum ExportTemplate { RLR_B("RLR-B.xls"),RLR_G("Gamma.RLR"), ZEROTIME_G("ZeroTime.txt"), SAVETOHTML("SaveHtml.html"), - SAVETOEXCEL("SaveExcel.xls"), + SAVETOEXCEL("SaveExcel.xls"),SAVETOEXCEL_G("SaveToExcel-G.xls"), SAVETOTXT("SaveTxt.txt"); ExportTemplate(String name) { diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/GammaController.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/GammaController.java index 0d1a9103..e414be9c 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/GammaController.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/GammaController.java @@ -481,4 +481,8 @@ public class GammaController { return gammaService.saveTxt(fileName, request); } + @GetMapping("saveToExcel") + public void saveToExcel(String fileName, HttpServletResponse response) { + gammaService.saveToExcel(fileName, response); + } } diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGammaService.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGammaService.java index 50b665b5..83c727d1 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGammaService.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/IGammaService.java @@ -162,4 +162,5 @@ public interface IGammaService{ Result saveTxt(String fileName, HttpServletRequest request); + void saveToExcel(String fileName, HttpServletResponse response); } diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GammaServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GammaServiceImpl.java index 4ca17e1f..6ba9c8e0 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GammaServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/GammaServiceImpl.java @@ -18,14 +18,17 @@ import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import com.google.common.cache.Cache; import org.apache.commons.net.ftp.FTPClient; +import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.cache.LocalCache; import org.jeecg.common.constant.DateConstant; import org.jeecg.common.properties.ParameterProperties; import org.jeecg.common.properties.SpectrumPathProperties; import org.jeecg.common.system.util.JwtUtil; +import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.*; import org.jeecg.modules.base.bizVo.GammaRLR; +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; @@ -3965,6 +3968,42 @@ public class GammaServiceImpl implements IGammaService { return result; } + @Override + public void saveToExcel(String fileName, HttpServletResponse response) { + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String username = loginUser.getUsername(); + Cache phdCache = localCache.getPHDCache(); + PHDFile phd = phdCache.getIfPresent(fileName + StrUtil.DASHED + username); + if (ObjectUtil.isNull(phd)) return; + Map data = new HashMap<>(); + /* The Results of Peak Searching */ + List peakInfos = phd.getVPeak(); + List peakInfoDtos = new ArrayList<>(); + for (PeakInfo peakInfo : peakInfos) { + PeakInfoDto peakInfoDto = new PeakInfoDto(); + peakInfoDto.setPeakId(String.valueOf(peakInfo.index)); + peakInfoDto.setEnergy(NumberFormatUtil.numberFormat(String.valueOf(peakInfo.energy))); + peakInfoDto.setCentroid(NumberFormatUtil.numberFormat(String.valueOf(peakInfo.peakCentroid))); + peakInfoDto.setMultiplet(String.valueOf(peakInfo.multiIndex)); + peakInfoDto.setFwhm(NumberFormatUtil.numberFormat(String.valueOf(peakInfo.fwhm))); + peakInfoDto.setNetArea(NumberFormatUtil.numberFormat(String.valueOf(peakInfo.area))); + peakInfoDto.setAreaErr(NumberFormatUtil.numberFormat(String.valueOf(peakInfo.areaErr))); + peakInfoDto.setSignificant(NumberFormatUtil.numberFormat(String.valueOf(peakInfo.significance))); + peakInfoDto.setSensitivity(NumberFormatUtil.numberFormat(String.valueOf(peakInfo.sensitivity))); + String nuclide = StringUtils.join(peakInfo.nuclides, StringPool.SEMICOLON); + peakInfoDto.setNuclides(nuclide); + peakInfoDtos.add(peakInfoDto); + } + data.put("peak", peakInfoDtos); + /* The Results of Nuclide Identify */ + + /* Nuclide's Activity and Concentration */ + + String template = SAVETOEXCEL_G.getName(); + // 导出时使用默认文件名 file.xls + ExportUtil.exportXls(response, template, data); + } + /** * 行日志格式化 * @param source 需要格式化的字符串