From 7a8cd6135ceca65541112a87c8c5e2b670eca681 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Sun, 7 May 2023 14:39:47 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=B1=85=E6=B0=91=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=EF=BC=8C=E6=A8=A1=E6=9D=BF=E8=B0=83=E6=95=B4?= =?UTF-8?q?=EF=BC=8C=E4=B8=BA=E6=B5=AA=E6=BD=AE=EF=BC=8C=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=E5=BE=88=E5=A4=9A=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../excel/ic_resi_import_template.xls | Bin 75776 -> 77824 bytes .../excel/ic_resi_import_template_bak0507.xls | Bin 0 -> 75776 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_import_template_bak0507.xls diff --git a/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_import_template.xls b/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_import_template.xls index fc10d33a70cdcdd919c973abd4d2f66f973b99b0..1eb11e2f002f1b8c235f38ee57af2c189cbd5bea 100644 GIT binary patch delta 6580 zcmbW63shBA8ppqVE)RKLxIDZdD59W+3Z{vo0=`lL?)CBp6%}8ppx^^T!Ha2=r6s!4 zYxa`K9-~Wp+@<(hq}H@%re@_-Gu2F)X|9=R)>zG|Ov{-6cg|r0E?1-DUiW(JDQUlV@o@oUEK zIy&$0sSZeZYwQ8?G5bJ2Hx<2n zrpkNNekoGM4-ONnW#*7nuKCtuv?edd#mL!16U7>NXlRPKpRaQGuvoctkWH)w_0jwC zt#tKmlA$RnVm-7m-rQk-wQDDxa?sR-i~|eNjr>K0tE}jA=khtlvlqDT+x#F_czOwI z0))f)sq?s_r#6mamdOoM`)V7SWb4#8jdse{Ax7_(pF*^~D1U^AJ0fGI#bp#7<9T|C z4`*l1^=8Aw@LL(oo!7|)8#n-}JWE8$$*bUicH)Olr(6r4nnYOvAY%>_P;feIB zlmcDoD+zVPI>tIydJj6%eR@4l;nRqMN!HCz4)lSSll+OQDrD&VZvcg%rP zFc1xd2GT+y^%|}#@av_8aRcg)>!;|HsMg!~;H;nr%(fc6jbVkXD~^a?K|8nuWeY1^ zr$DY!iGFRzaceE^Gq#jgo287x%|14os2@n7an6YV8Dk?+g2ym9&*={4J|yoz;6xixRZit zCGjkVE*KQ0D1`2(Xhor*-ioYLuUj$3g+Ujibm6eT{xftoTIr@f3L{{mOBo4@gRUKh z1Wd2Ip~RV!#G^f4&CwUsHAg>CU!_avq3aLoM{-5k3+@!vWf&TVC`ttlRg?xArf4`Q zRnc9bF0&&*X-YQ|kHq1M?uPCzMWc9}TVXnIgrd=)k&4EE?pBlm;v--ps@t|M%QfMIHjBb8n0*~C{xiSP?n;}pln4`Kob<*1DdF4Drl0T zX`smj`-b@(;1s327j%!JT+mcSc_8F7b6h?sN09?`uOcTXSJ8A(o+1~HWPiARbV5$*3W086xl)L zief+&ief=CI;k&$wTWhSBEqwYW`WwN87AVf#G#gzw4S95n-QGTfW;b1?7XFNeW{!) zS5c)o4<5px*@`sK97Pt;T>0>fKDkw@%@1w!Ko&eHEXaqeP_LbsmJ%?LZ`Ohg*hury z_8}fyWk`qPs70Ld87VR~8y!Jfoh;M5$!?+Vp@4ObT&^c@9T;$lE@*sz{4ZR;+VqS_ za4shjLdr4$As9LwgI<_ce;JZ$Fac05* zD_QlHFbdOUI4pAy8w$$^itr}S>MyWh4S_X5Z{)PjJPC#6WE7TDP*~oB!g4AK%V{Vq zb5K~`i^4J&g=HQJ%X}1;4iuJ76qeIzdZk`*!E4-5fWop6g=G;6%VHFkB`7RQQCOCt zuq;P;P1yA3BKv{}-w7Rf>d0p+)7UdGzR#+%yV=V`M*^x$3T=-_kQE~2`*)6lT?D_%#v*yrwzoI2ETy`;|dqNBpa zpHJO+({BIro^4|tIgSF)s>%x`7fL$&UM~r+u5c~(G!=bNURLCeb;de7RpHfR9l=GP z)qhssz2#cv^^zNVz2W@Zw(f0Dxh~D((cKsI?S^VB(OA$dM}TADjLe422A=ur!u89z z_m>+^+*#da@ce=bS7r?>jywLv3D$HChjzOtm2)bik6RE-Zxp%lFxQocJk&o&Mzjl+XwyGX^>%U9MWmGCZ%$1}TK zOugx8=+C=g6-Ql0YQ#LIdQe}*#i|8C9P(@xAuXSp zmmpWpOZMmRZxWrUYcycm+nR4IK#er*9;WgxbghC_c_`z$f`Hv=6O0Bl^wjG0s%$2cYRx4u1)GK1gtWm^{ zfpKg~GBPy24^$~IYTmHA1%ZJd{)%Y!qeLfm=r_7oPWLu6)>=e^{L(%9wimiqndgP_ zpIwYSrdNJGenn1n2>8+=kpRd1g+u4BPRvrCn^( zPi@oobyBq5Z5+{)9=m&;6Z3k!*1E?&E7vkc)x$@aIe7U4iX)B zl_>tOxx)_c!57}s#G|tLH%?=R$Nb`fRx@*qKBkCoWgG0A4bVP1YI@j5$Ww>68k7Fd zD0wmP+8LsWe;{f(Yc6fNH}B|qO|-zvNwVNX24mQIXxmU=_3UBCq&PF zraXM*Y@$UxA!9$7VmPD6E&Os8++*zBcYl7zUks9GKF!57^jto!GtWJP>yPI)XhmP> zmXMa7``!6lJ=HsnaM=2HeY0vW-f}pY1K<2oA9x#aWDX3ztPec@&%L*~)XCqN7IChI zT)x$F)p?)a>Vx5<+qC-TmH)?TrhNOm#X%q8&%g4W%o>3G6LS{2{p`g8rte{r!*z4a}MY3mjh{)BFgQfM{ot~FMM52~FP|iA6 z;~5hwcKaj`#LAbyJKkfniX6*o8{h8Lw$d9Mw~hlE21_3pDnxmeYUyV;^V}A%cQG6V}++We%f}?koy0l zbYst@p6y+X`#?YRZ@bV>)C*5@e{s~W`TNVshnm|m6U8dwKN8=dX*8zo*Z?ur=f5Un Bq__Y8 delta 4637 zcmb7|3s98T701uLyRhu?elM_#sQ5$$frua?YN8!)Hd1-MiW!5lg39?`oG^U7s+HCd*DdQfS9FCQ&-G1l(#;$JfJI&?jP@D$5 z!2PDa&X}F^-Mo@ZJVDUizDx2e4JAe-h6k}`@pxPUTcwpPB5PEP_;%cA*WVLA zH}gBQMQ2W2M$2N%P6oEH*j942u%UcjS#|NUEt@Esc2r76TVj{Fv15wm64*QVinOEHnSuB#e0$ZVV73@@7Xmcp%a3)m-X(-!77MJfmFK z*1SR7r~}EZ*Nb!dp`tr~h@r)MCpxx?fP#;#oLF$(r`0-QC652CJ6_<`+sLcTc*zx6 zSjqGO1!Rw@c@F)UW>yAdfIHvM=TR`duf zBJ!tcnmZZy1_glJ{efu7VY(2ZL_y-DEj%&GBa4Pi+XhW1M(J44(rY>+QCh|N(xEkD zJv!qc^U`E~C=)^Q8t;)Nqb=umTaf~CTak*ELDLFA`5ef7P4vjq!9JQiOf;5;8na=q z8C(Q=Lzzw7DBT>`Od;rz<1ySTMeD+t)@BM&!ZNgbg)~|3W`w_3$iF01hOiM1I3E67e8q2n`j*R z64Vokw1&ngN`h>xqVb?Uy=2fhB})M%DoO<EAP!a&)I!a-9N zMS!MB3PW6S#90eX2X>JSWESt1B?w2Eo~;p$W#JwZd(F?*hL<_mM9+H$#F+loe|rY)Dj;b>*=#!BLi-4xB`%H*HSetGK1d?q+qW(FYz zWY`nJT?Q#39A%ghC2J8yh#eUPgx$}^DjD=5wYr$*qUM@R)=XqwC=?A9aYN0>N7)mF zOV-i2WF3P`))un3j#Uh1p~qN=c4%p15Iz}t{KflKF(SEUgbs(eI8v1qDyP#y<^@;D zI*=kfSnL|PX1&R@A77>kn}{}V#aG7z*L$zo zb*xOpZYg`_T`5Nkf(>lDkr^NbbtgzITt@m6wz-6tv7$^m<;9 zDB9Dm>y7`TyF0`$?KAn7H?SQ!OziyqQgP+h_5p9p-Hsa5on1r^_7K&*qj_Y>zH%L_ z5f!I~iP0Sy&+L`u%4F%4T1C<;*ndyNORv-`l3rP%NP49~k@SkazgHTSPkU*Nq=lioqSz-K$9-c(BQH*qx(tHO-hRg}Dy8 zI(+znBfTEKGeB>@EfSkdqWrOs>5s?p)%ORYMSs#f?l^IU*>CRfZU z7=&c;PzY#}>(c3>P}6@tMGpUssP=;9>V!)}bgWerTz9opiKN~J&(H#N6%vWA6{nzbo4=P`=WPqmWp5B9B4Wm@!~wdS`ni zyC;_S>=O5zQ{Q4^!sX8Z^4^IMc>{MF?l(UuW`|k3JxGjQwWsqhoULGNy>qgj$z%T6 zB71}LuAWUv->3r65AUeg6#0X2ihF`H0Q56OfuPNu4PNZOft>q^yWJ_y-Qg^fap%!+ zmd|;-XunqPtdC$nH}H7*HYdEd+wmO$ZvsmUWDt%N+Q{?Xb_ zYdrgn&e<@6;oGFsG?J}i&aH#lNT*{oGw&M0^v=Db*j{hidj>z=bY_iaP0WytKN L()m#Wo2mal^v>~G diff --git a/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_import_template_bak0507.xls b/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_import_template_bak0507.xls new file mode 100644 index 0000000000000000000000000000000000000000..fc10d33a70cdcdd919c973abd4d2f66f973b99b0 GIT binary patch literal 75776 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�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 d3ik|sPWAd{=&~Z2KlAl7NlVXu{< Date: Mon, 8 May 2023 13:34:31 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E7=89=A9=E4=B8=9A=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E5=AF=BC=E5=87=BA+=E4=B8=8B=E8=BD=BD=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dto/IcPropertyManagementDTO.java | 28 +++++ .../dto/form/IcPropertyManagementFormDTO.java | 13 +- .../PropertyManagementController.java | 114 +++++++++++++++++- .../epmet/dao/IcNeighborHoodPropertyDao.java | 10 +- .../service/PropertyManagementService.java | 17 ++- .../impl/PropertyManagementServiceImpl.java | 32 ++++- .../yantai/ic_property_management_temp.xlsx | Bin 0 -> 10172 bytes .../mapper/IcNeighborHoodPropertyDao.xml | 14 ++- 8 files changed, 205 insertions(+), 23 deletions(-) create mode 100644 epmet-module/gov-org/gov-org-server/src/main/resources/excel/yantai/ic_property_management_temp.xlsx diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPropertyManagementDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPropertyManagementDTO.java index 171cbeb01c..6190e3d6d1 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPropertyManagementDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPropertyManagementDTO.java @@ -17,6 +17,10 @@ package com.epmet.dto; +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; @@ -37,58 +41,82 @@ public class IcPropertyManagementDTO implements Serializable { /** * 物业id */ + @ExcelIgnore private String id; /** * 物业名称 */ + @ExcelProperty(value = "物业名称") + @ColumnWidth(30) private String name; /** * 客户id */ + @ExcelIgnore private String customerId; /** * 烟台需求:物业联系人姓名 */ + @ExcelProperty(value = "物业联系人") + @ColumnWidth(30) private String contactName; /** * 烟台需求:物业联系人电话 */ + @ExcelProperty(value = "联系电话") + @ColumnWidth(30) private String contactMobile; + /** + * 导出时候用 + * 该物业关联的小区 + */ + @JsonIgnore + @ExcelProperty(value = "关联小区") + @ColumnWidth(60) + private String neighborHoodNames; + /** * 删除标识 0未删除、1已删除 */ + @ExcelIgnore private String delFlag; /** * 乐观锁 */ + @ExcelIgnore private Integer revision; /** * 创建人 */ + @ExcelIgnore private String createdBy; /** * 创建时间 */ + @ExcelIgnore private Date createdTime; /** * 更新人 */ + @ExcelIgnore private String updatedBy; /** * 更新时间 */ + @ExcelIgnore private Date updatedTime; /** * 关联的小区数量 */ + @ExcelIgnore private Integer totalNeighborHood; } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcPropertyManagementFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcPropertyManagementFormDTO.java index 220a2b7488..938307b9b3 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcPropertyManagementFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcPropertyManagementFormDTO.java @@ -17,17 +17,17 @@ package com.epmet.dto.form; +import com.epmet.commons.tools.dto.form.PageFormDTO; import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; import lombok.Data; import org.hibernate.validator.constraints.Length; import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; import java.io.Serializable; @Data -public class IcPropertyManagementFormDTO implements Serializable { +public class IcPropertyManagementFormDTO extends PageFormDTO implements Serializable { private static final long serialVersionUID = 1L; @@ -40,8 +40,8 @@ public class IcPropertyManagementFormDTO implements Serializable { public interface UpdateShowGroup extends CustomerClientShowGroup { } - public interface PageGroup extends CustomerClientShowGroup { - } + // public interface PageGroup extends CustomerClientShowGroup { + // } @NotBlank(message = "物业id不能为空", groups = {DeleteGroup.class, UpdateShowGroup.class}) private String id; @@ -66,9 +66,4 @@ public class IcPropertyManagementFormDTO implements Serializable { private String customerId; - @NotNull(message = "pageNo不能为空", groups = PageGroup.class) - private Integer pageNo; - @NotNull(message = "pageSize不能为空", groups = PageGroup.class) - private Integer pageSize; - } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java index d65ba66296..09c1266eec 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java @@ -17,21 +17,44 @@ package com.epmet.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.excel.write.metadata.style.WriteCellStyle; +import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.IcPropertyManagementDTO; import com.epmet.dto.form.IcPropertyManagementFormDTO; import com.epmet.dto.result.IcPropertyManagementResultDTO; import com.epmet.service.PropertyManagementService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.io.IOUtils; +import org.apache.poi.ss.usermodel.IndexedColors; +import org.apache.poi.ss.usermodel.VerticalAlignment; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.http.HttpHeaders; +import org.springframework.web.bind.annotation.*; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.InputStream; +import java.io.PrintWriter; +import java.net.URLEncoder; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -43,6 +66,7 @@ import java.util.Map; * @author generator generator@elink-cn.com * @since v1.0.0 2021-10-25 */ +@Slf4j @RestController @RequestMapping("propertymanagement") public class PropertyManagementController { @@ -55,9 +79,8 @@ public class PropertyManagementController { */ @PostMapping("page") public Result> page(@RequestBody IcPropertyManagementFormDTO formDTO){ - ValidatorUtils.validateEntity(formDTO,IcPropertyManagementFormDTO.PageGroup.class); return new Result>().ok(propertyManagementService.page(formDTO.getPageNo(),formDTO.getPageSize(),formDTO.getName(), - formDTO.getContactName(),formDTO.getContactMobile())); + formDTO.getContactName(),formDTO.getContactMobile(),"page-query")); } /** @@ -112,4 +135,83 @@ public class PropertyManagementController { return new Result(); } + /** + * 物业管理-下载导入模板 + * @param response + * @throws IOException + */ + @RequestMapping(value = "download-tem", method = {RequestMethod.GET, RequestMethod.POST}) + public void downloadTemplate(HttpServletResponse response) throws IOException { + response.setCharacterEncoding("UTF-8"); + response.addHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); + //response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.ms-excel"); + response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("物业管理导入模版", "UTF-8") + ".xlsx"); + + InputStream is = this.getClass().getClassLoader().getResourceAsStream("excel/ic_property_management_temp.xlsx"); + try { + ServletOutputStream os = response.getOutputStream(); + IOUtils.copy(is, os); + } finally { + if (is != null) { + is.close(); + } + } + } + + + /** + * 物业管理-列表导出 + * + * @param tokenDto + * @param formDTO + * @param response + * @return + * @throws IOException + */ + @PostMapping("export") + public void exportEnterprise(@LoginUser TokenDto tokenDto, @RequestBody IcPropertyManagementFormDTO formDTO, HttpServletResponse response) throws IOException { + formDTO.setCustomerId(tokenDto.getCustomerId()); + ExcelWriter excelWriter = null; + formDTO.setPageNo(NumConstant.ONE); + formDTO.setPageSize(NumConstant.TEN_THOUSAND); + try { + String fileName = "物业管理" + DateUtils.format(new Date()) + ".xlsx"; + WriteCellStyle headWriteCellStyle = new WriteCellStyle(); + headWriteCellStyle.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex()); + WriteCellStyle contentWriteCellStyle = new WriteCellStyle(); + contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER); + HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle); + FreezeAndFilter writeHandler = new FreezeAndFilter(); + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), IcPropertyManagementDTO.class) + .registerWriteHandler(horizontalCellStyleStrategy) + .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) + .registerWriteHandler(writeHandler).build(); + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + PageData data = null; + do { + data = propertyManagementService.page(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getName(), formDTO.getContactName(), formDTO.getContactMobile(),"export"); + formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); + excelWriter.write(data.getList(), writeSheet); + } while (CollectionUtils.isNotEmpty(data.getList()) && data.getList().size() == formDTO.getPageSize()); + } catch (EpmetException e) { + response.reset(); + response.setCharacterEncoding("UTF-8"); + response.setHeader("content-type", "application/json; charset=UTF-8"); + PrintWriter printWriter = response.getWriter(); + Result result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getMsg()); + printWriter.write(JSON.toJSONString(result)); + printWriter.close(); + } catch (Exception e) { + log.error("物业管理导出异常export exception", e); + } finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } + } + + + + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcNeighborHoodPropertyDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcNeighborHoodPropertyDao.java index 79a71a11b8..0d27ae9d56 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcNeighborHoodPropertyDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcNeighborHoodPropertyDao.java @@ -18,9 +18,12 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.IcNeighborHoodDTO; import com.epmet.entity.IcNeighborHoodPropertyEntity; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 小区物业关系表 * @@ -29,5 +32,10 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface IcNeighborHoodPropertyDao extends BaseDao { - + /** + * 查询物业下的小区名称 + * @param propertyId 物业id + * @return + */ + List getNeighborHoodList(String propertyId); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java index cae9715bd1..949269d16f 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java @@ -39,5 +39,20 @@ public interface PropertyManagementService { void update(IcPropertyManagementFormDTO formDTO); void delete(IcPropertyManagementFormDTO formDTO); - PageData page(Integer pageNo, Integer pageSize, String name,String contactName,String contactMobile); + /** + * 物业管理-列表查询 + * @param pageNo + * @param pageSize + * @param name 物业名称 + * @param contactName 物业联系人 + * @param contactMobile 联系电话 + * @param queryType 列表查询:page-query;导出:export + * @return + */ + PageData page(Integer pageNo, + Integer pageSize, + String name, + String contactName, + String contactMobile, + String queryType); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java index e816556e07..a61155a910 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java @@ -2,6 +2,7 @@ package com.epmet.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.page.PageData; @@ -9,6 +10,7 @@ import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.EpmetRequestHolder; import com.epmet.dao.IcNeighborHoodPropertyDao; import com.epmet.dao.IcPropertyManagementDao; +import com.epmet.dto.IcNeighborHoodDTO; import com.epmet.dto.IcPropertyManagementDTO; import com.epmet.dto.form.IcPropertyManagementFormDTO; import com.epmet.dto.result.IcPropertyManagementResultDTO; @@ -18,6 +20,8 @@ import com.epmet.service.PropertyManagementService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -25,6 +29,7 @@ import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; @Slf4j @Service @@ -113,16 +118,33 @@ public class PropertyManagementServiceImpl implements PropertyManagementService /** * 物业管理-列表查询 + * * @param pageNo * @param pageSize - * @param name + * @param name 物业名称 + * @param contactName 物业联系人 + * @param contactMobile 联系电话 + * @param queryType 列表查询:page-query;导出:export * @return */ @Override - public PageData page(Integer pageNo, Integer pageSize, String name,String contactName,String contactMobile) { - PageHelper.startPage(pageNo,pageSize); - List list=icPropertyManagementDao.queryList(EpmetRequestHolder.getLoginUserCustomerId(),name,contactName,contactMobile); + public PageData page(Integer pageNo, Integer pageSize, String name, String contactName, String contactMobile, String queryType) { + PageHelper.startPage(pageNo, pageSize); + List list = icPropertyManagementDao.queryList(EpmetRequestHolder.getLoginUserCustomerId(), name, contactName, contactMobile); PageInfo pageInfo = new PageInfo<>(list); - return new PageData<>(list, pageInfo.getTotal(),pageSize); + // 导出时需要导出关联的小区名称 + if ("export".equals(queryType)) { + pageInfo.getList().forEach(result -> { + List neighborHoodList = icNeighborHoodPropertyDao.getNeighborHoodList(result.getId()); + List neighborHoodNames = neighborHoodList.stream() + .map(IcNeighborHoodDTO::getNeighborHoodName) + .distinct().collect(Collectors.toList()); + result.setNeighborHoodNames(CollectionUtils.isNotEmpty(neighborHoodList) ? StringUtils.join(neighborHoodNames, StrConstant.COMMA_ZH) : StrConstant.EPMETY_STR); + }); + } + return new PageData<>(list, pageInfo.getTotal(), pageSize); } + + + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/excel/yantai/ic_property_management_temp.xlsx b/epmet-module/gov-org/gov-org-server/src/main/resources/excel/yantai/ic_property_management_temp.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..f0611d26b02afacb2c68d0be54f50c135b9baf1c GIT binary patch literal 10172 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 IC^CqL5o;)^2Cb=%kq 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 literal 0 HcmV?d00001 diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodPropertyDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodPropertyDao.xml index 749861cc9a..db8211a0ce 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodPropertyDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodPropertyDao.xml @@ -15,5 +15,17 @@ - + \ No newline at end of file From 96a1c8e62806e143fb7a8b4dce0655c6ddadc6a4 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 8 May 2023 14:10:55 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E7=89=A9=E4=B8=9A=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E7=AE=A1=E7=90=86=E5=B0=8F=E5=8C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dto/IcPropertyManagementDTO.java | 4 + .../dto/form/IcPropertyManagementFormDTO.java | 7 ++ .../PropertyManagementController.java | 14 ++++ .../service/PropertyManagementService.java | 7 ++ .../impl/PropertyManagementServiceImpl.java | 78 +++++++++++++++---- .../mapper/IcNeighborHoodPropertyDao.xml | 2 +- 6 files changed, 97 insertions(+), 15 deletions(-) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPropertyManagementDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPropertyManagementDTO.java index 6190e3d6d1..5a34eab3cb 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPropertyManagementDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPropertyManagementDTO.java @@ -25,6 +25,7 @@ import lombok.Data; import java.io.Serializable; import java.util.Date; +import java.util.List; /** @@ -79,6 +80,9 @@ public class IcPropertyManagementDTO implements Serializable { @ColumnWidth(60) private String neighborHoodNames; + @ExcelIgnore + List neighborHoodList; + /** * 删除标识 0未删除、1已删除 */ diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcPropertyManagementFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcPropertyManagementFormDTO.java index 938307b9b3..0b3f3ea9b4 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcPropertyManagementFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcPropertyManagementFormDTO.java @@ -24,6 +24,7 @@ import org.hibernate.validator.constraints.Length; import javax.validation.constraints.NotBlank; import java.io.Serializable; +import java.util.List; @Data @@ -64,6 +65,12 @@ public class IcPropertyManagementFormDTO extends PageFormDTO implements Serializ @Length(max = 30, message = "联系电话不能超过30个字",groups = {AddShowGroup.class, UpdateShowGroup.class}) private String contactMobile; + /** + * 管理小区id + */ + private List neighborHoodIdList; + + private String customerId; } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java index 09c1266eec..e7175b3e82 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java @@ -42,6 +42,7 @@ import com.epmet.service.PropertyManagementService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.usermodel.VerticalAlignment; import org.springframework.beans.factory.annotation.Autowired; @@ -211,6 +212,19 @@ public class PropertyManagementController { } } + /** + * 获取物业详情 + * + * @param id + * @return + */ + @PostMapping("detail/{id}") + public Result getDetail(@PathVariable("id") String id) { + if (StringUtils.isBlank(id)) { + return new Result<>(); + } + return new Result().ok(propertyManagementService.getDetail(id)); + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java index 949269d16f..4e6e1a71e4 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java @@ -55,4 +55,11 @@ public interface PropertyManagementService { String contactName, String contactMobile, String queryType); + + /** + * 查看物业详情 + * @param id + * @return + */ + IcPropertyManagementDTO getDetail(String id); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java index a61155a910..324f9e3fff 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java @@ -35,6 +35,9 @@ import java.util.stream.Collectors; @Service public class PropertyManagementServiceImpl implements PropertyManagementService { + /** + * 物业表 + */ @Resource private IcPropertyManagementDao icPropertyManagementDao; @Resource @@ -62,43 +65,68 @@ public class PropertyManagementServiceImpl implements PropertyManagementService /** * 新增物业 * 名称客户下唯一 + * * @param formDTO * @return */ @Override @Transactional(rollbackFor = Exception.class) public String add(IcPropertyManagementFormDTO formDTO) { - //物业名字平台内唯一 - //如果输入的物业名字已经存在,直接返回物业id + // 物业名字平台内唯一 + // 如果输入的物业名字已经存在,直接返回物业id formDTO.setName(formDTO.getName().trim()); - IcPropertyManagementEntity entity = icPropertyManagementDao.selectByName(formDTO.getCustomerId(),formDTO.getName(),null); + IcPropertyManagementEntity entity = icPropertyManagementDao.selectByName(formDTO.getCustomerId(), formDTO.getName(), null); if (null != entity) { - return entity.getId(); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "物业名称已存在", "物业名称已存在"); } IcPropertyManagementEntity icPropertyManagementEntity = ConvertUtils.sourceToTarget(formDTO, IcPropertyManagementEntity.class); icPropertyManagementDao.insert(icPropertyManagementEntity); + if (CollectionUtils.isNotEmpty(formDTO.getNeighborHoodIdList())) { + formDTO.getNeighborHoodIdList().forEach(neighborHoodId -> { + // 插入小区物业关系表 + IcNeighborHoodPropertyEntity neighborHoodPropertyEntity = new IcNeighborHoodPropertyEntity(); + neighborHoodPropertyEntity.setPropertyId(icPropertyManagementEntity.getId()); + neighborHoodPropertyEntity.setNeighborHoodId(neighborHoodId); + icNeighborHoodPropertyDao.insert(neighborHoodPropertyEntity); + }); + } return icPropertyManagementEntity.getId(); } /** * 物业管理-修改 + * * @param formDTO */ @Override @Transactional(rollbackFor = Exception.class) public void update(IcPropertyManagementFormDTO formDTO) { - IcPropertyManagementEntity entity = icPropertyManagementDao.selectByName(EpmetRequestHolder.getLoginUserCustomerId(),formDTO.getName(),formDTO.getId()); + IcPropertyManagementEntity entity = icPropertyManagementDao.selectByName(EpmetRequestHolder.getLoginUserCustomerId(), formDTO.getName(), formDTO.getId()); if (null != entity) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"物业名称已存在","物业名称已存在"); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "物业名称已存在", "物业名称已存在"); + } + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(IcPropertyManagementEntity::getId, formDTO.getId()) + .set(IcPropertyManagementEntity::getName, formDTO.getName()) + .set(IcPropertyManagementEntity::getContactName, formDTO.getContactName()) + .set(IcPropertyManagementEntity::getContactMobile, formDTO.getContactMobile()) + .set(IcPropertyManagementEntity::getUpdatedTime, new Date()) + .set(IcPropertyManagementEntity::getUpdatedBy, EpmetRequestHolder.getLoginUserId()); + icPropertyManagementDao.update(null, updateWrapper); + if (CollectionUtils.isNotEmpty(formDTO.getNeighborHoodIdList())) { + formDTO.getNeighborHoodIdList().forEach(neighborHoodId -> { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(IcNeighborHoodPropertyEntity::getPropertyId, formDTO.getId()) + .eq(IcNeighborHoodPropertyEntity::getNeighborHoodId, neighborHoodId); + if (icNeighborHoodPropertyDao.selectCount(queryWrapper) < 1) { + // 插入小区物业关系表 + IcNeighborHoodPropertyEntity neighborHoodPropertyEntity = new IcNeighborHoodPropertyEntity(); + neighborHoodPropertyEntity.setPropertyId(formDTO.getId()); + neighborHoodPropertyEntity.setNeighborHoodId(neighborHoodId); + icNeighborHoodPropertyDao.insert(neighborHoodPropertyEntity); + } + }); } - LambdaUpdateWrapper updateWrapper=new LambdaUpdateWrapper<>(); - updateWrapper.eq(IcPropertyManagementEntity::getId,formDTO.getId()) - .set(IcPropertyManagementEntity::getName,formDTO.getName()) - .set(IcPropertyManagementEntity::getContactName,formDTO.getContactName()) - .set(IcPropertyManagementEntity::getContactMobile,formDTO.getContactMobile()) - .set(IcPropertyManagementEntity::getUpdatedTime,new Date()) - .set(IcPropertyManagementEntity::getUpdatedBy,EpmetRequestHolder.getLoginUserId()); - icPropertyManagementDao.update(null,updateWrapper); } /** @@ -140,11 +168,33 @@ public class PropertyManagementServiceImpl implements PropertyManagementService .map(IcNeighborHoodDTO::getNeighborHoodName) .distinct().collect(Collectors.toList()); result.setNeighborHoodNames(CollectionUtils.isNotEmpty(neighborHoodList) ? StringUtils.join(neighborHoodNames, StrConstant.COMMA_ZH) : StrConstant.EPMETY_STR); + result.setNeighborHoodList(neighborHoodList); }); } return new PageData<>(list, pageInfo.getTotal(), pageSize); } + /** + * 查看物业详情 + * + * @param id + * @return + */ + @Override + public IcPropertyManagementDTO getDetail(String id) { + IcPropertyManagementEntity icPropertyManagementEntity = icPropertyManagementDao.selectById(id); + if (null == icPropertyManagementEntity) { + return null; + } + IcPropertyManagementDTO resultDto = ConvertUtils.sourceToTarget(icPropertyManagementEntity, IcPropertyManagementDTO.class); + List neighborHoodList = icNeighborHoodPropertyDao.getNeighborHoodList(id); + List neighborHoodNames = neighborHoodList.stream() + .map(IcNeighborHoodDTO::getNeighborHoodName) + .distinct().collect(Collectors.toList()); + resultDto.setNeighborHoodNames(CollectionUtils.isNotEmpty(neighborHoodList) ? StringUtils.join(neighborHoodNames, StrConstant.COMMA_ZH) : StrConstant.EPMETY_STR); + resultDto.setNeighborHoodList(neighborHoodList); + return resultDto; + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodPropertyDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodPropertyDao.xml index db8211a0ce..12a20f286c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodPropertyDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodPropertyDao.xml @@ -21,7 +21,7 @@ h.NEIGHBOR_HOOD_NAME FROM ic_neighbor_hood_property p - INNER JOIN ic_neighbor_hood h ON ( p.NEIGHBOR_HOOD_ID = h.ID ) + INNER JOIN ic_neighbor_hood h ON ( p.NEIGHBOR_HOOD_ID = h.ID ) WHERE p.PROPERTY_ID = #{propertyId} AND p.DEL_FLAG = '0' From 546954b098392f84b51eb84d3173c274ca9562dc Mon Sep 17 00:00:00 2001 From: lichao <326994889@qq.com> Date: Mon, 8 May 2023 14:18:44 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/controller/StaffController.java | 38 ++++++++++++++++++ .../excel/customer_staff_import_template.xlsx | Bin 0 -> 9722 bytes 2 files changed, 38 insertions(+) create mode 100644 epmet-module/gov-org/gov-org-server/src/main/resources/excel/customer_staff_import_template.xlsx diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/StaffController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/StaffController.java index bcc8e2f55e..d424f60202 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/StaffController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/StaffController.java @@ -8,16 +8,23 @@ import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.enums.RequirePermissionEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.service.StaffService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.InputStream; +import java.net.URLEncoder; import java.util.List; /** @@ -25,6 +32,7 @@ import java.util.List; * @author zhaoqifeng * @date 2020/4/23 17:59 */ +@Slf4j @RestController @RequestMapping("staff") public class StaffController { @@ -251,4 +259,34 @@ public class StaffController { return new Result>().ok(staffService.staffOrgList(tokenDto)); } + /** + * 下载工作人员导入excel模板 + * + * @return + */ + @PostMapping("import/download-template") + public void downloadIcResiDownloadTemplate(HttpServletResponse response) { + InputStream is = null; + ServletOutputStream os = null; + try { + os = response.getOutputStream(); + + is = this.getClass().getClassLoader().getResourceAsStream("excel/customer_staff_import_template.xlsx"); + + response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); + response.setHeader("content-Type", "application/vnd.ms-excel"); + response.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode("工作人员导入模板.xlsx", "UTF-8")); + + IOUtils.copy(is, os); + } catch (Exception e) { + String errorStackTrace = ExceptionUtils.getErrorStackTrace(e); + log.error("下载工作人员导入模板失败:{}", errorStackTrace); + + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "下载工作人员导入模板失败"); + } finally { + org.apache.poi.util.IOUtils.closeQuietly(is); + org.apache.poi.util.IOUtils.closeQuietly(os); + } + } + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/excel/customer_staff_import_template.xlsx b/epmet-module/gov-org/gov-org-server/src/main/resources/excel/customer_staff_import_template.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..df7f4126472dc1f67d5a60445662f9fa0475343e GIT binary patch literal 9722 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 m&iwbjhBw|{R_p&a-oLsW