Browse Source

Merge branch 'feature/statistical_zhy'

master
zhangyuan 3 years ago
parent
commit
eb05d02cf1
  1. 148
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/FactAgencyUserHouseDailyDTO.java
  2. 139
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/FactGridUserHouseDailyDTO.java
  3. 35
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/form/FactUserHouseFormDTO.java
  4. 159
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/result/FactUserHouseResultDTO.java
  5. 7
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java
  6. 11
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java
  7. 89
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactUserHouseController.java
  8. 24
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/IcHouseDao.java
  9. 26
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactAgencyUserHouseDailyDao.java
  10. 28
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactGridUserHouseDailyDao.java
  11. 40
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/IcResiUserDao.java
  12. 110
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/IcHouseEntity.java
  13. 118
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactAgencyUserHouseDailyEntity.java
  14. 109
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactGridUserHouseDailyEntity.java
  15. 513
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/IcResiUserEntity.java
  16. 56
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/excel/FactUserHouseExcel.java
  17. 53
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/HouseService.java
  18. 32
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/HouseServiceImpl.java
  19. 111
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactAgencyUserHouseDailyService.java
  20. 120
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGridUserHouseDailyService.java
  21. 68
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactUserHouseService.java
  22. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java
  23. 121
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactAgencyUserHouseDailyServiceImpl.java
  24. 130
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGridUserHouseDailyServiceImpl.java
  25. 219
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactUserHouseServiceImpl.java
  26. 45
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/IcResiUserService.java
  27. 50
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/IcResiUserServiceImpl.java
  28. 85
      epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.32__fact_grid_user_house_daily.sql
  29. 63
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/IcHouseDao.xml
  30. 138
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactAgencyUserHouseDailyDao.xml
  31. 237
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactGridUserHouseDailyDao.xml
  32. 23
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/IcResiUserDao.xml
  33. 27
      epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/StatsUserHouseService.java
  34. 30
      epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/StatsUserHouseServiceImpl.java
  35. 48
      epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StatsUserHouseTask.java

148
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/FactAgencyUserHouseDailyDTO.java

@ -0,0 +1,148 @@
package com.epmet.dto.stats;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@Data
public class FactAgencyUserHouseDailyDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键customer_id+AGENCY_ID+date_id只有一条记录
*/
private String id;
/**
* 客户id
*/
private String customerId;
/**
* 数据更新至yyyyMMdd;
*/
private String dateId;
/**
* 组织id
*/
private String agencyId;
/**
* agency_id所属的机关级别社区级community
街道:street,
区县级: district,
市级: city
省级:province
*/
private String level;
/**
* 组织i所属的组织id
*/
private String pid;
/**
* 组织i所有上级id
*/
private String pids;
/**
* 小区总数
*/
private Integer neighbourhoodsCount;
/**
* 房屋总数
*/
private Integer houseCount;
/**
* 自住房屋总数
*/
private Integer houseSelfCount;
/**
* 出租房屋总数
*/
private Integer houseLeaseCount;
/**
* 闲置房屋总数
*/
private Integer houseIdleCount;
/**
* 居民总数
*/
private Integer userCount;
/**
* 常住居民总数
*/
private Integer userResiCount;
/**
* 流动居民总数
*/
private Integer userFloatCount;
/**
* 当日新增房屋数
*/
private Integer houseIncr;
/**
* 当日修改房屋数
*/
private Integer houseModify;
/**
* 当日新增居民数
*/
private Integer userIncr;
/**
* 当日修改居民数
*/
private Integer userModify;
/**
* 删除标识 0未删除1已删除
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间第一次提交审核的时间注意和历史表的第一条记录时间一致
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

139
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/FactGridUserHouseDailyDTO.java

@ -0,0 +1,139 @@
package com.epmet.dto.stats;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 网格的人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@Data
public class FactGridUserHouseDailyDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键customer_id+grid_id+date_id只有一条记录
*/
private String id;
/**
* 客户id
*/
private String customerId;
/**
* 数据更新至yyyyMMdd;
*/
private String dateId;
/**
* 网格id
*/
private String gridId;
/**
* 网格所属的组织id
*/
private String pid;
/**
* 网格所有上级id
*/
private String pids;
/**
* 小区总数
*/
private Integer neighbourhoodsCount;
/**
* 房屋总数
*/
private Integer houseCount;
/**
* 自住房屋总数
*/
private Integer houseSelfCount;
/**
* 出租房屋总数
*/
private Integer houseLeaseCount;
/**
* 闲置房屋总数
*/
private Integer houseIdleCount;
/**
* 居民总数
*/
private Integer userCount;
/**
* 常住居民总数
*/
private Integer userResiCount;
/**
* 流动居民总数
*/
private Integer userFloatCount;
/**
* 当日新增房屋数
*/
private Integer houseIncr;
/**
* 当日修改房屋数
*/
private Integer houseModify;
/**
* 当日新增居民数
*/
private Integer userIncr;
/**
* 当日修改居民数
*/
private Integer userModify;
/**
* 删除标识 0未删除1已删除
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间第一次提交审核的时间注意和历史表的第一条记录时间一致
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

35
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/form/FactUserHouseFormDTO.java

@ -0,0 +1,35 @@
package com.epmet.dto.stats.form;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@Data
public class FactUserHouseFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 客户id
*/
private String customerId;
/**
* 数据更新至yyyyMMdd;
*/
private String dateId;
/**
* level
*/
private String level;
}

159
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/result/FactUserHouseResultDTO.java

@ -0,0 +1,159 @@
package com.epmet.dto.stats.result;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@Data
public class FactUserHouseResultDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键customer_id+AGENCY_ID+date_id只有一条记录
*/
private String id;
/**
* 客户id
*/
private String customerId;
/**
* 数据更新至yyyyMMdd;
*/
private String dateId;
/**
* 网格id
*/
private String gridId;
/**
* 组织id
*/
private String agencyId;
/**
* 组织id
*/
private String agencyName;
/**
* agency_id所属的机关级别社区级community
街道:street,
区县级: district,
市级: city
省级:province
*/
private String level;
/**
* 组织i所属的组织id
*/
private String pid;
/**
* 组织i所有上级id
*/
private String pids;
/**
* 小区总数
*/
private Integer neighbourhoodsCount;
/**
* 房屋总数
*/
private Integer houseCount;
/**
* 自住房屋总数
*/
private Integer houseSelfCount;
/**
* 出租房屋总数
*/
private Integer houseLeaseCount;
/**
* 闲置房屋总数
*/
private Integer houseIdleCount;
/**
* 居民总数
*/
private Integer userCount;
/**
* 常住居民总数
*/
private Integer userResiCount;
/**
* 流动居民总数
*/
private Integer userFloatCount;
/**
* 当日新增房屋数
*/
private Integer houseIncr;
/**
* 当日修改房屋数
*/
private Integer houseModify;
/**
* 当日新增居民数
*/
private Integer userIncr;
/**
* 当日修改居民数
*/
private Integer userModify;
/**
* 删除标识 0未删除1已删除
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间第一次提交审核的时间注意和历史表的第一条记录时间一致
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

7
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java

@ -13,6 +13,7 @@ import com.epmet.dto.org.result.CustomerAgencyDTO;
import com.epmet.dto.org.result.CustomerGridDTO;
import com.epmet.dto.screen.form.InitCustomerIndexForm;
import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.user.form.StaffBaseInfoFormDTO;
import com.epmet.dto.user.param.MidPatrolFormDTO;
import com.epmet.dto.user.result.GridUserInfoDTO;
@ -368,4 +369,10 @@ public interface DataStatisticalOpenFeignClient {
@PostMapping("/data/stats/screenextract/data_check")
Result dataCheck(@RequestBody ExtractOriginFormDTO formDTO);
@PostMapping("/data/stats/factAgencyUserHouseDaily/userHouseStatGrid")
Result userHouseStatGrid(@RequestBody FactUserHouseFormDTO formDTO);
@PostMapping("/data/stats/factAgencyUserHouseDaily/userHouseStatAgency")
Result userHouseStatAgency(@RequestBody FactUserHouseFormDTO formDTO);
}

11
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java

@ -14,6 +14,7 @@ import com.epmet.dto.org.result.CustomerAgencyDTO;
import com.epmet.dto.org.result.CustomerGridDTO;
import com.epmet.dto.screen.form.InitCustomerIndexForm;
import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.user.form.StaffBaseInfoFormDTO;
import com.epmet.dto.user.param.MidPatrolFormDTO;
import com.epmet.dto.user.result.GridUserInfoDTO;
@ -351,4 +352,14 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp
public Result dataCheck(ExtractOriginFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "dataCheck", formDTO);
}
@Override
public Result userHouseStatGrid(FactUserHouseFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "userHouseStatGrid", formDTO);
}
@Override
public Result userHouseStatAgency(FactUserHouseFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "userHouseStatAgency", formDTO);
}
}

89
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactUserHouseController.java

@ -0,0 +1,89 @@
package com.epmet.controller;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.excel.FactUserHouseExcel;
import com.epmet.service.stats.FactUserHouseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* 人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@RestController
@RequestMapping("factAgencyUserHouseDaily")
public class FactUserHouseController {
@Autowired
private FactUserHouseService factUserHouseService;
@RequestMapping("page")
public Result<PageData<FactUserHouseResultDTO>> page(@RequestParam Map<String, Object> params) {
PageData<FactUserHouseResultDTO> page = factUserHouseService.page(params);
return new Result<PageData<FactUserHouseResultDTO>>().ok(page);
}
/**
* 合计
*
* @param params
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.stats.result.FactUserHouseResultDTO>
* @author zhy
* @date 2022/5/31 9:48
*/
@RequestMapping("total")
public Result<FactUserHouseResultDTO> total(@RequestParam Map<String, Object> params) {
FactUserHouseResultDTO dto = factUserHouseService.total(params);
return new Result<FactUserHouseResultDTO>().ok(dto);
}
@GetMapping("export")
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<FactUserHouseResultDTO> list = factUserHouseService.list(params);
if (list.isEmpty()) {
FactUserHouseResultDTO dto = new FactUserHouseResultDTO();
list.add(dto);
}
ExcelUtils.exportExcelToTarget(response, null, list, FactUserHouseExcel.class);
}
/**
* 统计网格纬度
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @author zhy
* @date 2022/5/31 9:48
*/
@PostMapping("userHouseStatGrid")
public Result userHouseStatGrid(@RequestBody FactUserHouseFormDTO formDTO) {
factUserHouseService.statGrid(formDTO);
return new Result();
}
/**
* 统计组织纬度
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @author zhy
* @date 2022/5/31 9:48
*/
@PostMapping("userHouseStatAgency")
public Result userHouseStatAgency(@RequestBody FactUserHouseFormDTO formDTO) {
factUserHouseService.statAgency(formDTO);
return new Result();
}
}

24
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/IcHouseDao.java

@ -0,0 +1,24 @@
package com.epmet.dao.org;
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.org.IcHouseEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 房屋信息
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-25
*/
@Mapper
public interface IcHouseDao extends BaseDao<IcHouseEntity> {
List<FactUserHouseResultDTO> houseStat(FactUserHouseFormDTO formDTO);
List<FactUserHouseResultDTO> neighborhoodStatStat(FactUserHouseFormDTO formDTO);
}

26
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactAgencyUserHouseDailyDao.java

@ -0,0 +1,26 @@
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.FactAgencyUserHouseDailyEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/**
* 人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@Mapper
public interface FactAgencyUserHouseDailyDao extends BaseDao<FactAgencyUserHouseDailyEntity> {
List<FactUserHouseResultDTO> listPage(Map<String, Object> params);
List<FactUserHouseResultDTO> getTotal(Map<String, Object> params);
void deleteByDateId(FactUserHouseFormDTO formDTO);
}

28
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactGridUserHouseDailyDao.java

@ -0,0 +1,28 @@
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.FactGridUserHouseDailyEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/**
* 网格的人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@Mapper
public interface FactGridUserHouseDailyDao extends BaseDao<FactGridUserHouseDailyEntity> {
List<FactUserHouseResultDTO> listPage(Map<String, Object> params);
List<FactUserHouseResultDTO> getTotal(Map<String, Object> params);
List<FactUserHouseResultDTO> statAgency(FactUserHouseFormDTO formDTO);
void deleteByDateId(FactUserHouseFormDTO formDTO);
}

40
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/IcResiUserDao.java

@ -0,0 +1,40 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dao.user;
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.user.IcResiUserEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 用户基础信息
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-26
*/
@Mapper
public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
List<FactUserHouseResultDTO> userStat(FactUserHouseFormDTO formDTO);
}

110
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/org/IcHouseEntity.java

@ -0,0 +1,110 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.entity.org;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/**
* 房屋信息
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-25
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("ic_house")
public class IcHouseEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户id
*/
private String customerId;
/**
* 小区id
*/
private String neighborHoodId;
/**
* 片区idneighbor_hood_part.id,可为空
*/
private String partId;
/**
* 所属楼栋id
*/
private String buildingId;
/**
* 所属单元id
*/
private String buildingUnitId;
/**
* 房屋名字后台插入时生成
*/
private String houseName;
/**
* 门牌号
*/
private String doorName;
/**
* 房屋类型这里存储字典value就可以
*/
private String houseType;
/**
* 存储字典value
*/
private String purpose;
/**
* 1出租0未出租
*/
private Integer rentFlag;
/**
* 房主姓名
*/
private String ownerName;
/**
* 房主电话
*/
private String ownerPhone;
/**
* 房主身份证号
*/
private String ownerIdCard;
/**
* 排序
*/
private BigDecimal sort;
}

118
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactAgencyUserHouseDailyEntity.java

@ -0,0 +1,118 @@
package com.epmet.entity.stats;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("fact_agency_user_house_daily")
public class FactAgencyUserHouseDailyEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户id
*/
private String customerId;
/**
* 数据更新至yyyyMMdd;
*/
private String dateId;
/**
* 组织id
*/
private String agencyId;
/**
* agency_id所属的机关级别社区级community
街道:street,
区县级: district,
市级: city
省级:province
*/
private String level;
/**
* 组织i所属的组织id
*/
private String pid;
/**
* 组织i所有上级id
*/
private String pids;
/**
* 小区总数
*/
private Integer neighbourhoodsCount;
/**
* 房屋总数
*/
private Integer houseCount;
/**
* 自住房屋总数
*/
private Integer houseSelfCount;
/**
* 出租房屋总数
*/
private Integer houseLeaseCount;
/**
* 闲置房屋总数
*/
private Integer houseIdleCount;
/**
* 居民总数
*/
private Integer userCount;
/**
* 常住居民总数
*/
private Integer userResiCount;
/**
* 流动居民总数
*/
private Integer userFloatCount;
/**
* 当日新增房屋数
*/
private Integer houseIncr;
/**
* 当日修改房屋数
*/
private Integer houseModify;
/**
* 当日新增居民数
*/
private Integer userIncr;
/**
* 当日修改居民数
*/
private Integer userModify;
}

109
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactGridUserHouseDailyEntity.java

@ -0,0 +1,109 @@
package com.epmet.entity.stats;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 网格的人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("fact_grid_user_house_daily")
public class FactGridUserHouseDailyEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户id
*/
private String customerId;
/**
* 数据更新至yyyyMMdd;
*/
private String dateId;
/**
* 网格id
*/
private String gridId;
/**
* 网格所属的组织id
*/
private String pid;
/**
* 网格所有上级id
*/
private String pids;
/**
* 小区总数
*/
private Integer neighbourhoodsCount;
/**
* 房屋总数
*/
private Integer houseCount;
/**
* 自住房屋总数
*/
private Integer houseSelfCount;
/**
* 出租房屋总数
*/
private Integer houseLeaseCount;
/**
* 闲置房屋总数
*/
private Integer houseIdleCount;
/**
* 居民总数
*/
private Integer userCount;
/**
* 常住居民总数
*/
private Integer userResiCount;
/**
* 流动居民总数
*/
private Integer userFloatCount;
/**
* 当日新增房屋数
*/
private Integer houseIncr;
/**
* 当日修改房屋数
*/
private Integer houseModify;
/**
* 当日新增居民数
*/
private Integer userIncr;
/**
* 当日修改居民数
*/
private Integer userModify;
}

513
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/user/IcResiUserEntity.java

@ -0,0 +1,513 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.entity.user;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 用户基础信息
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-26
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("ic_resi_user")
public class IcResiUserEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户Id customer.id
*/
private String customerId;
/**
*
*/
private String agencyId;
/**
*
*/
private String pids;
/**
* 网格ID
*/
private String gridId;
/**
* 所属小区ID
*/
private String villageId;
/**
* 所属楼宇Id
*/
private String buildId;
/**
* 单元id
*/
private String unitId;
/**
* 所属家庭Id
*/
private String homeId;
/**
* 是否本地户籍
*/
private String isBdhj;
/**
* 姓名
*/
private String name;
/**
* 手机号
*/
private String mobile;
/**
* 性别
*/
private String gender;
/**
* 身份证号
*/
private String idCard;
/**
* 出生日期
*/
private String birthday;
/**
* 备注
*/
private String remarks;
/**
* 联系人
*/
private String contacts;
/**
* 联系人电话
*/
private String contactsMobile;
/**
* 九小场所url
*/
private String ninePlace;
/**
* 是否党员
*/
private String isParty;
/**
* 是否低保户
*/
private String isDbh;
/**
* 是否保障房
*/
private String isEnsureHouse;
/**
* 是否失业
*/
private String isUnemployed;
/**
* 是否育龄妇女
*/
private String isYlfn;
/**
* 是否退役军人
*/
private String isVeterans;
/**
* 是否统战人员
*/
private String isUnitedFront;
/**
* 是否信访人员
*/
private String isXfry;
/**
* 是否志愿者
*/
private String isVolunteer;
/**
* 是否老年人
*/
private String isOldPeople;
/**
* 是否空巢
*/
private String isKc;
/**
* 是否失独
*/
private String isSd;
/**
* 是否失能
*/
private String isSn;
/**
* 是否失智
*/
private String isSz;
/**
* 是否残疾
*/
private String isCj;
/**
* 是否大病
*/
private String isDb;
/**
* 是否慢病
*/
private String isMb;
/**
* 是否特殊人群
*/
private String isSpecial;
/**
* 是否租户:1 :0
*/
private String isTenant;
/**
* 是否流动人口:1 :0
*/
private String isFloating;
/**
* 文化程度字典表
*/
private String culture;
/**
* 文化程度备注
*/
private String cultureRemakes;
/**
* 特长字典表
*/
private String specialSkill;
/**
* 兴趣爱好
*/
private String hobby;
/**
* 兴趣爱好备注
*/
private String hobbyRemakes;
/**
* 宗教信仰
*/
private String faith;
/**
* 宗教信仰备注
*/
private String faithRemakes;
/**
* 残疾类别字典表
*/
private String cjlb;
/**
* 残疾登记(状况)字典表
*/
private String cjzk;
/**
* 残疾证号
*/
private String cjzh;
/**
* 残疾说明
*/
private String cjsm;
/**
* 有无监护人yes no
*/
private String ynJdr;
/**
* 有无技能特长yes no
*/
private String ynJntc;
/**
* 有无劳动能力
*/
private String ynLdnl;
/**
* 有无非义务教育阶段助学yes no
*/
private String ynFywjyjdzx;
/**
* 所患大病
*/
private String shdb;
/**
* 患大病时间
*/
private String dbsj;
/**
* 所患慢性病
*/
private String shmxb;
/**
* 患慢性病时间
*/
private String mxbsj;
/**
* 是否参保
*/
private String isCb;
/**
* 自付金额
*/
private String zfje;
/**
* 救助金额
*/
private String jzje;
/**
* 救助时间[yyyy-MM-dd]
*/
private String jzsj;
/**
* 享受救助明细序号
*/
private String jzmxxh;
/**
* 健康信息备注
*/
private String healthRemakes;
/**
* 工作单位
*/
private String gzdw;
/**
* 职业
*/
private String zy;
/**
* 离退休时间
*/
private String ltxsj;
/**
* 工作信息备注
*/
private String workRemake;
/**
* 退休金额
*/
private String txje;
/**
* 月收入
*/
private String ysr;
/**
* 籍贯
*/
private String jg;
/**
* 户籍所在地
*/
private String hjszd;
/**
* 现居住地
*/
private String xjzd;
/**
* 人户情况
*/
private String rhzk;
/**
* 居住信息备注
*/
private String jzxxRemakes;
/**
* 民族字典表
*/
private String mz;
/**
* 与户主关系字典表
*/
private String yhzgx;
/**
* 居住情况字典表
*/
private String jzqk;
/**
* 婚姻状况字典表
*/
private String hyzk;
/**
* 配偶情况字典表
*/
private String poqk;
/**
* 有无赡养人
*/
private String ynSyr;
/**
* 与赡养人关系字典表
*/
private String ysyrgx;
/**
* 赡养人电话
*/
private String syrMobile;
/**
* 家庭信息备注
*/
private String jtxxRemakes;
/**
* 用户状态0:正常;1:迁出;2:注销
*/
private String status;
/**
* 用户详细状态01新增02导入03迁入04新生11迁出21死亡
*/
private String subStatus;
/**
* 预留字段1
*/
private String field1;
/**
* 预留字段2
*/
private String field2;
/**
* 预留字段3
*/
private String field3;
/**
* 预留字段4
*/
private String field4;
/**
* 预留字段5
*/
private String field5;
/**
* 预留字段6
*/
private String field6;
/**
* 预留字段7
*/
private String field7;
/**
* 预留字段8
*/
private String field8;
/**
* 预留字段9
*/
private String field9;
/**
* 预留字段10
*/
private String field10;
}

56
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/excel/FactUserHouseExcel.java

@ -0,0 +1,56 @@
package com.epmet.excel;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import java.util.Date;
/**
* 人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@Data
public class FactUserHouseExcel {
@Excel(name = "组织结构")
private String agencyName;
@Excel(name = "小区数")
private Integer neighbourhoodsCount;
@Excel(name = "房屋数")
private Integer houseCount;
@Excel(name = "自住房屋数")
private Integer houseSelfCount;
@Excel(name = "出租房屋数")
private Integer houseLeaseCount;
@Excel(name = "闲置房屋数")
private Integer houseIdleCount;
@Excel(name = "居民总数")
private Integer userCount;
@Excel(name = "常住人口数")
private Integer userResiCount;
@Excel(name = "流动人口数")
private Integer userFloatCount;
@Excel(name = "新增房屋数")
private Integer houseIncr;
@Excel(name = "新增人口数")
private Integer userIncr;
@Excel(name = "修改房屋数")
private Integer houseModify;
@Excel(name = "修改人口数")
private Integer userModify;
}

53
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/HouseService.java

@ -0,0 +1,53 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service.org;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import java.util.List;
/**
* 小区表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-25
*/
public interface HouseService {
/**
* 房屋统计
*
* @param formDTO
* @return java.util.List<com.epmet.dto.stats.result.FactUserHouseResultDTO>
* @author zhy
* @date 2022/5/30 13:33
*/
List<FactUserHouseResultDTO> houseStat(FactUserHouseFormDTO formDTO);
/**
* 小区统计
*
* @param formDTO
* @return java.util.List<com.epmet.dto.stats.result.FactUserHouseResultDTO>
* @author zhy
* @date 2022/5/30 13:33
*/
List<FactUserHouseResultDTO> neighborhoodStat(FactUserHouseFormDTO formDTO);
}

32
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/HouseServiceImpl.java

@ -0,0 +1,32 @@
package com.epmet.service.org.impl;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.constant.DataSourceConstant;
import com.epmet.dao.org.IcHouseDao;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.entity.org.IcHouseEntity;
import com.epmet.service.org.HouseService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
@Slf4j
@DataSource(DataSourceConstant.GOV_ORG)
@Service
public class HouseServiceImpl extends BaseServiceImpl<IcHouseDao, IcHouseEntity> implements HouseService, ResultDataResolver {
@Override
public List<FactUserHouseResultDTO> houseStat(FactUserHouseFormDTO formDTO) {
return baseDao.houseStat(formDTO);
}
@Override
public List<FactUserHouseResultDTO> neighborhoodStat(FactUserHouseFormDTO formDTO) {
return baseDao.neighborhoodStatStat(formDTO);
}
}

111
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactAgencyUserHouseDailyService.java

@ -0,0 +1,111 @@
package com.epmet.service.stats;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.stats.FactAgencyUserHouseDailyDTO;
import com.epmet.dto.stats.FactGridUserHouseDailyDTO;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.entity.stats.FactAgencyUserHouseDailyEntity;
import java.util.List;
import java.util.Map;
/**
* 人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
public interface FactAgencyUserHouseDailyService extends BaseService<FactAgencyUserHouseDailyEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<FactAgencyUserHouseDailyDTO>
* @author generator
* @date 2022-05-27
*/
PageData<FactUserHouseResultDTO> page(Map<String, Object> params);
/**
* 分页合计
*
* @param params
* @return PageData<FactAgencyUserHouseDailyDTO>
* @author generator
* @date 2022-05-27
*/
FactUserHouseResultDTO getTotal(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<FactAgencyUserHouseDailyDTO>
* @author generator
* @date 2022-05-27
*/
List<FactAgencyUserHouseDailyDTO> list(Map<String, Object> params);
/**
* 查询导出数据
*
* @param params
* @return java.util.List<FactUserHouseResultDTO>
* @author generator
* @date 2022-05-27
*/
List<FactUserHouseResultDTO> listExport(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return FactAgencyUserHouseDailyDTO
* @author generator
* @date 2022-05-27
*/
FactAgencyUserHouseDailyDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2022-05-27
*/
void save(FactAgencyUserHouseDailyDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2022-05-27
*/
void update(FactAgencyUserHouseDailyDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2022-05-27
*/
void delete(String[] ids);
/**
* 物理删除历史数据
*
* @param formDTO
* @return void
* @author zhy
* @date 2022/5/30 13:32
*/
void deleteByDateId(FactUserHouseFormDTO formDTO);
}

120
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGridUserHouseDailyService.java

@ -0,0 +1,120 @@
package com.epmet.service.stats;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.stats.FactGridUserHouseDailyDTO;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.entity.stats.FactGridUserHouseDailyEntity;
import java.util.List;
import java.util.Map;
/**
* 网格的人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
public interface FactGridUserHouseDailyService extends BaseService<FactGridUserHouseDailyEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<FactGridUserHouseDailyDTO>
* @author generator
* @date 2022-05-27
*/
PageData<FactUserHouseResultDTO> page(Map<String, Object> params);
/**
* 页面合计
*
* @param params
* @return PageData<FactGridUserHouseDailyDTO>
* @author generator
* @date 2022-05-27
*/
FactUserHouseResultDTO getTotal(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<FactGridUserHouseDailyDTO>
* @author generator
* @date 2022-05-27
*/
List<FactGridUserHouseDailyDTO> list(Map<String, Object> params);
/**
* 查询导出数据
*
* @param params
* @return java.util.List<FactUserHouseResultDTO>
* @author generator
* @date 2022-05-27
*/
List<FactUserHouseResultDTO> listExport(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return FactGridUserHouseDailyDTO
* @author generator
* @date 2022-05-27
*/
FactGridUserHouseDailyDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2022-05-27
*/
void save(FactGridUserHouseDailyDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2022-05-27
*/
void update(FactGridUserHouseDailyDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2022-05-27
*/
void delete(String[] ids);
/**
* 物理删除历史数据
*
* @param formDTO
* @return void
* @author zhy
* @date 2022/5/30 13:32
*/
void deleteByDateId(FactUserHouseFormDTO formDTO);
/**
* 根据网格统计组织数据
*
* @param formDTO
* @return java.util.List<com.epmet.dto.stats.result.FactUserHouseResultDTO>
* @author zhy
* @date 2022/5/30 13:32
*/
List<FactUserHouseResultDTO> statAgency(FactUserHouseFormDTO formDTO);
}

68
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactUserHouseService.java

@ -0,0 +1,68 @@
package com.epmet.service.stats;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.stats.FactAgencyUserHouseDailyDTO;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import java.util.List;
import java.util.Map;
/**
* 人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
public interface FactUserHouseService {
/**
* 默认分页
*
* @param params
* @return PageData<FactAgencyUserHouseDailyDTO>
* @author generator
* @date 2022-05-27
*/
PageData<FactUserHouseResultDTO> page(Map<String, Object> params);
/**
* 页面合计
*
* @param params
* @return PageData<FactAgencyUserHouseDailyDTO>
* @author generator
* @date 2022-05-27
*/
FactUserHouseResultDTO total(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<FactAgencyUserHouseDailyDTO>
* @author generator
* @date 2022-05-27
*/
List<FactUserHouseResultDTO> list(Map<String, Object> params);
/**
* 人房网格数据
*
* @param formDTO
* @return void
* @author zhy
* @date 2022/5/30 13:31
*/
void statGrid(FactUserHouseFormDTO formDTO);
/**
* 人房组织数据
*
* @param formDTO
* @return void
* @author zhy
* @date 2022/5/30 13:31
*/
void statAgency(FactUserHouseFormDTO formDTO);
}

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java

@ -81,9 +81,11 @@ public class DimGridServiceImpl extends BaseServiceImpl<DimGridDao, DimGridEntit
private QueryWrapper<DimGridEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
String customerId = (String)params.get("customerId");
QueryWrapper<DimGridEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
wrapper.eq(StringUtils.isNotBlank(customerId), "CUSTOMER_ID", customerId);
return wrapper;
}

121
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactAgencyUserHouseDailyServiceImpl.java

@ -0,0 +1,121 @@
package com.epmet.service.stats.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dao.stats.FactAgencyUserHouseDailyDao;
import com.epmet.dto.stats.FactAgencyUserHouseDailyDTO;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.entity.stats.FactAgencyUserHouseDailyEntity;
import com.epmet.service.stats.FactAgencyUserHouseDailyService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@Service
public class FactAgencyUserHouseDailyServiceImpl extends BaseServiceImpl<FactAgencyUserHouseDailyDao, FactAgencyUserHouseDailyEntity> implements FactAgencyUserHouseDailyService {
@Autowired
private LoginUserUtil loginUserUtil;
@Override
public PageData<FactUserHouseResultDTO> page(Map<String, Object> params) {
params.put("customerId", loginUserUtil.getLoginUserCustomerId());
IPage<FactUserHouseResultDTO> page = getPage(params);
List<FactUserHouseResultDTO> list = baseDao.listPage(params);
return new PageData<>(list, page.getTotal());
}
@Override
public FactUserHouseResultDTO getTotal(Map<String, Object> params) {
params.put("customerId", loginUserUtil.getLoginUserCustomerId());
List<FactUserHouseResultDTO> list = baseDao.getTotal(params);
// 只有当日数据直接展示,否则需要统计时间段内两天差值进行Incr和Modify数据计算
if (list.size() == NumConstant.ZERO) {
return null;
} else if (list.size() == NumConstant.ONE) {
return list.get(0);
} else {
FactUserHouseResultDTO first = list.get(0);
FactUserHouseResultDTO last = list.get(list.size() - 1);
FactUserHouseResultDTO dto = last;
dto.setHouseIncr(last.getHouseIncr() - first.getHouseIncr());
dto.setHouseModify(last.getHouseModify() - first.getHouseModify());
dto.setUserIncr(last.getUserIncr() - first.getUserIncr());
dto.setUserModify(last.getUserModify() - first.getUserModify());
return dto;
}
}
@Override
public List<FactAgencyUserHouseDailyDTO> list(Map<String, Object> params) {
List<FactAgencyUserHouseDailyEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, FactAgencyUserHouseDailyDTO.class);
}
@Override
public List<FactUserHouseResultDTO> listExport(Map<String, Object> params) {
return baseDao.listPage(params);
}
private QueryWrapper<FactAgencyUserHouseDailyEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
QueryWrapper<FactAgencyUserHouseDailyEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public FactAgencyUserHouseDailyDTO get(String id) {
FactAgencyUserHouseDailyEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, FactAgencyUserHouseDailyDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(FactAgencyUserHouseDailyDTO dto) {
FactAgencyUserHouseDailyEntity entity = ConvertUtils.sourceToTarget(dto, FactAgencyUserHouseDailyEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(FactAgencyUserHouseDailyDTO dto) {
FactAgencyUserHouseDailyEntity entity = ConvertUtils.sourceToTarget(dto, FactAgencyUserHouseDailyEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Override
public void deleteByDateId(FactUserHouseFormDTO formDTO) {
baseDao.deleteByDateId(formDTO);
}
}

130
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGridUserHouseDailyServiceImpl.java

@ -0,0 +1,130 @@
package com.epmet.service.stats.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dao.stats.FactGridUserHouseDailyDao;
import com.epmet.dto.stats.FactGridUserHouseDailyDTO;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.entity.stats.FactGridUserHouseDailyEntity;
import com.epmet.service.stats.FactGridUserHouseDailyService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 网格的人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@Service
public class FactGridUserHouseDailyServiceImpl extends BaseServiceImpl<FactGridUserHouseDailyDao, FactGridUserHouseDailyEntity> implements FactGridUserHouseDailyService {
@Autowired
private LoginUserUtil loginUserUtil;
@Override
public PageData<FactUserHouseResultDTO> page(Map<String, Object> params) {
params.put("customerId", loginUserUtil.getLoginUserCustomerId());
IPage<FactUserHouseResultDTO> page = getPage(params);
List<FactUserHouseResultDTO> list = baseDao.listPage(params);
return new PageData<>(list, page.getTotal());
}
@Override
public FactUserHouseResultDTO getTotal(Map<String, Object> params) {
params.put("customerId", loginUserUtil.getLoginUserCustomerId());
List<FactUserHouseResultDTO> list = baseDao.getTotal(params);
// 只有当日数据直接展示,否则需要统计时间段内两天差值进行Incr和Modify数据计算
if (list.size() == NumConstant.ZERO) {
return null;
} else if (list.size() == NumConstant.ONE) {
return list.get(0);
} else {
FactUserHouseResultDTO first = list.get(0);
FactUserHouseResultDTO last = list.get(list.size() - 1);
FactUserHouseResultDTO dto = last;
dto.setHouseIncr(last.getHouseIncr() - first.getHouseIncr());
dto.setHouseModify(last.getHouseModify() - first.getHouseModify());
dto.setUserIncr(last.getUserIncr() - first.getUserIncr());
dto.setUserModify(last.getUserModify() - first.getUserModify());
return dto;
}
}
@Override
public List<FactGridUserHouseDailyDTO> list(Map<String, Object> params) {
List<FactGridUserHouseDailyEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, FactGridUserHouseDailyDTO.class);
}
@Override
public List<FactUserHouseResultDTO> listExport(Map<String, Object> params) {
return baseDao.listPage(params);
}
private QueryWrapper<FactGridUserHouseDailyEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
String dateId = (String) params.get("dateId");
String customerId = (String) params.get("customerId");
QueryWrapper<FactGridUserHouseDailyEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
wrapper.eq(StringUtils.isNotBlank(dateId), "DATE_ID", dateId);
wrapper.eq(StringUtils.isNotBlank(customerId), "CUSTOMER_ID", customerId);
return wrapper;
}
@Override
public FactGridUserHouseDailyDTO get(String id) {
FactGridUserHouseDailyEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, FactGridUserHouseDailyDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(FactGridUserHouseDailyDTO dto) {
FactGridUserHouseDailyEntity entity = ConvertUtils.sourceToTarget(dto, FactGridUserHouseDailyEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(FactGridUserHouseDailyDTO dto) {
FactGridUserHouseDailyEntity entity = ConvertUtils.sourceToTarget(dto, FactGridUserHouseDailyEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Override
public void deleteByDateId(FactUserHouseFormDTO formDTO) {
baseDao.deleteByDateId(formDTO);
}
@Override
public List<FactUserHouseResultDTO> statAgency(FactUserHouseFormDTO formDTO) {
return baseDao.statAgency(formDTO);
}
}

219
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactUserHouseServiceImpl.java

@ -0,0 +1,219 @@
package com.epmet.service.stats.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.enums.OrgLevelEnum;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.dto.stats.FactGridUserHouseDailyDTO;
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.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.user.IcResiUserService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
/**
* 人房信息统计数按天统计
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-05-27
*/
@Service
public class FactUserHouseServiceImpl implements FactUserHouseService {
@Autowired
private FactAgencyUserHouseDailyService factAgencyUserHouseDailyService;
@Autowired
private FactGridUserHouseDailyService factGridUserHouseDailyService;
@Autowired
private HouseService houseService;
@Autowired
private IcResiUserService icResiUserService;
@Autowired
private DimGridService dimGridService;
@Override
public PageData<FactUserHouseResultDTO> page(Map<String, Object> params) {
PageData<FactUserHouseResultDTO> page = null;
if (params.containsKey("startTime") && params.containsKey("endTime")) {
if (StringUtils.isNotBlank(params.get("startTime").toString()) && StringUtils.isNotBlank(params.get("endTime").toString())) {
params.put("dateId", StringUtils.EMPTY);
} else {
params.put("dateId", DateUtils.getBeforeNDay(NumConstant.ONE));
}
} else {
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())) {
page = factGridUserHouseDailyService.page(params);
} else {
page = factAgencyUserHouseDailyService.page(params);
}
}
return page;
}
@Override
public FactUserHouseResultDTO total(Map<String, Object> params) {
FactUserHouseResultDTO dto = null;
// 不查询时间段默认查询当天
if (params.containsKey("startTime") && params.containsKey("endTime")) {
if (StringUtils.isNotBlank(params.get("startTime").toString()) && StringUtils.isNotBlank(params.get("endTime").toString())) {
params.put("dateId", StringUtils.EMPTY);
} else {
params.put("dateId", DateUtils.getBeforeNDay(NumConstant.ONE));
}
} else {
params.put("dateId", DateUtils.getBeforeNDay(NumConstant.ONE));
}
// 网格纬度查询网格统计表,其余纬度查询组织统计表
if (params.containsKey("level")) {
if (OrgLevelEnum.GRID.getCode().equals(params.get("level").toString())) {
dto = factGridUserHouseDailyService.getTotal(params);
} else {
dto = factAgencyUserHouseDailyService.getTotal(params);
}
}
return dto;
}
@Override
public List<FactUserHouseResultDTO> list(Map<String, Object> params) {
List<FactUserHouseResultDTO> list = new ArrayList<>();
if (params.containsKey("level")) {
if (OrgLevelEnum.GRID.getCode().equals(params.get("level").toString()) || OrgLevelEnum.COMMUNITY.getCode().equals(params.get("level").toString())) {
list = factGridUserHouseDailyService.listExport(params);
} else {
list = factAgencyUserHouseDailyService.listExport(params);
}
}
FactUserHouseResultDTO dto = total(params);
dto.setAgencyName("合计");
list.add(dto);
return list;
}
@Override
public void statGrid(FactUserHouseFormDTO formDTO) {
if (StringUtils.isBlank(formDTO.getDateId())) {
formDTO.setDateId(DateUtils.getBeforeNDay(NumConstant.ONE));
}
String dateId = formDTO.getDateId();
String customerId = formDTO.getCustomerId();
// 先删除历史
factGridUserHouseDailyService.deleteByDateId(formDTO);
// 保证小区是全部网格后,其余数据进行循环匹配
List<FactUserHouseResultDTO> neiList = houseService.neighborhoodStat(formDTO);
List<FactUserHouseResultDTO> houseList = houseService.houseStat(formDTO);
List<FactUserHouseResultDTO> userList = icResiUserService.userStat(formDTO);
List<FactUserHouseResultDTO> addList = new ArrayList<>();
neiList.forEach(item -> {
String gridId = item.getGridId();
FactUserHouseResultDTO dto = new FactUserHouseResultDTO();
dto.setCustomerId(formDTO.getCustomerId());
dto.setDateId(dateId);
dto.setGridId(gridId);
dto.setPid(item.getPid());
dto.setPids(item.getPids());
dto.setNeighbourhoodsCount(item.getNeighbourhoodsCount());
Optional<FactUserHouseResultDTO> houseOptional = houseList.stream().filter(house -> gridId.equals(house.getGridId()) && 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<FactUserHouseResultDTO> userOptional = userList.stream().filter(user -> gridId.equals(user.getGridId()) && 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);
});
List<FactGridUserHouseDailyEntity> entityList = ConvertUtils.sourceToTarget(addList, FactGridUserHouseDailyEntity.class);
factGridUserHouseDailyService.insertBatch(entityList);
}
@Override
public void statAgency(FactUserHouseFormDTO formDTO) {
if (StringUtils.isBlank(formDTO.getDateId())) {
formDTO.setDateId(DateUtils.getBeforeNDay(NumConstant.ONE));
}
Map<String, Object> params = new HashMap<>();
params.put("dateId", formDTO.getDateId());
params.put("customerId", formDTO.getCustomerId());
List<FactGridUserHouseDailyDTO> list = factGridUserHouseDailyService.list(params);
if (list.isEmpty()) {
return;
}
// 先删除历史
factAgencyUserHouseDailyService.deleteByDateId(formDTO);
// 使用机构表左关联,对不同纬度的机构进行分组统计
formDTO.setLevel("community");
List<FactUserHouseResultDTO> commList = factGridUserHouseDailyService.statAgency(formDTO);
if (!commList.isEmpty()) {
commList.forEach(item -> item.setDateId(formDTO.getDateId()));
factAgencyUserHouseDailyService.insertBatch(ConvertUtils.sourceToTarget(commList, FactAgencyUserHouseDailyEntity.class));
}
formDTO.setLevel("street");
List<FactUserHouseResultDTO> streetList = factGridUserHouseDailyService.statAgency(formDTO);
if (!streetList.isEmpty()) {
streetList.forEach(item -> item.setDateId(formDTO.getDateId()));
factAgencyUserHouseDailyService.insertBatch(ConvertUtils.sourceToTarget(streetList, FactAgencyUserHouseDailyEntity.class));
}
formDTO.setLevel("district");
List<FactUserHouseResultDTO> districtList = factGridUserHouseDailyService.statAgency(formDTO);
if (!districtList.isEmpty()) {
districtList.forEach(item -> item.setDateId(formDTO.getDateId()));
factAgencyUserHouseDailyService.insertBatch(ConvertUtils.sourceToTarget(districtList, FactAgencyUserHouseDailyEntity.class));
}
formDTO.setLevel("city");
List<FactUserHouseResultDTO> cityList = factGridUserHouseDailyService.statAgency(formDTO);
if (!cityList.isEmpty()) {
cityList.forEach(item -> item.setDateId(formDTO.getDateId()));
factAgencyUserHouseDailyService.insertBatch(ConvertUtils.sourceToTarget(cityList, FactAgencyUserHouseDailyEntity.class));
}
formDTO.setLevel("province");
List<FactUserHouseResultDTO> provinceList = factGridUserHouseDailyService.statAgency(formDTO);
if (!provinceList.isEmpty()) {
provinceList.forEach(item -> item.setDateId(formDTO.getDateId()));
factAgencyUserHouseDailyService.insertBatch(ConvertUtils.sourceToTarget(provinceList, FactAgencyUserHouseDailyEntity.class));
}
}
}

45
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/IcResiUserService.java

@ -0,0 +1,45 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service.user;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.entity.user.IcResiUserEntity;
import java.util.List;
/**
* 用户基础信息
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-26
*/
public interface IcResiUserService extends BaseService<IcResiUserEntity> {
/**
* 居民统计
*
* @param formDTO
* @return java.util.List<com.epmet.dto.stats.result.FactUserHouseResultDTO>
* @author zhy
* @date 2022/5/30 13:33
*/
List<FactUserHouseResultDTO> userStat(FactUserHouseFormDTO formDTO);
}

50
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/IcResiUserServiceImpl.java

@ -0,0 +1,50 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service.user.impl;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.constant.DataSourceConstant;
import com.epmet.dao.user.IcResiUserDao;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.entity.user.IcResiUserEntity;
import com.epmet.service.user.IcResiUserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 用户基础信息
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-26
*/
@Slf4j
@DataSource(DataSourceConstant.EPMET_USER)
@Service
public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResiUserEntity> implements IcResiUserService, ResultDataResolver {
@Override
public List<FactUserHouseResultDTO> userStat(FactUserHouseFormDTO formDTO) {
return baseDao.userStat(formDTO);
}
}

85
epmet-module/data-statistical/data-statistical-server/src/main/resources/db/migration/V0.0.32__fact_grid_user_house_daily.sql

@ -0,0 +1,85 @@
/*
Navicat Premium Data Transfer
Source Server : epmet_cloud_dev_statistical
Source Server Type : MySQL
Source Server Version : 50726
Source Host : 192.168.1.140:3306
Source Schema : epmet_data_statistical
Target Server Type : MySQL
Target Server Version : 50726
File Encoding : 65001
Date: 31/05/2022 13:29:46
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for fact_grid_user_house_daily
-- ----------------------------
DROP TABLE IF EXISTS `fact_grid_user_house_daily`;
CREATE TABLE `fact_grid_user_house_daily` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键,customer_id+grid_id+date_id只有一条记录',
`CUSTOMER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户id',
`DATE_ID` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '数据更新至:yyyyMMdd; ',
`GRID_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网格id',
`PID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网格所属的组织id',
`PIDS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网格所有上级id',
`NEIGHBOURHOODS_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '小区总数',
`HOUSE_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '房屋总数',
`HOUSE_SELF_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '自住房屋总数',
`HOUSE_LEASE_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '出租房屋总数',
`HOUSE_IDLE_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '闲置房屋总数',
`USER_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '居民总数',
`USER_RESI_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '常住居民总数',
`USER_FLOAT_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '流动居民总数',
`HOUSE_INCR` int(11) NOT NULL DEFAULT 0 COMMENT '当日新增房屋数',
`HOUSE_MODIFY` int(11) NOT NULL DEFAULT 0 COMMENT '当日修改房屋数',
`USER_INCR` int(11) NOT NULL DEFAULT 0 COMMENT '当日新增居民数',
`USER_MODIFY` int(11) NOT NULL DEFAULT 0 COMMENT '当日修改居民数',
`DEL_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '删除标识 0未删除、1已删除',
`REVISION` int(11) NOT NULL DEFAULT 0 COMMENT '乐观锁',
`CREATED_BY` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间:第一次提交审核的时间,注意和历史表的第一条记录时间一致',
`UPDATED_BY` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '网格的人房信息统计数,按天统计' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for fact_agency_user_house_daily
-- ----------------------------
DROP TABLE IF EXISTS `fact_agency_user_house_daily`;
CREATE TABLE `fact_agency_user_house_daily` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键,customer_id+AGENCY_ID+date_id只有一条记录',
`CUSTOMER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户id',
`DATE_ID` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '数据更新至:yyyyMMdd; ',
`AGENCY_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '组织id',
`LEVEL` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'agency_id所属的机关级别(社区级:community,\r\n乡(镇、街道)级:street,\r\n区县级: district,\r\n市级: city\r\n省级:province)',
`PID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '组织i所属的组织id',
`PIDS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '组织i所有上级id',
`NEIGHBOURHOODS_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '小区总数',
`HOUSE_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '房屋总数',
`HOUSE_SELF_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '自住房屋总数',
`HOUSE_LEASE_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '出租房屋总数',
`HOUSE_IDLE_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '闲置房屋总数',
`USER_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '居民总数',
`USER_RESI_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '常住居民总数',
`USER_FLOAT_COUNT` int(11) NOT NULL DEFAULT 0 COMMENT '流动居民总数',
`HOUSE_INCR` int(11) NOT NULL DEFAULT 0 COMMENT '当日新增房屋数',
`HOUSE_MODIFY` int(11) NOT NULL DEFAULT 0 COMMENT '当日修改房屋数',
`USER_INCR` int(11) NOT NULL DEFAULT 0 COMMENT '当日新增居民数',
`USER_MODIFY` int(11) NOT NULL DEFAULT 0 COMMENT '当日修改居民数',
`DEL_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '删除标识 0未删除、1已删除',
`REVISION` int(11) NOT NULL DEFAULT 0 COMMENT '乐观锁',
`CREATED_BY` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间:第一次提交审核的时间,注意和历史表的第一条记录时间一致',
`UPDATED_BY` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '人房信息统计数,按天统计' ROW_FORMAT = DYNAMIC;
SET FOREIGN_KEY_CHECKS = 1;

63
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/IcHouseDao.xml

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.org.IcHouseDao">
<select id="houseStat" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
g.CUSTOMER_ID,
g.id AS GRID_ID,
g.PID,
g.PIDS,
sum( CASE WHEN t.RENT_FLAG = '0' THEN 1 ELSE 0 END ) AS houseSelfCount,
sum( CASE WHEN t.RENT_FLAG = '1' THEN 1 ELSE 0 END ) AS houseLeaseCount,
sum( CASE WHEN t.RENT_FLAG = '2' THEN 1 ELSE 0 END ) AS houseIdleCount,
sum( CASE WHEN t.id IS NOT NULL THEN 1 ELSE 0 END ) AS houseCount
FROM
customer_grid g
LEFT JOIN (
SELECT
h.id,
h.RENT_FLAG,
n.GRID_ID
FROM
ic_house h
LEFT JOIN ic_neighbor_hood n ON h.NEIGHBOR_HOOD_ID = n.id
WHERE
h.CREATED_TIME &lt; DATE_ADD( DATE_FORMAT(#{dateId},'%Y-%m-%d'), INTERVAL 1 DAY )
AND n.DEL_FLAG = '0'
AND h.DEL_FLAG = '0'
) t ON t.GRID_ID = g.ID
WHERE
g.DEL_FLAG = '0'
<if test='customerId != "" and customerId != null '>
AND g.CUSTOMER_ID = #{customerId}
</if>
GROUP BY
g.CUSTOMER_ID,
g.id
</select>
<select id="neighborhoodStatStat" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
g.CUSTOMER_ID,
g.id AS GRID_ID,
g.PID,
g.PIDS,
count( n.id ) AS neighbourhoodsCount
FROM
customer_grid g
LEFT JOIN ic_neighbor_hood n ON n.GRID_ID = g.id
AND n.CREATED_TIME &lt; DATE_ADD( DATE_FORMAT(#{dateId},'%Y-%m-%d'), INTERVAL 1 DAY )
AND n.DEL_FLAG = '0'
WHERE
g.DEL_FLAG = '0'
<if test='customerId != "" and customerId != null '>
AND g.CUSTOMER_ID = #{customerId}
</if>
GROUP BY
g.CUSTOMER_ID,
g.id;
</select>
</mapper>

138
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactAgencyUserHouseDailyDao.xml

@ -0,0 +1,138 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.stats.FactAgencyUserHouseDailyDao">
<resultMap type="com.epmet.entity.stats.FactAgencyUserHouseDailyEntity" id="factAgencyUserHouseDailyMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="dateId" column="DATE_ID"/>
<result property="agencyId" column="AGENCY_ID"/>
<result property="level" column="LEVEL"/>
<result property="pid" column="PID"/>
<result property="pids" column="PIDS"/>
<result property="neighbourhoodsCount" column="NEIGHBOURHOODS_COUNT"/>
<result property="houseCount" column="HOUSE_COUNT"/>
<result property="houseSelfCount" column="HOUSE_SELF_COUNT"/>
<result property="houseLeaseCount" column="HOUSE_LEASE_COUNT"/>
<result property="houseIdleCount" column="HOUSE_IDLE_COUNT"/>
<result property="userCount" column="USER_COUNT"/>
<result property="userResiCount" column="USER_RESI_COUNT"/>
<result property="userFloatCount" column="USER_FLOAT_COUNT"/>
<result property="houseIncr" column="HOUSE_INCR"/>
<result property="houseModify" column="HOUSE_MODIFY"/>
<result property="userIncr" column="USER_INCR"/>
<result property="userModify" column="USER_MODIFY"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<select id="listPage" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
d.AGENCY_NAME AS AGENCY_NAME,
max( NEIGHBOURHOODS_COUNT ) AS NEIGHBOURHOODS_COUNT,
max( HOUSE_COUNT ) AS HOUSE_COUNT,
max( HOUSE_SELF_COUNT ) AS HOUSE_SELF_COUNT,
max( HOUSE_LEASE_COUNT ) AS HOUSE_LEASE_COUNT,
max( HOUSE_IDLE_COUNT ) AS HOUSE_IDLE_COUNT,
max( USER_COUNT ) AS USER_COUNT,
max( USER_RESI_COUNT ) AS USER_RESI_COUNT,
max( USER_FLOAT_COUNT ) AS USER_FLOAT_COUNT,
max( HOUSE_INCR ) AS HOUSE_INCR,
max( HOUSE_MODIFY ) AS HOUSE_MODIFY,
max( USER_INCR ) AS USER_INCR,
max( USER_MODIFY ) AS USER_MODIFY
FROM
fact_agency_user_house_daily a
LEFT JOIN dim_agency d ON d.id = a.AGENCY_ID
WHERE
d.DEL_FLAG = '0'
<if test="customerId != null and customerId != ''">
AND a.CUSTOMER_ID = #{customerId}
AND d.CUSTOMER_ID = #{customerId}
</if>
<if test="dateId != null and dateId != ''">
AND a.DATE_ID = #{dateId}
</if>
<if test="level == 'street'">
AND a.LEVEL = 'community'
AND a.PID = #{agencyId}
</if>
<if test="level == 'district'">
AND a.LEVEL = 'street'
AND a.PID = #{agencyId}
</if>
<if test="level == 'city'">
AND a.LEVEL = 'district'
AND a.PID = #{agencyId}
</if>
<if test="level == 'province'">
AND a.LEVEL = 'city'
AND a.PID = #{agencyId}
</if>
<if test="startTime != null and startTime != ''">
AND DATE_FORMAT( a.DATE_ID, '%Y-%m-%d' ) >= DATE_FORMAT( #{startTime}, '%Y-%m-%d' )
</if>
<if test="endTime != null and endTime != ''">
AND DATE_FORMAT( a.DATE_ID, '%Y-%m-%d' ) &lt;= DATE_FORMAT( #{endTime}, '%Y-%m-%d' )
</if>
GROUP BY
a.AGENCY_ID
</select>
<select id="getTotal" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
d.AGENCY_NAME AS AGENCY_NAME,
sum( NEIGHBOURHOODS_COUNT ) AS NEIGHBOURHOODS_COUNT,
sum( HOUSE_COUNT ) AS HOUSE_COUNT,
sum( HOUSE_SELF_COUNT ) AS HOUSE_SELF_COUNT,
sum( HOUSE_LEASE_COUNT ) AS HOUSE_LEASE_COUNT,
sum( HOUSE_IDLE_COUNT ) AS HOUSE_IDLE_COUNT,
sum( USER_COUNT ) AS USER_COUNT,
sum( USER_RESI_COUNT ) AS USER_RESI_COUNT,
sum( USER_FLOAT_COUNT ) AS USER_FLOAT_COUNT,
sum( HOUSE_INCR ) AS HOUSE_INCR,
sum( HOUSE_MODIFY ) AS HOUSE_MODIFY,
sum( USER_INCR ) AS USER_INCR,
sum( USER_MODIFY ) AS USER_MODIFY
FROM
fact_agency_user_house_daily a
LEFT JOIN dim_agency d ON d.id = a.AGENCY_ID
WHERE
d.DEL_FLAG = '0'
<if test="customerId != null and customerId != ''">
AND a.CUSTOMER_ID = #{customerId}
AND d.CUSTOMER_ID = #{customerId}
</if>
<if test="agencyId != null and agencyId != ''">
AND a.AGENCY_ID = #{agencyId}
</if>
<if test="dateId != null and dateId != ''">
AND a.DATE_ID = #{dateId}
</if>
<if test="startTime != null and startTime != ''">
AND DATE_FORMAT( a.DATE_ID, '%Y-%m-%d' ) >= DATE_FORMAT( #{startTime}, '%Y-%m-%d' )
</if>
<if test="endTime != null and endTime != ''">
AND DATE_FORMAT( a.DATE_ID, '%Y-%m-%d' ) &lt;= DATE_FORMAT( #{endTime}, '%Y-%m-%d' )
</if>
GROUP BY
a.DATE_ID
ORDER BY
a.DATE_ID ASC
</select>
<delete id="deleteByDateId">
DELETE
FROM
fact_agency_user_house_daily
WHERE
DATE_ID = #{dateId}
AND CUSTOMER_ID = #{customerId}
</delete>
</mapper>

237
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactGridUserHouseDailyDao.xml

@ -0,0 +1,237 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.stats.FactGridUserHouseDailyDao">
<resultMap type="com.epmet.entity.stats.FactGridUserHouseDailyEntity" id="factGridUserHouseDailyMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="dateId" column="DATE_ID"/>
<result property="gridId" column="GRID_ID"/>
<result property="pid" column="PID"/>
<result property="pids" column="PIDS"/>
<result property="neighbourhoodsCount" column="NEIGHBOURHOODS_COUNT"/>
<result property="houseCount" column="HOUSE_COUNT"/>
<result property="houseSelfCount" column="HOUSE_SELF_COUNT"/>
<result property="houseLeaseCount" column="HOUSE_LEASE_COUNT"/>
<result property="houseIdleCount" column="HOUSE_IDLE_COUNT"/>
<result property="userCount" column="USER_COUNT"/>
<result property="userResiCount" column="USER_RESI_COUNT"/>
<result property="userFloatCount" column="USER_FLOAT_COUNT"/>
<result property="houseIncr" column="HOUSE_INCR"/>
<result property="houseModify" column="HOUSE_MODIFY"/>
<result property="userIncr" column="USER_INCR"/>
<result property="userModify" column="USER_MODIFY"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<select id="listPage" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
g.GRID_NAME AS AGENCY_NAME,
max( NEIGHBOURHOODS_COUNT ) AS NEIGHBOURHOODS_COUNT,
max( HOUSE_COUNT ) AS HOUSE_COUNT,
max( HOUSE_SELF_COUNT ) AS HOUSE_SELF_COUNT,
max( HOUSE_LEASE_COUNT ) AS HOUSE_LEASE_COUNT,
max( HOUSE_IDLE_COUNT ) AS HOUSE_IDLE_COUNT,
max( USER_COUNT ) AS USER_COUNT,
max( USER_RESI_COUNT ) AS USER_RESI_COUNT,
max( USER_FLOAT_COUNT ) AS USER_FLOAT_COUNT,
max( HOUSE_INCR ) AS HOUSE_INCR,
max( HOUSE_MODIFY ) AS HOUSE_MODIFY,
max( USER_INCR ) AS USER_INCR,
max( USER_MODIFY ) AS USER_MODIFY
FROM
fact_grid_user_house_daily d
LEFT JOIN dim_grid g ON g.id = d.GRID_ID
WHERE
g.DEL_FLAG = '0'
<if test="customerId != null and customerId != ''">
AND g.CUSTOMER_ID = #{customerId}
AND d.CUSTOMER_ID = #{customerId}
</if>
<if test="level == 'grid'">
AND d.GRID_ID = #{agencyId}
</if>
<if test="level == 'community'">
AND d.PID = #{agencyId}
</if>
<if test="dateId != null and dateId != ''">
AND d.DATE_ID = #{dateId}
</if>
<if test="startTime != null and startTime != ''">
AND DATE_FORMAT( d.DATE_ID, '%Y-%m-%d' ) >= DATE_FORMAT( #{startTime}, '%Y-%m-%d' )
</if>
<if test="endTime != null and endTime != ''">
AND DATE_FORMAT( d.DATE_ID, '%Y-%m-%d' ) &lt;= DATE_FORMAT( #{endTime}, '%Y-%m-%d' )
</if>
GROUP BY
GRID_ID
</select>
<select id="getTotal" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
g.GRID_NAME AS AGENCY_NAME,
sum( NEIGHBOURHOODS_COUNT ) AS NEIGHBOURHOODS_COUNT,
sum( HOUSE_COUNT ) AS HOUSE_COUNT,
sum( HOUSE_SELF_COUNT ) AS HOUSE_SELF_COUNT,
sum( HOUSE_LEASE_COUNT ) AS HOUSE_LEASE_COUNT,
sum( HOUSE_IDLE_COUNT ) AS HOUSE_IDLE_COUNT,
sum( USER_COUNT ) AS USER_COUNT,
sum( USER_RESI_COUNT ) AS USER_RESI_COUNT,
sum( USER_FLOAT_COUNT ) AS USER_FLOAT_COUNT,
sum( HOUSE_INCR ) AS HOUSE_INCR,
sum( HOUSE_MODIFY ) AS HOUSE_MODIFY,
sum( USER_INCR ) AS USER_INCR,
sum( USER_MODIFY ) AS USER_MODIFY
FROM
fact_grid_user_house_daily d
LEFT JOIN dim_grid g ON g.id = d.GRID_ID
LEFT JOIN dim_agency a ON a.id = d.PID
WHERE
g.DEL_FLAG = '0'
<if test="customerId != null and customerId != ''">
AND g.CUSTOMER_ID = #{customerId}
AND d.CUSTOMER_ID = #{customerId}
</if>
<if test="agencyId != null and agencyId != ''">
AND d.GRID_ID = #{agencyId}
</if>
<if test="dateId != null and dateId != ''">
AND d.DATE_ID = #{dateId}
</if>
<if test="startTime != null and startTime != ''">
AND DATE_FORMAT( d.DATE_ID, '%Y-%m-%d' ) >= DATE_FORMAT( #{startTime}, '%Y-%m-%d' )
</if>
<if test="endTime != null and endTime != ''">
AND DATE_FORMAT( d.DATE_ID, '%Y-%m-%d' ) &lt;= DATE_FORMAT( #{endTime}, '%Y-%m-%d' )
</if>
GROUP BY
d.DATE_ID
ORDER BY
d.DATE_ID ASC
</select>
<select id="statAgency" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
t.*,
ag.id AS AGENCY_ID,
ag.CUSTOMER_ID,
ag.`LEVEL`,
ag.PID,
ag.PIDS
FROM
dim_agency ag
LEFT JOIN (
SELECT
<if test="level == 'community'">
c.id AS AGENCY,
</if>
<if test="level == 'street'">
s.id AS AGENCY,
</if>
<if test="level == 'district'">
di.id AS AGENCY,
</if>
<if test="level == 'city'">
ci.id AS AGENCY,
</if>
<if test="level == 'province'">
p.id AS AGENCY,
</if>
sum( NEIGHBOURHOODS_COUNT ) AS NEIGHBOURHOODS_COUNT,
sum( HOUSE_COUNT ) AS HOUSE_COUNT,
sum( HOUSE_SELF_COUNT ) AS HOUSE_SELF_COUNT,
sum( HOUSE_LEASE_COUNT ) AS HOUSE_LEASE_COUNT,
sum( HOUSE_IDLE_COUNT ) AS HOUSE_IDLE_COUNT,
sum( USER_COUNT ) AS USER_COUNT,
sum( USER_RESI_COUNT ) AS USER_RESI_COUNT,
sum( USER_FLOAT_COUNT ) AS USER_FLOAT_COUNT,
sum( HOUSE_INCR ) AS HOUSE_INCR,
sum( HOUSE_MODIFY ) AS HOUSE_MODIFY,
sum( USER_INCR ) AS USER_INCR,
sum( USER_MODIFY ) AS USER_MODIFY
FROM
fact_grid_user_house_daily d
INNER JOIN dim_grid g ON g.id = d.GRID_ID
INNER JOIN dim_agency c ON c.id = g.AGENCY_ID
<if test="level == 'community'">
WHERE
d.DATE_ID = #{dateId}
AND d.CUSTOMER_ID = #{customerId}
GROUP BY
c.id
</if>
<if test="level == 'street'">
INNER JOIN dim_agency s ON s.id = c.pid
WHERE
d.DATE_ID = #{dateId}
AND d.CUSTOMER_ID = #{customerId}
GROUP BY
s.id
</if>
<if test="level == 'district'">
INNER JOIN dim_agency s ON s.id = c.pid
INNER JOIN dim_agency di ON di.id = s.pid
WHERE
d.DATE_ID = #{dateId}
AND d.CUSTOMER_ID = #{customerId}
GROUP BY
di.id
</if>
<if test="level == 'city'">
INNER JOIN dim_agency s ON s.id = c.pid
INNER JOIN dim_agency di ON di.id = s.pid
INNER JOIN dim_agency ci ON ci.id = di.pid
INNER JOIN dim_agency p ON p.id = ci.pid
WHERE
d.DATE_ID = #{dateId}
AND d.CUSTOMER_ID = #{customerId}
GROUP BY
ci.id
</if>
<if test="level == 'province'">
INNER JOIN dim_agency s ON s.id = c.pid
INNER JOIN dim_agency di ON di.id = s.pid
INNER JOIN dim_agency ci ON ci.id = di.pid
INNER JOIN dim_agency p ON p.id = ci.pid
WHERE
d.DATE_ID = #{dateId}
AND d.CUSTOMER_ID = #{customerId}
GROUP BY
p.id
</if>
) t ON t.AGENCY = ag.id
WHERE
ag.CUSTOMER_ID = #{customerId}
AND ag.AGENCY_DIM_TYPE = 'all'
<if test="level == 'community'">
AND ag.`LEVEL` = 'community'
</if>
<if test="level == 'street'">
AND ag.`LEVEL` = 'street'
</if>
<if test="level == 'district'">
AND ag.`LEVEL` = 'district'
</if>
<if test="level == 'city'">
AND ag.`LEVEL` = 'city'
</if>
<if test="level == 'province'">
AND ag.`LEVEL` = 'province'
</if>
</select>
<delete id="deleteByDateId">
DELETE
FROM
fact_grid_user_house_daily
WHERE
DATE_ID = #{dateId}
AND CUSTOMER_ID = #{customerId}
</delete>
</mapper>

23
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/IcResiUserDao.xml

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.user.IcResiUserDao">
<select id="userStat" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
CUSTOMER_ID,
GRID_ID,
sum( CASE WHEN IS_FLOATING = '0' THEN 1 ELSE 0 END ) AS userResiCount,
sum( CASE WHEN IS_FLOATING = '1' THEN 1 ELSE 0 END ) AS userFloatCount,
sum( CASE WHEN id IS NOT NULL THEN 1 ELSE 0 END ) AS userCount
FROM
ic_resi_user
WHERE
del_flag = '0'
AND CREATED_TIME &lt;= DATE_ADD( DATE_FORMAT(#{dateId},'%Y-%m-%d'), INTERVAL 1 DAY )
GROUP BY
CUSTOMER_ID,
AGENCY_ID
</select>
</mapper>

27
epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/StatsUserHouseService.java

@ -0,0 +1,27 @@
package com.epmet.service;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
public interface StatsUserHouseService {
/**
* 人房信息统计
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @author zhy
* @date 2022/5/30 10:25
*/
Result execUserHouseGridStatistical(FactUserHouseFormDTO formDTO);
/**
* 人房信息统计
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @author zhy
* @date 2022/5/30 10:25
*/
Result execUserHouseAgencyStatistical(FactUserHouseFormDTO formDTO);
}

30
epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/StatsUserHouseServiceImpl.java

@ -0,0 +1,30 @@
package com.epmet.service.impl;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.feign.DataStatisticalOpenFeignClient;
import com.epmet.service.StatsUserHouseService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class StatsUserHouseServiceImpl implements StatsUserHouseService {
private Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private DataStatisticalOpenFeignClient dataStatisticalOpenFeignClient;
@Override
public Result execUserHouseGridStatistical(FactUserHouseFormDTO formDTO) {
return dataStatisticalOpenFeignClient.userHouseStatGrid(formDTO);
}
@Override
public Result execUserHouseAgencyStatistical(FactUserHouseFormDTO formDTO) {
return dataStatisticalOpenFeignClient.userHouseStatAgency(formDTO);
}
}

48
epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StatsUserHouseTask.java

@ -0,0 +1,48 @@
package com.epmet.task;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.service.StatsUserHouseService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 人房
*
* @author zhy
* @date 2022/5/30 10:23
*/
@Component("statsUserHouseTask")
public class StatsUserHouseTask implements ITask {
private Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private StatsUserHouseService statsUserHouseService;
@Override
public void run(String params) {
logger.info("StatsUserHouseTask定时任务正在执行,参数为:{}", params);
FactUserHouseFormDTO formDTO = new FactUserHouseFormDTO();
if (StringUtils.isNotBlank(params)) {
formDTO = JSON.parseObject(params, FactUserHouseFormDTO.class);
}
Result result = statsUserHouseService.execUserHouseGridStatistical(formDTO);
if (result.success()) {
logger.info("StatsUserHouseTask-grid定时任务执行成功");
} else {
logger.error("StatsUserHouseTask-grid定时任务执行失败:" + result.getMsg());
}
result = statsUserHouseService.execUserHouseAgencyStatistical(formDTO);
if (result.success()) {
logger.info("StatsUserHouseTask-agency定时任务执行成功");
} else {
logger.error("StatsUserHouseTask-agency定时任务执行失败:" + result.getMsg());
}
}
}
Loading…
Cancel
Save