Browse Source

小区统计

master
wanggongfeng 3 years ago
parent
commit
254be9a1d4
  1. 9
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/FactNeighborhoodUserHouseDailyDTO.java
  2. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactUserHouseController.java
  3. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/IcHouseDao.java
  4. 15
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactNeighborhoodUserHouseDailyDao.java
  5. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/IcResiUserDao.java
  6. 11
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/stats/FactNeighborhoodUserHouseDailyEntity.java
  7. 20
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/HouseService.java
  8. 10
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/HouseServiceImpl.java
  9. 39
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactNeighborhoodUserHouseDailyService.java
  10. 12
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactUserHouseService.java
  11. 24
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGridUserHouseDailyServiceImpl.java
  12. 66
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactNeighborhoodUserHouseDailyServiceImpl.java
  13. 89
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactUserHouseServiceImpl.java
  14. 10
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/IcResiUserService.java
  15. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/IcResiUserServiceImpl.java
  16. 61
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/IcHouseDao.xml
  17. 94
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactNeighborhoodUserHouseDailyDao.xml
  18. 20
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/IcResiUserDao.xml

9
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;
}
}

4
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();
}

4
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<IcHouseEntity> {
List<FactUserHouseResultDTO> houseStat(FactUserHouseFormDTO formDTO);
List<FactUserHouseResultDTO> houseStatNew(FactUserHouseFormDTO formDTO);
List<FactUserHouseResultDTO> neighborhoodStatStat(FactUserHouseFormDTO formDTO);
List<FactUserHouseResultDTO> neighborhoodStatStatNew(FactUserHouseFormDTO formDTO);
}

15
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<FactNeighborhoodUserHouseDailyEntity> {
}
void deleteByDateId(FactUserHouseFormDTO formDTO);
List<FactUserHouseResultDTO> listPage(Map<String, Object> params);
List<FactUserHouseResultDTO> getTotal(Map<String, Object> params);
}

2
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<IcResiUserEntity> {
List<FactUserHouseResultDTO> userStat(FactUserHouseFormDTO formDTO);
List<FactUserHouseResultDTO> userStatNew(FactUserHouseFormDTO formDTO);
}

11
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;
/**
* 自住房屋总数

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

@ -40,6 +40,16 @@ public interface HouseService {
*/
List<FactUserHouseResultDTO> houseStat(FactUserHouseFormDTO formDTO);
/**
* 房屋统计(小区)
*
* @param formDTO
* @return java.util.List<com.epmet.dto.stats.result.FactUserHouseResultDTO>
* @author wgf
* @date 2022/5/30 13:33
*/
List<FactUserHouseResultDTO> houseStatNew(FactUserHouseFormDTO formDTO);
/**
* 小区统计
*
@ -50,4 +60,14 @@ public interface HouseService {
*/
List<FactUserHouseResultDTO> neighborhoodStat(FactUserHouseFormDTO formDTO);
/**
* 小区统计(小区)
*
* @param formDTO
* @return java.util.List<com.epmet.dto.stats.result.FactUserHouseResultDTO>
* @author wgf
* @date 2022/5/30 13:33
*/
List<FactUserHouseResultDTO> neighborhoodStatNew(FactUserHouseFormDTO formDTO);
}

10
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<IcHouseDao, IcHouseEntity>
return baseDao.houseStat(formDTO);
}
@Override
public List<FactUserHouseResultDTO> houseStatNew(FactUserHouseFormDTO formDTO) {
return baseDao.houseStatNew(formDTO);
}
@Override
public List<FactUserHouseResultDTO> neighborhoodStat(FactUserHouseFormDTO formDTO) {
return baseDao.neighborhoodStatStat(formDTO);
}
@Override
public List<FactUserHouseResultDTO> neighborhoodStatNew(FactUserHouseFormDTO formDTO) {
return baseDao.neighborhoodStatStatNew(formDTO);
}
}

39
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<FactN
* @author generator
* @date 2022-06-01
*/
PageData<FactNeighborhoodUserHouseDailyDTO> page(Map<String, Object> params);
PageData<FactUserHouseResultDTO> page(Map<String, Object> params);
/**
* 默认查询
@ -75,4 +77,37 @@ public interface FactNeighborhoodUserHouseDailyService extends BaseService<FactN
* @date 2022-06-01
*/
void delete(String[] ids);
}
/**
* 物理删除历史数据
*
* @param formDTO
* @return void
* @author wgf
* @date 2022/5/30 13:32
*/
void deleteByDateId(FactUserHouseFormDTO formDTO);
/**
* 查询导出数据
*
* @param params
* @return java.util.List<FactUserHouseResultDTO>
* @author wgf
* @date 2022-05-27
*/
List<FactUserHouseResultDTO> listExport(Map<String, Object> params);
/**
* 页面合计
*
* @param params
* @return PageData<FactGridUserHouseDailyDTO>
* @author wgf
* @date 2022-05-27
*/
FactUserHouseResultDTO getTotal(Map<String, Object> params);
}

12
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);
}
}

24
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<FactGridU
} 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());
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;
}
}
@ -127,4 +135,4 @@ public class FactGridUserHouseDailyServiceImpl extends BaseServiceImpl<FactGridU
return baseDao.statAgency(formDTO);
}
}
}

66
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactNeighborhoodUserHouseDailyServiceImpl.java

@ -3,11 +3,17 @@ 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.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.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.dao.stats.FactNeighborhoodUserHouseDailyDao;
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.FactGridUserHouseDailyEntity;
import com.epmet.entity.stats.FactNeighborhoodUserHouseDailyEntity;
import com.epmet.service.stats.FactNeighborhoodUserHouseDailyService;
import org.apache.commons.lang3.StringUtils;
@ -15,9 +21,7 @@ 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;
import java.util.*;
/**
* 网格的人房信息统计数按天统计
@ -28,13 +32,15 @@ import java.util.Map;
@Service
public class FactNeighborhoodUserHouseDailyServiceImpl extends BaseServiceImpl<FactNeighborhoodUserHouseDailyDao, FactNeighborhoodUserHouseDailyEntity> implements FactNeighborhoodUserHouseDailyService {
@Autowired
private LoginUserUtil loginUserUtil;
@Override
public PageData<FactNeighborhoodUserHouseDailyDTO> page(Map<String, Object> params) {
IPage<FactNeighborhoodUserHouseDailyEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, FactNeighborhoodUserHouseDailyDTO.class);
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
@ -80,4 +86,44 @@ public class FactNeighborhoodUserHouseDailyServiceImpl extends BaseServiceImpl<F
baseDao.deleteBatchIds(Arrays.asList(ids));
}
}
@Override
public void deleteByDateId(FactUserHouseFormDTO formDTO) {
baseDao.deleteByDateId(formDTO);
}
@Override
public List<FactUserHouseResultDTO> listExport(Map<String, Object> params) {
return baseDao.listPage(params);
}
@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 {
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;
}
}
}

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

@ -10,11 +10,9 @@ 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 org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -37,6 +35,9 @@ public class FactUserHouseServiceImpl implements FactUserHouseService {
@Autowired
private FactGridUserHouseDailyService factGridUserHouseDailyService;
@Autowired
private FactNeighborhoodUserHouseDailyService factNeighborhoodUserHouseDailyService;
@Autowired
private HouseService houseService;
@ -59,7 +60,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("neighborhoodCode".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 +87,9 @@ public class FactUserHouseServiceImpl implements FactUserHouseService {
}
// 网格纬度查询网格统计表,其余纬度查询组织统计表
if (params.containsKey("level")) {
if (OrgLevelEnum.GRID.getCode().equals(params.get("level").toString())) {
if("neighborhoodCode".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 +102,9 @@ public class FactUserHouseServiceImpl implements FactUserHouseService {
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())) {
if("neighborhoodCode".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);
@ -168,6 +176,71 @@ public class FactUserHouseServiceImpl implements FactUserHouseService {
factGridUserHouseDailyService.insertBatch(entityList);
}
/**
* 小区
* @author wgf
* @param formDTO
*/
@Override
public void statNeighborhood(FactUserHouseFormDTO formDTO) {
if (StringUtils.isBlank(formDTO.getDateId())) {
formDTO.setDateId(DateUtils.getBeforeNDay(NumConstant.ONE));
}
String dateId = formDTO.getDateId();
String customerId = formDTO.getCustomerId();
// 先删除历史
factNeighborhoodUserHouseDailyService.deleteByDateId(formDTO);
// 保证小区是全部网格后,其余数据进行循环匹配
List<FactUserHouseResultDTO> neiList = houseService.neighborhoodStatNew(formDTO);
List<FactUserHouseResultDTO> houseList = houseService.houseStatNew(formDTO);
List<FactUserHouseResultDTO> userList = icResiUserService.userStatNew(formDTO);
List<FactUserHouseResultDTO> addList = new ArrayList<>();
neiList.forEach(item -> {
String gridId = item.getGridId();
String neighborHoodsId = item.getNeighbourhoodsId();
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 -> 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<FactUserHouseResultDTO> 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);
});
List<FactNeighborhoodUserHouseDailyEntity> entityList = ConvertUtils.sourceToTarget(addList, FactNeighborhoodUserHouseDailyEntity.class);
factNeighborhoodUserHouseDailyService.insertBatch(entityList);
}
@Override
public void statAgency(FactUserHouseFormDTO formDTO) {
if (StringUtils.isBlank(formDTO.getDateId())) {
@ -218,4 +291,4 @@ public class FactUserHouseServiceImpl implements FactUserHouseService {
}
}
}
}

10
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<IcResiUserEntity> {
*/
List<FactUserHouseResultDTO> userStat(FactUserHouseFormDTO formDTO);
/**
* 居民统计(小区)
*
* @param formDTO
* @return java.util.List<com.epmet.dto.stats.result.FactUserHouseResultDTO>
* @author wgf
* @date 2022/5/30 13:33
*/
List<FactUserHouseResultDTO> userStatNew(FactUserHouseFormDTO formDTO);
}

5
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<IcResiUserDao, IcResi
return baseDao.userStat(formDTO);
}
@Override
public List<FactUserHouseResultDTO> userStatNew(FactUserHouseFormDTO formDTO) {
return baseDao.userStatNew(formDTO);
}
}

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

@ -41,6 +41,44 @@
g.id
</select>
<select id="houseStatNew" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
nd.NEIGHBOURHOODS_ID,
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,
sum( CASE WHEN (t.id IS NOT NULL and DATE_FORMAT(t.CREATED_TIME,'%Y-%m-%d') = DATE_FORMAT(now(),'%Y-%m-%d')) THEN 1 ELSE 0 END ) AS houseIncr,
sum( CASE WHEN (t.id IS NOT NULL and DATE_FORMAT(t.UPDATED_TIME,'%Y-%m-%d') = DATE_FORMAT(now(),'%Y-%m-%d')) THEN 1 ELSE 0 END ) AS houseModify
FROM fact_neighborhood_user_house_daily nd
left join customer_grid g on g.id = nd.GRID_ID and g.DEL_FLAG = '0'
LEFT JOIN (
SELECT
h.id,
h.RENT_FLAG,
n.GRID_ID,
h.CREATED_TIME,
h.UPDATED_TIME
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
nd.DEL_FLAG = '0'
<if test='customerId != "" and customerId != null '>
AND g.CUSTOMER_ID = #{customerId}
</if>
GROUP BY
g.CUSTOMER_ID
</select>
<select id="neighborhoodStatStat" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
g.CUSTOMER_ID,
@ -63,4 +101,27 @@
g.id;
</select>
<select id="neighborhoodStatStatNew" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
n.NEIGHBOURHOODS_ID,
n.NEIGHBOR_HOOD_NAME,
g.CUSTOMER_ID,
g.id AS GRID_ID,
g.PID,
g.PIDS,
1 AS neighbourhoodsCount
FROM
ic_neighbor_hood n
LEFT JOIN customer_grid g 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;
</select>
</mapper>

94
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactNeighborhoodUserHouseDailyDao.xml

@ -31,5 +31,97 @@
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<delete id="deleteByDateId">
DELETE
FROM
fact_neighborhood_user_house_daily
WHERE
DATE_ID = #{dateId}
AND CUSTOMER_ID = #{customerId}
</delete>
</mapper>
<select id="listPage" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
d.NEIGHBOR_HOOD_NAME AS AGENCY_NAME,
d.NEIGHBOURHOODS_ID,
d.NEIGHBOR_HOOD_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_neighborhood_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 d.NEIGHBOURHOODS_ID
</select>
<select id="getTotal" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
d.NEIGHBOR_HOOD_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_neighborhood_user_house_daily d
WHERE d.DEL_FLAG = '0'
<if test="customerId != null and 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>
</mapper>

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

@ -22,4 +22,24 @@
AGENCY_ID
</select>
<select id="userStatNew" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
CUSTOMER_ID,
GRID_ID,
VILLAGE_ID as NEIGHBOURHOODS_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,
sum( CASE WHEN (id IS NOT NULL and DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') = DATE_FORMAT(now(),'%Y-%m-%d')) THEN 1 ELSE 0 END ) AS userIncr,
sum( CASE WHEN (id IS NOT NULL and DATE_FORMAT(UPDATED_TIME,'%Y-%m-%d') = DATE_FORMAT(now(),'%Y-%m-%d')) THEN 1 ELSE 0 END ) AS userModify
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,
VILLAGE_ID
</select>
</mapper>

Loading…
Cancel
Save