From 86b30db26840d987eb7ed0fbb60b8432922cc830 Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 5 Nov 2021 16:53:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=87=BA=E9=A1=B9=E7=9B=AE=E5=88=86?= =?UTF-8?q?=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/result/ProjectCategoryResultDTO.java | 3 + .../data-report/data-report-server/pom.xml | 10 ++++ .../screen/ScreenProjectController.java | 52 +++++++++++++++++- .../excel/project_category_temp.xlsx | Bin 0 -> 9409 bytes 4 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 epmet-module/data-report/data-report-server/src/main/resources/excel/project_category_temp.xlsx diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectCategoryResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectCategoryResultDTO.java index 2d986e5773..f94fe8cb40 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectCategoryResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/project/dto/result/ProjectCategoryResultDTO.java @@ -1,6 +1,7 @@ package com.epmet.project.dto.result; import com.epmet.commons.tools.constant.NumConstant; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; @@ -48,6 +49,8 @@ public class ProjectCategoryResultDTO implements Serializable { private String closedRatio; private List children; + @JsonIgnore + private int index; public ProjectCategoryResultDTO() { this.categoryCode = ""; diff --git a/epmet-module/data-report/data-report-server/pom.xml b/epmet-module/data-report/data-report-server/pom.xml index 43c7bffcae..15936771b6 100644 --- a/epmet-module/data-report/data-report-server/pom.xml +++ b/epmet-module/data-report/data-report-server/pom.xml @@ -116,6 +116,16 @@ true + + org.apache.maven.plugins + maven-resources-plugin + + + xls + xlsx + + + ${project.basedir}/src/main/java diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java index d71280e79a..afc882a39d 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/ScreenProjectController.java @@ -1,7 +1,13 @@ package com.epmet.datareport.controller.screen; +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.TemplateExportParams; import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.constant.StrConstant; +import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; +import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.datareport.service.evaluationindex.screen.ScreenProjectOrgDailyService; @@ -17,15 +23,21 @@ import com.epmet.evaluationindex.screen.dto.result.ScreenProjectDistributionResu import com.epmet.project.dto.form.CategoryProjectListFormDTO; import com.epmet.project.dto.form.CategoryTopAppealFormDTO; import com.epmet.project.dto.form.ProjectCategoryFormDTO; -import com.epmet.project.dto.result.CategoryProjectListResultDTO; import com.epmet.project.dto.result.CategoryTopAppealResultDTO; import com.epmet.project.dto.result.PageCategoryProjectListResultDTO; import com.epmet.project.dto.result.ProjectCategoryResultDTO; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 项目 @@ -175,6 +187,44 @@ public class ScreenProjectController { ValidatorUtils.validateEntity(formDTO, ProjectCategoryFormDTO.ProjectCategoryForm.class); return new Result>().ok(screenProjectService.selectProjectCategory(formDTO,tokenDto)); } + /** + * @Description 【项目分类】查询项目分类 + * @param formDTO + * @param tokenDto + * @author zxc + * @date 2021/11/4 3:38 下午 + */ + @PostMapping("selectprojectcategory/export") + public void selectProjectCategoryExport(@RequestBody ProjectCategoryFormDTO formDTO, /*@LoginUser*/ TokenDto tokenDto, HttpServletResponse response) throws Exception { + tokenDto.setUserId("36bc0fb38565ecdebf8ab9b476b44548"); + tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc"); + ValidatorUtils.validateEntity(formDTO, ProjectCategoryFormDTO.ProjectCategoryForm.class); + List data = screenProjectService.selectProjectCategory(formDTO, tokenDto); + String templatePath = "excel/project_category_temp.xlsx"; + + StringBuilder dateBuilder = new StringBuilder(); + if (StringUtils.isNotBlank(formDTO.getStartTime())){ + dateBuilder.append(formDTO.getStartTime()).append(StrConstant.HYPHEN); + } + if (StringUtils.isNotBlank(formDTO.getEndTime())){ + dateBuilder.append(formDTO.getEndTime()); + } + List resultDTOList = new ArrayList<>(); + data.forEach(e->{ + resultDTOList.add(e); + e.setIndex(1); + resultDTOList.addAll(ConvertUtils.sourceToTarget(e.getChildren(),ProjectCategoryResultDTO.class)); + }); + CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); + Map mapData = new HashMap<>(); + mapData.put("list",resultDTOList); + mapData.put("orgName",staffInfo.getAgencyName()); + mapData.put("exportDate",dateBuilder.toString()); + Workbook workbook = ExcelExportUtil.exportExcel(new TemplateExportParams(templatePath), mapData); + response.setHeader("content-Type", "application/vnd.ms-excel"); + response.addHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode("项目分类统计.xls", "UTF-8")); + workbook.write(response.getOutputStream()); + } /** * @Description 【项目分类】查询分类下的项目 diff --git a/epmet-module/data-report/data-report-server/src/main/resources/excel/project_category_temp.xlsx b/epmet-module/data-report/data-report-server/src/main/resources/excel/project_category_temp.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..f12e92967d768f7ee7873566c8c431caabba3676 GIT binary patch literal 9409 zcma)C1yo#1(#G8_xMgs63ogMOg1fs6?oMzIl0bmq?iQRN!QFzpOK=JQknBFmzTNZp zIWu?8Onp^-zv`}AQ`L$xkWdI<&m&BJUFiAx?*R|`U}A5q=w$EU%%lhs!vcK)_fxEe zYrcXR91M&d0t^i8uVRJ{4vg-$HXq_Ur6F0c#IFON(5mg(7|4}bX#&IfV6|L`*z6ZN zWHAzU#_kvxfn+zZb{F=l4@hj7V?~WlZu-YtZQtRt?9Yj91t0Yh{qJ_z-WgDK~-9yJk_)b)gcWj{Oju&)h zCDL@CMJqwm~m5c zukCI82&q})6NH>!(v>_4T4fl~QncWQzvI*s$lKI{*~NEWkgmwULTCrSXqOy!BnMdj z2hp}4>y3MFxbAQ5&Y=I!ZYHv9rYMMAT@btIe`VL$-pTZt-sl7+nQmsRkQL}B(E+av zkTTK5fUm?o0S4k{3;;LnDk3iI{C9$a%@2N#ch`ruc;%kT@h2M~pDg zA2wVJK0VfCzoC@ZY%<<(WL_>7nN2_KRi+M?d<^+NEQSP(QlN>DMIwq!1*bDC47Fz3xsm z7?t9C;6Y-0jC1R? zNl<|pM*=a9`8UR0oPqYX&z$GQk3MtWcM=HVyj3opQI~Ha=AuvN6*adTlVvk@`X|61 zF#M?n&p85?$399ptU)XDNP0v+EHQO$kF$usB`giu@SqwuY}|zrN;zXu(sk-VrEP+(y6s9<2Y{~`Mm!t!%> zywi=%;6)2Pq5JUU@4bR%&NXj>t?Xi3N?ep&oLOO=!VRz0!Ltfj^jl$pnIX;2keI|92^{x#p3bh%UG>ntWJ$bFTy1 ziu(zsi-R(^iX+NunFr-QpPiSUlaBS6sA+z8;_(aaFqb@TqDFkIk$HDmzl7y$zrN(E z-@%@`ARhe+u*v3w1(aJAHb1u~voCWd**m;t()_A3$d8pFmLEPU-HO{S2tF)#I?@q5 zm+(d0H0p^5|#GGb?_mm^)Ar;WRN2oH~l6 zkD)>~QfJe!+|L=zNzva@OIeMJ%fq97Lm?KjQb;>QPN9_Cs`bc8zBIIrS~9#o@*_~# z*Rrno4&0KYrG82R3ZWrcR^n07{{SaE+I{ z%>1OqKVk&BJP2`UultjVO+hUk=_s&%k#irX6A@CyytvB$@DMBJGGIT8?R(~AA9iWN zHw`}+XHiKg0fw;yySC_xO2YHyb<0X-Q+7rq$Qa>>00$u?-q%%%o$zv@cj?p?mQ{n5RI{VXxP`D%^dvK!xC$d>&gbE#cXSqM{nLtx2bEEo^o<1I-TuaLMx=zRQvN1X z0Nj14%8qz{@IKNnLfjpRU`%JhP@k{|C*aW)taGlV0I=H5-tp35EkSbm_p#Z zSFl{4q5{O9GT;L0m>5Wx0D}(ZRoqXwaIo$e%}n;($V69SP{Gi_umI$6hqo0yz;$?v zdSSkU1fwp9F31EJvBsV^MxHyt7>mlf6sgP+@TijbXloeyZ!K*xrEU70lMTA4DPNIV z3I)q}Q{-pKQ9CZYf23EG)ev$Qn(&8vcOxyUouRl6Y|(?Kj57K|WAkD#M#0{tG_xTV zCUG1)X%|Hs#^fet5_fCGn?U&7)KmXY;OLBJ$*Fo=**%s4tr)Vn?-?F?`#>}5c`qr! zRMJCCbU0FzFkHoFQma(X$YH}qeF%8HPiQmLCqPWn5x@GLXse-=2gijV`5dhLd)oXd z=asDClZDH1ebA_Mcl^f|{!SLvE;FEA{S<88#VIUI<)|3!u=@s&+cn~Uk4(>r4k$7K zElh1qe@k>^iBiTEp~1jN@qRrR{t){q{4?AfY0B9XaG|xn*!9ymY>hWLc*#l*TQ9Iq z>53sH9YI*6YxNG@t%;O|uNixwN+=-5a$F{0*^_z!M$%tzLVtr(JOknuk;v%{opO#< zUq2axkv`x!V{K#T6uGI{>C#Z7)p!Wn(6X;WxA=}&9ug;kegDSobxVdMh zTCI$e4xYT|B##=rp@9+;!@$pNtzMzijWz@yj+%tFz@3Od-Wq{yJ4dF;Ey|)V3{S+B zwF@=xL3h399uIa#s1vz;;Bd-)6U+y!2q*y5SfXKSG>gbJGF$mtGGmavuwaTp5dbNEp3ze%XvKD2v4K>~lQ^*|)ya=U zQBga$ilj54Q&E|4+yf?k?U`hA=rR=*`VTjEU)WAABMS;*GqVKlwl2;#CSMEgw9$7% zCQ0P4m7KKS+%GD$wrBcW?+?7O`^K-|o8y(Un!PDVQnfb344__v5q& zd}YJJrt3AJv#aH;!e>7EfV#boxuLVv_Ovh55Y=E9+5^HJ4cO*_zMD3lH*#EaSx-HO#qd5qoO^jZx5?1xg?~vyHKR?Gv;Ey zU`brMdF&i96MsM{xpMKE9{SGYu%DVmt2N;utEuBO2L*GAv^y zJxtM~0`RMR{*Jdi=-Rik(bMFCqTb_)c`Qgh&d)AmZ#;*6z_8yc(*DNc$**E8-iod9V(9fkeZ#-3oNVZt)O70UdYI8HDIzdqB!(E+a<5a0 z>5dlO-ZiuKNTgk|u8(g!V}zq#E1A%|q>JK(c9 zi6z1!fNf$5slGRZOp`(?Wn}5vwun$`A1G#FG(Befg(r>x8v{_V6S6HVIpiPwphHIM zx^7i7^a)Gp=aDA(qq;HeWz8Q@0x_&>t!Vwp&`%=@QeLwGPSvZis!bou*z-kPhi3zu zL(d(>YH+cMzF>VPEYJJ=DYreDg}DveI@BMZj0S&=TN!x|71u6`U(mXF!s}*^wr) zeC!UnMT8^}1UuX9Z25+lO#T86dEpWE?|%|d-=J`-gHl&kMKCbrUylrDpofjA^K;TU zt#c5&sDb?y)AMAI7l=w{hQT*d!k0EN5Jm9`x@?M^47`~2Et~N`6>MLT84ekCv#Ehn zyy6Rll4K26jwDo|KXlb}_0bPDx%AuGCx{&ZZy!4+B6D8MzDY@<#ir|5zB`ViKHLOc zDEH;AvnVhzCme`(o<$$$_4-bDm-T8+9~Wn|T0bIp)z8|tw3%}uzP|eCVEp|+e-StM zb-9oAO1&tuqBIdh)s@BQ&U<`M9?IqfBRc1XaeULXn zbR_3=pIcW1yYetFhPt9->}U7w<8YhLYdWl#DXDENa#=3-`-7OSo%2fMZ2FEf`%IeF zjJ@7uLtlc!f$|A2&%C6P*u^d^4Vj@J?25+-(#7!TG&g6KzU|)X*_h-)sZ%O&a>1Nf zxGgf?WXaP{p6LpXi8#EhWc69EyXUlK;e8w)+=;a)d30q4J2562r1X&RiETLK%Or^l z6Yt$f;7(>73R9Mx-i7cEY+W+z4D_S8dEL`WZ`J~}-mhvZqREQwlkiohJ-n#VDjLT^ zT{qpTM$dhqm%leePyoMvxqd!#DP;FuUJRUb*L#yBtrVVg7~lQVMBefV zCquC0w;Rnlqzvz*${;|uh_Ya40hYJqgBDas^7F+h#%dom-ETZ!?^EYA&e7iTuqA#J02qv;eAKD zu&SOwhIFYJUTvuw?PbI=vn>D1AI!*FEJJ~Q$QKm{)1Ix%%!9mjI~Zp#zI-yR)0&@a zuA(gsDKFEqrXtXd*EhF*BhXsht5E?ckNZIY9lN(CrwkztWWg$Cf< zgo79Eoi}>BB);Q*k!=x@YVcG(sTsi3N;_Y+nek&TLP)sp$}w-Z0BK*+X0MUTfw-nv zEuhgIzRENXm4-}NIO8ZDV#y|q9n9Q|zIemBi#orVGHpMdqehjDP9hn+n)<}!ruSee zay`s<$h>A zZ9zQ1!Yb?gesRR0yRn&4yD-1mrL1B07;7F##aCZU%{SzXTkIhK6?d88owuD~D7bHV z>kpR6MSD>_jks9}R?EWpYw1v7G5SXsc))}h4X2a!tFyzFZ0u@v%|{Owi4S2Hg?EAd zc22N%w)N27b25}N^^ZLBtUAWcTKB6R{CCTh?bfh3{QW|C9~ByQh45Eaq5$C}twcB3 zOYnQ+2&^M|LXy>(B=GRun<|pQfKr)lRY@Wb1E9?o$ z&GtxU4aJBd-c*xh^>(gEiVNOxj*x1?(z0ufRF?NO1c;J{#Sh`HHwGBlqQne}qd=jH zNDbhV>ZU20G{2Cd@F4t@!6Rb2=V-u|7fgEGg<)4_HG(>L(f_y|`MxY}HSi6%dSVi0 z(ShU;<~f_Nm?(J>`#Myu6RH8z#;3BuEtFBZR47Fv?-&57`HYPU#MQ#Ll#D`$cJfN{ z*Z$X^&XbV9gv9NV)oa0yJ#tHH0S({o;5`ad1Ud4K{IbKq%A3e1`&Pjx=Iy z!GnMQnoM=ebQd4H?MlWrAP&CdL8G$Jpkep5XOFr9615s=XC3p&6z|kOib1z0bLGF((7stpSI&4uf5l0ih7bDE3+Xt7q zL5ML+_|_3KAQ!rqYM(}IuBYK84BgSAI;TB3Iq|eJusc8cvdyF(<9ps~o`QMWRSYC4 zXhJupS=F!YcaxFh6}~(_`tH#cs?Uksa>CXMJSdwH=iap-ZbFOY$)aX3$-=B|o0v4P zCCAaAg>S|2qb#SY%?T-H;Sn&SEi-7$hMbn_EZS&yOxc?IroVzrQh4!N0kRL?xl2jtxj6kXxPwY&p6PSy+ml%y)+17K?{l@cc`;biS5P6~?smQcYaXi?<>y5X*H4^> zq#T;GOLmV=_)f7uy|B6x{oxo{y{Qzy=5aSWezKhC1EsYd^YA($U!taGh&GfO7mpcF zg{bW52SH=en2x+cC1T##t8u;nlEFPw9)7hX6Rb3~O)hFkzV3GFi7W-)h<0N*&z7Z? z?#@&>^SPu>@^~`!=l()c21-bliVpvfOWB#Quh7>VbJ{%QWx|#u^=oBtp65DKSF5mHE8;N@7hiwIoHdUU61d`D8}h~X6@r&6lmNvpmsOFoYrGLOos+c(mw#r zOJ?SltD@>WElb+WQjWfALlzt!um zOO(&CTi2fQeVLC^trAt}kA=i&O#%+tY8}a2T`Lh;9EiK2Zxuc=2F@M&6^l8N`X1VU zfBJg@`YyQ0OA%D1wgXkEpL;Q&VuZ7Wp_8eJ3ed^Y&irQ{8j>I=(=CJ>=GJ+FhLWAw zq$&)mOOwZtD+_kSf3|%&pxfUnEdvLvCYloeKvhEc=Rh5*<48&>bBG1ff;pklT(qJnN~s&2EWv`4={r zN8IWi#E7I))#KgXHyC|mh~mL~NYjVL4=F3MX1S9OJj0WVw~uaSA7c zy~>>Y_Z)P?^Q6P&S;gOsIQiNKi7R~VHup?9i63dHHy(^M@;2PdkdaqZ_{5hs7%$id zC!);CW`vfMP*1`O_385v7;6un8k(v@;<+JUwIR~lZMu!TJH{}lOAUzhB^|Dx*pogm zi6?l=6y7miQT^QmStSWTYLEw(Krc`g`q=}|nYaT609)SXKiII;v!T ztV%DxHf^v-DGi$18jTJv35|CRTqQFh8wJj%wX=2?k#%PJUaZBp}jMoZS29fR4G` zjv(4Ril2(Z!Y`Gqh{K#cQRi+ubON4TiSa`Wj);{m6~NIyt%g zQIVAcdNWd7f*7Usg=!dOeA%r@rpv1zVdDhCr2?#rCEf=^c!?Xj-{R1|b}K7ka5{a% zWE`cN}a*{9gO_;&%P~1o~|SwDb}GkYRk5 zEK3-b?qNpjJqbKP+isI{!$zM6GLaw3nfUmp%07)zVkT%FwY3T>(N8tQ#-`nFXRLUe zv=A(j>apa)`-3Y08uord&Kb?Aa>**`bB4-VRXm9)SJh}ZR2 z9%BvTqe-+J-&0i-%Hrb?FW?b0ei_8sYNu%T^<1Jii&#Ed@gH1l;;^HFymRN;(JsYdV0cEITm%MB+@!-w%gh*%#dShbRU*D^ z>9jl2r}gQ`lSEK_9KIEroZRW^j33vo9hBq^rpP&X0OBc+4I1}xoQP(T_@LMOakk70 z%$Uy4!U$GIJEI}1KU?!7@SP4)R&e_X)!^b%)5#PnrIj(Wq6rT*65}1`6ige+2`baa zaNE=RNO0sR$x6DDlX{Xl%@mobT1Xm4c$1HY#Cmm?VaET_qEa?x_Tf;GX~Fb^H<&^~!R=ls-*vYX-bGkU%*9-jnH-bihvFX>1HsWDTe=R=M(@isENFK}CL z9JhX}{T7~SIh%tvIx?vK``i@N7PYqnn%V*NRXrR`opql#d|A?p6>P1ugWVxpN+DVkRfG1cI7mFM7u!?HfL z1fAsuyKcL6)E`IZywwtB!C`4dkl}1RcOvu=k`FCzSBsgu zm@G;W!bg-rR~@S_6-o{OkWnHFW^Xj;eFtYVBeg@{pk`NBRuspEHf5*Pv8BB8<>U6O0w&42v zNM&~|&E;2wqmk7e29X7y;=Sd|w)pyX`p@4xzZ-Ktz$nUqLty=Uw)bA7hJ(4}!`Nh)CUt#|d*M8UYdv5io zo)4hb&p%~aziartJou*uLQtyktl^Jh;s5{M_uzg)|J|DU`wIEJIrXPSG!TOzi@#uh zwyJ)g^6%-)p9)9_ek%AYZU1Z1&#n7k