@ -485,148 +485,161 @@
</select>
</select>
<select id= "selectListOrgGovrnAbility" resultType= "com.elink.esua.epdc.dto.screen.result.OrgGovrnAbilityDTO" >
<select id= "selectListOrgGovrnAbility" resultType= "com.elink.esua.epdc.dto.screen.result.OrgGovrnAbilityDTO" >
select
SELECT
d.id as agencyId,
d.id as agencyId,
if(d.id = '1215437824174608386',0,d.pid) AS parentId,
if(d.id = '1215437824174608386',0,d.pid) AS parentId,
DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y'),'%Y') AS yearId,
DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y'),'%Y') AS yearId,
CONCAT(DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y'), '%Y'),
CONCAT(DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y'), '%Y'), 'Q', QUARTER(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y-%m-%d'))) quarterId,
'Q',
QUARTER(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y-%m-%d'))) quarterId,
DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y-%m'),'%Y%m') AS monthId,
DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y-%m'),'%Y%m') AS monthId,
CASE d.TYPE_KEY
CASE d.TYPE_KEY WHEN 'community_party' THEN 'community' WHEN 'street_party' THEN 'street' WHEN 'district_party' THEN 'district' END as dataType,
WHEN 'community_party' THEN 'community'
IFNULL(t1.transferedCount, 0) AS transferedCount,
WHEN 'street_party' THEN 'street'
IFNULL(t.closedProjectCount, 0) AS closedProjectCount,
WHEN 'district_party' THEN 'district' END as dataType,
IFNULL(round((t1.respProject / t1.transferedCount),2), 0.00) respProjectRatio,
IFNULL(tr.transferedCount,0) AS transferedCount,
IFNULL(t1.respProject, 0) respProjectRatioFz,
IFNULL(tr.closedProjectCount,0) AS closedProjectCount,
IFNULL(t1.transferedCount, 0) respProjectRatioFm,
IFNULL(tr.respProjectRatio,0.00) AS respProjectRatio,
IFNULL(round((t.closedProjectCount / (t1.transferedCount - t.closedProjectCount)),4)*100, 0.00) AS closedProjectRatio,
IFNULL(tr.closedProjectRatio,0.00) AS closedProjectRatio,
IFNULL(t.closedProjectCount, 0) closedProjectRatioFz,
IFNULL(tr.satisfactionRatio,0.00) AS satisfactionRatio,
IFNULL((t1.transferedCount - t.closedProjectCount), 0) closedProjectRatioFm,
IFNULL(t.satisfactionRatio, 0.00) AS satisfactionRatio,
IFNULL(t.satisfactionRatioFz, 0) AS satisfactionRatioFz,
IFNULL(t.satisfactionRatioFm, 0) AS satisfactionRatioFm,
IFNULL(IF( d.TYPE_KEY = 'street_party', t.handleProjectRatioFz, 0),0) handleProjectRatioFz,
IFNULL(IF( d.TYPE_KEY = 'street_party', t.handleProjectRatioFm, 0),0) handleProjectRatioFm,
IF( d.TYPE_KEY = 'street_party', IFNULL(t.handleProjectRatio,0.00),0.00) AS handleProjectRatio,
0.00 AS overdueProjectRatio,
0.00 AS overdueProjectRatio,
IF( d.TYPE_KEY = 'street_party', IFNULL(tr.handleProjectRatio,0.00),0.00) AS handleProjectRatio,
IFNULL(tr.respProjectRatioFz,0) AS respProjectRatioFz,
IFNULL(tr.respProjectRatioFm,0) AS respProjectRatioFm,
IFNULL(tr.closedProjectRatioFz,0) AS closedProjectRatioFz,
IFNULL(tr.closedProjectRatioFm,0) AS closedProjectRatioFm,
IFNULL(tr.satisfactionRatioFz,0) AS satisfactionRatioFz,
IFNULL(tr.satisfactionRatioFm,0) AS satisfactionRatioFm,
0 AS overdueProjectRatioFz,
0 AS overdueProjectRatioFz,
0 AS overdueProjectRatioFm,
0 AS overdueProjectRatioFm
IFNULL(IF( d.TYPE_KEY = 'street_party', tr.handleProjectRatioFz, 0),0) handleProjectRatioFz,
IFNULL(IF( d.TYPE_KEY = 'street_party', tr.handleProjectRatioFm, 0),0) handleProjectRatioFm
FROM esua_epdc_admin.sys_dept d
FROM esua_epdc_admin.sys_dept d
left join (
LEFT JOIN
select
(SELECT
t.DEPT_ID,
t.HANDLER_DEPT_ID,
sum(t.transferedCount) as transferedCount,
COUNT(t.ITEM_ID) AS closedProjectCount,
count( me.ITEM_STATE = 10 or null) as closedProjectCount,
IFNULL(ROUND((count(t.EVALUATION_SCORE = 1 or null) * 0.6 + count(t.EVALUATION_SCORE = 2 or null)) /
round(sum(t.respProject) / sum(t.transferedCount),2) respProjectRatio,
count(t.EVALUATION_SCORE is not null or null),4)*100, 0.00) as satisfactionRatio,
IFNULL(sum(t.respProject), 0) respProjectRatioFz,
(count(t.EVALUATION_SCORE = 1 or null) * 0.6 + count(t.EVALUATION_SCORE = 2 or null)) AS satisfactionRatioFz,
IFNULL(sum(t.transferedCount), 0) respProjectRatioFm,
count(t.EVALUATION_SCORE is not null or null) AS satisfactionRatioFm,
round(count(me.ITEM_STATE = 10 or null)/count( t.ITEM_ID),4)*100 as closedProjectRatio,
COUNT(t.ITEM_ID) / SUM(TIMESTAMPDIFF(MINUTE,t.itemCreatedTime, t.closedItemTime)) AS handleProjectRatio,
IFNULL(count(me.ITEM_STATE = 10 or null), 0) closedProjectRatioFz,
COUNT(t.ITEM_ID) AS handleProjectRatioFz,
IFNULL(count( t.ITEM_ID), 0) closedProjectRatioFm,
SUM(TIMESTAMPDIFF(MINUTE,t.itemCreatedTime, t.closedItemTime)) AS handleProjectRatioFm
IFNULL(ROUND((count(me.EVALUATION_SCORE = 1 or null) * 0.6 + count(me.EVALUATION_SCORE = 2 or null)) /
FROM
count(me.EVALUATION_SCORE is not null or null),4)*100, 0.00) as satisfactionRatio,
(SELECT eihp.`ITEM_ID` , eihp.`HANDLER_DEPT_ID` , eihp.`CREATED_TIME` AS closedItemTime, ei.`CREATED_TIME` AS itemCreatedTime, ei.`EVALUATION_SCORE`
IFNULL(count(me.EVALUATION_SCORE = 1 or null) * 0.6 + count(me.EVALUATION_SCORE = 2 or null), 0) satisfactionRatioFz,
FROM `esua_epdc_events`.`epdc_item_handle_process` eihp
IFNULL(count(me.EVALUATION_SCORE is not null or null), 0) satisfactionRatioFm,
LEFT JOIN `esua_epdc_events`.`epdc_item` ei on ei.`ID` = eihp.`ITEM_ID` AND ei.`DEL_FLAG` = '0'
round(sum(TIMESTAMPDIFF(HOUR,me.CREATED_TIME,eih.CREATED_TIME)) / sum(t.transferedCount),2) as handleProjectRatio,
WHERE eihp.`DEL_FLAG`= '0'
IFNULL(sum(TIMESTAMPDIFF(HOUR,me.CREATED_TIME,eih.CREATED_TIME)), 0) handleProjectRatioFz,
AND eihp.`STATE`= '10'
IFNULL(sum(t.transferedCount), 0) handleProjectRatioFm
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`
from(
LEFT JOIN
select
(SELECT ttt.DEPT_ID, COUNT(ttt.ITEM_ID) AS transferedCount, SUM(TIMESTAMPDIFF(MINUTE,ttt.timeToBeWhistled, ttt.earliestResponseTime)) AS respProject FROM
ei.DEPT_ID,
(SELECT
ei.ITEM_ID,
tt.CREATED_TIME AS timeToBeWhistled,
count(ei.ID) transferedCount,
MIN( tmphp.CREATED_TIME ) AS earliestResponseTime,
sum(
tt.ITEM_ID,
if(hp.CREATED_TIME is not null, TIMESTAMPDIFF(HOUR,ei.CREATED_TIME,hp.CREATED_TIME),
tt.DEPT_ID
TIMESTAMPDIFF(HOUR,ei.CREATED_TIME,now())
FROM
)
(
) respProject
SELECT
from esua_epdc_events.epdc_item_dept ei
eid.ID,
left join esua_epdc_events.epdc_item_handle_process hp on hp.id=ei.ITEM_HANDLE_ID and hp.DEL_FLAG = '0'
eid.CREATED_TIME,
where ei.DEL_FLAG = '0'
eid.DEPT_ID,
and date_format(ei.CREATED_TIME, '%Y-%m' ) = #{yearMonth, jdbcType=VARCHAR}
eid.ITEM_ID
group by ei.DEPT_ID,ei.ITEM_ID
FROM
)t
`esua_epdc_events`.epdc_item_dept eid
left join esua_epdc_events.epdc_item me on t.ITEM_ID=me.id and me.DEL_FLAG = '0'
WHERE
left join esua_epdc_events.epdc_item_handle_process eih on eih.ITEM_ID=me.id
eid.DEL_FLAG = '0'
left join esua_epdc_events.epdc_category c ON me.CATEGORY_CODE = c.CATEGORY_CODE
AND date_format( eid.CREATED_TIME, '%Y-%m' ) = #{yearMonth, jdbcType=VARCHAR}
group by t.DEPT_ID
GROUP BY
)tr on tr.DEPT_ID=d.id
eid.ITEM_ID
WHERE (d.TYPE_KEY = 'community_party' OR d.TYPE_KEY = 'street_party')
) tt
and d.DEL_FLAG = '0'
LEFT JOIN `esua_epdc_events`.epdc_item_handle_process tmphp ON tmphp.ITEM_ID = tt.ITEM_ID
and d.id not in (
AND tmphp.HANDLER_DEPT_ID = tt.DEPT_ID
SELECT t.DEPT_ID FROM `esua_epdc_admin`.`sys_dept_config` t WHERE t.DEL_FLAG = '0'
AND tmphp.CREATED_TIME > tt.CREATED_TIME
)
AND tmphp.DEL_FLAG = '0'
and d.id != '1214855713407389697'
GROUP BY tt.`ID`) ttt WHERE ttt.earliestResponseTime IS NOT NULL GROUP BY ttt.DEPT_ID) t1 on t1.DEPT_ID = d.`id`
ORDER BY d.TYPE_KEY
WHERE
d.DEL_FLAG= '0'
and (d.TYPE_KEY = 'community_party' OR d.TYPE_KEY = 'street_party')
and d.id != '1214855713407389697'
and d.id not in(
SELECT t.DEPT_ID
FROM `esua_epdc_admin`.`sys_dept_config` t
WHERE t.DEL_FLAG= '0')
ORDER BY d.TYPE_KEY;
</select>
</select>
<select id= "selectListDeptGovrnAbility" resultType= "com.elink.esua.epdc.dto.screen.result.DeptGovrnAbilityDTO" >
<select id= "selectListDeptGovrnAbility" resultType= "com.elink.esua.epdc.dto.screen.result.DeptGovrnAbilityDTO" >
select
SELECT
d.id as deptId,
d.id as deptId,
d.PID as agencyId,
d.PID as agencyId,
DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y'),'%Y') AS yearId,
DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y'),'%Y') AS yearId,
CONCAT(DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y'), '%Y'),
CONCAT(DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y'), '%Y'), 'Q', QUARTER(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y-%m-%d'))) quarterId,
'Q',
QUARTER(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y-%m-%d'))) quarterId,
DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y-%m'),'%Y%m') AS monthId,
DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y-%m'),'%Y%m') AS monthId,
IFNULL(tr.transferedCount, 0) AS transferedCount,
IFNULL(t1.transferedCount, 0) AS transferedCount,
IFNULL(tr .closedProjectCount,0) AS closedProjectCount,
IFNULL(t.closedProjectCount, 0) AS closedProjectCount,
IFNULL(tr.respProjectRatio,0.00) AS respProjectRatio,
IFNULL(round((t1.respProject / t1.transferedCount),2), 0.00) respProjectRatio,
IFNULL(tr.closedProjectRatio,0.00) AS closedProjectRatio ,
IFNULL(t1.respProject, 0) respProjectRatioFz ,
IFNULL(tr.satisfactionRatio,0.00) AS satisfactionRatio ,
IFNULL(t1.transferedCount, 0) respProjectRatioFm ,
IFNULL(tr.handleProjectRatio,0.00) AS handle ProjectRatio,
IFNULL(round((t.closedProjectCount / (t1.transferedCount - t.closedProjectCount)),4)*100, 0.00) AS closed ProjectRatio,
IFNULL(tr.respProjectRatioFz,0) AS resp ProjectRatioFz,
IFNULL(t.closedProjectCount, 0) closed ProjectRatioFz,
IFNULL(tr.respProjectRatioFm,0) AS resp ProjectRatioFm,
IFNULL((t1.transferedCount - t.closedProjectCount), 0) closed ProjectRatioFm,
IFNULL(tr.handleProjectRatioFz,0) AS handleProjectRatioFz ,
IFNULL(t.satisfactionRatio, 0.00) AS satisfactionRatio ,
IFNULL(tr.handleProjectRatioFm,0) AS handleProjectRatioFm ,
IFNULL(t.satisfactionRatioFz, 0) AS satisfactionRatioFz ,
IFNULL(tr.closedProjectRatioFz,0) AS closedProjectRatioFz ,
IFNULL(t.satisfactionRatioFm, 0) AS satisfactionRatioFm ,
IFNULL(tr.closedProjectRatioFm,0) AS closedProjectRatioFm ,
IFNULL(t.handleProjectRatioFz, 0) handleProjectRatioFz ,
IFNULL(tr.satisfactionRatioFz,0) AS satisfactionRatioFz ,
IFNULL(t.handleProjectRatioFm, 0) handleProjectRatioFm ,
IFNULL(tr.satisfactionRatioFm,0) AS satisfactionRatioFm
IFNULL(t.handleProjectRatio,0.00) AS handleProjectRatio
FROM esua_epdc_admin.sys_dept d
FROM esua_epdc_admin.sys_dept d
left join (select
LEFT JOIN
t.DEPT_ID,
(SELECT
sum(t.transferedCount) as transferedCount,
t.HANDLER_DEPT_ID,
count( me.ITEM_STATE = 10 or null) as closedProjectCount,
COUNT(t.ITEM_ID) AS closedProjectCount,
round(sum(t.respProject) / sum(t.transferedCount),2) respProjectRatio,
IFNULL(ROUND((count(t.EVALUATION_SCORE = 1 or null) * 0.6 + count(t.EVALUATION_SCORE = 2 or null)) /
IFNULL(sum(t.respProject), 0) respProjectRatioFz,
count(t.EVALUATION_SCORE is not null or null),4)*100, 0.00) as satisfactionRatio,
IFNULL(sum(t.transferedCount), 0) respProjectRatioFm,
(count(t.EVALUATION_SCORE = 1 or null) * 0.6 + count(t.EVALUATION_SCORE = 2 or null)) AS satisfactionRatioFz,
round(count(me.ITEM_STATE = 10 or null)/count( t.ITEM_ID),4)*100 as closedProjectRatio,
count(t.EVALUATION_SCORE is not null or null) AS satisfactionRatioFm,
IFNULL(count(me.ITEM_STATE = 10 or null), 0) closedProjectRatioFz,
COUNT(t.ITEM_ID) / SUM(TIMESTAMPDIFF(MINUTE,t.itemCreatedTime, t.closedItemTime)) AS handleProjectRatio,
IFNULL(count( t.ITEM_ID), 0) closedProjectRatioFm,
COUNT(t.ITEM_ID) AS handleProjectRatioFz,
IFNULL(ROUND((count(me.EVALUATION_SCORE = 1 or null) * 0.6 + count(me.EVALUATION_SCORE = 2 or null)) /
SUM(TIMESTAMPDIFF(MINUTE,t.itemCreatedTime, t.closedItemTime)) AS handleProjectRatioFm
count(me.EVALUATION_SCORE is not null or null),4)*100, 0.00) as satisfactionRatio,
FROM
IFNULL(count(me.EVALUATION_SCORE = 1 or null) * 0.6 + count(me.EVALUATION_SCORE = 2 or null), 0) satisfactionRatioFz,
(SELECT eihp.`ITEM_ID` , eihp.`HANDLER_DEPT_ID` , eihp.`CREATED_TIME` AS closedItemTime, ei.`CREATED_TIME` AS itemCreatedTime, ei.`EVALUATION_SCORE`
IFNULL(count(me.EVALUATION_SCORE is not null or null), 0) satisfactionRatioFm,
FROM `esua_epdc_events`.`epdc_item_handle_process` eihp
round(sum(TIMESTAMPDIFF(HOUR,me.CREATED_TIME,eih.CREATED_TIME)) / sum(t.transferedCount),2) as handleProjectRatio,
LEFT JOIN `esua_epdc_events`.`epdc_item` ei on ei.`ID` = eihp.`ITEM_ID` AND ei.`DEL_FLAG` = '0'
IFNULL(sum(TIMESTAMPDIFF(HOUR,me.CREATED_TIME,eih.CREATED_TIME)), 0) handleProjectRatioFz,
WHERE eihp.`DEL_FLAG`= '0'
IFNULL(sum(t.transferedCount), 0) handleProjectRatioFm
AND eihp.`STATE`= '10'
from (
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`
select ei.DEPT_ID,
LEFT JOIN
ei.ITEM_ID,
(SELECT ttt.DEPT_ID, COUNT(ttt.ITEM_ID) AS transferedCount, SUM(TIMESTAMPDIFF(MINUTE,ttt.timeToBeWhistled, ttt.earliestResponseTime)) AS respProject FROM
count(ei.ID) transferedCount,
(SELECT
sum(if(hp.CREATED_TIME is not null,
tt.CREATED_TIME AS timeToBeWhistled,
TIMESTAMPDIFF(HOUR,ei.CREATED_TIME,hp.CREATED_TIME),
MIN( tmphp.CREATED_TIME ) AS earliestResponseTime,
TIMESTAMPDIFF(HOUR,ei.CREATED_TIME,now()))) respProject
tt.ITEM_ID,
from esua_epdc_events.epdc_item_dept ei
tt.DEPT_ID
left join esua_epdc_events.epdc_item_handle_process hp on hp.id=ei.ITEM_HANDLE_ID and hp.DEL_FLAG=0
FROM
where ei.DEL_FLAG = '0'
(
and date_format(ei.CREATED_TIME, '%Y-%m' ) = #{yearMonth, jdbcType=VARCHAR}
SELECT
group by ei.DEPT_ID,ei.ITEM_ID
eid.ID,
)t
eid.CREATED_TIME,
left join esua_epdc_events.epdc_item me on t.ITEM_ID=me.id and me.DEL_FLAG = '0'
eid.DEPT_ID,
left join esua_epdc_events.epdc_item_handle_process eih on eih.ITEM_ID=me.id
eid.ITEM_ID
LEFT JOIN esua_epdc_events.epdc_category c ON me.CATEGORY_CODE = c.CATEGORY_CODE
FROM
group by t.DEPT_ID
`esua_epdc_events`.epdc_item_dept eid
)tr on tr.DEPT_ID=d.id
WHERE
WHERE d.TYPE_KEY in ('district_dept','street_dept')
eid.DEL_FLAG = '0'
and d.DEL_FLAG = '0'
AND date_format( eid.CREATED_TIME, '%Y-%m' ) = #{yearMonth, jdbcType=VARCHAR}
and d.id not in (
GROUP BY
SELECT t.DEPT_ID FROM `esua_epdc_admin`.`sys_dept_config` t WHERE t.DEL_FLAG = '0'
eid.ITEM_ID
)
) tt
ORDER BY d.TYPE_KEY
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')
ORDER BY d.TYPE_KEY;
</select>
</select>
</mapper>
</mapper>