Browse Source

产品推送接口

街道、社区、区直部门指标数据统计错误问题修改
ftature/screen
liuchuang 4 years ago
parent
commit
26b649e5d2
  1. 269
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/screen/ScreenIndexDataDao.xml

269
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/screen/ScreenIndexDataDao.xml

@ -485,148 +485,161 @@
</select>
<select id="selectListOrgGovrnAbility" resultType="com.elink.esua.epdc.dto.screen.result.OrgGovrnAbilityDTO">
select
SELECT
d.id as agencyId,
if(d.id = '1215437824174608386',0,d.pid) AS parentId,
DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y'),'%Y') AS yearId,
CONCAT(DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y'), '%Y'),
'Q',
QUARTER(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y-%m-%d'))) quarterId,
CONCAT(DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y'), '%Y'), '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,
CASE d.TYPE_KEY
WHEN 'community_party' THEN 'community'
WHEN 'street_party' THEN 'street'
WHEN 'district_party' THEN 'district' END as dataType,
IFNULL(tr.transferedCount,0) AS transferedCount,
IFNULL(tr.closedProjectCount,0) AS closedProjectCount,
IFNULL(tr.respProjectRatio,0.00) AS respProjectRatio,
IFNULL(tr.closedProjectRatio,0.00) AS closedProjectRatio,
IFNULL(tr.satisfactionRatio,0.00) AS satisfactionRatio,
CASE d.TYPE_KEY WHEN 'community_party' THEN 'community' WHEN 'street_party' THEN 'street' WHEN 'district_party' THEN 'district' END as dataType,
IFNULL(t1.transferedCount, 0) AS transferedCount,
IFNULL(t.closedProjectCount, 0) AS closedProjectCount,
IFNULL(round((t1.respProject / t1.transferedCount),2), 0.00) respProjectRatio,
IFNULL(t1.respProject, 0) respProjectRatioFz,
IFNULL(t1.transferedCount, 0) respProjectRatioFm,
IFNULL(round((t.closedProjectCount / (t1.transferedCount - t.closedProjectCount)),4)*100, 0.00) AS closedProjectRatio,
IFNULL(t.closedProjectCount, 0) closedProjectRatioFz,
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,
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 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
0 AS overdueProjectRatioFm
FROM esua_epdc_admin.sys_dept d
left join (
select
t.DEPT_ID,
sum(t.transferedCount) as transferedCount,
count( me.ITEM_STATE = 10 or null) as closedProjectCount,
round(sum(t.respProject) / sum(t.transferedCount),2) respProjectRatio,
IFNULL(sum(t.respProject), 0) respProjectRatioFz,
IFNULL(sum(t.transferedCount), 0) respProjectRatioFm,
round(count(me.ITEM_STATE = 10 or null)/count( t.ITEM_ID),4)*100 as closedProjectRatio,
IFNULL(count(me.ITEM_STATE = 10 or null), 0) closedProjectRatioFz,
IFNULL(count( t.ITEM_ID), 0) closedProjectRatioFm,
IFNULL(ROUND((count(me.EVALUATION_SCORE = 1 or null) * 0.6 + count(me.EVALUATION_SCORE = 2 or null)) /
count(me.EVALUATION_SCORE is not null or null),4)*100, 0.00) as satisfactionRatio,
IFNULL(count(me.EVALUATION_SCORE = 1 or null) * 0.6 + count(me.EVALUATION_SCORE = 2 or null), 0) satisfactionRatioFz,
IFNULL(count(me.EVALUATION_SCORE is not null or null), 0) satisfactionRatioFm,
round(sum(TIMESTAMPDIFF(HOUR,me.CREATED_TIME,eih.CREATED_TIME)) / sum(t.transferedCount),2) as handleProjectRatio,
IFNULL(sum(TIMESTAMPDIFF(HOUR,me.CREATED_TIME,eih.CREATED_TIME)), 0) handleProjectRatioFz,
IFNULL(sum(t.transferedCount), 0) handleProjectRatioFm
from(
select
ei.DEPT_ID,
ei.ITEM_ID,
count(ei.ID) transferedCount,
sum(
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'
)
and d.id != '1214855713407389697'
ORDER BY d.TYPE_KEY
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')
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 id="selectListDeptGovrnAbility" resultType="com.elink.esua.epdc.dto.screen.result.DeptGovrnAbilityDTO">
select
SELECT
d.id as deptId,
d.PID as agencyId,
DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y'),'%Y') AS yearId,
CONCAT(DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y'), '%Y'),
'Q',
QUARTER(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y-%m-%d'))) quarterId,
CONCAT(DATE_FORMAT(STR_TO_DATE(#{yearMonth, jdbcType=VARCHAR}, '%Y'), '%Y'), '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,
IFNULL(tr.transferedCount,0) AS transferedCount,
IFNULL(tr.closedProjectCount,0) AS closedProjectCount,
IFNULL(tr.respProjectRatio,0.00) AS respProjectRatio,
IFNULL(tr.closedProjectRatio,0.00) AS closedProjectRatio,
IFNULL(tr.satisfactionRatio,0.00) AS satisfactionRatio,
IFNULL(tr.handleProjectRatio,0.00) AS handleProjectRatio,
IFNULL(tr.respProjectRatioFz,0) AS respProjectRatioFz,
IFNULL(tr.respProjectRatioFm,0) AS respProjectRatioFm,
IFNULL(tr.handleProjectRatioFz,0) AS handleProjectRatioFz,
IFNULL(tr.handleProjectRatioFm,0) AS handleProjectRatioFm,
IFNULL(tr.closedProjectRatioFz,0) AS closedProjectRatioFz,
IFNULL(tr.closedProjectRatioFm,0) AS closedProjectRatioFm,
IFNULL(tr.satisfactionRatioFz,0) AS satisfactionRatioFz,
IFNULL(tr.satisfactionRatioFm,0) AS satisfactionRatioFm
IFNULL(t1.transferedCount, 0) AS transferedCount,
IFNULL(t.closedProjectCount, 0) AS closedProjectCount,
IFNULL(round((t1.respProject / t1.transferedCount),2), 0.00) respProjectRatio,
IFNULL(t1.respProject, 0) respProjectRatioFz,
IFNULL(t1.transferedCount, 0) respProjectRatioFm,
IFNULL(round((t.closedProjectCount / (t1.transferedCount - t.closedProjectCount)),4)*100, 0.00) AS closedProjectRatio,
IFNULL(t.closedProjectCount, 0) closedProjectRatioFz,
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(t.handleProjectRatioFz, 0) handleProjectRatioFz,
IFNULL(t.handleProjectRatioFm, 0) handleProjectRatioFm,
IFNULL(t.handleProjectRatio,0.00) AS handleProjectRatio
FROM esua_epdc_admin.sys_dept d
left join (select
t.DEPT_ID,
sum(t.transferedCount) as transferedCount,
count( me.ITEM_STATE = 10 or null) as closedProjectCount,
round(sum(t.respProject) / sum(t.transferedCount),2) respProjectRatio,
IFNULL(sum(t.respProject), 0) respProjectRatioFz,
IFNULL(sum(t.transferedCount), 0) respProjectRatioFm,
round(count(me.ITEM_STATE = 10 or null)/count( t.ITEM_ID),4)*100 as closedProjectRatio,
IFNULL(count(me.ITEM_STATE = 10 or null), 0) closedProjectRatioFz,
IFNULL(count( t.ITEM_ID), 0) closedProjectRatioFm,
IFNULL(ROUND((count(me.EVALUATION_SCORE = 1 or null) * 0.6 + count(me.EVALUATION_SCORE = 2 or null)) /
count(me.EVALUATION_SCORE is not null or null),4)*100, 0.00) as satisfactionRatio,
IFNULL(count(me.EVALUATION_SCORE = 1 or null) * 0.6 + count(me.EVALUATION_SCORE = 2 or null), 0) satisfactionRatioFz,
IFNULL(count(me.EVALUATION_SCORE is not null or null), 0) satisfactionRatioFm,
round(sum(TIMESTAMPDIFF(HOUR,me.CREATED_TIME,eih.CREATED_TIME)) / sum(t.transferedCount),2) as handleProjectRatio,
IFNULL(sum(TIMESTAMPDIFF(HOUR,me.CREATED_TIME,eih.CREATED_TIME)), 0) handleProjectRatioFz,
IFNULL(sum(t.transferedCount), 0) handleProjectRatioFm
from (
select ei.DEPT_ID,
ei.ITEM_ID,
count(ei.ID) transferedCount,
sum(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 in ('district_dept','street_dept')
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'
)
ORDER BY d.TYPE_KEY
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')
ORDER BY d.TYPE_KEY;
</select>
</mapper>

Loading…
Cancel
Save