Browse Source

被吹哨次数统计修改

dev_shibei_match
zhaoqifeng 5 years ago
parent
commit
d1a67d8b00
  1. 172
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml

172
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml

@ -23,6 +23,7 @@
AND da.`LEVEL` = #{level} AND da.`LEVEL` = #{level}
WHERE WHERE
fopld.IS_ACTIVE = 0 fopld.IS_ACTIVE = 0
AND (fopld.ACTION_CODE = 'transfer' OR fopld.ACTION_CODE = 'created')
AND fopld.MONTH_ID = #{monthId} AND fopld.MONTH_ID = #{monthId}
AND fopld.CUSTOMER_ID = #{customerId} AND fopld.CUSTOMER_ID = #{customerId}
GROUP BY GROUP BY
@ -137,147 +138,56 @@
fopld.ORG_ID fopld.ORG_ID
</select> </select>
<!-- 查询各项目处理了多少机关 -->
<select id="selectProjectParticipatedAgency" 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 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="selectProjectParticipatedAgency" resultType="com.epmet.dto.extract.result.ProjectParticipatedAgencyResultDTO">
<select id="selectAgencyWhistledCount" resultType="com.epmet.dto.extract.result.ProjectParticipatedAgencyResultDTO">
SELECT
AGENCY_ID,
COUNT(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}
</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 SELECT
DISTINCT
project.ID AS projectId,
log.AGENCY_ID, log.AGENCY_ID,
COUNT(DISTINCT log.PROJECT_ID) AS count 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
FROM FROM
fact_origin_project_main_daily project
LEFT JOIN
fact_origin_project_log_daily log fact_origin_project_log_daily log
LEFT JOIN fact_origin_project_main_daily project ON log.PROJECT_ID = project.ID AND project.DEL_FLAG = '0' AND project.CUSTOMER_ID = #{customerId} ON log.PROJECT_ID = project.ID AND log.DEL_FLAG = '0' AND log.IS_ACTIVE = '1'
WHERE log.DEL_FLAG = '0' LEFT JOIN
AND project.PROJECT_STATUS LIKE 'close%' dim_object_status dimStatus
AND log.CUSTOMER_ID = #{customerId} ON project.PROJECT_STATUS = dimStatus.STATUS_CODE AND dimStatus.DEL_FLAG = '0' AND dimStatus.STATUS_TYPE = 'project'
AND log.IS_ACTIVE = '0' 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'>
<if test='null != dimId and "" != dimId.trim()'> AND log.MONTH_ID = #{dimId}
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>
<if test='null != dimId and "" != dimId.trim()'> </when>
AND log.ID IS NOT NULL AND log.MONTH_ID = #{dimId} <otherwise>
</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 AND log.DATE_ID = #{dimId}
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'
) log2 ON log1.PROJECT_ID = log2.ID </otherwise>
WHERE </choose>
log1.DEL_FLAG = '0' </if>
<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>
ORDER BY project.ID,score DESC
</select>
<select id="selectGridResponse" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO"> <select id="selectGridResponse" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO">
SELECT a.ORG_ID, SELECT a.ORG_ID,
a.count AS "sum", a.count AS "sum",

Loading…
Cancel
Save