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 BaseServiceImpl