|
|
@ -138,55 +138,157 @@ |
|
|
|
fopld.ORG_ID |
|
|
|
</select> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 查询各项目处理了多少机关 --> |
|
|
|
<select id="selectProjectParticipatedAgency" resultType="com.epmet.dto.extract.result.ProjectParticipatedAgencyResultDTO"> |
|
|
|
SELECT |
|
|
|
DISTINCT |
|
|
|
project.ID AS projectId, |
|
|
|
log.AGENCY_ID, |
|
|
|
agency.LEVEL, |
|
|
|
CASE agency.LEVEL WHEN 'community' THEN 1 WHEN 'street' THEN 2 WHEN 'district' THEN 3 |
|
|
|
WHEN 'city' THEN 4 WHEN 'province' THEN 5 END AS score |
|
|
|
AGENCY_ID, |
|
|
|
COUNT(DISTINCT PROJECT_ID) AS count |
|
|
|
FROM |
|
|
|
fact_origin_project_log_daily |
|
|
|
WHERE |
|
|
|
DEL_FLAG = '0' |
|
|
|
AND CUSTOMER_ID = #{customerId} |
|
|
|
AND ACTION_CODE IN ('created','transfer','return','response','close') |
|
|
|
<if test="agencies != null and agencies.size() > 0"> |
|
|
|
<foreach collection="agencies" item="agencyId" open="AND ( " separator=" OR " close=" ) "> |
|
|
|
AGENCY_ID = #{agencyId} |
|
|
|
</foreach> |
|
|
|
</if> |
|
|
|
<if test='null != dimId and "" != dimId.trim()'> |
|
|
|
AND MONTH_ID <![CDATA[>=]]> #{dimId} |
|
|
|
</if> |
|
|
|
GROUP BY AGENCY_ID |
|
|
|
</select> |
|
|
|
|
|
|
|
<!-- 评价周期内被吹哨项目数--> |
|
|
|
<select id="selectAgencyWhistledCount" resultType="com.epmet.dto.extract.result.ProjectParticipatedAgencyResultDTO"> |
|
|
|
SELECT |
|
|
|
AGENCY_ID, |
|
|
|
COUNT(DISTINCT PROJECT_ID) AS count |
|
|
|
FROM |
|
|
|
fact_origin_project_log_daily |
|
|
|
WHERE DEL_FLAG = '0' |
|
|
|
AND CUSTOMER_ID = #{customerId} |
|
|
|
AND IS_ACTIVE = '0' |
|
|
|
<if test='null != dimId and "" != dimId.trim()'> |
|
|
|
AND MONTH_ID = #{dimId} |
|
|
|
AND NOT EXISTS( |
|
|
|
SELECT ID |
|
|
|
FROM fact_origin_project_log_daily |
|
|
|
WHERE DEL_FLAG = '0' |
|
|
|
AND MONTH_ID <![CDATA[ < ]]> #{dimId} |
|
|
|
AND IS_ACTIVE = '0' |
|
|
|
<if test="agencies != null and agencies.size() > 0"> |
|
|
|
<foreach collection="agencies" item="agencyId" open="AND (" close=" )" separator=" OR "> |
|
|
|
AGENCY_ID = #{agencyId} |
|
|
|
</foreach> |
|
|
|
</if> |
|
|
|
) |
|
|
|
</if> |
|
|
|
<if test="agencies != null and agencies.size() > 0"> |
|
|
|
<foreach collection="agencies" item="agencyId" open="AND (" close=" )" separator=" OR "> |
|
|
|
AGENCY_ID = #{agencyId} |
|
|
|
</foreach> |
|
|
|
</if> |
|
|
|
GROUP BY AGENCY_ID |
|
|
|
</select> |
|
|
|
<!-- 评价周期内被吹哨且被办结(无论是哪一级办结)的项目数 --> |
|
|
|
<select id="selectWhistledAgencyClosedProjectCount" resultType="com.epmet.dto.extract.result.ProjectParticipatedAgencyResultDTO"> |
|
|
|
SELECT |
|
|
|
log.AGENCY_ID, |
|
|
|
COUNT(DISTINCT log.PROJECT_ID) AS count |
|
|
|
FROM |
|
|
|
fact_origin_project_main_daily project |
|
|
|
LEFT JOIN |
|
|
|
fact_origin_project_log_daily log |
|
|
|
ON log.PROJECT_ID = project.ID AND log.DEL_FLAG = '0' AND log.IS_ACTIVE = '1' |
|
|
|
LEFT JOIN |
|
|
|
dim_object_status dimStatus |
|
|
|
ON project.PROJECT_STATUS = dimStatus.STATUS_CODE AND dimStatus.DEL_FLAG = '0' AND dimStatus.STATUS_TYPE = 'project' |
|
|
|
LEFT JOIN |
|
|
|
dim_object_action dimAction |
|
|
|
ON log.ACTION_CODE = dimAction.ACTION_CODE AND dimAction.DEL_FLAG = '0' AND dimAction.ACTION_TYPE = 'project' |
|
|
|
LEFT JOIN |
|
|
|
dim_agency agency |
|
|
|
ON log.AGENCY_ID = agency.ID AND agency.DEL_FLAG = '0' AND agency.CUSTOMER_ID = #{customerId} |
|
|
|
WHERE |
|
|
|
project.DEL_FLAG = '0' |
|
|
|
AND |
|
|
|
dimStatus.STATUS_CODE = 'closed' |
|
|
|
AND |
|
|
|
dimAction.ACTION_CODE != 'return' |
|
|
|
AND |
|
|
|
project.CUSTOMER_ID = #{customerId} |
|
|
|
<if test='null != dimId and "" != dimId'> |
|
|
|
<choose> |
|
|
|
<when test='"month" == dateType'> |
|
|
|
LEFT JOIN fact_origin_project_main_daily project ON log.PROJECT_ID = project.ID AND project.DEL_FLAG = '0' AND project.CUSTOMER_ID = #{customerId} |
|
|
|
WHERE log.DEL_FLAG = '0' |
|
|
|
AND project.PROJECT_STATUS LIKE 'close%' |
|
|
|
AND log.CUSTOMER_ID = #{customerId} |
|
|
|
AND log.IS_ACTIVE = '0' |
|
|
|
|
|
|
|
<if test='null != dimId and "" != dimId.trim()'> |
|
|
|
AND log.MONTH_ID = #{dimId} |
|
|
|
</if> |
|
|
|
<if test="agencies != null and agencies.size() > 0"> |
|
|
|
<foreach collection="agencies" item="agencyId" open="AND (" close=" )" separator=" OR "> |
|
|
|
log.AGENCY_ID = #{agencyId} |
|
|
|
</foreach> |
|
|
|
</if> |
|
|
|
GROUP BY log.AGENCY_ID |
|
|
|
</select> |
|
|
|
<!-- 查询机关办结次数 --> |
|
|
|
<select id="selectAgencyHandledProjectCount" resultType="com.epmet.dto.extract.result.ProjectParticipatedAgencyResultDTO"> |
|
|
|
SELECT |
|
|
|
SUBSTRING_INDEX(main.FINISH_ORG_IDS,':',1) AS agencyId, |
|
|
|
COUNT(main.ID) AS count |
|
|
|
FROM fact_origin_project_main_daily main |
|
|
|
LEFT JOIN fact_origin_project_log_daily log |
|
|
|
ON main.ID = log.PROJECT_ID AND log.DEL_FLAG = '0' AND log.ACTION_CODE = 'close' |
|
|
|
WHERE main.DEL_FLAG = '0' |
|
|
|
AND main.CUSTOMER_ID = #{customerId} |
|
|
|
<if test="null != agencies and agencies.size() > 0"> |
|
|
|
<foreach collection="agencies" item="item" open="AND ( " separator=" OR " close=" ) "> |
|
|
|
main.FINISH_ORG_IDS LIKE concat(#{item},'%') |
|
|
|
</foreach> |
|
|
|
</if> |
|
|
|
|
|
|
|
</when> |
|
|
|
<otherwise> |
|
|
|
|
|
|
|
AND log.DATE_ID = #{dimId} |
|
|
|
|
|
|
|
</otherwise> |
|
|
|
</choose> |
|
|
|
<if test='null != dimId and "" != dimId.trim()'> |
|
|
|
AND log.ID IS NOT NULL AND log.MONTH_ID = #{dimId} |
|
|
|
</if> |
|
|
|
GROUP BY SUBSTRING_INDEX(main.FINISH_ORG_IDS,':',1) |
|
|
|
</select> |
|
|
|
<!-- 查询评价周期内各级别机关办结的项目Id --> |
|
|
|
<select id="selectProjectIdHandledByAgency" resultType="com.epmet.dto.extract.result.ProjectParticipatedAgencyResultDTO"> |
|
|
|
SELECT |
|
|
|
ID AS projectId, |
|
|
|
SUBSTRING_INDEX(FINISH_ORG_IDS,':',1) AS agencyId |
|
|
|
FROM |
|
|
|
fact_origin_project_main_daily |
|
|
|
WHERE |
|
|
|
DEL_FLAG = '0' |
|
|
|
AND ID IN ( |
|
|
|
|
|
|
|
SELECT DISTINCT PROJECT_ID FROM fact_origin_project_log_daily |
|
|
|
WHERE DEL_FLAG = '0' AND CUSTOMER_ID = #{customerId} |
|
|
|
AND ACTION_CODE = 'close' |
|
|
|
<if test='null != dimId and "" != dimId'> |
|
|
|
AND MONTH_ID = #{dimId} |
|
|
|
</if> |
|
|
|
) |
|
|
|
ORDER BY agencyId |
|
|
|
</select> |
|
|
|
<!-- 计算每个办结项目的总耗时 --> |
|
|
|
<select id="selectProjectCostTime" resultType="com.epmet.dto.extract.result.ProjectParticipatedAgencyResultDTO"> |
|
|
|
SELECT |
|
|
|
DISTINCT |
|
|
|
log1.PROJECT_ID, |
|
|
|
IF( |
|
|
|
TIMESTAMPDIFF( DAY, log2.createdDate, DATE_FORMAT( log1.DATE_ID, '%Y-%m-%d' ) ) = 0, |
|
|
|
1, |
|
|
|
TIMESTAMPDIFF( DAY, log2.createdDate, DATE_FORMAT( log1.DATE_ID, '%Y-%m-%d' ) ) |
|
|
|
) * 8 * 60 AS count |
|
|
|
FROM |
|
|
|
fact_origin_project_log_daily log1 |
|
|
|
LEFT JOIN ( |
|
|
|
SELECT |
|
|
|
ID , |
|
|
|
DATE_FORMAT( DATE_ID, '%Y-%m-%d' ) AS createdDate |
|
|
|
FROM |
|
|
|
fact_origin_project_main_daily |
|
|
|
WHERE |
|
|
|
DEL_FLAG = '0' |
|
|
|
<foreach collection="projectIds" item="projectId" open="AND ( " separator=" OR " close=" ) "> |
|
|
|
ID = #{projectId} |
|
|
|
</foreach> |
|
|
|
AND PROJECT_STATUS = 'closed' |
|
|
|
|
|
|
|
ORDER BY project.ID,score DESC |
|
|
|
) log2 ON log1.PROJECT_ID = log2.ID |
|
|
|
WHERE |
|
|
|
log1.DEL_FLAG = '0' |
|
|
|
<foreach collection="projectIds" item="projectId" open="AND ( " separator=" OR " close=" ) "> |
|
|
|
log1.PROJECT_ID = #{projectId} |
|
|
|
</foreach> |
|
|
|
AND log1.IS_ACTIVE = '1' |
|
|
|
AND log1.ACTION_CODE = 'close' |
|
|
|
</select> |
|
|
|
<select id="selectGridResponse" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO"> |
|
|
|
SELECT a.ORG_ID, |
|
|
|