|
@ -335,9 +335,29 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
return new PageData(new ArrayList(), NumConstant.ZERO); |
|
|
return new PageData(new ArrayList(), NumConstant.ZERO); |
|
|
} |
|
|
} |
|
|
List<IcFormResColumnDTO> resultColumns = resultColumnRes.getData(); |
|
|
List<IcFormResColumnDTO> resultColumns = resultColumnRes.getData(); |
|
|
|
|
|
// 查询结果列对应的表:
|
|
|
|
|
|
Set<String> resultColumnTables=resultColumns.stream().map(IcFormResColumnDTO::getTableName).collect(Collectors.toSet()); |
|
|
|
|
|
|
|
|
// 查询列表展示项需要用到哪些子表
|
|
|
// 查询列表展示项需要用到哪些子表
|
|
|
Result<List<String>> subTablesRes=operCustomizeOpenFeignClient.querySubTables(queryDTO1); |
|
|
Result<List<SubTableJoinDTO>> subTablesRes=operCustomizeOpenFeignClient.querySubTables(queryDTO1); |
|
|
List<String> subTables =subTablesRes.getData(); |
|
|
List<SubTableJoinDTO> subTables =subTablesRes.getData(); |
|
|
|
|
|
log.info("1、所有的子表subTables:"+JSON.toJSONString(subTables,true)); |
|
|
|
|
|
|
|
|
|
|
|
//关联哪些子表:查询条件用到的表名+查询的列对应的表 并集去重
|
|
|
|
|
|
Set<String> whereConditionTables=formDTO.getConditions().stream().map(ResiUserQueryValueDTO::getTableName).collect(Collectors.toSet()); |
|
|
|
|
|
Set<String> tables=new HashSet<>(); |
|
|
|
|
|
tables.addAll(whereConditionTables); |
|
|
|
|
|
tables.addAll(resultColumnTables); |
|
|
|
|
|
log.info("2、查询条件+查询列对应的tables并集去重:"+ JSON.toJSONString(tables,true)); |
|
|
|
|
|
//最终关联的子表对应的sql:
|
|
|
|
|
|
List<String> finalSubTables =new ArrayList<>(); |
|
|
|
|
|
subTables.forEach(subTable->{ |
|
|
|
|
|
if(tables.contains(subTable.getTableName())){ |
|
|
|
|
|
finalSubTables.add(subTable.getJoinTableSql()); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PageInfo<Map<String, Object>> pageInfo=new PageInfo<>(); |
|
|
PageInfo<Map<String, Object>> pageInfo=new PageInfo<>(); |
|
|
if (null == formDTO.getPageFlag()||formDTO.getPageFlag()) { |
|
|
if (null == formDTO.getPageFlag()||formDTO.getPageFlag()) { |
|
|
//分页
|
|
|
//分页
|
|
@ -347,7 +367,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
formDTO.getFormCode(), |
|
|
formDTO.getFormCode(), |
|
|
formDTO.getConditions(), |
|
|
formDTO.getConditions(), |
|
|
resultColumns, |
|
|
resultColumns, |
|
|
subTables, |
|
|
finalSubTables, |
|
|
staffInfoCacheResult.getAgencyId(), finalStaffOrgPath,null |
|
|
staffInfoCacheResult.getAgencyId(), finalStaffOrgPath,null |
|
|
)); |
|
|
)); |
|
|
}else{ |
|
|
}else{ |
|
@ -355,7 +375,8 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
formDTO.getFormCode(), |
|
|
formDTO.getFormCode(), |
|
|
formDTO.getConditions(), |
|
|
formDTO.getConditions(), |
|
|
resultColumns, |
|
|
resultColumns, |
|
|
subTables,staffInfoCacheResult.getAgencyId(), |
|
|
finalSubTables, |
|
|
|
|
|
staffInfoCacheResult.getAgencyId(), |
|
|
staffOrgPath,null); |
|
|
staffOrgPath,null); |
|
|
pageInfo.setTotal(CollectionUtils.isEmpty(list)?NumConstant.ZERO:list.size()); |
|
|
pageInfo.setTotal(CollectionUtils.isEmpty(list)?NumConstant.ZERO:list.size()); |
|
|
pageInfo.setList(list); |
|
|
pageInfo.setList(list); |
|
@ -515,10 +536,10 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi |
|
|
queryDTO.setCustomerId(customerId); |
|
|
queryDTO.setCustomerId(customerId); |
|
|
queryDTO.setFormCode(formCode); |
|
|
queryDTO.setFormCode(formCode); |
|
|
//所有的子表
|
|
|
//所有的子表
|
|
|
Result<List<String>> subTablesRes=operCustomizeOpenFeignClient.querySubTables(queryDTO); |
|
|
Result<List<SubTableJoinDTO>> subTablesRes=operCustomizeOpenFeignClient.querySubTables(queryDTO); |
|
|
List<String> subTables=new ArrayList<>(); |
|
|
List<String> subTables=new ArrayList<>(); |
|
|
if(subTablesRes.success()&&CollectionUtils.isNotEmpty(subTablesRes.getData())){ |
|
|
if(subTablesRes.success()&&CollectionUtils.isNotEmpty(subTablesRes.getData())){ |
|
|
subTables =subTablesRes.getData(); |
|
|
subTables =subTablesRes.getData().stream().map(SubTableJoinDTO::getJoinTableSql).collect(Collectors.toList()); |
|
|
} |
|
|
} |
|
|
return baseDao.dynamicQuery(customerId,resultTableName,conditions,subTables,currentStaffAgencyId,staffOrgPath); |
|
|
return baseDao.dynamicQuery(customerId,resultTableName,conditions,subTables,currentStaffAgencyId,staffOrgPath); |
|
|
} |
|
|
} |
|
|