Browse Source

Merge remote-tracking branch 'origin/dev_statistical_optimize' into dev

dev_shibei_match
yinzuomei 4 years ago
parent
commit
31be58ccf4
  1. 14
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/user/FactParticipationUserGridDailyDTO.java
  2. 14
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/user/FactParticipationUserGridMonthlyDTO.java
  3. 14
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/user/FactRegUserGridDailyDTO.java
  4. 14
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/user/FactRegUserGridMonthlyDTO.java
  5. 12
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/user/result/UserStatisticalData.java
  6. 26
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/IncrAndTotalUserIdsResultDTO.java
  7. 20
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/IncrWithinTimeRangeResultDTO.java
  8. 24
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/PartyTotalAndIncrResultDTO.java
  9. 31
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/TotalAndIncrResultDTO.java
  10. 21
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/TotalUserIdsResultDTO.java
  11. 37
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/WarmTotalAndIncrResultDTO.java
  12. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactGroupGridDailyDao.java
  13. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/user/FactParticipationUserAgencyDailyDao.java
  14. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/user/FactParticipationUserAgencyMonthlyDao.java
  15. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/user/FactParticipationUserGridDailyDao.java
  16. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/user/FactParticipationUserGridMonthlyDao.java
  17. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/user/FactRegUserAgencyDailyDao.java
  18. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/user/FactRegUserAgencyMonthlyDao.java
  19. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/user/FactRegUserGridDailyDao.java
  20. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/user/FactRegUserGridMonthlyDao.java
  21. 69
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java
  22. 6
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/group/impl/GroupDataServiceImpl.java
  23. 14
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupGridDailyServiceImpl.java
  24. 99
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/user/impl/UserStatisticalServiceImpl.java
  25. 250
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java
  26. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/util/ModuleConstant.java
  27. 1
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactGroupGridDailyDao.xml
  28. 1
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactParticipationUserAgencyDailyDao.xml
  29. 1
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactParticipationUserAgencyMonthlyDao.xml
  30. 1
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactParticipationUserGridDailyDao.xml
  31. 1
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactParticipationUserGridMonthlyDao.xml
  32. 1
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserAgencyDailyDao.xml
  33. 1
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserAgencyMonthlyDao.xml
  34. 1
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridDailyDao.xml
  35. 1
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridMonthlyDao.xml
  36. 286
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml

14
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/user/FactParticipationUserGridDailyDTO.java

@ -19,6 +19,8 @@ package com.epmet.dto.stats.user;
import java.io.Serializable;
import java.util.Date;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data;
import java.math.BigDecimal;
@ -150,4 +152,16 @@ public class FactParticipationUserGridDailyDTO implements Serializable {
*/
private String delFlag;
public FactParticipationUserGridDailyDTO() {
this.regTotal = NumConstant.ZERO;
this.resiTotal = NumConstant.ZERO;
this.warmHeartedTotal = NumConstant.ZERO;
this.partymemberTotal = NumConstant.ZERO;
this.regIncr = NumConstant.ZERO;
this.warmIncr = NumConstant.ZERO;
this.partymemberIncr = NumConstant.ZERO;
this.resiProportion = NumConstant.ZERO_DECIMAL;
this.partymemberProportion = NumConstant.ZERO_DECIMAL;
this.warmHeartedProportion = NumConstant.ZERO_DECIMAL;
}
}

14
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/user/FactParticipationUserGridMonthlyDTO.java

@ -19,6 +19,8 @@ package com.epmet.dto.stats.user;
import java.io.Serializable;
import java.util.Date;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data;
import java.math.BigDecimal;
@ -149,4 +151,16 @@ public class FactParticipationUserGridMonthlyDTO implements Serializable {
*/
private String delFlag;
public FactParticipationUserGridMonthlyDTO() {
this.regTotal = NumConstant.ZERO;
this.resiTotal = NumConstant.ZERO;
this.warmHeartedTotal = NumConstant.ZERO;
this.partymemberTotal = NumConstant.ZERO;
this.regIncr = NumConstant.ZERO;
this.warmIncr = NumConstant.ZERO;
this.partymemberIncr = NumConstant.ZERO;
this.partymemberProportion = NumConstant.ZERO_DECIMAL;
this.resiProportion = NumConstant.ZERO_DECIMAL;
this.warmHeartedProportion = NumConstant.ZERO_DECIMAL;
}
}

14
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/user/FactRegUserGridDailyDTO.java

@ -19,6 +19,8 @@ package com.epmet.dto.stats.user;
import java.io.Serializable;
import java.util.Date;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data;
import java.math.BigDecimal;
@ -149,4 +151,16 @@ public class FactRegUserGridDailyDTO implements Serializable {
*/
private String delFlag;
public FactRegUserGridDailyDTO() {
this.regTotal = NumConstant.ZERO;
this.resiTotal = NumConstant.ZERO;
this.warmHeartedTotal = NumConstant.ZERO;
this.partymemberTotal = NumConstant.ZERO;
this.regIncr = NumConstant.ZERO;
this.warmIncr = NumConstant.ZERO;
this.partymemberIncr = NumConstant.ZERO;
this.resiProportion = NumConstant.ZERO_DECIMAL;
this.partymemberProportion = NumConstant.ZERO_DECIMAL;
this.warmHeartedProportion = NumConstant.ZERO_DECIMAL;
}
}

14
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/user/FactRegUserGridMonthlyDTO.java

@ -19,6 +19,8 @@ package com.epmet.dto.stats.user;
import java.io.Serializable;
import java.util.Date;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data;
import java.math.BigDecimal;
@ -149,4 +151,16 @@ public class FactRegUserGridMonthlyDTO implements Serializable {
*/
private String delFlag;
public FactRegUserGridMonthlyDTO() {
this.regTotal = NumConstant.ZERO;
this.resiTotal = NumConstant.ZERO;
this.warmHeartedTotal = NumConstant.ZERO;
this.partymemberTotal = NumConstant.ZERO;
this.regIncr = NumConstant.ZERO;
this.warmIncr = NumConstant.ZERO;
this.partymemberIncr = NumConstant.ZERO;
this.warmHeartedProportion = NumConstant.ZERO_DECIMAL;
this.resiProportion = NumConstant.ZERO_DECIMAL;
this.partymemberProportion = NumConstant.ZERO_DECIMAL;
}
}

12
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/user/result/UserStatisticalData.java

@ -5,6 +5,7 @@ import com.epmet.dto.stats.user.*;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
@ -71,4 +72,15 @@ public class UserStatisticalData implements Serializable {
* yyyyMM
*/
private String monthId;
public UserStatisticalData() {
this.partiAgencyDailyList = new ArrayList<>();
this.partiGridDailyList = new ArrayList<>();
this.partiAgencyMonthlyList = new ArrayList<>();
this.partiGridMonthlyList = new ArrayList<>();
this.regAgencyDailyList = new ArrayList<>();
this.regGridDailyList = new ArrayList<>();
this.regAgencyMonthlyList = new ArrayList<>();
this.regGridMonthlyList = new ArrayList<>();
}
}

26
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/IncrAndTotalUserIdsResultDTO.java

@ -0,0 +1,26 @@
package com.epmet.dto.user.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Author zxc
* @DateTime 2021/7/27 10:41 上午
* @DESC
*/
@Data
public class IncrAndTotalUserIdsResultDTO implements Serializable {
private static final long serialVersionUID = 9116867002773352209L;
private String gridId;
private List<String> userIds;
/**
* userId类型dailymonthly
*/
private String type;
}

20
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/IncrWithinTimeRangeResultDTO.java

@ -0,0 +1,20 @@
package com.epmet.dto.user.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2021/7/28 10:58 上午
* @DESC 查询指定时间范围内注册/参与用户增量
*/
@Data
public class IncrWithinTimeRangeResultDTO implements Serializable {
private static final long serialVersionUID = 6199087464367184830L;
private String gridId;
private Integer userCount;
}

24
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/PartyTotalAndIncrResultDTO.java

@ -0,0 +1,24 @@
package com.epmet.dto.user.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2021/7/27 4:53 下午
* @DESC
*/
@Data
public class PartyTotalAndIncrResultDTO implements Serializable {
private static final long serialVersionUID = 6546408164027047797L;
private String gridId;
private Integer dailyIncr;
private Integer monthlyIncr;
private Integer total;
}

31
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/TotalAndIncrResultDTO.java

@ -0,0 +1,31 @@
package com.epmet.dto.user.result;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2021/7/27 10:14 上午
* @DESC
*/
@Data
public class TotalAndIncrResultDTO implements Serializable {
private static final long serialVersionUID = -3184476610188193106L;
private Integer total;
private Integer dailyIncr;
private Integer monthlyIncr;
private String gridId;
public TotalAndIncrResultDTO() {
this.total = NumConstant.ZERO;
this.dailyIncr = NumConstant.ZERO;
this.monthlyIncr = NumConstant.ZERO;
}
}

21
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/TotalUserIdsResultDTO.java

@ -0,0 +1,21 @@
package com.epmet.dto.user.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Author zxc
* @DateTime 2021/7/27 10:57 上午
* @DESC
*/
@Data
public class TotalUserIdsResultDTO implements Serializable {
private static final long serialVersionUID = 8236061658552220549L;
private String gridId;
private List<String> userIds;
}

37
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/WarmTotalAndIncrResultDTO.java

@ -0,0 +1,37 @@
package com.epmet.dto.user.result;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2021/7/27 1:30 下午
* @DESC
*/
@Data
public class WarmTotalAndIncrResultDTO implements Serializable {
private static final long serialVersionUID = -4864864583111279861L;
private String gridId;
private Integer total;
/**
* 日增
*/
private Integer dailyIncr;
/**
* 月增
*/
private Integer monthlyIncr;
public WarmTotalAndIncrResultDTO() {
this.total = NumConstant.ZERO;
this.dailyIncr = NumConstant.ZERO;
this.monthlyIncr = NumConstant.ZERO;
}
}

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

@ -48,7 +48,7 @@ public interface FactGroupGridDailyDao extends BaseDao<FactGroupGridDailyEntity>
* @param dateId
* @author zxc
*/
void deleteInsertDateId(@Param("dateId")String dateId,@Param("customerId")String customerId);
Integer deleteInsertDateId(@Param("dateId")String dateId,@Param("customerId")String customerId);
/**
* @Description 根据机关级别查询小组数据

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

@ -37,7 +37,7 @@ public interface FactParticipationUserAgencyDailyDao extends BaseDao<FactPartici
void insertBatch(@Param("list") List<FactParticipationUserAgencyDailyDTO> list);
void deleteByParams(@Param("dateId")String dateId,@Param("customerId")String customerId);
Integer deleteByParams(@Param("dateId")String dateId,@Param("customerId")String customerId);
/**
* @Description 查询机关下用户信息

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

@ -36,6 +36,6 @@ public interface FactParticipationUserAgencyMonthlyDao extends BaseDao<FactParti
void insertBatch(@Param("list") List<FactParticipationUserAgencyMonthlyDTO> list);
void deleteByParams(@Param("monthId")String monthId,@Param("customerId")String customerId);
Integer deleteByParams(@Param("monthId")String monthId,@Param("customerId")String customerId);
}

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

@ -38,7 +38,7 @@ public interface FactParticipationUserGridDailyDao extends BaseDao<FactParticipa
void insertBatch(@Param("list") List<FactParticipationUserGridDailyDTO> list);
void deleteByParams(@Param("dateId")String dateId,@Param("customerId")String customerId);
Integer deleteByParams(@Param("dateId")String dateId,@Param("customerId")String customerId);
/**
* @Description 查询网格下用户信息

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

@ -36,5 +36,5 @@ public interface FactParticipationUserGridMonthlyDao extends BaseDao<FactPartici
void insertBatch(@Param("list") List<FactParticipationUserGridMonthlyDTO> list);
void deleteByParams(@Param("monthId")String monthId,@Param("customerId")String customerId);
Integer deleteByParams(@Param("monthId")String monthId,@Param("customerId")String customerId);
}

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

@ -36,6 +36,6 @@ public interface FactRegUserAgencyDailyDao extends BaseDao<FactRegUserAgencyDail
void insertBatch(@Param("list") List<FactRegUserAgencyDailyDTO> list);
void deleteByParams(@Param("dateId")String dateId,@Param("customerId")String customerId);
Integer deleteByParams(@Param("dateId")String dateId,@Param("customerId")String customerId);
}

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

@ -37,7 +37,7 @@ public interface FactRegUserAgencyMonthlyDao extends BaseDao<FactRegUserAgencyMo
void insertBatch(@Param("list") List<FactRegUserAgencyMonthlyDTO> list);
void deleteByParams(@Param("monthId") String monthId, @Param("customerId") String customerId);
Integer deleteByParams(@Param("monthId") String monthId, @Param("customerId") String customerId);
List<GridUserCountResultDTO> selectAgencyUserCount(@Param("customerId") String customerId, @Param("monthId") String monthId);

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

@ -37,7 +37,7 @@ public interface FactRegUserGridDailyDao extends BaseDao<FactRegUserGridDailyEnt
void insertBatch(@Param("list") List<FactRegUserGridDailyDTO> list);
void deleteByParams(@Param("dateId")String dateId,@Param("customerId")String customerId);
Integer deleteByParams(@Param("dateId")String dateId,@Param("customerId")String customerId);
/**
* @Description 根据机构级别查询用户数与党员数

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

@ -37,7 +37,7 @@ public interface FactRegUserGridMonthlyDao extends BaseDao<FactRegUserGridMonthl
void insertBatch(@Param("list") List<FactRegUserGridMonthlyDTO> list);
void deleteByParams(@Param("monthId")String monthId,@Param("customerId")String customerId);
Integer deleteByParams(@Param("monthId")String monthId,@Param("customerId")String customerId);
/**
* @Description 查询网格下的客户

69
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java

@ -5,11 +5,7 @@ import com.epmet.dto.extract.form.StaffPatrolStatsFormDTO;
import com.epmet.dto.extract.result.UserPartyResultDTO;
import com.epmet.dto.screen.ScreenProjectDataDTO;
import com.epmet.dto.stats.form.GmUploadEventFormDTO;
import com.epmet.dto.user.result.CommonTotalAndIncCountResultDTO;
import com.epmet.dto.user.result.StaffRoleInfoDTO;
import com.epmet.dto.user.result.CustomerStaffDTO;
import com.epmet.dto.user.result.StaffPatrolRecordResult;
import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO;
import com.epmet.dto.user.result.*;
import com.epmet.entity.evaluationindex.screen.ScreenPartyUserRankDataEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -36,6 +32,16 @@ public interface UserDao {
**/
CommonTotalAndIncCountResultDTO selectResiTotalAndIncrByLevel(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set<String> gridIds, @Param("targetDate") Date targetDate);
/**
* @Description 查询注册用户的总量与增量新方法
* @Param regOrPartiFlag
* @Param gridIds
* @Param targetDate
* @author zxc
* @date 2021/7/27 10:20 上午
*/
List<TotalAndIncrResultDTO> selectResiTotalAndIncrByGridIds(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set<String> gridIds, @Param("targetDate") Date targetDate,@Param("startDate")Date startDate);
/**
* @param
* @return
@ -45,6 +51,15 @@ public interface UserDao {
**/
CommonTotalAndIncCountResultDTO selectPartyTotalAndIncr(@Param("userIds") List<String> userIds, @Param("incrUserIds") List<String> incrUserIds, @Param("targetDate") Date targetDate);
/**
* @Description 查询党员的总量与增量新方法
* @Param targetDate
* @Param regOrPartiFlag
* @author zxc
* @date 2021/7/27 5:08 下午
*/
List<PartyTotalAndIncrResultDTO> selectPartyTotalAndIncrNew(@Param("targetDate") Date targetDate,@Param("regOrPartiFlag") String regOrPartiFlag,@Param("startDate") Date startDate);
/**
* @param
* @return
@ -54,6 +69,18 @@ public interface UserDao {
**/
CommonTotalAndIncCountResultDTO selectWarmTotalAndIncr(@Param("userIds") List<String> userIds, @Param("incrUserIds") List<String> incrUserIds, @Param("gridIds") Set<String> gridIds, @Param("targetDate") Date targetDate);
/**
* @Description 查询热心居民的总量与增量新方法
* @Param userIds 总注册用户
* @Param incrUserIds 增长注册用户
* @Param gridIds 网格IDS
* @Param targetDate dateId eg2021-07-27
* @author zxc
* @date 2021/7/27 1:31 下午
*/
List<WarmTotalAndIncrResultDTO> selectWarmTotalAndIncrByGrids(@Param("userIds") List<String> userIds, @Param("incrDailyUserIds") List<String> incrDailyUserIds, @Param("gridIds") Set<String> gridIds,
@Param("targetDate") Date targetDate,@Param("startDate") Date startDate,@Param("incrMonthlyUserIds") List<String> incrMonthlyUserIds);
/**
* @param
* @return
@ -72,6 +99,27 @@ public interface UserDao {
**/
List<String> selectTotalUserIds(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set<String> gridIds, @Param("targetDate") Date targetDate);
/**
* @Description 查询指定网格范围下单位时间内新增的注册用户Id新方法
* @Param regOrPartiFlag
* @Param gridIds
* @Param targetDate
* @author zxc
* @date 2021/7/27 10:41 上午
*/
List<IncrAndTotalUserIdsResultDTO> selectIncrUserIdsByGrids(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set<String> gridIds, @Param("targetDate") Date targetDate,
@Param("startDate")Date startDate);
/**
* @Description 查询指定网格范围下单位时间内全部的注册用户Id新方法
* @Param regOrPartiFlag
* @Param gridIds
* @Param targetDate
* @author zxc
* @date 2021/7/29 10:08 上午
*/
List<IncrAndTotalUserIdsResultDTO> selectTotalUserIdsByGrids(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set<String> gridIds, @Param("targetDate") Date targetDate);
/**
* @param
* @return
@ -90,6 +138,17 @@ public interface UserDao {
**/
Integer selectResiIncrWithinTimeRange(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set<String> gridIds, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
/**
* @Description 查询指定时间范围内注册/参与用户增量新方法
* @Param regOrPartiFlag
* @Param gridIds
* @Param startDate
* @Param endDate
* @author zxc
* @date 2021/7/28 11:00 上午
*/
List<IncrWithinTimeRangeResultDTO> selectIncrWithinTimeRangeByGrids(@Param("regOrPartiFlag") String regOrPartiFlag, @Param("gridIds") Set<String> gridIds, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
/**
* @param
* @return

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

@ -64,11 +64,7 @@ public class GroupDataServiceImpl implements GroupDataService {
formDTO.setCustomerId(customerId);
formDTO.setDateId(dateId);
List<GridGroupTotalResultDTO> gridGroupTotalResultDTOS = groupDataDao.selectGridGroupTotal(formDTO);
if (gridGroupTotalResultDTOS.size() == NumConstant.ZERO){
result.forEach(grid -> {
grid.setGroupTotal(NumConstant.ZERO);
});
}else {
if (!CollectionUtils.isEmpty(gridGroupTotalResultDTOS)){
result.forEach(grid -> {
gridGroupTotalResultDTOS.forEach(groupTotal -> {
if (grid.getGridId().equals(groupTotal.getGridId())) {

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

@ -32,10 +32,12 @@ import com.epmet.dto.stats.FactGroupGridDailyDTO;
import com.epmet.entity.stats.FactGroupGridDailyEntity;
import com.epmet.service.StatsGroupService;
import com.epmet.service.stats.FactGroupGridDailyService;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.Arrays;
import java.util.List;
@ -114,12 +116,18 @@ public class FactGroupGridDailyServiceImpl extends BaseServiceImpl<FactGroupGrid
@Override
@Transactional(rollbackFor = Exception.class)
public void statisticsGroupGridDaily(List<GroupGridDailyResultDTO> formDto,String customerId) {
if (formDto.size() == NumConstant.ZERO){
if (CollectionUtils.isEmpty(formDto)){
return;
}
String dateId = formDto.get(NumConstant.ZERO).getDateId();
baseDao.deleteInsertDateId(dateId,customerId);
baseDao.insertGroupGridDaily(formDto);
Integer delNum;
do {
delNum = baseDao.deleteInsertDateId(dateId,customerId);
}while (delNum > NumConstant.ZERO && delNum == NumConstant.ONE_THOUSAND);
List<List<GroupGridDailyResultDTO>> partition = ListUtils.partition(formDto, NumConstant.ONE_HUNDRED);
partition.forEach(p -> {
baseDao.insertGroupGridDaily(p);
});
}
}

99
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/user/impl/UserStatisticalServiceImpl.java

@ -3,8 +3,10 @@ package com.epmet.service.stats.user.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.dao.stats.user.*;
import com.epmet.dto.stats.user.*;
import com.epmet.dto.stats.user.result.UserStatisticalData;
import com.epmet.service.stats.user.UserStatisticalService;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -12,6 +14,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* @Description
* @ClassName UserStatisticalServiceImpl
@ -59,58 +63,91 @@ public class UserStatisticalServiceImpl implements UserStatisticalService {
}
if(null != data.getPartiAgencyDailyList() && data.getPartiAgencyDailyList().size() > NumConstant.ZERO){
participationUserAgencyDailyDao.deleteByParams(data.getDateId(),data.getCustomerId());
participationUserAgencyDailyDao.insertBatch(data.getPartiAgencyDailyList());
Integer delNum;
do {
delNum = participationUserAgencyDailyDao.deleteByParams(data.getDateId(),data.getCustomerId());
}while (delNum > NumConstant.ZERO && delNum == NumConstant.ONE_THOUSAND);
List<List<FactParticipationUserAgencyDailyDTO>> partition = ListUtils.partition(data.getPartiAgencyDailyList(), NumConstant.ONE_HUNDRED);
partition.forEach(p -> {
participationUserAgencyDailyDao.insertBatch(p);
});
}
if(null != data.getPartiAgencyMonthlyList() && data.getPartiAgencyMonthlyList().size() > NumConstant.ZERO){
participationUserAgencyMonthlyDao.deleteByParams(data.getMonthId(),data.getCustomerId());
participationUserAgencyMonthlyDao.insertBatch(data.getPartiAgencyMonthlyList());
Integer delNum;
do {
delNum = participationUserAgencyMonthlyDao.deleteByParams(data.getMonthId(),data.getCustomerId());
}while (delNum > NumConstant.ZERO && delNum == NumConstant.ONE_THOUSAND);
List<List<FactParticipationUserAgencyMonthlyDTO>> partition = ListUtils.partition(data.getPartiAgencyMonthlyList(), NumConstant.ONE_HUNDRED);
partition.forEach(p -> {
participationUserAgencyMonthlyDao.insertBatch(p);
});
}
if(null != data.getPartiGridMonthlyList() && data.getPartiGridMonthlyList().size() > NumConstant.ZERO){
participationUserGridMonthlyDao.deleteByParams(data.getMonthId(),data.getCustomerId());
participationUserGridMonthlyDao.insertBatch(data.getPartiGridMonthlyList());
Integer delNum;
do {
delNum = participationUserGridMonthlyDao.deleteByParams(data.getMonthId(),data.getCustomerId());
}while (delNum > NumConstant.ZERO && delNum == NumConstant.ONE_THOUSAND);
List<List<FactParticipationUserGridMonthlyDTO>> partition = ListUtils.partition(data.getPartiGridMonthlyList(), NumConstant.ONE_HUNDRED);
partition.forEach(p -> {
participationUserGridMonthlyDao.insertBatch(p);
});
}
if(null != data.getPartiGridDailyList() && data.getPartiGridDailyList().size() > NumConstant.ZERO){
participationUserGridDailyDao.deleteByParams(data.getDateId(),data.getCustomerId());
participationUserGridDailyDao.insertBatch(data.getPartiGridDailyList());
Integer delNum;
do {
delNum = participationUserGridDailyDao.deleteByParams(data.getDateId(),data.getCustomerId());
}while (delNum > NumConstant.ZERO && delNum == NumConstant.ONE_THOUSAND);
List<List<FactParticipationUserGridDailyDTO>> partition = ListUtils.partition(data.getPartiGridDailyList(), NumConstant.ONE_HUNDRED);
partition.forEach(p -> {
participationUserGridDailyDao.insertBatch(p);
});
}
if(null != data.getRegAgencyDailyList() && data.getRegAgencyDailyList().size() > NumConstant.ZERO){
regUserAgencyDailyDao.deleteByParams(data.getDateId(),data.getCustomerId());
regUserAgencyDailyDao.insertBatch(data.getRegAgencyDailyList());
Integer delNum;
do {
delNum = regUserAgencyDailyDao.deleteByParams(data.getDateId(),data.getCustomerId());
}while (delNum > NumConstant.ZERO && delNum == NumConstant.ONE_THOUSAND);
List<List<FactRegUserAgencyDailyDTO>> partition = ListUtils.partition(data.getRegAgencyDailyList(), NumConstant.ONE_HUNDRED);
partition.forEach(p -> {
regUserAgencyDailyDao.insertBatch(p);
});
}
if(null != data.getRegAgencyMonthlyList() && data.getRegAgencyMonthlyList().size() > NumConstant.ZERO){
regUserAgencyMonthlyDao.deleteByParams(data.getMonthId(),data.getCustomerId());
regUserAgencyMonthlyDao.insertBatch(data.getRegAgencyMonthlyList());
Integer delNum;
do {
delNum = regUserAgencyMonthlyDao.deleteByParams(data.getMonthId(),data.getCustomerId());
}while (delNum > NumConstant.ZERO && delNum == NumConstant.ONE_THOUSAND);
List<List<FactRegUserAgencyMonthlyDTO>> partition = ListUtils.partition(data.getRegAgencyMonthlyList(), NumConstant.ONE_HUNDRED);
partition.forEach(p -> {
regUserAgencyMonthlyDao.insertBatch(p);
});
}
if(null != data.getRegGridDailyList() && data.getRegGridDailyList().size() > NumConstant.ZERO){
regUserGridDailyDao.deleteByParams(data.getDateId(),data.getCustomerId());
regUserGridDailyDao.insertBatch(data.getRegGridDailyList());
Integer delNum;
do {
delNum = regUserGridDailyDao.deleteByParams(data.getDateId(),data.getCustomerId());
}while (delNum > NumConstant.ZERO && delNum == NumConstant.ONE_THOUSAND);
List<List<FactRegUserGridDailyDTO>> partition = ListUtils.partition(data.getRegGridDailyList(), NumConstant.ONE_HUNDRED);
partition.forEach(p -> {
regUserGridDailyDao.insertBatch(p);
});
}
if(null != data.getRegGridMonthlyList() && data.getRegGridMonthlyList().size() > NumConstant.ZERO){
regUserGridMonthlyDao.deleteByParams(data.getMonthId(),data.getCustomerId());
regUserGridMonthlyDao.insertBatch(data.getRegGridMonthlyList());
Integer delNum;
do {
delNum = regUserGridMonthlyDao.deleteByParams(data.getMonthId(),data.getCustomerId());
}while (delNum > NumConstant.ZERO && delNum == NumConstant.ONE_THOUSAND);
List<List<FactRegUserGridMonthlyDTO>> partition = ListUtils.partition(data.getRegGridMonthlyList(), NumConstant.ONE_HUNDRED);
partition.forEach(p -> {
regUserGridMonthlyDao.insertBatch(p);
});
}
}

250
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java

@ -17,11 +17,7 @@ import com.epmet.dto.screen.ScreenProjectDataDTO;
import com.epmet.dto.stats.form.GmUploadEventFormDTO;
import com.epmet.dto.stats.user.*;
import com.epmet.dto.stats.user.result.UserStatisticalData;
import com.epmet.dto.user.result.CommonTotalAndIncCountResultDTO;
import com.epmet.dto.user.result.StaffRoleInfoDTO;
import com.epmet.dto.user.result.CustomerStaffDTO;
import com.epmet.dto.user.result.StaffPatrolRecordResult;
import com.epmet.dto.user.result.StatsStaffPatrolRecordDailyDTO;
import com.epmet.dto.user.result.*;
import com.epmet.entity.evaluationindex.screen.ScreenPartyUserRankDataEntity;
import com.epmet.service.user.UserService;
import com.epmet.util.DimIdGenerator;
@ -120,14 +116,16 @@ public class UserServiceImpl implements UserService {
if(null != agencyMap && agencyMap.size() > NumConstant.ZERO){
agencyMap.forEach((agencyId,v) -> {
if(null != v && v.size() > NumConstant.ZERO){
queryUserData(ModuleConstant.DIM_BELONGING_GRID,
/*queryUserData(ModuleConstant.DIM_BELONGING_GRID,
agencyId,
// v.get(NumConstant.ZERO).getPid(),
v.get(NumConstant.ZERO).getCustomerId(),
new HashSet<>(v.get(NumConstant.ZERO).getGridIds()),
targetDate,
dataPacket,
timeDimension);
timeDimension);*/
traverseGridUserDispose(agencyId,v.get(NumConstant.ZERO).getCustomerId(),new HashSet<>(v.get(NumConstant.ZERO).getGridIds())
,targetDate,dataPacket,timeDimension);
}
});
}
@ -709,6 +707,244 @@ public class UserServiceImpl implements UserService {
}
/**
* @Description
* @Param agencyId 组织ID
* @Param customerId 客户ID
* @Param gridIds 网格IDS
* @Param targetDate dateId 日期 eg2021-07-27
* @Param dataPacket 数据包
* @Param timeDimension 日期维度
* @author zxc
* @date 2021/7/27 9:53 上午
*/
void traverseGridUserDispose(String agencyId,String customerId, Set<String> gridIds, Date targetDate, UserStatisticalData dataPacket, DimIdGenerator.DimIdBean timeDimension){
if (CollectionUtils.isEmpty(gridIds)){
return;
}
dataPacket.setCustomerId(customerId);
//计算百分比使用,保留小数点后两位
NumberFormat numberFormat = NumberFormat.getInstance();
numberFormat.setMaximumFractionDigits(NumConstant.SIX);
Calendar calendar = Calendar.getInstance();
//求出这个月的第一天
calendar.set(Calendar.DAY_OF_MONTH, NumConstant.ONE);
calendar.set(Calendar.HOUR_OF_DAY, NumConstant.ZERO);
calendar.set(Calendar.MINUTE, NumConstant.ZERO);
calendar.set(Calendar.SECOND, NumConstant.ZERO);
//1.计算机关下注册用户一个时间单位内的累计与 [月增长,日增长]
List<TotalAndIncrResultDTO> regData = userDao.selectResiTotalAndIncrByGridIds(ModuleConstant.REG_OR_PARTI_FLAG_REG, gridIds, targetDate,calendar.getTime());
//2.查询注册用户的Id列表
// 增长
List<IncrAndTotalUserIdsResultDTO> incrRegUsers = userDao.selectIncrUserIdsByGrids(ModuleConstant.REG_OR_PARTI_FLAG_REG, gridIds, targetDate,calendar.getTime());
List<String> incrDailyUserIds = new ArrayList<>();
List<String> incrMonthlyUserIds = new ArrayList<>();
if (!CollectionUtils.isEmpty(incrRegUsers)){
// 月增长 和 日增长 分开
Map<String, List<IncrAndTotalUserIdsResultDTO>> groupByType = incrRegUsers.stream().collect(Collectors.groupingBy(IncrAndTotalUserIdsResultDTO::getType));
if (!CollectionUtils.isEmpty(groupByType.get(ModuleConstant.DAILY))){
groupByType.get(ModuleConstant.DAILY).forEach(d -> {
if (!CollectionUtils.isEmpty(d.getUserIds())){
// 日增长
incrDailyUserIds.addAll(d.getUserIds());
}
});
}
if (!CollectionUtils.isEmpty(groupByType.get(ModuleConstant.MONTHLY))){
groupByType.get(ModuleConstant.MONTHLY).forEach(m -> {
if (!CollectionUtils.isEmpty(m.getUserIds())){
// 月增长
incrMonthlyUserIds.addAll(m.getUserIds());
}
});
}
}
// 全部
List<IncrAndTotalUserIdsResultDTO> totalRegUsers = userDao.selectTotalUserIdsByGrids(ModuleConstant.REG_OR_PARTI_FLAG_REG, gridIds, targetDate);
List<String> totalUserIds = new ArrayList<>();
if (!CollectionUtils.isEmpty(totalRegUsers)){
totalRegUsers.forEach(t -> {
if (!CollectionUtils.isEmpty(t.getUserIds())){
totalUserIds.addAll(t.getUserIds());
}
});
}
//3.查询机关下一个时间单位内热心居民的累计与增量(注册用户)
List<WarmTotalAndIncrResultDTO> warmRegData = userDao.selectWarmTotalAndIncrByGrids(totalUserIds, incrDailyUserIds, gridIds, targetDate,calendar.getTime(),incrMonthlyUserIds);
//4.查询机关下一个时间单位内党员的累计与增量(注册用户)
List<PartyTotalAndIncrResultDTO> partyRegData = userDao.selectPartyTotalAndIncrNew(targetDate, ModuleConstant.REG_OR_PARTI_FLAG_REG,calendar.getTime());
//参与用户
//1.计算机关下参与用户一个时间单位内的累计与 [月增长,日增长]
List<TotalAndIncrResultDTO> partiData = userDao.selectResiTotalAndIncrByGridIds(ModuleConstant.REG_OR_PARTI_FLAG_PARTI, gridIds, targetDate,calendar.getTime());
//2.查询参与用户的Id列表[增长]
List<IncrAndTotalUserIdsResultDTO> incrPartiUsers = userDao.selectIncrUserIdsByGrids(ModuleConstant.REG_OR_PARTI_FLAG_PARTI, gridIds, targetDate, calendar.getTime());
List<String> incrDailyPartiUserIds = new ArrayList<>();
List<String> incrMonthlyPartiUserIds = new ArrayList<>();
if (!CollectionUtils.isEmpty(incrPartiUsers)){
// 月增长 和 天增长 分开
Map<String, List<IncrAndTotalUserIdsResultDTO>> groupByType = incrRegUsers.stream().collect(Collectors.groupingBy(IncrAndTotalUserIdsResultDTO::getType));
if (!CollectionUtils.isEmpty(groupByType.get(ModuleConstant.DAILY))){
groupByType.get(ModuleConstant.DAILY).forEach(d -> {
if (!CollectionUtils.isEmpty(d.getUserIds())){
// 日增长
incrDailyPartiUserIds.addAll(d.getUserIds());
}
});
}
if (!CollectionUtils.isEmpty(groupByType.get(ModuleConstant.MONTHLY))){
groupByType.get(ModuleConstant.MONTHLY).forEach(m -> {
if (!CollectionUtils.isEmpty(m.getUserIds())){
// 月增长
incrMonthlyPartiUserIds.addAll(m.getUserIds());
}
});
}
}
// 查询参与用户的Id列表[全部]
List<IncrAndTotalUserIdsResultDTO> totalPartiUsers = userDao.selectTotalUserIdsByGrids(ModuleConstant.REG_OR_PARTI_FLAG_PARTI, gridIds, targetDate);
List<String> totalPartiUserIds = new ArrayList<>();
if (!CollectionUtils.isEmpty(totalPartiUsers)){
totalPartiUsers.forEach(t -> {
if (!CollectionUtils.isEmpty(t.getUserIds())){
totalPartiUserIds.addAll(t.getUserIds());
}
});
}
//3.查询机关下一个时间单位内热心居民的累计与增量(参与用户)
List<WarmTotalAndIncrResultDTO> warmPartiData = userDao.selectWarmTotalAndIncrByGrids(totalPartiUserIds, incrDailyPartiUserIds, gridIds, targetDate,calendar.getTime(),incrMonthlyPartiUserIds);
//4.查询机关下一个时间单位内党员的累计与增量(参与用户)
List<PartyTotalAndIncrResultDTO> partyPartiData = userDao.selectPartyTotalAndIncrNew(targetDate, ModuleConstant.REG_OR_PARTI_FLAG_PARTI,calendar.getTime());
/** ==================== *开始组装数据* ==================== **/
gridIds.forEach(gridId -> {
//注册用户网格级别
FactRegUserGridDailyDTO regGridD = new FactRegUserGridDailyDTO();
regGridD.setCustomerId(customerId);
regGridD.setGridId(gridId);
regGridD.setAgencyId(agencyId);
regGridD.setDateId(timeDimension.getDateId());
regGridD.setWeekId(timeDimension.getWeekId());
regGridD.setYearId(timeDimension.getYearId());
regGridD.setCreatedBy(ModuleConstant.CREATED_BY_STATISTICAL_ROBOT);
regGridD.setResiProportion(new BigDecimal(NumConstant.ONE));
//参与用户网格级别
FactParticipationUserGridDailyDTO partiGridD = new FactParticipationUserGridDailyDTO();
partiGridD.setCustomerId(customerId);
partiGridD.setGridId(gridId);
partiGridD.setAgencyId(agencyId);
partiGridD.setDateId(timeDimension.getDateId());
partiGridD.setWeekId(timeDimension.getWeekId());
partiGridD.setYearId(timeDimension.getYearId());
partiGridD.setCreatedBy(ModuleConstant.CREATED_BY_STATISTICAL_ROBOT);
partiGridD.setResiProportion(new BigDecimal(NumConstant.ONE));
FactRegUserGridMonthlyDTO regGridM = new FactRegUserGridMonthlyDTO();
regGridM.setCustomerId(customerId);
regGridM.setGridId(gridId);
regGridM.setAgencyId(agencyId);
regGridM.setMonthId(timeDimension.getMonthId());
regGridM.setQuarterId(timeDimension.getQuarterId());
regGridM.setYearId(timeDimension.getYearId());
regGridM.setPartymemberProportion(regGridD.getPartymemberProportion());
regGridM.setWarmHeartedProportion(regGridD.getWarmHeartedProportion());
regGridM.setCreatedBy(ModuleConstant.CREATED_BY_STATISTICAL_ROBOT);
regGridM.setResiProportion(new BigDecimal(NumConstant.ONE));
FactParticipationUserGridMonthlyDTO partiGridM = new FactParticipationUserGridMonthlyDTO();
partiGridM.setCustomerId(customerId);
partiGridM.setGridId(gridId);
partiGridM.setAgencyId(agencyId);
partiGridM.setMonthId(timeDimension.getMonthId());
partiGridM.setQuarterId(timeDimension.getQuarterId());
partiGridM.setYearId(timeDimension.getYearId());
partiGridM.setCreatedBy(ModuleConstant.CREATED_BY_STATISTICAL_ROBOT);
partiGridM.setResiProportion(new BigDecimal(NumConstant.ONE));
if (!CollectionUtils.isEmpty(regData)){
for (TotalAndIncrResultDTO r : regData) {
if (gridId.equals(r.getGridId())){
regGridD.setResiTotal(r.getTotal());
regGridD.setRegTotal(r.getTotal());
regGridD.setRegIncr(r.getDailyIncr());
regGridM.setRegTotal(r.getTotal());
regGridM.setResiTotal(r.getTotal());
regGridM.setRegIncr(r.getMonthlyIncr());
break;
}
}
}
if (!CollectionUtils.isEmpty(warmRegData)){
for (WarmTotalAndIncrResultDTO w : warmRegData) {
if (gridId.equals(w.getGridId())){
regGridD.setWarmHeartedTotal(w.getTotal());
regGridD.setWarmIncr(w.getDailyIncr());
regGridM.setWarmHeartedTotal(w.getTotal());
regGridM.setWarmIncr(w.getMonthlyIncr());
break;
}
}
}
if (!CollectionUtils.isEmpty(partiData)){
for (TotalAndIncrResultDTO p : partiData) {
if (gridId.equals(p.getGridId())){
partiGridD.setResiTotal(p.getTotal());
partiGridD.setRegTotal(p.getTotal());
partiGridD.setRegIncr(p.getDailyIncr());
partiGridM.setRegTotal(p.getTotal());
partiGridM.setResiTotal(p.getTotal());
partiGridM.setRegIncr(p.getMonthlyIncr());
break;
}
}
}
if (!CollectionUtils.isEmpty(partyRegData)){
for (PartyTotalAndIncrResultDTO p : partyRegData) {
if (gridId.equals(p.getGridId())){
regGridD.setPartymemberTotal(p.getTotal());
regGridD.setPartymemberIncr(p.getDailyIncr());
regGridM.setPartymemberTotal(p.getTotal());
regGridM.setPartymemberIncr(p.getMonthlyIncr());
regGridM.setPartymemberTotal(p.getTotal());
regGridM.setPartymemberIncr(p.getMonthlyIncr());
break;
}
}
}
if (!CollectionUtils.isEmpty(warmPartiData)){
for (WarmTotalAndIncrResultDTO w : warmPartiData) {
if (gridId.equals(w.getGridId())){
partiGridD.setWarmHeartedTotal(w.getTotal());
partiGridD.setWarmIncr(w.getDailyIncr());
partiGridM.setWarmHeartedTotal(w.getTotal());
partiGridM.setWarmIncr(w.getMonthlyIncr());
break;
}
}
}
if (!CollectionUtils.isEmpty(partyPartiData)){
for (PartyTotalAndIncrResultDTO p : partyPartiData) {
if (gridId.equals(p.getGridId())){
partiGridD.setPartymemberTotal(p.getTotal());
partiGridD.setPartymemberIncr(p.getDailyIncr());
partiGridM.setPartymemberTotal(p.getTotal());
partiGridM.setPartymemberIncr(p.getMonthlyIncr());
break;
}
}
}
regGridD.setPartymemberProportion(regGridD.getRegTotal() == NumConstant.ZERO ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float)regGridD.getPartymemberTotal()/(float)regGridD.getRegTotal())));
regGridD.setWarmHeartedProportion(regGridD.getRegTotal() == NumConstant.ZERO ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float)regGridD.getWarmHeartedTotal()/(float)regGridD.getRegTotal())));
partiGridD.setPartymemberProportion(partiGridD.getPartymemberTotal() == NumConstant.ZERO ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float)partiGridD.getPartymemberTotal()/(float)partiGridD.getRegTotal() )));
partiGridD.setWarmHeartedProportion(partiGridD.getPartymemberTotal() == NumConstant.ZERO ? BigDecimal.ZERO : new BigDecimal(numberFormat.format((float)partiGridD.getWarmHeartedTotal()/(float)partiGridD.getRegTotal() )));
regGridM.setPartymemberProportion(regGridD.getPartymemberProportion());
regGridM.setWarmHeartedProportion(regGridD.getWarmHeartedProportion());
partiGridM.setPartymemberProportion(partiGridD.getPartymemberProportion());
partiGridM.setWarmHeartedProportion(partiGridD.getWarmHeartedProportion());
dataPacket.getRegGridDailyList().add(regGridD);
dataPacket.getPartiGridDailyList().add(partiGridD);
dataPacket.getRegGridMonthlyList().add(regGridM);
dataPacket.getPartiGridMonthlyList().add(partiGridM);
});
}
/**
* @return java.util.List<java.lang.String>

4
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/util/ModuleConstant.java

@ -43,4 +43,8 @@ public interface ModuleConstant {
String TOPIC_STATUS_SHIFT_ISSUE = "shift_issue";
String NEED_UPDATE_STATUS_TOPIC = "needUpdateStatusTopic";
String MONTHLY = "monthly";
String DAILY = "daily";
}

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

@ -74,6 +74,7 @@
WHERE
date_id = #{dateId}
AND customer_id = #{customerId}
limit 1000
</delete>
<!-- 根据机关级别查询小组数据 -->

1
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactParticipationUserAgencyDailyDao.xml

@ -100,6 +100,7 @@
<if test='null != customerId and "" != customerId'>
AND CUSTOMER_ID = #{customerId}
</if>
LIMIT 1000
</delete>
<!-- 查询机关下用户信息 -->

1
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactParticipationUserAgencyMonthlyDao.xml

@ -100,6 +100,7 @@
<if test='null != customerId and "" != customerId'>
AND CUSTOMER_ID = #{customerId}
</if>
LIMIT 1000
</delete>
</mapper>

1
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactParticipationUserGridDailyDao.xml

@ -105,6 +105,7 @@
<if test='null != customerId and "" != customerId'>
AND CUSTOMER_ID = #{customerId}
</if>
LIMIT 1000
</delete>
<!-- 查询网格下用户信息 -->

1
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactParticipationUserGridMonthlyDao.xml

@ -104,6 +104,7 @@
<if test='null != customerId and "" != customerId'>
AND CUSTOMER_ID = #{customerId}
</if>
LIMIT 1000
</delete>
</mapper>

1
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserAgencyDailyDao.xml

@ -100,6 +100,7 @@
<if test='null != customerId and "" != customerId'>
AND CUSTOMER_ID = #{customerId}
</if>
LIMIT 1000
</delete>

1
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserAgencyMonthlyDao.xml

@ -100,6 +100,7 @@
<if test='null != customerId and "" != customerId'>
AND CUSTOMER_ID = #{customerId}
</if>
LIMIT 1000
</delete>
<select id="selectOrgUserCountByCustomer" resultType="com.epmet.dto.stats.user.FactRegUserAgencyMonthlyDTO">
SELECT

1
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridDailyDao.xml

@ -104,6 +104,7 @@
<if test='null != customerId and "" != customerId'>
AND CUSTOMER_ID = #{customerId}
</if>
LIMIT 1000
</delete>

1
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridMonthlyDao.xml

@ -104,6 +104,7 @@
<if test='null != customerId and "" != customerId'>
AND CUSTOMER_ID = #{customerId}
</if>
LIMIT 1000
</delete>
<!-- 查询网格下的客户 -->

286
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml

@ -627,6 +627,292 @@
AND DATE_FORMAT( r.ACTRUAL_END_TIME, '%Y%m%d' ) = #{dateId}
</select>
<!-- 查询注册用户的总量与增量【新方法】 -->
<select id="selectResiTotalAndIncrByGridIds" resultType="com.epmet.dto.user.result.TotalAndIncrResultDTO">
SELECT
IFNULL(count( DISTINCT rr.USER_ID ),0) AS total,
rr.GRID_ID,
IFNULL(t.userCount,0) AS monthlyIncr,
IFNULL(d.userCount,0) AS dailyIncr
FROM REGISTER_RELATION rr
LEFT JOIN (
SELECT
IFNULL(count(DISTINCT USER_ID),0) AS userCount,
GRID_ID
FROM
REGISTER_RELATION
WHERE
DEL_FLAG = '0'
<if test='regOrPartiFlag == "parti" '>
AND ((FIRST_REGISTER = '1' AND REGISTER = '1' AND PARTICIPATION = '1') OR (FIRST_REGISTER = '0' AND REGISTER = '0' AND PARTICIPATION = '1'))
</if>
<if test='regOrPartiFlag == "reg" '>
AND FIRST_REGISTER = '1'
</if>
<foreach collection="gridIds" item="gridId" index="index" open="AND ( " separator=" OR " close=")">
GRID_ID = #{gridId}
</foreach>
AND DATE_FORMAT(CREATED_TIME,"%Y-%m-%d") BETWEEN DATE_FORMAT(#{startDate},"%Y-%m-%d") AND DATE_FORMAT(
IF(null != #{targetDate} OR '' !=#{targetDate},#{targetDate},DATE_SUB(CURDATE(), INTERVAL 1 DAY ))
,"%Y-%m-%d")
GROUP BY GRID_ID
) t ON ( t.grid_id = rr.GRID_ID )
LEFT JOIN (
SELECT
IFNULL(count(DISTINCT USER_ID),0) AS userCount,
GRID_ID
FROM REGISTER_RELATION
WHERE DEL_FLAG = '0'
<if test='regOrPartiFlag == "parti" '>
AND ((FIRST_REGISTER = '1' AND REGISTER = '1' AND PARTICIPATION = '1') OR (FIRST_REGISTER = '0' AND REGISTER = '0' AND PARTICIPATION = '1'))
</if>
<if test='regOrPartiFlag == "reg" '>
AND FIRST_REGISTER = '1'
</if>
<foreach collection="gridIds" item="gridId" index="index" open="AND ( " separator=" OR " close=")">
GRID_ID = #{gridId}
</foreach>
AND DATE_FORMAT(CREATED_TIME,"%Y-%m-%d") = DATE_FORMAT(IF(null != #{targetDate} OR '' !=#{targetDate},#{targetDate},DATE_SUB(CURDATE(), INTERVAL 1 DAY )),"%Y-%m-%d")
GROUP BY GRID_ID
) d ON ( d.grid_id = rr.GRID_ID )
WHERE
rr.DEL_FLAG = '0'
<if test='regOrPartiFlag == "parti" '>
AND ((rr.FIRST_REGISTER = '1' AND rr.REGISTER = '1' AND rr.PARTICIPATION = '1') OR (rr.FIRST_REGISTER = '0' AND rr.REGISTER = '0' AND rr.PARTICIPATION = '1'))
</if>
<if test='regOrPartiFlag == "reg" '>
AND rr.FIRST_REGISTER = '1'
</if>
<foreach collection="gridIds" item="gridId" index="index" open="AND ( " separator=" OR " close=")">
rr.GRID_ID = #{gridId}
</foreach>
AND DATE_FORMAT(rr.CREATED_TIME,"%Y-%m-%d") <![CDATA[<=]]> IF(null != #{targetDate} OR '' !=#{targetDate},DATE_FORMAT(#{targetDate},"%Y-%m-%d"),DATE_FORMAT( DATE_SUB( CURDATE( ), INTERVAL 1 DAY ),"%Y-%m-%d"))
GROUP BY GRID_ID
</select>
<resultMap id="selectIncrUserIdsByGridsMap" type="com.epmet.dto.user.result.IncrAndTotalUserIdsResultDTO">
<result property="gridId" column="gridId"/>
<result property="type" column="type"/>
<collection property="userIds" ofType="java.lang.String">
<result column="userId"/>
</collection>
</resultMap>
<!-- 查询指定网格范围下单位时间内新增的注册用户Id【新方法】 -->
<select id="selectIncrUserIdsByGrids" resultMap="selectIncrUserIdsByGridsMap">
(SELECT
DISTINCT(rr.USER_ID) AS userId,
r2.GRID_ID AS gridId,
'monthly' AS type
FROM REGISTER_RELATION rr
LEFT JOIN register_relation r2 ON (r2.GRID_ID = rr.GRID_ID AND r2.DEL_FLAG = 0)
WHERE
rr.DEL_FLAG = '0'
<if test='regOrPartiFlag == "parti" '>
AND ((rr.FIRST_REGISTER = '1' AND rr.REGISTER = '1' AND rr.PARTICIPATION = '1') OR (rr.FIRST_REGISTER = '0' AND rr.REGISTER = '0' AND rr.PARTICIPATION = '1'))
</if>
<if test='regOrPartiFlag == "reg" '>
AND rr.FIRST_REGISTER = '1'
</if>
<foreach collection="gridIds" item="gridId" index="index" open="AND ( " separator=" OR " close=")">
rr.GRID_ID = #{gridId}
</foreach>
AND DATE_FORMAT(rr.CREATED_TIME,"%Y-%m-%d") BETWEEN DATE_FORMAT(#{startDate},"%Y-%m-%d") AND
DATE_FORMAT(IF(null != #{targetDate} OR '' !=#{targetDate},#{targetDate},DATE_SUB(CURDATE(),INTERVAL 1 DAY)),"%Y-%m-%d")
) UNION ALL
(SELECT
DISTINCT(rr.USER_ID) AS userId,
r2.GRID_ID AS gridId,
'daily' AS type
FROM REGISTER_RELATION rr
LEFT JOIN register_relation r2 ON (r2.GRID_ID = rr.GRID_ID AND r2.DEL_FLAG = 0)
WHERE
rr.DEL_FLAG = '0'
<if test='regOrPartiFlag == "parti" '>
AND ((rr.FIRST_REGISTER = '1' AND rr.REGISTER = '1' AND rr.PARTICIPATION = '1') OR (rr.FIRST_REGISTER = '0' AND rr.REGISTER = '0' AND rr.PARTICIPATION = '1'))
</if>
<if test='regOrPartiFlag == "reg" '>
AND rr.FIRST_REGISTER = '1'
</if>
<foreach collection="gridIds" item="gridId" index="index" open="AND ( " separator=" OR " close=")">
rr.GRID_ID = #{gridId}
</foreach>
AND DATE_FORMAT(rr.CREATED_TIME,"%Y-%m-%d") = DATE_FORMAT(IF(null != #{targetDate} OR '' !=#{targetDate},#{targetDate},DATE_SUB(CURDATE(),INTERVAL 1 DAY)),"%Y-%m-%d")
)
</select>
<!-- 查询热心居民的总量与增量【新方法】 -->
<select id="selectWarmTotalAndIncrByGrids" resultType="com.epmet.dto.user.result.WarmTotalAndIncrResultDTO">
SELECT
IFNULL(COUNT(DISTINCT ur.USER_ID),0) AS total,
ur.GRID_ID,
IFNULL(t.userCount,0) AS monthlyIncr,
IFNULL(d.userCount,0) AS dailyIncr
FROM USER_ROLE ur
LEFT JOIN EPMET_ROLE erole ON ( ur.ROLE_ID = erole.ID AND erole.DEL_FLAG = '0' )
LEFT JOIN (
SELECT
COUNT( DISTINCT ur.USER_ID ) AS userCount,
ur.GRID_ID
FROM USER_ROLE ur
LEFT JOIN EPMET_ROLE erole ON (ur.ROLE_ID = erole.ID AND erole.DEL_FLAG = '0')
WHERE ur.DEL_FLAG = '0'
<if test="null != incrMonthlyUserIds and incrMonthlyUserIds.size() > 0 ">
<foreach collection="incrMonthlyUserIds" item="incrUserId" index="index" open="AND ( " separator=" OR " close=")">
ur.USER_ID = #{incrUserId}
</foreach>
</if>
<foreach collection="gridIds" item="gridId" index="index" open="AND ( " separator=" OR " close=")">
ur.GRID_ID = #{gridId}
</foreach>
AND DATE_FORMAT(ur.CREATED_TIME,"%Y-%m-%d") BETWEEN DATE_FORMAT(#{startDate},"%Y-%m-%d") AND
DATE_FORMAT(IF(null != #{targetDate} OR '' !=#{targetDate},#{targetDate},DATE_SUB(CURDATE(),INTERVAL 1 DAY)),"%Y-%m-%d")
AND erole.ROLE_NAME = '热心居民'
GROUP BY ur.GRID_ID
) t ON ( t.GRID_ID = ur.GRID_ID )
LEFT JOIN (
SELECT
COUNT( DISTINCT ur.USER_ID ) AS userCount,
ur.GRID_ID
FROM USER_ROLE ur
LEFT JOIN EPMET_ROLE erole ON (ur.ROLE_ID = erole.ID AND erole.DEL_FLAG = '0')
WHERE ur.DEL_FLAG = '0'
<if test="null != incrDailyUserIds and incrDailyUserIds.size() > 0 ">
<foreach collection="incrDailyUserIds" item="incrUserId" index="index" open="AND ( " separator=" OR " close=")">
ur.USER_ID = #{incrUserId}
</foreach>
</if>
<foreach collection="gridIds" item="gridId" index="index" open="AND ( " separator=" OR " close=")">
ur.GRID_ID = #{gridId}
</foreach>
AND DATE_FORMAT(ur.CREATED_TIME,"%Y-%m-%d") = DATE_FORMAT(IF(null != #{targetDate} OR '' !=#{targetDate},#{targetDate},DATE_SUB(CURDATE(),INTERVAL 1 DAY)),"%Y-%m-%d")
AND erole.ROLE_NAME = '热心居民'
GROUP BY ur.GRID_ID
) d ON ( d.GRID_ID = ur.GRID_ID )
WHERE ur.DEL_FLAG = '0'
<if test="userIds.size() > 0 and null != userIds ">
<foreach collection="userIds" item="incrUserId" index="index" open="AND ( " separator=" OR " close=")">
ur.USER_ID = #{incrUserId}
</foreach>
</if>
<foreach collection="gridIds" item="gridId" index="index" open="AND ( " separator=" OR " close=")">
ur.GRID_ID = #{gridId}
</foreach>
AND DATE_FORMAT(ur.CREATED_TIME,"%Y-%m-%d") <![CDATA[<=]]> IF(null != #{targetDate} OR '' !=#{targetDate},DATE_FORMAT(#{targetDate},"%Y-%m-%d"),DATE_FORMAT( DATE_SUB( CURDATE( ), INTERVAL 1 DAY ),"%Y-%m-%d"))
AND erole.ROLE_NAME = '热心居民'
GROUP BY ur.GRID_ID
</select>
<!-- 查询党员的总量与增量【新方法】 -->
<select id="selectPartyTotalAndIncrNew" resultType="com.epmet.dto.user.result.PartyTotalAndIncrResultDTO">
SELECT
IFNULL(count(DISTINCT urole.USER_ID),0) AS total,
rr.GRID_ID,
IFNULL(t.userCount,0) AS monthlyIncr,
IFNULL(d.userCount,0) AS dailyIncr
FROM USER_ROLE urole
LEFT JOIN EPMET_ROLE erole ON (urole.ROLE_ID = erole.ID AND erole.DEL_FLAG = '0')
LEFT JOIN register_relation rr ON (rr.USER_ID = urole.USER_ID)
LEFT JOIN (
SELECT
count(distinct urole.USER_ID) AS userCount,
rr.GRID_ID
FROM USER_ROLE urole
LEFT JOIN EPMET_ROLE erole ON (urole.ROLE_ID = erole.ID AND erole.DEL_FLAG = '0')
LEFT JOIN register_relation rr ON (rr.USER_ID = urole.USER_ID)
WHERE
urole.DEL_FLAG = '0'
AND erole.ROLE_NAME = '党员'
AND DATE_FORMAT(rr.CREATED_TIME,"%Y-%m-%d") BETWEEN DATE_FORMAT(#{startDate},"%Y-%m-%d") AND
DATE_FORMAT(IF(null != #{targetDate} OR '' !=#{targetDate},#{targetDate},DATE_SUB(CURDATE(),INTERVAL 1 DAY)),"%Y-%m-%d")
<if test='regOrPartiFlag == "parti" '>
AND ((rr.FIRST_REGISTER = '1' AND rr.REGISTER = '1' AND rr.PARTICIPATION = '1') OR (rr.FIRST_REGISTER = '0' AND rr.REGISTER = '0' AND rr.PARTICIPATION = '1'))
</if>
<if test='regOrPartiFlag == "reg" '>
AND rr.FIRST_REGISTER = '1'
</if>
GROUP BY rr.GRID_ID
) t ON (t.GRID_ID = rr.GRID_ID)
LEFT JOIN (
SELECT
count(distinct urole.USER_ID) AS userCount,
rr.GRID_ID
FROM USER_ROLE urole
LEFT JOIN EPMET_ROLE erole ON (urole.ROLE_ID = erole.ID AND erole.DEL_FLAG = '0')
LEFT JOIN register_relation rr ON (rr.USER_ID = urole.USER_ID)
WHERE
urole.DEL_FLAG = '0'
AND erole.ROLE_NAME = '党员'
AND DATE_FORMAT(rr.CREATED_TIME,"%Y-%m-%d") = DATE_FORMAT(IF(null != #{targetDate} OR '' !=#{targetDate},#{targetDate},DATE_SUB(CURDATE(),INTERVAL 1 DAY)),"%Y-%m-%d")
<if test='regOrPartiFlag == "parti" '>
AND ((rr.FIRST_REGISTER = '1' AND rr.REGISTER = '1' AND rr.PARTICIPATION = '1') OR (rr.FIRST_REGISTER = '0' AND rr.REGISTER = '0' AND rr.PARTICIPATION = '1'))
</if>
<if test='regOrPartiFlag == "reg" '>
AND rr.FIRST_REGISTER = '1'
</if>
GROUP BY rr.GRID_ID
) d ON (d.GRID_ID = rr.GRID_ID)
WHERE
urole.DEL_FLAG = '0'
AND DATE_FORMAT(rr.CREATED_TIME,"%Y-%m-%d") <![CDATA[<=]]> DATE_FORMAT( IF(null != #{targetDate} OR '' != #{targetDate},#{targetDate}, DATE_SUB(CURDATE(),INTERVAL 1 DAY)),'%Y-%m-%d')
<if test='regOrPartiFlag == "parti" '>
AND ((rr.FIRST_REGISTER = '1' AND rr.REGISTER = '1' AND rr.PARTICIPATION = '1') OR (rr.FIRST_REGISTER = '0' AND rr.REGISTER = '0' AND rr.PARTICIPATION = '1'))
</if>
<if test='regOrPartiFlag == "reg" '>
AND rr.FIRST_REGISTER = '1'
</if>
AND erole.ROLE_NAME = '党员'
GROUP BY rr.GRID_ID
</select>
<!-- 查询指定时间范围内注册/参与用户增量【新方法】 -->
<select id="selectIncrWithinTimeRangeByGrids" resultType="com.epmet.dto.user.result.IncrWithinTimeRangeResultDTO">
SELECT
IFNULL(COUNT( distinct USER_ID),0) AS userCount,
GRID_ID
FROM register_relation
WHERE
DEL_FLAG = '0'
<if test='regOrPartiFlag == "parti" '>
AND ((FIRST_REGISTER = '1' AND REGISTER = '1' AND PARTICIPATION = '1') OR (FIRST_REGISTER = '0' AND REGISTER = '0' AND PARTICIPATION = '1'))
</if>
<if test='regOrPartiFlag == "reg" '>
AND FIRST_REGISTER = '1'
</if>
<foreach collection="gridIds" item="gridId" index="index" open="AND ( " separator=" OR " close=")">
GRID_ID = #{gridId}
</foreach>
AND CREATED_TIME <![CDATA[>=]]> DATE_FORMAT(#{startDate},"%Y-%m-%d")
AND CREATED_TIME <![CDATA[<=]]> DATE_FORMAT(#{endDate},"%Y-%m-%d")
GROUP BY GRID_ID
</select>
<!-- 查询指定网格范围下单位时间内全部的注册用户Id【新方法】 -->
<resultMap id="selectTotalUserIdsByGridsMap" type="com.epmet.dto.user.result.IncrAndTotalUserIdsResultDTO">
<result property="gridId" column="gridId"/>
<collection property="userIds" ofType="java.lang.String">
<result column="userId"/>
</collection>
</resultMap>
<select id="selectTotalUserIdsByGrids" resultMap="selectTotalUserIdsByGridsMap">
SELECT
DISTINCT(rr.USER_ID) AS userId,
r2.GRID_ID AS gridId
FROM REGISTER_RELATION rr
LEFT JOIN register_relation r2 ON (r2.GRID_ID = rr.GRID_ID AND r2.DEL_FLAG = 0)
WHERE
rr.DEL_FLAG = '0'
<if test='regOrPartiFlag == "parti" '>
AND ((rr.FIRST_REGISTER = '1' AND rr.REGISTER = '1' AND rr.PARTICIPATION = '1') OR (rr.FIRST_REGISTER = '0' AND rr.REGISTER = '0' AND rr.PARTICIPATION = '1'))
</if>
<if test='regOrPartiFlag == "reg" '>
AND rr.FIRST_REGISTER = '1'
</if>
<foreach collection="gridIds" item="gridId" index="index" open="AND ( " separator=" OR " close=")">
rr.GRID_ID = #{gridId}
</foreach>
AND DATE_FORMAT(rr.CREATED_TIME,"%Y-%m-%d") <![CDATA[<=]]> IF(null != #{targetDate} OR '' !=#{targetDate},DATE_FORMAT(#{targetDate},"%Y-%m-%d"),DATE_FORMAT( DATE_SUB( CURDATE( ), INTERVAL 1 DAY ),"%Y-%m-%d"))
</select>
<delete id="delGmUploadEvent">
DELETE
FROM

Loading…
Cancel
Save