榆山
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

687 lines
30 KiB

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.elink.esua.epdc.modules.screen.dao.ScreenBasicDataDao">
<select id="homePagePlatformSummary" resultType="com.elink.esua.epdc.dto.screen.result.HomePagePlatformSummaryDTO">
SELECT t0.gridCount,
t1.openedGridCount,
t2.userCount,
t2.partyUserCount,
t3.issueCount,
t3.projectCount,
t4.groupCount,
t5.topicCount,
t6.newsCount,
t6.readCount,
t7.actCount,
t8.vounteerCount
FROM(
SELECT COUNT(sd.id) AS gridCount
FROM `esua_epdc_admin`.sys_dept sd
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)) t0,
(
SELECT COUNT(tmp.GRID_ID) AS openedGridCount
FROM(
SELECT edmc.`GRID_ID`
FROM esua_epdc_admin.epdc_dept_ma_code edmc
WHERE edmc.DEL_FLAG= '0'
AND edmc.`GRID_ID` NOT IN(
SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)
GROUP BY edmc.GRID_ID) tmp) t1,
(
SELECT COUNT(tmp.ID) AS userCount, SUM(tmp.PARTY_FLAG= '1') AS partyUserCount
FROM(
SELECT t.`ID`, t.`PARTY_FLAG`, CASE WHEN t.`DEPT_ID` IS NULL
OR t.`DEPT_ID`= 0
OR t.`DEPT_ID`= '' THEN(
SELECT t1.`GRID_ID`
FROM `esua_epdc_user`.`epdc_user_grid_relation` t1
WHERE t1.`DEL_FLAG`= '0'
AND t1.`USER_ID`= t.`ID`
ORDER BY t1.`CREATED_TIME`
LIMIT 1) ELSE t.`DEPT_ID` END AS GRID_ID
FROM `esua_epdc_user`.`epdc_user` t
WHERE t.`DEL_FLAG`= '0') tmp
WHERE tmp.GRID_ID NOT IN(
SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)) t2,
(
SELECT COUNT(ei.`ID`) AS issueCount, SUM(ei.`ISSUE_STATE`= 4) AS projectCount
FROM `esua_epdc_events`.`epdc_issue` ei
WHERE ei.`DEL_FLAG`= '0'
AND ei.`GRID_ID` NOT IN(
SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)) t3,
(
SELECT COUNT(eg.`ID`) AS groupCount
FROM `esua_epdc_group`.`epdc_group` eg
WHERE eg.`DEL_FLAG`= '0'
AND eg.`STATE` IN(10, 15)
AND eg.`GRID_ID` NOT IN(
SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)) t4,
(
SELECT COUNT(et.`ID`) AS topicCount
FROM `esua_epdc_group`.`epdc_topic` et
WHERE et.`DEL_FLAG`= '0'
AND et.`GRID_ID` NOT IN(
SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)) t5,
(
SELECT COUNT(en.`ID`) AS newsCount, SUM(en.`READING_AMOUNT`) AS readCount
FROM `esua_epdc_news`.`epdc_news` en
WHERE en.`DEL_FLAG`= '0'
AND en.`DEPT_ID` NOT IN(
SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)) t6,
(
SELECT COUNT(eai.`ID`) AS actCount
FROM `esua_epdc_mutuality`.`epdc_act_info` eai
WHERE eai.`DEL_FLAG`= '0'
AND eai.`DEPT_ID` NOT IN(
SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)) t7,
(
SELECT COUNT(evi.`ID`) AS vounteerCount
FROM `esua_epdc_user`.`epdc_volunteer_info` evi
WHERE evi.`DEL_FLAG`= '0'
AND evi.`AUDIT_STATUS` <![CDATA[ <> ]]> '2'
AND evi.`GRID_ID` NOT IN(
SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)) t8
</select>
<select id="issueSummary" resultType="com.elink.esua.epdc.dto.screen.result.ScreenIssueSummaryDTO">
SELECT sd.`pids` AS allParentIds,
sd.`id` AS gridId,
sd.`name` AS gridName,
sd.`pid` AS parentAgencyId,
IFNULL(t1.reportCount, 0) AS reportCount,
IFNULL(t0.issueCount, 0) AS issueCount,
IFNULL(t1.pendingCount, 0) AS pendingCount,
IFNULL(t1.rejectedCount, 0) AS rejectedCount,
IFNULL(t0.processingCount, 0) AS processingCount,
IFNULL(t0.closedCount, 0) AS closedCount,
IFNULL(t0.issueViewCount, 0) AS issueViewCount,
IFNULL(t0.voteCount, 0) AS voteCount,
IFNULL(t0.issueCount, 0) AS passedCount,
IFNULL(t0.itemCount, 0) AS shiftToProjectCount,
IFNULL(t2.avgAuditTime, 0) AS avgAuditTime
FROM `esua_epdc_admin`.`sys_dept` sd
LEFT JOIN(
SELECT ei.`GRID_ID` AS gridId, COUNT(ei.`ID`) AS issueCount, SUM(ei.`ISSUE_STATE`= 0) AS processingCount, SUM(ei.`ISSUE_STATE`= 2) AS closedCount, SUM(ei.`ISSUE_STATE`= 4) AS itemCount, SUM(ee.`BROWSE_NUM`) AS issueViewCount, SUM(ee.`APPROVE_NUM`+ ee.`OPPOSE_NUM`+ ee.`COMMENT_NUM`) AS voteCount
FROM `esua_epdc_events`.`epdc_issue` ei
LEFT JOIN `esua_epdc_events`.`epdc_events` ee ON ee.`ID`= ei.`EVENT_ID`
AND ee.`DEL_FLAG`= '0'
WHERE ei.`DEL_FLAG`= '0'
AND ei.`GRID_ID` NOT IN(
SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)
GROUP BY ei.`GRID_ID`) t0 ON t0.gridId= sd.`id`
LEFT JOIN(
SELECT ee.`GRID_ID`, COUNT(ee.`ID`) AS reportCount, SUM(ee.`EVENT_STATE`= 0) AS pendingCount, SUM(ee.`EVENT_STATE`= 2) AS rejectedCount
FROM `esua_epdc_events`.`epdc_events` ee
WHERE ee.`DEL_FLAG`= '0'
AND ee.`GRID_ID` NOT IN(
SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)
GROUP BY ee.`GRID_ID`) t1 ON t1.GRID_ID= sd.`id`
LEFT JOIN(
SELECT ei.`GRID_ID`, round(SUM(TIMESTAMPDIFF(MINUTE, ee.`CREATED_TIME`, ei.`CREATED_TIME`)) / COUNT(ei.`ID`), 2) AS 'avgAuditTime'
FROM `esua_epdc_events`.`epdc_issue` ei
LEFT JOIN `esua_epdc_events`.`epdc_events` ee ON ee.`ID`= ei.`EVENT_ID`
AND ee.`DEL_FLAG`= '0'
WHERE ei.`DEL_FLAG`= '0'
AND ei.`GRID_ID` NOT IN(
SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)
GROUP BY ei.`GRID_ID`) t2 ON t2.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)
</select>
<select id="issueTrend" resultType="com.elink.esua.epdc.dto.screen.result.ScreenIssueTrendDTO">
SELECT sd.`pids` AS allParentIds,
sd.`id` AS gridId,
sd.`name` AS gridName,
sd.`pid` AS parentAgencyId,
IFNULL(t0.reportCount, 0) AS reportCount
FROM `esua_epdc_admin`.`sys_dept` sd
LEFT JOIN(
SELECT ee.`GRID_ID`, COUNT(ee.`ID`) AS reportCount
FROM `esua_epdc_events`.`epdc_events` ee
WHERE ee.`DEL_FLAG`= '0'
AND DATE_FORMAT(ee.`CREATED_TIME`, '%Y-%m')= #{yearMonth}
AND ee.`GRID_ID` NOT IN(
SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)
GROUP BY ee.`GRID_ID`) t0 ON t0.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)
</select>
<select id="userSummary" resultType="com.elink.esua.epdc.dto.screen.result.ScreenUserSummaryDTO">
SELECT sd.`pids` AS allParentIds,
sd.`id` AS gridId,
sd.`name` AS gridName,
sd.`pid` AS parentAgencyId,
IFNULL(t0.visitorCount, 0) AS visitorCount,
(IFNULL(t0.visitorCount, 0) - IFNULL(t0.partyCount, 0)) AS regUserCount,
IFNULL(t0.partyCount, 0) AS partyCount,
IFNULL(t0.ageLevel1, 0) AS ageLevel1,
IFNULL(t0.ageLevel2, 0) AS ageLevel2,
IFNULL(t0.ageLevel3, 0) AS ageLevel3,
IFNULL(t0.ageLevel4, 0) AS ageLevel4,
IFNULL(t0.ageLevel5, 0) AS ageLevel5,
IFNULL(t0.ageLevel6, 0) AS ageLevel6,
IFNULL(t0.malePartyUserCount, 0) AS malePartyUserCount,
IFNULL(t0.femalePartyUserCount, 0) AS femalePartyUserCount
FROM `esua_epdc_admin`.`sys_dept` sd
LEFT JOIN(
SELECT tmp.GRID_ID, COUNT(tmp.ID) AS visitorCount, SUM(tmp.PARTY_FLAG= '1') AS partyCount, SUM(tmp.PARTY_FLAG= '1'
AND tmp.age <![CDATA[ < ]]> 20) AS ageLevel1, SUM(tmp.PARTY_FLAG= '1'
AND tmp.age <![CDATA[ >= ]]> 20
AND tmp.age <![CDATA[ < ]]> 30) AS ageLevel2, SUM(tmp.PARTY_FLAG= '1'
AND tmp.age <![CDATA[ >= ]]> 30
AND tmp.age <![CDATA[ < ]]> 40) AS ageLevel3, SUM(tmp.PARTY_FLAG= '1'
AND tmp.age <![CDATA[ >= ]]> 40
AND tmp.age <![CDATA[ < ]]> 50) AS ageLevel4, SUM(tmp.PARTY_FLAG= '1'
AND tmp.age <![CDATA[ >= ]]> 50
AND tmp.age <![CDATA[ < ]]> 60) AS ageLevel5, SUM(tmp.PARTY_FLAG= '1'
AND tmp.age <![CDATA[ >= ]]> 60) AS ageLevel6, SUM(tmp.PARTY_FLAG= '1'
AND tmp.SEX= '1') AS malePartyUserCount, SUM(tmp.PARTY_FLAG= '1'
AND tmp.SEX= '0') AS femalePartyUserCount
FROM(
SELECT t.`ID`, t.`PARTY_FLAG`, IFNULL(TIMESTAMPDIFF(YEAR, t.BIRTHDAY, CURDATE()), 0) AS age, t.`SEX`, CASE WHEN t.`DEPT_ID` IS NULL
OR t.`DEPT_ID`= 0
OR t.`DEPT_ID`= '' THEN(
SELECT t1.`GRID_ID`
FROM `esua_epdc_user`.`epdc_user_grid_relation` t1
WHERE t1.`DEL_FLAG`= '0'
AND t1.`USER_ID`= t.`ID`
ORDER BY t1.`CREATED_TIME`
LIMIT 1) ELSE t.`DEPT_ID` END AS GRID_ID
FROM `esua_epdc_user`.`epdc_user` t
LEFT JOIN `esua_epdc_user`.`epdc_user_grid_relation` t1 ON t1.`USER_ID`= t.`ID`
AND t1.`DEL_FLAG`= '0'
WHERE t.`DEL_FLAG`= '0'
GROUP BY t.`ID`) tmp
GROUP BY tmp.GRID_ID) t0 ON t0.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)
</select>
<select id="volunteerHeartRank" resultType="com.elink.esua.epdc.dto.screen.result.ScreenVolunteerHeartRank">
SELECT sd.`pids` AS allParentIds,
sd.`id` AS gridId,
sd.`name` AS gridName,
sd.`pid` AS parentAgencyId,
tmp.ID AS volunteerId,
tmp.USER_ID AS userId,
tmp.REAL_NAME AS userName,
tmp.KINDNESS_TIME AS heartTime,
eu.`POINTS` AS points
FROM(
SELECT evi.`ID`, evi.`GRID_ID`, evi.`USER_ID`, evi.`REAL_NAME`, evi.`KINDNESS_TIME`
FROM `esua_epdc_user`.`epdc_volunteer_info` evi
WHERE evi.`DEL_FLAG`= '0'
AND evi.`GRID_ID` NOT IN(
SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)
ORDER BY evi.`KINDNESS_TIME` DESC, evi.`PARTICIPATION_NUM` DESC, evi.`CREATED_TIME`
LIMIT #{pageSize}) tmp
LEFT JOIN `esua_epdc_admin`.`sys_dept` sd ON sd.`id`= tmp.GRID_ID
LEFT JOIN `esua_epdc_user`.`epdc_user` eu ON eu.`ID`= tmp.USER_ID
</select>
<select id="userUserHeartRank" resultType="com.elink.esua.epdc.dto.screen.result.ScreenUserUserHeartRankDTO">
SELECT sd.`pids` AS allParentIds,
sd.`id` AS gridId,
sd.`name` AS gridName,
sd.`pid` AS parentAgencyId,
IFNULL(t0.regUserCount, 0) AS regUserCount,
IFNULL(t1.partyUserCount, 0) AS partyUserCount
FROM `esua_epdc_admin`.`sys_dept` sd
LEFT JOIN(
SELECT COUNT(eu.`ID`) AS regUserCount, CASE WHEN eu.`DEPT_ID` IS NULL
OR eu.`DEPT_ID`= 0
OR eu.`DEPT_ID`= '' THEN(
SELECT t1.`GRID_ID`
FROM `esua_epdc_user`.`epdc_user_grid_relation` t1
WHERE t1.`DEL_FLAG`= '0'
AND t1.`USER_ID`= eu.`ID`
ORDER BY t1.`CREATED_TIME`
LIMIT 1) ELSE eu.`DEPT_ID` END AS GRID_ID
FROM `esua_epdc_user`.`epdc_user` eu
WHERE eu.`DEL_FLAG`= '0'
AND DATE_FORMAT(eu.`CREATED_TIME`, '%Y-%m')= #{yearMonth}
GROUP BY `GRID_ID`) t0 ON t0.GRID_ID= sd.`id`
LEFT JOIN(
SELECT tmp.DEPT_ID, COUNT(tmp.USER_ID) AS partyUserCount
FROM(
SELECT euah.`USER_ID`, eu.`DEPT_ID`
FROM `esua_epdc_user`.`epdc_user_authenticate_history` euah
LEFT JOIN `esua_epdc_user`.`epdc_user` eu ON eu.`ID`= euah.`USER_ID`
WHERE euah.`DEL_FLAG`= '0'
AND euah.`AUTHENTICATED_FLAG`= '1'
AND euah.`AUTHENTICATED_TYPE`= '1'
AND DATE_FORMAT(euah.`CREATED_TIME`, '%Y-%m')= #{yearMonth}
GROUP BY euah.`USER_ID`) tmp
GROUP BY tmp.DEPT_ID) t1 ON t1.DEPT_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)
</select>
<select id="actSummary" resultType="com.elink.esua.epdc.dto.screen.result.ScreenActSummaryDTO">
SELECT t0.actCount,
t1.volunteerCount,
t2.partiUserCount,
t0.rewardPointCount,
t1.heartTime
FROM(
SELECT COUNT(*) AS actCount, SUM(tmp.actPoints) AS rewardPointCount
FROM(
SELECT(eai.`REWARD` * SUM(eaur.`STATUS`= '5')) AS actPoints
FROM `esua_epdc_mutuality`.`epdc_act_info` eai
LEFT JOIN `esua_epdc_mutuality`.`epdc_act_user_relation` eaur ON eaur.`ACT_ID`= eai.`ID`
AND eaur.`DEL_FLAG`= '0'
WHERE eai.`DEL_FLAG`= '0'
AND eai.`DEPT_ID` NOT IN(
SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)
GROUP BY eai.`ID`) tmp) t0,
(
SELECT COUNT(evi.`ID`) AS volunteerCount, SUM(evi.`KINDNESS_TIME`) AS heartTime
FROM `esua_epdc_user`.`epdc_volunteer_info` evi
WHERE evi.`DEL_FLAG`= '0'
AND evi.`AUDIT_STATUS`<![CDATA[ <> ]]> '2'
AND evi.`GRID_ID` NOT IN(
SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)) t1,
(
SELECT COUNT(eaur.`ID`) AS partiUserCount
FROM `esua_epdc_mutuality`.`epdc_act_user_relation` eaur
WHERE eaur.`DEL_FLAG`= '0'
AND eaur.`STATUS` IN('1', '2', '5', '6')) t2
</select>
<select id="actTrend" resultType="integer">
SELECT COUNT(eai.`ID`) AS actCount
FROM `esua_epdc_mutuality`.`epdc_act_info` eai
WHERE eai.`DEL_FLAG`= '0'
AND DATE_FORMAT(eai.`ACT_START_TIME`, '%Y-%m')= #{yearMonth}
AND eai.`DEPT_ID` NOT IN(
SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)
</select>
<select id="actVolunteerSummary" resultType="com.elink.esua.epdc.dto.screen.result.ScreenActVolunteerSummaryDTO">
SELECT sd.`pids` AS allParentIds,
sd.`id` AS gridId,
sd.`name` AS gridName,
sd.`pid` AS parentAgencyId,
IFNULL(t0.ageLevel1, 0) AS ageLevel1,
IFNULL(t0.ageLevel2, 0) AS ageLevel2,
IFNULL(t0.ageLevel3, 0) AS ageLevel3,
IFNULL(t0.ageLevel4, 0) AS ageLevel4,
IFNULL(t0.ageLevel5, 0) AS ageLevel5,
IFNULL(t0.ageLevel6, 0) AS ageLevel6,
IFNULL(t0.maleCount, 0) AS maleCount,
IFNULL(t0.femaleCount, 0) AS femaleCount
FROM `esua_epdc_admin`.`sys_dept` sd
LEFT JOIN(
SELECT tmp.GRID_ID, SUM(tmp.age <![CDATA[ < ]]> 20) AS ageLevel1, SUM(tmp.age <![CDATA[ >= ]]> 20
AND tmp.age <![CDATA[ < ]]> 30) AS ageLevel2, SUM(tmp.age <![CDATA[ >= ]]> 30
AND tmp.age <![CDATA[ < ]]> 40) AS ageLevel3, SUM(tmp.age <![CDATA[ >= ]]> 40
AND tmp.age <![CDATA[ < ]]> 50) AS ageLevel4, SUM(tmp.age <![CDATA[ >= ]]> 50
AND tmp.age <![CDATA[ < ]]> 60) AS ageLevel5, SUM(tmp.age <![CDATA[ >= ]]> 60) AS ageLevel6, SUM(tmp.SEX= '1') AS maleCount, SUM(tmp.SEX= '0') AS femaleCount
FROM(
SELECT evi.`GRID_ID`, evi.`SEX`, IFNULL(TIMESTAMPDIFF(YEAR, evi.BIRTHDAY, CURDATE()), 0) AS age
FROM `esua_epdc_user`.`epdc_volunteer_info` evi
WHERE evi.`DEL_FLAG`= '0') tmp
GROUP BY tmp.GRID_ID) t0 ON t0.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)
</select>
<select id="projectSummary" resultType="com.elink.esua.epdc.dto.screen.result.ScreenProjectSummaryDTO">
SELECT sd.`pids` AS allParentIds,
sd.`id` AS gridId,
sd.`name` AS gridName,
sd.`pid` AS parentAgencyId,
IFNULL(t0.projectCount, 0) AS projectCount,
IFNULL(t0.processingCount, 0) AS processingCount,
IFNULL(t0.closedCount, 0) AS closedCount,
IFNULL(t1.moveCount, 0) AS moveCount,
IFNULL(t0.closedCaseCount, 0) AS closedCaseCount,
IFNULL(t0.projectViewCount, 0) AS projectViewCount,
IFNULL(t0.voteCount, 0) AS voteCount,
IFNULL(t2.avgClosedCaseTime, 0) AS avgClosedCaseTime
FROM `esua_epdc_admin`.`sys_dept` sd
LEFT JOIN(
SELECT tmp.GRID_ID, COUNT(*) AS projectCount, SUM(tmp.`ITEM_STATE`= 0) AS processingCount, SUM(tmp.`ITEM_STATE`= 5) AS closedCount, SUM(tmp.`ITEM_STATE`= 10) AS closedCaseCount, SUM(tmp.`BROWSE_NUM`) AS projectViewCount, SUM(tmp.`voteCount`) AS voteCount
FROM(
SELECT ei.`GRID_ID`, ei.`ITEM_STATE`, ee.`BROWSE_NUM`,(ee.`APPROVE_NUM`+ ee.`OPPOSE_NUM`+ ee.`COMMENT_NUM`) AS voteCount
FROM `esua_epdc_events`.`epdc_item` ei
LEFT JOIN `esua_epdc_events`.`epdc_events` ee ON ee.`ID`= ei.`EVENT_ID`
WHERE ei.`DEL_FLAG`= '0'
GROUP BY ei.`ISSUE_ID`) tmp
GROUP BY tmp.GRID_ID) t0 ON t0.GRID_ID= sd.`id`
LEFT JOIN(
SELECT tmp.GRID_ID, SUM(tmp.moveCount) AS moveCount
FROM(
SELECT eid.`ITEM_ID`, ei.`GRID_ID`,(COUNT(eid.`ID`) - 1) AS moveCount
FROM `esua_epdc_events`.`epdc_item_dept` eid
LEFT JOIN `esua_epdc_events`.`epdc_item` ei ON ei.`ID`= eid.`ITEM_ID`
GROUP BY eid.`ITEM_ID`) tmp
GROUP BY tmp.GRID_ID) t1 ON t1.GRID_ID= sd.`id`
LEFT JOIN(
SELECT ei.`GRID_ID`, round(SUM(tmp.itemTime) / COUNT(tmp.ITEM_ID), 2) AS avgClosedCaseTime
FROM(
SELECT t.`ITEM_ID`, TIMESTAMPDIFF(MINUTE, MIN(t.`CREATED_TIME`), MAX(t.`CREATED_TIME`)) AS itemTime
FROM `esua_epdc_events`.`epdc_item_handle_process` t
WHERE t.`ITEM_ID` IN(
SELECT eihp.`ITEM_ID`
FROM `esua_epdc_events`.`epdc_item_handle_process` eihp
WHERE eihp.`DEL_FLAG`= '0'
AND eihp.`STATE`= 10)
GROUP BY t.`ITEM_ID`
ORDER BY `CREATED_TIME`) tmp
LEFT JOIN `esua_epdc_events`.`epdc_item` ei ON ei.`ID`= tmp.ITEM_ID
GROUP BY ei.`GRID_ID`) t2 ON t2.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)
</select>
<select id="projectCategorySummary" resultType="com.elink.esua.epdc.dto.screen.result.ScreenProjectCategorySummaryDTO">
SELECT sd.`pids` AS allParentIds,
tmp.GRID_ID AS gridId,
sd.`name` AS gridName,
sd.`pid` AS parentAgencyId,
ec.`id` AS categoryId,
ec.`category_name` AS categoryName,
COUNT(tmp.ID) AS projectCount
FROM(
SELECT ei.`ID`, ei.`GRID_ID`, ei.`FIRST_CATEGORY_CODE`
FROM `esua_epdc_events`.`epdc_item` ei
WHERE ei.`DEL_FLAG`= '0'
AND ei.`GRID_ID` NOT IN(
SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)
GROUP BY ei.`ISSUE_ID`) tmp
LEFT JOIN `esua_epdc_events`.`epdc_category` ec ON ec.`category_code`= tmp.FIRST_CATEGORY_CODE
LEFT JOIN `esua_epdc_admin`.`sys_dept` sd ON sd.`id`= tmp.GRID_ID
GROUP BY tmp.GRID_ID,
tmp.FIRST_CATEGORY_CODE
</select>
<select id="projectStatisticAnalysis" resultType="com.elink.esua.epdc.dto.screen.result.ScreenProjectStatisticAnalysisDTO">
SELECT sd.`pids` AS allParentIds,
sd.`id` AS gridId,
sd.`name` AS gridName,
sd.`pid` AS parentAgencyId,
IFNULL(t0.disSatisfaction, 0) AS disSatisfaction,
IFNULL(t0.goodSatisfaction, 0) AS goodSatisfaction,
IFNULL(t0.greatSatisfaction, 0) AS greatSatisfaction
FROM `esua_epdc_admin`.`sys_dept` sd
LEFT JOIN(
SELECT ei.`GRID_ID`, SUM(ei.`EVALUATION_SCORE`= 0) AS disSatisfaction, SUM(ei.`EVALUATION_SCORE`= 1) AS goodSatisfaction, SUM(ei.`EVALUATION_SCORE`= 2) AS greatSatisfaction
FROM `esua_epdc_events`.`epdc_item` ei
WHERE ei.`DEL_FLAG`= '0'
AND DATE_FORMAT(ei.`EVALUATION_TIME`, '%Y-%m')= #{yearMonth}
GROUP BY ei.`GRID_ID`) t0 ON t0.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)
</select>
<select id="newsSummary" resultType="com.elink.esua.epdc.dto.screen.result.ScreenNewsSummaryDTO">
SELECT COUNT(en.`ID`) AS newsCount,
SUM(en.`READING_AMOUNT`) AS readCount,
SUM(en.`LIKE_NUMBER`) AS likeCount,
0 AS commentCount
FROM `esua_epdc_news`.`epdc_news` en
WHERE en.`DEL_FLAG`= '0'
AND en.`NEWS_RELEASE_STATE`= '0'
AND en.`DEPT_ID` NOT IN(
SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)
</select>
<select id="newsTrend" resultType="Integer">
SELECT(t0.commentNum+ t1.attitudeNum) AS partiCount
FROM(
SELECT 0 AS commentNum
) t0,(
SELECT COUNT(enua.`ID`) attitudeNum
FROM `esua_epdc_news`.`epdc_news_user_attitude` enua
WHERE enua.`DEL_FLAG`= '0'
AND DATE_FORMAT(enua.`CREATED_TIME`, '%Y-%m')= #{yearMonth}
AND enua.`EPDC_NEWS_ID` IN(
SELECT t.`ID`
FROM `esua_epdc_news`.`epdc_news` t
WHERE t.`DEL_FLAG`= '0'
AND t.`NEWS_RELEASE_STATE`= '0'
AND t.`DEPT_ID` NOT IN(
SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0))) t1
</select>
<select id="newsHotRank" resultType="com.elink.esua.epdc.dto.screen.result.ScreenNewsHotRankDTO">
SELECT en.`ID` AS newsId,
en.`NEWS_TITLE` AS newsTitle,
(en.`LIKE_NUMBER`+ en.`UN_LIKE_NUMBER`) AS hotCount
FROM `esua_epdc_news`.`epdc_news` en
WHERE en.`DEL_FLAG`= '0'
AND en.`NEWS_RELEASE_STATE`= '0'
AND en.`NEWS_UP_DOWN_STATE`= '0'
AND en.`DEPT_ID` NOT IN(
SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)
ORDER BY hotCount DESC,
en.`CREATED_TIME` DESC
LIMIT #{pageSize}
</select>
<select id="newsCategoryAnalysis" resultType="com.elink.esua.epdc.dto.screen.result.ScreenNewsCategoryAnalysisDTO">
SELECT en.`NEWS_CATERORY_ID` AS categoryId,
enc.`CATEGORY_NAME` AS categoryName,
COUNT(en.`ID`) AS newsCount,
SUM(en.`READING_AMOUNT`) AS readCount,
SUM(en.`LIKE_NUMBER`) AS likeCount,
SUM(en.`UN_LIKE_NUMBER`) AS disLikeCount
FROM `esua_epdc_news`.`epdc_news` en
LEFT JOIN `esua_epdc_news`.`epdc_news_category` enc ON enc.`ID`= en.`NEWS_CATERORY_ID`
WHERE en.`DEL_FLAG`= '0'
AND en.`NEWS_RELEASE_STATE`= '0'
AND en.`DEPT_ID` NOT IN(
SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)
GROUP BY en.`NEWS_CATERORY_ID`
</select>
<select id="groupSummary" resultType="com.elink.esua.epdc.dto.screen.result.ScreenGroupSummaryDTO">
SELECT sd.`pids` AS allParentIds,
sd.`id` AS gridId,
sd.`name` AS gridName,
sd.`pid` AS parentAgencyId,
IFNULL(t0.groupCount, 0) AS groupCount,
IFNULL(t0.memberCount, 0) AS memberCount,
IFNULL(t1.topicCount, 0) AS topicCount,
IFNULL(t1.partiCount, 0) AS partiCount,
IFNULL(t1.shiftIssueCount, 0) AS shiftIssueCount
FROM `esua_epdc_admin`.`sys_dept` sd
LEFT JOIN(
SELECT eg.`GRID_ID`, COUNT(DISTINCT eg.`ID`) AS groupCount, COUNT(DISTINCT eug.`ID`) AS memberCount
FROM `esua_epdc_group`.`epdc_group` eg
LEFT JOIN `esua_epdc_group`.`epdc_user_group` eug ON eug.`GROUP_ID`= eg.`ID`
AND eug.`DEL_FLAG`= '0'
AND eug.`STATE`= 10
WHERE eg.`DEL_FLAG`= '0'
AND eg.`STATE` IN(10, 15)
GROUP BY eg.`GRID_ID`) t0 ON t0.GRID_ID= sd.`id`
LEFT JOIN(
SELECT eg.`GRID_ID`, COUNT(DISTINCT et.`ID`) AS topicCount, SUM(et.`COMMENT_NUM`) AS partiCount, SUM(et.`STATE`= 10
OR et.`STATE`= 15) AS shiftIssueCount
FROM `esua_epdc_group`.`epdc_group` eg
LEFT JOIN `esua_epdc_group`.`epdc_topic` et ON et.`GROUP_ID`= eg.`ID`
AND et.`DEL_FLAG`= '0'
WHERE eg.`DEL_FLAG`= '0'
AND eg.`STATE` IN(10, 15)
GROUP BY eg.`GRID_ID`) t1 ON t1.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)
</select>
<select id="groupDetail" resultType="com.elink.esua.epdc.dto.screen.result.ScreenGroupDetailDTO">
SELECT sd.`pids` AS allParentIds,
t0.GRID_ID AS gridId,
sd.`name` AS gridName,
sd.`pid` AS parentAgencyId,
t0.ID AS groupId,
t0.GROUP_NAME AS groupName,
IFNULL(t0.NICKNAME, '') AS groupLeader,
IFNULL(t0.memberCount, 0) memberCount,
IFNULL(t0.topicCount, 0) topicCount,
IFNULL(t0.shiftIssueCount, 0) shiftIssueCount
FROM(
SELECT eg.`GRID_ID`, eg.`ID`, eg.`GROUP_NAME`, eug.`NICKNAME`,(
SELECT COUNT(t.`ID`)
FROM `esua_epdc_group`.`epdc_user_group` t
WHERE t.`DEL_FLAG`= '0'
AND t.`STATE`= 10
AND t.`GROUP_ID`= eg.`ID`) AS memberCount, COUNT(et.`ID`) AS topicCount, SUM(et.`STATE`= 10
OR et.`STATE`= 15) AS shiftIssueCount
FROM `esua_epdc_group`.`epdc_group` eg
LEFT JOIN `esua_epdc_group`.`epdc_user_group` eug ON eug.`GROUP_ID`= eg.`ID`
AND eug.`DEL_FLAG`= '0'
AND eug.`STATE`= 10
AND eug.`LORD_FLAG`= '1'
LEFT JOIN `esua_epdc_group`.`epdc_topic` et ON et.`GROUP_ID`= eg.`ID`
AND et.`DEL_FLAG`= '0'
WHERE eg.`DEL_FLAG`= '0'
AND eg.`GRID_ID` NOT IN(
SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)
GROUP BY eg.`ID`) t0
LEFT JOIN `esua_epdc_admin`.`sys_dept` sd ON sd.`id`= t0.GRID_ID
</select>
<select id="groupTopicTrend" resultType="com.elink.esua.epdc.dto.screen.result.ScreenGroupTopicTrendDTO">
SELECT sd.`pids` AS allParentIds,
sd.`id` AS gridId,
sd.`name` AS gridName,
sd.`pid` AS parentAgencyId,
IFNULL(t0.topicCount, 0) AS topicCount
FROM `esua_epdc_admin`.`sys_dept` sd
LEFT JOIN(
SELECT et.`GRID_ID`, COUNT(et.`ID`) AS topicCount
FROM `esua_epdc_group`.`epdc_topic` et
WHERE et.`DEL_FLAG`= '0'
AND DATE_FORMAT(et.`CREATED_TIME`, '%Y-%m')= #{yearMonth}
GROUP BY et.`GRID_ID`) t0 ON t0.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)
</select>
<select id="partyUserRankData" resultType="com.elink.esua.epdc.dto.screen.result.ScreenPartyUserRankDataDTO">
SELECT DATE_FORMAT(NOW(), '%Y%m%d') AS dataEndTime,
'agency' AS orgType,
sd.`id` AS gridId,
sd.`name` AS gridName,
sd1.`id` AS orgId,
sd1.`name` AS orgName,
t0. PARTY_FLAG AS partyFlag,
t0.ID AS userId,
t0.NICKNAME AS userName,
t0.POINTS AS pointTotal,
t0.LAST_NAME AS surname,
t0.FIRST_NAME AS name,
sd.`pids` AS allParentIds
FROM(
SELECT t.`ID`, t.`NICKNAME`, t.`PARTY_FLAG`, t.`POINTS`, t.`LAST_NAME`, t.`FIRST_NAME`, CASE WHEN t.`DEPT_ID` IS NULL
OR t.`DEPT_ID`= 0
OR t.`DEPT_ID`= '' THEN(
SELECT t1.`GRID_ID`
FROM `esua_epdc_user`.`epdc_user_grid_relation` t1
WHERE t1.`DEL_FLAG`= '0'
AND t1.`USER_ID`= t.`ID`
ORDER BY t1.`CREATED_TIME`
LIMIT 1) ELSE t.`DEPT_ID` END AS GRID_ID
FROM `esua_epdc_user`.`epdc_user` t
WHERE t.`DEL_FLAG`= '0'
ORDER BY t.`POINTS` DESC
LIMIT #{pageSize}) t0
LEFT JOIN `esua_epdc_admin`.`sys_dept` sd ON sd.`id`= t0.GRID_ID
LEFT JOIN `esua_epdc_admin`.`sys_dept` sd1 ON sd1.`id`= sd.`pid`
WHERE t0.GRID_ID NOT IN(
SELECT t.`dept_id`
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.`del_flag`= 0)
</select>
</mapper>