Browse Source

新增:当前组织下所有社区的人房信息查询

master
wangxianzhang 3 years ago
parent
commit
33c32b66ed
  1. 33
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java
  2. 15
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/CommunityUserHouseStatsFormDTO.java
  3. 16
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java
  4. 2
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/CustomerAgencyDao.java
  5. 2
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java
  6. 39
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java
  7. 9
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml

33
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/CustomerOrgRedis.java

@ -13,6 +13,7 @@ import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
@ -111,4 +112,36 @@ public class CustomerOrgRedis {
customerOrgRedis.redisUtils.delete(key);
}
/**
* 拼接orgIdPath
* @param orgId
* @param orgType
* @return
*/
public static String getOrgIdPath(String orgId, String orgType) {
String orgPids = null;
if ("grid".equals(orgType)) {
GridInfoCache gridInfo = getGridInfo(orgId);
if (gridInfo == null) {
log.error("查询网格信息失败:{}", orgId);
return null;
}
orgPids = gridInfo.getPids();
} else if ("agency".equals(orgType)) {
AgencyInfoCache agencyInfo = getAgencyInfo(orgId);
if (agencyInfo == null) {
log.error("查询组织信息失败:{}", orgId);
return null;
}
orgPids = agencyInfo.getPids();
}
if (StringUtils.isBlank(orgPids) || "0".equals(orgPids)) {
return orgId;
}
return orgPids.concat(":").concat(orgId);
}
}

15
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/CommunityUserHouseStatsFormDTO.java

@ -0,0 +1,15 @@
package com.epmet.dto.form;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CommunityUserHouseStatsFormDTO {
private String orgId;
private String orgType;
private Integer pageNo = 1;
private Integer pageSize = 10;
}

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

@ -629,4 +629,20 @@ public class HouseController implements ResultDataResolver {
return new Result<PageData<IcHouseListResultDTO>>().ok(houseService.houseStatisListDetail(formDTO));
}
/**
* 针对社区的人房统计列表
* @return
*/
@PostMapping("communityUserHouseStats")
public Result<List<SubUserHouseListResultDTO>> communityUserHouseStats(@RequestBody CommunityUserHouseStatsFormDTO input) {
String orgId = input.getOrgId();
String orgType = input.getOrgType();
Integer pageNo = input.getPageNo();
Integer pageSize = input.getPageSize();
List<SubUserHouseListResultDTO> r = houseService.communityUserHouseStats(orgId, orgType, pageNo, pageSize);
return new Result<List<SubUserHouseListResultDTO>>().ok(r);
}
}

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

@ -396,5 +396,7 @@ public interface CustomerAgencyDao extends BaseDao<CustomerAgencyEntity> {
* @return
*/
Integer getUsingCommunityStats(@Param("agencyId") String agencyId, @Param("agencyOrgIdPath") String agencyOrgIdPath, @Param("endDate") Date endDate);
List<String> getCommunitysByOrgIdPath(@Param("orgId") String orgId, @Param("orgIdPath") String orgIdPath);
}

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

@ -197,4 +197,6 @@ public interface HouseService {
PageData<ReportHouseTestResultDTO> listHouses4ReportTest(String houseId, Integer pageNo, Integer pageSize);
PageData<IcHouseListResultDTO> houseStatisListDetail(HouseChartFormDTO formDTO);
List<SubUserHouseListResultDTO> communityUserHouseStats(String orgId, String orgType, Integer pageNo, Integer pageSize);
}

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

@ -42,6 +42,7 @@ import com.epmet.enums.*;
import com.epmet.feign.*;
import com.epmet.model.HouseInfoModel;
import com.epmet.model.ImportHouseInfoListener;
import com.epmet.redis.CustomerAgencyRedis;
import com.epmet.redis.IcHouseRedis;
import com.epmet.service.*;
import com.epmet.stats.UserHouseStatsResultDTO;
@ -1392,5 +1393,43 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
return new PageData<>(list, pageInfo.getTotal());
}
@Override
public List<SubUserHouseListResultDTO> communityUserHouseStats(String orgId, String orgType, Integer pageNo, Integer pageSize) {
PageHelper.startPage(pageNo, pageSize);
List<String> communityIds = customerAgencyDao.getCommunitysByOrgIdPath(orgId, CustomerOrgRedis.getOrgIdPath(orgId, orgType));
// 填充组织信息
Map<String, String> communityMap = communityIds.stream().collect(Collectors.toMap(id -> id, id -> concatAgencyNamePath(id)));
List<SubUserHouseListResultDTO> communityUserHouseStats = houseUserChartList(communityIds, communityMap, "agency");
return communityUserHouseStats;
}
public String concatAgencyNamePath(String agencyId) {
List<String> agencyNamePathList = new ArrayList();
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(agencyId);
if (agencyInfo == null) {
return null;
}
agencyNamePathList.add(0, agencyInfo.getOrganizationName());
String pidsStr = agencyInfo.getPids();
if (StringUtils.isBlank(pidsStr)) {
// 没有pids,是顶级,直接返回
return String.join("-", agencyNamePathList);
}
String[] pidList = pidsStr.split(":");
for (String pAgencyId : pidList) {
AgencyInfoCache pAgencyInfo = CustomerOrgRedis.getAgencyInfo(pAgencyId);
if (pAgencyInfo == null) {
continue;
}
agencyNamePathList.add(pAgencyInfo.getOrganizationName());
}
return String.join("-", agencyNamePathList);
}
}

9
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerAgencyDao.xml

@ -1028,4 +1028,13 @@
group by ca.ID, ca.ORGANIZATION_NAME
having community_count > 0) t
</select>
<select id="getCommunitysByOrgIdPath" resultType="string">
select ca.ID
from customer_agency ca
where ca.LEVEL = 'community'
and ca.DEL_FLAG = 0
and (ca.ID = #{orgId} or ca.PIDS like CONCAT(#{orgIdPath},'%'))
order by ca.CREATED_TIME asc
</select>
</mapper>

Loading…
Cancel
Save