From fd0edf1ca15eb4d49c703f34d9f0988a2c1fba3e Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 4 Nov 2021 12:50:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B1=85=E6=B0=91=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/IcResiUserController.java | 47 +++++++++++------- .../service/impl/IcResiUserServiceImpl.java | 35 +++++++------ .../main/resources/excel/ic_resi_info_cid.xls | Bin 80384 -> 79872 bytes 3 files changed, 49 insertions(+), 33 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 4ed686ba22..a1e725dd10 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 @@ -333,40 +333,53 @@ public class IcResiUserController { pageFormDTO.setPageFlag(false); CustomerFormResultDTO resiFormItems = getResiFormItems(pageFormDTO.getCustomerId()); - Map itemMap = new HashMap<>(); + Map> otherSheetItems = new HashMap<>(); + + //主表的 for (FormItem formItem : resiFormItems.getItemList()) { if (StringUtils.isBlank(formItem.getColumnName())){ continue; } - if (formItem.getItemType().equals("checkbox") || formItem.getItemType().equals("select")){ + + Map itemMap = otherSheetItems.getOrDefault(formItem.getTableName(),new HashMap<>()); + otherSheetItems.putIfAbsent(formItem.getTableName(),itemMap); + if (formItem.getItemType().equals("checkbox") || formItem.getItemType().equals("select") || formItem.getItemType().equals("radio")){ itemMap.put(formItem.getColumnName().concat(formItem.getColumnNum() == 0 ? "" : formItem.getColumnNum().toString()), formItem); } if (formItem.getChildGroup() != null) { + itemMap = otherSheetItems.getOrDefault(formItem.getChildGroup().getTableName(),new HashMap<>()); + otherSheetItems.putIfAbsent(formItem.getChildGroup().getTableName(),itemMap); for (FormItem2 item2 : formItem.getChildGroup().getItemList()) { if (StringUtils.isBlank(item2.getColumnName())){ continue; } - if (item2.getItemType().equals("checkbox") || item2.getItemType().equals("select")){ + + if (item2.getItemType().equals("checkbox") || item2.getItemType().equals("select") || item2.getItemType().equals("radio")){ itemMap.put(item2.getColumnName().concat(item2.getColumnNum() == 0 ? "" : item2.getColumnNum().toString()), ConvertUtils.sourceToTarget(item2,FormItem.class)); } } } } + //其他sheet + for (FormGroupDTO groupItem : resiFormItems.getGroupList()) { - if (groupItem.getItemList() != null) { - for (FormItem2 item : groupItem.getItemList()) { - if (StringUtils.isBlank(item.getColumnName())){ - continue; - } - if (item.getItemType().equals("checkbox") || item.getItemType().equals("select")){ - itemMap.put(item.getColumnName().concat(item.getColumnNum() == 0 ? "" : item.getColumnNum().toString()), ConvertUtils.sourceToTarget(item, FormItem.class)); - } + if (groupItem.getItemList() == null) { + continue; + } + Map itemMap = otherSheetItems.getOrDefault(groupItem.getTableName(),new HashMap<>()); + otherSheetItems.putIfAbsent(groupItem.getTableName(),itemMap); + for (FormItem2 formItem2 : groupItem.getItemList()) { + if (StringUtils.isBlank(formItem2.getColumnName())) { + continue; + } + if (formItem2.getItemType().equals("checkbox") || formItem2.getItemType().equals("select")|| formItem2.getItemType().equals("radio")) { + itemMap.put(formItem2.getColumnName().concat(formItem2.getColumnNum() == 0 ? "" : formItem2.getColumnNum().toString()), ConvertUtils.sourceToTarget(formItem2, FormItem.class)); } } } - System.out.println("checkbox:"+JSON.toJSONString(itemMap)); - Map> resiMainList = icResiUserService.getDataForExport(itemMap,pageFormDTO.getCustomerId(), pageFormDTO.getFormCode(), BASE_TABLE_NAME, pageFormDTO.getConditions()); + + Map> resiMainList = icResiUserService.getDataForExport(otherSheetItems.get(BASE_TABLE_NAME),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\"}]"); log.info("resiMainList:{}", JSON.toJSONString(resiMainList)); String templatePath = "excel/ic_resi_info_cid.xls"; @@ -379,13 +392,11 @@ public class IcResiUserController { AtomicInteger n = new AtomicInteger(); for (FormItem item : resiFormItems.getItemList()) { - if (item.getChildGroup() != null) { if (!item.getChildGroup().getTableName().equals(BASE_TABLE_NAME)) { - Map> resiChildMap = icResiUserService.getDataForExport(itemMap, pageFormDTO.getCustomerId(), pageFormDTO.getFormCode(), item.getChildGroup().getTableName(), pageFormDTO.getConditions()); - resiChildMap.forEach((key,value)->{ - value.putAll(resiMainList.get(key)); - }); + Map itemMap1 = otherSheetItems.get(item.getChildGroup().getTableName()); + Map> resiChildMap = icResiUserService.getDataForExport(itemMap1, pageFormDTO.getCustomerId(), pageFormDTO.getFormCode(), item.getChildGroup().getTableName(), pageFormDTO.getConditions()); + resiChildMap.forEach((key,value)-> value.putAll(resiMainList.get(key))); Map mapData2 = new HashMap<>(); mapData2.put("list", resiChildMap.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 af1e0e4578..796c7ff032 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 @@ -489,7 +489,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl formItem) ); Map headerColumnWrapper = convertExcelHeaders2DBColumnWrappers(formItemMap, combinedHeaders, dataList, abandonedHeaders); - + return formItemMap; } @@ -895,7 +895,9 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> mergeHead(List> headList) { Map lastNotNullHeads = new LinkedHashMap<>(); - + Map> mergedHead = new LinkedHashMap<>(); - + int levelCount = headList.size(); Map firstLevel = headList.get(0); - + // 遍历所有列 for (Map.Entry column : firstLevel.entrySet()) { Integer columIndex = column.getKey(); List labels = new ArrayList<>(); - + // 竖着遍历该列的所有行 for (int currentLevel = 0; currentLevel < levelCount; currentLevel ++) { String label = headList.get(currentLevel).get(columIndex); - + if (StringUtils.isNotBlank(label)) { lastNotNullHeads.put(currentLevel, label); } else { @@ -966,7 +968,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> getDataForExport(Map formItemMap, String customerId, String formCode, String baseTableName, List conditions) { List> mapList = this.dynamicQuery(customerId, formCode, baseTableName, conditions); - + System.out.println("======remote:"+baseTableName+" "+JSON.toJSONString(formItemMap)); Map> result = new LinkedHashMap<>(); mapList.stream().filter(Objects::nonNull).forEach(map -> { String resiId = (String) map.getOrDefault(UserConstant.IC_RESI_USER, ""); @@ -1110,11 +1112,9 @@ public class IcResiUserServiceImpl extends BaseServiceImpl stringMap = listRemoteOptions(new HashMap<>(), v.getOptionSourceValue(), null); - System.out.println("======remote:"+v.getLabel()+" "+JSON.toJSONString(stringMap)); 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); @@ -1132,7 +1132,13 @@ public class IcResiUserServiceImpl extends BaseServiceImpl { - if (optionDTO.getLabel().equals(temp.toString())){ + 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()); } }); @@ -1173,7 +1179,6 @@ public class IcResiUserServiceImpl extends BaseServiceImplFQ~@|A1KYBs+D$ z^EpW~=Uow#V-OoRt=LyGb$Sx`Z(%&gAD!y_l;n(aE%%&?R(7z^&8Fww;fev=1Q}2S zi=YGw=(&VHowr`05hoYA@3k7Xc`PWZwQT6af0MBy(y)Uxr&>kMUE+q=fSyo-`>bGd@bc)&!i!r*BM3U_;?}dlY3(=!>GSrZHPv0c&gW=`~vb zIs*Xfw+V?Xc3mCo+u`KXHlJ6sJIsJUBJ<&WNp_-6Ne-eeNlv2fV7nU^(M|*H8*)p4 zn@+J;5A;Z~6MY~_?6p^tlj{?b~J?}iN7JdMIYHoIi6J%$!7?FSe+L>uT3MG&80_-0Fs2bykPduyP&&)eqUVd`QWG|eO zWT$)O7fBAHVM$J+(~{!A2WKR?h|aQ0!^_Uk|?j=C5iGnC&@|l zhom^7^OD3-x*$m$rB#yLw0+tjpkkq8u8|M<17|uDY{uDAK%o-l;qZ3Uo%Gr(q7cTc z!7c}0VY|O{@m<%ORs3`EbkyR-$y|nf8s_O{B(vC?2WAGl?KrC25)lSxAZ$$uQM5Nv z31Fx^4qa;YU#2+YkY17`%KmRjqUB(f;}wT#P3Wbvvb zC*9`Z5M48Yc)P_sr52!`7MzocgTeMxoZFj*dsPdJw^Y^~4jo9xUJY6BnJj!+dF;+m eI15Xn62xEcYZP=FHPILC^-%SEd;?#t)BXd9Ub<@l delta 2553 zcma);3v5$W7{|YJZ@WS%ecZAzH^eSes=T(Du(2Z9t7U`EDr_^`;$V>tXM`04M2wKm zY%@edd>pZzMu>@-&+*ui4H-<$Bta4f21I2bY>E#aGL*?=;QUVS<*XfBvYy=B^SkH! zzVn^${Lk&J?bFp>)4iIK7y|8Q1qfo7;Pv0o&=7z67G7`fSxTjewQKWJ=JQAFvUD;{ z@_Xr_49B$8YW~PT%9fTC^*rLQC|*&uw0cVeOoR4%N?g;WXF@d5HBCz1OEd8n_?njE zZO3W)yeoeC(>J*D1VU=pFW>KrbdQI?WXfDi49k_TFrAxBx8Q<2I~K@#mR!-h_r`Qhp3!=a+;df)s;*Ue;x+=k&od`_%el%%O@uz-aTX3Q9@kz3C8L|d)X4pI z;|7+Y=@{Z*yFD?4eY0o|$FAS;f2EXaoRi68|nn+4gCcCw>2sj-QAG#im6!3R7` z-e8C()^9bwvlZa{>j3WtG0AvBw=`N=Z^I=yV;5TTJOT5}h24V8NP7fXkXi&;kr=gg zc}P=mk3!Zg@WH3rAYX0{>=k52Y8Awn+a}10Cwd?2f9ZtDYzSvSz<|wY#EjiEA+*?- z^d6QKE3&zT)r8XYfzLEwo@^fM7sQio7sQi2Ac!Y>P>>C&Ly&?|J{M%iu`dKoLHbf7 zUeFwPl-|=dPc8s;(d_W{PCI46IFo{-YOxiC?P^&k85iOd4V?fgH5Een1UA$gi-wU95E%sLc5U$G9GEVDqj zofx0`9pGvoz$*h{hNd&CWpa+%dy0#DB0}XuuOKs?@Sg=)kbV(lMLI9YhX1?23Q~}M zqX&D+$#I&{>o3O1!y=Z#>ia_wSKkFeTzwY>S&=RYvLRg-#1Gq_^lWbexxxl}J7P@+ z93miLGZ@&RfkraPBN5nYATY~Bs6TX_RSa&INnb<-R}uZ#LMxoAYKms38cQItoRZi#C)f=t+kWq>}LLsyDe*3rn_3=f)*z^(0V`FC&$$8 xoWJeLv9^v`q*X`W2yRFrb<%6jwi_wLr@xD$AOC>chW9tMKIg`^@-(u8{12xY3WNXv