diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/HouseInfoDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/HouseInfoDTO.java new file mode 100644 index 0000000000..4855629190 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/HouseInfoDTO.java @@ -0,0 +1,61 @@ +package com.epmet.dataaggre.dto.govorg.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description TODO + * @Author yinzuomei + * @Date 2021/10/28 2:05 下午 + */ +@Data +public class HouseInfoDTO implements Serializable { + private static final long serialVersionUID = -5204197079709062825L; + /** + * 所属家庭Id + */ + private String homeId; + + + /** + * 小区id + */ + private String neighborHoodId; + /** + * 小区名称 + */ + private String neighborHoodName; + + + /** + * 所属楼栋id + */ + private String buildingId; + /** + * 楼栋名称 + */ + private String buildingName; + + + /** + * 所属单元id + */ + private String buildingUnitId; + /** + * 单元名 + */ + private String unitName; + + + /** + * 门牌号 + */ + private String doorName; + + /** + * 房屋类型,这里存储字典value就可以 + */ + private String houseType; +} + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java index b4871aadbc..bd70e305be 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java @@ -17,8 +17,25 @@ public interface IcResiUserDao { @Param("resultColumns") List resultColumns, @Param("subTables") List subTables); + /** + * 查询主表 + * + * @param icResiUserId + * @return java.util.List> + * @author yinzuomei + * @date 2021/10/28 11:20 上午 + */ List> selectById(String icResiUserId); + /** + * 根据ic_resi_user.id去查询各个子表记录,动态传入表名 + * + * @param icResiUserId + * @param tableName + * @return java.util.List> + * @author yinzuomei + * @date 2021/10/28 11:19 上午 + */ List> selectSubTableRecords(@Param("icResiUserId") String icResiUserId,@Param("tableName") String tableName); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java index bd29030255..33f676721b 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java @@ -24,6 +24,7 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Set; /** * 机关单位信息表 @@ -98,4 +99,6 @@ public interface CustomerAgencyDao extends BaseDao { * @Date 2021/9/23 10:16 */ List getOrgList(@Param("staffId") String staffId); + + List queryHouseInfo(@Param("houseIdList") Set houseIdList); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/IcResiUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/IcResiUserServiceImpl.java index 0c8b9f7cce..93b728957c 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/IcResiUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/IcResiUserServiceImpl.java @@ -1,5 +1,6 @@ package com.epmet.dataaggre.service.epmetuser.impl; +import com.alibaba.fastjson.JSON; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.page.PageData; @@ -9,7 +10,10 @@ import com.epmet.dataaggre.dto.epmetuser.IcFormResColumnDTO; import com.epmet.dataaggre.dto.epmetuser.form.IcResiDetailFormDTO; import com.epmet.dataaggre.dto.epmetuser.form.IcResiUserPageFormDTO; import com.epmet.dataaggre.dto.epmetuser.result.IcResiUserPageResultDTO; +import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO; +import com.epmet.dataaggre.dto.govorg.result.HouseInfoDTO; import com.epmet.dataaggre.service.epmetuser.IcResiUserService; +import com.epmet.dataaggre.service.govorg.GovOrgService; import com.epmet.dataaggre.service.opercustomize.CustomerFootBarService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -19,6 +23,8 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; /** * @Description TODO @@ -33,7 +39,8 @@ public class IcResiUserServiceImpl implements IcResiUserService { private IcResiUserDao icResiUserDao; @Autowired private CustomerFootBarService customerFootBarService; - + @Autowired + private GovOrgService govOrgService; /** @@ -52,10 +59,11 @@ public class IcResiUserServiceImpl implements IcResiUserService { log.warn("没有配置列表展示列"); return new PageData(new ArrayList(), NumConstant.ZERO); } - + log.warn("列表展示项:"+JSON.toJSONString(resultColumns)); // 查询列表展示项需要用到哪些子表 + // 拼接好的left join table_name on (ic_resi_user.ID=table_name.IC_RESI_USER AND table_name.del_flag='0') List subTables=customerFootBarService.querySubTables(formDTO.getCustomerId(),formDTO.getFormCode()); - + log.warn("子表:"+JSON.toJSONString(subTables)); /* Set subTableList=resultColumns.stream().filter(item->!item.getTableName().equals("ic_resi_user") && StringUtils.isNotBlank(item.getLink())) .map(IcFormResColumnDTO :: getTableName).collect(Collectors.toSet()); @@ -72,10 +80,30 @@ public class IcResiUserServiceImpl implements IcResiUserService { resultColumns, subTables)); List list = pageInfo.getList(); - //todo 还早着呢 - - - + //查询网格名称 + List gridIds=list.stream().map(IcResiUserPageResultDTO::getGridId).collect(Collectors.toList()); + log.warn("gridIds:"+JSON.toJSONString(gridIds)); + + List gridInfoList=govOrgService.gridListByIds(gridIds); + log.warn(JSON.toJSONString(gridInfoList)); + + Map gridInfoMap = gridInfoList.stream().collect(Collectors.toMap(GridsInfoListResultDTO::getGridId, Function.identity())); + + //查询房子名称 + Set houseIds=list.stream().map(IcResiUserPageResultDTO::getHomeId).collect(Collectors.toSet()); + List houseInfoDTOList=govOrgService.queryHouseInfo(houseIds); + Map houseInfoMap = houseInfoDTOList.stream().collect(Collectors.toMap(HouseInfoDTO::getHomeId, Function.identity())); + for(IcResiUserPageResultDTO resultDTO:list){ + if(null !=gridInfoMap&&gridInfoMap.containsKey(resultDTO.getGridId())){ + resultDTO.setGridName(gridInfoMap.get(resultDTO.getGridId()).getGridName()); + } + if(null !=houseInfoMap &&houseInfoMap.containsKey(resultDTO.getHomeId())){ + resultDTO.setBuildName(houseInfoMap.get(resultDTO.getHomeId()).getBuildingName()); + resultDTO.setVallageName(houseInfoMap.get(resultDTO.getHomeId()).getNeighborHoodName()); + resultDTO.setUnitName(houseInfoMap.get(resultDTO.getHomeId()).getUnitName()); + resultDTO.setHomeName(houseInfoMap.get(resultDTO.getHomeId()).getDoorName()); + } + } pageInfo.setList(list); return new PageData<>(pageInfo.getList(),pageInfo.getTotal()); } @@ -94,6 +122,7 @@ public class IcResiUserServiceImpl implements IcResiUserService { @Override public Map queryIcResiDetail(IcResiDetailFormDTO pageFormDTO) { Map resultMap=new HashMap(); + // 先查询主表,主表没有记录,直接返回空 List> icResiUserMapList=icResiUserDao.selectById(pageFormDTO.getIcResiUserId()); if(CollectionUtils.isEmpty(icResiUserMapList)){ return new HashMap(); @@ -104,8 +133,12 @@ public class IcResiUserServiceImpl implements IcResiUserService { Set subTableList=customerFootBarService.queryIcResiSubTables(pageFormDTO.getCustomerId(),pageFormDTO.getFormCode()); for(String subTalbeName:subTableList){ List> list=icResiUserDao.selectSubTableRecords(pageFormDTO.getIcResiUserId(),subTalbeName); - - resultMap.put(subTalbeName,list); + if(!CollectionUtils.isEmpty(list)){ + resultMap.put(subTalbeName,list); + } + //else{ + // resultMap.put(subTalbeName,new ArrayList<>()); + //} } return resultMap; } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java index 41b97b57ac..f475d7d38f 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java @@ -12,6 +12,7 @@ import com.epmet.dataaggre.dto.govorg.result.*; import com.epmet.dataaggre.dto.resigroup.result.OrgInfoCommonDTO; import java.util.List; +import java.util.Set; /** * @Author zxc @@ -154,4 +155,6 @@ public interface GovOrgService { * @Date 2021/9/23 10:14 */ List getStaffOrgList(String staffId); + + List queryHouseInfo(Set houseIdList); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java index d4e265cdec..bfa7f9f9d1 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java @@ -532,4 +532,12 @@ public class GovOrgServiceImpl implements GovOrgService { return customerAgencyDao.getOrgList(staffId); } + @Override + public List queryHouseInfo(Set houseIdList) { + if(CollectionUtils.isEmpty(houseIdList)){ + return new ArrayList<>(); + } + return customerAgencyDao.queryHouseInfo(houseIdList); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml index fc07f2d304..f951feaacc 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml @@ -31,14 +31,21 @@ ${column.columnName} + , + GROUP_CONCAT(ic_resi_demand.CATEGORY_CODE), + GROUP_CONCAT(ic_resi_demand_dict.CATEGORY_NAME) FROM - ic_resi_user + ic_resi_user ${subTableName} + left join ic_resi_demand_dict + on(ic_resi_user.customer_id=ic_resi_demand_dict.CUSTOMER_ID + and ic_resi_demand.CATEGORY_CODE=ic_resi_demand_dict.CATEGORY_CODE ) + WHERE ic_resi_user.DEL_FLAG = '0' and ic_resi_user.customer_id=#{customerId} @@ -47,19 +54,20 @@ - and ${subCondition.columnName} = #{subCondition.columnValue[0]} + and ${subCondition.tableName}.${subCondition.columnName} = #{subCondition.columnValue[0]} - and ${subCondition.columnName} like concat('%',#{subCondition.columnValue[0]},'%') + and ${subCondition.tableName}.${subCondition.columnName} like concat('%',#{subCondition.columnValue[0]},'%') - and ${subCondition.columnName} between #{subCondition.columnValue[0]} and #{subCondition.columnValue[1]} + and ${subCondition.tableName}.${subCondition.columnName} between #{subCondition.columnValue[0]} and #{subCondition.columnValue[1]} + group by IC_RESI_USER.id order by ic_resi_user.CREATED_TIME desc diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml index 7a0760d0a3..63766e9120 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml @@ -286,4 +286,25 @@ AND USER_ID = #{staffId} +