Browse Source

基础数据上报 网格人员信息sql修改

feature/screenDataPush
songyunpeng 4 years ago
parent
commit
1d1db9e0d5
  1. 92
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ScreenAgencyRegUserResultDTO.java
  2. 97
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-client/src/main/java/com/elink/esua/epdc/dto/screen/result/ScreenGridRegUserResultDTO.java
  3. 45
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/dao/ScreenBaseReportDataDao.java
  4. 39
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/service/impl/ScreenBaseReportDataServiceImpl.java
  5. 495
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/screen/ScreenBaseReportDataDao.xml

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

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

45
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<ScreenBaseReportDataFor
**/
List<CommunityIssueResultDTO> selectAgencyIssueShiftProjectIncr();
/**
* @Description 网格注册用户数据
* @Author songyunpeng
* @Date 2021/6/25
* @Param [customId]
* @return java.util.List<com.elink.esua.epdc.dto.screen.result.CommunityGroupTotalResultDTO>
**/
List<GridUserResultDTO> selectGridRegUser(@Param("customId")String customId);
* 05网格注册用户数据
* 居民总数 = 注册用户数 = 非党员用户 + 党员用户
* 热心居民总数 = 注册用户数 - 党员总数 = 非党员用户榆山统计方式
* 本日注册居民/本日热心居民日增量 = 用户首次绑定网格的时间榆山统计方式
* 本日党员认证日增量 = 认证历史中认证类型为党员并且认证成功的时间榆山统计方式
*
* @param
* @return java.util.List<com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenGridRegUserResultDTO>
* @author zhy
* @date 2021/6/28 14:06
*/
List<ScreenGridRegUserResultDTO> gridRegUser(@Param("customId")String customId);
List<ScreenGridRegUserResultDTO> gridRegUserIncr();
/**
* @Description 组织注册用户数据
* @Author songyunpeng
* @Date 2021/6/25
* @Param [customId]
* @return java.util.List<com.elink.esua.epdc.dto.screen.result.CommunityGroupTotalResultDTO>
**/
List<CommunityUserResultDTO> selectAgencyRegUser(@Param("customId")String customId);
* 06组织注册用户数据
* 居民总数=注册用户数=非党员用户+党员用户
* 热心居民总数=注册用户数-党员总数=非党员用户榆山统计方式
* 本日注册居民/本日热心居民日增量 = 用户首次绑定网格的时间榆山统计方式
* 本日党员认证日增量 = 认证历史中认证类型为党员并且认证成功的时间榆山统计方式
*
* @param
* @return java.util.List<com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenAgencyRegUserResultDTO>
* @author zhy
* @date 2021/6/28 14:07
*/
List<ScreenAgencyRegUserResultDTO> agencyRegUser(@Param("customId")String customId);
List<ScreenAgencyRegUserResultDTO> agencyRegUserIncr();
}

39
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;
/**
* @Authorliuchuang
@ -162,8 +163,23 @@ public class ScreenBaseReportDataServiceImpl extends BaseServiceImpl<ScreenBaseR
@Override
public Result selectGridRegUser() {
List<GridUserResultDTO> gridUserResultDTOS = baseDao.selectGridRegUser(customerId);
String dataJson = ScreenDataUtils.getScreenDateJson(gridUserResultDTOS,true);
List<ScreenGridRegUserResultDTO> data = baseDao.gridRegUser(customerId);
List<ScreenGridRegUserResultDTO> dataIncr = baseDao.gridRegUserIncr();
data.forEach(item -> {
Optional<ScreenGridRegUserResultDTO> 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<ScreenBaseR
@Override
public Result selectAgencyRegUser() {
List<CommunityUserResultDTO> communityUserResultDTOS = baseDao.selectAgencyRegUser(customerId);
String dataJson = ScreenDataUtils.getScreenDateJson(communityUserResultDTOS,true);
List<ScreenAgencyRegUserResultDTO> data = baseDao.agencyRegUser(customerId);
List<ScreenAgencyRegUserResultDTO> dataIncr = baseDao.agencyRegUserIncr();
data.forEach(item -> {
Optional<ScreenAgencyRegUserResultDTO> 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);

495
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>
<select id="selectGridRegUser" resultType="com.elink.esua.epdc.dto.screen.result.GridUserResultDTO">
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,
COUNT(eu.id) AS regTotal,
COUNT(eu.id) AS resiTotal,
SUM(CASE WHEN eu.PARTY_FLAG= '0' THEN 1 ELSE 0 END) AS warmHeartedTotal,
SUM(CASE WHEN eu.PARTY_FLAG= '1' THEN 1 ELSE 0 END) AS partymemberTotal,
SUM(CASE WHEN DATE_FORMAT(r.CREATED_TIME, '%Y-%m-%d')= DATE_FORMAT(date_add(now(), INTERVAL - 1 DAY), '%Y-%m-%d') THEN 1 ELSE 0 END) AS regIncr,
SUM(CASE WHEN eu.PARTY_FLAG= '0'
AND DATE_FORMAT(r.CREATED_TIME, '%Y-%m-%d')= DATE_FORMAT(date_add(now(), INTERVAL - 1 DAY), '%Y-%m-%d') THEN 1 ELSE 0 END) AS warmIncr,
SUM(CASE WHEN ua.AUTHENTICATED_TYPE= '1'
AND ua.AUTHENTICATED_FLAG= '1'
AND DATE_FORMAT(ua.CREATED_TIME, '%Y-%m-%d')= DATE_FORMAT(date_add(now(), INTERVAL - 1 DAY), '%Y-%m-%d') THEN 1 ELSE 0 END) AS partymemberIncr,
COUNT(eu.id) / COUNT(eu.id) AS resiProportion,
ROUND(SUM(CASE WHEN eu.PARTY_FLAG= '1' THEN 1 ELSE 0 END) / COUNT(eu.id), 6) AS partymemberProportion,
ROUND(SUM(CASE WHEN eu.PARTY_FLAG= '0' THEN 1 ELSE 0 END) / COUNT(eu.id), 6) AS warmHeartedProportion
FROM esua_epdc_admin.sys_dept sd
LEFT JOIN esua_epdc_user.epdc_user eu ON sd.id= eu.DEPT_ID
AND eu.STATE= '3'
AND eu.DEL_FLAG= '0'
AND DATE_FORMAT(eu.CREATED_TIME, '%Y-%m-%d') &lt;= DATE_FORMAT(date_add(now(), INTERVAL - 1 DAY), '%Y-%m-%d')
LEFT JOIN esua_epdc_user.epdc_user_authenticate_history ua ON ua.USER_ID= eu.id
LEFT JOIN(
SELECT USER_ID, CREATED_TIME
FROM esua_epdc_user.epdc_user_grid_relation
WHERE DEL_FLAG= '0'
GROUP BY USER_ID
HAVING COUNT(USER_ID)= 1) r ON r.USER_ID= eu.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 id="gridRegUser" resultType="com.elink.esua.epdc.dto.screen.result.ScreenGridRegUserResultDTO">
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>
<select id="selectAgencyRegUser" resultType="com.elink.esua.epdc.dto.screen.result.CommunityUserResultDTO">
<select id="gridRegUserIncr" resultType="com.elink.esua.epdc.dto.screen.result.ScreenGridRegUserResultDTO">
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'
)
</select>
<select id="agencyRegUser" resultType="com.elink.esua.epdc.dto.screen.result.ScreenAgencyRegUserResultDTO">
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 agencyId,
IFNULL(COUNT(eu.ID), 0) AS regTotal,
IFNULL(COUNT(eu.ID), 0) AS resiTotal,
IFNULL(SUM(CASE WHEN eu.PARTY_FLAG= '0' THEN 1 ELSE 0 END), 0) AS warmHeartedTotal,
IFNULL(SUM(CASE WHEN eu.PARTY_FLAG= '1' THEN 1 ELSE 0 END), 0) AS partymemberTotal,
IFNULL(SUM(CASE WHEN DATE_FORMAT(r.CREATED_TIME, '%Y-%m-%d')= DATE_FORMAT(date_add(now(), INTERVAL - 1 DAY), '%Y-%m-%d') THEN 1 ELSE 0 END), 0) AS regIncr,
IFNULL(SUM(CASE WHEN eu.PARTY_FLAG= '0'
AND DATE_FORMAT(r.CREATED_TIME, '%Y-%m-%d')= DATE_FORMAT(date_add(now(), INTERVAL - 1 DAY), '%Y-%m-%d') THEN 1 ELSE 0 END), 0) AS warmIncr,
IFNULL(SUM(CASE WHEN ua.AUTHENTICATED_TYPE= '1'
AND ua.AUTHENTICATED_FLAG= '1'
AND DATE_FORMAT(ua.CREATED_TIME, '%Y-%m-%d')= DATE_FORMAT(date_add(now(), INTERVAL - 1 DAY), '%Y-%m-%d') THEN 1 ELSE 0 END), 0) AS partymemberIncr,
IFNULL(COUNT(eu.ID) / COUNT(eu.ID), 0) AS resiProportion,
IFNULL(ROUND(SUM(CASE WHEN eu.PARTY_FLAG= '1' THEN 1 ELSE 0 END) / COUNT(eu.ID), 6), 0) AS partymemberProportion,
IFNULL(ROUND(SUM(CASE WHEN eu.PARTY_FLAG= '0' THEN 1 ELSE 0 END) / COUNT(eu.ID), 6), 0) AS warmHeartedProportion
FROM esua_epdc_admin.sys_dept sd
LEFT JOIN esua_epdc_user.epdc_user eu ON find_in_set(sd.`id`, eu.`ALL_DEPT_IDS`)
AND eu.DEL_FLAG= '0'
AND eu.STATE= '3'
AND DATE_FORMAT(eu.CREATED_TIME, '%Y-%m-%d') &lt;= DATE_FORMAT(date_add(now(), INTERVAL - 1 DAY), '%Y-%m-%d')
LEFT JOIN esua_epdc_user.epdc_user_authenticate_history ua ON ua.USER_ID= eu.id
LEFT JOIN(
SELECT USER_ID, CREATED_TIME
FROM esua_epdc_user.epdc_user_grid_relation
WHERE DEL_FLAG= '0'
GROUP BY USER_ID
HAVING COUNT(USER_ID)= 1) r ON r.USER_ID= eu.id
WHERE sd.del_flag= '0'
AND sd.id NOT IN(
SELECT t.dept_id
FROM esua_epdc_admin.sys_dept_config t
WHERE t.del_flag= '0')
AND sd.type_key IN('community_party','street_party')
GROUP BY sd.id
IFNULL(SUM(eu.USER_TOTAL), 0) AS regTotal,
IFNULL(SUM(eu.USER_TOTAL), 0) AS resiTotal,
IFNULL(SUM(eu.RESIDENTS_TOTAL), 0) AS warmHeartedTotal,
IFNULL(SUM(eu.PARTY_TOTAL), 0) AS partymemberTotal,
IFNULL(
SUM(eu.USER_TOTAL) / SUM(eu.USER_TOTAL),
0
) AS resiProportion,
ROUND(
IFNULL(
SUM(eu.PARTY_TOTAL) / SUM(eu.USER_TOTAL),
0
),
6
) AS partymemberProportion,
ROUND(
IFNULL(
SUM(eu.RESIDENTS_TOTAL) / SUM(eu.USER_TOTAL),
0
),
6
) AS warmHeartedProportion
FROM
esua_epdc_admin.sys_dept sd
LEFT JOIN (
SELECT
s.*, dept.pids AS ALL_DEPT_IDS
FROM
esua_epdc_analysis.epdc_user_statistics s
LEFT JOIN esua_epdc_admin.sys_dept dept ON dept.id = s.GRID_ID
where s.GRID_ID NOT IN (
SELECT
t.dept_id
FROM
esua_epdc_admin.sys_dept_config t
WHERE
t.del_flag = '0'
)
) eu ON find_in_set(sd.`id`, eu.`ALL_DEPT_IDS`)
WHERE
sd.del_flag = '0'
AND sd.id NOT IN (
SELECT
t.dept_id
FROM
esua_epdc_admin.sys_dept_config t
WHERE
t.del_flag = '0'
)
AND sd.type_key IN (
'community_party',
'street_party'
)
GROUP BY
sd.id
</select>
<select id="agencyRegUserIncr" resultType="com.elink.esua.epdc.dto.screen.result.ScreenAgencyRegUserResultDTO">
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 agencyId,
IFNULL(SUM(eu.USER_TOTAL), 0) AS regIncr,
IFNULL(SUM(eu.RESIDENTS_TOTAL), 0) AS warmIncr,
IFNULL(SUM(eu.PARTY_TOTAL), 0) AS partymemberIncr
FROM
(
SELECT
t.*, d.pids AS ALL_DEPT_IDS
FROM
(
SELECT
newuu.DEPT_ID gridId,
COUNT(newuu.ID) AS USER_TOTAL,
COUNT(newuu.PARTY_FLAG = '1' OR NULL) AS PARTY_TOTAL,
COUNT(
(
newuu.PARTY_FLAG = '0'
AND newuu.state != '0'
)
OR NULL
) AS RESIDENTS_TOTAL,
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
) eu
LEFT JOIN esua_epdc_admin.sys_dept sd ON find_in_set(sd.`id`, eu.`ALL_DEPT_IDS`)
WHERE
sd.del_flag = '0'
AND sd.id NOT IN (
SELECT
t.dept_id
FROM
esua_epdc_admin.sys_dept_config t
WHERE
t.del_flag = '0'
)
AND sd.type_key IN (
'community_party',
'street_party'
)
GROUP BY
sd.id
</select>
</mapper>

Loading…
Cancel
Save