From beda2355b6017b0fcc5566eb6c9323ceb1f684fd Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 10 Nov 2021 15:03:18 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=9B=B4=E6=8D=A2easyexcel=20=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E5=B1=85=E6=B0=91=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/IcResiUserController.java | 31 ++++--- .../service/impl/IcResiUserServiceImpl.java | 81 ++++++++++-------- .../main/resources/excel/ic_resi_info_cid.xls | Bin 39936 -> 39936 bytes 3 files changed, 64 insertions(+), 48 deletions(-) diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java index 1ce7210814..548a9b1a1c 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java @@ -21,7 +21,9 @@ import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.TemplateExportParams; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.enums.WriteDirectionEnum; import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.excel.write.metadata.fill.FillConfig; import com.alibaba.excel.write.metadata.fill.FillWrapper; import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.annotation.LoginUser; @@ -54,6 +56,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStream; import java.io.OutputStream; import java.net.URLEncoder; import java.nio.file.Files; @@ -167,7 +170,14 @@ public class IcResiUserController { return new Result().ok(icResiUserService.queryIcResiDetail(pageFormDTO)); } - @RequestMapping(value = "/exportExcel") + /** + * desc :备用 easypoi + * @param customerId + * @param pageFormDTO + * @param response + * @throws Exception + */ + @RequestMapping(value = "/exportExcel2") public void exportExcel(@RequestHeader String customerId, @RequestBody IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) throws Exception { pageFormDTO.setCustomerId(customerId); pageFormDTO.setPageFlag(false); @@ -228,7 +238,7 @@ public class IcResiUserController { Map> sheetMap = new HashMap<>(); Map mapData = new HashMap<>(); mapData.put("list", resiMainList.values()); - System.out.println("========="+JSON.toJSONString(resiMainList.values())); + System.out.println("===resiMainList==="+" "+JSON.toJSONString(resiMainList.values())); sheetMap.put(0, mapData); AtomicInteger n = new AtomicInteger(); for (FormItem item : resiFormItems.getItemList()) { @@ -241,7 +251,7 @@ public class IcResiUserController { Map mapData2 = new HashMap<>(); mapData2.put("list", resiChildMap.values()); - System.out.println("========="+JSON.toJSONString(mapData2)); + System.out.println("===resiChildMap==="+item.getChildGroup().getTableName()+" "+JSON.toJSONString(resiChildMap.values())); sheetMap.put(n.incrementAndGet(), mapData2); } } @@ -252,7 +262,7 @@ public class IcResiUserController { workbook.write(getOutputStream("居民基本信息.xls",response)); } - @RequestMapping(value = "/exportExcel2") + @RequestMapping(value = "/exportExcel") public void exportExcelByEasyExcel(@RequestHeader String customerId, @RequestBody IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) throws Exception { pageFormDTO.setCustomerId(customerId); pageFormDTO.setPageFlag(false); @@ -307,13 +317,14 @@ public class IcResiUserController { Map> resiMainList = icResiUserService.getDataForExport(otherSheetItems.get(BASE_TABLE_NAME),new HashMap<>(), pageFormDTO.getCustomerId(), pageFormDTO.getFormCode(), BASE_TABLE_NAME, pageFormDTO.getConditions()); //========================================= - //resiMainList = (List>)JSON.parse("[{\"IS_BDHJ\":\"1\",\"IS_SPECIAL\":\"1\",\"IS_XFRY\":\"0\",\"REMARKS\":\"beizhu\",\"IS_PARTY\":\"1\",\"icResiUserId\":\"yzmtest2\",\"HOME_ID\":\"中海国际社区一里城1号楼1单元101\",\"HOUSE_TYPE\":\"平房\",\"UNIT_NAME\":\"1单元\",\"GRID_ID\":\"市北区-市北区第三网格3\",\"IS_DB\":\"0\",\"GENDER\":\"男\",\"BIRTHDAY\":\"2021-10-04\",\"IS_VETERANS\":\"0\",\"IS_MB\":\"0\",\"IS_UNEMPLOYED\":\"0\",\"DEMAND_NAME\":null,\"IS_KC\":\"0\",\"IS_ENSURE_HOUSE\":\"0\",\"IS_SD\":\"0\",\"NAME\":\"尹作梅\",\"RDSJ\":null,\"IS_VOLUNTEER\":\"1\",\"GRID_ID_VALUE\":\"e74829ffc43d5470eba6b5e060c11e63\",\"IS_SZ\":\"0\",\"IS_CJ\":\"0\",\"HOME_ID_VALUE\":\"200\",\"DEMAND_CATEGORY_IDS\":null,\"VILLAGE_NAME\":\"中海国际社区一里城\",\"IS_DBH\":\"0\",\"IS_SN\":\"0\",\"BUILD_NAME\":\"1号楼\",\"IS_YLFN\":\"0\",\"IS_UNITED_FRONT\":\"0\",\"ID_CARD\":\"371325199310260529\",\"MOBILE\":\"15764229697\",\"IS_OLD_PEOPLE\":\"0\",\"DOOR_NAME\":\"101\"},{\"IS_SPECIAL\":\"1\",\"IS_XFRY\":\"0\",\"REMARKS\":\"beizhu\",\"IS_PARTY\":\"1\",\"icResiUserId\":\"yzmtest\",\"HOME_ID\":\"中海国际社区一里城1号楼1单元101\",\"HOUSE_TYPE\":\"平房\",\"UNIT_NAME\":\"1单元\",\"GRID_ID\":\"市北区-市北区第三网格3\",\"IS_DB\":\"0\",\"GENDER\":\"男\",\"BIRTHDAY\":\"2021-10-04\",\"IS_VETERANS\":\"0\",\"IS_MB\":\"0\",\"IS_UNEMPLOYED\":\"0\",\"DEMAND_NAME\":\"心理咨询\",\"IS_KC\":\"0\",\"IS_ENSURE_HOUSE\":\"0\",\"IS_SD\":\"0\",\"NAME\":\"尹作梅\",\"RDSJ\":\"2021-10-28 00:00:00\",\"IS_VOLUNTEER\":\"1\",\"GRID_ID_VALUE\":\"e74829ffc43d5470eba6b5e060c11e63\",\"IS_SZ\":\"0\",\"IS_CJ\":\"0\",\"HOME_ID_VALUE\":\"200\",\"DEMAND_CATEGORY_IDS\":\"10180002\",\"VILLAGE_NAME\":\"中海国际社区一里城\",\"IS_DBH\":\"0\",\"IS_SN\":\"0\",\"BUILD_NAME\":\"1号楼\",\"IS_YLFN\":\"0\",\"IS_UNITED_FRONT\":\"0\",\"ID_CARD\":\"371325199310260529\",\"MOBILE\":\"15764229697\",\"IS_OLD_PEOPLE\":\"0\",\"DOOR_NAME\":\"101\"}]"); String templatePath = this.getClass().getResource("/excel/ic_resi_info_cid_for_easy_excel.xls").getPath(); - String fileName = "居民基本信息.xls"; - ExcelWriter excelWriter = EasyExcel.write(getOutputStream(fileName,response)).withTemplate(templatePath).build(); + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(templatePath); + ExcelWriter excelWriter = EasyExcel.write(getOutputStream(fileName,response)).withTemplate(inputStream).build(); + FillConfig fillConfig = FillConfig.builder().direction(WriteDirectionEnum.VERTICAL).build(); WriteSheet fistSheet = EasyExcel.writerSheet(NumConstant.ZERO).build(); - excelWriter.fill(new FillWrapper("t1", resiMainList.values()), fistSheet); + System.out.println("===resiMainList==="+" "+JSON.toJSONString(resiMainList.values())); + excelWriter.fill(new FillWrapper("t1", resiMainList.values()),fillConfig, fistSheet); //======================================= AtomicInteger n = new AtomicInteger(); @@ -323,11 +334,11 @@ public class IcResiUserController { if (!item.getChildGroup().getTableName().equals(BASE_TABLE_NAME)) { Map itemMap1 = otherSheetItems.get(item.getChildGroup().getTableName()); Map> resiChildMap = icResiUserService.getDataForExport(itemMap1,resiMainList, pageFormDTO.getCustomerId(), pageFormDTO.getFormCode(), item.getChildGroup().getTableName(), pageFormDTO.getConditions()); - resiChildMap.forEach((key, value) -> value.putAll(resiMainList.get(key))); + //resiChildMap.forEach((key, value) -> value.putAll(resiMainList.get(key))); int sheetNo = n.incrementAndGet(); WriteSheet writeSheet = EasyExcel.writerSheet(sheetNo).build(); - System.out.println("======"+JSON.toJSONString(resiChildMap.values())); + System.out.println("===resiChildMap==="+item.getChildGroup().getTableName()+" "+JSON.toJSONString(resiChildMap.values())); excelWriter.fill(new FillWrapper("t"+(sheetNo+1), resiChildMap.values()), writeSheet); } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index 4b2a407e7e..44345d564f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -640,56 +640,61 @@ public class IcResiUserServiceImpl extends BaseServiceImpl e : formItemMap.entrySet()) { String k = e.getKey(); FormItem v = e.getValue(); Object temp = map.get(k); - if (temp != null) { - if (v.getOptionSourceType().equals("remote")) { - try { - Map columnWrappers = new HashMap<>(); - if(v.getItemId().equals("1078")){ - Map userMap = resiMainList.get(map.get(UserConstant.IC_RESI_USER)); - Object gridId = userMap.get(UserConstant.GRID_ID); - IcResiUserImportServiceImpl.ColumnWrapper value = new IcResiUserImportServiceImpl.ColumnWrapper(); - value.setColValue(gridId.toString()); - columnWrappers.put("1001", value); - } - //todo 获取 options - Map stringMap = icResiUserImportService.listRemoteOptions(columnWrappers, v.getOptionSourceValue(), null); - if ("checkbox".equals(v.getItemType())) { - stringMap.forEach((label, value) -> map.put(value, temp.toString().contains(value) ? "是" : "否")); - } else if ("select".equals(v.getItemType())) { - stringMap.forEach((label,value)->{ - if (temp.toString().equals(value)){ - map.put(k, label); - } - }); - } - } catch (Exception ex) { - log.warn("listRemoteOptions url:{}",v.getOptionSourceValue()); + String vauleStr = temp == null ? "" : temp.toString(); + + if (v.getOptionSourceType().equals("remote")) { + try { + Map columnWrappers = new HashMap<>(); + if (v.getItemId().equals("1078")) { + Map userMap = resiMainList.get(map.get(UserConstant.IC_RESI_USER)); + Object gridId = userMap.get(UserConstant.GRID_ID); + IcResiUserImportServiceImpl.ColumnWrapper value = new IcResiUserImportServiceImpl.ColumnWrapper(); + value.setColValue(gridId.toString()); + columnWrappers.put("1001", value); } - - } else { + //todo 获取 options + Map stringMap = icResiUserImportService.listRemoteOptions(columnWrappers, v.getOptionSourceValue(), null); if ("checkbox".equals(v.getItemType())) { - v.getOptions().forEach(optionDTO -> { - map.put(optionDTO.getValue(), temp.toString().contains(optionDTO.getValue()) ? "是" : "否"); - }); + stringMap.forEach((label, value) -> map.put(value, vauleStr.contains(value) ? "是" : "否")); } else if ("select".equals(v.getItemType())) { - v.getOptions().forEach(optionDTO -> { - if (optionDTO.getValue().equals(temp.toString())){ - map.put(k, optionDTO.getLabel()); - } - }); - } else if ("radio".equals(v.getItemType())) { - v.getOptions().forEach(optionDTO -> { - if (optionDTO.getValue().equals(temp.toString())){ - map.put(k, optionDTO.getLabel()); + stringMap.forEach((label, value) -> { + if (vauleStr.equals(value)) { + map.put(k, label); } }); } + } catch (Exception ex) { + log.warn("listRemoteOptions url:{}", v.getOptionSourceValue()); + } + + } else { + if ("checkbox".equals(v.getItemType())) { + + v.getOptions().forEach(optionDTO -> { + map.put(optionDTO.getValue(), vauleStr.contains(optionDTO.getValue()) ? "是" : "否"); + }); + if (v.getOptions().get(0).getValue().equals("zhianxunluo")) + System.out.println("v=======" + map.get("NAME") + map.get("zhianxunluo")); + } else if ("select".equals(v.getItemType())) { + v.getOptions().forEach(optionDTO -> { + if (optionDTO.getValue().equals(vauleStr)) { + map.put(k, optionDTO.getLabel()); + } + }); + } else if ("radio".equals(v.getItemType())) { + v.getOptions().forEach(optionDTO -> { + if (optionDTO.getValue().equals(vauleStr)) { + map.put(k, optionDTO.getLabel()); + } + }); } } + } if (!"ic_resi_user".equals(baseTableName)) { map.putAll(resiMainList.get(resiId)); diff --git a/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_cid.xls b/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_cid.xls index a141d2089e5a2e56af62786b6b34ecfdb9d87eee..33b388e4f3846be3aca3a29831a9ae28ca1e69c1 100644 GIT binary patch delta 642 zcmZqJ!PKyWX~PpH&W3_1CKe1pF!?Q05M$nC2WD|NS-@;JIgCYQ@+xMD$xSR$lcz9? zP0nJGnQX@*FpHTqyRnBo#R z#7%LC>);TFm@f!%n-&AZ6hXo1+|#)kSU7QLFaV27PL}4;XB3$14J3soSM%t5^1{3~ zB`s~g{C;@`7IUylF}S#(AVeHuvN%lq3Ii}O93&VR4uI8*PM*!H$u0$EvrmrZlbmeB z>n6zqQ~d=Rcu>{cK-Kz_m3Sq90r;5L9Y|{P=`(Ty_31P6PwwW^mt=?OgxCXg4#Xag z$(Mm@L^d$9-A1?zRP#+@$FA(zaP5xCfWwTG(I|)8E zs5lz~kj1yzqy7lzIqm>U3*p_~2y delta 688 zcmZ{h&r94u6vtmOGmX31WH&WtlkLhbBDC7VEcmMjl|VslD_D9^L9myy1&>8Mv`{^G z5ql^+aY6qF5k`s!K|v9F>7gwiORXMyX-|q5!9Ek$izM)pFQ0to&E#cnQ=i+^*H82m zERXj;h6Z5xSAU83nIF{~k;M5pXuodSG^Svgl6DsS_TFHoL%MsHUPqMSO(rv{sk`N@i_g8oF}H7 zz3s@zxy}6q-j%=~CGfa^Q+&2|fF;MNnKcu5Dq%q-;x69HNG*lW>F(qEjC|_VKX0j8 z-7amHfcHdZaKjxZ=5gn{b^Zfr7@-fa6ZsCVT5U!l$~I2e0rpx0fmOFpuZMSSXUUd< znef)YV{4E``_PtJj(SP00T*o<*mXbNn~omuZQyruGKys-=fg8rNp&}#Jj26jPgN%0 z8D<^~TB$*ve%kqTO$}H7`L+!rf;LbRYG`&Z)p~~rgjBDu0$t6J1tx$|)X1mARAu3h g&bJO;d{M=Z4$sX`jUA1A)50sg&@xt3eV=yC|Af$=!~g&Q From ed157d2f3bdb0dd55d5488941064cb05626f351d Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 10 Nov 2021 16:02:22 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=A8=A1=E7=89=88=E5=86=8D=E6=AC=A1?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/IcResiUserController.java | 7 +++---- .../service/impl/IcResiUserServiceImpl.java | 3 --- .../main/resources/excel/ic_resi_info_cid.xls | Bin 39936 -> 42496 bytes .../resources/excel/ic_resi_info_cid.xlsx | Bin 23202 -> 0 bytes .../excel/ic_resi_info_cid_for_easy_excel.xls | Bin 43008 -> 45056 bytes .../ic_resi_info_cid_for_easy_excel.xlsx | Bin 23391 -> 0 bytes 6 files changed, 3 insertions(+), 7 deletions(-) delete mode 100644 epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_cid.xlsx delete mode 100644 epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_cid_for_easy_excel.xlsx diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java index 548a9b1a1c..39b37f01b6 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java @@ -56,7 +56,6 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.FileOutputStream; import java.io.IOException; -import java.io.InputStream; import java.io.OutputStream; import java.net.URLEncoder; import java.nio.file.Files; @@ -317,10 +316,10 @@ public class IcResiUserController { Map> resiMainList = icResiUserService.getDataForExport(otherSheetItems.get(BASE_TABLE_NAME),new HashMap<>(), pageFormDTO.getCustomerId(), pageFormDTO.getFormCode(), BASE_TABLE_NAME, pageFormDTO.getConditions()); //========================================= - String templatePath = this.getClass().getResource("/excel/ic_resi_info_cid_for_easy_excel.xls").getPath(); String fileName = "居民基本信息.xls"; - InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(templatePath); - ExcelWriter excelWriter = EasyExcel.write(getOutputStream(fileName,response)).withTemplate(inputStream).build(); + String templatePath = this.getClass().getResource("/excel/ic_resi_info_cid_for_easy_excel.xls").getPath(); + //InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(templatePath); + ExcelWriter excelWriter = EasyExcel.write(getOutputStream(fileName,response)).withTemplate(templatePath).build(); FillConfig fillConfig = FillConfig.builder().direction(WriteDirectionEnum.VERTICAL).build(); WriteSheet fistSheet = EasyExcel.writerSheet(NumConstant.ZERO).build(); System.out.println("===resiMainList==="+" "+JSON.toJSONString(resiMainList.values())); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index 44345d564f..27289c392a 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -640,7 +640,6 @@ public class IcResiUserServiceImpl extends BaseServiceImpl e : formItemMap.entrySet()) { String k = e.getKey(); FormItem v = e.getValue(); @@ -678,8 +677,6 @@ public class IcResiUserServiceImpl extends BaseServiceImpl { map.put(optionDTO.getValue(), vauleStr.contains(optionDTO.getValue()) ? "是" : "否"); }); - if (v.getOptions().get(0).getValue().equals("zhianxunluo")) - System.out.println("v=======" + map.get("NAME") + map.get("zhianxunluo")); } else if ("select".equals(v.getItemType())) { v.getOptions().forEach(optionDTO -> { if (optionDTO.getValue().equals(vauleStr)) { diff --git a/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_cid.xls b/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_cid.xls index 33b388e4f3846be3aca3a29831a9ae28ca1e69c1..a3fea99bbcf990cd9a8e0a86a49b172c4346cac6 100644 GIT binary patch delta 5933 zcmd6re{2)i9l*cu;v{xr`y9tkLY$=eK?*D+F@*dep^e+rPU0khlaP?o1=@zTP(oG_ zXjvI{K`V(yQ^rG`v{qZUv9Yax5PDiS+Ac6@>xKkWnkIEyIz}h9bz8S(omy!Wnti`_ z=jV57rcR<#@#$=T-uJzC_rCA@>n`ylC2?Lk5-eQ@=EnoD7XLClKb)VRr`8yrr(!3W zHqSzgFG(xV&j-_0ZGT#!lRxjV@mD=|b_;(>&F61=oP1gh^2=Tue@^xB%j%r=wx^J3 zh28>YJ2vsd60ITkv`abP&C4oE+!36cfen0+23sHC|0*qE9ejOxE9>N;iYoqk*)(r0 z^RTttQ`XAX>5>>fQeMS+>6^D!IQhTJOIg3(`-O_n>AeT_enWcOR~CoZJv5r>umikjjyRMVBL6x(pz``IZ@hjgfx?8KW)RG5|ed%$DPA2(K<137S3 zx_}qFFzZZRAQy5iEA*kM$T#Q*KX|1J=0P3=9I5g7kZ+m40199-9p!OT<%?hu?2!f( zLLp50QWFFqU{PTaTF0K;l)M;9E#u3e41OuiR}SSC4Oc*gzMyz=&lkgDsFp5R36+)! zZ-rYeD_8v+ zlDrc-EgFeJ6dK>pNNJ!8x-1iRLpL}izwLn@_`BgH{Kejf*#N(|;|FyE=zIXz(PaVM zZU9dVrb-5Wt4Kz>2mh(qGJ|Ffki(}({k4UrEPyhM_vV-)F{T**<>+IU;&%y+;b%rO z=!_4b^%yhPVlS`Wi{e-iiH?<~v=0C0V!LratB{OQ_4v=HkD|M6Kr)Wiro0*1ugmlB zyG6*&esSC>W1=<`Q5S>mLdq8uMk){#L0TlJ9f?$7jO#!O2b1umSD04bLh%?%vpxY({n6hli>UQc&3uv=n0s1yvkDJ4uoksZ&rc zQdE!+sY{R_sasGUQjef~B+B2kIt2<8i13b~d+Bzx9}m5gsjzL9+>=<8vO&r{o1{2I zxo0#dC0{7_c%{g_Q105*c7`o3m$0F|G#5eCD2dEW^% zg0ErQjBfYjr}E*$_EOY5VC!ZyhlLKOzMTxcJq%wrXJ@#$Fg!0vMf!#y57IZ2v=NsT zhHoVi7Zrx%f^w0*Ey#!T9g`INjlz0C42fz%!?qNN^2A7hMfs&&0hN3uDal01^fqc6 z5^Y)7HaD`YJqjm8n;Yl*t{@fZdxAU|fxj;(2W2k^^5R@uwnlkyILn5L^YN?W$9VSx zk1CJsl#E-kY!w-=To%}{P?EQDp+f1b6oBnuw^RWRv`u+D*`^t=gL+{_g_4}5T?^RS zalxzHtEMw-!6 zmmA4?_{B~S;JAekBO2ry;ouc>YCRnAOQT^H=8JcZrEP?t@_+0aMSuI5*+W5lXoJ@T zk-z<1kO%1(g2>;_2_k=sjs>csa9*_evBw3ZH*n!|sO+V12?NgUiWgqORy+4h7Lji{ zwdt`Irf8qP8SE~Zb#C;D=c7r(`T+CMBr&U(>&%8(Vvt|h;pSC+c<%dZYYZ-;x{{fp z7g9$*W{Z#a`p@iI!S0XZE*J(zdmM#d3!**#jUd|N-wL8Vo)v_93~vg`Mf#l}AMXFm zc%UpBLfAHfCw+=Bo2HQwVvVOCE}wRFypAdVj7yt+(?wyIC2UiPVAdpB>7y>z6NBH= zf)t7aZs`B`EkNfc*EYQIGLABclJi^q?14Uh;jx{V3IAY9^c~{Sy*0c!o~KRitzgRh zlajtZwV?b-Ifn~6rHYC4J1IRlQ3)21ki-#r#@Fyp1XChi?YE zTYsa)fIgmHLnRD5)Am2%VoN&VJ=8&RC;w;J#9ut{I%?*?!J1?>>C$EnqEj9^dNU~J zlXFV*F-2DvIi>sxjhu2)dK*GcX}ke*rryy7iZ%7g?aUvB|LBT!%g(^34%OZkfvYG< zntB925TxQm=`}(05PV$_Jp_M!w&i&(-uaO-v^}{m}3AFUMZ_FAVKW_W%F@ delta 3207 zcmcJSd2Ccg9LIn2+R{?CZ+F}6x!b0jQiasC<&Z*wbfqob-t?q}mU3vsVviuF6t*pq zBM|~j#R@8wLr@b@UrYoIhTs87g~UHZQL%WT6_duqtCZI7y!UpjSVCgrPTqU-ncrN$ zYbM*?tF*tR>`6~7AoFJ<%14#q86FuK5v@gdUN1Yzv=QcEteJZPqWy2JHDHp3_k{=Y zA*+L*x2AKOZGit_weWYWmN)Eij9&>44YJ!ji5|@!?q-3-nV(p-84;(#_;z<9%j0w0 zX*|VkWBIaH;IHxH?$`LCWE(5xZEhzYNwl#AvR1}DNhz#cym?lVMW3xwj(j?)RUcV{ z{wZvcY~MQ3!|EjkB&X}W8vL_rTa%Z>xjGtz(!p#|Sxx1&(w3!F4G)#A-0=jt=-`9= zR#t+t_z@oOaVh7T`D}cG*6>=7D|6=tF)D;zZpc~|)ING#46WE=$XNTDC8tY9%i`!% zr*_g~vnxS${A}4T{F~}Vp8U9r*ES#URZ$qm-J(#uRjR@RzbNDIwt|dy8){axoS`_p z?Vx{`IJ2)4GPu{A!v!+th)2z?&oK$_1pf>^e`SnssyQ?bvT%K<1@CmT=TuWV4IF`X zW7E??#)9{w=Fmq8m1dZus%Vxe&qPZk`Gi(c=rCJ$@as0u?3fLS=wVEo1B#ZE3yP66 z9~3Jo4un?3Wsfeoh(b^2Be_LaGwclzFDiLD{_|dvq z@bI0>a#{}0iXAHOS~=yJ%PR0yIe8_8gG9y}JtIIOmkn}&3MEB?L@pb$C@ObRvBYQy zOC-fmIp0vfY^;rIH|l>5RytPb;d*JKi_cn_2}Q(DObl;Ry?%Tcq);Uk@XG=~0g?hi zfs%qiL6XLSM5r6H1cQPlg@8gNji*W3h%P($nTD?>)1;OOyeJ!G`R}4C$X9E+fZ!1E zGaSM|;^Hyre~cWTxdcMzKSs_XI*E;*(G^u`v0e(0nf{m=D_V>;5i{D97KO1oKD{*q z??+oxRhOO?3?~n20osYy2~648q}%J^$EsNsFIo8JkrN_%B8nWtBTmn;TPBBvK;PM+Y+#l-s4v{HNpGun>`ft$fge@3GaU>Nd($?Ny7UV zBnj_lu5-G*)GON}(c>e~Wu)W)!gdl}rNdlZt-|M+-mbsskYu0 z7F^wSJgby0Vk&>OE6`{tNI>zC$fsXxc)0k4aUg)Tu^;uYPDSd@;#_gz5#oblF z;U#i|A+K_%&sDefYq=X}$oo4|)p-59WVp#t3(@ZBOks+3vu^FD zo@lg+`@^4hj0%LcQ%dPuv>7+BDlKhTyaLy=-`@FD$osarGjixVy}tw7Ly-NWILvKF zqBT+Pm8f3|MO4i1<8EIWeUDb5ns7=PU6*79{UFH(`caY{)GtZggFi_U_uvgl;vUQc z2~#WBdyc-AxQMdFG0KPQlUWHL-hLB@=HQNW9@816d3GWqw|D5?%6ihm?#-oNF~G0( z9TS|d-gODn%-fx+DrQnESQJUUWp@%&e&2=}2d8efSkV|ro8eN1GBAoo_b&Bsc>tz~ z3eyhlZDf%-^ryZFb+nav0#BQpOM{U3ZJ0|pC0TI*3`w$qZb`C(hGBt$`geJL*Gx8_ zcXp-orOTtW3tbsZOMG?@+qXX^Fzv{5A8W4tGZjA6ZQ-rmb-buMg!gvW@HzO-c_s$W yP!JU^OU>5i9>^HSa{1bxtxD1kZLlXQFjoANn2$Au54?B;i>Hv!J$7#IQpaCWG;Of} diff --git a/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_cid.xlsx b/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_cid.xlsx deleted file mode 100644 index 61dbc52dd9e664948d6ecb8a76fc167fc32c3a7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23202 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 diff --git a/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_cid_for_easy_excel.xls b/epmet-user/epmet-user-server/src/main/resources/excel/ic_resi_info_cid_for_easy_excel.xls index 005e18f20234c565384c7bed8b3353594932e6c9..a8028e6440d88e26f92a5bb01aba5fd59c92f8e8 100644 GIT binary patch delta 5822 zcmds*dvMg%701v0W%Jzk=D{W*$r2s{0TQGp16HyY7s!(LgCGwRs)&dKDJTMp8&FZS zXyou}LZN~!)<2|mfl*3h9A`Qm%P8aE$RJZ`r?u0T=!~Q7jGdBx&+oO%B&q-K2jkxP z?eBihx%d9=J@?#m@9)=rUhBT1^;Cpf$^7|jvU?rS*c?zdyo&L26>L7fbU8z;D4p$@KoGSfSz}b0 zbU(jDFOz2t&Nj(Z(eiRv@scsabkp@ZS(be7{rA6J@^%S1s&sj_E%*BkxzUe+CBHy0 zdN{~i-66i!6-YPip3hEqxiHtdi?f4P;jhd&q5;0cQzZHlW4!+1C5++nAM|#DBg}K9 z3@SZOFXzVd@_D&uhO{};Fhjo8rqM-MWx#0DlH2B)t()gBoV*E{?ruaQy7GL(iH(6XO70oCrAlhsWN;8^=*pPP-@!>#0+8WyawVMTRQrh&eZ>@VSQ&?$Ev0W zo_!ia@7QT*KYb$j!!z|uT9dUwy7zg}W~h%ls#m6VU$1lT;V-HSw0Q^O&hWYt&u``u zxlp*RmgpC5ZhCfxR<)LAuK$wjUd)Jn;`fq94%&t?3aKwQ!5TD!fdr>e3Jtgu>_9#8 zCO8%IR+*$vqcjRT6Z&*YzfPY)88IsKBno6wCe9HEe-!(kRkUW=Y^zSe4G5B;iG*LsXb0Z#A{Ez!H*-2YwG^Jn%N;a`ajUZKl=3(o*P3b?2}KGSc0xcS}+Hm-p_`-~_|d zDyq|Ms;HSBFmo-)^~0))T9Hdm^3+LKcyO!#lRBvrjwA-r;3V^DfibQa&<|W_ASeK; zu_+rAwJ8U*$fjHnLWJ399;nWyF`#;zf}jRaKXu^=`RIz3*u6TMJwm_Z53a6rWQCnX z-=`NeErs7%Ta+)$3EqaFBDtTSsR@~XrL9^6|9fpsx&)&ZEUlTl*Ti3a=%P}ac>B5{ z<>VvlYOsVf^yiwPncX42 zw7HTeKU|}IvRP(2CR>&`z^2T^4j{ginUP=zwxndeY)OMj`gELP2a-4wD=N9X>^RAK z*>U=eEsgJcWITVwrJ1ehr0gb3xT|Xnk6Zcb?7QhKB>nmp;Gv~@s)fz0i5Y21bXokh zP3cN4<2N3y!v8-Woxv3wvkW6l+I)b2ySoTRh-uE)chA*pw-&{w>6Q#Duf7EfKZ3w1&=2?Q{WT?3*5{Ylk2?<=P(8hKeJn(ZAL6-SgxPyViQ;cxQzhMYZD7WsNie*06$3 z!lNbEf|I;u?L}0_1JC8MbDyg!LKF2ma$=QZLUPJ6t(^;L2v3vx5^?LPf#>WS7i*?T zsB8IuGu>j77boJ$Hu*qPZ1RJq+7tkl*^~{Ey~1cS2PEfT@fQvKZ`S1!<>%3K9L!HY zKTaV8Ui@(dc2l=<#q)O0Q<{JO%`)RHH|n^kzr@Qs@E&Kp{l$Q~rH1CgO4fXidg|bw zo)2K4&X?>};f^1AX*_In=w`9ejr&e;{dWO*8@9d+1k6tW)>#9l!^ze-f8<(1acsL_ z{2J%0+=yOAPJ2mfgQx8)pN-d8+e*h{|JtOEj(}_%%Q_i?Kzm2UY~M$@bsV8#ETAAXD{Dy7$8N*BU=mVT`7`^Ximn{EkCaX{v!AIr^lw;-~!0 o(I?b{@h!(rq)d?rBCmz=GAOTr@(sEX_av6ue{VjktpET3 delta 3994 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