diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ScreenAgencyRegUserResultDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ScreenAgencyRegUserResultDTO.java new file mode 100644 index 00000000..29f5c886 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ScreenAgencyRegUserResultDTO.java @@ -0,0 +1,92 @@ +package com.elink.esua.epdc.dto.screen.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 组织注册用户数据 + * + * @author zhy + * @date 2021/6/28 9:28 + */ +@Data +public class ScreenAgencyRegUserResultDTO implements Serializable { + private static final long serialVersionUID = -4035893591086943602L; + + /** + * 组织id + */ + private String agencyId; + + /** + * 客户ID + */ + private String customerId; + + /** + * 日期ID + */ + private String dateId; + + /** + * 周ID + */ + private String weekId; + + /** + * 年ID + */ + private String yearId; + + /** + * 注册用户总数 + */ + private Integer regTotal; + + /** + * 居民总数【居民总数=注册用户数】 + */ + private Integer resiTotal; + + /** + * 热心居民总数 + */ + private Integer warmHeartedTotal; + + /** + * 党员总数 + */ + private Integer partymemberTotal; + + /** + * 本日注册居民日增量 + */ + private Integer regIncr; + + /** + * 本日热心居民日增量 + */ + private Integer warmIncr; + + /** + * 本日党员认证日增量 + */ + private Integer partymemberIncr; + + /** + * 居民总数占比【居民总数/居民总数】 + */ + private String resiProportion; + + /** + * 党员总数占比【党员总数/居民总数】 + */ + private String partymemberProportion; + + /** + * 热心居民占比【热心居民数/居民总数】 + */ + private String warmHeartedProportion; + +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ScreenGridRegUserResultDTO.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ScreenGridRegUserResultDTO.java new file mode 100644 index 00000000..93add9d9 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ScreenGridRegUserResultDTO.java @@ -0,0 +1,97 @@ +package com.elink.esua.epdc.dto.screen.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 网格注册用户数据 + * + * @author zhy + * @date 2021/6/28 9:28 + */ +@Data +public class ScreenGridRegUserResultDTO implements Serializable { + private static final long serialVersionUID = -4035893591086943602L; + + /** + * 组织id + */ + private String agencyId; + + /** + * 客户ID + */ + private String customerId; + + /** + * 网格ID + */ + private String gridId; + + /** + * 日期ID + */ + private String dateId; + + /** + * 周ID + */ + private String weekId; + + /** + * 年ID + */ + private String yearId; + + /** + * 注册用户总数 + */ + private Integer regTotal; + + /** + * 居民总数【居民总数=注册用户数】 + */ + private Integer resiTotal; + + /** + * 热心居民总数 + */ + private Integer warmHeartedTotal; + + /** + * 党员总数 + */ + private Integer partymemberTotal; + + /** + * 本日注册居民日增量 + */ + private Integer regIncr; + + /** + * 本日热心居民日增量 + */ + private Integer warmIncr; + + /** + * 本日党员认证日增量 + */ + private Integer partymemberIncr; + + /** + * 居民总数占比【居民总数/居民总数】 + */ + private String resiProportion; + + /** + * 党员总数占比【党员总数/居民总数】 + */ + private String partymemberProportion; + + /** + * 热心居民占比【热心居民数/居民总数】 + */ + private String warmHeartedProportion; + +} diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/dao/ScreenBaseReportDataDao.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/dao/ScreenBaseReportDataDao.java index 438a02ec..b5d3091c 100644 --- a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/dao/ScreenBaseReportDataDao.java +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/dao/ScreenBaseReportDataDao.java @@ -148,25 +148,36 @@ public interface ScreenBaseReportDataDao extends BaseDao selectAgencyIssueShiftProjectIncr(); - /** - * @Description 网格注册用户数据 - * @Author songyunpeng - * @Date 2021/6/25 - * @Param [customId] - * @return java.util.List - **/ - List selectGridRegUser(@Param("customId")String customId); - + * 05、网格注册用户数据 + * 居民总数 = 注册用户数 = 非党员用户 + 党员用户 + * 热心居民总数 = 注册用户数 - 党员总数 = 非党员用户(榆山统计方式) + * 本日注册居民/本日热心居民日增量 = 用户首次绑定网格的时间(榆山统计方式) + * 本日党员认证日增量 = 认证历史中认证类型为党员并且认证成功的时间(榆山统计方式) + * + * @param + * @return java.util.List + * @author zhy + * @date 2021/6/28 14:06 + */ + List gridRegUser(@Param("customId")String customId); + + List gridRegUserIncr(); /** - * @Description 组织注册用户数据 - * @Author songyunpeng - * @Date 2021/6/25 - * @Param [customId] - * @return java.util.List - **/ - List selectAgencyRegUser(@Param("customId")String customId); - + * 06、组织注册用户数据 + * 居民总数=注册用户数=非党员用户+党员用户 + * 热心居民总数=注册用户数-党员总数=非党员用户(榆山统计方式) + * 本日注册居民/本日热心居民日增量 = 用户首次绑定网格的时间(榆山统计方式) + * 本日党员认证日增量 = 认证历史中认证类型为党员并且认证成功的时间(榆山统计方式) + * + * @param + * @return java.util.List + * @author zhy + * @date 2021/6/28 14:07 + */ + List agencyRegUser(@Param("customId")String customId); + + List agencyRegUserIncr(); } diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/service/impl/ScreenBaseReportDataServiceImpl.java b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/service/impl/ScreenBaseReportDataServiceImpl.java index 09418031..1c148869 100644 --- a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/service/impl/ScreenBaseReportDataServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/service/impl/ScreenBaseReportDataServiceImpl.java @@ -15,6 +15,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Optional; /** * @Author:liuchuang @@ -162,8 +163,23 @@ public class ScreenBaseReportDataServiceImpl extends BaseServiceImpl gridUserResultDTOS = baseDao.selectGridRegUser(customerId); - String dataJson = ScreenDataUtils.getScreenDateJson(gridUserResultDTOS,true); + List data = baseDao.gridRegUser(customerId); + List dataIncr = baseDao.gridRegUserIncr(); + + data.forEach(item -> { + Optional incrOptional = dataIncr.stream().filter(incr -> incr.getGridId().equals(item.getGridId())).findFirst(); + // 有当日数据的 + if (incrOptional.isPresent()) { + item.setRegIncr(incrOptional.get().getRegIncr()); + item.setPartymemberIncr(incrOptional.get().getPartymemberIncr()); + item.setWarmIncr(incrOptional.get().getWarmIncr()); + } else { + item.setRegIncr(0); + item.setPartymemberIncr(0); + item.setWarmIncr(0); + } + }); + String dataJson = ScreenDataUtils.getScreenDateJson(data,true); // 数据上报 String body = epmetUtils.httpPost(EpmetConstant.EPMET_SCREEN_BASE_REPORT_GRID_REGISTER_USER, dataJson); log.info(body); @@ -171,8 +187,23 @@ public class ScreenBaseReportDataServiceImpl extends BaseServiceImpl communityUserResultDTOS = baseDao.selectAgencyRegUser(customerId); - String dataJson = ScreenDataUtils.getScreenDateJson(communityUserResultDTOS,true); + List data = baseDao.agencyRegUser(customerId); + List dataIncr = baseDao.agencyRegUserIncr(); + + data.forEach(item -> { + Optional incrOptional = dataIncr.stream().filter(incr -> incr.getAgencyId().equals(item.getAgencyId())).findFirst(); + // 有当日数据的 + if (incrOptional.isPresent()) { + item.setRegIncr(incrOptional.get().getRegIncr()); + item.setPartymemberIncr(incrOptional.get().getPartymemberIncr()); + item.setWarmIncr(incrOptional.get().getWarmIncr()); + } else { + item.setRegIncr(0); + item.setPartymemberIncr(0); + item.setWarmIncr(0); + } + }); + String dataJson = ScreenDataUtils.getScreenDateJson(data,true); // 数据上报 String body = epmetUtils.httpPost(EpmetConstant.EPMET_SCREEN_BASE_REPORT_AGENCY_REGISTER_USER, dataJson); log.info(body); diff --git a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/screen/ScreenBaseReportDataDao.xml b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/screen/ScreenBaseReportDataDao.xml index aafb5a30..0ae055e6 100644 --- a/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/screen/ScreenBaseReportDataDao.xml +++ b/esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/screen/ScreenBaseReportDataDao.xml @@ -668,85 +668,426 @@ and grid.id not in WHERE t.del_flag= '0') GROUP BY sd.id - + SELECT + '${customId}' as customerId, + DATE_FORMAT( + date_add(now(), INTERVAL - 1 DAY), + '%Y%m%d' + ) AS dateId, + CONCAT( + DATE_FORMAT( + STR_TO_DATE( + DATE_FORMAT( + date_add(now(), INTERVAL - 1 DAY), + '%Y-%m-%d' + ), + '%Y' + ), + '%Y' + ), + 'W', + WEEK ( + STR_TO_DATE( + DATE_FORMAT( + date_add(now(), INTERVAL - 1 DAY), + '%Y-%m-%d' + ), + '%Y-%m-%d' + ) + ) + ) weekId, + DATE_FORMAT( + STR_TO_DATE( + DATE_FORMAT( + date_add(now(), INTERVAL - 1 DAY), + '%Y-%m-%d' + ), + '%Y' + ), + '%Y' + ) AS yearId, + sd.id AS gridId, + sd.pid AS agencyId, + IFNULL(u.USER_TOTAL, 0) AS regTotal, + IFNULL(u.USER_TOTAL, 0) AS resiTotal, + IFNULL(u.RESIDENTS_TOTAL, 0) AS warmHeartedTotal, + IFNULL(u.PARTY_TOTAL, 0) AS partymemberTotal, + IFNULL( + u.USER_TOTAL / u.USER_TOTAL, + 0 + ) AS resiProportion, + ROUND( + IFNULL( + u.PARTY_TOTAL / u.USER_TOTAL, + 0 + ), + 6 + ) AS partymemberProportion, + ROUND( + IFNULL( + u.RESIDENTS_TOTAL / u.USER_TOTAL, + 0 + ), + 6 + ) AS warmHeartedProportion + FROM + esua_epdc_admin.sys_dept sd + LEFT JOIN esua_epdc_analysis.epdc_user_statistics u ON u.GRID_ID = sd.id + WHERE + sd.del_flag = '0' + AND sd.type_key = 'grid_party' + AND sd.id NOT IN ( + SELECT + t.dept_id + FROM + esua_epdc_admin.sys_dept_config t + WHERE + t.del_flag = '0' + ) + GROUP BY + sd.id - + SELECT + '${customId}' as customerId, + DATE_FORMAT( + date_add(now(), INTERVAL - 1 DAY), + '%Y%m%d' + ) AS dateId, + CONCAT( + DATE_FORMAT( + STR_TO_DATE( + DATE_FORMAT( + date_add(now(), INTERVAL - 1 DAY), + '%Y-%m-%d' + ), + '%Y' + ), + '%Y' + ), + 'W', + WEEK ( + STR_TO_DATE( + DATE_FORMAT( + date_add(now(), INTERVAL - 1 DAY), + '%Y-%m-%d' + ), + '%Y-%m-%d' + ) + ) + ) weekId, + DATE_FORMAT( + STR_TO_DATE( + DATE_FORMAT( + date_add(now(), INTERVAL - 1 DAY), + '%Y-%m-%d' + ), + '%Y' + ), + '%Y' + ) AS yearId, + t.gridId, + d.pid AS agencyId, + t.registerCount AS regIncr, + t.residentCount AS warmIncr, + t.partyCount AS partymemberIncr + FROM + ( + SELECT + newuu.DEPT_ID gridId, + COUNT(newuu.ID) AS registerCount, + COUNT(newuu.PARTY_FLAG = '1' OR NULL) AS partyCount, + COUNT( + ( + newuu.PARTY_FLAG = '0' + AND newuu.state != '0' + ) + OR NULL + ) AS residentCount, + COUNT( + ( + newuu.PARTY_FLAG = '0' + AND newuu.state = '0' + ) + OR NULL + ) AS unAuthorizedCount + FROM + ( + SELECT DISTINCT + uu.ID, + uu.PARTY_FLAG, + uu.state, + ifnull( + + IF ( + uu.DEPT_ID = 0, + NULL, + uu.DEPT_ID + ), + ( + SELECT + GRID_ID + FROM + esua_epdc_user.epdc_user_grid_relation + WHERE + DEL_FLAG = '0' + AND USER_ID = uu.ID + ORDER BY + CREATED_TIME, + id + LIMIT 1 + ) + ) AS DEPT_ID + FROM + esua_epdc_user.epdc_user uu + WHERE + uu.DEL_FLAG = '0' + AND DATE_FORMAT(uu.CREATED_TIME, '%Y-%m-%d') = DATE_FORMAT( + date_add(now(), INTERVAL - 1 DAY), + '%Y-%m-%d' + ) + ) newuu + WHERE + newuu.DEPT_ID IS NOT NULL + GROUP BY + newuu.DEPT_ID + ) t + LEFT JOIN esua_epdc_admin.sys_dept d ON d.id = t.gridId + where d.id NOT IN ( SELECT - '${customId}' as customerId, - DATE_FORMAT(date_add(now(), INTERVAL - 1 DAY), '%Y%m%d') AS dateId, - CONCAT(DATE_FORMAT(STR_TO_DATE(DATE_FORMAT(date_add(now(), INTERVAL - 1 DAY), '%Y-%m-%d'), '%Y'), '%Y'), 'W', WEEK(STR_TO_DATE(DATE_FORMAT(date_add(now(), INTERVAL - 1 DAY), '%Y-%m-%d'), '%Y-%m-%d'))) weekId, - DATE_FORMAT(STR_TO_DATE(DATE_FORMAT(date_add(now(), INTERVAL - 1 DAY), '%Y-%m-%d'), '%Y'), '%Y') AS yearId, + t.dept_id + FROM + esua_epdc_admin.sys_dept_config t + WHERE + t.del_flag = '0' + ) + + + + +