if(hp.CREATED_TIME is not null, TIMESTAMPDIFF(HOUR,ei.CREATED_TIME,hp.CREATED_TIME),
TIMESTAMPDIFF(HOUR,ei.CREATED_TIME,now())
)
) respProject
from esua_epdc_events.epdc_item_dept ei
left join esua_epdc_events.epdc_item_handle_process hp on hp.id=ei.ITEM_HANDLE_ID and hp.DEL_FLAG = '0'
where ei.DEL_FLAG = '0'
and date_format(ei.CREATED_TIME, '%Y-%m' ) = #{yearMonth, jdbcType=VARCHAR}
group by ei.DEPT_ID,ei.ITEM_ID
)t
left join esua_epdc_events.epdc_item me on t.ITEM_ID=me.id and me.DEL_FLAG = '0'
left join esua_epdc_events.epdc_item_handle_process eih on eih.ITEM_ID=me.id
left join esua_epdc_events.epdc_category c ON me.CATEGORY_CODE = c.CATEGORY_CODE
group by t.DEPT_ID
)tr on tr.DEPT_ID=d.id
WHERE (d.TYPE_KEY = 'community_party' OR d.TYPE_KEY = 'street_party')
and d.DEL_FLAG = '0'
and d.id not in (
SELECT t.DEPT_ID FROM `esua_epdc_admin`.`sys_dept_config` t WHERE t.DEL_FLAG = '0'
)
LEFT JOIN
(SELECT
t.HANDLER_DEPT_ID,
COUNT(t.ITEM_ID) AS closedProjectCount,
IFNULL(ROUND((count(t.EVALUATION_SCORE = 1 or null) * 0.6 + count(t.EVALUATION_SCORE = 2 or null)) /
count(t.EVALUATION_SCORE is not null or null),4)*100, 0.00) as satisfactionRatio,
(count(t.EVALUATION_SCORE = 1 or null) * 0.6 + count(t.EVALUATION_SCORE = 2 or null)) AS satisfactionRatioFz,
count(t.EVALUATION_SCORE is not null or null) AS satisfactionRatioFm,
COUNT(t.ITEM_ID) / SUM(TIMESTAMPDIFF(MINUTE,t.itemCreatedTime, t.closedItemTime)) AS handleProjectRatio,
COUNT(t.ITEM_ID) AS handleProjectRatioFz,
SUM(TIMESTAMPDIFF(MINUTE,t.itemCreatedTime, t.closedItemTime)) AS handleProjectRatioFm
FROM
(SELECT eihp.`ITEM_ID` , eihp.`HANDLER_DEPT_ID` , eihp.`CREATED_TIME` AS closedItemTime, ei.`CREATED_TIME` AS itemCreatedTime, ei.`EVALUATION_SCORE`
FROM `esua_epdc_events`.`epdc_item_handle_process` eihp
LEFT JOIN `esua_epdc_events`.`epdc_item` ei on ei.`ID` = eihp.`ITEM_ID` AND ei.`DEL_FLAG` = '0'
WHERE eihp.`DEL_FLAG`= '0'
AND eihp.`STATE`= '10'
AND date_format(eihp.CREATED_TIME, '%Y-%m') = #{yearMonth, jdbcType=VARCHAR} GROUP BY eihp.`ITEM_ID`) t GROUP BY t.HANDLER_DEPT_ID) t on t.HANDLER_DEPT_ID = d.`id`
LEFT JOIN
(SELECT ttt.DEPT_ID, COUNT(ttt.ITEM_ID) AS transferedCount, SUM(TIMESTAMPDIFF(MINUTE,ttt.timeToBeWhistled, ttt.earliestResponseTime)) AS respProject FROM
(SELECT
tt.CREATED_TIME AS timeToBeWhistled,
MIN( tmphp.CREATED_TIME ) AS earliestResponseTime,
tt.ITEM_ID,
tt.DEPT_ID
FROM
(
SELECT
eid.ID,
eid.CREATED_TIME,
eid.DEPT_ID,
eid.ITEM_ID
FROM
`esua_epdc_events`.epdc_item_dept eid
WHERE
eid.DEL_FLAG = '0'
AND date_format( eid.CREATED_TIME, '%Y-%m' ) = #{yearMonth, jdbcType=VARCHAR}
GROUP BY
eid.ITEM_ID
) tt
LEFT JOIN `esua_epdc_events`.epdc_item_handle_process tmphp ON tmphp.ITEM_ID = tt.ITEM_ID
AND tmphp.HANDLER_DEPT_ID = tt.DEPT_ID
AND tmphp.CREATED_TIME > tt.CREATED_TIME
AND tmphp.DEL_FLAG = '0'
GROUP BY tt.`ID`) ttt WHERE ttt.earliestResponseTime IS NOT NULL GROUP BY ttt.DEPT_ID) t1 on t1.DEPT_ID = d.`id`
WHERE
d.DEL_FLAG= '0'
and (d.TYPE_KEY = 'community_party' OR d.TYPE_KEY = 'street_party')
left join esua_epdc_events.epdc_item_handle_process hp on hp.id=ei.ITEM_HANDLE_ID and hp.DEL_FLAG=0
where ei.DEL_FLAG = '0'
and date_format(ei.CREATED_TIME, '%Y-%m' ) = #{yearMonth, jdbcType=VARCHAR}
group by ei.DEPT_ID,ei.ITEM_ID
)t
left join esua_epdc_events.epdc_item me on t.ITEM_ID=me.id and me.DEL_FLAG = '0'
left join esua_epdc_events.epdc_item_handle_process eih on eih.ITEM_ID=me.id
LEFT JOIN esua_epdc_events.epdc_category c ON me.CATEGORY_CODE = c.CATEGORY_CODE
group by t.DEPT_ID
)tr on tr.DEPT_ID=d.id
WHERE d.TYPE_KEY in ('district_dept','street_dept')
and d.DEL_FLAG = '0'
LEFT JOIN
(SELECT
t.HANDLER_DEPT_ID,
COUNT(t.ITEM_ID) AS closedProjectCount,
IFNULL(ROUND((count(t.EVALUATION_SCORE = 1 or null) * 0.6 + count(t.EVALUATION_SCORE = 2 or null)) /
count(t.EVALUATION_SCORE is not null or null),4)*100, 0.00) as satisfactionRatio,
(count(t.EVALUATION_SCORE = 1 or null) * 0.6 + count(t.EVALUATION_SCORE = 2 or null)) AS satisfactionRatioFz,
count(t.EVALUATION_SCORE is not null or null) AS satisfactionRatioFm,
COUNT(t.ITEM_ID) / SUM(TIMESTAMPDIFF(MINUTE,t.itemCreatedTime, t.closedItemTime)) AS handleProjectRatio,
COUNT(t.ITEM_ID) AS handleProjectRatioFz,
SUM(TIMESTAMPDIFF(MINUTE,t.itemCreatedTime, t.closedItemTime)) AS handleProjectRatioFm
FROM
(SELECT eihp.`ITEM_ID` , eihp.`HANDLER_DEPT_ID` , eihp.`CREATED_TIME` AS closedItemTime, ei.`CREATED_TIME` AS itemCreatedTime, ei.`EVALUATION_SCORE`
FROM `esua_epdc_events`.`epdc_item_handle_process` eihp
LEFT JOIN `esua_epdc_events`.`epdc_item` ei on ei.`ID` = eihp.`ITEM_ID` AND ei.`DEL_FLAG` = '0'
WHERE eihp.`DEL_FLAG`= '0'
AND eihp.`STATE`= '10'
AND date_format(eihp.CREATED_TIME, '%Y-%m') = #{yearMonth, jdbcType=VARCHAR} GROUP BY eihp.`ITEM_ID`) t GROUP BY t.HANDLER_DEPT_ID) t on t.HANDLER_DEPT_ID = d.`id`
LEFT JOIN
(SELECT ttt.DEPT_ID, COUNT(ttt.ITEM_ID) AS transferedCount, SUM(TIMESTAMPDIFF(MINUTE,ttt.timeToBeWhistled, ttt.earliestResponseTime)) AS respProject FROM
(SELECT
tt.CREATED_TIME AS timeToBeWhistled,
MIN( tmphp.CREATED_TIME ) AS earliestResponseTime,
tt.ITEM_ID,
tt.DEPT_ID
FROM
(
SELECT
eid.ID,
eid.CREATED_TIME,
eid.DEPT_ID,
eid.ITEM_ID
FROM
`esua_epdc_events`.epdc_item_dept eid
WHERE
eid.DEL_FLAG = '0'
AND date_format( eid.CREATED_TIME, '%Y-%m' ) = #{yearMonth, jdbcType=VARCHAR}
GROUP BY
eid.ITEM_ID
) tt
LEFT JOIN `esua_epdc_events`.epdc_item_handle_process tmphp ON tmphp.ITEM_ID = tt.ITEM_ID
AND tmphp.HANDLER_DEPT_ID = tt.DEPT_ID
AND tmphp.CREATED_TIME > tt.CREATED_TIME
AND tmphp.DEL_FLAG = '0'
GROUP BY tt.`ID`) ttt WHERE ttt.earliestResponseTime IS NOT NULL GROUP BY ttt.DEPT_ID) t1 on t1.DEPT_ID = d.`id`
WHERE
d.DEL_FLAG= '0'
and d.TYPE_KEY in ('district_dept','street_dept')
and d.id not in(
SELECT t.DEPT_ID FROM `esua_epdc_admin`.`sys_dept_config` t WHERE t.DEL_FLAG = '0'