Browse Source

公众参与sql重构

feature/screenDataPush
songyunpeng 4 years ago
parent
commit
8691471a1d
  1. 11
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/dao/ScreenPublicDataDao.java
  2. 532
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/screen/ScreenPublicDataDao.xml

11
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/screen/dao/ScreenPublicDataDao.java

@ -101,7 +101,7 @@ public interface ScreenPublicDataDao extends BaseDao<ScreenPublicDataResultDTO>
List<DifficultydataResultDTO> getDifficultydata();
/**
* 007基层治理-公众参与
* 007基层治理-公众参与 -平均议题
* @Params:
* @Return: UserjoinResultDTO
* @Author: wanggongfeng
@ -109,6 +109,15 @@ public interface ScreenPublicDataDao extends BaseDao<ScreenPublicDataResultDTO>
*/
List<UserjoinResultDTO> getUserjoin(@Param("yearMonth")String yearMonth);
/**
* 007基层治理-公众参与 - 平均参与度
* @Params:
* @Return: UserjoinResultDTO
* @Author: wanggongfeng
* @Date: 2020/08/20
*/
List<UserjoinResultDTO> getUserJoinList(@Param("yearMonth")String yearMonth);
/**
* @describe: 008公众参与各类总数 - grid
* @author wangtong

532
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/screen/ScreenPublicDataDao.xml

@ -1979,365 +1979,77 @@ select gr.id as orgId,
</select>
<!-- 007 -->
<select id="getUserjoin" resultType="com.elink.esua.epdc.dto.screen.result.UserjoinResultDTO">
select
t.yearId,
t.monthId,
t.orgType,
t.orgId,
t.parentId,
t.orgName,
t.joinTotal ,
IFNULL(ROUND(t.joinTotal/t.joinUser,0),0) avgJoin,
IFNULL(ROUND(t.issueNum / t.issueJoinUser,0),0) avgIssue,
t.area_code as areaCode,
IFNULL(t.joinTotal,0) as avgIssueFz,
IFNULL(t.joinUser,0) as avgIssueFm,
IFNULL(t.issueNum,0) as avgJoinFz,
IFNULL(t.issueJoinUser,0) as avgJoinFm
from
(
select
DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y'),'%Y') AS yearId,
DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y%m'),'%Y%m') AS monthId,
'agency' as orgType,
sd.ID orgId,
sd.PID parentId,
sd.NAME orgName ,
sd.area_code,
IFNULL(behave.joinTotal,0) joinTotal,
IFNULL(behave.joinUser,0) joinUser,
IFNULL(behave.issueJoinUser,0) issueJoinUser,
IFNULL(issueNumber.issueNum,0) issueNum
from esua_epdc_admin.sys_dept sd
left join (
select
sum(be.joinUser) joinUser,
sum(be.issueJoinUser) issueJoinUser,
sum(be.joinTotal) joinTotal,
d3.PID DEPT_ID
select
DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y'),'%Y') AS yearId,
DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y%m'),'%Y%m') AS monthId,
shoudJoin.id as orgId,
shoudJoin.name as orgName,
shoudJoin.pid as parentId,
shoudJoin.type_key as orgType,
shoudJoin.area_code as area_code,
ifnull(round(ifnull(shoudJoin.issueNum,0)/ifnull(shoudJoin.userNum,0) ,2),0) as avgIssue,
ifnull(shoudJoin.issueNum,0) as avgIssueFz,
ifnull(shoudJoin.userNum,0) as avgIssueFm,
(select (sum(APPROVE_NUM) + sum(OPPOSE_NUM) + sum(COMMENT_NUM) + sum(BROWSE_NUM))num from esua_epdc_events.epdc_events where DEL_FLAG = '0'
and DATE_FORMAT(CREATED_TIME, '%Y%m')= #{yearMonth}
)joinTotal
from (
SELECT d.id,
d.name,
d.type_key,
COUNT(tmp.EVENT_ID) num
FROM esua_epdc_events.epdc_issue i
LEFT JOIN(
SELECT c.EVENT_ID, c.USER_ID
FROM esua_epdc_events.epdc_event_comment c
WHERE c.DEL_FLAG= '0'
GROUP BY c.EVENT_ID, c.USER_ID
UNION
SELECT a.EVENT_ID, a.USER_ID
FROM esua_epdc_events.epdc_event_user_attitude a
WHERE a.DEL_FLAG= '0'
GROUP BY a.EVENT_ID, a.USER_ID) tmp ON i.EVENT_ID= tmp.EVENT_ID
RIGHT JOIN esua_epdc_admin.sys_dept d ON find_in_set(d.id,i.ALL_DEPT_IDS) and d.DEL_FLAG= 0
WHERE i.DEL_FLAG= '0'
AND DATE_FORMAT(i.CREATED_TIME, '%Y%m')= #{yearMonth} and
d.type_key in('grid_party','community_party','street_party')
GROUP BY d.id) issueJoin
left join (
select user.id,user.name,user.type_key,user.area_code,user.pid, user.userNum * issue.issueNum as total,
user.userNum,issue.issueNum
from
(SELECT
behaviorCount.DEPT_ID,
count( behaviorCount.voiceOpposeFlag + behaviorCount.voiceLikesFlag + behaviorCount.groupPublishFlag
+ behaviorCount.groupLikeFlag + behaviorCount.groupOpposeFlag + behaviorCount.groupJoinFlag
+ behaviorCount.groupCommentFlag + behaviorCount.groupCreateFlag + behaviorCount.eventLikesFlag
+ behaviorCount.eventOpposeFlag + behaviorCount.eventPubilshFlag + behaviorCount.eventCommentFlag
+ behaviorCount.eventEvaFlag > 0 OR NULL ) joinUser,
count( behaviorCount.eventPubilshFlag > 0 OR NULL ) issueJoinUser,
IFNULL(sum(behaviorCount.voiceOpposeFlag)+ sum(behaviorCount.voiceLikesFlag )
+ sum(behaviorCount.groupPublishFlag ) + sum(behaviorCount.groupLikeFlag )
+ sum(behaviorCount.groupOpposeFlag ) + sum(behaviorCount.groupJoinFlag )
+ sum(behaviorCount.groupCommentFlag ) + sum(behaviorCount.groupCreateFlag )
+ sum(behaviorCount.eventLikesFlag ) + sum(behaviorCount.eventOpposeFlag )
+ sum(behaviorCount.eventPubilshFlag ) + sum(behaviorCount.eventCommentFlag )
+ sum(behaviorCount.eventEvaFlag),0) joinTotal
FROM
(
SELECT
USER_ID,
USER.DEPT_ID,
count( behavior.VOICE_OPPOSE_FLAG = 1 OR NULL ) AS voiceOpposeFlag,
count( behavior.VOICE_LIKE_FLAG = 1 OR NULL ) AS voiceLikesFlag,
count( behavior.EVENT_LIKE_FLAG = 1 OR NULL ) AS eventLikesFlag,
count( behavior.EVENT_OPPOSE_FLAG = 1 OR NULL ) AS eventOpposeFlag,
count( behavior.EVENT_PUBLISH_FLAG = 1 OR NULL ) AS eventPubilshFlag,
count( behavior.EVENT_COMMENT_FLAG = 1 OR NULL ) AS eventCommentFlag,
count( behavior.EVENT_EVALUATE_FLAG = 1 OR NULL ) AS eventEvaFlag,
count( behavior.GROUP_PUBLISH_FLAG = 1 OR NULL ) AS groupPublishFlag,
count( behavior.GROUP_LIKE_FLAG = 1 OR NULL ) AS groupLikeFlag,
count( behavior.GROUP_OPPOSE_FLAG = 1 OR NULL ) AS groupOpposeFlag,
count( behavior.GROUP_JOIN_FLAG = 1 OR NULL ) AS groupJoinFlag,
count( behavior.GROUP_COMMENT_FLAG = 1 OR NULL ) AS groupCommentFlag,
( SELECT
count( * )
FROM
esua_epdc_party_group.epdc_party_group
WHERE del_flag = 0
) groupCreateFlag
FROM
esua_epdc_analysis.epdc_user_behavior_log behavior
LEFT JOIN esua_epdc_user.epdc_user USER ON USER.ID = behavior.USER_ID AND USER.DEL_FLAG = '0'
WHERE behavior.USER_ID in ( select meu.ID from esua_epdc_user.epdc_user meu )
AND date_format(behavior.CREATED_TIME, '%Y%m' ) = #{yearMonth}
GROUP BY USER_ID, USER.DEPT_ID
) behaviorCount
GROUP BY behaviorCount.DEPT_ID) be
left join esua_epdc_admin.sys_dept d1 on d1.ID = be.DEPT_ID
left join esua_epdc_admin.sys_dept d2 on d1.PID = d2.ID
left join esua_epdc_admin.sys_dept d3 on d2.PID = d3.ID
group by d3.PID
) behave on behave.DEPT_ID = sd.ID
left join (
select
d3.PID dept_ID,
sum(isuCount.issueNum) issueNum
from
( select
eisu.GRID_ID DEPT_ID,
count(*) issueNum
from esua_epdc_events.epdc_issue eisu
where eisu.DEL_FLAG = '0' AND date_format(eisu.DISTRIBUTE_TIME, '%Y%m' ) = #{yearMonth}
GROUP BY eisu.GRID_ID
) isuCount
left join esua_epdc_admin.sys_dept d1 on d1.ID = isuCount.DEPT_ID
left join esua_epdc_admin.sys_dept d2 on d1.PID = d2.ID
left join esua_epdc_admin.sys_dept d3 on d2.PID = d3.ID group by d3.PID
) issueNumber on issueNumber.dept_ID = sd.ID
where sd.DEL_FLAG = '0'
AND sd.id IS NOT NULL
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 = 'district_party'
and sd.PARTY_CODE = 'shibei'
union all
select
DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y'),'%Y') AS yearId,
DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y%m'),'%Y%m') AS monthId,
'agency' as orgType,
sd.ID orgId,
sd.PID parentId,
sd.NAME orgName ,
sd.area_code,
IFNULL(behave.joinTotal,0) joinTotal,
IFNULL(behave.joinUser,0) joinUser,
IFNULL(behave.issueJoinUser,0) issueJoinUser,
IFNULL(issueNumber.issueNum,0) issueNum
from esua_epdc_admin.sys_dept sd
left join (
select
sum(be.joinUser) joinUser,
sum(be.joinTotal) joinTotal,
sum(be.issueJoinUser) issueJoinUser,
d2.PID DEPT_ID
from
(SELECT
behaviorCount.DEPT_ID,
count( behaviorCount.voiceOpposeFlag + behaviorCount.voiceLikesFlag + behaviorCount.groupPublishFlag
+ behaviorCount.groupLikeFlag + behaviorCount.groupOpposeFlag + behaviorCount.groupJoinFlag
+ behaviorCount.groupCommentFlag + behaviorCount.groupCreateFlag + behaviorCount.eventLikesFlag
+ behaviorCount.eventOpposeFlag + behaviorCount.eventPubilshFlag + behaviorCount.eventCommentFlag
+ behaviorCount.eventEvaFlag > 0 OR NULL ) joinUser,
count( behaviorCount.eventPubilshFlag > 0 OR NULL ) issueJoinUser,
IFNULL(sum(behaviorCount.voiceOpposeFlag)+ sum(behaviorCount.voiceLikesFlag )
+ sum(behaviorCount.groupPublishFlag ) + sum(behaviorCount.groupLikeFlag )
+ sum(behaviorCount.groupOpposeFlag ) + sum(behaviorCount.groupJoinFlag )
+ sum(behaviorCount.groupCommentFlag ) + sum(behaviorCount.groupCreateFlag )
+ sum(behaviorCount.eventLikesFlag ) + sum(behaviorCount.eventOpposeFlag )
+ sum(behaviorCount.eventPubilshFlag ) + sum(behaviorCount.eventCommentFlag )
+ sum(behaviorCount.eventEvaFlag),0) joinTotal
FROM
(
SELECT
USER_ID,
USER.DEPT_ID,
count( behavior.VOICE_OPPOSE_FLAG = 1 OR NULL ) AS voiceOpposeFlag,
count( behavior.VOICE_LIKE_FLAG = 1 OR NULL ) AS voiceLikesFlag,
count( behavior.EVENT_LIKE_FLAG = 1 OR NULL ) AS eventLikesFlag,
count( behavior.EVENT_OPPOSE_FLAG = 1 OR NULL ) AS eventOpposeFlag,
count( behavior.EVENT_PUBLISH_FLAG = 1 OR NULL ) AS eventPubilshFlag,
count( behavior.EVENT_COMMENT_FLAG = 1 OR NULL ) AS eventCommentFlag,
count( behavior.EVENT_EVALUATE_FLAG = 1 OR NULL ) AS eventEvaFlag,
count( behavior.GROUP_PUBLISH_FLAG = 1 OR NULL ) AS groupPublishFlag,
count( behavior.GROUP_LIKE_FLAG = 1 OR NULL ) AS groupLikeFlag,
count( behavior.GROUP_OPPOSE_FLAG = 1 OR NULL ) AS groupOpposeFlag,
count( behavior.GROUP_JOIN_FLAG = 1 OR NULL ) AS groupJoinFlag,
count( behavior.GROUP_COMMENT_FLAG = 1 OR NULL ) AS groupCommentFlag,
( SELECT
count( * )
FROM
esua_epdc_party_group.epdc_party_group
WHERE del_flag = 0 ) groupCreateFlag
FROM esua_epdc_analysis.epdc_user_behavior_log behavior
LEFT JOIN esua_epdc_user.epdc_user USER ON USER.ID = behavior.USER_ID AND USER.DEL_FLAG = '0'
WHERE behavior.USER_ID in ( select meu.ID from esua_epdc_user.epdc_user meu )
AND date_format(behavior.CREATED_TIME, '%Y%m' ) = #{yearMonth}
GROUP BY USER_ID, USER.DEPT_ID
) behaviorCount
GROUP BY behaviorCount.DEPT_ID) be
left join esua_epdc_admin.sys_dept d1 on d1.ID = be.DEPT_ID
left join esua_epdc_admin.sys_dept d2 on d1.PID = d2.ID group by d2.PID
) behave on behave.DEPT_ID = sd.ID
left join (
select
d2.PID dept_ID,
sum(isuCount.issueNum) issueNum
from
( select
eisu.GRID_ID DEPT_ID,
count(*) issueNum
from esua_epdc_events.epdc_issue eisu
where eisu.DEL_FLAG = '0' AND date_format(eisu.DISTRIBUTE_TIME, '%Y%m' ) = #{yearMonth}
GROUP BY eisu.GRID_ID
) isuCount
left join esua_epdc_admin.sys_dept d1 on d1.ID = isuCount.DEPT_ID
left join esua_epdc_admin.sys_dept d2 on d1.PID = d2.ID group by d2.PID
) issueNumber on issueNumber.dept_ID = sd.ID
where sd.DEL_FLAG = '0'
AND sd.id IS NOT NULL
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 = 'street_party'
union all
select
DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y'),'%Y') AS yearId,
DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y%m'),'%Y%m') AS monthId,
'agency' as orgType,
sd.ID orgId,
sd.PID parentId,
sd.NAME orgName ,
sd.area_code,
IFNULL(behave.joinTotal,0) joinTotal,
IFNULL(behave.joinUser,0) joinUser,
IFNULL(behave.issueJoinUser,0) issueJoinUser,
IFNULL(issueNumber.issueNum,0) issueNumber
from esua_epdc_admin.sys_dept sd
left join (
select
sum(be.joinUser) joinUser,
sum(be.issueJoinUser) issueJoinUser,
sum(be.joinTotal) joinTotal,
d1.PID DEPT_ID
from
(SELECT
behaviorCount.DEPT_ID,
count( behaviorCount.voiceOpposeFlag + behaviorCount.voiceLikesFlag + behaviorCount.groupPublishFlag
+ behaviorCount.groupLikeFlag + behaviorCount.groupOpposeFlag + behaviorCount.groupJoinFlag
+ behaviorCount.groupCommentFlag + behaviorCount.groupCreateFlag + behaviorCount.eventLikesFlag
+ behaviorCount.eventOpposeFlag + behaviorCount.eventPubilshFlag + behaviorCount.eventCommentFlag
+ behaviorCount.eventEvaFlag > 0 OR NULL ) joinUser,
count( behaviorCount.eventPubilshFlag > 0 OR NULL ) issueJoinUser,
IFNULL(sum(behaviorCount.voiceOpposeFlag)+ sum(behaviorCount.voiceLikesFlag )
+ sum(behaviorCount.groupPublishFlag ) + sum(behaviorCount.groupLikeFlag ) + sum(behaviorCount.groupOpposeFlag ) + sum(behaviorCount.groupJoinFlag )
+ sum(behaviorCount.groupCommentFlag ) + sum(behaviorCount.groupCreateFlag ) + sum(behaviorCount.eventLikesFlag ) + sum(behaviorCount.eventOpposeFlag )
+ sum(behaviorCount.eventPubilshFlag ) + sum(behaviorCount.eventCommentFlag ) + sum(behaviorCount.eventEvaFlag),0) joinTotal
FROM
(
SELECT USER_ID, USER.DEPT_ID,
count( behavior.VOICE_OPPOSE_FLAG = 1 OR NULL ) AS voiceOpposeFlag,
count( behavior.VOICE_LIKE_FLAG = 1 OR NULL ) AS voiceLikesFlag,
count( behavior.EVENT_LIKE_FLAG = 1 OR NULL ) AS eventLikesFlag,
count( behavior.EVENT_OPPOSE_FLAG = 1 OR NULL ) AS eventOpposeFlag,
count( behavior.EVENT_PUBLISH_FLAG = 1 OR NULL ) AS eventPubilshFlag,
count( behavior.EVENT_COMMENT_FLAG = 1 OR NULL ) AS eventCommentFlag,
count( behavior.EVENT_EVALUATE_FLAG = 1 OR NULL ) AS eventEvaFlag,
count( behavior.GROUP_PUBLISH_FLAG = 1 OR NULL ) AS groupPublishFlag,
count( behavior.GROUP_LIKE_FLAG = 1 OR NULL ) AS groupLikeFlag,
count( behavior.GROUP_OPPOSE_FLAG = 1 OR NULL ) AS groupOpposeFlag,
count( behavior.GROUP_JOIN_FLAG = 1 OR NULL ) AS groupJoinFlag,
count( behavior.GROUP_COMMENT_FLAG = 1 OR NULL ) AS groupCommentFlag,
(SELECT
count( * )
FROM
esua_epdc_party_group.epdc_party_group
WHERE del_flag = 0 ) groupCreateFlag
FROM esua_epdc_analysis.epdc_user_behavior_log behavior
LEFT JOIN esua_epdc_user.epdc_user USER ON USER.ID = behavior.USER_ID AND USER.DEL_FLAG = '0'
WHERE behavior.USER_ID in ( select meu.ID from esua_epdc_user.epdc_user meu )
AND date_format(behavior.CREATED_TIME, '%Y%m' ) = #{yearMonth}
GROUP BY USER_ID, USER.DEPT_ID
) behaviorCount
GROUP BY behaviorCount.DEPT_ID) be
left join esua_epdc_admin.sys_dept d1 on d1.ID = be.DEPT_ID group by d1.PID
) behave on behave.DEPT_ID = sd.ID
left join (
select
d1.PID dept_ID,
sum(isuCount.issueNum) issueNum
from
( select
eisu.GRID_ID DEPT_ID,
count(*) issueNum
from esua_epdc_events.epdc_issue eisu
where eisu.DEL_FLAG = '0' AND date_format(eisu.DISTRIBUTE_TIME, '%Y%m' ) = #{yearMonth}
GROUP BY eisu.GRID_ID
) isuCount
left join esua_epdc_admin.sys_dept d1 on d1.ID = isuCount.DEPT_ID group by d1.PID
) issueNumber on issueNumber.dept_ID = sd.ID
where sd.DEL_FLAG = '0'
AND sd.id IS NOT NULL
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 = 'community_party'
union all
select
DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y'),'%Y') AS yearId,
DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y%m'),'%Y%m') AS monthId,
'grid' as orgType,
sd.ID orgId,
sd.PID parentId,
sd.NAME orgName ,
sd.area_code,
IFNULL(behave.joinTotal,0) joinTotal,
IFNULL(behave.joinUser,0) joinUser,
IFNULL(behave.issueJoinUser,0) issueJoinUser,
IFNULL(issueNumber.issueNum,0) issueNum
from esua_epdc_admin.sys_dept sd
left join (SELECT
behaviorCount.DEPT_ID,
count( behaviorCount.voiceOpposeFlag + behaviorCount.voiceLikesFlag + behaviorCount.groupPublishFlag
+ behaviorCount.groupLikeFlag + behaviorCount.groupOpposeFlag + behaviorCount.groupJoinFlag
+ behaviorCount.groupCommentFlag + behaviorCount.groupCreateFlag + behaviorCount.eventLikesFlag
+ behaviorCount.eventOpposeFlag + behaviorCount.eventPubilshFlag + behaviorCount.eventCommentFlag + behaviorCount.eventEvaFlag > 0 OR NULL ) joinUser,
count( behaviorCount.eventPubilshFlag > 0 OR NULL ) issueJoinUser,
IFNULL(sum(behaviorCount.voiceOpposeFlag) + sum(behaviorCount.voiceLikesFlag ) + sum(behaviorCount.groupPublishFlag )
+ sum(behaviorCount.groupLikeFlag ) + sum(behaviorCount.groupOpposeFlag ) + sum(behaviorCount.groupJoinFlag )
+ sum(behaviorCount.groupCommentFlag ) + sum(behaviorCount.groupCreateFlag ) + sum(behaviorCount.eventLikesFlag )
+ sum(behaviorCount.eventOpposeFlag ) + sum(behaviorCount.eventPubilshFlag ) + sum(behaviorCount.eventCommentFlag ) + sum(behaviorCount.eventEvaFlag),0) joinTotal
FROM
(
SELECT USER_ID, USER.DEPT_ID,
count( behavior.VOICE_OPPOSE_FLAG = 1 OR NULL ) AS voiceOpposeFlag,
count( behavior.VOICE_LIKE_FLAG = 1 OR NULL ) AS voiceLikesFlag,
count( behavior.EVENT_LIKE_FLAG = 1 OR NULL ) AS eventLikesFlag,
count( behavior.EVENT_OPPOSE_FLAG = 1 OR NULL ) AS eventOpposeFlag,
count( behavior.EVENT_PUBLISH_FLAG = 1 OR NULL ) AS eventPubilshFlag,
count( behavior.EVENT_COMMENT_FLAG = 1 OR NULL ) AS eventCommentFlag,
count( behavior.EVENT_EVALUATE_FLAG = 1 OR NULL ) AS eventEvaFlag,
count( behavior.GROUP_PUBLISH_FLAG = 1 OR NULL ) AS groupPublishFlag,
count( behavior.GROUP_LIKE_FLAG = 1 OR NULL ) AS groupLikeFlag,
count( behavior.GROUP_OPPOSE_FLAG = 1 OR NULL ) AS groupOpposeFlag,
count( behavior.GROUP_JOIN_FLAG = 1 OR NULL ) AS groupJoinFlag,
count( behavior.GROUP_COMMENT_FLAG = 1 OR NULL ) AS groupCommentFlag,
( SELECT
count( * )
FROM
esua_epdc_party_group.epdc_party_group
WHERE del_flag = 0 ) groupCreateFlag
FROM esua_epdc_analysis.epdc_user_behavior_log behavior
LEFT JOIN esua_epdc_user.epdc_user USER ON USER.ID = behavior.USER_ID
AND USER.DEL_FLAG = '0'
WHERE behavior.USER_ID in ( select meu.ID from esua_epdc_user.epdc_user meu )
AND date_format(behavior.CREATED_TIME, '%Y%m' ) = #{yearMonth}
GROUP BY USER_ID, USER.DEPT_ID
) behaviorCount
GROUP BY behaviorCount.DEPT_ID
) behave on behave.DEPT_ID = sd.ID
left join (
select
eisu.GRID_ID dept_ID,
count(*) issueNum
from esua_epdc_events.epdc_issue eisu
where eisu.DEL_FLAG = '0' AND date_format(eisu.DISTRIBUTE_TIME, '%Y%m' ) = #{yearMonth}
GROUP BY eisu.GRID_ID
) issueNumber on issueNumber.dept_ID = sd.ID
where sd.DEL_FLAG = '0'
AND sd.id IS NOT NULL
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 = 'grid_party'
(
select
sd.id,
sd.name,
sd.type_key,
sd.area_code,
sd.pid,
count(eugr.ID) as userNum
from
esua_epdc_admin.sys_dept sd
left join esua_epdc_user.epdc_user_grid_relation eugr on find_in_set(sd.id,eugr.ALL_DEPT_IDS) and eugr.DEL_FLAG = '0'
where sd.del_flag = '0' and sd.type_key in ('grid_party','community_party','street_party')
AND DATE_FORMAT(eugr.CREATED_TIME, '%Y%m') &lt;= #{yearMonth}
group by sd.id) user
left join (
select
sd.id,
sd.name,
count(ei.ID) as issueNum
from
esua_epdc_admin.sys_dept sd
left join esua_epdc_events.epdc_issue ei on find_in_set(sd.id,ei.ALL_DEPT_IDS) and ei.DEL_FLAG = '0'
where sd.del_flag = '0' and sd.type_key in ('grid_party','community_party','street_party')
AND DATE_FORMAT(ei.CREATED_TIME, '%Y%m')= #{yearMonth}
group by sd.id)issue on user.id = issue.id
)shoudJoin on shoudJoin.id = issueJoin.id
) t
</select>
<!-- 008 -->
<select id="publicpartitotaldataForGrid"
resultType="com.elink.esua.epdc.dto.screen.result.PublicpartitotaldataResultDTO">
@ -3150,6 +2862,114 @@ SELECT gr.id as orgId,
and city.type_key='district_party' and city.party_code='shibei'
GROUP BY city.id;
</select>
<select id="getUserJoinList" resultType="com.elink.esua.epdc.dto.screen.result.UserjoinResultDTO">
select ifnull(fz.num/fm.avgJoinFm,0) as avgJoin,fz.id as orgId, ifnull(fz.num,0) as avgJoinFz ,ifnull(fm.avgJoinFm,0) as avgJoinFm from (
SELECT (sum(APPROVE_NUM) + sum(OPPOSE_NUM) + sum(COMMENT_NUM) + sum(BROWSE_NUM))num
,sd.name,sd.id
FROM esua_epdc_events.epdc_issue ei
left join esua_epdc_events.`epdc_events` ee on ee.`ID` = ei.`EVENT_ID`
right join esua_epdc_admin.sys_dept sd on find_in_set(sd.id,ei.ALL_DEPT_IDS)
where DATE_FORMAT(ei.CREATED_TIME, '%Y%m') = #{yearMonth} and ei.`DEL_FLAG` = '0' and sd.del_flag = '0'
AND sd.`id` NOT IN( SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t)
and sd.type_key in('grid_party','community_party','street_party')
group by sd.id)fz
left join (
SELECT grid.id
, grid.name,
ifnull(data.issueNum * data.userNum,0) as avgJoinFm
from (
select issueNum,userNum,a.GRID_ID
from (
SELECT `GRID_ID`, COUNT(1) as issueNum
FROM esua_epdc_events.`epdc_issue`
WHERE `DEL_FLAG` = '0'
and DATE_FORMAT(CREATED_TIME, '%Y%m') = #{yearMonth}
GROUP BY `GRID_ID`) a
LEFT JOIN (
SELECT count(1) as userNum, `GRID_ID`
FROM esua_epdc_user.`epdc_user_grid_relation`
where `DEL_FLAG` = '0'
and DATE_FORMAT(CREATED_TIME, '%Y%m') &lt;= #{yearMonth}
GROUP BY `GRID_ID`) b on b.GRID_ID = a.GRID_ID) data
right join esua_epdc_admin.sys_dept grid on grid.id = data.GRID_ID
where grid.type_key = 'grid_party' and grid.del_flag = '0'
AND grid.`id` NOT IN( SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t)
union all
select
community.id,
community.name,
ifnull(sum(avgJoinFm),0) as avgJoinFm
from (
SELECT (a.issueNum * b.userNum) as avgJoinFm, a.GRID_ID
from (
SELECT `GRID_ID`, COUNT(1) as issueNum
FROM esua_epdc_events.`epdc_issue`
WHERE `DEL_FLAG` = '0'
and DATE_FORMAT(CREATED_TIME, '%Y%m') = #{yearMonth}
GROUP BY `GRID_ID`) a
LEFT JOIN (
SELECT count(1) as userNum, `GRID_ID`
FROM esua_epdc_user.`epdc_user_grid_relation`
where `DEL_FLAG` = '0'
and DATE_FORMAT(CREATED_TIME, '%Y%m') &lt;= #{yearMonth}
GROUP BY `GRID_ID`) b
on b.GRID_ID = a.GRID_ID) data
right join esua_epdc_admin.sys_dept grid on grid.id = data.GRID_ID
right join esua_epdc_admin.sys_dept community on grid.pid = community.id
where grid.del_flag = '0' and community.del_flag = '0' and grid.type_key = 'grid_party' and community.type_key = 'community_party'
AND grid.`id` NOT IN( SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t)
AND community.`id` NOT IN( SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t)
group by community.id
union all
select
street.id,
street.name,
ifnull(sum(avgJoinFm),0) as avgJoinFm
from (
SELECT (a.issueNum * b.userNum) as avgJoinFm, a.GRID_ID
from (
SELECT `GRID_ID`, COUNT(1) as issueNum
FROM esua_epdc_events.`epdc_issue`
WHERE `DEL_FLAG` = '0'
and DATE_FORMAT(CREATED_TIME, '%Y%m') = #{yearMonth}
GROUP BY `GRID_ID`) a
LEFT JOIN (
SELECT count(1) as userNum, `GRID_ID`
FROM esua_epdc_user.`epdc_user_grid_relation`
where `DEL_FLAG` = '0'
and DATE_FORMAT(CREATED_TIME, '%Y%m') &lt;= #{yearMonth}
GROUP BY `GRID_ID`) b
on b.GRID_ID = a.GRID_ID) data
right join esua_epdc_admin.sys_dept grid on grid.id = data.GRID_ID
right join esua_epdc_admin.sys_dept community on grid.pid = community.id
right join esua_epdc_admin.sys_dept street on community.pid = street.id
where grid.del_flag = '0' and community.del_flag = '0' and street.del_flag = '0'
and grid.type_key = 'grid_party' and community.type_key = 'community_party' and street.type_key = 'street_party'
AND grid.`id` NOT IN( SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t)
AND community.`id` NOT IN( SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t)
AND street.`id` NOT IN( SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t)
group by street.id) fm
on fz.id = fm.id
</select>
</mapper>

Loading…
Cancel
Save