|
|
@ -92,10 +92,10 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private EpmetAdminOpenFeignClient adminOpenFeignClient; |
|
|
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
private LoginUserUtil loginUserUtil; |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public PageData<IcResiUserDTO> page(Map<String, Object> params) { |
|
|
|
IPage<IcResiUserEntity> page = baseDao.selectPage( |
|
|
@ -162,6 +162,28 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public void add(TokenDto tokenDto, List<IcResiUserFormDTO> formDTO) { |
|
|
|
//循环自动拼接sql语句,往多个表新增数据
|
|
|
|
//0.校验必填字段是否为空
|
|
|
|
Result<List<ColumnTableNameResultDTO>> resultList = operCustomizeOpenFeignClient.getMustColumn(tokenDto.getCustomerId()); |
|
|
|
if (resultList.success() && null != resultList.getData()) { |
|
|
|
StringBuffer str = new StringBuffer(""); |
|
|
|
formDTO.forEach(f -> { |
|
|
|
resultList.getData().forEach(l -> { |
|
|
|
if (f.getTableName().equals(l.getTableName())) { |
|
|
|
f.getList().forEach(map -> { |
|
|
|
if (!map.containsKey(l.getColumnName())) { |
|
|
|
str.append(str.length() < NumConstant.ONE ? l.getLabel() : "、" + l.getLabel()); |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
if (str.length() > NumConstant.ZERO ) { |
|
|
|
throw new RenException(String.format("新增居民信息,必要字段值为空,%s值为空", str)); |
|
|
|
} |
|
|
|
} else { |
|
|
|
throw new RenException(String.format("新增居民信息-根据客户Id查询必填信息失败,customerId->%s", tokenDto.getCustomerId())); |
|
|
|
} |
|
|
|
|
|
|
|
//1.先往主表新增数据
|
|
|
|
//主表Id
|
|
|
|
String resiUserId = UUID.randomUUID().toString().replaceAll("-", ""); |
|
|
@ -293,6 +315,12 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
|
|
|
|
|
@Override |
|
|
|
public PageData<Map<String, Object>> pageResiMap(IcResiUserPageFormDTO formDTO) { |
|
|
|
CustomerStaffInfoCacheResult staffInfoCacheResult=CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(),formDTO.getStaffId()); |
|
|
|
String staffOrgPath=StrConstant.EPMETY_STR; |
|
|
|
if(StringUtils.isNotBlank(staffInfoCacheResult.getAgencyPIds())&& !NumConstant.ZERO_STR.equals(staffInfoCacheResult.getAgencyPIds())){ |
|
|
|
staffOrgPath=staffInfoCacheResult.getAgencyPIds().concat(":").concat(staffInfoCacheResult.getAgencyId()); |
|
|
|
} |
|
|
|
|
|
|
|
// 查询列表展示项,如果没有,直接返回
|
|
|
|
CustomerFormQueryDTO queryDTO1=new CustomerFormQueryDTO(); |
|
|
|
queryDTO1.setCustomerId(formDTO.getCustomerId()); |
|
|
@ -309,18 +337,22 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
|
PageInfo<Map<String, Object>> pageInfo=new PageInfo<>(); |
|
|
|
if (null == formDTO.getPageFlag()||formDTO.getPageFlag()) { |
|
|
|
//分页
|
|
|
|
String finalStaffOrgPath = staffOrgPath; |
|
|
|
pageInfo= PageHelper.startPage(formDTO.getPageNo(), |
|
|
|
formDTO.getPageSize()).doSelectPageInfo(() -> baseDao.selectListResiMap(formDTO.getCustomerId(), |
|
|
|
formDTO.getFormCode(), |
|
|
|
formDTO.getConditions(), |
|
|
|
resultColumns, |
|
|
|
subTables)); |
|
|
|
subTables, |
|
|
|
staffInfoCacheResult.getAgencyId(), finalStaffOrgPath |
|
|
|
)); |
|
|
|
}else{ |
|
|
|
List<Map<String,Object>> list=baseDao.selectListResiMap(formDTO.getCustomerId(), |
|
|
|
formDTO.getFormCode(), |
|
|
|
formDTO.getConditions(), |
|
|
|
resultColumns, |
|
|
|
subTables); |
|
|
|
subTables,staffInfoCacheResult.getAgencyId(), |
|
|
|
staffOrgPath); |
|
|
|
pageInfo.setTotal(CollectionUtils.isEmpty(list)?NumConstant.ZERO:list.size()); |
|
|
|
pageInfo.setList(list); |
|
|
|
} |
|
|
@ -380,8 +412,9 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
|
} else if (HouseTypeEnum.BIESHU.getCode().equals(houseType)) { |
|
|
|
resultMap.put(UserConstant.HOUSE_TYPE_KEY, HouseTypeEnum.BIESHU.getName()); |
|
|
|
} |
|
|
|
|
|
|
|
resultMap.put(UserConstant.HOME_ID, neighBorName.concat(buildName).concat(unitName).concat(doorName)); |
|
|
|
|
|
|
|
resultMap.put("CATEGORY_NAME",queryUserDemandName(formDTO.getCustomerId(),(String) resultMap.get("icResiUserId"))); |
|
|
|
} |
|
|
|
|
|
|
|
if (resultMap.containsKey(UserConstant.GENDER)) { |
|
|
@ -399,6 +432,24 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
|
return new PageData<>(pageInfo.getList(), pageInfo.getTotal()); |
|
|
|
} |
|
|
|
|
|
|
|
private String queryUserDemandName(String customerId,String icResiUserId) { |
|
|
|
Set<String> demandCodePath=baseDao.selectUserDemandCode(icResiUserId); |
|
|
|
if(CollectionUtils.isEmpty(demandCodePath)){ |
|
|
|
return StrConstant.EPMETY_STR; |
|
|
|
} |
|
|
|
Set<String> codeSet=new HashSet<>(); |
|
|
|
for(String codePath:demandCodePath){ |
|
|
|
if(codePath.contains(StrConstant.COMMA)){ |
|
|
|
String[] codeAtt=codePath.split(StrConstant.COMMA); |
|
|
|
codeSet.add(codeAtt[codeAtt.length-1]); |
|
|
|
}else{ |
|
|
|
codeSet.add(codePath); |
|
|
|
} |
|
|
|
} |
|
|
|
String demandName=baseDao.selectCategoryNames(customerId,codeSet); |
|
|
|
return demandName; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 编辑页面,显示居民信息详情 |
|
|
|
* |
|
|
@ -435,9 +486,12 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
|
|
|
|
|
@Override |
|
|
|
public Object importIcResiInfoFromExcel(String currUserAgencyId) { |
|
|
|
String excelPathName = "/opt/test/基础信息表/resi_info.xls"; |
|
|
|
CustomerAgencyDTO agencyInfo = getResultDataOrThrowsException(govOrgOpenFeignClient.getAgencyById(currUserAgencyId), ServiceConstant.GOV_ORG_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), null); |
|
|
|
String loginUserId = loginUserUtil.getLoginUserId(); |
|
|
|
return importIcResiInfoFromExcel(0, 3, currUserAgencyId, agencyInfo.getPids(), loginUserId); |
|
|
|
|
|
|
|
//return importIcResiInfoFromExcel(excelPathName, 0, 3, currUserAgencyId, agencyInfo.getPids(), loginUserId);
|
|
|
|
return importIcResiExtraInfoFromExcel(excelPathName, 1, 2, currUserAgencyId, agencyInfo.getPids(), loginUserId); |
|
|
|
// imporExcel(1, 1);
|
|
|
|
// imporExcel(2, 1);
|
|
|
|
// imporExcel(3, 1);
|
|
|
@ -448,9 +502,18 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
|
// imporExcel(8, 1);
|
|
|
|
} |
|
|
|
|
|
|
|
private Object importIcResiInfoFromExcel(int sheetNo, int headRowNumber, String currUserAgencyId, String currUserAgencyPids, String currentUserId) { |
|
|
|
/** |
|
|
|
* excel导入居民基本信息 |
|
|
|
* @param sheetNo |
|
|
|
* @param headRowNumber |
|
|
|
* @param currUserAgencyId |
|
|
|
* @param currUserAgencyPids |
|
|
|
* @param currentUserId |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private Object importIcResiInfoFromExcel(String excelPathName, int sheetNo, int headRowNumber, String currUserAgencyId, String currUserAgencyPids, String currentUserId) { |
|
|
|
DynamicEasyExcelListener readListener = new DynamicEasyExcelListener(); |
|
|
|
EasyExcelFactory.read(new File("/opt/test/基础信息表/resi_info.xls")).registerReadListener(readListener).headRowNumber(3).sheet(sheetNo).doRead(); |
|
|
|
EasyExcelFactory.read(new File(excelPathName)).registerReadListener(readListener).headRowNumber(headRowNumber).sheet(sheetNo).doRead(); |
|
|
|
|
|
|
|
List<Map<Integer, String>> headList = readListener.getHeadList(); |
|
|
|
List<Map<Integer, String>> dataList = readListener.getDataList(); |
|
|
@ -458,10 +521,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
|
Map<Integer, List<String>> headers = mergeHead(headList); |
|
|
|
|
|
|
|
// 查询form相关信息
|
|
|
|
CustomerFormQueryDTO form = new CustomerFormQueryDTO(); |
|
|
|
form.setFormCode("resi_base_info"); |
|
|
|
Result<List<FormItem>> result = operCustomizeOpenFeignClient.listItems(form); |
|
|
|
List<FormItem> customerItems = getResultDataOrThrowsException(result, ServiceConstant.OPER_CUSTOMIZE_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【居民信息excel导入】查询表单相关信息失败"); |
|
|
|
List<FormItem> customerItems = listFormItems("resi_base_info"); |
|
|
|
|
|
|
|
// 清洗表头数据
|
|
|
|
Map<Integer, String> abandonedHeaders = washHeaders(headers, customerItems); |
|
|
@ -481,12 +541,57 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
|
} |
|
|
|
}, formItem -> formItem) |
|
|
|
); |
|
|
|
Map<String, ColumnWrapper> headerColumnWrapper = integrate(formItemMap, combinedHeaders, dataList, abandonedHeaders); |
|
|
|
Map<String, ColumnWrapper> headerColumnWrapper = convertExcelHeaders2DBColumnWrappers(formItemMap, combinedHeaders, dataList, abandonedHeaders); |
|
|
|
|
|
|
|
// 持久化
|
|
|
|
persist(headerColumnWrapper, dataList, currUserAgencyId, abandonedHeaders, customerItems.get(0).getTableName(), currUserAgencyPids, currentUserId); |
|
|
|
|
|
|
|
return headerColumnWrapper; |
|
|
|
return headers; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* excel导入居民附加信息 |
|
|
|
* @param excelPathName |
|
|
|
* @param sheetNo |
|
|
|
* @param headRowNumber |
|
|
|
* @param currUserAgencyId |
|
|
|
* @param currUserAgencyPids |
|
|
|
* @param currentUserId |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private Object importIcResiExtraInfoFromExcel(String excelPathName, int sheetNo, int headRowNumber, String currUserAgencyId, String currUserAgencyPids, String currentUserId) { |
|
|
|
DynamicEasyExcelListener readListener = new DynamicEasyExcelListener(); |
|
|
|
EasyExcelFactory.read(new File(excelPathName)).registerReadListener(readListener).headRowNumber(headRowNumber).sheet(sheetNo).doRead(); |
|
|
|
|
|
|
|
List<Map<Integer, String>> headList = readListener.getHeadList(); |
|
|
|
List<Map<Integer, String>> dataList = readListener.getDataList(); |
|
|
|
|
|
|
|
Map<Integer, List<String>> headers = mergeHead(headList); |
|
|
|
|
|
|
|
// 查询form相关信息
|
|
|
|
List<FormItem> customerItems = listFormItems("resi_base_info"); |
|
|
|
|
|
|
|
// 清洗表头数据
|
|
|
|
Map<Integer, String> abandonedHeaders = washHeaders(headers, customerItems); |
|
|
|
|
|
|
|
//合并多级表头
|
|
|
|
HashMap<String, List<Integer>> combinedHeaders = combineHeaders(headers); |
|
|
|
|
|
|
|
// 得到客户配置item数据
|
|
|
|
Map<String, FormItem> formItemMap = customerItems.stream().collect( |
|
|
|
Collectors.toMap(formItem -> { |
|
|
|
String groupLabel = formItem.getGroupLabel(); |
|
|
|
String label = formItem.getLabel(); |
|
|
|
if (StringUtils.isNotBlank(groupLabel)) { |
|
|
|
return groupLabel.concat(":").concat(label); |
|
|
|
} else { |
|
|
|
return label; |
|
|
|
} |
|
|
|
}, formItem -> formItem) |
|
|
|
); |
|
|
|
Map<String, ColumnWrapper> headerColumnWrapper = convertExcelHeaders2DBColumnWrappers(formItemMap, combinedHeaders, dataList, abandonedHeaders); |
|
|
|
|
|
|
|
return formItemMap; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@ -496,11 +601,11 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
|
* @param currUserAgencyId 当前用户的组织id |
|
|
|
* @param checkBoxOptionColumnIdxAndLabel 复选框的列号&label中文 |
|
|
|
*/ |
|
|
|
private void persist(Map<String, ColumnWrapper> headerColumnWrapper, List<Map<Integer, String>> dataRows, |
|
|
|
private void persist(Map<String, ColumnWrapper> headerColumnWrapper, List<Map<Integer, String>> dataRows, |
|
|
|
String currUserAgencyId, Map<Integer, String> checkBoxOptionColumnIdxAndLabel, String tableName, |
|
|
|
String currUserAgencyPids, String currentUserId) { |
|
|
|
for (Map<Integer, String> row : dataRows) { |
|
|
|
|
|
|
|
|
|
|
|
// 当前行的列们
|
|
|
|
// List<ColumnWrapper> columnsOfCurrRow = new ArrayList<>();
|
|
|
|
|
|
|
@ -556,7 +661,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
|
columnAndValues.put("IS_UNITED_FRONT", "0"); |
|
|
|
columnAndValues.put("IS_VETERANS", "0"); |
|
|
|
columnAndValues.put("IS_VOLUNTEER", "0"); |
|
|
|
|
|
|
|
|
|
|
|
columnAndValues.put("AGENCY_ID", currUserAgencyId); |
|
|
|
columnAndValues.put("PIDS", currUserAgencyPids); |
|
|
|
columnAndValues.put("CUSTOMER_ID", loginUserUtil.getCurrentCustomerId()); |
|
|
@ -569,11 +674,23 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
|
// });
|
|
|
|
|
|
|
|
// System.out.println("-------------------");
|
|
|
|
|
|
|
|
|
|
|
|
baseDao.add(tableName, columnAndValues); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 根据formCode查询该form的item列表 |
|
|
|
* @param formCode |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
private List<FormItem> listFormItems(String formCode) { |
|
|
|
CustomerFormQueryDTO form = new CustomerFormQueryDTO(); |
|
|
|
form.setFormCode(formCode); |
|
|
|
Result<List<FormItem>> result = operCustomizeOpenFeignClient.listItems(form); |
|
|
|
return getResultDataOrThrowsException(result, ServiceConstant.OPER_CUSTOMIZE_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【居民信息excel导入】查询表单相关信息失败"); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @description 合并头 |
|
|
|
* |
|
|
@ -626,14 +743,21 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @description 数据整合 |
|
|
|
* |
|
|
|
* @description 数据整合,将excel表头汉字信息转化成ColumnWrapper列封装数据 |
|
|
|
* * key:itemId |
|
|
|
* * value:ColumnWrapper列包装信息 |
|
|
|
* @param formItemMap item map |
|
|
|
* key:itemId; |
|
|
|
* value: 合并之后的head字符串,例如:健康信息:监护人 |
|
|
|
* @param combinedHeaders 合并之后的head信息。 |
|
|
|
* key:合并之后head字符串(例如:党员信息:入党时间); |
|
|
|
* value:列号组成的列表(例如[1,2,3]) |
|
|
|
* @param datas |
|
|
|
* @param abandonedHeaders |
|
|
|
* @return |
|
|
|
* @author wxz |
|
|
|
* @date 2021.10.28 17:08:51 |
|
|
|
*/ |
|
|
|
private Map<String, ColumnWrapper> integrate(Map<String, FormItem> formItemMap, Map<String, List<Integer>> combinedHeaders, |
|
|
|
List<Map<Integer, String>> datas, Map<Integer, String> abandonedHeaders) { |
|
|
|
private Map<String, ColumnWrapper> convertExcelHeaders2DBColumnWrappers(Map<String, FormItem> formItemMap, Map<String, List<Integer>> combinedHeaders, |
|
|
|
List<Map<Integer, String>> datas, Map<Integer, String> abandonedHeaders) { |
|
|
|
|
|
|
|
// HashMap<String, List<ColumnWrapper>> tables = new HashMap<>();
|
|
|
|
Map<String, ColumnWrapper> columns = new LinkedHashMap<>(combinedHeaders.size()); |
|
|
@ -707,7 +831,9 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
|
cascadeItemId = uriParts[1]; |
|
|
|
|
|
|
|
// 根据uri上的id,找到关联的itemid,从而找到关联的item的值
|
|
|
|
cascadeItemColumnWrapper = columnWrappers.get(cascadeItemId); |
|
|
|
if (columnWrappers != null){ |
|
|
|
cascadeItemColumnWrapper = columnWrappers.get(cascadeItemId); |
|
|
|
} |
|
|
|
} else { |
|
|
|
pureUri = fullUri; |
|
|
|
} |
|
|
@ -769,7 +895,9 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (options == null) return null; |
|
|
|
if (options == null) { |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
return options.stream().collect(Collectors.toMap(OptionResultDTO::getLabel, OptionResultDTO::getValue)); |
|
|
|
|
|
|
@ -806,6 +934,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
|
|
|
|
|
/** |
|
|
|
* @description 合并表头 |
|
|
|
* Map<Integer, List<String>> |
|
|
|
* |
|
|
|
* @param headList |
|
|
|
* @return |
|
|
@ -813,67 +942,42 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
|
* @date 2021.10.27 16:17:34 |
|
|
|
*/ |
|
|
|
private Map<Integer, List<String>> mergeHead(List<Map<Integer, String>> headList) { |
|
|
|
Map<Integer, String> l1 = headList.get(0); |
|
|
|
Map<Integer, String> l2 = headList.get(1); |
|
|
|
Map<Integer, String> l3 = headList.get(2); |
|
|
|
|
|
|
|
String l1LastHeadName = ""; |
|
|
|
String l2LastHeadName = ""; |
|
|
|
|
|
|
|
//Map<Integer, String> resultMap = new HashMap<>();
|
|
|
|
HashMap<Integer, List<String>> result = new HashMap<>(); |
|
|
|
Map<Integer, String> lastNotNullHeads = new LinkedHashMap<>(); |
|
|
|
|
|
|
|
for (Map.Entry<Integer, String> entry : l1.entrySet()) { |
|
|
|
Map<Integer, List<String>> mergedHead = new LinkedHashMap<>(); |
|
|
|
|
|
|
|
StringBuilder headerNameConcatStr = new StringBuilder(); |
|
|
|
int levelCount = headList.size(); |
|
|
|
|
|
|
|
Integer key = entry.getKey(); |
|
|
|
String l1TempValue = entry.getValue(); |
|
|
|
Map<Integer, String> firstLevel = headList.get(0); |
|
|
|
|
|
|
|
String l2TempValue = l2.get(key); |
|
|
|
String l3TempValue = l3.get(key); |
|
|
|
// 遍历所有列
|
|
|
|
for (Map.Entry<Integer, String> column : firstLevel.entrySet()) { |
|
|
|
Integer columIndex = column.getKey(); |
|
|
|
|
|
|
|
if (StringUtils.isNotBlank(l1TempValue)) { |
|
|
|
l1LastHeadName = l1TempValue; |
|
|
|
} |
|
|
|
|
|
|
|
if (StringUtils.isNotBlank(l2TempValue)) { |
|
|
|
l2LastHeadName = l2TempValue; |
|
|
|
} |
|
|
|
List<String> labels = new ArrayList<>(); |
|
|
|
|
|
|
|
// 开始拼接
|
|
|
|
if (StringUtils.isNotBlank(l3TempValue)) { |
|
|
|
//headerNameConcatStr.append(l1LastHeadName).append(":").append(l2LastHeadName).append(":").append(l3TempValue);
|
|
|
|
//resultMap.put(key, headerNameConcatStr.toString());
|
|
|
|
ArrayList<String> parts = new ArrayList<>(); |
|
|
|
parts.add(l1LastHeadName); |
|
|
|
parts.add(l2LastHeadName); |
|
|
|
parts.add(l3TempValue); |
|
|
|
result.put(key, parts); |
|
|
|
continue; |
|
|
|
} |
|
|
|
// 竖着遍历该列的所有行
|
|
|
|
for (int currentLevel = 0; currentLevel < levelCount; currentLevel ++) { |
|
|
|
String label = headList.get(currentLevel).get(columIndex); |
|
|
|
|
|
|
|
if (StringUtils.isNotBlank(l2TempValue)) { |
|
|
|
//headerNameConcatStr.append(l1LastHeadName).append(":").append(l2LastHeadName);
|
|
|
|
//resultMap.put(key, headerNameConcatStr.toString());
|
|
|
|
ArrayList<String> parts = new ArrayList<>(); |
|
|
|
parts.add(l1LastHeadName); |
|
|
|
parts.add(l2LastHeadName); |
|
|
|
result.put(key, parts); |
|
|
|
continue; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(label)) { |
|
|
|
lastNotNullHeads.put(currentLevel, label); |
|
|
|
} else { |
|
|
|
if (currentLevel == 0 || StringUtils.isBlank(headList.get(currentLevel - 1).get(columIndex))) { |
|
|
|
label = lastNotNullHeads.get(currentLevel); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (StringUtils.isNotBlank(l1TempValue)) { |
|
|
|
//headerNameConcatStr.append(l1LastHeadName);
|
|
|
|
//resultMap.put(key, headerNameConcatStr.toString());
|
|
|
|
ArrayList<String> parts = new ArrayList<>(); |
|
|
|
parts.add(l1LastHeadName); |
|
|
|
result.put(key, parts); |
|
|
|
continue; |
|
|
|
if (StringUtils.isNotBlank(label)) { |
|
|
|
labels.add(label); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
mergedHead.put(columIndex, labels); |
|
|
|
} |
|
|
|
return result; |
|
|
|
|
|
|
|
return mergedHead; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@ -942,9 +1046,18 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public PersonDataResultDTO personData(PersonDataFormDTO formDTO) { |
|
|
|
baseDao.personData(formDTO.getUserId()); |
|
|
|
PersonDataResultDTO personData = baseDao.personData(formDTO.getUserId()); |
|
|
|
if (null == personData){ |
|
|
|
return new PersonDataResultDTO(); |
|
|
|
} |
|
|
|
// 房屋信息查询
|
|
|
|
Result<List<String>> listResult = govOrgOpenFeignClient.selectHouseInfoByIdCard(personData.getIdCard()); |
|
|
|
if (!listResult.success()){ |
|
|
|
throw new RenException("查询房屋信息失败"); |
|
|
|
} |
|
|
|
personData.setHouseInfo(listResult.getData()); |
|
|
|
// TODO
|
|
|
|
return null; |
|
|
|
return personData; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@ -986,28 +1099,53 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
|
@Override |
|
|
|
public Map<String, Map<String, Object>> getDataForExport(Map<String, FormItem> formItemMap, String customerId, String formCode, String baseTableName, List<ResiUserQueryValueDTO> conditions) { |
|
|
|
List<Map<String, Object>> mapList = this.dynamicQuery(customerId, formCode, baseTableName, conditions); |
|
|
|
|
|
|
|
System.out.println("======remote:"+baseTableName+" "+JSON.toJSONString(formItemMap)); |
|
|
|
Map<String, Map<String, Object>> result = new LinkedHashMap<>(); |
|
|
|
mapList.stream().filter(Objects::nonNull).forEach(map -> { |
|
|
|
String resiId = (String) map.getOrDefault(UserConstant.IC_RESI_USER, ""); |
|
|
|
formItemMap.forEach((k, v)->{ |
|
|
|
for (Map.Entry<String, FormItem> e : formItemMap.entrySet()) { |
|
|
|
String k = e.getKey(); |
|
|
|
FormItem v = e.getValue(); |
|
|
|
Object temp = map.get(k); |
|
|
|
if (temp != null) { |
|
|
|
if (v.getOptionSourceType().equals("remote")) { |
|
|
|
//todo 获取 options
|
|
|
|
} |
|
|
|
if (v.getItemType().equals("checkbox")) { |
|
|
|
v.getOptions().forEach(optionDTO -> { |
|
|
|
map.put(optionDTO.getValue(), temp.toString().contains(optionDTO.getValue()) ? "是" : "否"); |
|
|
|
}); |
|
|
|
} else if (v.getItemType().equals("select")) { |
|
|
|
v.getOptions().forEach(optionDTO -> { |
|
|
|
map.put(optionDTO.getValue(), temp.toString().equals(optionDTO.getValue()) ? optionDTO.getLabel() : ""); |
|
|
|
}); |
|
|
|
try { |
|
|
|
//todo 获取 options
|
|
|
|
Map<String, String> stringMap = listRemoteOptions(new HashMap<>(), 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()); |
|
|
|
} |
|
|
|
|
|
|
|
} else { |
|
|
|
if ("checkbox".equals(v.getItemType())) { |
|
|
|
v.getOptions().forEach(optionDTO -> { |
|
|
|
map.put(optionDTO.getValue(), temp.toString().contains(optionDTO.getValue()) ? "是" : "否"); |
|
|
|
}); |
|
|
|
} 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()); |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
if ("ic_resi_user".equals(baseTableName)) { |
|
|
|
resiId = (String) map.get("ID"); |
|
|
|
} |
|
|
@ -1038,9 +1176,9 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
|
map.put("VILLAGE_NAME", houseInfoDTO.getNeighborHoodName()); |
|
|
|
map.put("BUILD_NAME", houseInfoDTO.getBuildingName()); |
|
|
|
map.put("HOME_ID", houseInfoDTO.getDoorName()); |
|
|
|
map.put("UNIT_ID", houseInfoDTO.getUnitName()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
return result; |
|
|
|
} |
|
|
|