From a2570217f5a7b704f91fa4691101ef76e96db33d Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Wed, 22 Jun 2022 14:45:53 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BA=94=E5=A4=A7=E5=9B=BE=E5=B1=82?= =?UTF-8?q?=E3=80=91=E6=95=B0=E6=8D=AE=E5=B1=95=E7=A4=BA=EF=BC=9A=E5=88=9D?= =?UTF-8?q?=E6=AD=A5=E5=AE=8C=E6=88=90=EF=BC=8C=E5=BE=85=E8=81=94=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CoverageAnalisisDataListResultDTO.java | 5 + .../entity/govorg/IcHouseEntity.java | 9 ++ .../service/govorg/GovOrgCoverageService.java | 22 ++++- .../impl/GovOrgCoverageServiceImpl.java | 52 ++++++++++- .../impl/GovProjectServiceImpl.java | 3 + .../service/impl/CoverageServiceImpl.java | 92 +++++++++++++------ 6 files changed, 152 insertions(+), 31 deletions(-) diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTO.java index 2d526227d5..fd566cb191 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govorg/result/CoverageAnalisisDataListResultDTO.java @@ -15,6 +15,11 @@ public class CoverageAnalisisDataListResultDTO { */ private String categoryKey; + /** + * 类别名称 + */ + private String categoryName; + /** * 场所类型 */ diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcHouseEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcHouseEntity.java index 8f02451776..2982cee72f 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcHouseEntity.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/govorg/IcHouseEntity.java @@ -42,6 +42,11 @@ public class IcHouseEntity extends BaseEpmetEntity { */ private String customerId; + /** + * 所属组织的PIDS,包括agency,grid + */ + private String orgIdPath; + /** * 小区id */ @@ -117,4 +122,8 @@ public class IcHouseEntity extends BaseEpmetEntity { */ private String houseCode; private String houseQrcodeUrl; + /** + * 居住人数 + */ + private String resiNumber; } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgCoverageService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgCoverageService.java index ea5c2d0f87..334e674f75 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgCoverageService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgCoverageService.java @@ -1,5 +1,6 @@ package com.epmet.dataaggre.service.govorg; +import com.epmet.commons.mybatis.service.BaseService; import com.epmet.dataaggre.dto.govorg.result.IcEnterisePatrolResultDTO; import com.epmet.dataaggre.entity.govorg.*; import com.epmet.dataaggre.entity.heart.IcCommunitySelfOrganizationEntity; @@ -81,8 +82,8 @@ public interface GovOrgCoverageService { * @param pageSize * @return */ - List searchGroupRentHouseEntities(String customerId, String agencyIdPath, String search, String categoryKey, - Boolean isPage, Integer pageNo, Integer pageSize); + List searchByResiNumber(String customerId, String agencyIdPath, String search, Integer resiNumberGreaterThan, + Boolean isPage, Integer pageNo, Integer pageSize); /** * 搜索公共服务 @@ -119,4 +120,21 @@ public interface GovOrgCoverageService { List listEnterprisePatrol(String customerId, String agencyId, String staffOrgIds, String search, String categoryKey, Boolean isPage, Integer pageNo, Integer pageSize); + + /** + * 通过居民数量等条件查询房屋数量 + * @param customerId + * @param staffOrgIds + * @param search + * @param resiNumberBiggerThan 查询居住人数大于多少的房屋 + * @return + */ + Integer countByResiNumber(String customerId, String staffOrgIds, String search, Integer resiNumberBiggerThan); + + /** + * 查询客户下,指定分类key对应的对象数据 + * @param categoryKey + * @return + */ + IcCoverageCategoryDictEntity selectByCategoryKey(String categoryKey); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgCoverageServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgCoverageServiceImpl.java index 6545bd5e8c..f00359057f 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgCoverageServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgCoverageServiceImpl.java @@ -1,7 +1,9 @@ package com.epmet.dataaggre.service.govorg.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.commons.tools.utils.EpmetRequestHolder; import com.epmet.dataaggre.constant.DataSourceConstant; import com.epmet.dataaggre.dao.govorg.*; import com.epmet.dataaggre.dto.govorg.result.IcEnterisePatrolResultDTO; @@ -39,6 +41,23 @@ public class GovOrgCoverageServiceImpl implements GovOrgCoverageService { @Autowired private IcEnterprisePatrolRecordDao enterprisePatrolRecordDao; + @Autowired + private IcHouseDao ichousedao; + + /** + * 查询客户下,指定分类key对应的对象数据 + * @param categoryKey + * @return + */ + @Override + public IcCoverageCategoryDictEntity selectByCategoryKey(String categoryKey) { + String customerId = EpmetRequestHolder.getLoginUserCustomerId(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(IcCoverageCategoryDictEntity::getCategoryKey, categoryKey); + queryWrapper.eq(IcCoverageCategoryDictEntity::getCustomerId, customerId); + return coverageCategoryDictDao.selectOne(queryWrapper); + } + /** * 根据categoryKeys分类key列表,查询他们和图层时间的关系,映射为一个map * @param categoryKeys @@ -176,9 +195,13 @@ public class GovOrgCoverageServiceImpl implements GovOrgCoverageService { } @Override - public List searchGroupRentHouseEntities(String customerId, String agencyIdPath, String search, String categoryKey, + public List searchByResiNumber(String customerId, String agencyIdPath, String search, Integer resiNumberGreaterThan, Boolean isPage, Integer pageNo, Integer pageSize) { - return null; + LambdaQueryWrapper query = constructHouseByResiNumber(customerId, agencyIdPath, search, resiNumberGreaterThan); + if (isPage) { + PageHelper.startPage(pageNo, pageSize); + } + return ichousedao.selectList(query); } /** @@ -190,7 +213,8 @@ public class GovOrgCoverageServiceImpl implements GovOrgCoverageService { */ @Override public Integer countPublicServiceEntities(String customerId, String staffOrgIds, String search, String categoryKey) { - return null; + LambdaQueryWrapper query = constructPublicServiceQueryWrapper(customerId, staffOrgIds, search, categoryKey); + return publicServiceDao.selectCount(query); } /** @@ -274,6 +298,28 @@ public class GovOrgCoverageServiceImpl implements GovOrgCoverageService { public List listEnterprisePatrol(String customerId, String agencyId, String staffOrgIds, String search, String categoryKey, Boolean isPage, Integer pageNo, Integer pageSize) { + if (isPage) { + PageHelper.startPage(pageNo, pageSize); + } return enterprisePatrolRecordDao.listEnterprisePatrol(customerId, agencyId, staffOrgIds, search, categoryKey); } + + @Override + public Integer countByResiNumber(String customerId, String staffOrgIds, String search, Integer resiNumberBiggerThan) { + return ichousedao.selectCount(constructHouseByResiNumber(customerId, staffOrgIds, search, resiNumberBiggerThan)); + } + + /** + * 为"根据居住人数查询房屋"构造条件 + */ + private LambdaQueryWrapper constructHouseByResiNumber(String customerId, String staffOrgIds, String search, Integer resiNumberBiggerThan) { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(IcHouseEntity::getCustomerId, customerId); + query.likeRight(IcHouseEntity::getOrgIdPath, staffOrgIds); + if (StringUtils.isNotBlank(search)) { + query.like(IcHouseEntity::getHouseName, search); // todo 这个字段要么丰富一下,要么建立新字段用于查询 + } + query.ge(IcHouseEntity::getResiNumber, resiNumberBiggerThan); + return query; + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java index d3299b50fb..de4c2c2bc5 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java @@ -659,6 +659,9 @@ public class GovProjectServiceImpl implements GovProjectService { public List searchIcEventEntities(String customerId, String staffOrgIds, String search, Boolean isDifficultPoint, Boolean isPage, Integer pageNo, Integer pageSize) { LambdaQueryWrapper query = constructIcEventQueryWrapper(customerId, staffOrgIds, search, isDifficultPoint); + if (isPage) { + PageHelper.startPage(pageNo, pageSize); + } return icEventDao.selectList(query); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java index c675998c18..62c1f5f1e6 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java @@ -183,6 +183,16 @@ public class CoverageServiceImpl implements CoverageService { } } + /** + * 计算数据条数 + * @param customerId + * @param agencyId + * @param staffOrgIds + * @param placeType + * @param categoryKey + * @param search + * @return + */ public Integer doDataListCount(String customerId, String agencyId, String staffOrgIds, String placeType, String categoryKey, String search) { @@ -215,8 +225,8 @@ public class CoverageServiceImpl implements CoverageService { // 企事业单位巡查 return orgCoverageService.countEnterprisePatrol(customerId, agencyId, staffOrgIds, search, categoryKey); } else if (PLACE_TYPE_GROUP_RENT.equals(placeType)) { - // 群租房。出租的房屋,住的人口超过5人属于群租房(是个规定) todo - + // 群租房。出租的房屋,住的人口超过5人属于群租房(是个规定 + return orgCoverageService.countByResiNumber(customerId, staffOrgIds, search, 5); } else if (PLACE_TYPE_PUBLIC_SERVICE.equals(placeType)) { // 公共服务 return orgCoverageService.countPublicServiceEntities(customerId, staffOrgIds, search, categoryKey); @@ -238,12 +248,18 @@ public class CoverageServiceImpl implements CoverageService { * @param search 关键词 * @return */ - public List doDataListSearch(String customerId, String agencyId, String staffOrgIds, String placeType, String categoryKey, String search, + public List doDataListSearch(String customerId, String agencyId, String staffOrgIds, + String placeType, String categoryKey, String search, Integer pageNo, Integer pageSize,Boolean isPage) { + // 根据categoryKey查询类别名称 + IcCoverageCategoryDictEntity categoryDict = orgCoverageService.selectByCategoryKey(categoryKey); + if (PLACE_TYPE_RESI.equals(placeType)) { // 使用分类查询居民信息 - List resiEntities = icResiService.listResisByCategories4Coverage(customerId, agencyId, staffOrgIds, categoryKey, search, pageNo, pageSize, isPage); + List resiEntities = icResiService.listResisByCategories4Coverage( + customerId, agencyId, staffOrgIds, categoryKey, search, pageNo, pageSize, isPage); + return resiEntities.stream().map(re -> { // 使用楼栋的坐标补充居民的坐标信息 BuildingInfoCache resiBuilding = getBuildingInfo(re.getId(), re.getBuildId()); @@ -253,11 +269,15 @@ public class CoverageServiceImpl implements CoverageService { buildingLatitude = resiBuilding.getLatitude(); buildingLongitude = resiBuilding.getLongitude(); } - return new CoverageAnalisisDataListResultDTO(re.getId(), categoryKey, placeType, re.getName(), buildingLatitude, buildingLongitude); + return new CoverageAnalisisDataListResultDTO( + re.getId(), categoryKey, categoryDict.getCategoryName(), placeType, re.getName(), buildingLatitude, buildingLongitude); + }).collect(Collectors.toList()); } else if (PLACE_TYPE_SPECIAL_RESI.equals(placeType)) { // 特殊人群 - List resiInfos = icResiService.listSpecialResisBySpecialType(customerId, agencyId, staffOrgIds, categoryKey, search, pageNo, pageSize, isPage); + List resiInfos = icResiService.listSpecialResisBySpecialType( + customerId, agencyId, staffOrgIds, categoryKey, search, pageNo, pageSize, isPage); + return resiInfos.stream().map(re -> { BuildingInfoCache resiBuilding = getBuildingInfo(re.getId(), re.getBuildId()); String buildingLatitude = null; @@ -266,37 +286,48 @@ public class CoverageServiceImpl implements CoverageService { buildingLatitude = resiBuilding.getLatitude(); buildingLongitude = resiBuilding.getLongitude(); } - return new CoverageAnalisisDataListResultDTO(re.getId(), categoryKey, placeType, re.getName(), buildingLatitude, buildingLongitude); + return new CoverageAnalisisDataListResultDTO( + re.getId(), categoryKey, categoryDict.getCategoryName(), placeType, re.getName(), buildingLatitude, buildingLongitude); + }).collect(Collectors.toList()); } else if (PLACE_TYPE_EVENT.equals(placeType)) { // 难点痛点 List icEventEntities = govProjectService.searchIcEventEntities( customerId, staffOrgIds, search, true, isPage, pageNo, pageSize); + return icEventEntities.stream() - .map(e -> new CoverageAnalisisDataListResultDTO(e.getId(), categoryKey, placeType, e.getName(), e.getLatitude(), e.getLongitude())) + .map(e -> new CoverageAnalisisDataListResultDTO( + e.getId(), categoryKey, categoryDict.getCategoryName(), placeType, e.getName(), e.getLatitude(), e.getLongitude())) .collect(Collectors.toList()); + } else if (PLACE_TYPE_CITY_MANAGEMENT.equals(placeType)) { // 城市资源管理 List cityResources = orgCoverageService.searchCityResourceEntities( customerId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize); return cityResources.stream() - .map(resource -> new CoverageAnalisisDataListResultDTO(resource.getId(), categoryKey, placeType, resource.getName(), resource.getLatitude(), resource.getLongitude())) + .map(resource -> new CoverageAnalisisDataListResultDTO( + resource.getId(), categoryKey, categoryDict.getCategoryName(), placeType, resource.getName(), resource.getLatitude(), resource.getLongitude())) .collect(Collectors.toList()); } else if (PLACE_TYPE_COMUNITY_ORG.equals(placeType)) { // 社区自组织 List l = heartService.searchCommunityOrgEntities( customerId, agencyId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize); + return l.stream() - .map(org -> new CoverageAnalisisDataListResultDTO(org.getId(), categoryKey, placeType, org.getOrganizationName(), org.getLatitude(), org.getLongitude())) + .map(org -> new CoverageAnalisisDataListResultDTO( + org.getId(), categoryKey, categoryDict.getCategoryName(), placeType, org.getOrganizationName(), org.getLatitude(), org.getLongitude())) .collect(Collectors.toList()); + } else if (PLACE_TYPE_PARTY_UNIT.equals(placeType)) { // 机关直属部门(联建单位) 楼宇党建 0;两新组织 1;区域单位党建 2;机关直属部门 3;社会团体 4;民办非企业单位 5;基金会 6;其他 7 if (categoryKey.equals("pu_jgzsbm")) { String partyUnitType = "3"; List l = heartService.searchPartyUnitEntities( customerId, agencyId, staffOrgIds, partyUnitType, search, isPage, pageNo, pageSize); - return l.stream().map(dc -> new CoverageAnalisisDataListResultDTO(dc.getId(), categoryKey, placeType, dc.getUnitName(), dc.getLatitude(), dc.getLongitude())) + + return l.stream() + .map(dc -> new CoverageAnalisisDataListResultDTO(dc.getId(), categoryKey, categoryDict.getCategoryName(), placeType, dc.getUnitName(), dc.getLatitude(), dc.getLongitude())) .collect(Collectors.toList()); } return new ArrayList<>(); @@ -304,38 +335,47 @@ public class CoverageServiceImpl implements CoverageService { // 危化企业 List l = orgCoverageService.searchDangerousChemicalEntities( customerId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize); - return l.stream().map(dc -> new CoverageAnalisisDataListResultDTO(dc.getId(), categoryKey, placeType, dc.getName(), dc.getLatitude(), dc.getLongitude())) + + return l.stream() + .map(dc -> new CoverageAnalisisDataListResultDTO(dc.getId(), categoryKey, categoryDict.getCategoryName(), placeType, dc.getName(), dc.getLatitude(), dc.getLongitude())) .collect(Collectors.toList()); + } else if (PLACE_TYPE_ENTERPRISE_PARTROL.equals(placeType)) { // 企事业单位巡查 List list = orgCoverageService.listEnterprisePatrol( customerId, agencyId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize); - return list.stream().map(dc -> new CoverageAnalisisDataListResultDTO(dc.getPatrolId(), categoryKey, placeType, dc.getPlaceOrgName(), dc.getLatitude(), dc.getLongitude())) + + return list.stream() + .map(dc -> new CoverageAnalisisDataListResultDTO(dc.getPatrolId(), categoryKey, categoryDict.getCategoryName(), placeType, dc.getPlaceOrgName(), dc.getLatitude(), dc.getLongitude())) .collect(Collectors.toList()); + } else if (PLACE_TYPE_GROUP_RENT.equals(placeType)) { - // 群租房。出租的房屋,住的人口超过5人属于群租房(是个规定) todo - //select h.id, b.LATITUDE, b.LONGITUDE, concat(nei.NEIGHBOR_HOOD_NAME, b.BUILDING_NAME, u.UNIT_NAME) - //from ic_house h - //inner join ic_neighbor_hood nei on (h.NEIGHBOR_HOOD_ID = nei.ID and nei.DEL_FLAG='0') - //inner join ic_building b on (h.BUILDING_ID = b.ID and b.DEL_FLAG='0') - //inner join ic_building_unit u on (h.BUILDING_UNIT_ID = u.ID and u.DEL_FLAG='0') - //List houses = orgCoverageService.searchGroupRentHouseEntities(customerId, staffOrgIds, search, isPage, pageNo, pageSize); - //return houses.stream().map(h -> { - // new CoverageAnalisisDataListResultDTO(h.getId(), categoryKey, placeType, h.getName(), h.getLatitude(), h.getLongitude()); - //}) - // .collect(Collectors.toList()); + // 群租房。出租的房屋,住的人口超过5人属于群租房(是个规定 + List houses = orgCoverageService.searchByResiNumber(customerId, staffOrgIds, search, 5, isPage, pageNo, pageSize); + return houses.stream().map(h -> { + BuildingInfoCache buildingInfo = govOrgService.queryBuildingInfo(h.getBuildingId()); + String latitude = null; + String longitude = null; + if (buildingInfo != null) { + latitude = buildingInfo.getLatitude(); + longitude = buildingInfo.getLongitude(); + } + return new CoverageAnalisisDataListResultDTO(h.getId(), categoryKey, categoryDict.getCategoryName(), placeType, h.getHouseName(), latitude, longitude); + }).collect(Collectors.toList()); } else if (PLACE_TYPE_PUBLIC_SERVICE.equals(placeType)) { // 公共服务 List l = orgCoverageService.searchPublicServiceEntities( customerId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize); - return l.stream().map(dc -> new CoverageAnalisisDataListResultDTO(dc.getId(), categoryKey, placeType, dc.getName(), dc.getLatitude(), dc.getLongitude())) + return l.stream() + .map(dc -> new CoverageAnalisisDataListResultDTO(dc.getId(), categoryKey, categoryDict.getCategoryName(), placeType, dc.getName(), dc.getLatitude(), dc.getLongitude())) .collect(Collectors.toList()); } else if (PLACE_TYPE_SUPERIOR_RESOURCE.equals(placeType)) { // 优势资源 List l = orgCoverageService.searchSuporiorResourceEntities( customerId, staffOrgIds, search, categoryKey, isPage, pageNo, pageSize); - return l.stream().map(dc -> new CoverageAnalisisDataListResultDTO(dc.getId(), categoryKey, placeType, dc.getName(), dc.getLatitude(), dc.getLongitude())) + return l.stream() + .map(dc -> new CoverageAnalisisDataListResultDTO(dc.getId(), categoryKey, categoryDict.getCategoryName(), placeType, dc.getName(), dc.getLatitude(), dc.getLongitude())) .collect(Collectors.toList()); } return new ArrayList<>();