Browse Source

人防概览下钻接口

dev
sunyuchao 3 years ago
parent
commit
aee8ef2e4e
  1. 8
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/HouseChartFormDTO.java
  2. 12
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java
  3. 2
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java
  4. 2
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java
  5. 29
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java
  6. 79
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml
  7. 8
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserChartFormDTO.java
  8. 11
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
  9. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java
  10. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java
  11. 61
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
  12. 48
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

8
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/HouseChartFormDTO.java

@ -21,6 +21,14 @@ public class HouseChartFormDTO implements Serializable {
* 组织网格小区类型 agency grid village
*/
private String orgType;
/**
* 数据类型1出租 0自住 2闲置 3未售出
*/
private String rentType;
private Integer pageNo = 1;
private Integer pageSize = 20;
private Boolean isPage = true;
//token这信息
private String customerId;

12
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java

@ -617,4 +617,16 @@ public class HouseController implements ResultDataResolver {
return new Result();
}
/**
* @Author sun
* @Description 人房概览房屋统计数点击查询列表/详情
**/
@PostMapping("housestatislistdetail")
@MaskResponse(fieldNames = {"ownerIdCard", "ownerPhone"}, fieldsMaskType = {MaskResponse.MASK_TYPE_ID_CARD, MaskResponse.MASK_TYPE_MOBILE})
public Result<PageData<IcHouseListResultDTO>> houseStatisListDetail(@LoginUser TokenDto tokenDto, @RequestBody HouseChartFormDTO formDTO) {
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setUserId(tokenDto.getUserId());
return new Result<PageData<IcHouseListResultDTO>>().ok(houseService.houseStatisListDetail(formDTO));
}
}

2
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java

@ -4,6 +4,7 @@ import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.ImportGeneralDTO;
import com.epmet.dto.form.CheckHouseInfoFormDTO;
import com.epmet.dto.form.GetHouseInfoToCollectFormDTO;
import com.epmet.dto.form.HouseChartFormDTO;
import com.epmet.dto.form.IcHouseListFormDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.CustomerOrgParameterEntity;
@ -209,4 +210,5 @@ public interface IcHouseDao extends BaseDao<IcHouseEntity> {
*/
IcHouseEntity getHouseInfoByName(CheckHouseInfoFormDTO formDTO);
List<IcHouseListResultDTO> houseStatisListDetail(HouseChartFormDTO formDTO);
}

2
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java

@ -195,4 +195,6 @@ public interface HouseService {
Result<IcHouseInfoCollectResultDTO> getHouseInfoToCollect(GetHouseInfoToCollectFormDTO formDTO);
PageData<ReportHouseTestResultDTO> listHouses4ReportTest(String houseId, Integer pageNo, Integer pageSize);
PageData<IcHouseListResultDTO> houseStatisListDetail(HouseChartFormDTO formDTO);
}

29
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java

@ -1335,4 +1335,33 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
return new PageData<>(houseDtos, pi.getTotal());
}
@Override
public PageData<IcHouseListResultDTO> houseStatisListDetail(HouseChartFormDTO formDTO) {
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage());
//1.判断入参是否有值,没有值则赋值当前工作人员缓存中所属组织信息
if (StringUtils.isEmpty(formDTO.getOrgId())) {
//获取工作人员缓存信息
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId());
if (null == staffInfo) {
throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", formDTO.getUserId()));
}
formDTO.setOrgId(staffInfo.getAgencyId());
formDTO.setOrgType("agency");
}
//2.按条件查询房屋信息数据
List<IcHouseListResultDTO> list = icHouseDao.houseStatisListDetail(formDTO);
//3.封装数据并返回
list.forEach(item -> {
item.setHouseType(HouseTypeEnums.getTypeValue(item.getHouseTypeKey()));
item.setPurpose(HousePurposeEnums.getTypeValue(item.getPurposeKey()));
});
PageInfo<IcHouseListResultDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list, pageInfo.getTotal());
}
}

79
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml

@ -559,5 +559,84 @@
and DOOR_NAME = #{homeName}
</select>
<select id="houseStatisListDetail" resultType="com.epmet.dto.result.IcHouseListResultDTO">
SELECT
concat(b.building_name,'-',d.unit_num,'-',a.door_name) as houseName,
c.neighbor_hood_name as neighborHoodName,
b.building_name as buildingName,
CONCAT(d.unit_num,'单元') as unitNum,
a.door_name as doorName,
(
case when a.rent_flag = '0' then '自住'
when a.rent_flag = '1' then '出租'
when a.rent_flag = '2' then '闲置'
when a.rent_flag = '3' then '未出售'
else '' end
) as rentFlag,
a.owner_name as ownerName,
a.owner_phone as ownerPhone,
a.owner_id_card as ownerIdCard,
a.house_code,
a.id as houseId,
c.id as neighborHoodId,
b.id as buildingId,
a.building_unit_id as unitNumKey,
a.house_type as houseTypeKey,
a.purpose as purposeKey,
CAST(a.rent_flag AS CHAR) as rentFlagKey,
c.agency_id as agencyId,
ag.organization_name agencyName,
c.grid_id as gridId,
gr.grid_name,
IFNULL(a.sort,0) as sort,
IFNULL(a.remark,'') AS remark,
a.customer_id
FROM
ic_house a
LEFT JOIN ic_building b on a.building_id = b.id and b.del_flag = '0'
LEFT JOIN ic_neighbor_hood c on a.neighbor_hood_id = c.id and c.del_flag = '0'
LEFT JOIN ic_building_unit d on a.building_unit_id = d.id and d.del_flag = '0'
LEFT JOIN customer_grid gr on gr.id = c.grid_id and gr.del_flag = '0'
LEFT JOIN customer_agency ag on ag.id = c.agency_id and ag.del_flag = '0'
WHERE
a.del_flag = '0'
<if test="rentType != null and rentType.trim() != ''">
AND a.rent_flag = #{rentType}
</if>
<choose>
<when test='orgType == "agency"'>
AND a.neighbor_hood_id IN (
select a.id from ic_neighbor_hood a
<!-- 排除掉无效组织、网格数据 -->
inner join customer_agency b on a.agency_id = b.id and b.del_flag = '0'
inner join customer_grid c on a.grid_id = c.id and c.del_flag = '0'
where a.del_flag = '0'
and (a.agency_id = #{orgId} OR a.agency_pids LIKE CONCAT('%', #{orgId}, '%'))
)
</when>
<when test='orgType == "grid"'>
AND a.neighbor_hood_id IN (
select id from ic_neighbor_hood
where del_flag = '0'
and grid_id = #{orgId}
)
</when>
<otherwise>
AND a.neighbor_hood_id IN (
select id from ic_neighbor_hood
where del_flag = '0'
and id = #{orgId}
)
</otherwise>
</choose>
GROUP BY
a.sort,
CONVERT(c.NEIGHBOR_HOOD_NAME using gbk),
CONVERT(b.BUILDING_NAME USING gbk),
CONVERT(d.UNIT_NAME USING gbk),
CAST(a.DOOR_NAME AS SIGNED),
CONVERT(a.DOOR_NAME using gbk)
</select>
</mapper>

8
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserChartFormDTO.java

@ -22,6 +22,14 @@ public class UserChartFormDTO implements Serializable {
* 组织网格小区类型 agency grid village
*/
private String orgType;
/**
* 数据类型居民总数: all 常住: cz 流动: ld
*/
private String type;
private Integer pageNo = 1;
private Integer pageSize = 20;
private Boolean isPage = true;
//id集合
private List<String> idList;

11
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java

@ -1411,4 +1411,15 @@ public class IcResiUserController implements ResultDataResolver {
return new Result<PageData<IcResiNonDynamicResultDTO>>().ok(page);
}
/**
* @Author sun
* @Description 人房概览居民统计数点击查询列表
**/
@PostMapping("icuserstatislist")
public Result<PageData<SearchByNameResultDTO>> icUserStatisList(@LoginUser TokenDto tokenDto, @RequestBody UserChartFormDTO formDTO) {
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setUserId(tokenDto.getUserId());
return new Result<PageData<SearchByNameResultDTO>>().ok(icResiUserService.icUserStatisList(formDTO));
}
}

2
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java

@ -428,4 +428,6 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
* @Date 2022/6/29 17:37
*/
List<IcUserCountResultDTO> getIcUserCount(IcUserCountFormDTO formDTO);
List<SearchByNameResultDTO> icUserStatisList(UserChartFormDTO formDTO);
}

2
epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java

@ -507,4 +507,6 @@ public interface IcResiUserService extends BaseService<IcResiUserEntity> {
IcUserMatchGridResultDTO icUserMatchGrid(IcUserMatchGridFormDTO formDTO);
PageData<IcResiNonDynamicResultDTO> listResiNonDynamic(Boolean fuzzy, String gridId, String name, String mobile, Integer pageNo, Integer pageSize);
PageData<SearchByNameResultDTO> icUserStatisList(UserChartFormDTO formDTO);
}

61
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java

@ -3351,4 +3351,65 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
List<IcResiNonDynamicResultDTO> list = baseDao.selectList(query).stream().map((e) -> ConvertUtils.sourceToTarget(e, IcResiNonDynamicResultDTO.class)).collect(Collectors.toList());
return new PageData<IcResiNonDynamicResultDTO>(list, new PageInfo<>(list).getTotal(), pageSize);
}
@Override
public PageData<SearchByNameResultDTO> icUserStatisList(UserChartFormDTO formDTO) {
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage());
//1.判断入参是否有值,没有值则赋值当前工作人员缓存中所属组织信息
if (StringUtils.isEmpty(formDTO.getOrgId())) {
//2.获取工作人员缓存信息
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId());
if (null == staffInfo) {
throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", formDTO.getUserId()));
}
formDTO.setOrgId(staffInfo.getAgencyId());
formDTO.setOrgType("agency");
}
//获取无效组织网格Id列表
if("agency".equals(formDTO.getOrgType())){
//查询组织数据时排除掉当前组织及下级无效组织列表
Result<DelAgencyGridIdResultDTO> result = govOrgOpenFeignClient.getDelAgencyGridIdList(formDTO.getOrgId());
if (!result.success()) {
throw new EpmetException(String.format("获取当前组织及下级已删除组织、网格列表失败,组织Id->%s", formDTO.getUserId()));
}
formDTO.setAgencyIdList(result.getData().getAgencyIdList());
formDTO.setGridIdList(result.getData().getGridIdList());
}
//2.按条件查询业务数据
List<SearchByNameResultDTO> list = baseDao.icUserStatisList(formDTO);
if (CollectionUtils.isEmpty(list)) {
return new PageData<SearchByNameResultDTO>(new ArrayList<>(), NumConstant.ZERO);
}
//3.封装数据
//查询小区,楼号,网格
Result<List<AllGridsByUserIdResultDTO>> gridResult = govOrgOpenFeignClient.getGridListByGridIds(list.stream().map(SearchByNameResultDTO::getGridId).collect(Collectors.toList()));
if (!gridResult.success()) {
throw new RenException(gridResult.getCode(), gridResult.getMsg());
}
Map<String, String> gridMap = gridResult.getData().stream().collect(Collectors.toMap(AllGridsByUserIdResultDTO::getGridId, AllGridsByUserIdResultDTO::getGridName));
Result<List<IcNeighborHoodDTO>> neighborHoodResult = govOrgOpenFeignClient.getListByIds(list.stream().map(SearchByNameResultDTO::getNeighborHoodId).collect(Collectors.toList()));
if (!neighborHoodResult.success()) {
throw new RenException(neighborHoodResult.getCode(), neighborHoodResult.getMsg());
}
Map<String, String> neighborHoodMap = neighborHoodResult.getData().stream().collect(Collectors.toMap(IcNeighborHoodDTO::getId, IcNeighborHoodDTO::getNeighborHoodName));
Result<List<BuildingResultDTO>> buildResult = govOrgOpenFeignClient.buildingListByIds(list.stream().map(SearchByNameResultDTO::getBuildId).collect(Collectors.toList()));
if (!buildResult.success()) {
throw new RenException(buildResult.getCode(), buildResult.getMsg());
}
Map<String, String> buildMap = buildResult.getData().stream().collect(Collectors.toMap(BuildingResultDTO::getBuildingId, BuildingResultDTO::getBuildingName));
AtomicInteger i = new AtomicInteger(NumConstant.ONE);
list.forEach(item -> {
item.setGridName(gridMap.get(item.getGridId()));
item.setNeighborHoodName(neighborHoodMap.get(item.getNeighborHoodId()));
item.setBuildNum(buildMap.get(item.getBuildId()));
item.setSort(i.getAndIncrement());
});
PageInfo<SearchByNameResultDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list, pageInfo.getTotal());
}
}

48
epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

@ -1289,4 +1289,52 @@
</choose>
</if>
</select>
<select id="icUserStatisList" resultType="com.epmet.dto.result.SearchByNameResultDTO">
SELECT
id AS userId,
`name`,
village_id AS neighborHoodId,
build_id,
grid_id,
mobile,
(
case when gender = '1'then '男'
when gender = '2' then '女'
else '未知'
end
) as gender,
id_card,
IFNULL(birthday,'') AS birthday,
IFNULL(remarks,'') AS remarks
FROM
ic_resi_user
WHERE
del_flag = '0'
AND status = '0'
AND customer_id = #{customerId}
<choose>
<when test='orgType == "agency"'>
AND (agency_id = #{orgId} OR pids LIKE CONCAT('%', #{orgId}, '%'))
<if test='null != agencyIdList and agencyIdList.size() > 0'>
<foreach collection="agencyIdList" item="agencyId" open="AND agency_id NOT IN (" separator="," close=")">
#{agencyId}
</foreach>
</if>
<if test='null != gridIdList and gridIdList.size() > 0'>
<foreach collection="gridIdList" item="gridId" open="AND grid_id NOT IN (" separator="," close=")">
#{gridId}
</foreach>
</if>
</when>
<when test='orgType == "grid"'>
AND grid_id = #{orgId}
</when>
<otherwise>
AND village_id = #{orgId}
</otherwise>
</choose>
GROUP BY `name` ASC
</select>
</mapper>

Loading…
Cancel
Save