From 72b017a650ba318bdc1f519923f6ed9e6f1fd3a0 Mon Sep 17 00:00:00 2001 From: nieziyan Date: Thu, 7 Sep 2023 19:04:39 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9AExport=20Excel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- derby.log | 13 ++++ jeecg-boot-base-core/pom.xml | 20 ----- .../jeecg/common/constant/SymbolConstant.java | 2 + .../org/jeecg/common/util/ExportUtil.java | 50 ++++++++++-- .../jeecg/modules/base/dto/QCResultDto.java | 14 ---- .../modules/base/enums/ExportTemplate.java | 22 ++++++ .../jeecg/modules/entity/vo/TablePeak.java | 13 ++++ .../{SampleInfo-G.xlsx => SampleInfo-G.xls} | Bin 19456 -> 17920 bytes .../modules/controller/GammaController.java | 26 ++++--- .../SpectrumAnalysesController.java | 23 ++++-- .../jeecg/modules/service/IGammaService.java | 14 ++-- .../service/ISpectrumAnalysisService.java | 8 +- .../service/impl/GammaServiceImpl.java | 71 +++++++++++++----- .../impl/SpectrumAnalysisServiceImpl.java | 56 ++++++++++---- 14 files changed, 233 insertions(+), 99 deletions(-) create mode 100644 derby.log delete mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/QCResultDto.java create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/ExportTemplate.java rename jeecg-boot-base-core/src/main/resources/excelTemplate/{SampleInfo-G.xlsx => SampleInfo-G.xls} (70%) diff --git a/derby.log b/derby.log new file mode 100644 index 00000000..debbe824 --- /dev/null +++ b/derby.log @@ -0,0 +1,13 @@ +---------------------------------------------------------------- +Thu Sep 07 18:35:29 CST 2023: +Booting Derby version The Apache Software Foundation - Apache Derby - 10.14.2.0 - (1828579): instance a816c00e-018a-6f36-0bb6-000026acaf78 +on database directory memory:E:\Code\RadionuclideAnalysis\AnalysisSystemForRadionuclide\dd4468e9-cdd6-4c7a-91ec-3c8744a24ea3 with class loader sun.misc.Launcher$AppClassLoader@18b4aac2 +Loaded from file:/E:/maven/.m2/repository/org/apache/derby/derby/10.14.2.0/derby-10.14.2.0.jar +java.vendor=Oracle Corporation +java.runtime.version=1.8.0_351-b10 +user.dir=E:\Code\RadionuclideAnalysis\AnalysisSystemForRadionuclide +os.name=Windows 10 +os.arch=amd64 +os.version=10.0 +derby.system.home=null +Database Class Loader started - derby.database.classpath='' diff --git a/jeecg-boot-base-core/pom.xml b/jeecg-boot-base-core/pom.xml index a2a12189..1e5181eb 100644 --- a/jeecg-boot-base-core/pom.xml +++ b/jeecg-boot-base-core/pom.xml @@ -258,25 +258,5 @@ commons-net 3.3 - \ No newline at end of file diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/SymbolConstant.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/SymbolConstant.java index b51a37b1..1470c6ec 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/SymbolConstant.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/SymbolConstant.java @@ -121,4 +121,6 @@ public class SymbolConstant { */ public static final String BARRE = "-"; + public static final String SPACE = " "; + } \ No newline at end of file diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/ExportUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/ExportUtil.java index d9f25273..dc2ed676 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/ExportUtil.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/ExportUtil.java @@ -2,7 +2,6 @@ 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; @@ -44,9 +43,8 @@ public class ExportUtil { } public static void exportXls(HttpServletResponse response, Class target, - List data, String sheetName, String fileName){ + List data, String fileName){ ExportParams params = new ExportParams(); - params.setSheetName(sheetName); Workbook workbook = null; OutputStream outputStream = null; try { @@ -70,23 +68,24 @@ public class ExportUtil { } public static void exportXls(HttpServletResponse response, Class target, List data){ - exportXls(response, target, data, "sheet1", "file"); + exportXls(response, target, data, "file.xls"); } 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"); + String templatePath = "D:\\excelTemplate\\"; + templatePath += name; + return new TemplateExportParams(templatePath); } public static void exportXls(HttpServletResponse response, String template, - Map data, String fileName){ + Map dataMap, 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 = ExcelExportUtil.exportExcel(params, dataMap); workbook.write(outputStream); } catch (IOException e) { e.printStackTrace(); @@ -101,4 +100,39 @@ public class ExportUtil { } } } + public static void exportXls(HttpServletResponse response, String template, + Map dataMap){ + exportXls(response,template,dataMap,"file.xls"); + } + + public static void exportXls(HttpServletResponse response, String template, + Class target, List dataSet, + Map dataMap, 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, target,dataSet,dataMap); + 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 void exportXls(HttpServletResponse response, String template, + Class target, List dataSet, + Map dataMap){ + exportXls(response,template,target,dataSet,dataMap,"file.xls"); + } } diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/QCResultDto.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/QCResultDto.java deleted file mode 100644 index 4d9dc19d..00000000 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/dto/QCResultDto.java +++ /dev/null @@ -1,14 +0,0 @@ -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; -} 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 new file mode 100644 index 00000000..1a2375ea --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/enums/ExportTemplate.java @@ -0,0 +1,22 @@ +package org.jeecg.modules.base.enums; + +import lombok.Getter; +import org.springframework.web.bind.annotation.GetMapping; + +/* +* Excel文件导出模板模板名枚举 +* */ +@Getter +public enum ExportTemplate { + + SampleInfo_G("SampleInformation-G.xls"), + RadionuclideActivity_G("RadionuclideActivity-G.xls"), + SampleInfo_B("SampleInformation-B.xls"), + QcResult_B("QcResult-B.xls"); + + ExportTemplate(String name) { + this.name = name; + } + + private String name; +} diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/entity/vo/TablePeak.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/entity/vo/TablePeak.java index 50523d23..6b829980 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/entity/vo/TablePeak.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/entity/vo/TablePeak.java @@ -1,28 +1,41 @@ package org.jeecg.modules.entity.vo; import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; import java.io.Serializable; @Data public class TablePeak implements Serializable { + @Excel(name = "Index",orderNum = "1",width = 10) + private Integer no; + + @Excel(name = "Energy(keV)",orderNum = "2",width = 20) private String energy; + @Excel(name = "Centroid",orderNum = "3",width = 20) private String centroid; + @Excel(name = "Multiplet",orderNum = "4",width = 20) private String multiplet; + @Excel(name = "Fwhm(keV)",orderNum = "5",width = 20) private String fwhm; + @Excel(name = "NetArea",orderNum = "6",width = 20) private String netArea; + @Excel(name = "AreaErr(%)",orderNum = "7",width = 20) private String areaErr; + @Excel(name = "Significant",orderNum = "8",width = 20) private String significant; + @Excel(name = "Sensitivity",orderNum = "9",width = 20) private String sensitivity; + @Excel(name = "Nuclides",orderNum = "10",width = 20) private String indentify; } diff --git a/jeecg-boot-base-core/src/main/resources/excelTemplate/SampleInfo-G.xlsx b/jeecg-boot-base-core/src/main/resources/excelTemplate/SampleInfo-G.xls similarity index 70% rename from jeecg-boot-base-core/src/main/resources/excelTemplate/SampleInfo-G.xlsx rename to jeecg-boot-base-core/src/main/resources/excelTemplate/SampleInfo-G.xls index b956e69e7945596d63df34233452a4a4d1394cca..d2dd62ae6f3a296232a50b15ac9c13f4dbcf34bd 100644 GIT binary patch delta 1500 zcmbtUU1$_n6h3!$vNPi*yED6+-PzPhrr3yy8?Dx#L>xN_Yh1KHX#+N(Leyvz62S+H zO4Qv43x!%q_Y`bFd=^_u>Z!r!9HBWZYmJ<1LoRq{BeF2xm^i4T;QaYixG zR*QI%?6|rc@2Icg&-A~hm{nK16cKv$_vUv+PNyE>sM#K*iFCssbsZ<;%N)&DG}1@` z_{1>I#m>b*Ufqby2l`*nR_F>V;4jH2t}~Lko<_#XXEX4AJj+ochEBq2p)OCW;l_lO zY6-iaH;hayL*3gb#}aXh&*JxqqKIOTp2fUw;=_1S$@`t+xQDcdaZ{x5BR!jI4XZra zL$J3DexrAZZhsXEdb>!YWn^>NF!~CBYr8hc-F{UCUpKn&x)J40c-An*3-}}Txo()a zA!*`0>bKFa)t=no#~e(yvlXVVei^W~jD12)!wEIKZ){!Yn;h${>Zwv^YE($1yicd$ zyu!Yy7{(9!oHbJ*6Jw|#rePZ1fW2@C4!}v8S|IHtX$sy8MC{mPt-}(^xv>_H zI^9dSc&7sJ?>hY48Iml4kDQS-s{pa9qxAD$4J=M<*;E3s6A6&0?@4F|LDOBtCGyl- z0zXJ`zerGuuc{P0VG>xvcZr0rF;z$J{~c)y*F_)&tcG$WsJ1r5*lkD*t5yE2e(ZKg`MfsusdA9VtfdA?LGr>1fgYWtQPOpN-X_C|!xG>mO z8IW=JV7l}LX$palv>5oyLuC2Zj1c&>7$algES{#KODf1<*v%M cTBUd-%1d}j;LYOp>RfTNz}hzV^7fi|45{c_TL1t6 delta 3300 zcmbtXU2GIp6h3!$y4$k!XSa3PR=Qm&5cx^AWE1Hh%M=>^d_k$`gFoH0v@})vdVb7xs`|#ur}Bu$8p$JpuMtq+&Cig=6LO3 z`@ZPe*euB7MC%qr2R-(ykRfR$$&AT2>RYo!H4EZvJ^TX~?~YpM#V#O4Z zsJ+V0(_QLR8SDpgxaFSUqRA(RavXP0Ib3t>piwH7aLG}j;7}nw0_Y6Q06&7CgE)=A zpJBqB;$lwCrx=KA2Js*OamN`DI8K2I@SOrWgLrOkj?yCzrDtXk2b!$_8v*}FfzF*f zM*vW|fIu35u!1tg(gj$W1_d@Loy2zfU?Un76qB?cJ64|T>|F6#U^zl;VG?_23j248 z#%KaNIY~RIpSopjSE6MpiGFmMf(_w3f$i?4?{_BcCEPbl@6bUS2gFSgdL5;sH2Fko zCms{W@oSjhV>|jyfPn`&Ow-g&(aPTQK`xVBKKM)YE=D|{CNi}c)qD_Bq26+)0rWnI zlDet3vKTLUoa_jRt*Cxn&7KAF6x50yMx>jk%xVmk0UranfVw9O7{e4sq2&PBSQnq+ zv7Q<-V7mxcj>Suvz-+pyez8J0%^bKDc(sS1;&fR7t_s6`QrBkhQ{Av&edu%u@{eKB z#}?6{Ne`c05L&JWbX|<`u_}#ZD`6KV^l&_{|DfY>wK|PYE6-C2i`7T(@e*Zd8&-aT zjzFxJAsTNJU*@dBcmOZWw>Ioh?`a7bS7dM$AoQSX@D ztXs321zo6K4U=cgmG&!m2Umk_DY5~grg{pJi5D}!g9sTus<>t72P4}2JRnQdtC-OF zvKTw_ap10qVH~?6$b-%A%n$APF-#UQek$TXG51X`f=kjlreL)8n1ah-2H`Uph*(NFMj6Ohc>n7@27F5us&fGwE`O9T zh2c}MSe9B6h6NM_e=KN^DR_Cb$3@h;3;~~kCt#^}8KX?a5OMpMs)(ra@a#1)fJKci zh3Ql9tS$8w#S~SFg5T!a<0AN5Kzq!v%w?$Z8CWTc@XA*x*2tn}-(!ZBy}rv7&%$FR z_!hM22I^;dE&pfI&nW1GL3E0?l>IVBl&J7D~j8Gy0$gD}1c$6;7e`WhnfU1$Q_=EkzP zTCm*j+diMfKNzb0>xFx#&}IzZ9 peakInformation(@RequestParam Integer sampleId, String fileName){ return gammaService.peakInformation(sampleId, fileName); } + @GetMapping("exportPeakInformation") + public void exportPeakInformation(@RequestParam Integer sampleId, String fileName, + HttpServletResponse response){ + gammaService.exportPeakInformation(sampleId, fileName, response); + } + @GetMapping("viewARR") @ApiOperation(value = "查看ARR页面数据", notes = "查看ARR页面数据") public void viewARR(Integer sampleId, HttpServletResponse response) { @@ -259,6 +264,12 @@ public class GammaController { return gammaService.radionuclideActivity(sampleId, fileName); } + @GetMapping("exportRadionuclideActivity") + public void exportRadionuclideActivity(Integer sampleId, String fileName, + HttpServletResponse response){ + gammaService.exportRadionuclideActivity(sampleId, fileName, response); + } + @GetMapping("Spectrum") @ApiOperation(value = "查看Spectrum页面数据", notes = "查看Spectrum页面数据") public Result Spectrum(Integer sampleId, String fileName) { @@ -267,7 +278,7 @@ public class GammaController { @GetMapping("sampleInformation") @ApiOperation(value = "查看Sample Information页面数据", notes = "查看Sample Information页面数据") - public Result sampleInformation(Integer sampleId, String fileName) { + public Result sampleInformation(Integer sampleId, String fileName){ return gammaService.sampleInformation(sampleId, fileName); } @@ -278,16 +289,13 @@ public class GammaController { @GetMapping("viewQCResult") @ApiOperation(value = "查看QC Result页面数据", notes = "查看QC Result页面数据") - public Result> viewQCResult(Integer sampleId, String fileName) { + public Result viewQCResult(Integer sampleId, String fileName){ return gammaService.viewQCResult(sampleId, fileName); } @GetMapping("exportQCResult") - public void exportQCResult(Integer sampleId, String fileName, HttpServletResponse response){ - Result> result = gammaService.viewQCResult(sampleId, fileName); - List tableQCResults = result.getResult(); - if (CollUtil.isEmpty(tableQCResults))return; - gammaService.exportQCResult(tableQCResults,response); + public void exportQCResult(Integer sampleId, String fileName,HttpServletResponse response){ + gammaService.exportQCResult(sampleId,fileName,response); } @GetMapping("viewRLR") diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/SpectrumAnalysesController.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/SpectrumAnalysesController.java index 0f70f3ca..ed097a43 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/SpectrumAnalysesController.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/controller/SpectrumAnalysesController.java @@ -1,11 +1,14 @@ package org.jeecg.modules.controller; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.ListUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.SymbolConstant; import org.jeecg.modules.entity.GardsSampleDataSpectrum; import org.jeecg.modules.entity.vo.*; import org.jeecg.modules.service.ISpectrumAnalysisService; @@ -16,6 +19,10 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @RestController @RequestMapping("spectrumAnalysis") @@ -93,24 +100,26 @@ public class SpectrumAnalysesController { @GetMapping("viewSampleInformation") @ApiOperation(value = "查看SampleInformation数据", notes = "查看SampleInformation数据") - public Result viewSampleInformation(Integer sampleId) { + public Result viewSampleInformation(Integer sampleId){ return spectrumAnalysisService.viewSampleInformation(sampleId); } + @GetMapping("exportSampleInformation") + @ApiOperation(value = "导出SampleInformation数据", notes = "导出SampleInformation数据") + public void exportSampleInformation(Integer sampleId, HttpServletResponse response){ + spectrumAnalysisService.exportSampleInformation(sampleId,response); + } + @GetMapping("viewQCResult") @ApiOperation(value = "查看QC Result数据", notes = "查看QC Result数据") - public Result viewQCResult(Integer sampleId) { + public Result viewQCResult(Integer sampleId){ return spectrumAnalysisService.viewQCResult(sampleId); } - @GetMapping("exportQCResult") @ApiOperation(value = "导出QC Result数据", notes = "导出QC Result数据") public void exportQCResult(Integer sampleId,HttpServletResponse response){ - Result result = spectrumAnalysisService.viewQCResult(sampleId); - QCResult qcResult = result.getResult(); - if (ObjectUtil.isNull(qcResult))return; - spectrumAnalysisService.exportQCResult(qcResult,response); + spectrumAnalysisService.exportQCResult(sampleId,response); } @GetMapping("viewRLR") 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 7596d85a..5a6b007d 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 @@ -82,24 +82,28 @@ public interface IGammaService{ Result viewComment(Integer sampleId, String fileName); - Result peakInformation(Integer sampleId, String fileName); + Result peakInformation(Integer sampleId, String fileName); + + void exportPeakInformation(Integer sampleId, String fileName, HttpServletResponse response); void viewARR(Integer sampleId, HttpServletResponse response); Result viewRRR(Integer sampleId, String fileName); - Result radionuclideActivity(Integer sampleId, String fileName); + Result radionuclideActivity(Integer sampleId, String fileName); + + void exportRadionuclideActivity(Integer sampleId, String fileName, HttpServletResponse response); Result Spectrum(Integer sampleId, String fileName); - Result> sampleInformation(Integer sampleId, String fileName); + Result sampleInformation(Integer sampleId, String fileName); void exportSampleInformation(Integer sampleId, String fileName, HttpServletResponse response); - Result> viewQCResult(Integer sampleId, String fileName); + Result viewQCResult(Integer sampleId, String fileName); - void exportQCResult(List data,HttpServletResponse response); + void exportQCResult(Integer sampleId, String fileName,HttpServletResponse response); Result viewRLR(Integer sampleId, String fileName); diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/ISpectrumAnalysisService.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/ISpectrumAnalysisService.java index 6846e669..e13a01a3 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/ISpectrumAnalysisService.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/ISpectrumAnalysisService.java @@ -35,11 +35,13 @@ public interface ISpectrumAnalysisService { Result viewSpectrum(Integer sampleId); - Result viewSampleInformation(Integer sampleId); + Result viewSampleInformation(Integer sampleId); - Result viewQCResult(Integer sampleId); + void exportSampleInformation(Integer sampleId, HttpServletResponse response); - void exportQCResult(QCResult qcResult,HttpServletResponse response); + Result viewQCResult(Integer sampleId); + + void exportQCResult(Integer sampleId, HttpServletResponse response); Result viewRLR(Integer sampleId); 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 a31bcbb0..fdeb8752 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 @@ -1,5 +1,7 @@ package org.jeecg.modules.service.impl; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.dynamic.datasource.annotation.DS; @@ -12,10 +14,12 @@ import org.apache.commons.net.ftp.FTPFile; import org.jeecg.common.Excel.ExportExcel; import org.jeecg.common.api.vo.Result; import org.jeecg.common.cache.LocalCache; +import org.jeecg.common.constant.DateConstant; import org.jeecg.common.properties.SpectrumPathProperties; import org.jeecg.common.system.util.JwtUtil; import org.jeecg.common.util.*; import org.jeecg.modules.base.entity.configuration.GardsNuclLinesLib; +import org.jeecg.modules.base.enums.ExportTemplate; import org.jeecg.modules.base.enums.RoleType; import org.jeecg.modules.entity.vo.*; import org.jeecg.modules.entity.*; @@ -43,6 +47,8 @@ import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; +import static org.jeecg.modules.base.enums.ExportTemplate.SampleInfo_G; + @Service(value = "gammaService") @DS("ora") public class GammaServiceImpl implements IGammaService { @@ -1568,8 +1574,8 @@ public class GammaServiceImpl implements IGammaService { return result; } - public Result peakInformation(Integer sampleId, String fileName){ - Result result = new Result(); + public Result> peakInformation(Integer sampleId, String fileName){ + Result> result = new Result(); Cache phdCache = localCache.getPHDCache(); PHDFile phd = phdCache.getIfPresent(fileName); if (Objects.isNull(phd)){ @@ -1606,6 +1612,18 @@ public class GammaServiceImpl implements IGammaService { return result; } + @Override + public void exportPeakInformation(Integer sampleId, String fileName, HttpServletResponse response) { + Result> result = peakInformation(sampleId, fileName); + List peaks = result.getResult(); + if (CollUtil.isEmpty(peaks)) return; + String export = "PeakInformation-Gamma.xls"; + for (int i = 0; i < peaks.size(); i++) { + peaks.get(i).setNo(i + 1); + } + ExportUtil.exportXls(response,TablePeak.class,peaks,export); + } + @Override public void viewARR(Integer sampleId, HttpServletResponse response) { if(Objects.isNull(sampleId)) { @@ -1685,8 +1703,8 @@ public class GammaServiceImpl implements IGammaService { } @Override - public Result radionuclideActivity(Integer sampleId, String fileName) { - Result result = new Result(); + public Result> radionuclideActivity(Integer sampleId, String fileName) { + Result> result = new Result(); Cache phdCache = localCache.getPHDCache(); PHDFile phd = phdCache.getIfPresent(fileName); if (Objects.isNull(phd)){ @@ -1699,6 +1717,26 @@ public class GammaServiceImpl implements IGammaService { return result; } + @Override + public void exportRadionuclideActivity(Integer sampleId, String fileName, HttpServletResponse response) { + Result> result = radionuclideActivity(sampleId, fileName); + Map dataMap = result.getResult(); + if (MapUtil.isEmpty(dataMap)) return; + Date actRef = (Date) dataMap.get("dateTime_act_ref"); + Date conRef = (Date) dataMap.get("dateTime_con_ref"); + if (ObjectUtil.isNotNull(actRef)){ + String actTime = DateUtil.format(actRef, DateConstant.DATE_TIME); + dataMap.put("dateTime_act_ref",actTime); + } + if (ObjectUtil.isNotNull(conRef)){ + String conTime = DateUtil.format(conRef, DateConstant.DATE_TIME); + dataMap.put("dateTime_con_ref",conTime); + } + String export = "RadionuclideActivity-Gamma.xls"; + String template = ExportTemplate.RadionuclideActivity_G.getName(); + ExportUtil.exportXls(response,template,dataMap,export); + } + @Override public Result Spectrum(Integer sampleId, String fileName) { Result result = new Result(); @@ -1763,16 +1801,13 @@ public class GammaServiceImpl implements IGammaService { @Override public void exportSampleInformation(Integer sampleId, String fileName, HttpServletResponse response) { - /*Result> result = sampleInformation(sampleId, fileName); + Result> result = sampleInformation(sampleId, fileName); Map sampleInfo = result.getResult(); - if (MapUtil.isEmpty(sampleInfo)) return;*/ - /*Map 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 data = new HashMap<>(); - data.put("name","123"); - data.put("sex",1); + if (MapUtil.isEmpty(sampleInfo)) return; + Map dataMap = sampleInfo.entrySet().stream() + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + String export = "SampleInfo-Gamma.xls"; + ExportUtil.exportXls(response, SampleInfo_G.getName(),dataMap,export); } @Override @@ -1845,10 +1880,12 @@ public class GammaServiceImpl implements IGammaService { } @Override - public void exportQCResult(List data, HttpServletResponse response) { - String sheetName = "QCResult-Gamma"; - String fileName = "QCResult-Gamma.xls"; - ExportUtil.exportXls(response,TableQCResult.class,data,sheetName,fileName); + public void exportQCResult(Integer sampleId, String fileName, HttpServletResponse response) { + Result> result = viewQCResult(sampleId, fileName); + List qcResults = result.getResult(); + if (CollUtil.isEmpty(qcResults))return; + String export = "QCResult-Gamma.xls"; + ExportUtil.exportXls(response,TableQCResult.class,qcResults,export); } @Override diff --git a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java index 84ab43db..51b36462 100644 --- a/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java +++ b/jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java @@ -4,6 +4,7 @@ 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.StrUtil; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.StringPool; @@ -16,10 +17,10 @@ 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.vo.Result; +import org.jeecg.common.constant.SymbolConstant; import org.jeecg.common.properties.SpectrumPathProperties; import org.jeecg.common.system.util.JwtUtil; import org.jeecg.common.util.*; -import org.jeecg.modules.base.dto.QCResultDto; import org.jeecg.modules.base.entity.original.*; import org.jeecg.modules.base.enums.*; import org.jeecg.modules.entity.*; @@ -44,6 +45,9 @@ import java.util.*; import java.util.regex.Pattern; import java.util.stream.Collectors; +import static org.jeecg.modules.base.enums.ExportTemplate.QcResult_B; +import static org.jeecg.modules.base.enums.ExportTemplate.SampleInfo_B; + @Service("spectrumAnalysisService") @DS("ora") public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService { @@ -984,8 +988,8 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService { } @Override - public Result viewSampleInformation(Integer sampleId) { - Result result = new Result(); + public Result viewSampleInformation(Integer sampleId) { + Result result = new Result(); String sampleFilePath = spectrumAnalysisMapper.getSampleFilePath(sampleId); if (StringUtils.isNotBlank(sampleFilePath)){ String pathName = sampleFilePath.substring(0, sampleFilePath.lastIndexOf(StringPool.SLASH)); @@ -1066,7 +1070,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService { inputStream.close(); } result.setSuccess(true); - result.setResult(strBuffer.toString()); + result.setResult(strBuffer); } } catch (IOException e) { throw new RuntimeException(e); @@ -1088,6 +1092,30 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService { return result; } + @Override + public void exportSampleInformation(Integer sampleId, HttpServletResponse response) { + Result result = viewSampleInformation(sampleId); + StringBuffer buffer = result.getResult(); + if (ObjectUtil.isNull(buffer)) return; + String sampleInfo = buffer.toString(); + String colon = SymbolConstant.COLON; + String space = SymbolConstant.SPACE; + List sampleInfos = ListUtil.toList(sampleInfo.split("\n")).stream() + .filter(StrUtil::isNotBlank) + .filter(item -> StrUtil.contains(item,colon)) + .collect(Collectors.toList()); + Map dataMap = new HashMap<>(); + for (String s : sampleInfos) { + String[] split = s.split(colon,2);// 只分割为两部分 + String key = StrUtil.removeAll(split[0],space); + String value = split[1].trim(); + dataMap.put(key,value); + } + String export = "SampleInformation-Beta.xls"; + String template = SampleInfo_B.getName(); + ExportUtil.exportXls(response,template,dataMap,export); + } + @Override public Result viewQCResult(Integer sampleId) { Result result = new Result(); @@ -1317,18 +1345,14 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService { } @Override - public void exportQCResult(QCResult qcResult, HttpServletResponse response) { - Map qcMap = BeanUtil.beanToMap(qcResult); - List qcResultDtos = new ArrayList<>(); - for (Map.Entry 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); + public void exportQCResult(Integer sampleId, HttpServletResponse response) { + Result result = viewQCResult(sampleId); + QCResult qcResult = result.getResult(); + if (ObjectUtil.isNull(qcResult)) return; + Map dataMap = BeanUtil.beanToMap(qcResult); + String export = "QCResult-Beta.xls"; + String template = QcResult_B.getName(); + ExportUtil.exportXls(response,template,dataMap,export); } @Override