@ -197,110 +197,158 @@
</if>
</select>
<select id= "getSelfProject" resultType= "com.epmet.dto.extract.result.OrgStatisticsResultDTO" >
SELECT
a.AGENCY_ID,
a.count AS "sum",
IFNULL(b.count,0) AS "count"
FROM
(SELECT
da.ID AS AGENCY_ID,
COUNT( fm.ID ) AS "count"
FROM
fact_origin_project_main_daily fm
INNER JOIN dim_agency da ON fm.PIDS LIKE CONCAT( '%', da.ID, '%' )
AND da.`LEVEL` = #{level}
WHERE
fm.PROJECT_STATUS = 'closed'
AND fm.CUSTOMER_ID = #{customerId}
AND fm.MONTH_ID = #{monthId}
GROUP BY
da.ID) a
LEFT JOIN
(SELECT
da.ID AS AGENCY_ID,
COUNT( fm.ID ) AS "count"
FROM
fact_origin_project_main_daily fm
INNER JOIN dim_agency da ON fm.PIDS LIKE CONCAT( '%', da.ID, '%' )
AND da.`LEVEL` = #{level}
WHERE
fm.PROJECT_STATUS = 'closed'
AND fm.CUSTOMER_ID = #{customerId}
AND fm.MONTH_ID = #{monthId}
AND fm.FINISH_ORG_IDS LIKE CONCAT('%', fm.AGENCY_ID,'%')
GROUP BY
da.ID) b
ON a.AGENCY_ID = b.AGENCY_ID
SELECT
da.ID,
SUM( sum ) AS "sum",
SUM( count ) AS "count"
FROM
dim_agency da
INNER JOIN (
SELECT
fm.AGENCY_ID AS "orgId",
fm.PIDS,
COUNT( fm.PROJECT_ID ) AS "sum",
IFNULL( a.count, 0 ) AS "count"
FROM
fact_origin_project_log_daily fm
LEFT JOIN (
SELECT
orgId,
COUNT( PROJECT_ID ) AS "count"
FROM
(
SELECT
AGENCY_ID AS orgId,
PROJECT_ID
FROM
fact_origin_project_log_daily log
WHERE
DEL_FLAG = 0
AND CUSTOMER_ID = #{customerId}
AND ( ACTION_CODE = 'response' OR ACTION_CODE = 'close' OR ACTION_CODE = 'transfer' OR ACTION_CODE = 'created' )
AND EXISTS ( SELECT PROJECT_ID FROM fact_origin_project_log_daily WHERE DEL_FLAG = 0 AND ACTION_CODE = 'close' AND CUSTOMER_ID = #{customerId} AND MONTH_ID = #{monthId} AND log.PROJECT_ID = PROJECT_ID )
GROUP BY
PROJECT_ID
HAVING
COUNT(
DISTINCT ( ORG_ID )) = 1
) a
GROUP BY
orgId
) a ON fm.AGENCY_ID = a.orgId
WHERE
ACTION_CODE = 'close'
AND CUSTOMER_ID = #{customerId}
AND MONTH_ID = #{monthId}
GROUP BY
fm.AGENCY_ID
) a ON a.PIDS LIKE CONCAT( '%', da.ID, '%' )
AND da.DEL_FLAG = '0'
AND da.`LEVEL` = #{level}
AND da.CUSTOMER_ID = #{customerId}
AND da.AGENCY_DIM_TYPE = 'all'
GROUP BY
da.ID
</select>
<select id= "getResolveProject" resultType= "com.epmet.dto.extract.result.OrgStatisticsResultDTO" >
SELECT
a.AGENCY_ID,
a.count AS "sum",
IFNULL(b.count,0) AS "count"
FROM
(SELECT
da.ID AS AGENCY_ID,
COUNT( fm.ID ) AS "count"
FROM
fact_origin_project_main_daily fm
INNER JOIN dim_agency da ON fm.PIDS LIKE CONCAT( '%', da.ID, '%' )
AND da.`LEVEL` = #{level}
WHERE
fm.PROJECT_STATUS = 'closed'
AND fm.CUSTOMER_ID = #{customerId}
AND fm.MONTH_ID = #{monthId}
GROUP BY
da.ID) a
LEFT JOIN
(SELECT
da.ID AS AGENCY_ID,
COUNT( fm.ID ) AS "count"
FROM
fact_origin_project_main_daily fm
INNER JOIN dim_agency da ON fm.PIDS LIKE CONCAT( '%', da.ID, '%' )
AND da.`LEVEL` = #{level}
WHERE
fm.PROJECT_STATUS = 'closed'
AND fm.CUSTOMER_ID = #{customerId}
AND fm.MONTH_ID = #{monthId}
AND fm.IS_RESOLVED = 'resolved'
GROUP BY
da.ID) b
ON a.AGENCY_ID = b.AGENCY_ID
SELECT
da.ID,
SUM( sum ) AS "sum",
SUM( count ) AS "count"
FROM
dim_agency da
INNER JOIN (
SELECT
a.AGENCY_ID,
a.PIDS,
a.count AS "sum",
IFNULL( b.count, 0 ) AS "count"
FROM
(
SELECT
AGENCY_ID,
PIDS,
COUNT( fm.ID ) AS "count"
FROM
fact_origin_project_log_daily fm
WHERE
fm.DEL_FLAG = '0'
AND fm.ACTION_CODE = 'close'
AND fm.CUSTOMER_ID = #{customerId}
AND fm.MONTH_ID = #{monthId}
AND fm.IS_ACTIVE = 1
GROUP BY
AGENCY_ID
) a
LEFT JOIN (
SELECT
log.AGENCY_ID,
log.PIDS,
COUNT( log.PROJECT_ID ) AS "count"
FROM
fact_origin_project_main_daily fm
INNER JOIN fact_origin_project_log_daily log ON log.PROJECT_ID = fm.ID
AND log.DEL_FLAG = '0'
AND log.ACTION_CODE = 'close'
AND log.CUSTOMER_ID = #{customerId}
AND log.MONTH_ID = #{monthId}
AND log.IS_ACTIVE = 1
WHERE
fm.DEL_FLAG = '0'
AND fm.PROJECT_STATUS = 'closed'
AND fm.CUSTOMER_ID = #{customerId}
AND fm.IS_RESOLVED = 'resolved'
GROUP BY
log.AGENCY_ID
) b ON a.AGENCY_ID = b.AGENCY_ID
) a ON a.PIDS LIKE CONCAT( '%', da.ID, '%' )
AND da.DEL_FLAG = '0'
AND da.`LEVEL` = #{level}
AND da.CUSTOMER_ID = #{customerId}
AND da.AGENCY_DIM_TYPE = 'all'
GROUP BY
da.ID
</select>
<select id= "getGridResolveProject" resultType= "com.epmet.dto.extract.result.OrgStatisticsResultDTO" >
SELECT
a.GRID_ID AS "orgId",
a.OR G_ID AS "orgId",
a.count AS "sum",
IFNULL(b.count,0) AS "count"
IFNULL( b.count, 0 ) AS "count"
FROM
(SELECT
fm.GRID_ID,
COUNT( fm.ID ) AS "count"
FROM
fact_origin_project_main_daily fm
WHERE
fm.PROJECT_STATUS = 'closed'
AND fm.GRID_ID != ''
AND fm.CUSTOMER_ID = #{customerId}
AND fm.MONTH_ID = #{monthId}
GROUP BY
fm.GRID_ID) a
LEFT JOIN
(SELECT
fm.GRID_ID,
COUNT( fm.ID ) AS "count"
FROM
fact_origin_project_main_daily fm
WHERE
fm.PROJECT_STATUS = 'closed'
AND fm.GRID_ID != ''
AND fm.CUSTOMER_ID = #{customerId}
AND fm.MONTH_ID = #{monthId}
AND fm.IS_RESOLVED = 'resolved'
GROUP BY
fm.GRID_ID) b
ON a.GRID_ID = b.GRID_ID
(
SELECT
fm.ORG_ID,
COUNT( fm.PROJECT_ID ) AS "count"
FROM
fact_origin_project_log_daily fm
WHERE
fm.ACTION_CODE = 'close'
AND fm.CUSTOMER_ID = #{customerId}
AND fm.MONTH_ID = #{monthId}
AND fm.ORG_TYPE = 'grid'
GROUP BY
fm.ORG_ID
) a
LEFT JOIN (
SELECT
log.ORG_ID,
COUNT( log.PROJECT_ID ) AS "count"
FROM
fact_origin_project_main_daily fm
INNER JOIN fact_origin_project_log_daily log ON fm.ID = log.PROJECT_ID
AND ACTION_CODE = 'close'
AND log.CUSTOMER_ID = #{customerId}
AND log.MONTH_ID = #{monthId}
AND log.ORG_TYPE = 'grid'
WHERE
fm.PROJECT_STATUS = 'closed'
AND fm.CUSTOMER_ID = #{customerId}
AND fm.IS_RESOLVED = 'resolved'
GROUP BY
log.ORG_ID
) b ON a.ORG_ID = b.ORG_ID
ORDER BY
a.ORG_ID
</select>
<select id= "getGridProjectCount" resultType= "com.epmet.dto.extract.result.OrgStatisticsResultDTO" >
SELECT
@ -885,42 +933,118 @@
GROUP BY
da.ID) b
ON a.AGENCY_ID = b.AGENCY_ID
SELECT
da.ID,
SUM( sum ) AS "sum",
SUM( count ) AS "count"
FROM
dim_agency da
INNER JOIN (
SELECT
fm.AGENCY_ID AS "orgId",
fm.PIDS,
COUNT( fm.PROJECT_ID ) AS "sum",
IFNULL( a.count, 0 ) AS "count"
FROM
fact_origin_project_log_daily fm
LEFT JOIN (
SELECT
orgId,
COUNT( PROJECT_ID ) AS "count"
FROM
(
SELECT
AGENCY_ID AS orgId,
PROJECT_ID
FROM
fact_origin_project_log_daily log
WHERE
DEL_FLAG = 0
AND CUSTOMER_ID = #{customerId}
AND ( ACTION_CODE = 'response' OR ACTION_CODE = 'close' OR ACTION_CODE = 'transfer' OR ACTION_CODE = 'created' )
AND EXISTS ( SELECT PROJECT_ID FROM fact_origin_project_log_daily WHERE DEL_FLAG = 0 AND ACTION_CODE = 'close' AND CUSTOMER_ID = #{customerId} AND DATE_ID < = #{dateId} AND log.PROJECT_ID = PROJECT_ID )
GROUP BY
PROJECT_ID
HAVING
COUNT(
DISTINCT ( ORG_ID )) = 1
) a
GROUP BY
orgId
) a ON fm.AGENCY_ID = a.orgId
WHERE
ACTION_CODE = 'close'
AND CUSTOMER_ID = #{customerId}
AND DATE_ID < = #{dateId}
GROUP BY
fm.AGENCY_ID
) a ON a.PIDS LIKE CONCAT( '%', da.ID, '%' )
AND da.DEL_FLAG = '0'
AND da.`LEVEL` = #{level}
AND da.CUSTOMER_ID = #{customerId}
AND da.AGENCY_DIM_TYPE = 'all'
GROUP BY
da.ID
</select>
<select id= "getResolveProjectDaily" resultType= "com.epmet.dto.extract.result.OrgStatisticsResultDTO" >
SELECT
a.AGENCY_ID,
a.count AS "sum",
IFNULL(b.count,0) AS "count"
d a.ID,
SUM( sum ) AS "sum",
SUM( count ) AS "count"
FROM
(SELECT
da.ID AS AGENCY_ID,
COUNT( fm.ID ) AS "count"
FROM
fact_origin_project_main_daily fm
INNER JOIN dim_agency da ON fm.PIDS LIKE CONCAT( '%', da.ID, '%' )
AND da.`LEVEL` = #{level}
WHERE
fm.PROJECT_STATUS = 'closed'
AND fm.CUSTOMER_ID = #{customerId}
AND fm.DATE_ID < = #{dateId}
GROUP BY
da.ID) a
LEFT JOIN
(SELECT
da.ID AS AGENCY_ID,
COUNT( fm.ID ) AS "count"
FROM
fact_origin_project_main_daily fm
INNER JOIN dim_agency da ON fm.PIDS LIKE CONCAT( '%', da.ID, '%' )
AND da.`LEVEL` = #{level}
WHERE
fm.PROJECT_STATUS = 'closed'
AND fm.CUSTOMER_ID = #{customerId}
AND fm.DATE_ID < = #{dateId}
AND fm.IS_RESOLVED = 'resolved'
GROUP BY
da.ID) b
ON a.AGENCY_ID = b.AGENCY_ID
dim_agency da
INNER JOIN (
SELECT
a.AGENCY_ID,
a.PIDS,
a.count AS "sum",
IFNULL( b.count, 0 ) AS "count"
FROM
(
SELECT
AGENCY_ID,
PIDS,
COUNT( fm.ID ) AS "count"
FROM
fact_origin_project_log_daily fm
WHERE
fm.DEL_FLAG = '0'
AND fm.ACTION_CODE = 'close'
AND fm.CUSTOMER_ID = #{customerId}
AND fm.DATE_ID < = #{dateId}
AND fm.IS_ACTIVE = 1
GROUP BY
AGENCY_ID
) a
LEFT JOIN (
SELECT
log.AGENCY_ID,
log.PIDS,
COUNT( log.PROJECT_ID ) AS "count"
FROM
fact_origin_project_main_daily fm
INNER JOIN fact_origin_project_log_daily log ON log.PROJECT_ID = fm.ID
AND log.DEL_FLAG = '0'
AND log.ACTION_CODE = 'close'
AND log.CUSTOMER_ID = #{customerId}
AND log.DATE_ID < = #{dateId}
AND log.IS_ACTIVE = 1
WHERE
fm.DEL_FLAG = '0'
AND fm.PROJECT_STATUS = 'closed'
AND fm.CUSTOMER_ID = #{customerId}
AND fm.IS_RESOLVED = 'resolved'
GROUP BY
log.AGENCY_ID
) b ON a.AGENCY_ID = b.AGENCY_ID
) a ON a.PIDS LIKE CONCAT( '%', da.ID, '%' )
AND da.DEL_FLAG = '0'
AND da.`LEVEL` = #{level}
AND da.CUSTOMER_ID = #{customerId}
AND da.AGENCY_DIM_TYPE = 'all'
GROUP BY
da.ID
</select>
<!-- 5、当前网格内:来源于议题的项目:结案已解决数、6、当前网格内:来源于议题的项目:结案无需解决数、7、当前网格内:项目立项,结案已解决数;默认为0、8、当前网格内:项目立项,结案无需解决数;默认为0、 -->