Browse Source

grid和agency数据统计中

feature/teamB_zz_wgh
zhangyuan 3 years ago
parent
commit
1d18a2482c
  1. 30
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/form/FactUserHouseFormDTO.java
  2. 5
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/result/FactUserHouseResultDTO.java
  3. 15
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactUserHouseController.java
  4. 12
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/IcHouseDao.java
  5. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/IcResiUserDao.java
  6. 14
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/HouseService.java
  7. 76
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/HouseServiceImpl.java
  8. 3
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactUserHouseService.java
  9. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java
  10. 66
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactUserHouseServiceImpl.java
  11. 12
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/IcResiUserService.java
  12. 54
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/IcResiUserServiceImpl.java
  13. 79
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/IcHouseDao.xml
  14. 25
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/IcResiUserDao.xml

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

@ -0,0 +1,30 @@
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;
}

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

@ -32,6 +32,11 @@ public class FactUserHouseResultDTO implements Serializable {
*/
private String dateId;
/**
* 网格id
*/
private String gridId;
/**
* 组织id
*/

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

@ -3,16 +3,15 @@ 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.extract.form.ExtractOriginFormDTO;
import com.epmet.dto.stats.FactAgencyUserHouseDailyDTO;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.excel.FactUserHouseExcel;
import com.epmet.service.stats.FactAgencyUserHouseDailyService;
import com.epmet.service.stats.FactUserHouseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
@ -33,7 +32,7 @@ public class FactUserHouseController {
private FactUserHouseService factUserHouseService;
@RequestMapping("page")
public Result<PageData<FactUserHouseResultDTO>> page(@RequestParam Map<String, Object> params){
public Result<PageData<FactUserHouseResultDTO>> page(@RequestParam Map<String, Object> params) {
PageData<FactUserHouseResultDTO> page = factUserHouseService.page(params);
return new Result<PageData<FactUserHouseResultDTO>>().ok(page);
}
@ -44,4 +43,10 @@ public class FactUserHouseController {
ExcelUtils.exportExcelToTarget(response, null, list, FactUserHouseExcel.class);
}
@PostMapping("stat")
public Result stat(@RequestBody FactUserHouseFormDTO formDTO) {
factUserHouseService.stat(formDTO);
return new Result();
}
}

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

@ -1,10 +1,10 @@
package com.epmet.dao.org;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.result.HouseChartResultDTO;
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 org.apache.ibatis.annotations.Param;
import java.util.List;
@ -17,10 +17,8 @@ import java.util.List;
@Mapper
public interface IcHouseDao extends BaseDao<IcHouseEntity> {
/**
* @Author sun
* @Description 人房房屋总数饼图
**/
List<HouseChartResultDTO> houseChart(@Param("orgId") String orgId, @Param("orgType") String orgType);
List<FactUserHouseResultDTO> houseStat(FactUserHouseFormDTO formDTO);
List<FactUserHouseResultDTO> neighborhoodStatStat(FactUserHouseFormDTO formDTO);
}

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

@ -18,7 +18,8 @@
package com.epmet.dao.user;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.result.UserChartResultDTO;
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;
@ -34,6 +35,6 @@ import java.util.List;
@Mapper
public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
List<UserChartResultDTO> userChart(@Param("orgId") String orgId, @Param("orgType") String orgType);
List<FactUserHouseResultDTO> userStat(FactUserHouseFormDTO formDTO);
}

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

@ -17,8 +17,10 @@
package com.epmet.service.org;
import com.epmet.dto.form.HouseChartFormDTO;
import com.epmet.dto.result.HouseChartResultDTO;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import java.util.List;
/**
* 小区表
@ -28,10 +30,8 @@ import com.epmet.dto.result.HouseChartResultDTO;
*/
public interface HouseService {
/**
* @Author sun
* @Description 人房房屋总数饼图
**/
HouseChartResultDTO houseChart(HouseChartFormDTO formDTO);
List<FactUserHouseResultDTO> houseStat(FactUserHouseFormDTO formDTO);
List<FactUserHouseResultDTO> neighborhoodStat(FactUserHouseFormDTO formDTO);
}

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

@ -1,80 +1,32 @@
package com.epmet.service.org.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.EpmetException;
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.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.constant.DataSourceConstant;
import com.epmet.dao.org.IcHouseDao;
import com.epmet.dto.form.HouseChartFormDTO;
import com.epmet.dto.result.HouseChartResultDTO;
import com.epmet.dto.result.HouseIcResiUserResultDTO;
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 com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.NumberFormat;
import java.util.List;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
@Slf4j
@DataSource(DataSourceConstant.GOV_ORG)
@Service
public class HouseServiceImpl implements HouseService, ResultDataResolver {
public class HouseServiceImpl extends BaseServiceImpl<IcHouseDao, IcHouseEntity> implements HouseService, ResultDataResolver {
/**
* 导出房屋内家庭成员时本地缓存
*/
private static final Cache<String,List<HouseIcResiUserResultDTO.HouseMemberResultDTO>> memberCacheMap = CacheBuilder.newBuilder().expireAfterAccess(1, TimeUnit.MINUTES).expireAfterWrite(30,TimeUnit.MINUTES).build();
@Resource
private IcHouseDao icHouseDao;
@Override
public List<FactUserHouseResultDTO> houseStat(FactUserHouseFormDTO formDTO) {
return baseDao.houseStat(formDTO);
}
/**
* @Author sun
* @Description 人房房屋总数饼图
**/
@Override
public HouseChartResultDTO houseChart(HouseChartFormDTO formDTO) {
HouseChartResultDTO resultDTO = new HouseChartResultDTO();
//计算百分比使用,保留小数点后两位
NumberFormat numberFormat = NumberFormat.getInstance();
numberFormat.setMaximumFractionDigits(NumConstant.TWO);
//1.判断入参是否有值,没有值则赋值当前工作人员缓存中所属组织信息
if (StringUtils.isEmpty(formDTO.getOrgId())) {
//2.获取工作人员缓存信息
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId());
if (null == staffInfo) {
throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", formDTO.getUserId()));
}
formDTO.setOrgId(staffInfo.getAgencyId());
formDTO.setOrgType("agency");
}
//2.根据入参值查询对应的房屋统计数据
List<HouseChartResultDTO> list = icHouseDao.houseChart(formDTO.getOrgId(), formDTO.getOrgType());
//3.汇总数据
AtomicInteger houseTotal = new AtomicInteger();
list.forEach(l -> {
houseTotal.addAndGet(l.getNum());
if (l.getRentFlag() == 0) {
resultDTO.setZzHouseTotal(l.getNum());
} else if (l.getRentFlag() == 1) {
resultDTO.setCzHouseTotal(l.getNum());
} else {
resultDTO.setXzHouseTotal(l.getNum());
}
});
resultDTO.setHouseTotal(houseTotal.get());
resultDTO.setZzHouseRatio(Double.valueOf((resultDTO.getHouseTotal() == 0 || resultDTO.getZzHouseTotal() > resultDTO.getHouseTotal()) ? "0" : numberFormat.format(((float) resultDTO.getZzHouseTotal() / (float) resultDTO.getHouseTotal()) * 100)));
resultDTO.setCzHouseRatio(Double.valueOf((resultDTO.getHouseTotal() == 0 || resultDTO.getCzHouseTotal() > resultDTO.getHouseTotal()) ? "0" : numberFormat.format(((float) resultDTO.getCzHouseTotal() / (float) resultDTO.getHouseTotal()) * 100)));
resultDTO.setXzHouseRatio(Double.valueOf((resultDTO.getHouseTotal() == 0 || resultDTO.getXzHouseTotal() > resultDTO.getHouseTotal()) ? "0" : numberFormat.format(((float) resultDTO.getXzHouseTotal() / (float) resultDTO.getHouseTotal()) * 100)));
resultDTO.setOrgId(formDTO.getOrgId());
resultDTO.setOrgType(formDTO.getOrgType());
return resultDTO;
public List<FactUserHouseResultDTO> neighborhoodStat(FactUserHouseFormDTO formDTO) {
return baseDao.neighborhoodStatStat(formDTO);
}
}

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

@ -2,6 +2,7 @@ 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;
@ -34,4 +35,6 @@ public interface FactUserHouseService {
* @date 2022-05-27
*/
List<FactUserHouseResultDTO> list(Map<String, Object> params);
void stat(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;
}

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

@ -1,18 +1,26 @@
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.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
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.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
* 人房信息统计数按天统计
@ -29,6 +37,15 @@ public class FactUserHouseServiceImpl implements FactUserHouseService {
@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;
@ -55,4 +72,53 @@ public class FactUserHouseServiceImpl implements FactUserHouseService {
return list;
}
@Override
public void stat(FactUserHouseFormDTO formDTO) {
String dateId = DateUtils.getBeforeNDay(NumConstant.ONE);
String customerId = formDTO.getCustomerId();
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 agencyId = item.getAgencyId();
FactUserHouseResultDTO dto = new FactUserHouseResultDTO();
dto.setCustomerId(formDTO.getCustomerId());
dto.setDateId(dateId);
dto.setPid(item.getPid());
dto.setPids(item.getPids());
dto.setNeighbourhoodsCount(item.getNeighbourhoodsCount());
Optional<FactUserHouseResultDTO> houseOptional = houseList.stream().filter(house -> agencyId.equals(house.getAgencyId()) && 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 -> agencyId.equals(user.getAgencyId()) && 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);
}
}

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

@ -18,10 +18,12 @@
package com.epmet.service.user;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.dto.form.UserChartFormDTO;
import com.epmet.dto.result.UserChartResultDTO;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.dto.stats.result.FactUserHouseResultDTO;
import com.epmet.entity.user.IcResiUserEntity;
import java.util.List;
/**
* 用户基础信息
*
@ -30,10 +32,6 @@ import com.epmet.entity.user.IcResiUserEntity;
*/
public interface IcResiUserService extends BaseService<IcResiUserEntity> {
/**
* @Author sun
* @Description 人房居民总数饼图
**/
UserChartResultDTO userChart(UserChartFormDTO formDTO);
List<FactUserHouseResultDTO> userStat(FactUserHouseFormDTO formDTO);
}

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

@ -17,24 +17,19 @@
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.constant.NumConstant;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.constant.DataSourceConstant;
import com.epmet.dao.user.IcResiUserDao;
import com.epmet.dto.form.UserChartFormDTO;
import com.epmet.dto.result.UserChartResultDTO;
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.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.text.NumberFormat;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
/**
* 用户基础信息
@ -43,48 +38,13 @@ import java.util.concurrent.atomic.AtomicInteger;
* @since v1.0.0 2021-10-26
*/
@Slf4j
@DataSource(DataSourceConstant.EPMET_USER)
@Service
public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResiUserEntity> implements IcResiUserService, ResultDataResolver {
/**
* @Author sun
* @Description 人房居民总数饼图
**/
@Override
public UserChartResultDTO userChart(UserChartFormDTO formDTO) {
UserChartResultDTO resultDTO = new UserChartResultDTO();
//计算百分比使用,保留小数点后两位
NumberFormat numberFormat = NumberFormat.getInstance();
numberFormat.setMaximumFractionDigits(NumConstant.TWO);
//1.判断入参是否有值,没有值则赋值当前工作人员缓存中所属组织信息
if (StringUtils.isEmpty(formDTO.getOrgId())) {
//2.获取工作人员缓存信息
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getUserId());
if (null == staffInfo) {
throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", formDTO.getUserId()));
}
formDTO.setOrgId(staffInfo.getAgencyId());
formDTO.setOrgType("agency");
}
//2.根据入参值查询对应的房屋统计数据
List<UserChartResultDTO> list = baseDao.userChart(formDTO.getOrgId(), formDTO.getOrgType());
//3.汇总数据
AtomicInteger userTotal = new AtomicInteger();
list.forEach(l -> {
userTotal.addAndGet(l.getNum());
if ("0".equals(l.getIsFloating())) {
resultDTO.setCzUserTotal(l.getNum());
} else {
resultDTO.setLdUserTotal(l.getNum());
}
});
resultDTO.setUserTotal(userTotal.get());
resultDTO.setCzUserRatio(Double.valueOf((resultDTO.getUserTotal() == 0 || resultDTO.getCzUserTotal() > resultDTO.getUserTotal()) ? "0" : numberFormat.format(((float) resultDTO.getCzUserTotal() / (float) resultDTO.getUserTotal()) * 100)));
resultDTO.setLdUserRatio(Double.valueOf((resultDTO.getUserTotal() == 0 || resultDTO.getLdUserTotal() > resultDTO.getUserTotal()) ? "0" : numberFormat.format(((float) resultDTO.getLdUserTotal() / (float) resultDTO.getUserTotal()) * 100)));
resultDTO.setOrgId(formDTO.getOrgId());
resultDTO.setOrgType(formDTO.getOrgType());
return resultDTO;
public List<FactUserHouseResultDTO> userStat(FactUserHouseFormDTO formDTO) {
return baseDao.userStat(formDTO);
}
}

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

@ -3,37 +3,58 @@
<mapper namespace="com.epmet.dao.org.IcHouseDao">
<select id="houseChart" resultType="com.epmet.dto.result.HouseChartResultDTO">
<select id="houseStat" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
COUNT(id) num,
rent_flag rentFlag
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
ic_house
WHERE del_flag = '0'
<choose>
<when test='orgType == "agency"'>
AND neighbor_hood_id IN (
select id from ic_neighbor_hood
where del_flag = '0'
and (agency_id = #{orgId} OR agency_pids LIKE CONCAT('%', #{orgId}, '%'))
)
</when>
<when test='orgType == "grid"'>
AND neighbor_hood_id IN (
select id from ic_neighbor_hood
where del_flag = '0'
and grid_id = #{orgId}
)
</when>
<otherwise>
AND neighbor_hood_id IN (
select id from ic_neighbor_hood
where del_flag = '0'
and id = #{orgId}
)
</otherwise>
</choose>
GROUP BY rent_flag
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_SUB( CURDATE(), INTERVAL 1 DAY )
) t ON t.GRID_ID = g.ID
<where>
<if test='customerId != "" and customerId != null '>
AND g.CUSTOMER_ID = #{customerId}
</if>
</where>
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_SUB( CURDATE(), INTERVAL 1 DAY )
<where>
<if test='customerId != "" and customerId != null '>
AND g.CUSTOMER_ID = #{customerId}
</if>
</where>
GROUP BY
g.CUSTOMER_ID,
g.id;
</select>
</mapper>

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

@ -3,26 +3,21 @@
<mapper namespace="com.epmet.dao.user.IcResiUserDao">
<select id="userChart" resultType="com.epmet.dto.result.UserChartResultDTO">
<select id="userStat" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
COUNT(id) num,
is_floating isFloating
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'
<choose>
<when test='orgType == "agency"'>
AND (agency_id = #{orgId} OR pids LIKE CONCAT('%', #{orgId}, '%'))
</when>
<when test='orgType == "grid"'>
AND grid_id = #{orgId}
</when>
<otherwise>
AND village_id = #{orgId}
</otherwise>
</choose>
GROUP BY is_floating
AND CREATED_TIME &lt; DATE_SUB( CURDATE(), INTERVAL 1 DAY )
GROUP BY
CUSTOMER_ID,
AGENCY_ID
</select>
</mapper>

Loading…
Cancel
Save