Browse Source

治理能力统计修改

master
zhaoqifeng 4 years ago
parent
commit
0358f41bb6
  1. 16
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginExtractController.java
  2. 7
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/ProjectExtractServiceImpl.java
  3. 172
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml
  4. 382
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml

16
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginExtractController.java

@ -95,12 +95,16 @@ public class FactOriginExtractController {
@PostMapping("project")
public Result projectData(@RequestBody ExtractOriginFormDTO extractOriginFormDTO) {
List<String> customerIds = dimCustomerService.selectCustomerIdPage(1, 100);
customerIds.forEach(customerId -> {
ExtractOriginFormDTO dto = new ExtractOriginFormDTO();
dto.setCustomerId(customerId);
projectExtractService.saveOriginProjectDaily(dto);
});
if (null != extractOriginFormDTO) {
projectExtractService.saveOriginProjectDaily(extractOriginFormDTO);
} else {
List<String> customerIds = dimCustomerService.selectCustomerIdPage(1, 100);
customerIds.forEach(customerId -> {
ExtractOriginFormDTO dto = new ExtractOriginFormDTO();
dto.setCustomerId(customerId);
projectExtractService.saveOriginProjectDaily(dto);
});
}
return new Result();
}

7
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/ProjectExtractServiceImpl.java

@ -319,21 +319,14 @@ public class ProjectExtractServiceImpl implements ProjectExtractService {
entity.setOrgType(OrgTypeConstant.AGENCY);
entity.setOrgId(process.getAgencyId());
if (!process.getPids().contains(StrConstant.COLON)) {
entity.setPids("");
entity.setPid(NumConstant.ZERO_STR);
} else {
String[] orgArray = process.getPids().split(StrConstant.COLON);
if (orgArray.length > NumConstant.ONE) {
entity.setPid(orgArray[orgArray.length - NumConstant.TWO]);
String path = process.getPids().replaceAll(process.getAgencyId(), "");
if (path.endsWith(StrConstant.COLON)) {
path = path.substring(NumConstant.ZERO, path.length() - NumConstant.ONE);
}
entity.setPids(path);
} else {
log.warn("【data-statistical】业务数据抽取模块,ProjectExtractServiceImpl.saveOriginProjectDaily:查询出的项目节点发起人所属的orgIdPath不正确,agencyId->{},orgIdPath->{}", process.getAgencyId(), process.getPids());
entity.setPid(NumConstant.ZERO_STR);
entity.setPids("");
}
}
}

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

@ -539,58 +539,72 @@
a.count AS "sum",
IFNULL( b.count, 0 ) AS "count"
FROM
( SELECT
GRID_ID,
COUNT( ID ) AS "count"
FROM
fact_origin_project_main_daily
WHERE
CUSTOMER_ID = #{customerId}
AND MONTH_ID = #{monthId}
AND GRID_ID != ''
GROUP BY GRID_ID ) a
LEFT JOIN
( SELECT
(
SELECT
GRID_ID,
COUNT( ID ) AS "count"
FROM fact_origin_project_main_daily
FROM
fact_origin_project_main_daily
WHERE
PROJECT_STATUS = 'closed'
AND CUSTOMER_ID = #{customerId}
CUSTOMER_ID = #{customerId}
AND MONTH_ID = #{monthId}
AND GRID_ID != ''
GROUP BY GRID_ID ) b
ON a.GRID_ID = b.GRID_ID
GROUP BY
GRID_ID ) a
LEFT JOIN (
SELECT
a.GRID_ID,
COUNT( a.ID ) AS "count"
FROM
fact_origin_project_main_daily a
INNER JOIN fact_origin_project_log_daily b ON a.ID = b.PROJECT_ID
AND b.CUSTOMER_ID = #{customerId}
AND b.ACTION_CODE = 'close'
AND b.MONTH_ID = #{monthId}
WHERE
a.PROJECT_STATUS = 'closed'
AND a.CUSTOMER_ID = #{customerId}
AND a.MONTH_ID = #{monthId}
AND a.GRID_ID != ''
GROUP BY
GRID_ID) b ON a.GRID_ID = b.GRID_ID
</select>
<select id="selectAgencyClosed" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO">
SELECT
a.AGENCY_ID AS "orgId",
a.count AS "sum",
IFNULL( b.count, 0 ) AS "count"
a.AGENCY_ID AS "orgId",
a.count AS "sum",
IFNULL( b.count, 0 ) AS "count"
FROM
( SELECT
AGENCY_ID,
COUNT( ID ) AS "count"
(
SELECT
AGENCY_ID,
COUNT( ID ) AS "count"
FROM
fact_origin_project_main_daily
fact_origin_project_main_daily
WHERE
CUSTOMER_ID = #{customerId}
AND MONTH_ID = #{monthId}
AND AGENCY_ID != ''
GROUP BY AGENCY_ID ) a
LEFT JOIN
( SELECT
AGENCY_ID,
COUNT( ID ) AS "count"
FROM fact_origin_project_main_daily
WHERE
PROJECT_STATUS = 'closed'
AND CUSTOMER_ID = #{customerId}
AND MONTH_ID = #{monthId}
AND AGENCY_ID != ''
GROUP BY AGENCY_ID ) b
ON a.AGENCY_ID = b.AGENCY_ID
CUSTOMER_ID = #{customerId}
AND MONTH_ID = #{monthId}
AND AGENCY_ID != ''
GROUP BY
AGENCY_ID ) a
LEFT JOIN (
SELECT
a.AGENCY_ID,
COUNT( a.ID ) AS "count"
FROM
fact_origin_project_main_daily a
INNER JOIN fact_origin_project_log_daily b ON a.ID = b.PROJECT_ID
AND b.CUSTOMER_ID = #{customerId}
AND b.ACTION_CODE = 'close'
AND b.MONTH_ID = #{monthId}
WHERE
a.PROJECT_STATUS = 'closed'
AND a.CUSTOMER_ID = #{customerId}
AND a.MONTH_ID = #{monthId}
AND a.AGENCY_ID != ''
GROUP BY
AGENCY_ID) b ON a.AGENCY_ID = b.AGENCY_ID
</select>
<select id="selectNotReturn" resultType="com.epmet.dto.extract.result.TransferRightRatioResultDTO">
@ -753,45 +767,57 @@
</select>
<select id="selectGridSelfDaily" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO">
SELECT
GRID_ID AS "orgId",
COUNT( ID ) AS "sum",
IFNULL(a.count,0) AS "count"
fm.ORG_ID AS "orgId",
COUNT( fm.PROJECT_ID ) AS "sum",
IFNULL( a.count, 0 ) AS "count"
FROM
fact_origin_project_main_daily fm
LEFT JOIN (
fact_origin_project_log_daily fm
LEFT JOIN (
SELECT
orgId,
COUNT( PROJECT_ID ) AS "count"
FROM
(
SELECT
orgId,
COUNT( PROJECT_ID ) AS "count"
ORG_ID AS orgId,
PROJECT_ID
FROM
(
SELECT
ORG_ID AS orgId,
PROJECT_ID
FROM
fact_origin_project_log_daily
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 PROJECT_ID IN (
SELECT ID FROM fact_origin_project_main_daily WHERE DEL_FLAG = 0 AND PROJECT_STATUS = 'closed' AND ORIGIN = 'issue'
AND CUSTOMER_ID = #{customerId}
AND DATE_ID &lt;= #{dateId})
GROUP BY
PROJECT_ID
HAVING
COUNT(DISTINCT ( ORG_ID )) = 1) a
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 ORG_TYPE = 'grid'
AND CUSTOMER_ID = #{customerId}
AND DATE_ID &lt;= #{dateId}
AND log.PROJECT_ID = PROJECT_ID
)
GROUP BY
orgId
) a ON fm.GRID_ID = a.orgId
PROJECT_ID
HAVING
COUNT(
DISTINCT ( ORG_ID )) = 1
) a
GROUP BY
orgId
) a ON fm.ORG_ID = a.orgId
WHERE
PROJECT_STATUS = 'closed'
AND (ORIGIN = 'issue' OR ORIGIN = 'resi_event')
AND GRID_ID != ''
AND CUSTOMER_ID = #{customerId}
AND DATE_ID &lt;= #{dateId}
ACTION_CODE = 'close'
AND ORG_TYPE = 'grid'
AND CUSTOMER_ID = #{customerId}
AND DATE_ID &lt;= #{dateId}
GROUP BY
GRID_ID
fm.ORG_ID
ORDER BY
ORG_ID
</select>
<!-- 根据项目id, 查询处理明细-->

382
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml

@ -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.ORG_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 &lt;= #{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 &lt;= #{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"
da.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 &lt;= #{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 &lt;= #{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 &lt;= #{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 &lt;= #{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、 -->

Loading…
Cancel
Save