From 19313bb2331e3530b3fb5b20be36ba58cd9c2da2 Mon Sep 17 00:00:00 2001 From: wangchao Date: Wed, 23 Sep 2020 10:47:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=9E=E7=BB=93=E6=95=88=E7=8E=87=E3=80=81?= =?UTF-8?q?=E5=8A=9E=E7=BB=93=E7=8E=87=E5=81=9A=E5=93=8D=E5=BA=94=E8=B0=83?= =?UTF-8?q?=E6=95=B4=EF=BC=8C=E8=B0=83=E6=95=B4=E9=83=A8=E5=88=86=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FactOriginProjectOrgPeriodDailyDao.java | 4 +- .../impl/IndexCollCommunityServiceImpl.java | 15 ++++--- .../impl/IndexCollStreetServiceImpl.java | 15 ++++--- .../FactOriginProjectLogDailyService.java | 17 ++++++-- .../FactOriginProjectLogDailyServiceImpl.java | 41 ++++++++++++++++--- .../extract/FactOriginProjectLogDailyDao.xml | 2 +- .../FactOriginProjectOrgPeriodDailyDao.xml | 16 ++++---- 7 files changed, 80 insertions(+), 30 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.java index 72932604b2..6d88f7d950 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.java @@ -80,7 +80,7 @@ public interface FactOriginProjectOrgPeriodDailyDao extends BaseDao list); /** - * @Description 查找网格、部门对项目的响应系数 + * @Description 查找网格、部门对项目的办结系数 * @param customerId * @return * @author wangc @@ -89,7 +89,7 @@ public interface FactOriginProjectOrgPeriodDailyDao extends BaseDao selectSubOrgResponseCoefficient(@Param("customerId") String customerId,@Param("dimId") String dimId, @Param("dateType") String dateType); /** - * @Description 查找机关对项目的响应系数 + * @Description 查找机关对项目的办结系数 * @param customerId * @return * @author wangc diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollCommunityServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollCommunityServiceImpl.java index 5b9986b718..8391e684b7 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollCommunityServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollCommunityServiceImpl.java @@ -127,20 +127,25 @@ public class IndexCollCommunityServiceImpl implements IndexCollCommunityService //办结数 Map agencyHandleCount = factOriginProjectLogDailyService.getProjectHandledAgency(customerId,dimId.getMonthId(),"month"); - Map responseMap = factOriginProjectLogDailyService.getAgencyResponseRatio(customerId,dimId.getMonthId(),"month"); + Map agencyParticipatedCount = factOriginProjectLogDailyService.getCountOfProjectsHandledByAgency(customerId,dimId.getMonthId(),"month"); + Map efficiencyMap = factOriginProjectLogDailyService.getAgencyWorkPieceRatio(customerId,dimId.getMonthId(),"month"); list.forEach(entity ->{ entity.setClosedProjectCount(agencyHandleCount.get(entity.getAgencyId()) == null? NumConstant.ZERO : agencyHandleCount.get(entity.getAgencyId())); - BigDecimal element = entity.getClosedProjectRatio(); - if (entity.getTransferedCount() != NumConstant.ZERO) { + BigDecimal element = new BigDecimal(entity.getClosedProjectCount()); + //分母,即机关参与过的项目数(去重) + Integer denominator = agencyParticipatedCount.get(entity.getAgencyId()); + if (agencyParticipatedCount.get(entity.getAgencyId()) != NumConstant.ZERO) { //办结率 entity.setClosedProjectRatio( - element.divide(new BigDecimal(entity.getTransferedCount()), NumConstant.SIX, RoundingMode.HALF_UP) + element.divide(new BigDecimal(denominator), NumConstant.SIX, RoundingMode.HALF_UP) ); } - //响应度 + //办结效率 + entity.setHandleProjectRatio(efficiencyMap.get(entity.getAgencyId())); }); + factIndexGovrnAblityOrgMonthlyService.deleteByCustomer(customerId, dimId.getMonthId(), OrgTypeConstant.COMMUNITY); factIndexGovrnAblityOrgMonthlyService.saveList(list); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollStreetServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollStreetServiceImpl.java index c45015696b..896d2d47bd 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollStreetServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollStreetServiceImpl.java @@ -78,6 +78,7 @@ public class IndexCollStreetServiceImpl implements IndexCollStreetService { //办结项目率 entity.setClosedProjectRatio(new BigDecimal(NumConstant.ZERO)); entity.setSatisfactionRatio(new BigDecimal(NumConstant.ZERO)); + //街道办结项目的处理效率 entity.setHandleProjectRatio(new BigDecimal(NumConstant.ZERO)); return entity; }).collect(Collectors.toList()); @@ -117,17 +118,21 @@ public class IndexCollStreetServiceImpl implements IndexCollStreetService { } //办结数 Map agencyHandleCount = factOriginProjectLogDailyService.getProjectHandledAgency(customerId,dimId.getMonthId(),"month"); - Map responseMap = factOriginProjectLogDailyService.getAgencyResponseRatio(customerId,dimId.getMonthId(),"month"); + Map agencyParticipatedCount = factOriginProjectLogDailyService.getCountOfProjectsHandledByAgency(customerId,dimId.getMonthId(),"month"); + Map efficiencyMap = factOriginProjectLogDailyService.getAgencyWorkPieceRatio(customerId,dimId.getMonthId(),"month"); list.forEach(entity ->{ entity.setClosedProjectCount(agencyHandleCount.get(entity.getAgencyId()) == null? NumConstant.ZERO : agencyHandleCount.get(entity.getAgencyId())); - BigDecimal element = entity.getClosedProjectRatio(); - if (entity.getTransferedCount() != NumConstant.ZERO) { + BigDecimal element = new BigDecimal(entity.getClosedProjectCount()); + //分母,即机关参与过的项目数(去重) + Integer denominator = agencyParticipatedCount.get(entity.getAgencyId()); + if (agencyParticipatedCount.get(entity.getAgencyId()) != NumConstant.ZERO) { //办结率 entity.setClosedProjectRatio( - element.divide(new BigDecimal(entity.getTransferedCount()), NumConstant.SIX, RoundingMode.HALF_UP) + element.divide(new BigDecimal(denominator), NumConstant.SIX, RoundingMode.HALF_UP) ); } - //响应度 + //办结效率 + entity.setHandleProjectRatio(efficiencyMap.get(entity.getAgencyId())); }); factIndexGovrnAblityOrgMonthlyService.deleteByCustomer(customerId, dimId.getMonthId(), OrgTypeConstant.STREET); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectLogDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectLogDailyService.java index acb1ef4d29..d5364a836f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectLogDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectLogDailyService.java @@ -169,21 +169,32 @@ public interface FactOriginProjectLogDailyService extends BaseService getDepTransferCount(String customerId, String monthId, String level); /** - * @Description 查询各机关办结了多少项目 + * @Description 查询各机关办结(办结的含义指每个项目的结点中最高的机关)了多少项目 * @param customerId * @return * @author wangc * @date 2020.09.20 23:46 **/ Map getProjectHandledAgency(String customerId, String dimId,String dateType); + + /** + * @Description 查询机关单位经手的项目数 + * @param customerId + * @param dimId + * @param dateType - 日期维度类型 month date week quarter year + * @return + * @author wangc + * @date 2020.09.23 10:06 + **/ + Map getCountOfProjectsHandledByAgency(String customerId, String dimId,String dateType); /** - * @Description 计算机关响应度 + * @Description 计算机关办结项目效率 * @param customerId * @return * @author wangc * @date 2020.09.21 02:16 **/ - Map getAgencyResponseRatio(String customerId, String dimId,String dateType); + Map getAgencyWorkPieceRatio(String customerId, String dimId,String dateType); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectLogDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectLogDailyServiceImpl.java index 92f4c4a542..4808614df1 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectLogDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectLogDailyServiceImpl.java @@ -165,7 +165,7 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl getCountOfProjectsHandledByAgency(String customerId, String dimId, String dateType) { + Map result = new HashMap<>(); + List projectAgencyCount = baseDao.selectProjectParticipatedAgency(customerId,dimId,dateType); + if(!CollectionUtils.isEmpty(projectAgencyCount)){ + Map> map = + projectAgencyCount.stream().collect(Collectors.groupingBy(ProjectParticipatedAgencyResultDTO :: getProjectId)); + + map.forEach((agency,handledProjectList) -> { + result.put(agency,handledProjectList.size()); + }); + return result; + } + return result; + } + /** - * @Description 计算机关响应度 + * @Description 计算机关办结项目效率 * @param customerId * @return * @author wangc * @date 2020.09.21 02:16 **/ @Override - public Map getAgencyResponseRatio(String customerId, String dimId, String dateType) { + public Map getAgencyWorkPieceRatio(String customerId, String dimId, String dateType) { + //网格、部门的办结系数 List gridDeptResponse = projectOrgPeriodDailyDao.selectSubOrgResponseCoefficient(customerId, dimId, dateType); + //机关的办结系数 List agencyResponse = projectOrgPeriodDailyDao.selectAgencyResponseCoefficient(customerId, dimId, dateType); Map consumingMap = new HashMap<>(); Map timeMap = new HashMap<>(); @@ -229,13 +257,14 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl ratioMap = new HashMap<>(); + //效率map + Map efficiencyMap = new HashMap<>(); if(!CollectionUtils.isEmpty(consumingMap)) { consumingMap.keySet().forEach(agencyId -> { - ratioMap.put(agencyId, consumingMap.get(agencyId).divide(timeMap.get(agencyId), NumConstant.SIX, RoundingMode.HALF_UP)); + efficiencyMap.put(agencyId, consumingMap.get(agencyId).divide(timeMap.get(agencyId), NumConstant.SIX, RoundingMode.HALF_UP)); }); } - return ratioMap; + return efficiencyMap; } 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 2cf8eb9b10..00e1e590bb 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 @@ -151,7 +151,7 @@ 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' + 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' diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.xml index c5b8f718fe..e29b35bfb5 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.xml @@ -117,11 +117,11 @@ - + - +