|  |  | @ -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_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} | 
			
		
	
		
			
				
					|  |  |  |         fact_origin_project_log_daily | 
			
		
	
		
			
				
					|  |  |  |         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'> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |                     AND log.MONTH_ID = #{dimId} | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |                 </when> | 
			
		
	
		
			
				
					|  |  |  |                 <otherwise> | 
			
		
	
		
			
				
					|  |  |  |         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> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |                     AND log.DATE_ID = #{dimId} | 
			
		
	
		
			
				
					|  |  |  |     <!-- 评价周期内被吹哨项目数--> | 
			
		
	
		
			
				
					|  |  |  |     <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_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} | 
			
		
	
		
			
				
					|  |  |  |         WHERE log.DEL_FLAG = '0' | 
			
		
	
		
			
				
					|  |  |  |         AND project.PROJECT_STATUS LIKE 'close%' | 
			
		
	
		
			
				
					|  |  |  |         AND log.CUSTOMER_ID = #{customerId} | 
			
		
	
		
			
				
					|  |  |  |         AND log.IS_ACTIVE = '0' | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |                 </otherwise> | 
			
		
	
		
			
				
					|  |  |  |             </choose> | 
			
		
	
		
			
				
					|  |  |  |         <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> | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |                 <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 ( | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         ORDER BY project.ID,score DESC | 
			
		
	
		
			
				
					|  |  |  | 					    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' | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             ) 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, | 
			
		
	
	
		
			
				
					|  |  | 
 |