Browse Source

统计网格信息

feature/teamB_zz_wgh
zhangyuan 3 years ago
parent
commit
0347a88abc
  1. 5
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/form/FactUserHouseFormDTO.java
  2. 7
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java
  3. 11
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java
  4. 15
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactUserHouseController.java
  5. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactGridUserHouseDailyDao.java
  6. 3
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGridUserHouseDailyService.java
  7. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactUserHouseService.java
  8. 10
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGridUserHouseDailyServiceImpl.java
  9. 53
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactUserHouseServiceImpl.java
  10. 99
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactGridUserHouseDailyDao.xml
  11. 18
      epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/StatsUserHouseService.java
  12. 26
      epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/StatsUserHouseServiceImpl.java
  13. 43
      epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/StatsUserHouseTask.java

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

@ -27,4 +27,9 @@ public class FactUserHouseFormDTO implements Serializable {
*/
private String dateId;
/**
* level
*/
private String level;
}

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

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

@ -3,12 +3,9 @@ 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.*;
@ -43,9 +40,15 @@ public class FactUserHouseController {
ExcelUtils.exportExcelToTarget(response, null, list, FactUserHouseExcel.class);
}
@PostMapping("stat")
public Result stat(@RequestBody FactUserHouseFormDTO formDTO) {
factUserHouseService.stat(formDTO);
@PostMapping("userHouseStatGrid")
public Result userHouseStatGrid(@RequestBody FactUserHouseFormDTO formDTO) {
factUserHouseService.statGrid(formDTO);
return new Result();
}
@PostMapping("userHouseStatAgency")
public Result userHouseStatAgency(@RequestBody FactUserHouseFormDTO formDTO) {
factUserHouseService.statAgency(formDTO);
return new Result();
}

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

@ -1,6 +1,7 @@
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;
@ -19,4 +20,5 @@ public interface FactGridUserHouseDailyDao extends BaseDao<FactGridUserHouseDail
List<FactUserHouseResultDTO> listPage(Map<String, Object> params);
List<FactUserHouseResultDTO> statAgency(FactUserHouseFormDTO formDTO);
}

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

@ -3,6 +3,7 @@ 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;
@ -76,4 +77,6 @@ public interface FactGridUserHouseDailyService extends BaseService<FactGridUserH
* @date 2022-05-27
*/
void delete(String[] ids);
List<FactUserHouseResultDTO> statAgency(FactUserHouseFormDTO formDTO);
}

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

@ -36,5 +36,7 @@ public interface FactUserHouseService {
*/
List<FactUserHouseResultDTO> list(Map<String, Object> params);
void stat(FactUserHouseFormDTO formDTO);
void statGrid(FactUserHouseFormDTO formDTO);
void statAgency(FactUserHouseFormDTO formDTO);
}

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

@ -9,6 +9,7 @@ import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
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;
@ -50,9 +51,13 @@ public class FactGridUserHouseDailyServiceImpl extends BaseServiceImpl<FactGridU
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;
}
@ -84,4 +89,9 @@ public class FactGridUserHouseDailyServiceImpl extends BaseServiceImpl<FactGridU
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Override
public List<FactUserHouseResultDTO> statAgency(FactUserHouseFormDTO formDTO){
return baseDao.statAgency(formDTO);
}
}

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

@ -5,8 +5,10 @@ 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;
@ -14,13 +16,11 @@ 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.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.*;
/**
* 人房信息统计数按天统计
@ -73,8 +73,11 @@ public class FactUserHouseServiceImpl implements FactUserHouseService {
}
@Override
public void stat(FactUserHouseFormDTO formDTO) {
String dateId = DateUtils.getBeforeNDay(NumConstant.ONE);
public void statGrid(FactUserHouseFormDTO formDTO) {
if (StringUtils.isBlank(formDTO.getDateId())) {
formDTO.setDateId(DateUtils.getBeforeNDay(NumConstant.ONE));
}
String dateId = formDTO.getDateId();
String customerId = formDTO.getCustomerId();
List<FactUserHouseResultDTO> neiList = houseService.neighborhoodStat(formDTO);
@ -121,4 +124,42 @@ public class FactUserHouseServiceImpl implements FactUserHouseService {
List<FactGridUserHouseDailyEntity> entityList = ConvertUtils.sourceToTarget(addList, FactGridUserHouseDailyEntity.class);
factGridUserHouseDailyService.insertBatch(entityList);
}
@Override
public void statAgency(FactUserHouseFormDTO formDTO) {
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;
}
formDTO.setLevel("community");
List<FactUserHouseResultDTO> commList = factGridUserHouseDailyService.statAgency(formDTO);
if (!commList.isEmpty()) {
factAgencyUserHouseDailyService.insertBatch(ConvertUtils.sourceToTarget(commList, FactAgencyUserHouseDailyEntity.class));
}
formDTO.setLevel("street");
List<FactUserHouseResultDTO> streetList = factGridUserHouseDailyService.statAgency(formDTO);
if (!streetList.isEmpty()) {
factAgencyUserHouseDailyService.insertBatch(ConvertUtils.sourceToTarget(streetList, FactAgencyUserHouseDailyEntity.class));
}
formDTO.setLevel("district");
List<FactUserHouseResultDTO> districtList = factGridUserHouseDailyService.statAgency(formDTO);
if (!districtList.isEmpty()) {
factAgencyUserHouseDailyService.insertBatch(ConvertUtils.sourceToTarget(districtList, FactAgencyUserHouseDailyEntity.class));
}
formDTO.setLevel("city");
List<FactUserHouseResultDTO> cityList = factGridUserHouseDailyService.statAgency(formDTO);
if (!cityList.isEmpty()) {
factAgencyUserHouseDailyService.insertBatch(ConvertUtils.sourceToTarget(cityList, FactAgencyUserHouseDailyEntity.class));
}
formDTO.setLevel("province");
List<FactUserHouseResultDTO> provinceList = factGridUserHouseDailyService.statAgency(formDTO);
if (!provinceList.isEmpty()) {
factAgencyUserHouseDailyService.insertBatch(ConvertUtils.sourceToTarget(provinceList, FactAgencyUserHouseDailyEntity.class));
}
}
}

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

@ -40,7 +40,7 @@
LEFT JOIN dim_grid d ON d.id = g.GRID_ID
<if test="customerId != null and customerId != ''">
AND g.CUSTOMER_ID = #{customerId}
AND g.CUSTOMER_ID = #{customerId}
AND d.CUSTOMER_ID = #{customerId}
</if>
<if test="agencyId != null and agencyId != ''">
AND g.GRID_ID = #{agencyId}
@ -54,4 +54,101 @@
ORDER BY
g.CREATED_TIME DESC
</select>
<select id="statAgency" resultType="com.epmet.dto.stats.result.FactUserHouseResultDTO">
SELECT
t.*,
ag.CUSTOMER_ID,
ag.`LEVEL`,
ag.PID,
ag.PIDS
FROM
dim_agency ag
LEFT JOIN (
SELECT
<if test="level == 'community'">
c.id AS AGENCY_ID,
</if>
<if test="level == 'street'">
s.id AS AGENCY_ID,
</if>
<if test="level == 'district'">
di.id AS AGENCY_ID,
</if>
<if test="level == 'city'">
ci.id AS AGENCY_ID,
</if>
<if test="level == 'province'">
p.id AS AGENCY_ID,
</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
WHERE
DATE_ID = #{dateId}
AND CUSTOMER_ID = #{customerId}
<if test="level == 'community'">
GROUP BY
c.id
</if>
<if test="level == 'street'">
INNER JOIN dim_agency s ON s.id = c.pid
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
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
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
GROUP BY
p.id
</if>
) t ON t.AGENCY_ID = ag.id
WHERE
ag.CUSTOMER_ID = #{customerId}
<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>
</mapper>

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

@ -0,0 +1,18 @@
package com.epmet.service;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.StatsFormDTO;
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 execUserHouseStatistical(FactUserHouseFormDTO formDTO);
}

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

@ -0,0 +1,26 @@
package com.epmet.service.impl;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.StatsFormDTO;
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 execUserHouseStatistical(FactUserHouseFormDTO formDTO) {
return dataStatisticalOpenFeignClient.userHouseStatGrid(formDTO);
}
}

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

@ -0,0 +1,43 @@
package com.epmet.task;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.StatsFormDTO;
import com.epmet.dto.stats.form.FactUserHouseFormDTO;
import com.epmet.service.StatsUserHouseService;
import com.epmet.service.StatsUserService;
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.execUserHouseStatistical(formDTO);
if (result.success()) {
logger.info("StatsUserHouseTask定时任务执行成功");
} else {
logger.error("StatsUserHouseTask定时任务执行失败:" + result.getMsg());
}
}
}
Loading…
Cancel
Save