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 b89d443f..4ef80482 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 @@ -5,73 +5,115 @@ @@ -79,73 +121,125 @@ resultType="com.elink.esua.epdc.dto.screen.result.CommunityTopicStatusResultDTO"> - select t.*, - '${customId}' as customerId, - DATE_FORMAT(date_add(now(), interval -1 day), '%Y%m%d') as dateId, + '${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, + 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, CONCAT(DATE_FORMAT(STR_TO_DATE(DATE_FORMAT(date_add(now(), interval -1 day), '%Y-%m-%d'), '%Y'), '%Y'), 'Q', QUARTER(STR_TO_DATE(DATE_FORMAT(date_add(now(), interval -1 day), '%Y-%m-%d'), - '%Y-%m-%d'))) quarterId, - DATE_FORMAT(STR_TO_DATE(DATE_FORMAT(date_add(now(), interval -1 day), '%Y-%m-%d'), '%Y-%m'), '%Y%m') AS monthId + '%Y-%m-%d'))) quarterId, + DATE_FORMAT(STR_TO_DATE(DATE_FORMAT(date_add(now(), interval -1 day), '%Y-%m-%d'), '%Y-%m'), '%Y%m') AS monthId from ( - select - sd.id as agencyId, - sd.pid as pid, - 'discussing' as topicStatusId, - count(et.STATE = 0 or null) as topicCount, - ifnull(round(ifnull(count(et.STATE = 0 or null), 0) / ifnull(count(et.ID), 0),2),0) as topicProportion, - ifnull(count(et.STATE = 0 and DATE_FORMAT(et.CREATED_TIME, '%Y-%m-%d') = DATE_FORMAT(date_add(now(), interval -1 day), '%Y-%m-%d') or null),0) as topicIncrement + select a.agencyId, + a.pid, + 'discussing' as topicStatusId, + (a.topicCount + b.issueTotal) as topicCount, + ifnull(round(ifnull(a.topicCount, 0) / ifnull(a.topicTotal + b.issueTotal, 0), 2), 0) as topicProportion, + (a.topicIncrement + b.issueIncrement) as topicIncrement + from ( + select sd.pid as pid, + sd.id as agencyId, + count(et.STATE = 0 or null) as topicCount, + ifnull(count(et.ID), 0) as topicTotal, + ifnull(count(et.STATE = 0 and DATE_FORMAT(et.CREATED_TIME, '%Y-%m-%d') = + DATE_FORMAT(date_add(now(), interval -1 day), '%Y-%m-%d') or null), + 0) as topicIncrement from esua_epdc_admin.sys_dept sd - left join `esua_epdc_party_group`.epdc_party_topic et on find_in_set(sd.id,et.ALL_DEPT_IDS) and et.DEL_FLAG = '0' - and DATE_FORMAT(et.CREATED_TIME, '%Y-%m-%d') <= DATE_FORMAT(date_add(now(), interval -1 day), '%Y-%m-%d') + left join esua_epdc_party_group.epdc_party_topic et on find_in_set(sd.id,et.ALL_DEPT_IDS) and et.DEL_FLAG = + '0' + and DATE_FORMAT(et.CREATED_TIME, '%Y-%m-%d')< DATE_FORMAT(date_add(now(), interval -1 day), '%Y-%m-%d') where sd.del_flag = '0' and sd.type_key in( 'community_party','street_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 + 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) a + left join ( + select sd.id as agencyId, + ifnull(count(et.ID), 0) as issueTotal, + ifnull(count(DATE_FORMAT(et.CREATED_TIME, '%Y-%m-%d') = + DATE_FORMAT(date_add(now(), interval -1 day), '%Y-%m-%d') or null), 0) as issueIncrement + from esua_epdc_admin.sys_dept sd + left join esua_epdc_events.epdc_issue et on find_in_set(sd.id,et.ALL_DEPT_IDS) + and et.DEL_FLAG= '0' + and et.IS_PARTY_MEMBER= '1' + and DATE_FORMAT(et.CREATED_TIME, '%Y-%m-%d')< DATE_FORMAT(date_add(now(), interval -1 day), '%Y-%m-%d') + where sd.del_flag= '0' + and sd.type_key in('street_party', 'community_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) b on a.agencyId = b.agencyId union all select - sd.id as agencyId, - sd.pid as pid, - 'hidden' as topicStatusId, - count(et.SHIELD_FLAG = 1 or null) as topicCount, - ifnull(round(ifnull(count(et.SHIELD_FLAG = 1 or null), 0) / ifnull(count(et.ID), 0),2),0) as topicProportion, - ifnull(count(et.SHIELD_FLAG = 1 and DATE_FORMAT(et.CREATED_TIME, '%Y-%m-%d') = DATE_FORMAT(date_add(now(), interval -1 day), '%Y-%m-%d') or null),0) as topicIncrement + sd.id as agencyId, + sd.pid as pid, + 'hidden' as topicStatusId, + 0 as topicCount, + 0 as topicProportion, + 0 as topicIncrement from esua_epdc_admin.sys_dept sd - left join `esua_epdc_party_group`.epdc_party_topic et on find_in_set(sd.id,et.ALL_DEPT_IDS) and et.DEL_FLAG = '0' + left join `esua_epdc_party_group`.epdc_party_topic et on find_in_set(sd.id,et.ALL_DEPT_IDS) and et.DEL_FLAG ='0' and DATE_FORMAT(et.CREATED_TIME, '%Y-%m-%d') <= DATE_FORMAT(date_add(now(), interval -1 day), '%Y-%m-%d') where sd.del_flag = '0' and sd.type_key in( 'community_party','street_party') - and sd.id not in (SELECT t.DEPT_ID FROM `esua_epdc_admin`.`sys_dept_config` t WHERE t.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') group by sd.id union all + + select a.agencyId, + a.pid, + 'closed' as topicStatusId, + a.topicCount as topicCount, + ifnull(round(ifnull(a.topicCount, 0) / ifnull(a.topicTotal + b.issueTotal, 0), 2), 0) as topicProportion, + a.topicIncrement + from ( select - sd.id as agencyId, - sd.pid as pid, - 'closed' as topicStatusId, - count(et.STATE = 20 or null) as topicCount, - ifnull(round(ifnull(count(et.STATE = 20 or null), 0) / ifnull(count(et.ID), 0),2),0) as topicProportion, - ifnull(count(et.STATE = 20 and DATE_FORMAT(et.CREATED_TIME, '%Y-%m-%d') = DATE_FORMAT(date_add(now(), interval -1 day), '%Y-%m-%d') or null),0) as topicIncrement + sd.pid as pid, + sd.id as agencyId, + 'closed' as topicStatusId, + count(et.STATE = 20 or null) as topicCount, + ifnull(count(et.ID), 0) as topicTotal, + ifnull(count(et.STATE = 20 and DATE_FORMAT(et.CREATED_TIME, '%Y-%m-%d') = DATE_FORMAT(date_add(now(), interval + -1 day), '%Y-%m-%d') or null),0) as topicIncrement + from esua_epdc_admin.sys_dept sd - left join `esua_epdc_party_group`.epdc_party_topic et on find_in_set(sd.id,et.ALL_DEPT_IDS) and et.DEL_FLAG = '0' - and DATE_FORMAT(et.CREATED_TIME, '%Y-%m-%d') <= DATE_FORMAT(date_add(now(), interval -1 day), '%Y-%m-%d') + left join esua_epdc_party_group.epdc_party_topic et on find_in_set(sd.id,et.ALL_DEPT_IDS) and et.DEL_FLAG = '0' + and DATE_FORMAT(et.CREATED_TIME, '%Y-%m-%d')< DATE_FORMAT(date_add(now(), interval -1 day), '%Y-%m-%d') where sd.del_flag = '0' and sd.type_key in( 'community_party','street_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 + 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)a + left join ( + select sd.id as agencyId, + ifnull(count(et.ID), 0) as issueTotal, + ifnull(count(DATE_FORMAT(et.CREATED_TIME, '%Y-%m-%d') = + DATE_FORMAT(date_add(now(), interval -1 day), '%Y-%m-%d') or null), 0) as issueIncrement + from esua_epdc_admin.sys_dept sd + left join esua_epdc_events.epdc_issue et on find_in_set(sd.id,et.ALL_DEPT_IDS) + and et.DEL_FLAG= '0' + and et.IS_PARTY_MEMBER= '1' + and DATE_FORMAT(et.CREATED_TIME, '%Y-%m-%d')< DATE_FORMAT(date_add(now(), interval -1 day), '%Y-%m-%d') + where sd.del_flag= '0' + and sd.type_key in('street_party', 'community_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) b on a.agencyId = b.agencyId + )t;