From beda2355b6017b0fcc5566eb6c9323ceb1f684fd Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 10 Nov 2021 15:03:18 +0800 Subject: [PATCH] =?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