diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/FactNeighborhoodUserHouseDailyDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/FactNeighborhoodUserHouseDailyDTO.java index a491bbdd3d..9a2a6d7328 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/FactNeighborhoodUserHouseDailyDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/FactNeighborhoodUserHouseDailyDTO.java @@ -27,7 +27,7 @@ public class FactNeighborhoodUserHouseDailyDTO implements Serializable { private String customerId; /** - * 数据更新至:yyyyMMdd; + * 数据更新至:yyyyMMdd; */ private String dateId; @@ -56,6 +56,11 @@ public class FactNeighborhoodUserHouseDailyDTO implements Serializable { */ private String neighborHoodName; + /** + * 小区总数 + */ + private Integer neighbourhoodsCount; + /** * 房屋总数 */ @@ -141,4 +146,4 @@ public class FactNeighborhoodUserHouseDailyDTO implements Serializable { */ private Date updatedTime; -} \ No newline at end of file +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java index 0aedb1d83e..67f56957dc 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java @@ -375,4 +375,7 @@ public interface DataStatisticalOpenFeignClient { @PostMapping("/data/stats/factAgencyUserHouseDaily/userHouseStatAgency") Result userHouseStatAgency(@RequestBody FactUserHouseFormDTO formDTO); + + @PostMapping("/data/stats/factAgencyUserHouseDaily/userHouseStatNeighborhood") + Result userHouseStatNeighborhood(@RequestBody FactUserHouseFormDTO formDTO); } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java index 6ebe9d5004..b5bb0013c4 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java @@ -362,4 +362,9 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp public Result userHouseStatAgency(FactUserHouseFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "userHouseStatAgency", formDTO); } + + @Override + public Result userHouseStatNeighborhood(FactUserHouseFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "userHouseStatNeighborhood", formDTO); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactUserHouseController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactUserHouseController.java index 6dfe03236b..3ff1e7df16 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactUserHouseController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactUserHouseController.java @@ -77,12 +77,12 @@ public class FactUserHouseController { * * @param formDTO * @return com.epmet.commons.tools.utils.Result - * @author zhy + * @author wgf * @date 2022/5/31 9:48 */ @PostMapping("userHouseStatNeighborhood") public Result userHouseStatNeighborhood(@RequestBody FactUserHouseFormDTO formDTO) { -// factUserHouseService.statNeighborhood(formDTO); + factUserHouseService.statNeighborhood(formDTO); return new Result(); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/IcHouseDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/IcHouseDao.java index b6af5aa3b2..5e3d1e5477 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/IcHouseDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/IcHouseDao.java @@ -19,6 +19,10 @@ public interface IcHouseDao extends BaseDao { List houseStat(FactUserHouseFormDTO formDTO); + List houseStatNew(FactUserHouseFormDTO formDTO); + List neighborhoodStatStat(FactUserHouseFormDTO formDTO); + List neighborhoodStatStatNew(FactUserHouseFormDTO formDTO); + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactNeighborhoodUserHouseDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactNeighborhoodUserHouseDailyDao.java index f5b26bc331..e83fb2dcc7 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactNeighborhoodUserHouseDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactNeighborhoodUserHouseDailyDao.java @@ -1,9 +1,14 @@ package com.epmet.dao.stats; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.stats.form.FactUserHouseFormDTO; +import com.epmet.dto.stats.result.FactUserHouseResultDTO; import com.epmet.entity.stats.FactNeighborhoodUserHouseDailyEntity; import org.apache.ibatis.annotations.Mapper; +import java.util.List; +import java.util.Map; + /** * 网格的人房信息统计数,按天统计 * @@ -12,5 +17,11 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface FactNeighborhoodUserHouseDailyDao extends BaseDao { - -} \ No newline at end of file + + void deleteByDateId(FactUserHouseFormDTO formDTO); + + List listPage(Map params); + + List getTotal(Map params); + +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/IcResiUserDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/IcResiUserDao.java index 56b1cb5fd1..e879641504 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/IcResiUserDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/IcResiUserDao.java @@ -37,4 +37,6 @@ public interface IcResiUserDao extends BaseDao { List userStat(FactUserHouseFormDTO formDTO); + List userStatNew(FactUserHouseFormDTO formDTO); + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactNeighborhoodUserHouseDailyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactNeighborhoodUserHouseDailyEntity.java index 53b963b560..2c48798b2c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactNeighborhoodUserHouseDailyEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactNeighborhoodUserHouseDailyEntity.java @@ -27,7 +27,7 @@ public class FactNeighborhoodUserHouseDailyEntity extends BaseEpmetEntity { private String customerId; /** - * 数据更新至:yyyyMMdd; + * 数据更新至:yyyyMMdd; */ private String dateId; @@ -56,10 +56,15 @@ public class FactNeighborhoodUserHouseDailyEntity extends BaseEpmetEntity { */ private String neighborHoodName; + /** + * 房屋总数 + */ + private Integer houseCount; + /** - * 房屋总数 + * 小区总数 */ - private Integer houseCount; + private Integer neighbourhoodsCount; /** * 自住房屋总数 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/HouseService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/HouseService.java index a174b06c26..5eafd8cc88 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/HouseService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/HouseService.java @@ -40,6 +40,16 @@ public interface HouseService { */ List houseStat(FactUserHouseFormDTO formDTO); + /** + * 房屋统计(小区) + * + * @param formDTO + * @return java.util.List + * @author wgf + * @date 2022/5/30 13:33 + */ + List houseStatNew(FactUserHouseFormDTO formDTO); + /** * 小区统计 * @@ -50,4 +60,14 @@ public interface HouseService { */ List neighborhoodStat(FactUserHouseFormDTO formDTO); + /** + * 小区统计(小区) + * + * @param formDTO + * @return java.util.List + * @author wgf + * @date 2022/5/30 13:33 + */ + List neighborhoodStatNew(FactUserHouseFormDTO formDTO); + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/HouseServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/HouseServiceImpl.java index efcb8612ca..f6e74ac689 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/HouseServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/HouseServiceImpl.java @@ -24,9 +24,19 @@ public class HouseServiceImpl extends BaseServiceImpl return baseDao.houseStat(formDTO); } + @Override + public List houseStatNew(FactUserHouseFormDTO formDTO) { + return baseDao.houseStatNew(formDTO); + } + @Override public List neighborhoodStat(FactUserHouseFormDTO formDTO) { return baseDao.neighborhoodStatStat(formDTO); } + @Override + public List neighborhoodStatNew(FactUserHouseFormDTO formDTO) { + return baseDao.neighborhoodStatStatNew(formDTO); + } + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactNeighborhoodUserHouseDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactNeighborhoodUserHouseDailyService.java index 2b8f79e32c..4c8905bae4 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactNeighborhoodUserHouseDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactNeighborhoodUserHouseDailyService.java @@ -3,6 +3,8 @@ package com.epmet.service.stats; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.stats.FactNeighborhoodUserHouseDailyDTO; +import com.epmet.dto.stats.form.FactUserHouseFormDTO; +import com.epmet.dto.stats.result.FactUserHouseResultDTO; import com.epmet.entity.stats.FactNeighborhoodUserHouseDailyEntity; import java.util.List; @@ -24,7 +26,7 @@ public interface FactNeighborhoodUserHouseDailyService extends BaseService page(Map params); + PageData page(Map params); /** * 默认查询 @@ -75,4 +77,37 @@ public interface FactNeighborhoodUserHouseDailyService extends BaseService + * @author wgf + * @date 2022-05-27 + */ + List listExport(Map params); + + /** + * 页面合计 + * + * @param params + * @return PageData + * @author wgf + * @date 2022-05-27 + */ + FactUserHouseResultDTO getTotal(Map params); + + +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactUserHouseService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactUserHouseService.java index a962859465..9221627c48 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactUserHouseService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactUserHouseService.java @@ -56,6 +56,16 @@ public interface FactUserHouseService { */ void statGrid(FactUserHouseFormDTO formDTO); + /** + * 人房小区数据 + * + * @param formDTO + * @return void + * @author wgf + * @date 2022/5/30 13:31 + */ + void statNeighborhood(FactUserHouseFormDTO formDTO); + /** * 人房组织数据 * @@ -65,4 +75,4 @@ public interface FactUserHouseService { * @date 2022/5/30 13:31 */ void statAgency(FactUserHouseFormDTO formDTO); -} \ No newline at end of file +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGridUserHouseDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGridUserHouseDailyServiceImpl.java index 0aaa1f0c2e..7aef227b16 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGridUserHouseDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGridUserHouseDailyServiceImpl.java @@ -54,13 +54,21 @@ public class FactGridUserHouseDailyServiceImpl extends BaseServiceImpl implements FactNeighborhoodUserHouseDailyService { + @Autowired + private LoginUserUtil loginUserUtil; + @Override - public PageData page(Map params) { - IPage page = baseDao.selectPage( - getPage(params, FieldConstant.CREATED_TIME, false), - getWrapper(params) - ); - return getPageData(page, FactNeighborhoodUserHouseDailyDTO.class); + public PageData page(Map params) { + params.put("customerId", loginUserUtil.getLoginUserCustomerId()); + IPage page = getPage(params); + List list = baseDao.listPage(params); + return new PageData<>(list, page.getTotal()); } @Override @@ -80,4 +86,44 @@ public class FactNeighborhoodUserHouseDailyServiceImpl extends BaseServiceImpl listExport(Map params) { + return baseDao.listPage(params); + } + + @Override + public FactUserHouseResultDTO getTotal(Map params) { + params.put("customerId", loginUserUtil.getLoginUserCustomerId()); + List list = baseDao.getTotal(params); + + // 只有当日数据直接展示,否则需要统计时间段内两天差值进行Incr和Modify数据计算 + if (list.size() == NumConstant.ZERO) { + return null; + } else if (list.size() == NumConstant.ONE) { + return list.get(0); + } else { + Integer houseIncr = 0; + Integer houseModify = 0; + Integer userIncr = 0; + Integer userModify = 0; + for(FactUserHouseResultDTO factUserHouseResultDTO : list){ + houseIncr = houseIncr + factUserHouseResultDTO.getHouseIncr(); + houseModify = houseModify + factUserHouseResultDTO.getHouseModify(); + userIncr = userIncr + factUserHouseResultDTO.getUserIncr(); + userModify = userModify + factUserHouseResultDTO.getUserModify(); + } + FactUserHouseResultDTO dto = list.get(list.size() - 1); + dto.setHouseIncr(houseIncr); + dto.setHouseModify(houseModify); + dto.setUserIncr(userIncr); + dto.setUserModify(userModify); + return dto; + } + } + +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactUserHouseServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactUserHouseServiceImpl.java index 6b34fda27a..db20e4ccc6 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactUserHouseServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactUserHouseServiceImpl.java @@ -10,12 +10,11 @@ import com.epmet.dto.stats.form.FactUserHouseFormDTO; import com.epmet.dto.stats.result.FactUserHouseResultDTO; import com.epmet.entity.stats.FactAgencyUserHouseDailyEntity; import com.epmet.entity.stats.FactGridUserHouseDailyEntity; +import com.epmet.entity.stats.FactNeighborhoodUserHouseDailyEntity; import com.epmet.service.org.HouseService; -import com.epmet.service.stats.DimGridService; -import com.epmet.service.stats.FactAgencyUserHouseDailyService; -import com.epmet.service.stats.FactGridUserHouseDailyService; -import com.epmet.service.stats.FactUserHouseService; +import com.epmet.service.stats.*; import com.epmet.service.user.IcResiUserService; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -29,6 +28,7 @@ import java.util.*; * @since v1.0.0 2022-05-27 */ @Service +@Slf4j public class FactUserHouseServiceImpl implements FactUserHouseService { @Autowired @@ -37,6 +37,9 @@ public class FactUserHouseServiceImpl implements FactUserHouseService { @Autowired private FactGridUserHouseDailyService factGridUserHouseDailyService; + @Autowired + private FactNeighborhoodUserHouseDailyService factNeighborhoodUserHouseDailyService; + @Autowired private HouseService houseService; @@ -59,7 +62,10 @@ public class FactUserHouseServiceImpl implements FactUserHouseService { params.put("dateId", DateUtils.getBeforeNDay(NumConstant.ONE)); } if (params.containsKey("level")) { - if (OrgLevelEnum.GRID.getCode().equals(params.get("level").toString()) || OrgLevelEnum.COMMUNITY.getCode().equals(params.get("level").toString())) { + if("neighborhood".equals(params.get("level").toString()) || OrgLevelEnum.GRID.getCode().equals(params.get("level").toString())){ + page = factNeighborhoodUserHouseDailyService.page(params); + + }else if (OrgLevelEnum.COMMUNITY.getCode().equals(params.get("level").toString())) { page = factGridUserHouseDailyService.page(params); } else { page = factAgencyUserHouseDailyService.page(params); @@ -83,7 +89,9 @@ public class FactUserHouseServiceImpl implements FactUserHouseService { } // 网格纬度查询网格统计表,其余纬度查询组织统计表 if (params.containsKey("level")) { - if (OrgLevelEnum.GRID.getCode().equals(params.get("level").toString())) { + if("neighborhood".equals(params.get("level").toString())){ + dto = factNeighborhoodUserHouseDailyService.getTotal(params); + }else if (OrgLevelEnum.GRID.getCode().equals(params.get("level").toString())) { dto = factGridUserHouseDailyService.getTotal(params); } else { dto = factAgencyUserHouseDailyService.getTotal(params); @@ -96,7 +104,9 @@ public class FactUserHouseServiceImpl implements FactUserHouseService { public List list(Map params) { List list = new ArrayList<>(); if (params.containsKey("level")) { - if (OrgLevelEnum.GRID.getCode().equals(params.get("level").toString()) || OrgLevelEnum.COMMUNITY.getCode().equals(params.get("level").toString())) { + if("neighborhood".equals(params.get("level").toString()) || OrgLevelEnum.GRID.getCode().equals(params.get("level").toString())){ + list = factNeighborhoodUserHouseDailyService.listExport(params); + }else if (OrgLevelEnum.COMMUNITY.getCode().equals(params.get("level").toString())) { list = factGridUserHouseDailyService.listExport(params); } else { list = factAgencyUserHouseDailyService.listExport(params); @@ -176,6 +186,74 @@ public class FactUserHouseServiceImpl implements FactUserHouseService { factGridUserHouseDailyService.insertBatch(entityList); } + + /** + * 小区 + * @author wgf + * @param formDTO + */ + @Override + public void statNeighborhood(FactUserHouseFormDTO formDTO) { + log.info("$$$进入业务逻辑"); + if (StringUtils.isBlank(formDTO.getDateId())) { + formDTO.setDateId(DateUtils.getBeforeNDay(NumConstant.ONE)); + } + String dateId = formDTO.getDateId(); + String customerId = formDTO.getCustomerId(); + + // 先删除历史 + factNeighborhoodUserHouseDailyService.deleteByDateId(formDTO); + log.info("$$$删除历史完成"); + // 保证小区是全部网格后,其余数据进行循环匹配 + List neiList = houseService.neighborhoodStatNew(formDTO); + List houseList = houseService.houseStatNew(formDTO); + List userList = icResiUserService.userStatNew(formDTO); + + List addList = new ArrayList<>(); + + neiList.forEach(item -> { + String gridId = item.getGridId() == null ? "" : item.getGridId(); + String neighborHoodsId = item.getNeighbourhoodsId(); + FactUserHouseResultDTO dto = new FactUserHouseResultDTO(); + dto.setCustomerId(formDTO.getCustomerId()); + dto.setDateId(dateId); + dto.setGridId(gridId); + dto.setPid(item.getPid() == null ? "" : item.getPid()); + dto.setPids(item.getPids() == null ? "" : item.getPids()); + dto.setNeighbourhoodsCount(item.getNeighbourhoodsCount()); + dto.setNeighbourhoodsId(item.getNeighbourhoodsId()); + dto.setNeighborHoodName(item.getNeighborHoodName()); + + Optional houseOptional = houseList.stream().filter(house -> neighborHoodsId.equals(house.getNeighbourhoodsId()) && customerId.equals(house.getCustomerId())).findFirst(); + if (houseOptional.isPresent()) { + dto.setHouseCount(houseOptional.get().getHouseCount()); + dto.setHouseSelfCount(houseOptional.get().getHouseSelfCount()); + dto.setHouseLeaseCount(houseOptional.get().getHouseLeaseCount()); + dto.setHouseIdleCount(houseOptional.get().getHouseIdleCount()); + } else { + dto.setHouseCount(NumConstant.ZERO); + dto.setHouseSelfCount(NumConstant.ZERO); + dto.setHouseLeaseCount(NumConstant.ZERO); + dto.setHouseIdleCount(NumConstant.ZERO); + } + + Optional userOptional = userList.stream().filter(user -> neighborHoodsId.equals(user.getNeighbourhoodsId()) && customerId.equals(user.getCustomerId())).findFirst(); + if (userOptional.isPresent()) { + dto.setUserCount(userOptional.get().getUserCount()); + dto.setUserResiCount(userOptional.get().getUserResiCount()); + dto.setUserFloatCount(userOptional.get().getUserFloatCount()); + } else { + dto.setUserCount(NumConstant.ZERO); + dto.setUserResiCount(NumConstant.ZERO); + dto.setUserFloatCount(NumConstant.ZERO); + } + addList.add(dto); + }); + log.info("$$$addList:::::" + addList); + List entityList = ConvertUtils.sourceToTarget(addList, FactNeighborhoodUserHouseDailyEntity.class); + factNeighborhoodUserHouseDailyService.insertBatch(entityList); + } + @Override public void statAgency(FactUserHouseFormDTO formDTO) { if (StringUtils.isBlank(formDTO.getDateId())) { @@ -226,4 +304,4 @@ public class FactUserHouseServiceImpl implements FactUserHouseService { } } -} \ No newline at end of file +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/IcResiUserService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/IcResiUserService.java index 3f2289edef..a3c689b8a8 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/IcResiUserService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/IcResiUserService.java @@ -42,4 +42,14 @@ public interface IcResiUserService extends BaseService { */ List userStat(FactUserHouseFormDTO formDTO); + /** + * 居民统计(小区) + * + * @param formDTO + * @return java.util.List + * @author wgf + * @date 2022/5/30 13:33 + */ + List userStatNew(FactUserHouseFormDTO formDTO); + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/IcResiUserServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/IcResiUserServiceImpl.java index b48086d053..e1f1e9ef1e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/IcResiUserServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/IcResiUserServiceImpl.java @@ -47,4 +47,9 @@ public class IcResiUserServiceImpl extends BaseServiceImpl userStatNew(FactUserHouseFormDTO formDTO) { + return baseDao.userStatNew(formDTO); + } + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/IcHouseDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/IcHouseDao.xml index eb15b27feb..297d15dbd3 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/IcHouseDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/IcHouseDao.xml @@ -41,6 +41,43 @@ g.id + + + + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactNeighborhoodUserHouseDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactNeighborhoodUserHouseDailyDao.xml index 41e6a25a05..4ff079453d 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactNeighborhoodUserHouseDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactNeighborhoodUserHouseDailyDao.xml @@ -31,5 +31,97 @@ + + DELETE + FROM + fact_neighborhood_user_house_daily + WHERE + DATE_ID = #{dateId} + AND CUSTOMER_ID = #{customerId} + - \ No newline at end of file + + + + + + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/IcResiUserDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/IcResiUserDao.xml index 0c0d3c76ce..7493d2d979 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/IcResiUserDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/IcResiUserDao.xml @@ -23,4 +23,25 @@ AGENCY_ID + + diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/StatsUserHouseService.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/StatsUserHouseService.java index 58c930e1a1..7a1537bdd1 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/StatsUserHouseService.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/StatsUserHouseService.java @@ -24,4 +24,14 @@ public interface StatsUserHouseService { * @date 2022/5/30 10:25 */ Result execUserHouseAgencyStatistical(FactUserHouseFormDTO formDTO); + + /** + * 人房信息统计 + * + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author zhy + * @date 2022/5/30 10:25 + */ + Result execUserHouseNeighborhoodStatistical(FactUserHouseFormDTO formDTO); } diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/StatsUserHouseServiceImpl.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/StatsUserHouseServiceImpl.java index 30875e947b..653c0ae7e8 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/StatsUserHouseServiceImpl.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/StatsUserHouseServiceImpl.java @@ -27,4 +27,9 @@ public class StatsUserHouseServiceImpl implements StatsUserHouseService { public Result execUserHouseAgencyStatistical(FactUserHouseFormDTO formDTO) { return dataStatisticalOpenFeignClient.userHouseStatAgency(formDTO); } + + @Override + public Result execUserHouseNeighborhoodStatistical(FactUserHouseFormDTO formDTO) { + return dataStatisticalOpenFeignClient.userHouseStatNeighborhood(formDTO); + } } diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StatsUserHouseTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StatsUserHouseTask.java index 1a32b7c1c7..9925ed4391 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StatsUserHouseTask.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StatsUserHouseTask.java @@ -44,5 +44,12 @@ public class StatsUserHouseTask implements ITask { } else { logger.error("StatsUserHouseTask-agency定时任务执行失败:" + result.getMsg()); } + + result = statsUserHouseService.execUserHouseNeighborhoodStatistical(formDTO); + if (result.success()) { + logger.info("StatsUserHouseTask-neighborhood定时任务执行成功"); + } else { + logger.error("StatsUserHouseTask-neighborhood定时任务执行失败:" + result.getMsg()); + } } } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/UserHouseScopeResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/UserHouseScopeResultDTO.java new file mode 100644 index 0000000000..b36cace1e1 --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/UserHouseScopeResultDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.result; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class UserHouseScopeResultDTO { + + private String objectId; + private String objectName; + private String objectType; + + private List children; + +} diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/UserHouseScopeController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/UserHouseScopeController.java new file mode 100644 index 0000000000..3a5e67704f --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/UserHouseScopeController.java @@ -0,0 +1,32 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.result.UserHouseScopeResultDTO; +import com.epmet.service.UserHouseScopeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 服务项目 + */ +@RestController +@RequestMapping("userhouse") +public class UserHouseScopeController { + + @Autowired + public UserHouseScopeService userHouseScopeService; + + + /** + * 服务范围树查询 + * @return + */ + @RequestMapping("service/serviceScopeTree") + public Result getServiceScopeTree(@LoginUser TokenDto loginInfo) { + UserHouseScopeResultDTO r = userHouseScopeService.getServiceScopeTree(loginInfo.getUserId()); + return new Result().ok(r); + } +} diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/UserHouseScopeService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/UserHouseScopeService.java new file mode 100644 index 0000000000..31fb3be5b8 --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/UserHouseScopeService.java @@ -0,0 +1,7 @@ +package com.epmet.service; + +import com.epmet.dto.result.UserHouseScopeResultDTO; + +public interface UserHouseScopeService { + UserHouseScopeResultDTO getServiceScopeTree(String staffId); +} diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/UserHouseScopeServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/UserHouseScopeServiceImpl.java new file mode 100644 index 0000000000..8ccaa5a32a --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/UserHouseScopeServiceImpl.java @@ -0,0 +1,79 @@ +package com.epmet.service.impl; + +import com.epmet.dao.IcNeighborHoodDao; +import com.epmet.dto.IcNeighborHoodDTO; +import com.epmet.dto.result.AgencyTreeResultDTO; +import com.epmet.dto.result.UserHouseScopeResultDTO; +import com.epmet.service.CustomerAgencyService; +import com.epmet.service.UserHouseScopeService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +@Slf4j +@Service +public class UserHouseScopeServiceImpl implements UserHouseScopeService { + + @Autowired + private IcNeighborHoodDao neighborHoodDao; + + @Autowired + private CustomerAgencyService customerAgencyService; + + public UserHouseScopeServiceImpl() { + System.out.println(6); + } + + @Override + public UserHouseScopeResultDTO getServiceScopeTree(String staffId) { + AgencyTreeResultDTO orgTreeData = customerAgencyService.getOrgTreeData(staffId); + + UserHouseScopeResultDTO rootScope = new UserHouseScopeResultDTO(); + rootScope.setObjectId(orgTreeData.getAgencyId()); + rootScope.setObjectType(orgTreeData.getLevel()); + rootScope.setObjectName(orgTreeData.getAgencyName()); + rootScope.setChildren(convert2ServiceProjectScope(orgTreeData.getSubAgencyList())); + + return rootScope; + } + + private List convert2ServiceProjectScope(List oldChildren) { + + ArrayList scopes = new ArrayList<>(); + + for (AgencyTreeResultDTO oldChild : oldChildren) { + UserHouseScopeResultDTO scope = new UserHouseScopeResultDTO(); + scope.setObjectId(oldChild.getAgencyId()); + scope.setObjectType(oldChild.getLevel()); + scope.setObjectName(oldChild.getAgencyName()); + if ("grid".equals(oldChild.getLevel())) { + // 如果是网格,那么还要查询网格下的小区 + List neighborhoods = neighborHoodDao.selectNeighborList(oldChild.getAgencyId()); + + List neighborhoodScopes = neighborhoods.stream().map(n -> new UserHouseScopeResultDTO(n.getId(), + n.getNeighborHoodName(), + "neighborhood", + null)).collect(Collectors.toList()); + + scope.setChildren(neighborhoodScopes); + } else { + // 递归处理子级 + List subAgencyList = oldChild.getSubAgencyList(); + if (subAgencyList != null && !CollectionUtils.isEmpty(subAgencyList)) { + List subOrgScope = convert2ServiceProjectScope(subAgencyList); + scope.setChildren(subOrgScope); + } + } + + scopes.add(scope); + } + + return scopes; + } + +}