Browse Source

网格小组统计修改

dev_shibei_match
zxc 5 years ago
parent
commit
99c1bb8f7b
  1. 5
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/form/GridGroupPeopleFormDTO.java
  2. 5
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/form/GridGroupPeopleTotalFormDTO.java
  3. 5
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/form/GridGroupTotalFormDTO.java
  4. 4
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/form/GroupIncrFormDTO.java
  5. 35
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsGroupController.java
  6. 10
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/group/GroupDataDao.java
  7. 9
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactGroupAgencyDailyDao.java
  8. 7
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactGroupAgencyMonthlyDao.java
  9. 7
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactGroupGridDailyDao.java
  10. 8
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsGroupService.java
  11. 6
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/group/GroupDataService.java
  12. 24
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/group/impl/GroupDataServiceImpl.java
  13. 66
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsGroupServiceImpl.java
  14. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGroupAgencyDailyService.java
  15. 7
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupAgencyDailyServiceImpl.java
  16. 1
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupAgencyMonthlyServiceImpl.java
  17. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupGridDailyServiceImpl.java
  18. 10
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/group/GroupDataDao.xml
  19. 22
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactGroupAgencyDailyDao.xml
  20. 8
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactGroupAgencyMonthlyDao.xml
  21. 9
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactGroupGridDailyDao.xml

5
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/form/GridGroupPeopleFormDTO.java

@ -27,4 +27,9 @@ public class GridGroupPeopleFormDTO implements Serializable {
* 人员状态 * 人员状态
*/ */
private String status = "removed"; private String status = "removed";
/**
* dateID
*/
private String dateId;
} }

5
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/form/GridGroupPeopleTotalFormDTO.java

@ -27,4 +27,9 @@ public class GridGroupPeopleTotalFormDTO implements Serializable {
* 人员状态 * 人员状态
*/ */
private String status = "removed"; private String status = "removed";
/**
* dateID
*/
private String dateId;
} }

5
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/form/GridGroupTotalFormDTO.java

@ -22,4 +22,9 @@ public class GridGroupTotalFormDTO implements Serializable {
* 小组状态 * 小组状态
*/ */
private String state = "approved"; private String state = "approved";
/**
* dateID
*/
private String dateId;
} }

4
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/form/GroupIncrFormDTO.java

@ -24,7 +24,7 @@ public class GroupIncrFormDTO implements Serializable {
private String customerId; private String customerId;
/** /**
* 日期(昨日) * dateID
*/ */
private String yesterday; private String dateId;
} }

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

@ -1,14 +1,13 @@
package com.epmet.controller; package com.epmet.controller;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.service.StatsGroupService; import com.epmet.service.StatsGroupService;
import com.epmet.service.stats.DimCustomerService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; 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.RestController;
import java.util.List; import java.util.Date;
/** /**
* @Author zxc * @Author zxc
@ -20,8 +19,6 @@ public class StatsGroupController {
@Autowired @Autowired
private StatsGroupService statsGroupService; private StatsGroupService statsGroupService;
@Autowired
private DimCustomerService dimCustomerService;
/** /**
* 网格数小组数网格下所有组内人数不去重 * 网格数小组数网格下所有组内人数不去重
@ -35,16 +32,8 @@ public class StatsGroupController {
* @author zxc * @author zxc
*/ */
@PostMapping("groupgriddaily") @PostMapping("groupgriddaily")
public void groupGridDaily(){ public void groupGridDaily(@RequestParam(value = "date",required = false)Date date){
Integer pageNo = NumConstant.ONE; statsGroupService.groupGridDaily(date);
Integer pageSize = NumConstant.ONE_HUNDRED;
List<String> customerIds = dimCustomerService.selectCustomerIdPage(pageNo,pageSize);
if (customerIds.size() == NumConstant.ZERO){
return;
}
customerIds.forEach(customerId -> {
statsGroupService.groupGridDaily(customerId);
});
} }
/** /**
@ -53,16 +42,8 @@ public class StatsGroupController {
* @author zxc * @author zxc
*/ */
@PostMapping("groupagencydaily") @PostMapping("groupagencydaily")
public void groupAgencyDaily(){ public void groupAgencyDaily(@RequestParam(value = "date",required = false)Date date){
Integer pageNo = NumConstant.ONE; statsGroupService.groupAgencyDaily(date);
Integer pageSize = NumConstant.ONE_HUNDRED;
List<String> customerIds = dimCustomerService.selectCustomerIdPage(pageNo,pageSize);
if (customerIds.size() == NumConstant.ZERO){
return;
}
customerIds.forEach(customerId -> {
statsGroupService.groupAgencyDaily(customerId);
});
} }
/** /**
@ -71,8 +52,8 @@ public class StatsGroupController {
* @author zxc * @author zxc
*/ */
@PostMapping("groupagencymonthly") @PostMapping("groupagencymonthly")
public void groupAgencyMonthly(){ public void groupAgencyMonthly(@RequestParam(value = "date",required = false)Date date){
statsGroupService.groupAgencyMonthly(); statsGroupService.groupAgencyMonthly(date);
} }
} }

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

@ -50,29 +50,29 @@ public interface GroupDataDao {
* @param * @param
* @author zxc * @author zxc
*/ */
List<AgencyGroupTotalCountResultDTO> getAgencyGroupTotalCount(@Param("allGrid") List<String> allGrid); List<AgencyGroupTotalCountResultDTO> getAgencyGroupTotalCount(@Param("allGrid") List<String> allGrid,@Param("dateId")String dateId);
/** /**
* @Description 查询机关下网格内的小组人数 待优化 * @Description 查询机关下网格内的小组人数 待优化
* @param * @param
* @author zxc * @author zxc
*/ */
List<AgencyGridGroupPeopleTotalResultDTO> selectAgencyGridGroupPeopleTotal(@Param("allGrid") List<String> allGrid); List<AgencyGridGroupPeopleTotalResultDTO> selectAgencyGridGroupPeopleTotal(@Param("allGrid") List<String> allGrid,@Param("dateId")String dateId);
/** /**
* @Description 查询机关下每个小组的人数 待优化 * @Description 查询机关下每个小组的人数 待优化
* @param * @param
* @author zxc * @author zxc
*/ */
List<AgencyGridGroupPeopleResultDTO> selectAgencyEveryGroupPeopleCount(@Param("allGrid") List<String> allGrid); List<AgencyGridGroupPeopleResultDTO> selectAgencyEveryGroupPeopleCount(@Param("allGrid") List<String> allGrid,@Param("dateId")String dateId);
/** /**
* @Description 查询机关下的小组日增数 待优化 * @Description 查询机关下的小组日增数 待优化
* @param * @param
* @param yesterday * @param dateId
* @author zxc * @author zxc
*/ */
List<AgencyGroupIncrResultDTO> selectAgencyGroupIncr(@Param("allGrid") List<String> allGrid,@Param("yesterday")String yesterday); List<AgencyGroupIncrResultDTO> selectAgencyGroupIncr(@Param("allGrid") List<String> allGrid,@Param("dateId")String dateId);
/** /**
* @Description 查询机关下所有网格小组人数 * @Description 查询机关下所有网格小组人数

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

@ -48,7 +48,7 @@ public interface FactGroupAgencyDailyDao extends BaseDao<FactGroupAgencyDailyEnt
* @param * @param
* @author zxc * @author zxc
*/ */
List<AgencyMonthlyFormDTO> getLastDayAgency(); List<AgencyMonthlyFormDTO> getLastDayAgency(@Param("monthId") String monthId);
/** /**
* @Description 查询 月的小组增量 * @Description 查询 月的小组增量
@ -56,5 +56,12 @@ public interface FactGroupAgencyDailyDao extends BaseDao<FactGroupAgencyDailyEnt
* @author zxc * @author zxc
*/ */
List<AgencyGroupMonthlyResultDTO> getMonthGroupIncr(@Param("monthId")String monthId); List<AgencyGroupMonthlyResultDTO> getMonthGroupIncr(@Param("monthId")String monthId);
/**
* @Description 删除当天已存在数据
* @param dateId
* @author zxc
*/
void deleteInsertAgencyDailyByDateId(@Param("dateId")String dateId);
} }

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

@ -40,5 +40,12 @@ public interface FactGroupAgencyMonthlyDao extends BaseDao<FactGroupAgencyMonthl
* @author zxc * @author zxc
*/ */
void insertAgencyGroupMonthly(@Param("agencyMonth") List<AgencyMonthlyFormDTO> agencyMonth); void insertAgencyGroupMonthly(@Param("agencyMonth") List<AgencyMonthlyFormDTO> agencyMonth);
/**
* @Description 删除已存在的月数据
* @param monthId
* @author zxc
*/
void deleteInsertAgencyMonthlyByMonthId(@Param("monthId")String monthId);
} }

7
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactGroupGridDailyDao.java

@ -40,5 +40,12 @@ public interface FactGroupGridDailyDao extends BaseDao<FactGroupGridDailyEntity>
* @author zxc * @author zxc
*/ */
void insertGroupGridDaily(@Param("formDto") List<GroupGridDailyResultDTO> formDto); void insertGroupGridDaily(@Param("formDto") List<GroupGridDailyResultDTO> formDto);
/**
* @Description 删除已存在的数据当天防止当天数据多条
* @param dateId
* @author zxc
*/
void deleteInsertDateId(@Param("dateId")String dateId);
} }

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

@ -1,5 +1,7 @@
package com.epmet.service; package com.epmet.service;
import java.util.Date;
/** /**
* @Author zxc * @Author zxc
* @CreateTime 2020/6/16 14:14 * @CreateTime 2020/6/16 14:14
@ -10,18 +12,18 @@ public interface StatsGroupService {
* @Description 统计 小组 有关数据 dim网格- * @Description 统计 小组 有关数据 dim网格-
* @author zxc * @author zxc
*/ */
void groupGridDaily(String customerId); void groupGridDaily(Date date);
/** /**
* @Description 统计 小组 有关数据 dim机关- * @Description 统计 小组 有关数据 dim机关-
* @author zxc * @author zxc
*/ */
void groupAgencyDaily(String customerId); void groupAgencyDaily(Date date);
/** /**
* @Description 统计 小组 有关数据 dim机关- * @Description 统计 小组 有关数据 dim机关-
* @author zxc * @author zxc
*/ */
void groupAgencyMonthly(); void groupAgencyMonthly(Date date);
} }

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

@ -25,21 +25,21 @@ public interface GroupDataService {
* @param allGrid * @param allGrid
* @author zxc * @author zxc
*/ */
List<AgencyGroupTotalCountResultDTO> getAgencyGroupTotalCount(List<String> allGrid); List<AgencyGroupTotalCountResultDTO> getAgencyGroupTotalCount(List<String> allGrid,String dateId);
/** /**
* @Description 查询机关下网格内的小组人数 * @Description 查询机关下网格内的小组人数
* @param * @param
* @author zxc * @author zxc
*/ */
List<AgencyGridGroupPeopleTotalResultDTO> selectAgencyGridGroupPeopleTotal(List<String> allGrid); List<AgencyGridGroupPeopleTotalResultDTO> selectAgencyGridGroupPeopleTotal(List<String> allGrid,String dateId);
/** /**
* @Description 查询机关下每个小组的人数 * @Description 查询机关下每个小组的人数
* @param * @param
* @author zxc * @author zxc
*/ */
List<AgencyGridGroupPeopleResultDTO> selectAgencyEveryGroupPeopleCount(List<String> allGrid); List<AgencyGridGroupPeopleResultDTO> selectAgencyEveryGroupPeopleCount(List<String> allGrid,String dateId);
/** /**
* @Description 查询机关下的小组日增数 * @Description 查询机关下的小组日增数

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

@ -41,6 +41,7 @@ public class GroupDataServiceImpl implements GroupDataService {
if (gridsInfo.size() == NumConstant.ZERO){ if (gridsInfo.size() == NumConstant.ZERO){
return new ArrayList<>(); return new ArrayList<>();
} }
String dateId = dimTime.getDateId();
gridsInfo.forEach(grid -> { gridsInfo.forEach(grid -> {
GroupGridDailyResultDTO dailyResult = new GroupGridDailyResultDTO(); GroupGridDailyResultDTO dailyResult = new GroupGridDailyResultDTO();
BeanUtils.copyProperties(dimTime,dailyResult); BeanUtils.copyProperties(dimTime,dailyResult);
@ -52,6 +53,7 @@ public class GroupDataServiceImpl implements GroupDataService {
// 1. 网格下有多少小组,只算 state = ‘approved’ // 1. 网格下有多少小组,只算 state = ‘approved’
GridGroupTotalFormDTO formDTO = new GridGroupTotalFormDTO(); GridGroupTotalFormDTO formDTO = new GridGroupTotalFormDTO();
formDTO.setCustomerId(customerId); formDTO.setCustomerId(customerId);
formDTO.setDateId(dateId);
List<GridGroupTotalResultDTO> gridGroupTotalResultDTOS = groupDataDao.selectGridGroupTotal(formDTO); List<GridGroupTotalResultDTO> gridGroupTotalResultDTOS = groupDataDao.selectGridGroupTotal(formDTO);
if (gridGroupTotalResultDTOS.size() == NumConstant.ZERO){ if (gridGroupTotalResultDTOS.size() == NumConstant.ZERO){
result.forEach(grid -> { result.forEach(grid -> {
@ -70,6 +72,7 @@ public class GroupDataServiceImpl implements GroupDataService {
// 2. 网格下所有组内人数和(不需要去重) 人员状态 != "removed" // 2. 网格下所有组内人数和(不需要去重) 人员状态 != "removed"
GridGroupPeopleTotalFormDTO peopleTotalFormDTO = new GridGroupPeopleTotalFormDTO(); GridGroupPeopleTotalFormDTO peopleTotalFormDTO = new GridGroupPeopleTotalFormDTO();
peopleTotalFormDTO.setCustomerId(customerId); peopleTotalFormDTO.setCustomerId(customerId);
peopleTotalFormDTO.setDateId(dateId);
List<GridGroupPeopleTotalResultDTO> gridGroupPeopleTotalResultDTOS = groupDataDao.selectGridGroupPeopleTotal(peopleTotalFormDTO); List<GridGroupPeopleTotalResultDTO> gridGroupPeopleTotalResultDTOS = groupDataDao.selectGridGroupPeopleTotal(peopleTotalFormDTO);
result.forEach(grid -> { result.forEach(grid -> {
gridGroupPeopleTotalResultDTOS.forEach(groupPeopleTotal -> { gridGroupPeopleTotalResultDTOS.forEach(groupPeopleTotal -> {
@ -85,6 +88,7 @@ public class GroupDataServiceImpl implements GroupDataService {
// 4. 网格下小组人数中位数 小组最大(小)成员数、最多(少)成员小组ID // 4. 网格下小组人数中位数 小组最大(小)成员数、最多(少)成员小组ID
GridGroupPeopleFormDTO everyGroupPeople = new GridGroupPeopleFormDTO(); GridGroupPeopleFormDTO everyGroupPeople = new GridGroupPeopleFormDTO();
everyGroupPeople.setCustomerId(customerId); everyGroupPeople.setCustomerId(customerId);
everyGroupPeople.setDateId(dateId);
List<GridGroupPeopleResultDTO> everyGroupPeopleCount = groupDataDao.selectEveryGroupPeopleCount(everyGroupPeople); List<GridGroupPeopleResultDTO> everyGroupPeopleCount = groupDataDao.selectEveryGroupPeopleCount(everyGroupPeople);
Map<String, List<GridGroupPeopleResultDTO>> collect = everyGroupPeopleCount.stream().collect(Collectors.groupingBy(every -> every.getGridId())); Map<String, List<GridGroupPeopleResultDTO>> collect = everyGroupPeopleCount.stream().collect(Collectors.groupingBy(every -> every.getGridId()));
Set<Map.Entry<String, List<GridGroupPeopleResultDTO>>> entries = collect.entrySet(); Set<Map.Entry<String, List<GridGroupPeopleResultDTO>>> entries = collect.entrySet();
@ -111,7 +115,7 @@ public class GroupDataServiceImpl implements GroupDataService {
// 5. 网格下小组增量 // 5. 网格下小组增量
GroupIncrFormDTO groupIncr = new GroupIncrFormDTO(); GroupIncrFormDTO groupIncr = new GroupIncrFormDTO();
groupIncr.setCustomerId(customerId); groupIncr.setCustomerId(customerId);
groupIncr.setYesterday(dimTime.getDateId()); groupIncr.setDateId(dateId);
List<GroupIncrResultDTO> groupIncrResult = groupDataDao.selectGroupIncr(groupIncr); List<GroupIncrResultDTO> groupIncrResult = groupDataDao.selectGroupIncr(groupIncr);
result.forEach(grid -> { result.forEach(grid -> {
groupIncrResult.forEach(gridIncr -> { groupIncrResult.forEach(gridIncr -> {
@ -128,11 +132,11 @@ public class GroupDataServiceImpl implements GroupDataService {
* @param * @param
* @author zxc * @author zxc
*/ */
public List<AgencyGroupTotalCountResultDTO> getAgencyGroupTotalCount(List<String> allGrid){ public List<AgencyGroupTotalCountResultDTO> getAgencyGroupTotalCount(List<String> allGrid,String dateId){
if (allGrid.size() == NumConstant.ZERO){ if (allGrid.size() == NumConstant.ZERO){
return new ArrayList<>(); return new ArrayList<>();
} }
return groupDataDao.getAgencyGroupTotalCount(allGrid); return groupDataDao.getAgencyGroupTotalCount(allGrid,dateId);
} }
/** /**
@ -141,11 +145,11 @@ public class GroupDataServiceImpl implements GroupDataService {
* @author zxc * @author zxc
*/ */
@Override @Override
public List<AgencyGridGroupPeopleTotalResultDTO> selectAgencyGridGroupPeopleTotal(List<String> allGrid) { public List<AgencyGridGroupPeopleTotalResultDTO> selectAgencyGridGroupPeopleTotal(List<String> allGrid,String dateId) {
if (allGrid.size() == NumConstant.ZERO){ if (allGrid.size() == NumConstant.ZERO){
return new ArrayList<>(); return new ArrayList<>();
} }
return groupDataDao.selectAgencyGridGroupPeopleTotal(allGrid); return groupDataDao.selectAgencyGridGroupPeopleTotal(allGrid,dateId);
} }
/** /**
@ -153,24 +157,24 @@ public class GroupDataServiceImpl implements GroupDataService {
* @param * @param
* @author zxc * @author zxc
*/ */
public List<AgencyGridGroupPeopleResultDTO> selectAgencyEveryGroupPeopleCount(List<String> allGrid){ public List<AgencyGridGroupPeopleResultDTO> selectAgencyEveryGroupPeopleCount(List<String> allGrid,String dateId){
if (allGrid.size() == NumConstant.ZERO){ if (allGrid.size() == NumConstant.ZERO){
return new ArrayList<>(); return new ArrayList<>();
} }
return groupDataDao.selectAgencyEveryGroupPeopleCount(allGrid); return groupDataDao.selectAgencyEveryGroupPeopleCount(allGrid,dateId);
} }
/** /**
* @Description 查询机关下的小组日增数 * @Description 查询机关下的小组日增数
* @param * @param
* @param yesterday * @param dateId
* @author zxc * @author zxc
*/ */
public List<AgencyGroupIncrResultDTO> selectAgencyGroupIncr(List<String> allGrid,String yesterday){ public List<AgencyGroupIncrResultDTO> selectAgencyGroupIncr(List<String> allGrid,String dateId){
if (allGrid.size() == NumConstant.ZERO){ if (allGrid.size() == NumConstant.ZERO){
return new ArrayList<>(); return new ArrayList<>();
} }
return groupDataDao.selectAgencyGroupIncr(allGrid, yesterday); return groupDataDao.selectAgencyGroupIncr(allGrid, dateId);
} }
/** /**

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

@ -42,6 +42,8 @@ public class StatsGroupServiceImpl implements StatsGroupService {
private FactGroupAgencyDailyService factGroupAgencyDailyService; private FactGroupAgencyDailyService factGroupAgencyDailyService;
@Autowired @Autowired
private FactGroupAgencyMonthlyService factGroupAgencyMonthlyService; private FactGroupAgencyMonthlyService factGroupAgencyMonthlyService;
@Autowired
private DimCustomerService dimCustomerService;
/** /**
* @Description 统计网格- * @Description 统计网格-
@ -49,11 +51,20 @@ public class StatsGroupServiceImpl implements StatsGroupService {
* @author zxc * @author zxc
*/ */
@Override @Override
public void groupGridDaily(String customerId) { public void groupGridDaily(Date date) {
DimIdGenerator.DimIdBean dimIdBean = this.getDimIdBean(); Integer pageNo = NumConstant.ONE;
List<DimGridEntity> gridsInfo = dimGridService.getGridListByCustomerId(customerId); Integer pageSize = NumConstant.ONE_HUNDRED;
List<GroupGridDailyResultDTO> resultDTOS = groupDataService.groupGridDaily(customerId,dimIdBean,gridsInfo); List<String> customerIds = dimCustomerService.selectCustomerIdPage(pageNo,pageSize);
factGroupGridDailyService.statisticsGroupGridDaily(resultDTOS); if (customerIds.size() == NumConstant.ZERO){
return;
}
customerIds.forEach(customerId -> {
DimIdGenerator.DimIdBean dimIdBean = this.getDimIdBean(date);
List<DimGridEntity> gridsInfo = dimGridService.getGridListByCustomerId(customerId);
List<GroupGridDailyResultDTO> resultDTOS = groupDataService.groupGridDaily(customerId,dimIdBean,gridsInfo);
factGroupGridDailyService.statisticsGroupGridDaily(resultDTOS);
});
} }
/** /**
@ -61,12 +72,20 @@ public class StatsGroupServiceImpl implements StatsGroupService {
* @author zxc * @author zxc
*/ */
@Override @Override
public void groupAgencyDaily(String customerId) { public void groupAgencyDaily(Date date) {
DimIdGenerator.DimIdBean dimIdBean = this.getDimIdBean(); Integer pageNo = NumConstant.ONE;
List<DimAgencyDTO> customerAgencyInfos = dimAgencyService.getAgencyInfoByCustomerId(customerId); Integer pageSize = NumConstant.ONE_HUNDRED;
List<AgencyGroupDailyResultDTO> agencyGroupDaily = this.getAgencyGroupDaily(customerAgencyInfos, dimIdBean, customerId); List<String> customerIds = dimCustomerService.selectCustomerIdPage(pageNo,pageSize);
factGroupAgencyDailyService.insertGroupAgencyDaily(agencyGroupDaily); if (customerIds.size() == NumConstant.ZERO){
return;
}
DimIdGenerator.DimIdBean dimIdBean = this.getDimIdBean(date);
customerIds.forEach(customerId -> {
List<DimAgencyDTO> customerAgencyInfos = dimAgencyService.getAgencyInfoByCustomerId(customerId);
List<AgencyGroupDailyResultDTO> agencyGroupDaily = this.getAgencyGroupDaily(customerAgencyInfos, dimIdBean, customerId);
factGroupAgencyDailyService.insertGroupAgencyDaily(agencyGroupDaily);
});
} }
/** /**
@ -74,10 +93,11 @@ public class StatsGroupServiceImpl implements StatsGroupService {
* @author zxc String customerId * @author zxc String customerId
*/ */
@Override @Override
public void groupAgencyMonthly() { public void groupAgencyMonthly(Date date) {
List<AgencyMonthlyFormDTO> lastDayAgency = factGroupAgencyDailyService.getLastDayAgency(); DimIdGenerator.DimIdBean dimIdBean = this.getDimIdBean(date);
DimIdGenerator.DimIdBean dimIdBean = this.getDimIdBean(); String monthId = dimIdBean.getMonthId();
List<AgencyGroupMonthlyResultDTO> monthGroupIncr = factGroupAgencyDailyService.getMonthGroupIncr(dimIdBean.getMonthId()); List<AgencyMonthlyFormDTO> lastDayAgency = factGroupAgencyDailyService.getLastDayAgency(monthId);
List<AgencyGroupMonthlyResultDTO> monthGroupIncr = factGroupAgencyDailyService.getMonthGroupIncr(monthId);
if (monthGroupIncr.size() == NumConstant.ZERO){ if (monthGroupIncr.size() == NumConstant.ZERO){
lastDayAgency.forEach(agency -> { lastDayAgency.forEach(agency -> {
agency.setGroupIncr(NumConstant.ZERO); agency.setGroupIncr(NumConstant.ZERO);
@ -99,6 +119,7 @@ public class StatsGroupServiceImpl implements StatsGroupService {
return new ArrayList<>(); return new ArrayList<>();
} }
List<AgencyGroupDailyResultDTO> result = new ArrayList<>(); List<AgencyGroupDailyResultDTO> result = new ArrayList<>();
String dateId = timeDim.getDateId();
List<DimAgencyEntity> agencyList = dimAgencyService.getAgencyListByCustomerId(customerId); List<DimAgencyEntity> agencyList = dimAgencyService.getAgencyListByCustomerId(customerId);
agencyList.forEach(agency -> { agencyList.forEach(agency -> {
AgencyGroupDailyResultDTO agencyResult = new AgencyGroupDailyResultDTO(); AgencyGroupDailyResultDTO agencyResult = new AgencyGroupDailyResultDTO();
@ -113,11 +134,11 @@ public class StatsGroupServiceImpl implements StatsGroupService {
agencyResult.setGridTotal(allGrid.size()); agencyResult.setGridTotal(allGrid.size());
// TODO 2. 机关下有多少小组,只算 state = ‘approved’ // TODO 2. 机关下有多少小组,只算 state = ‘approved’
List<AgencyGroupTotalCountResultDTO> agencyGroupTotalCount = groupDataService.getAgencyGroupTotalCount(allGrid); List<AgencyGroupTotalCountResultDTO> agencyGroupTotalCount = groupDataService.getAgencyGroupTotalCount(allGrid,dateId);
Integer groupCount = agencyGroupTotalCount.stream().collect(Collectors.summingInt(AgencyGroupTotalCountResultDTO::getGridGroupCount)); Integer groupCount = agencyGroupTotalCount.stream().collect(Collectors.summingInt(AgencyGroupTotalCountResultDTO::getGridGroupCount));
agencyResult.setGroupTotalCount(groupCount); agencyResult.setGroupTotalCount(groupCount);
// TODO 3. 机关下所有组内人数和(不需要去重) 人员状态 != "removed" // TODO 3. 机关下所有组内人数和(不需要去重) 人员状态 != "removed"
List<AgencyGridGroupPeopleTotalResultDTO> agencyGridGroupPeopleTotal = groupDataService.selectAgencyGridGroupPeopleTotal(allGrid); List<AgencyGridGroupPeopleTotalResultDTO> agencyGridGroupPeopleTotal = groupDataService.selectAgencyGridGroupPeopleTotal(allGrid,dateId);
Integer groupPeopleCount = agencyGridGroupPeopleTotal.stream().collect(Collectors.summingInt(AgencyGridGroupPeopleTotalResultDTO::getGridGroupPeopleTotal)); Integer groupPeopleCount = agencyGridGroupPeopleTotal.stream().collect(Collectors.summingInt(AgencyGridGroupPeopleTotalResultDTO::getGridGroupPeopleTotal));
agencyResult.setGroupMemberTotalCount(groupPeopleCount); agencyResult.setGroupMemberTotalCount(groupPeopleCount);
@ -127,7 +148,7 @@ public class StatsGroupServiceImpl implements StatsGroupService {
agencyResult.getGroupMemberTotalCount()/agencyResult.getGroupTotalCount()); agencyResult.getGroupMemberTotalCount()/agencyResult.getGroupTotalCount());
// TODO 5. 机关下小组人数中位数 小组最大(小)成员数、最多(少)成员小组ID // TODO 5. 机关下小组人数中位数 小组最大(小)成员数、最多(少)成员小组ID
List<AgencyGridGroupPeopleResultDTO> agencyGridGroupPeople = groupDataService.selectAgencyEveryGroupPeopleCount(allGrid); List<AgencyGridGroupPeopleResultDTO> agencyGridGroupPeople = groupDataService.selectAgencyEveryGroupPeopleCount(allGrid,dateId);
List<AgencyGridGroupPeopleResultDTO> sorted = agencyGridGroupPeople.stream().sorted(Comparator.comparing(AgencyGridGroupPeopleResultDTO::getGroupCount).reversed()).collect(Collectors.toList()); List<AgencyGridGroupPeopleResultDTO> sorted = agencyGridGroupPeople.stream().sorted(Comparator.comparing(AgencyGridGroupPeopleResultDTO::getGroupCount).reversed()).collect(Collectors.toList());
Integer groupPeopleMedian; Integer groupPeopleMedian;
if (sorted.size() == NumConstant.ONE){ if (sorted.size() == NumConstant.ONE){
@ -147,7 +168,7 @@ public class StatsGroupServiceImpl implements StatsGroupService {
agencyResult.setMinMemberGroupId(sorted.get(sorted.size() - NumConstant.ONE).getGroupId()); agencyResult.setMinMemberGroupId(sorted.get(sorted.size() - NumConstant.ONE).getGroupId());
} }
// TODO 6. 机关下小组增量 // TODO 6. 机关下小组增量
List<AgencyGroupIncrResultDTO> agencyGroupIncr = groupDataService.selectAgencyGroupIncr(allGrid, timeDim.getDateId()); List<AgencyGroupIncrResultDTO> agencyGroupIncr = groupDataService.selectAgencyGroupIncr(allGrid, dateId);
Integer groupIncr = agencyGroupIncr.stream().collect(Collectors.summingInt(AgencyGroupIncrResultDTO::getGroupIncr)); Integer groupIncr = agencyGroupIncr.stream().collect(Collectors.summingInt(AgencyGroupIncrResultDTO::getGroupIncr));
agencyResult.setGroupIncr(groupIncr); agencyResult.setGroupIncr(groupIncr);
result.add(agencyResult); result.add(agencyResult);
@ -222,12 +243,15 @@ public class StatsGroupServiceImpl implements StatsGroupService {
* @param * @param
* @author zxc * @author zxc
*/ */
public DimIdGenerator.DimIdBean getDimIdBean(){ public DimIdGenerator.DimIdBean getDimIdBean(Date date){
if (date != null){
return DimIdGenerator.getDimIdBean(date);
}
ZoneId zoneId = ZoneId.systemDefault(); ZoneId zoneId = ZoneId.systemDefault();
LocalDate localDate = LocalDate.now().minusDays(NumConstant.ONE); LocalDate localDate = LocalDate.now().minusDays(NumConstant.ONE);
ZonedDateTime zdt = localDate.atStartOfDay(zoneId); ZonedDateTime zdt = localDate.atStartOfDay(zoneId);
Date date = Date.from(zdt.toInstant()); Date result = Date.from(zdt.toInstant());
return DimIdGenerator.getDimIdBean(date); return DimIdGenerator.getDimIdBean(result);
} }
public List<String> getAgencyAllGrid(String customerId,String agencyId){ public List<String> getAgencyAllGrid(String customerId,String agencyId){

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

@ -109,7 +109,7 @@ public interface FactGroupAgencyDailyService extends BaseService<FactGroupAgency
* @param * @param
* @author zxc * @author zxc
*/ */
List<AgencyMonthlyFormDTO> getLastDayAgency(); List<AgencyMonthlyFormDTO> getLastDayAgency(String monthId);
/** /**
* @Description 查询 月的小组增量 * @Description 查询 月的小组增量

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

@ -103,7 +103,7 @@ public class FactGroupAgencyDailyServiceImpl extends BaseServiceImpl<FactGroupAg
} }
/** /**
* @Description 插入网格小组数据 机关- * @Description 插入网格小组数据 机关- 先删除再插入
* @param agencyList * @param agencyList
* @author zxc * @author zxc
*/ */
@ -111,6 +111,7 @@ public class FactGroupAgencyDailyServiceImpl extends BaseServiceImpl<FactGroupAg
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void insertGroupAgencyDaily(List<AgencyGroupDailyResultDTO> agencyList) { public void insertGroupAgencyDaily(List<AgencyGroupDailyResultDTO> agencyList) {
if (agencyList.size() != NumConstant.ZERO){ if (agencyList.size() != NumConstant.ZERO){
baseDao.deleteInsertAgencyDailyByDateId(agencyList.get(NumConstant.ZERO).getDateId());
baseDao.insertGroupAgencyDaily(agencyList); baseDao.insertGroupAgencyDaily(agencyList);
} }
@ -121,8 +122,8 @@ public class FactGroupAgencyDailyServiceImpl extends BaseServiceImpl<FactGroupAg
* @param * @param
* @author zxc * @author zxc
*/ */
public List<AgencyMonthlyFormDTO> getLastDayAgency(){ public List<AgencyMonthlyFormDTO> getLastDayAgency(String monthId){
return baseDao.getLastDayAgency(); return baseDao.getLastDayAgency(monthId);
} }
/** /**

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

@ -108,6 +108,7 @@ public class FactGroupAgencyMonthlyServiceImpl extends BaseServiceImpl<FactGroup
if (agencyMonth.size() == NumConstant.ZERO){ if (agencyMonth.size() == NumConstant.ZERO){
return; return;
} }
baseDao.deleteInsertAgencyMonthlyByMonthId(agencyMonth.get(NumConstant.ZERO).getMonthId());
baseDao.insertAgencyGroupMonthly(agencyMonth); baseDao.insertAgencyGroupMonthly(agencyMonth);
} }

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

@ -115,6 +115,8 @@ public class FactGroupGridDailyServiceImpl extends BaseServiceImpl<FactGroupGrid
if (formDto.size() == NumConstant.ZERO){ if (formDto.size() == NumConstant.ZERO){
return; return;
} }
String dateId = formDto.get(NumConstant.ZERO).getDateId();
baseDao.deleteInsertDateId(dateId);
baseDao.insertGroupGridDaily(formDto); baseDao.insertGroupGridDaily(formDto);
} }

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

@ -14,6 +14,7 @@
DEL_FLAG = 0 DEL_FLAG = 0
AND state = #{state} AND state = #{state}
AND customer_id = #{customerId} AND customer_id = #{customerId}
AND DATE_FORMAT(created_time,'%Y%m%d') <![CDATA[ <= ]]> #{dateId}
GROUP BY GROUP BY
grid_id grid_id
</select> </select>
@ -31,6 +32,7 @@
AND rg.state = #{state} AND rg.state = #{state}
AND rg.customer_id = #{customerId} AND rg.customer_id = #{customerId}
AND rgm.status != #{status} AND rgm.status != #{status}
AND DATE_FORMAT(rgm.created_time,'%Y%m%d') <![CDATA[ <= ]]> #{dateId}
GROUP BY rg.grid_id GROUP BY rg.grid_id
</select> </select>
@ -49,6 +51,7 @@
AND rg.state = #{state} AND rg.state = #{state}
AND rg.customer_id = #{customerId} AND rg.customer_id = #{customerId}
AND rgm.STATUS != #{status} AND rgm.STATUS != #{status}
AND DATE_FORMAT(rgm.created_time,'%Y%m%d') <![CDATA[ <= ]]> #{dateId}
GROUP BY GROUP BY
rgm.resi_group_id rgm.resi_group_id
</select> </select>
@ -63,7 +66,7 @@
WHERE WHERE
state = #{state} state = #{state}
AND customer_id = #{customerId} AND customer_id = #{customerId}
AND DATE_FORMAT( CREATED_TIME, '%Y-%m-%d' ) = #{yesterday} AND DATE_FORMAT( CREATED_TIME, '%Y%m%d' ) = #{dateId}
GROUP BY GROUP BY
grid_id grid_id
</select> </select>
@ -80,6 +83,7 @@
DEL_FLAG = 0 DEL_FLAG = 0
AND state = 'approved' AND state = 'approved'
AND grid_id = #{grid} AND grid_id = #{grid}
AND DATE_FORMAT(created_time,'%Y%m%d') <![CDATA[ <= ]]> #{dateId}
GROUP BY GROUP BY
grid_id grid_id
</foreach> </foreach>
@ -99,6 +103,7 @@
AND rg.state = 'approved' AND rg.state = 'approved'
AND rg.grid_id = #{grid} AND rg.grid_id = #{grid}
AND rgm.status != 'removed' AND rgm.status != 'removed'
AND DATE_FORMAT(rgm.created_time,'%Y%m%d') <![CDATA[ <= ]]> #{dateId}
GROUP BY rg.grid_id GROUP BY rg.grid_id
</foreach> </foreach>
</select> </select>
@ -118,6 +123,7 @@
AND rg.state = 'approved' AND rg.state = 'approved'
AND rg.grid_id = #{grid} AND rg.grid_id = #{grid}
AND rgm.STATUS != 'removed' AND rgm.STATUS != 'removed'
AND DATE_FORMAT(rgm.created_time,'%Y%m%d') <![CDATA[ <= ]]> #{dateId}
GROUP BY GROUP BY
rgm.resi_group_id rgm.resi_group_id
</foreach> </foreach>
@ -134,7 +140,7 @@
WHERE WHERE
state = 'approved' state = 'approved'
AND grid_id = #{grid} AND grid_id = #{grid}
AND DATE_FORMAT( CREATED_TIME, '%Y-%m-%d' ) = #{yesterday} AND DATE_FORMAT( CREATED_TIME, '%Y%m%d' ) = #{dateId}
GROUP BY GROUP BY
grid_id grid_id
</foreach> </foreach>

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

@ -67,7 +67,7 @@
</insert> </insert>
<!-- 获取 网格小组【机关-日统计】的最后一天数据 --> <!-- 获取 网格小组【机关-日统计】的最后一天数据 -->
<select id="getLastDayAgency" resultType="com.epmet.dto.group.form.AgencyMonthlyFormDTO"> <select id="getLastDayAgency" resultType="com.epmet.dto.group.form.AgencyMonthlyFormDTO" parameterType="java.lang.String">
SELECT SELECT
ID AS id, ID AS id,
AGENCY_ID AS agencyId, AGENCY_ID AS agencyId,
@ -87,11 +87,13 @@
MIN_MEMBER_GROUP_ID AS minMemberGroupId MIN_MEMBER_GROUP_ID AS minMemberGroupId
FROM FROM
fact_group_agency_daily fact_group_agency_daily
WHERE del_flag = '0' WHERE
GROUP BY del_flag = '0'
AGENCY_ID AND DATE_FORMAT(date_id,'%Y%m') = #{monthId}
ORDER BY GROUP BY
DATE_ID DESC AGENCY_ID
ORDER BY
DATE_ID DESC
</select> </select>
<!-- 查询 月的小组增量 --> <!-- 查询 月的小组增量 -->
@ -108,5 +110,13 @@
agency_id agency_id
</select> </select>
<!-- 删除当天已存在数据 -->
<delete id="deleteInsertAgencyDailyByDateId" parameterType="java.lang.String">
DELETE
FROM
fact_group_agency_daily
WHERE
date_id = #{dateId}
</delete>
</mapper> </mapper>

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

@ -63,5 +63,13 @@
</foreach> </foreach>
</insert> </insert>
<!-- 删除已存在的月数据 -->
<delete id="deleteInsertAgencyMonthlyByMonthId" parameterType="java.lang.String">
DELETE
FROM
fact_group_agency_monthly
WHERE
month_id = #{monthId}
</delete>
</mapper> </mapper>

9
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactGroupGridDailyDao.xml

@ -65,4 +65,13 @@
</foreach> </foreach>
</insert> </insert>
<!-- 删除已存在的数据【当天】防止当天数据多条 -->
<delete id="deleteInsertDateId" parameterType="java.lang.String">
DELETE
FROM
fact_group_grid_daily
WHERE
date_id = #{dateId}
</delete>
</mapper> </mapper>
Loading…
Cancel
Save