diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml index 21df7f9a68..c8c672e57f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml @@ -3,17 +3,19 @@ - + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml index 121c909d15..900704c914 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml @@ -47,7 +47,7 @@ - + SELECT + IFNULL(ld.ACTION_CODE,'good') AS actionCode, + md.GRID_ID AS gridId, + md.ID AS projectId + FROM fact_origin_project_main_daily md + LEFT JOIN fact_origin_project_log_daily ld ON (ld.PROJECT_ID = md.ID AND ld.DEL_FLAG = 0 AND ld.CUSTOMER_ID = #{customerId} AND ld.ACTION_CODE IN( 'bad','good', 'perfect')) + WHERE md.DEL_FLAG = 0 + AND md.ORIGIN = 'issue' + AND md.PROJECT_STATUS = 'closed' + AND md.CUSTOMER_ID = #{customerId} + AND md.MONTH_ID = #{monthId} @@ -92,29 +105,46 @@ COUNT( ID ) AS "count", SUM( IFNULL( b.score, 80 ) ) AS "ratio" FROM - ( SELECT f.ID, f.AGENCY_ID FROM fact_origin_project_main_daily f - INNER JOIN dim_agency da ON f.FINISH_ORG_IDS LIKE concat('%', da.ID, '%') - AND da.AGENCY_DIM_TYPE = 'all' - AND da.`LEVEL` = #{level} - AND da.CUSTOMER_ID = #{customerId} - WHERE 1=1 - AND f.MONTH_ID = #{monthId}) a - LEFT JOIN ( - SELECT - PROJECT_ID, - AVG( CASE ACTION_CODE WHEN 'bad' THEN 60 WHEN 'perfect' THEN 100 ELSE 80 END ) AS score - FROM - fact_origin_project_log_daily - WHERE - (ACTION_CODE = 'bad' - OR ACTION_CODE = 'good' - OR ACTION_CODE = 'perfect') - AND CUSTOMER_ID = #{customerId} - AND MONTH_ID = #{monthId} - GROUP BY - PROJECT_ID + ( + SELECT + f.ID, + log.AGENCY_ID + FROM + fact_origin_project_main_daily f + INNER JOIN fact_origin_project_log_daily log ON f.ID = log.PROJECT_ID + AND log.ACTION_CODE = 'close' + AND log.DEL_FLAG = '0' + AND log.CUSTOMER_ID = #{customerId} + AND log.MONTH_ID = #{monthId} + INNER JOIN dim_agency da ON log.PIDS LIKE concat( '%', da.ID, '%' ) + AND da.AGENCY_DIM_TYPE = 'all' + AND da.`LEVEL` = #{level} + AND da.CUSTOMER_ID = #{customerId} + + WHERE + 1 = 1 + AND f.ORIGIN = 'issue' + AND f.PROJECT_STATUS = 'closed' + AND f.CUSTOMER_ID = #{customerId} + ) a + LEFT JOIN ( + SELECT + l1.PROJECT_ID, + AVG( CASE l1.ACTION_CODE WHEN 'bad' THEN 60 WHEN 'perfect' THEN 100 ELSE 80 END ) AS score + FROM + fact_origin_project_log_daily l1 + INNER JOIN fact_origin_project_log_daily l2 ON l1.PROJECT_ID = l2.PROJECT_ID + AND l2.ACTION_CODE = 'close' + AND l2.MONTH_ID = #{monthId} + AND l2.CUSTOMER_ID = #{customerId} + WHERE + ( l1.ACTION_CODE = 'bad' OR l1.ACTION_CODE = 'good' OR l1.ACTION_CODE = 'perfect' ) + AND l1.CUSTOMER_ID = #{customerId} + GROUP BY + PROJECT_ID ) b ON a.ID = b.PROJECT_ID - GROUP BY AGENCY_ID + GROUP BY + AGENCY_ID