Browse Source

网格小组

master
zxc 5 years ago
parent
commit
7968b940bb
  1. 13
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/GroupConstant.java
  2. 44
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/AgencyDTO.java
  3. 25
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/form/AgencyGridTotalCountFormDTO.java
  4. 116
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/form/AgencyMonthlyFormDTO.java
  5. 35
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/AgencyGridGroupPeopleResultDTO.java
  6. 30
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/AgencyGridGroupPeopleTotalResultDTO.java
  7. 27
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/AgencyGridInfoResultDTO.java
  8. 27
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/AgencyGridTotalCountResultDTO.java
  9. 126
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/AgencyGroupDailyResultDTO.java
  10. 29
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/AgencyGroupIncrResultDTO.java
  11. 25
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/AgencyGroupMonthlyResultDTO.java
  12. 31
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/AgencyGroupTotalCountResultDTO.java
  13. 10
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/GroupGridDailyResultDTO.java
  14. 25
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/GroupPeopleCountResultDTO.java
  15. 30
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/SubAgencyIdResultDTO.java
  16. 52
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsGroupController.java
  17. 41
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/group/GroupDataDao.java
  18. 9
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/CustomerGridDao.java
  19. 14
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimAgencyDao.java
  20. 21
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimGridDao.java
  21. 27
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactGroupAgencyDailyDao.java
  22. 11
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactGroupAgencyMonthlyDao.java
  23. 14
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsGroupService.java
  24. 45
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/group/GroupDataService.java
  25. 123
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/group/impl/GroupDataServiceImpl.java
  26. 225
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsGroupServiceImpl.java
  27. 9
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerGridService.java
  28. 12
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerGridServiceImpl.java
  29. 14
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimAgencyService.java
  30. 17
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimGridService.java
  31. 25
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGroupAgencyDailyService.java
  32. 9
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGroupAgencyMonthlyService.java
  33. 20
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimAgencyServiceImpl.java
  34. 23
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java
  35. 41
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupAgencyDailyServiceImpl.java
  36. 15
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupAgencyMonthlyServiceImpl.java
  37. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupGridDailyServiceImpl.java
  38. 90
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/group/GroupDataDao.xml
  39. 16
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml
  40. 25
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimAgencyDao.xml
  41. 41
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimGridDao.xml
  42. 78
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactGroupAgencyDailyDao.xml
  43. 35
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactGroupAgencyMonthlyDao.xml

13
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/GroupConstant.java

@ -16,4 +16,17 @@ public interface GroupConstant {
*/
String Q = "Q";
/**
* 机关级别社区级community
* 街道:street,
* 区县级: district,
* 市级: city
* 省级: province
*/
String COMMUNITY = "community";
String STREET = "street";
String DISTRICT = "district";
String CITY = "city";
String PROVINCE = "province";
}

44
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/AgencyDTO.java

@ -0,0 +1,44 @@
package com.epmet.dto.group;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @CreateTime 2020/6/18 11:06
*/
@Data
public class AgencyDTO implements Serializable {
private static final long serialVersionUID = -1644032762160525169L;
/**
* 组织ID AGENCY_ID
*/
private String id;
/**
* 客户ID
*/
private String customerId;
/**
* 上级组织机构ID根组织为0
*/
private String pid;
/**
* 所有上级组织机构ID(以英文:隔开)
*/
private String pids;
/**
* 机关级别社区级community
* 街道:street,
* 区县级: district,
* 市级: city
* 省级:province
*/
private String level;
}

25
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/form/AgencyGridTotalCountFormDTO.java

@ -0,0 +1,25 @@
package com.epmet.dto.group.form;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @CreateTime 2020/6/18 14:39
*/
@Data
public class AgencyGridTotalCountFormDTO implements Serializable {
private static final long serialVersionUID = -4219157085337388583L;
/**
* 客户ID
*/
private String customerId;
/**
* 机关ID
*/
private String agencyId;
}

116
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/form/AgencyMonthlyFormDTO.java

@ -0,0 +1,116 @@
package com.epmet.dto.group.form;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @Author zxc
* @CreateTime 2020/6/19 21:22
*/
@Data
public class AgencyMonthlyFormDTO implements Serializable {
private static final long serialVersionUID = -5920961528060576749L;
/**
* 唯一标识
*/
private String id;
/**
* 机关ID
*/
private String agencyId;
/**
* 父级机关ID
*/
private String pid;
/**
* 统计月份ID 关联月份dim表
*/
private String monthId;
/**
* 统计季度ID
*/
private String quarterId;
/**
* 统计年份ID
*/
private String yearId;
/**
* 网格数 截至到月末的机关下网格数
*/
private Integer gridTotal = 0;
/**
* 小组数 截止到月末的新增数该月内所有的新增数字之和
*/
private Integer groupTotal = 0;
/**
* 机关下网格组内总人数 不去重
*/
private Integer groupMemberTotal = 0;
/**
* 小组平均人数 月末一天的平均数
*/
private Integer groupMemberAvgCount = 0;
/**
* 小组中位数 月末一天的中位数
*/
private Integer groupMedian = 0;
/**
* 小组增量
*/
private Integer groupIncr = 0;
/**
* 小组成员最大数
*/
private Integer groupMemberMaxCount = 0;
/**
* 成员最多小组ID
*/
private String maxMemberGroupId;
/**
* 小组成员最小数
*/
private Integer groupMemberMinCount = 0;
/**
* 成员最少小组ID
*/
private String minMemberGroupId;
/**
* 删除标识 未删除0,已删除1
*/
private String delFlag = "0";
/**
* 乐观锁
*/
private Integer revision = 0;
/**
* 创建人
*/
private String createdBy = "APP_USER";
/**
* 更新人
*/
private String updatedBy = "APP_USER";
}

35
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/AgencyGridGroupPeopleResultDTO.java

@ -0,0 +1,35 @@
package com.epmet.dto.group.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @CreateTime 2020/6/16 16:31
*/
@Data
public class AgencyGridGroupPeopleResultDTO implements Serializable {
private static final long serialVersionUID = 225708056690809761L;
/**
* 机关ID
*/
private String agencyId;
/**
* 网格ID
*/
private String gridId;
/**
* 小组ID
*/
private String groupId;
/**
* 网格下-每个小组内成员的数量人员状态 不为 removed
*/
private Integer groupCount;
}

30
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/AgencyGridGroupPeopleTotalResultDTO.java

@ -0,0 +1,30 @@
package com.epmet.dto.group.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @CreateTime 2020/6/16 16:31
*/
@Data
public class AgencyGridGroupPeopleTotalResultDTO implements Serializable {
private static final long serialVersionUID = -8693107487048855351L;
/**
* 机关ID
*/
private String agencyId;
/**
* 网格ID
*/
private String gridId;
/**
* 网格下的小组成员总数量
*/
private Integer gridGroupPeopleTotal;
}

27
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/AgencyGridInfoResultDTO.java

@ -0,0 +1,27 @@
package com.epmet.dto.group.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @CreateTime 2020/6/18 14:35
*/
@Data
public class AgencyGridInfoResultDTO implements Serializable {
private static final long serialVersionUID = -1979735889806617714L;
/**
* 机关ID
*/
private String agencyId;
/**
* 网格Id
*/
private String gridId;
}

27
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/AgencyGridTotalCountResultDTO.java

@ -0,0 +1,27 @@
package com.epmet.dto.group.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @CreateTime 2020/6/18 14:35
*/
@Data
public class AgencyGridTotalCountResultDTO implements Serializable {
private static final long serialVersionUID = -3528033317344272299L;
/**
* 机关ID
*/
private String agencyId;
/**
* 机关下的网格数量
*/
private Integer gridTotal;
}

126
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/AgencyGroupDailyResultDTO.java

@ -0,0 +1,126 @@
package com.epmet.dto.group.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @CreateTime 2020/6/18 10:09
*/
@Data
public class AgencyGroupDailyResultDTO implements Serializable {
private static final long serialVersionUID = 7862398525119326819L;
/**
* 唯一标识
*/
private String id;
/**
* 机构ID
*/
private String agencyId;
/**
* 父级机关ID
*/
private String pid;
/**
* 统计日期 关联日期dim表
*/
private String dateId;
/**
* 周ID
*/
private String weekId;
/**
* 月ID
*/
private String monthId;
/**
* 季ID
*/
private String quarterId;
/**
* 年ID
*/
private String yearId;
/**
* 网格总数 截至统计日期
*/
private Integer gridTotal = 0;
/**
* 网格小组数包含所有下级机关的网格小组 截至统计日期
*/
private Integer groupTotalCount = 0;
/**
* 机关下网格小组人数总计 不去重
*/
private Integer groupMemberTotalCount = 0;
/**
* 小组平均人数 截至统计日期
*/
private Integer groupMemberAvgCount = 0;
/**
* 小组中位数 截至统计日期小组人数依次由小到大排开取中位数
*/
private Integer groupMedian = 0;
/**
* 当天小组增量
*/
private Integer groupIncr = 0;
/**
* 小组最大成员数
*/
private Integer groupMemberMaxCount = 0;
/**
* 最多成员小组ID
*/
private String maxMemberGroupId;
/**
* 小组最小成员数
*/
private Integer groupMemberMinCount = 0;
/**
* 最少成员小组ID
*/
private String minMemberGroupId;
/**
* 删除标识 未删除0,已删除1
*/
private String delFlag = "0";
/**
* 乐观锁
*/
private Integer revision = 0;
/**
* 创建人
*/
private String createdBy = "APP_USER";
/**
* 更新人
*/
private String updatedBy = "APP_USER";
}

29
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/AgencyGroupIncrResultDTO.java

@ -0,0 +1,29 @@
package com.epmet.dto.group.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @CreateTime 2020/6/17 16:48
*/
@Data
public class AgencyGroupIncrResultDTO implements Serializable {
private static final long serialVersionUID = 8397311844636364561L;
/**
* 机关ID
*/
private String agencyId;
/**
* 网格ID
*/
private String gridId;
/**
* 小组日增数
*/
private Integer groupIncr = 0;
}

25
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/AgencyGroupMonthlyResultDTO.java

@ -0,0 +1,25 @@
package com.epmet.dto.group.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @CreateTime 2020/6/19 22:12
*/
@Data
public class AgencyGroupMonthlyResultDTO implements Serializable {
private static final long serialVersionUID = 8436524201080875660L;
/**
* 机关ID
*/
private String agencyId;
/**
* 小组月增长数量
*/
private Integer monthGroupIncr;
}

31
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/AgencyGroupTotalCountResultDTO.java

@ -0,0 +1,31 @@
package com.epmet.dto.group.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @CreateTime 2020/6/18 17:35
*/
@Data
public class AgencyGroupTotalCountResultDTO implements Serializable {
private static final long serialVersionUID = 1166957004076377211L;
/**
* 机关ID
*/
private String agencyId;
/**
* 网格ID
*/
private String gridId;
/**
* 每个网格下的小组数
*/
private Integer gridGroupCount;
}

10
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/GroupGridDailyResultDTO.java

@ -66,17 +66,17 @@ public class GroupGridDailyResultDTO implements Serializable {
/**
* 网格下所有组内总人数 不去重
*/
private Integer groupMemberTotal;
private Integer groupMemberTotal = 0;
/**
* 小组平均人数
*/
private Integer groupMemberAvgCount;
private Integer groupMemberAvgCount = 0;
/**
* 小组中位数 截至统计日期小组人数依次由小到大排开取中位数
*/
private Integer groupMedian;
private Integer groupMedian = 0;
/**
* 小组增量
@ -86,7 +86,7 @@ public class GroupGridDailyResultDTO implements Serializable {
/**
* 小组成员最大数
*/
private Integer groupMemberMaxCount;
private Integer groupMemberMaxCount = 0;
/**
* 最多成员小组ID
@ -96,7 +96,7 @@ public class GroupGridDailyResultDTO implements Serializable {
/**
* 小组成员最小数
*/
private Integer groupMemberMinCount = 1;
private Integer groupMemberMinCount = 0;
/**
* 最少成员小组ID

25
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/GroupPeopleCountResultDTO.java

@ -0,0 +1,25 @@
package com.epmet.dto.group.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @CreateTime 2020/6/19 15:43
*/
@Data
public class GroupPeopleCountResultDTO implements Serializable {
private static final long serialVersionUID = 7804052387414894768L;
/**
* 小组ID
*/
private String groupId;
/**
* 网格下-每个小组内成员的数量人员状态 不为 removed
*/
private Integer groupCount;
}

30
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/SubAgencyIdResultDTO.java

@ -0,0 +1,30 @@
package com.epmet.dto.group.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @CreateTime 2020/6/19 10:41
*/
@Data
public class SubAgencyIdResultDTO implements Serializable {
private static final long serialVersionUID = -5375229459340391098L;
/**
* 机关ID
*/
private String agencyId;
/**
* 下级机关ID
*/
private String subAgencyId;
/**
* 网格数量
*/
private Integer gridTotal;
}

52
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsGroupController.java

@ -1,14 +1,15 @@
package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.service.StatsGroupService;
import com.epmet.service.group.GroupDataService;
import com.epmet.service.stats.FactGroupGridDailyService;
import com.epmet.service.stats.DimCustomerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Author zxc
* @CreateTime 2020/6/16 13:21
@ -19,18 +20,59 @@ public class StatsGroupController {
@Autowired
private StatsGroupService statsGroupService;
@Autowired
private DimCustomerService dimCustomerService;
/**
* @Description 统计 小组 有关数据 dim网格-
* 网格数小组数网格下所有组内人数不去重
* 小组平均人数小组人数中位数小组增量
* 小组成员最大数最多成员小组ID
* 小组成员最小数最少成员小组ID
*/
/**
* @Description 统计 网格小组 dim网格-
* @author zxc
*/
@PostMapping("groupgriddaily")
public void groupGridDaily(){
statsGroupService.groupGridDaily();
Integer pageNo = NumConstant.ONE;
Integer pageSize = NumConstant.ONE_HUNDRED;
List<String> customerIds = dimCustomerService.selectCustomerIdPage(pageNo,pageSize);
if (customerIds.size() == NumConstant.ZERO){
return;
}
customerIds.forEach(customerId -> {
statsGroupService.groupGridDaily(customerId);
});
}
/**
* @Description 统计 网格小组 dim机关-
* @param
* @author zxc
*/
@PostMapping("groupagencydaily")
public void groupAgencyDaily(){
Integer pageNo = NumConstant.ONE;
Integer pageSize = NumConstant.ONE_HUNDRED;
List<String> customerIds = dimCustomerService.selectCustomerIdPage(pageNo,pageSize);
if (customerIds.size() == NumConstant.ZERO){
return;
}
customerIds.forEach(customerId -> {
statsGroupService.groupAgencyDaily(customerId);
});
}
/**
* @Description 统计 网格小组 dim机关-
* @param
* @author zxc
*/
@PostMapping("groupagencymonthly")
public void groupAgencyMonthly(){
statsGroupService.groupAgencyMonthly();
}
}

41
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/group/GroupDataDao.java

@ -4,11 +4,9 @@ import com.epmet.dto.group.form.GridGroupPeopleFormDTO;
import com.epmet.dto.group.form.GridGroupPeopleTotalFormDTO;
import com.epmet.dto.group.form.GridGroupTotalFormDTO;
import com.epmet.dto.group.form.GroupIncrFormDTO;
import com.epmet.dto.group.result.GridGroupPeopleResultDTO;
import com.epmet.dto.group.result.GridGroupPeopleTotalResultDTO;
import com.epmet.dto.group.result.GridGroupTotalResultDTO;
import com.epmet.dto.group.result.GroupIncrResultDTO;
import com.epmet.dto.group.result.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -47,4 +45,39 @@ public interface GroupDataDao {
*/
List<GroupIncrResultDTO> selectGroupIncr(GroupIncrFormDTO formDTO);
/**
* @Description 获取机关下网格下的小组数量 待优化
* @param
* @author zxc
*/
List<AgencyGroupTotalCountResultDTO> getAgencyGroupTotalCount(@Param("allGrid") List<String> allGrid);
/**
* @Description 查询机关下网格内的小组人数 待优化
* @param
* @author zxc
*/
List<AgencyGridGroupPeopleTotalResultDTO> selectAgencyGridGroupPeopleTotal(@Param("allGrid") List<String> allGrid);
/**
* @Description 查询机关下每个小组的人数 待优化
* @param
* @author zxc
*/
List<AgencyGridGroupPeopleResultDTO> selectAgencyEveryGroupPeopleCount(@Param("allGrid") List<String> allGrid);
/**
* @Description 查询机关下的小组日增数 待优化
* @param
* @param yesterday
* @author zxc
*/
List<AgencyGroupIncrResultDTO> selectAgencyGroupIncr(@Param("allGrid") List<String> allGrid,@Param("yesterday")String yesterday);
/**
* @Description 查询机关下所有网格小组人数
* @param gridIds
* @author zxc
*/
List<GroupPeopleCountResultDTO> getAgencyGrid(@Param("gridIds")List<String> gridIds);
}

9
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/org/CustomerGridDao.java

@ -18,6 +18,8 @@
package com.epmet.dao.org;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.group.AgencyDTO;
import com.epmet.dto.group.result.AgencyGridTotalCountResultDTO;
import com.epmet.entity.org.CustomerGridEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -41,4 +43,11 @@ public interface CustomerGridDao extends BaseDao<CustomerGridEntity> {
* @return
*/
List<CustomerGridEntity> listGridsByCreateTime(@Param("start") Date start, @Param("end") Date end);
/**
* @Description 查询机关下的网格总数
* @param formDto
* @author zxc
*/
List<AgencyGridTotalCountResultDTO> selectAgencyGridTotalCount(@Param("formDto") List<AgencyDTO> formDto, @Param("dateId")String dateId);
}

14
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimAgencyDao.java

@ -109,4 +109,18 @@ public interface DimAgencyDao extends BaseDao<DimAgencyEntity> {
* @date 2020.06.18 09:26
**/
List<AgencySubDeptTreeDto> selectTopAgencyWithDept();
/**
* @Description 查询所有客户的机关数据
* @author zxc
*/
List<DimAgencyDTO> selectDimAgencyByCustomerId(@Param("customerId")String customerId);
/**
* @Description 根据机关Id获取上级机关ID
* @param agencyId
* @author zxc
*/
String getPidByAgencyId(@Param("agencyId") String agencyId);
}

21
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimGridDao.java

@ -18,7 +18,9 @@
package com.epmet.dao.stats;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.group.result.CustomerGridInfoResultDTO;
import com.epmet.dto.group.AgencyDTO;
import com.epmet.dto.group.result.AgencyGridInfoResultDTO;
import com.epmet.dto.group.result.SubAgencyIdResultDTO;
import com.epmet.entity.stats.DimGridEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -36,13 +38,24 @@ public interface DimGridDao extends BaseDao<DimGridEntity> {
DimGridEntity getLastCreatedGridDimEntity();
List<CustomerGridInfoResultDTO> selectCustomerGrid();
/**
* desc:根据客户Id获取 该客户下的网格数据
* @param customerId
* @return
*/
List<DimGridEntity> getGridListByCustomerId(@Param("customerId") String customerId);
/**
* @Description 查询机关下的网格
* @param formDTO
* @author zxc
*/
List<AgencyGridInfoResultDTO> selectAgencyGridInfo(@Param("formDTO") List<AgencyDTO> formDTO);
/**
* @Description 根据当前机关ID查询下级机关ID
* @param formDTO
* @author zxc
*/
List<SubAgencyIdResultDTO> selectSubAgencyId(@Param("formDTO")List<AgencyDTO> formDTO);
}

27
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactGroupAgencyDailyDao.java

@ -18,8 +18,14 @@
package com.epmet.dao.stats;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.group.form.AgencyMonthlyFormDTO;
import com.epmet.dto.group.result.AgencyGroupDailyResultDTO;
import com.epmet.dto.group.result.AgencyGroupMonthlyResultDTO;
import com.epmet.entity.stats.FactGroupAgencyDailyEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* -机关日统计数据
@ -29,5 +35,26 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface FactGroupAgencyDailyDao extends BaseDao<FactGroupAgencyDailyEntity> {
/**
* @Description 插入网格小组数据 机关-
* @param agencyList
* @author zxc
*/
void insertGroupAgencyDaily(@Param("agencyList") List<AgencyGroupDailyResultDTO> agencyList);
/**
* @Description 获取 网格小组机关-日统计的最后一天数据
* @param
* @author zxc
*/
List<AgencyMonthlyFormDTO> getLastDayAgency();
/**
* @Description 查询 月的小组增量
* @param monthId
* @author zxc
*/
List<AgencyGroupMonthlyResultDTO> getMonthGroupIncr(@Param("monthId")String monthId);
}

11
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactGroupAgencyMonthlyDao.java

@ -18,8 +18,12 @@
package com.epmet.dao.stats;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.group.form.AgencyMonthlyFormDTO;
import com.epmet.entity.stats.FactGroupAgencyMonthlyEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* -机关月统计数据
@ -29,5 +33,12 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface FactGroupAgencyMonthlyDao extends BaseDao<FactGroupAgencyMonthlyEntity> {
/**
* @Description 统计网格小组 机关-
* @param agencyMonth
* @author zxc
*/
void insertAgencyGroupMonthly(@Param("agencyMonth") List<AgencyMonthlyFormDTO> agencyMonth);
}

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

@ -10,6 +10,18 @@ public interface StatsGroupService {
* @Description 统计 小组 有关数据 dim网格-
* @author zxc
*/
void groupGridDaily();
void groupGridDaily(String customerId);
/**
* @Description 统计 小组 有关数据 dim机关-
* @author zxc
*/
void groupAgencyDaily(String customerId);
/**
* @Description 统计 小组 有关数据 dim机关-
* @author zxc
*/
void groupAgencyMonthly();
}

45
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/group/GroupDataService.java

@ -1,7 +1,9 @@
package com.epmet.service.group;
import com.epmet.dto.group.result.CustomerGridInfoResultDTO;
import com.epmet.dto.group.result.GroupGridDailyResultDTO;
import com.epmet.dto.group.result.*;
import com.epmet.entity.stats.DimGridEntity;
import com.epmet.util.DimIdGenerator;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -14,9 +16,44 @@ public interface GroupDataService {
/**
* @Description 统计 小组 有关数据 dim网格-
* @param customerId
* @param gridsInfo
* @author zxc
*/
List<GroupGridDailyResultDTO> groupGridDaily(String customerId, List<CustomerGridInfoResultDTO> gridsInfo);
List<GroupGridDailyResultDTO> groupGridDaily(String customerId, DimIdGenerator.DimIdBean dimIdBean, List<DimGridEntity> gridsInfo);
/**
* @Description 获取同级机关下网格下的小组数量
* @param allGrid
* @author zxc
*/
List<AgencyGroupTotalCountResultDTO> getAgencyGroupTotalCount(List<String> allGrid);
/**
* @Description 查询机关下网格内的小组人数
* @param
* @author zxc
*/
List<AgencyGridGroupPeopleTotalResultDTO> selectAgencyGridGroupPeopleTotal(List<String> allGrid);
/**
* @Description 查询机关下每个小组的人数
* @param
* @author zxc
*/
List<AgencyGridGroupPeopleResultDTO> selectAgencyEveryGroupPeopleCount(List<String> allGrid);
/**
* @Description 查询机关下的小组日增数
* @param
* @param yesterday
* @author zxc
*/
List<AgencyGroupIncrResultDTO> selectAgencyGroupIncr(List<String> allGrid,String yesterday);
/**
* @Description 查询机关下所有网格小组人数
* @param gridIds
* @author zxc
*/
List<GroupPeopleCountResultDTO> getAgencyGrid(@Param("gridIds") List<String> gridIds);
}

123
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/group/impl/GroupDataServiceImpl.java

@ -4,18 +4,18 @@ import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.constant.DataSourceConstant;
import com.epmet.dao.group.GroupDataDao;
import com.epmet.dao.stats.DimDateDao;
import com.epmet.dto.group.form.GridGroupPeopleFormDTO;
import com.epmet.dto.group.form.GridGroupPeopleTotalFormDTO;
import com.epmet.dto.group.form.GridGroupTotalFormDTO;
import com.epmet.dto.group.form.GroupIncrFormDTO;
import com.epmet.dto.group.result.*;
import com.epmet.entity.stats.DimGridEntity;
import com.epmet.service.group.GroupDataService;
import com.epmet.util.DimIdGenerator;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
@ -29,41 +29,47 @@ public class GroupDataServiceImpl implements GroupDataService {
@Autowired
private GroupDataDao groupDataDao;
@Autowired
private DimDateDao dimDateDao;
public DimTimeResultDTO getTimeDim(){
String dateId = LocalDate.now().minusDays(NumConstant.ONE).toString().replace("-", "");
return dimDateDao.selectDimTime(dateId);
}
/**
* @Description 统计 小组 有关数据 dim网格-
* @param customerId
* @param gridsInfo
* @author zxc
*/
@Override
public List<GroupGridDailyResultDTO> groupGridDaily(String customerId, List<CustomerGridInfoResultDTO> gridsInfo) {
DimTimeResultDTO dimTime = this.getTimeDim();
public List<GroupGridDailyResultDTO> groupGridDaily(String customerId, DimIdGenerator.DimIdBean dimTime, List<DimGridEntity> gridsInfo) {
List<GroupGridDailyResultDTO> result = new ArrayList<>();
// 1. 网格下有多少小组,只算 state = ‘approved’
GridGroupTotalFormDTO formDTO = new GridGroupTotalFormDTO();
formDTO.setCustomerId(customerId);
List<GridGroupTotalResultDTO> gridGroupTotalResultDTOS = groupDataDao.selectGridGroupTotal(formDTO);
if (gridsInfo.size() == NumConstant.ZERO){
return new ArrayList<>();
}
gridsInfo.forEach(grid -> {
GroupGridDailyResultDTO dailyResult = new GroupGridDailyResultDTO();
BeanUtils.copyProperties(dimTime,dailyResult);
dailyResult.setAgencyId(grid.getAgencyId());
gridGroupTotalResultDTOS.forEach(groupTotal -> {
if (grid.getGridId().equals(groupTotal.getGridId())){
dailyResult.setGroupTotal(groupTotal.getGridGroupTotal());
dailyResult.setGridId(grid.getGridId());
}
});
dailyResult.setGridId(grid.getId());
result.add(dailyResult);
});
// 1. 网格下有多少小组,只算 state = ‘approved’
GridGroupTotalFormDTO formDTO = new GridGroupTotalFormDTO();
formDTO.setCustomerId(customerId);
List<GridGroupTotalResultDTO> gridGroupTotalResultDTOS = groupDataDao.selectGridGroupTotal(formDTO);
if (gridGroupTotalResultDTOS.size() == NumConstant.ZERO){
result.forEach(grid -> {
grid.setGroupTotal(NumConstant.ZERO);
});
}else {
result.forEach(grid -> {
GroupGridDailyResultDTO dailyResult = new GroupGridDailyResultDTO();
BeanUtils.copyProperties(dimTime, dailyResult);
dailyResult.setAgencyId(grid.getAgencyId());
gridGroupTotalResultDTOS.forEach(groupTotal -> {
if (grid.getGridId().equals(groupTotal.getGridId())) {
dailyResult.setGroupTotal(groupTotal.getGridGroupTotal());
}
});
});
}
// 2. 网格下所有组内人数和(不需要去重) 人员状态 != "removed"
GridGroupPeopleTotalFormDTO peopleTotalFormDTO = new GridGroupPeopleTotalFormDTO();
peopleTotalFormDTO.setCustomerId(customerId);
@ -77,9 +83,9 @@ public class GroupDataServiceImpl implements GroupDataService {
});
// 3. 网格下小组平均人数
result.forEach(grid -> {
grid.setGroupMemberAvgCount(grid.getGroupMemberTotal()/grid.getGroupTotal());
grid.setGroupMemberAvgCount(grid.getGroupTotal() == NumConstant.ZERO ? NumConstant.ZERO : grid.getGroupMemberTotal()/grid.getGroupTotal());
});
// 4. 网格下小组人数中位数
// 4. 网格下小组人数中位数 小组最大(小)成员数、最多(少)成员小组ID
GridGroupPeopleFormDTO everyGroupPeople = new GridGroupPeopleFormDTO();
everyGroupPeople.setCustomerId(customerId);
List<GridGroupPeopleResultDTO> everyGroupPeopleCount = groupDataDao.selectEveryGroupPeopleCount(everyGroupPeople);
@ -105,7 +111,7 @@ public class GroupDataServiceImpl implements GroupDataService {
}
});
});
//TODO 网格下小组增量
// 5. 网格下小组增量
GroupIncrFormDTO groupIncr = new GroupIncrFormDTO();
groupIncr.setCustomerId(customerId);
groupIncr.setYesterday(dimTime.getDateId());
@ -119,4 +125,69 @@ public class GroupDataServiceImpl implements GroupDataService {
});
return result;
}
/**
* @Description 获取同级机关下网格下的小组数量
* @param
* @author zxc
*/
public List<AgencyGroupTotalCountResultDTO> getAgencyGroupTotalCount(List<String> allGrid){
if (allGrid.size() == NumConstant.ZERO){
return new ArrayList<>();
}
return groupDataDao.getAgencyGroupTotalCount(allGrid);
}
/**
* @Description 查询机关下网格内的小组人数
* @param
* @author zxc
*/
@Override
public List<AgencyGridGroupPeopleTotalResultDTO> selectAgencyGridGroupPeopleTotal(List<String> allGrid) {
if (allGrid.size() == NumConstant.ZERO){
return new ArrayList<>();
}
return groupDataDao.selectAgencyGridGroupPeopleTotal(allGrid);
}
/**
* @Description 查询机关下每个小组的人数
* @param
* @author zxc
*/
public List<AgencyGridGroupPeopleResultDTO> selectAgencyEveryGroupPeopleCount(List<String> allGrid){
if (allGrid.size() == NumConstant.ZERO){
return new ArrayList<>();
}
return groupDataDao.selectAgencyEveryGroupPeopleCount(allGrid);
}
/**
* @Description 查询机关下的小组日增数
* @param
* @param yesterday
* @author zxc
*/
public List<AgencyGroupIncrResultDTO> selectAgencyGroupIncr(List<String> allGrid,String yesterday){
if (allGrid.size() == NumConstant.ZERO){
return new ArrayList<>();
}
return groupDataDao.selectAgencyGroupIncr(allGrid, yesterday);
}
/**
* @Description 查询机关下所有网格小组人数
* @param gridIds
* @author zxc
*/
@Override
public List<GroupPeopleCountResultDTO> getAgencyGrid(List<String> gridIds) {
if (gridIds.size() == NumConstant.ZERO){
return new ArrayList<>();
}
return groupDataDao.getAgencyGrid(gridIds);
}
}

225
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsGroupServiceImpl.java

@ -1,19 +1,26 @@
package com.epmet.service.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.dao.stats.DimGridDao;
import com.epmet.dao.stats.FactGroupGridDailyDao;
import com.epmet.dto.group.result.CustomerGridInfoResultDTO;
import com.epmet.dto.group.result.GroupGridDailyResultDTO;
import com.epmet.dto.AgencySubTreeDto;
import com.epmet.dto.group.form.AgencyMonthlyFormDTO;
import com.epmet.dto.group.result.*;
import com.epmet.dto.stats.DimAgencyDTO;
import com.epmet.entity.stats.DimAgencyEntity;
import com.epmet.entity.stats.DimGridEntity;
import com.epmet.service.StatsGroupService;
import com.epmet.service.group.GroupDataService;
import com.epmet.service.stats.FactGroupGridDailyService;
import com.epmet.service.stats.*;
import com.epmet.util.DimIdGenerator;
import com.epmet.util.ModuleConstant;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -24,11 +31,17 @@ import java.util.stream.Collectors;
public class StatsGroupServiceImpl implements StatsGroupService {
@Autowired
private DimGridDao dimGridDao;
private DimGridService dimGridService;
@Autowired
private DimAgencyService dimAgencyService;
@Autowired
private GroupDataService groupDataService;
@Autowired
private FactGroupGridDailyService factGroupGridDailyService;
@Autowired
private FactGroupAgencyDailyService factGroupAgencyDailyService;
@Autowired
private FactGroupAgencyMonthlyService factGroupAgencyMonthlyService;
/**
* @Description 统计网格-
@ -36,25 +49,189 @@ public class StatsGroupServiceImpl implements StatsGroupService {
* @author zxc
*/
@Override
public void groupGridDaily() {
public void groupGridDaily(String customerId) {
DimIdGenerator.DimIdBean dimIdBean = this.getDimIdBean();
List<DimGridEntity> gridsInfo = dimGridService.getGridListByCustomerId(customerId);
List<GroupGridDailyResultDTO> resultDTOS = groupDataService.groupGridDaily(customerId,dimIdBean,gridsInfo);
factGroupGridDailyService.statisticsGroupGridDaily(resultDTOS);
}
/**
* @Description 统计 小组 有关数据 dim机关-
* @author zxc
*/
@Override
public void groupAgencyDaily(String customerId) {
DimIdGenerator.DimIdBean dimIdBean = this.getDimIdBean();
List<DimAgencyDTO> customerAgencyInfos = dimAgencyService.getAgencyInfoByCustomerId(customerId);
List<AgencyGroupDailyResultDTO> agencyGroupDaily = this.getAgencyGroupDaily(customerAgencyInfos, dimIdBean, customerId);
factGroupAgencyDailyService.insertGroupAgencyDaily(agencyGroupDaily);
}
/**
* @Description 统计 小组 有关数据 dim机关-
* @author zxc String customerId
*/
@Override
public void groupAgencyMonthly() {
List<AgencyMonthlyFormDTO> lastDayAgency = factGroupAgencyDailyService.getLastDayAgency();
DimIdGenerator.DimIdBean dimIdBean = this.getDimIdBean();
List<AgencyGroupMonthlyResultDTO> monthGroupIncr = factGroupAgencyDailyService.getMonthGroupIncr(dimIdBean.getMonthId());
if (monthGroupIncr.size() == NumConstant.ZERO){
lastDayAgency.forEach(agency -> {
agency.setGroupIncr(NumConstant.ZERO);
});
}else {
lastDayAgency.forEach(agency -> {
monthGroupIncr.forEach(monthIncr -> {
if (agency.getAgencyId().equals(monthIncr.getAgencyId())){
agency.setGroupIncr(monthIncr.getMonthGroupIncr());
}
});
});
}
factGroupAgencyMonthlyService.insertAgencyGroupMonthly(lastDayAgency);
}
//每个客户下的网格信息
List<CustomerGridInfoResultDTO> customerGridInfos = dimGridDao.selectCustomerGrid();
if (customerGridInfos.size() == NumConstant.ZERO){
return;
public List<AgencyGroupDailyResultDTO> getAgencyGroupDaily(List<DimAgencyDTO> customerAgencyInfos, DimIdGenerator.DimIdBean timeDim,String customerId){
if (customerAgencyInfos.size() == NumConstant.ZERO){
return new ArrayList<>();
}
//根据customerId分组
Map<String, List<CustomerGridInfoResultDTO>> collect = customerGridInfos.stream().collect(Collectors.groupingBy(gridInfo -> gridInfo.getCustomerId()));
Set<Map.Entry<String, List<CustomerGridInfoResultDTO>>> entries = collect.entrySet();
entries.forEach(customerGridInfo -> {
String customerId = customerGridInfo.getKey();
List<CustomerGridInfoResultDTO> gridsInfo = customerGridInfo.getValue();
if (gridsInfo.size() != NumConstant.ZERO){
List<GroupGridDailyResultDTO> resultDTOS = groupDataService.groupGridDaily(customerId, gridsInfo);
//执行插入 fact_group_grid_daily
factGroupGridDailyService.statisticsGroupGridDaily(resultDTOS);
List<AgencyGroupDailyResultDTO> result = new ArrayList<>();
List<DimAgencyEntity> agencyList = dimAgencyService.getAgencyListByCustomerId(customerId);
agencyList.forEach(agency -> {
AgencyGroupDailyResultDTO agencyResult = new AgencyGroupDailyResultDTO();
String agencyId = agency.getId();
agencyResult.setAgencyId(agencyId);
BeanUtils.copyProperties(timeDim,agencyResult);
//机关下的所有网格(包括直属网格)
List<String> allGrid = this.getAllGrid(agencyId);
String pidByAgencyId = dimAgencyService.getPidByAgencyId(agencyId);
agencyResult.setPid(StringUtils.isBlank(pidByAgencyId)?"0":pidByAgencyId);
// TODO 1. 机关下有多少网格
agencyResult.setGridTotal(allGrid.size());
// TODO 2. 机关下有多少小组,只算 state = ‘approved’
List<AgencyGroupTotalCountResultDTO> agencyGroupTotalCount = groupDataService.getAgencyGroupTotalCount(allGrid);
Integer groupCount = agencyGroupTotalCount.stream().collect(Collectors.summingInt(AgencyGroupTotalCountResultDTO::getGridGroupCount));
agencyResult.setGroupTotalCount(groupCount);
// TODO 3. 机关下所有组内人数和(不需要去重) 人员状态 != "removed"
List<AgencyGridGroupPeopleTotalResultDTO> agencyGridGroupPeopleTotal = groupDataService.selectAgencyGridGroupPeopleTotal(allGrid);
Integer groupPeopleCount = agencyGridGroupPeopleTotal.stream().collect(Collectors.summingInt(AgencyGridGroupPeopleTotalResultDTO::getGridGroupPeopleTotal));
agencyResult.setGroupMemberTotalCount(groupPeopleCount);
// TODO 4. 机关下小组平均人数
agencyResult.setGroupMemberAvgCount(
agencyResult.getGroupTotalCount() == NumConstant.ZERO ? NumConstant.ZERO :
agencyResult.getGroupMemberTotalCount()/agencyResult.getGroupTotalCount());
// TODO 5. 机关下小组人数中位数 小组最大(小)成员数、最多(少)成员小组ID
List<AgencyGridGroupPeopleResultDTO> agencyGridGroupPeople = groupDataService.selectAgencyEveryGroupPeopleCount(allGrid);
List<AgencyGridGroupPeopleResultDTO> sorted = agencyGridGroupPeople.stream().sorted(Comparator.comparing(AgencyGridGroupPeopleResultDTO::getGroupCount).reversed()).collect(Collectors.toList());
Integer groupPeopleMedian;
if (sorted.size() == NumConstant.ONE){
agencyResult.setGroupMemberMaxCount(sorted.get(NumConstant.ZERO).getGroupCount());
agencyResult.setMaxMemberGroupId(sorted.get(NumConstant.ZERO).getGroupId());
agencyResult.setGroupMemberMinCount(sorted.get(NumConstant.ZERO).getGroupCount());
agencyResult.setMinMemberGroupId(sorted.get(NumConstant.ZERO).getGroupId());
}else if (sorted.size() >= NumConstant.TWO){
groupPeopleMedian = sorted.size() % 2 == 0 ?
(sorted.get(sorted.size() / 2 - 1).getGroupCount() + sorted.get(sorted.size() / 2).getGroupCount()) / 2 :
sorted.get(sorted.size() / 2).getGroupCount();
agencyResult.setGroupMedian(groupPeopleMedian);
agencyResult.setGroupMemberMaxCount(sorted.get(NumConstant.ZERO).getGroupCount());
agencyResult.setMaxMemberGroupId(sorted.get(NumConstant.ZERO).getGroupId());
agencyResult.setGroupMemberMinCount(sorted.get(sorted.size() - NumConstant.ONE).getGroupCount());
agencyResult.setMinMemberGroupId(sorted.get(sorted.size() - NumConstant.ONE).getGroupId());
}
// TODO 6. 机关下小组增量
List<AgencyGroupIncrResultDTO> agencyGroupIncr = groupDataService.selectAgencyGroupIncr(allGrid, timeDim.getDateId());
Integer groupIncr = agencyGroupIncr.stream().collect(Collectors.summingInt(AgencyGroupIncrResultDTO::getGroupIncr));
agencyResult.setGroupIncr(groupIncr);
result.add(agencyResult);
});
return result;
}
/**
* @Description 根据当前机关ID查询出直属网格和所有下级机关的网格
* @param agencyId
* @author zxc
*/
public List<String> getAllGrid(String agencyId){
List<String> result = new ArrayList<>();
List<AgencySubTreeDto> allAgency = dimAgencyService.getAllAgency();
Map<String,Set<String>> subGridOfAgency = new HashMap<>();
allAgency.forEach(agency -> {
this.initAgencyGridMap(agency.getAgencyId(),agency,subGridOfAgency);
});
Set<Map.Entry<String, Set<String>>> entries = subGridOfAgency.entrySet();
entries.forEach(entry -> {
String key = entry.getKey();
Set<String> value = entry.getValue();
if (key.equals(agencyId)){
result.addAll(value);
}
});
return result;
}
/**
* @Description 递归获取机关下的网格id包括直属机关
* @param pid
* @param agency
* @param subGridOfAgency
* @author zxc
*/
void initAgencyGridMap(String pid, AgencySubTreeDto agency, Map<String,Set<String>> subGridOfAgency){
//向map中放入数据
if(subGridOfAgency.containsKey(pid)){
//包含key
Set<String> grids = subGridOfAgency.get(pid);
if(null == grids){
grids = new HashSet<>();
subGridOfAgency.put(pid,grids);
}
if(null != agency.getGridIds() && agency.getGridIds().size() > NumConstant.ZERO){
grids.addAll(agency.getGridIds());
}
}else{
//不包含key
Set<String> grids = new HashSet<>(agency.getGridIds());
subGridOfAgency.put(pid,grids);
}
//定义递归出口
if(StringUtils.equals(ModuleConstant.AGENCY_LEVEL_COMMUNITY,agency.getLevel()) || null == agency.getSubAgencies() || agency.getSubAgencies().size() == NumConstant.ZERO){
return ;
}
//定义递归入口
agency.getSubAgencies().forEach(obj -> {
initAgencyGridMap(pid,obj,subGridOfAgency);
});
}
/**
* @Description 获取时间维度 dateId--weekId--monthId--quarterId--yearId
* @param
* @author zxc
*/
public DimIdGenerator.DimIdBean getDimIdBean(){
ZoneId zoneId = ZoneId.systemDefault();
LocalDate localDate = LocalDate.now();
ZonedDateTime zdt = localDate.atStartOfDay(zoneId);
Date date = Date.from(zdt.toInstant());
return DimIdGenerator.getDimIdBean(date);
}
public List<String> getAgencyAllGrid(String customerId,String agencyId){
return null;
}
}

9
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/CustomerGridService.java

@ -1,5 +1,7 @@
package com.epmet.service.org;
import com.epmet.dto.group.AgencyDTO;
import com.epmet.dto.group.result.AgencyGridTotalCountResultDTO;
import com.epmet.entity.org.CustomerGridEntity;
import java.util.Date;
@ -14,4 +16,11 @@ public interface CustomerGridService {
* @Param("start") Date start, @Param("end") Date end
*/
List<CustomerGridEntity> listGridsByCreateTime(Date start, Date end);
/**
* @Description 查询机关下有多少网格
* @param community
* @author zxc
*/
List<AgencyGridTotalCountResultDTO> selectAgencyGridTotalCount(List<AgencyDTO> community, String dateId);
}

12
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/org/impl/CustomerGridServiceImpl.java

@ -3,6 +3,8 @@ package com.epmet.service.org.impl;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.constant.DataSourceConstant;
import com.epmet.dao.org.CustomerGridDao;
import com.epmet.dto.group.AgencyDTO;
import com.epmet.dto.group.result.AgencyGridTotalCountResultDTO;
import com.epmet.entity.org.CustomerGridEntity;
import com.epmet.service.org.CustomerGridService;
import org.springframework.beans.factory.annotation.Autowired;
@ -22,4 +24,14 @@ public class CustomerGridServiceImpl implements CustomerGridService {
public List<CustomerGridEntity> listGridsByCreateTime(Date start, Date end) {
return customerGridDao.listGridsByCreateTime(start, end);
}
/**
* @Description 查询机关下有多少网格
* @param community
* @author zxc
*/
@Override
public List<AgencyGridTotalCountResultDTO> selectAgencyGridTotalCount(List<AgencyDTO> community, String dateId) {
return customerGridDao.selectAgencyGridTotalCount(community,dateId);
}
}

14
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimAgencyService.java

@ -159,4 +159,18 @@ public interface DimAgencyService extends BaseService<DimAgencyEntity> {
* @date 2020.06.18 09:45
**/
List<AgencySubDeptTreeDto> getTopAgencyWithDept();
/**
* @Description 根据customerId获取机关信息
* @param customerId
* @author zxc
*/
List<DimAgencyDTO> getAgencyInfoByCustomerId(String customerId);
/**
* @Description 根据机关Id获取上级机关ID
* @param agencyId
* @author zxc
*/
String getPidByAgencyId(String agencyId);
}

17
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimGridService.java

@ -19,6 +19,9 @@ package com.epmet.service.stats;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.group.AgencyDTO;
import com.epmet.dto.group.result.AgencyGridInfoResultDTO;
import com.epmet.dto.group.result.SubAgencyIdResultDTO;
import com.epmet.dto.stats.DimGridDTO;
import com.epmet.entity.stats.DimGridEntity;
import com.epmet.entity.stats.LastExecRecordEntity;
@ -111,4 +114,18 @@ public interface DimGridService extends BaseService<DimGridEntity> {
* @author: jianjun liu
*/
List<DimGridEntity> getGridListByCustomerId(String customerId);
/**
* @Description 查询机关下的网格
* @param formDTO
* @author zxc
*/
List<AgencyGridInfoResultDTO> selectAgencyGridInfo(List<AgencyDTO> formDTO);
/**
* @Description 根据当前机关ID查询下级机关ID
* @param formDTO
* @author zxc
*/
List<SubAgencyIdResultDTO> selectSubAgencyId(List<AgencyDTO> formDTO);
}

25
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGroupAgencyDailyService.java

@ -19,8 +19,12 @@ package com.epmet.service.stats;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.group.form.AgencyMonthlyFormDTO;
import com.epmet.dto.group.result.AgencyGroupDailyResultDTO;
import com.epmet.dto.group.result.AgencyGroupMonthlyResultDTO;
import com.epmet.dto.stats.FactGroupAgencyDailyDTO;
import com.epmet.entity.stats.FactGroupAgencyDailyEntity;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@ -92,4 +96,25 @@ public interface FactGroupAgencyDailyService extends BaseService<FactGroupAgency
* @date 2020-06-16
*/
void delete(String[] ids);
/**
* @Description 插入网格小组数据 机关-
* @param agencyList
* @author zxc
*/
void insertGroupAgencyDaily(@Param("agencyList") List<AgencyGroupDailyResultDTO> agencyList);
/**
* @Description 获取 网格小组机关-日统计的最后一天数据
* @param
* @author zxc
*/
List<AgencyMonthlyFormDTO> getLastDayAgency();
/**
* @Description 查询 月的小组增量
* @param monthId
* @author zxc
*/
List<AgencyGroupMonthlyResultDTO> getMonthGroupIncr(String monthId);
}

9
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGroupAgencyMonthlyService.java

@ -19,8 +19,10 @@ package com.epmet.service.stats;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.group.form.AgencyMonthlyFormDTO;
import com.epmet.dto.stats.FactGroupAgencyMonthlyDTO;
import com.epmet.entity.stats.FactGroupAgencyMonthlyEntity;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@ -92,4 +94,11 @@ public interface FactGroupAgencyMonthlyService extends BaseService<FactGroupAgen
* @date 2020-06-16
*/
void delete(String[] ids);
/**
* @Description 统计网格小组 机关-
* @param agencyMonth
* @author zxc
*/
void insertAgencyGroupMonthly(List<AgencyMonthlyFormDTO> agencyMonth);
}

20
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimAgencyServiceImpl.java

@ -201,4 +201,24 @@ public class DimAgencyServiceImpl extends BaseServiceImpl<DimAgencyDao, DimAgenc
return baseDao.selectTopAgencyWithDept();
}
/**
* @Description 根据customerId获取机关信息
* @param customerId
* @author zxc
*/
@Override
public List<DimAgencyDTO> getAgencyInfoByCustomerId(String customerId) {
return baseDao.selectDimAgencyByCustomerId(customerId);
}
/**
* @Description 根据机关Id获取上级机关ID
* @param agencyId
* @author zxc
*/
@Override
public String getPidByAgencyId(String agencyId) {
return baseDao.getPidByAgencyId(agencyId);
}
}

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

@ -28,6 +28,9 @@ import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.constant.StatsSubject;
import com.epmet.dao.stats.DimGridDao;
import com.epmet.dao.stats.LastExecRecordDao;
import com.epmet.dto.group.AgencyDTO;
import com.epmet.dto.group.result.AgencyGridInfoResultDTO;
import com.epmet.dto.group.result.SubAgencyIdResultDTO;
import com.epmet.dto.stats.DimGridDTO;
import com.epmet.entity.stats.DimGridEntity;
import com.epmet.entity.stats.LastExecRecordEntity;
@ -133,4 +136,24 @@ public class DimGridServiceImpl extends BaseServiceImpl<DimGridDao, DimGridEntit
}
return baseDao.getGridListByCustomerId(customerId);
}
/**
* @Description 查询机关下的网格
* @param formDTO
* @author zxc
*/
@Override
public List<AgencyGridInfoResultDTO> selectAgencyGridInfo(List<AgencyDTO> formDTO) {
return baseDao.selectAgencyGridInfo(formDTO);
}
/**
* @Description 根据当前机关ID查询下级机关ID
* @param formDTO
* @author zxc
*/
@Override
public List<SubAgencyIdResultDTO> selectSubAgencyId(List<AgencyDTO> formDTO) {
return baseDao.selectSubAgencyId(formDTO);
}
}

41
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupAgencyDailyServiceImpl.java

@ -20,10 +20,14 @@ 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.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.dao.stats.FactGroupAgencyDailyDao;
import com.epmet.dto.group.form.AgencyMonthlyFormDTO;
import com.epmet.dto.group.result.AgencyGroupDailyResultDTO;
import com.epmet.dto.group.result.AgencyGroupMonthlyResultDTO;
import com.epmet.dto.stats.FactGroupAgencyDailyDTO;
import com.epmet.entity.stats.FactGroupAgencyDailyEntity;
import com.epmet.service.stats.FactGroupAgencyDailyService;
@ -32,6 +36,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@ -97,4 +102,40 @@ public class FactGroupAgencyDailyServiceImpl extends BaseServiceImpl<FactGroupAg
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* @Description 插入网格小组数据 机关-
* @param agencyList
* @author zxc
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void insertGroupAgencyDaily(List<AgencyGroupDailyResultDTO> agencyList) {
if (agencyList.size() != NumConstant.ZERO){
baseDao.insertGroupAgencyDaily(agencyList);
}
}
/**
* @Description 获取 网格小组机关-日统计的最后一天数据
* @param
* @author zxc
*/
public List<AgencyMonthlyFormDTO> getLastDayAgency(){
return baseDao.getLastDayAgency();
}
/**
* @Description 查询 月的小组增量
* @param monthId
* @author zxc
*/
@Override
public List<AgencyGroupMonthlyResultDTO> getMonthGroupIncr(String monthId) {
if (StringUtils.isBlank(monthId)){
return new ArrayList<>();
}
return baseDao.getMonthGroupIncr(monthId);
}
}

15
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupAgencyMonthlyServiceImpl.java

@ -20,10 +20,12 @@ 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.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.dao.stats.FactGroupAgencyMonthlyDao;
import com.epmet.dto.group.form.AgencyMonthlyFormDTO;
import com.epmet.dto.stats.FactGroupAgencyMonthlyDTO;
import com.epmet.entity.stats.FactGroupAgencyMonthlyEntity;
import com.epmet.service.stats.FactGroupAgencyMonthlyService;
@ -96,4 +98,17 @@ public class FactGroupAgencyMonthlyServiceImpl extends BaseServiceImpl<FactGroup
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* @Description 统计网格小组 机关-
* @param agencyMonth
* @author zxc
*/
@Override
public void insertAgencyGroupMonthly(List<AgencyMonthlyFormDTO> agencyMonth) {
if (agencyMonth.size() == NumConstant.ZERO){
return;
}
baseDao.insertAgencyGroupMonthly(agencyMonth);
}
}

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

@ -20,6 +20,7 @@ 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.dto.group.result.GroupGridDailyResultDTO;
import com.epmet.dto.stats.FactGroupGridDailyDTO;
@ -111,6 +112,9 @@ public class FactGroupGridDailyServiceImpl extends BaseServiceImpl<FactGroupGrid
@Override
@Transactional(rollbackFor = Exception.class)
public void statisticsGroupGridDaily(List<GroupGridDailyResultDTO> formDto) {
if (formDto.size() == NumConstant.ZERO){
return;
}
baseDao.insertGroupGridDaily(formDto);
}

90
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/group/GroupDataDao.xml

@ -67,5 +67,95 @@
GROUP BY
grid_id
</select>
<!-- 机关下——所有网格内的小组数量 -->
<select id="getAgencyGroupTotalCount" resultType="com.epmet.dto.group.result.AgencyGroupTotalCountResultDTO">
<foreach collection="allGrid" item="grid" separator=" UNION ALL ">
SELECT
grid_id AS gridId,
COUNT(*) AS gridGroupCount
FROM
resi_group
WHERE
DEL_FLAG = 0
AND state = 'approved'
AND grid_id = #{grid}
GROUP BY
grid_id
</foreach>
</select>
<!-- 查询机关下的网格内小组成员总数 , 人员状态不为 “removed” -->
<select id="selectAgencyGridGroupPeopleTotal" resultType="com.epmet.dto.group.result.AgencyGridGroupPeopleTotalResultDTO">
<foreach collection="allGrid" item="grid" separator=" UNION ALL ">
SELECT
rg.grid_id AS gridId,
COUNT(rgm.id) AS gridGroupPeopleTotal
FROM
resi_group rg
LEFT JOIN resi_group_member rgm ON rgm.resi_group_id = rg.id
WHERE
rg.DEL_FLAG = 0
AND rg.state = 'approved'
AND rg.grid_id = #{grid}
AND rgm.status != 'removed'
GROUP BY rg.grid_id
</foreach>
</select>
<!-- 查询机关下每个小组的人数 -->
<select id="selectAgencyEveryGroupPeopleCount" resultType="com.epmet.dto.group.result.AgencyGridGroupPeopleResultDTO">
<foreach collection="allGrid" item="grid" separator=" UNION ALL ">
SELECT
rg.grid_id AS gridId,
rg.id AS groupId,
COUNT( rgm.id ) AS groupCount
FROM
resi_group rg
LEFT JOIN resi_group_member rgm ON rgm.resi_group_id = rg.id
WHERE
rg.DEL_FLAG = 0
AND rg.state = 'approved'
AND rg.grid_id = #{grid}
AND rgm.STATUS != 'removed'
GROUP BY
rgm.resi_group_id
</foreach>
</select>
<!-- 查询机关下的小组日增数 -->
<select id="selectAgencyGroupIncr" resultType="com.epmet.dto.group.result.AgencyGroupIncrResultDTO">
<foreach collection="allGrid" item="grid" separator=" UNION ALL ">
SELECT
COUNT(*) AS groupIncr,
grid_id AS gridId
FROM
resi_group
WHERE
state = 'approved'
AND grid_id = #{grid}
AND DATE_FORMAT( CREATED_TIME, '%Y-%m-%d' ) = #{yesterday}
GROUP BY
grid_id
</foreach>
</select>
<select id="getAgencyGrid" resultType="com.epmet.dto.group.result.GroupPeopleCountResultDTO">
<foreach collection="gridIds" item="gridId" separator=" UNION ALL ">
SELECT
rg.id AS groupId,
COUNT( rgm.id ) AS groupCount
FROM
resi_group rg
LEFT JOIN resi_group_member rgm ON rgm.resi_group_id = rg.id
WHERE
rg.DEL_FLAG = 0
AND rg.state = 'approved'
AND rg.grid_id = #{gridId}
AND rgm.STATUS != 'removed'
GROUP BY
rgm.resi_group_id
</foreach>
</select>
</mapper>

16
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/org/CustomerGridDao.xml

@ -18,4 +18,20 @@
</where>
ORDER BY CREATED_TIME ASC;
</select>
<!-- 查询机关下的网格总数 -->
<select id="selectAgencyGridTotalCount" resultType="com.epmet.dto.group.result.AgencyGridTotalCountResultDTO">
<foreach collection="formDto" item="agency" separator=",">
SELECT
#{agency.id} AS agencyId,
COUNT(*) gridTotal
FROM
customer_grid
WHERE
del_flag = '0'
AND customer_id = #{agency.customerId}
AND pid = #{agency.id}
AND DATE_FORMAT(CREATED_TIME,'%Y-%m-%d') <![CDATA[ <= ]]> #{dateId}
</foreach>
</select>
</mapper>

25
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimAgencyDao.xml

@ -222,4 +222,29 @@
agency.PID
</select>
<!-- 查询所有客户的机关数据 -->
<select id="selectDimAgencyByCustomerId" resultType="com.epmet.dto.stats.DimAgencyDTO">
SELECT
id AS id,
customer_id AS customerId,
level AS level,
pid AS pid,
pids AS pids
FROM
dim_agency
WHERE
del_flag = '0'
AND customer_id = #{customerId}
</select>
<select id="getPidByAgencyId" resultType="java.lang.String" parameterType="java.lang.String">
SELECT
pid
FROM
dim_agency
WHERE
del_flag = '0'
AND id = #{agencyId}
</select>
</mapper>

41
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimGridDao.xml

@ -11,18 +11,6 @@
LIMIT 1
</select>
<select id="selectCustomerGrid" resultType="com.epmet.dto.group.result.CustomerGridInfoResultDTO">
SELECT
dg.agency_id AS agencyId,
dg.id AS gridId,
dc.id AS customerId
FROM
dim_grid dg
LEFT JOIN dim_customer dc ON dc.id = dg.customer_id
WHERE
dc.del_flag = 0
AND dg.del_flag = 0
</select>
<select id="getGridListByCustomerId" resultType="com.epmet.entity.stats.DimGridEntity">
SELECT
ID,
@ -35,4 +23,33 @@
AND CUSTOMER_ID = #{customerId,jdbcType=VARCHAR}
</select>
<select id="selectAgencyGridInfo" resultType="com.epmet.dto.group.result.AgencyGridInfoResultDTO" parameterType="com.epmet.dto.group.AgencyDTO">
<foreach collection="formDTO" item="agency" separator=" UNION ALL ">
SELECT
id AS gridId,
agency_id AS agencyId
FROM
dim_grid
WHERE
del_flag = '0'
AND customer_id = #{agency.customerId}
AND agency_id = #{agency.id}
</foreach>
</select>
<!-- 根据当前机关ID查询下级机关ID -->
<select id="selectSubAgencyId" resultType="com.epmet.dto.group.result.SubAgencyIdResultDTO" parameterType="com.epmet.dto.group.AgencyDTO">
<foreach collection="formDTO" item="agency" separator=" UNION ALL ">
SELECT
#{agency.id} AS agencyId,
id AS subAgencyId
FROM
dim_agency
WHERE
del_flag = '0'
AND customer_id = #{agency.customerId}
AND pid = #{agency.id}
</foreach>
</select>
</mapper>

78
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactGroupAgencyDailyDao.xml

@ -30,5 +30,83 @@
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<insert id="insertGroupAgencyDaily">
INSERT INTO fact_group_agency_daily (
ID, AGENCY_ID, PID, DATE_ID, WEEK_ID, MONTH_ID, QUARTER_ID, YEAR_ID, GRID_TOTAL, GROUP_TOTAL_COUNT, GROUP_MEMBER_TOTAL_COUNT,
GROUP_MEMBER_AVG_COUNT, GROUP_MEDIAN, GROUP_INCR, GROUP_MEMBER_MAX_COUNT, MAX_MEMBER_GROUP_ID, GROUP_MEMBER_MIN_COUNT,
MIN_MEMBER_GROUP_ID, DEL_FLAG, REVISION, CREATED_BY, CREATED_TIME, UPDATED_BY, UPDATED_TIME)
values
<foreach collection="agencyList" item="agency" separator=",">
(
REPLACE(UUID(),'-',''),
#{agency.agencyId},
#{agency.pid},
#{agency.dateId},
#{agency.weekId},
#{agency.monthId},
#{agency.quarterId},
#{agency.yearId},
#{agency.gridTotal},
#{agency.groupTotalCount},
#{agency.groupMemberTotalCount},
#{agency.groupMemberAvgCount},
#{agency.groupMedian},
#{agency.groupIncr},
#{agency.groupMemberMaxCount},
IFNULL(#{agency.maxMemberGroupId},NULL),
#{agency.groupMemberMinCount},
IFNULL(#{agency.minMemberGroupId},NULL),
#{agency.delFlag},
#{agency.revision},
#{agency.createdBy},
NOW(),
#{agency.updatedBy},
NOW()
)
</foreach>
</insert>
<!-- 获取 网格小组【机关-日统计】的最后一天数据 -->
<select id="getLastDayAgency" resultType="com.epmet.dto.group.form.AgencyMonthlyFormDTO">
SELECT
ID AS id,
AGENCY_ID AS agencyId,
PID AS pid,
MONTH_ID AS monthId,
QUARTER_ID AS quarterId,
YEAR_ID AS yearId,
GRID_TOTAL AS gridTotal,
GROUP_TOTAL_COUNT AS groupTotal,
GROUP_MEMBER_TOTAL_COUNT AS groupMemberTotal,
GROUP_MEMBER_AVG_COUNT AS groupMemberAvgCount,
GROUP_MEDIAN AS groupMedian,
GROUP_INCR AS groupIncr,
GROUP_MEMBER_MAX_COUNT AS groupMemberMaxCount,
MAX_MEMBER_GROUP_ID AS maxMemberGroupId,
GROUP_MEMBER_MIN_COUNT AS groupMemberMinCount,
MIN_MEMBER_GROUP_ID AS minMemberGroupId
FROM
fact_group_agency_daily
WHERE del_flag = '0'
GROUP BY
AGENCY_ID
ORDER BY
DATE_ID DESC
</select>
<!-- 查询 月的小组增量 -->
<select id="getMonthGroupIncr" resultType="com.epmet.dto.group.result.AgencyGroupMonthlyResultDTO" parameterType="java.lang.String">
SELECT
agency_id AS agencyId,
SUM( group_incr ) AS monthGroupIncr
FROM
fact_group_agency_daily
WHERE
del_flag = '0'
AND SUBSTRING( date_id, 1, 6 ) = #{monthId}
GROUP BY
agency_id
</select>
</mapper>

35
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactGroupAgencyMonthlyDao.xml

@ -28,5 +28,40 @@
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<insert id="insertAgencyGroupMonthly">
INSERT INTO fact_group_agency_monthly
(ID, AGENCY_ID, PID, MONTH_ID, QUARTER_ID, YEAR_ID, GRID_TOTAL, GROUP_TOTAL, GROUP_MEMBER_TOTAL,
GROUP_MEMBER_AVG_COUNT, GROUP_MEDIAN, GROUP_INCR, GROUP_MEMBER_MAX_COUNT, MAX_MEMBER_GROUP_ID,
GROUP_MEMBER_MIN_COUNT, MIN_MEMBER_GROUP_ID, DEL_FLAG, REVISION, CREATED_BY, CREATED_TIME,
UPDATED_BY, UPDATED_TIME)
VALUES
<foreach collection="agencyMonth" item="agency" separator=",">
(
REPLACE(UUID(),'-',''),
#{agency.agencyId},
#{agency.pid},
#{agency.monthId},
#{agency.quarterId},
#{agency.yearId},
#{agency.gridTotal},
#{agency.groupTotal},
#{agency.groupMemberTotal},
#{agency.groupMemberAvgCount},
#{agency.groupMedian},
#{agency.groupIncr},
#{agency.groupMemberMaxCount},
#{agency.maxMemberGroupId},
#{agency.groupMemberMinCount},
#{agency.minMemberGroupId},
#{agency.delFlag},
#{agency.revision},
#{agency.createdBy},
NOW(),
#{agency.updatedBy},
NOW()
)
</foreach>
</insert>
</mapper>
Loading…
Cancel
Save