榆山
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.

1037 lines
28 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.ScreenGovernanceDao">
<select id="getStreetList" resultType="com.elink.esua.epdc.dto.SysDeptDTO">
SELECT
id,
pid,
pids,
NAME
FROM
esua_epdc_admin.sys_dept sd
WHERE
sd.del_flag = '0'
AND sd.type_key = 'street_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="getAgencyItemInfoList" resultType="com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenGovernItemInfoResultDTO">
SELECT
psd.id AS orgId,
psd.type_key,
IFNULL(sum(iis.ITEM_TOTAL), 0) AS ITEM_TOTAL,
IFNULL(
sum(iis.ITEM_SETTLE_TOTAL),
0
) AS ITEM_SETTLE_TOTAL
FROM
esua_epdc_admin.sys_dept sd
LEFT JOIN esua_epdc_admin.sys_dept psd ON psd.id = sd.pid
LEFT JOIN esua_epdc_analysis.epdc_issue_item_statistics iis ON iis.GRID_ID = sd.id
WHERE
sd.pid != 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.pid
</select>
<select id="governrankdatadaily" resultType="com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenGovernRankDataDailyResultDTO">
SELECT
DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y%m%d'
) AS dateId,
DATE_FORMAT(
STR_TO_DATE(
DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
),
'%Y'
),
'%Y'
) AS yearId,
DATE_FORMAT(
STR_TO_DATE(
DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
),
'%Y-%m'
),
'%Y%m'
) AS monthId,
'grid' AS orgType,
sd.id AS orgId,
sd.pid AS parentId,
sd. NAME AS orgName,
IF (
(IFNULL(count(hp.id), 0) - 1) &lt; 0,
0,
IFNULL(count(hp.id), 0) - 1
) AS responseCount,
IFNULL(st.ITEM_SETTLE_TOTAL, 0) AS resolvedCount,
IFNULL(st.ITEM_CLOSED_TOTAL, 0) AS closedCount,
IFNULL(st.ITEM_CLOSED_TOTAL, 0) AS closedProjectCount,
IFNULL(
ROUND(
(
st.ITEM_SETTLE_TOTAL + st.ITEM_CLOSED_TOTAL
) / st.ITEM_TOTAL,
4
),
0
) * 100 AS resolvedRatio,
IFNULL(hs.BYSELF_TOTAL, 0) AS governCount,
IFNULL(
ROUND(
hs.BYSELF_TOTAL / hs.ITEM_TOTAL,
4
),
0
) * 100 AS governRatio,
IFNULL(
iis.ITEM_SETTLE_TOTAL - hs.EVA_BAD_TOTAL,
0
) AS satisfactionCount,
IFNULL(
ROUND(
(
iis.ITEM_SETTLE_TOTAL - hs.EVA_BAD_TOTAL
) / iis.ITEM_SETTLE_TOTAL,
4
),
0
) * 100 AS satisfactionRatio
FROM
esua_epdc_admin.sys_dept sd
LEFT JOIN esua_epdc_events.epdc_item_handle_process hp ON hp.HANDLER_DEPT_ID = sd.id
LEFT JOIN esua_epdc_analysis.epdc_issue_item_statistics iis ON iis.GRID_ID = sd.id
AND hp.DEL_FLAG = '0'
AND DATE_FORMAT(hp.CREATED_TIME, '%Y-%m-%d') &lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
LEFT JOIN esua_epdc_analysis.epdc_issue_item_statistics st ON st.GRID_ID = sd.id
LEFT JOIN esua_epdc_analysis.epdc_grid_handle_statistics hs ON hs.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'
)
GROUP BY
sd.id
</select>
<select id="governrankdatadailyAgency" resultType="com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenGovernRankDataDailyResultDTO">
SELECT
DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y%m%d'
) AS dateId,
DATE_FORMAT(
STR_TO_DATE(
DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
),
'%Y'
),
'%Y'
) AS yearId,
DATE_FORMAT(
STR_TO_DATE(
DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
),
'%Y-%m'
),
'%Y%m'
) AS monthId,
'agency' AS orgType,
sd.id AS orgId,
sd.pid AS parentId,
sd. NAME AS orgName,
IF (
(IFNULL(count(hp.id), 0) - 1) &lt; 0,
0,
IFNULL(count(hp.id), 0) - 1
) AS responseCount,
IFNULL(st.ITEM_SETTLE_TOTAL, 0) AS resolvedCount,
IFNULL(st.ITEM_CLOSED_TOTAL, 0) AS closedCount,
IFNULL(st.ITEM_CLOSED_TOTAL, 0) AS closedProjectCount,
IFNULL(
ROUND(
(
st.ITEM_SETTLE_TOTAL + st.ITEM_CLOSED_TOTAL
) / st.ITEM_TOTAL,
4
),
0
) * 100 AS resolvedRatio,
IFNULL(hs.BYSELF_TOTAL, 0) AS governCount,
IFNULL(
ROUND(
hs.BYSELF_TOTAL / hs.ITEM_TOTAL,
4
),
0
) * 100 AS governRatio,
IFNULL(
hs.EVA_GOOD_TOTAL + hs.EVA_VERYGOOD_TOTAL + hs.NO_EVA_TOTAL,
0
) AS satisfactionCount,
IFNULL(
ROUND(
(
hs.EVA_GOOD_TOTAL + hs.EVA_VERYGOOD_TOTAL + hs.NO_EVA_TOTAL
) / hs.ITEM_TOTAL,
4
),
0
) * 100 AS satisfactionRatio
FROM
esua_epdc_admin.sys_dept sd
LEFT JOIN esua_epdc_events.epdc_item_handle_process hp ON hp.HANDLER_DEPT_ID = sd.id
AND hp.DEL_FLAG = '0'
AND DATE_FORMAT(hp.CREATED_TIME, '%Y-%m-%d') &lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
LEFT JOIN esua_epdc_analysis.epdc_issue_item_statistics st ON st.GRID_ID = sd.id
LEFT JOIN esua_epdc_analysis.epdc_grid_handle_statistics hs ON hs.DEPT_ID = sd.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',
'district_party'
)
GROUP BY
sd.id
</select>
<select id="governrankdatadailyNoResp" resultType="com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenGovernRankDataDailyResultDTO">
SELECT
d.DEPT_ID AS orgId,
COUNT(0) AS responseCount
FROM
esua_epdc_events.epdc_item_dept d
LEFT JOIN esua_epdc_events.epdc_item i ON i.ID = d.ITEM_ID
WHERE
d.ITEM_HANDLE_ID IS NOT NULL
AND d.DEL_FLAG = '0'
AND i.DEL_FLAG = '0'
AND i.ITEM_STATE = '0'
AND DATE_FORMAT(d.CREATED_TIME, '%Y-%m-%d') &lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
GROUP BY
d.DEPT_ID
</select>
<select id="gridgoverndaily" resultType="com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenGridGovernDailyResultDTO">
SELECT
info.*, IFNULL(
(
info.inGroupTopicResolvedCount + info.inGroupTopicUnResolvedCount
) / info.problemResolvedCount,
0
) AS groupSelfGovernRatio,
IFNULL(
info.gridSelfGovernProjectTotal / info.problemResolvedCount,
0
) AS gridSelfGovernRatio,
IFNULL(
info.communityClosedCount / info.problemResolvedCount,
0
) AS communityClosedRatio,
IFNULL(
info.streetClosedCount / info.problemResolvedCount,
0
) AS streetClosedRatio,
IFNULL(
info.districtClosedCount / info.problemResolvedCount,
0
) AS districtDeptClosedRatio
FROM
(
SELECT
DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y%m%d'
) AS dateId,
sd.id AS gridId,
sd.pid,
sd.pids,
IFNULL(
(
IFNULL(topic.topicResolvedCount, 0) + IFNULL(
topic.topicUnResolvedCount,
0
) + IFNULL(issue.issueResolvedCount, 0) + IFNULL(
issue.issueUnResolvedCount,
0
) + IFNULL(
item.issueProjectResolvedCount,
0
) + IFNULL(
item.issueProjectUnResolvedCount,
0
)
),
0
) AS problemResolvedCount,
IFNULL(topic.topicResolvedCount, 0) AS topicResolvedCount,
IFNULL(
topic.topicUnResolvedCount,
0
) AS topicUnResolvedCount,
IFNULL(issue.issueResolvedCount, 0) AS issueResolvedCount,
IFNULL(
issue.issueUnResolvedCount,
0
) AS issueUnResolvedCount,
IFNULL(
item.issueProjectResolvedCount,
0
) AS issueProjectResolvedCount,
IFNULL(
item.issueProjectUnResolvedCount,
0
) AS issueProjectUnResolvedCount,
IFNULL(
item.approvalProjectResolvedCount,
0
) AS approvalProjectResolvedCount,
IFNULL(
item.approvalProjectUnResolvedCount,
0
) AS approvalProjectUnResolvedCount,
IFNULL(
topic.inGroupTopicResolvedCount,
0
) AS inGroupTopicResolvedCount,
IFNULL(
topic.inGroupTopicUnResolvedCount,
0
) AS inGroupTopicUnResolvedCount,
IFNULL(
selfsolved.fromIssueResolvedInGridCount,
0
) AS fromIssueResolvedInGridCount,
IFNULL(
selfsolved.fromIssueUnResolvedInGridCount,
0
) AS fromIssueUnResolvedInGridCount,
IFNULL(
selfsolved.fromAgencyResolvedInGridCount,
0
) AS fromAgencyResolvedInGridCount,
IFNULL(
selfsolved.fromAgencyUnResolvedInGridCount,
0
) AS fromAgencyUnResolvedInGridCount,
IFNULL(
(
selfsolved.fromIssueResolvedInGridCount + selfsolved.fromIssueUnResolvedInGridCount + selfsolved.fromIssueUnResolvedInGridCount + selfsolved.fromAgencyResolvedInGridCount
),
0
) AS gridSelfGovernProjectTotal,
IFNULL(
commsolved.communityClosedCount,
0
) AS communityClosedCount,
IFNULL(
streetsolved.streetClosedCount,
0
) AS streetClosedCount,
IFNULL(
districtsolved.districtClosedCount,
0
) AS districtClosedCount
FROM
esua_epdc_admin.sys_dept sd
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS topicResolvedCount,
IFNULL(COUNT(0), 0) AS inGroupTopicResolvedCount,
0 AS topicUnResolvedCount,
0 AS inGroupTopicUnResolvedCount
FROM
esua_epdc_group.epdc_topic et
WHERE
et.DEL_FLAG = '0'
AND DATE_FORMAT(et.UPDATED_TIME, '%Y-%m-%d') &lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
AND et.STATE = '20'
GROUP BY
et.GRID_ID
) topic ON topic.GRID_ID = sd.id
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS issueResolvedCount,
0 AS issueUnResolvedCount
FROM
esua_epdc_events.epdc_issue eis
WHERE
eis.DEL_FLAG = '0'
AND DATE_FORMAT(
eis.UPDATED_TIME,
'%Y-%m-%d'
) &lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
AND eis.ISSUE_STATE = '2'
GROUP BY
eis.GRID_ID
) issue ON issue.GRID_ID = sd.id
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS issueProjectResolvedCount,
0 AS issueProjectUnResolvedCount,
0 AS approvalProjectResolvedCount,
0 AS approvalProjectUnResolvedCount
FROM
esua_epdc_events.epdc_item eit
WHERE
eit.DEL_FLAG = '0'
AND DATE_FORMAT(
eit.UPDATED_TIME,
'%Y-%m-%d'
) &lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
AND eit.ITEM_STATE IN ('5', '10')
GROUP BY
GRID_ID
) item ON item.GRID_ID = sd.id
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS fromIssueResolvedInGridCount,
0 AS fromIssueUnResolvedInGridCount,
0 AS fromAgencyResolvedInGridCount,
0 AS fromAgencyUnResolvedInGridCount
FROM
(
SELECT
GRID_ID,
eit.id,
hp.HANDLER_DEPT_ID,
eit.UPDATED_TIME
FROM
esua_epdc_events.epdc_item eit
LEFT JOIN esua_epdc_events.epdc_item_handle_process hp ON hp.item_id = eit.id
WHERE
eit.DEL_FLAG = '0'
AND hp.DEL_FLAG = '0'
AND eit.ITEM_STATE IN ('5', '10')
GROUP BY
eit.GRID_ID,
eit.ID
HAVING
COUNT(DISTINCT hp.HANDLER_DEPT_ID) = 1
) t
WHERE
t.GRID_ID = t.HANDLER_DEPT_ID
AND DATE_FORMAT(t.UPDATED_TIME, '%Y-%m-%d') &lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
GROUP BY
t.GRID_ID
) selfsolved ON selfsolved.GRID_ID = sd.id
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS communityClosedCount
FROM
(
SELECT
GRID_ID,
eit.id,
hp.HANDLER_DEPT_ID,
eit.UPDATED_TIME
FROM
esua_epdc_events.epdc_item eit
LEFT JOIN esua_epdc_events.epdc_item_handle_process hp ON hp.item_id = eit.id
LEFT JOIN esua_epdc_admin.sys_dept sd ON sd.id = hp.HANDLER_DEPT_ID
WHERE
eit.DEL_FLAG = '0'
AND hp.DEL_FLAG = '0'
AND eit.ITEM_STATE IN ('5', '10')
AND hp.STATE IN ('5', '10')
AND sd.type_key = 'community_party'
GROUP BY
eit.GRID_ID,
eit.ID
) t
WHERE
DATE_FORMAT(t.UPDATED_TIME, '%Y-%m-%d') &lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
GROUP BY
t.GRID_ID
) commsolved ON commsolved.GRID_ID = sd.id
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS streetClosedCount
FROM
(
SELECT
GRID_ID,
eit.id,
hp.HANDLER_DEPT_ID,
eit.UPDATED_TIME
FROM
esua_epdc_events.epdc_item eit
LEFT JOIN esua_epdc_events.epdc_item_handle_process hp ON hp.item_id = eit.id
LEFT JOIN esua_epdc_admin.sys_dept sd ON sd.id = hp.HANDLER_DEPT_ID
WHERE
eit.DEL_FLAG = '0'
AND hp.DEL_FLAG = '0'
AND eit.ITEM_STATE IN ('5', '10')
AND hp.STATE IN ('5', '10')
AND sd.type_key = 'street_party'
GROUP BY
eit.GRID_ID,
eit.ID
) t
WHERE
DATE_FORMAT(t.UPDATED_TIME, '%Y-%m-%d') &lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
GROUP BY
t.GRID_ID
) streetsolved ON streetsolved.GRID_ID = sd.id
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS districtClosedCount
FROM
(
SELECT
GRID_ID,
eit.id,
hp.HANDLER_DEPT_ID,
eit.UPDATED_TIME
FROM
esua_epdc_events.epdc_item eit
LEFT JOIN esua_epdc_events.epdc_item_handle_process hp ON hp.item_id = eit.id
LEFT JOIN esua_epdc_admin.sys_dept sd ON sd.id = hp.HANDLER_DEPT_ID
WHERE
eit.DEL_FLAG = '0'
AND hp.DEL_FLAG = '0'
AND eit.ITEM_STATE IN ('5', '10')
AND hp.STATE IN ('5', '10')
AND sd.type_key = 'district_party'
GROUP BY
eit.GRID_ID,
eit.ID
) t
WHERE
DATE_FORMAT(t.UPDATED_TIME, '%Y-%m-%d') &lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
GROUP BY
t.GRID_ID
) districtsolved ON districtsolved.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
) info
</select>
<select id="agencygoverndaily" resultType="com.elink.esua.epdc.dto.analysis.pc.screen.result.ScreenAgencyGovernDailyResultDTO">
SELECT
DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y%m%d'
) AS dateId,
sd.id AS agencyId,
CASE
WHEN sd.type_key = 'community_party' THEN
'community'
WHEN sd.type_key = 'street_party' THEN
'street'
WHEN sd.type_key = 'district_party' THEN
'district'
END AS LEVEL,
sd.pid,
sd.pids,
IFNULL(
sum(info.problemResolvedCount),
0
) AS problemResolvedCount,
IFNULL(
sum(info.topicResolvedCount),
0
) AS topicResolvedCount,
IFNULL(
sum(info.topicUnResolvedCount),
0
) AS topicUnResolvedCount,
IFNULL(
sum(info.issueResolvedCount),
0
) AS issueResolvedCount,
IFNULL(
sum(info.issueUnResolvedCount),
0
) AS issueUnResolvedCount,
IFNULL(
sum(
info.issueProjectResolvedCount
),
0
) AS issueProjectResolvedCount,
IFNULL(
sum(
info.issueProjectUnResolvedCount
),
0
) AS issueProjectUnResolvedCount,
IFNULL(
sum(
info.approvalProjectResolvedCount
),
0
) AS approvalProjectResolvedCount,
IFNULL(
sum(
info.approvalProjectUnResolvedCount
),
0
) AS approvalProjectUnResolvedCount,
IFNULL(
sum(
info.inGroupTopicResolvedCount
),
0
) AS inGroupTopicResolvedCount,
IFNULL(
sum(
info.inGroupTopicUnResolvedCount
),
0
) AS inGroupTopicUnResolvedCount,
IFNULL(
sum(
info.gridSelfGovernProjectTotal
),
0
) AS gridSelfGovernProjectTotal,
IFNULL(
sum(info.communityClosedCount),
0
) AS communityClosedCount,
IFNULL(
sum(info.streetClosedCount),
0
) AS streetClosedCount,
0 AS districtDeptClosedCount,
IFNULL(
(
sum(
info.inGroupTopicResolvedCount
) + sum(
info.inGroupTopicUnResolvedCount
)
) / sum(info.problemResolvedCount),
0
) AS groupSelfGovernRatio,
IFNULL(
sum(
info.gridSelfGovernProjectTotal
) / sum(info.problemResolvedCount),
0
) AS gridSelfGovernRatio,
IFNULL(
sum(info.communityClosedCount) / sum(info.problemResolvedCount),
0
) AS communityClosedRatio,
IFNULL(
sum(info.streetClosedCount) / sum(info.problemResolvedCount),
0
) AS streetClosedRatio,
IFNULL(
sum(info.districtClosedCount) / sum(info.problemResolvedCount),
0
) AS districtDeptClosedRatio
FROM
(
SELECT
sd.pids,
IFNULL(
(
IFNULL(topic.topicResolvedCount, 0) + IFNULL(
topic.topicUnResolvedCount,
0
) + IFNULL(issue.issueResolvedCount, 0) + IFNULL(
issue.issueUnResolvedCount,
0
) + IFNULL(
item.issueProjectResolvedCount,
0
) + IFNULL(
item.issueProjectUnResolvedCount,
0
)
),
0
) AS problemResolvedCount,
IFNULL(topic.topicResolvedCount, 0) AS topicResolvedCount,
IFNULL(
topic.topicUnResolvedCount,
0
) AS topicUnResolvedCount,
IFNULL(issue.issueResolvedCount, 0) AS issueResolvedCount,
IFNULL(
issue.issueUnResolvedCount,
0
) AS issueUnResolvedCount,
IFNULL(
item.issueProjectResolvedCount,
0
) AS issueProjectResolvedCount,
IFNULL(
item.issueProjectUnResolvedCount,
0
) AS issueProjectUnResolvedCount,
IFNULL(
item.approvalProjectResolvedCount,
0
) AS approvalProjectResolvedCount,
IFNULL(
item.approvalProjectUnResolvedCount,
0
) AS approvalProjectUnResolvedCount,
IFNULL(
topic.inGroupTopicResolvedCount,
0
) AS inGroupTopicResolvedCount,
IFNULL(
topic.inGroupTopicUnResolvedCount,
0
) AS inGroupTopicUnResolvedCount,
IFNULL(
selfsolved.fromIssueResolvedInGridCount,
0
) AS fromIssueResolvedInGridCount,
IFNULL(
selfsolved.fromIssueUnResolvedInGridCount,
0
) AS fromIssueUnResolvedInGridCount,
IFNULL(
selfsolved.fromAgencyResolvedInGridCount,
0
) AS fromAgencyResolvedInGridCount,
IFNULL(
selfsolved.fromAgencyUnResolvedInGridCount,
0
) AS fromAgencyUnResolvedInGridCount,
IFNULL(
(
selfsolved.fromIssueResolvedInGridCount + selfsolved.fromIssueUnResolvedInGridCount + selfsolved.fromIssueUnResolvedInGridCount + selfsolved.fromAgencyResolvedInGridCount
),
0
) AS gridSelfGovernProjectTotal,
IFNULL(
commsolved.communityClosedCount,
0
) AS communityClosedCount,
IFNULL(
streetsolved.streetClosedCount,
0
) AS streetClosedCount,
IFNULL(
districtsolved.districtClosedCount,
0
) AS districtClosedCount
FROM
esua_epdc_admin.sys_dept sd
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS topicResolvedCount,
IFNULL(COUNT(0), 0) AS inGroupTopicResolvedCount,
0 AS topicUnResolvedCount,
0 AS inGroupTopicUnResolvedCount
FROM
esua_epdc_group.epdc_topic et
WHERE
et.DEL_FLAG = '0'
AND DATE_FORMAT(et.UPDATED_TIME, '%Y-%m-%d') &lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
AND et.STATE = '20'
GROUP BY
et.GRID_ID
) topic ON topic.GRID_ID = sd.id
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS issueResolvedCount,
0 AS issueUnResolvedCount
FROM
esua_epdc_events.epdc_issue eis
WHERE
eis.DEL_FLAG = '0'
AND DATE_FORMAT(
eis.UPDATED_TIME,
'%Y-%m-%d'
) &lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
AND eis.ISSUE_STATE = '2'
GROUP BY
eis.GRID_ID
) issue ON issue.GRID_ID = sd.id
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS issueProjectResolvedCount,
0 AS issueProjectUnResolvedCount,
0 AS approvalProjectResolvedCount,
0 AS approvalProjectUnResolvedCount
FROM
esua_epdc_events.epdc_item eit
WHERE
eit.DEL_FLAG = '0'
AND DATE_FORMAT(
eit.UPDATED_TIME,
'%Y-%m-%d'
) &lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
AND eit.ITEM_STATE IN ('5', '10')
GROUP BY
GRID_ID
) item ON item.GRID_ID = sd.id
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS fromIssueResolvedInGridCount,
0 AS fromIssueUnResolvedInGridCount,
0 AS fromAgencyResolvedInGridCount,
0 AS fromAgencyUnResolvedInGridCount
FROM
(
SELECT
GRID_ID,
eit.id,
hp.HANDLER_DEPT_ID,
eit.UPDATED_TIME
FROM
esua_epdc_events.epdc_item eit
LEFT JOIN esua_epdc_events.epdc_item_handle_process hp ON hp.item_id = eit.id
WHERE
eit.DEL_FLAG = '0'
AND hp.DEL_FLAG = '0'
AND eit.ITEM_STATE IN ('5', '10')
GROUP BY
eit.GRID_ID,
eit.ID
HAVING
COUNT(DISTINCT hp.HANDLER_DEPT_ID) = 1
) t
WHERE
t.GRID_ID = t.HANDLER_DEPT_ID
AND DATE_FORMAT(t.UPDATED_TIME, '%Y-%m-%d') &lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
GROUP BY
t.GRID_ID
) selfsolved ON selfsolved.GRID_ID = sd.id
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS communityClosedCount
FROM
(
SELECT
GRID_ID,
eit.id,
hp.HANDLER_DEPT_ID,
eit.UPDATED_TIME
FROM
esua_epdc_events.epdc_item eit
LEFT JOIN esua_epdc_events.epdc_item_handle_process hp ON hp.item_id = eit.id
LEFT JOIN esua_epdc_admin.sys_dept sd ON sd.id = hp.HANDLER_DEPT_ID
WHERE
eit.DEL_FLAG = '0'
AND hp.DEL_FLAG = '0'
AND eit.ITEM_STATE IN ('5', '10')
AND hp.STATE IN ('5', '10')
AND sd.type_key = 'community_party'
GROUP BY
eit.GRID_ID,
eit.ID
) t
WHERE
DATE_FORMAT(t.UPDATED_TIME, '%Y-%m-%d') &lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
GROUP BY
t.GRID_ID
) commsolved ON commsolved.GRID_ID = sd.id
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS streetClosedCount
FROM
(
SELECT
GRID_ID,
eit.id,
hp.HANDLER_DEPT_ID,
eit.UPDATED_TIME
FROM
esua_epdc_events.epdc_item eit
LEFT JOIN esua_epdc_events.epdc_item_handle_process hp ON hp.item_id = eit.id
LEFT JOIN esua_epdc_admin.sys_dept sd ON sd.id = hp.HANDLER_DEPT_ID
WHERE
eit.DEL_FLAG = '0'
AND hp.DEL_FLAG = '0'
AND eit.ITEM_STATE IN ('5', '10')
AND hp.STATE IN ('5', '10')
AND sd.type_key = 'street_party'
GROUP BY
eit.GRID_ID,
eit.ID
) t
WHERE
DATE_FORMAT(t.UPDATED_TIME, '%Y-%m-%d') &lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
GROUP BY
t.GRID_ID
) streetsolved ON streetsolved.GRID_ID = sd.id
LEFT JOIN (
SELECT
GRID_ID,
IFNULL(COUNT(0), 0) AS districtClosedCount
FROM
(
SELECT
GRID_ID,
eit.id,
hp.HANDLER_DEPT_ID,
eit.UPDATED_TIME
FROM
esua_epdc_events.epdc_item eit
LEFT JOIN esua_epdc_events.epdc_item_handle_process hp ON hp.item_id = eit.id
LEFT JOIN esua_epdc_admin.sys_dept sd ON sd.id = hp.HANDLER_DEPT_ID
WHERE
eit.DEL_FLAG = '0'
AND hp.DEL_FLAG = '0'
AND eit.ITEM_STATE IN ('5', '10')
AND hp.STATE IN ('5', '10')
AND sd.type_key = 'district_party'
GROUP BY
eit.GRID_ID,
eit.ID
) t
WHERE
DATE_FORMAT(t.UPDATED_TIME, '%Y-%m-%d') &lt;= DATE_FORMAT(
date_add(now(), INTERVAL - 1 DAY),
'%Y-%m-%d'
)
GROUP BY
t.GRID_ID
) districtsolved ON districtsolved.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
) info
LEFT JOIN esua_epdc_admin.sys_dept sd ON find_in_set(sd.`id`, info.pids)
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',
'district_party'
)
GROUP BY
sd.id
</select>
</mapper>