From e20b977f9bbca41e8b41b64ac566528526d93e74 Mon Sep 17 00:00:00 2001 From: wangchao Date: Fri, 16 Oct 2020 16:56:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E5=90=B9=E5=93=A8=E6=AC=A1=E6=95=B0?= =?UTF-8?q?=E3=80=81=E5=90=B9=E5=93=A8=E9=A1=B9=E7=9B=AE=E6=95=B0=E7=9A=84?= =?UTF-8?q?=E9=87=8D=E6=96=B0=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/FactOriginProjectLogDailyDao.java | 2 +- .../impl/IndexCollCommunityServiceImpl.java | 21 +- .../impl/IndexCollDistrictServiceImpl.java | 19 +- .../impl/IndexCollStreetServiceImpl.java | 19 +- .../FactOriginProjectLogDailyService.java | 4 +- .../FactOriginProjectLogDailyServiceImpl.java | 22 ++- .../extract/FactOriginProjectLogDailyDao.xml | 182 ++++++++++++++---- 7 files changed, 179 insertions(+), 90 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectLogDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectLogDailyDao.java index a4ef520287..500fd52d48 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectLogDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectLogDailyDao.java @@ -117,7 +117,7 @@ public interface FactOriginProjectLogDailyDao extends BaseDao selectProjectParticipatedAgency(@Param("agencies") List agencies, @Param("customerId") String customerId,@Param("dimId") String dimId); /*** - * @Description 评价周期内被吹哨次数 + * @Description 评价周期内被吹哨项目数 * @param agencies * @param customerId * @param dimId 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 d8c024085b..062990b4ed 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 @@ -138,24 +138,15 @@ public class IndexCollCommunityServiceImpl implements IndexCollCommunityService List agencies = agencyList.stream().map(DimAgencyDTO :: getId).distinct().collect(Collectors.toList()); //办结数 Map agencyHandleCount = factOriginProjectLogDailyService.getProjectHandledAgency(agencies,customerId,dimId.getMonthId(),"month"); - ////评价周期内被吹哨且被办结(无论是哪一级办结)的项目数 - Map whistledAgencyClosedProject = factOriginProjectLogDailyService.getWhistledAgencyClosedProjectCount(agencies,customerId,dimId.getMonthId(),"month"); + //办结率 + Map handlingRatioMap = factOriginProjectLogDailyService.getHandlingRatio(agencies,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 = new BigDecimal(Optional.ofNullable(whistledAgencyClosedProject.get(entity.getAgencyId())).orElse(NumConstant.ZERO)); - //分母,即机关参与过的项目数(去重) - //“评价周期内被吹哨且办结的项目数”/“评价周期内被吹哨的所有项目数” - Integer denominator = entity.getTransferedCount(); - if (null != denominator && denominator != NumConstant.ZERO) { - //办结率 - entity.setClosedProjectRatio( - element.divide(new BigDecimal(denominator), NumConstant.SIX, RoundingMode.HALF_UP) - ); - }else{ - entity.setClosedProjectRatio(BigDecimal.ZERO); - } + //办结数 + entity.setClosedProjectCount(Optional.ofNullable(agencyHandleCount.get(entity.getAgencyId())).orElse(NumConstant.ZERO)); + //办结率 + entity.setClosedProjectRatio(Optional.ofNullable(handlingRatioMap.get(entity.getAgencyId())).orElse(BigDecimal.ZERO)); //办结效率 entity.setHandleProjectRatio(Optional.ofNullable(efficiencyMap.get(entity.getAgencyId())).orElse(BigDecimal.ZERO)); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollDistrictServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollDistrictServiceImpl.java index 5271e87177..aeaa04000c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollDistrictServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollDistrictServiceImpl.java @@ -131,24 +131,15 @@ public class IndexCollDistrictServiceImpl implements IndexCollDistrictService { List agencies = agencyList.stream().map(DimAgencyDTO :: getId).distinct().collect(Collectors.toList()); //办结数 Map agencyHandleCount = factOriginProjectLogDailyService.getProjectHandledAgency(agencies,customerId,dimId.getMonthId(),"month"); - //评价周期内被吹哨且被办结(无论是哪一级办结)的项目数 - Map whistledAgencyClosedProject = factOriginProjectLogDailyService.getWhistledAgencyClosedProjectCount(agencies,customerId,dimId.getMonthId(),"month"); + //办结率 + Map handlingRatioMap = factOriginProjectLogDailyService.getHandlingRatio(agencies,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 = new BigDecimal(Optional.ofNullable(whistledAgencyClosedProject.get(entity.getAgencyId())).orElse(NumConstant.ZERO)); - //分母,即机关参与过的项目数(去重) - //“评价周期内被吹哨且办结的项目数”/“评价周期内被吹哨的所有项目数” - Integer denominator = entity.getTransferedCount(); - if (null != denominator && denominator != NumConstant.ZERO) { - //办结率 - entity.setClosedProjectRatio( - element.divide(new BigDecimal(denominator), NumConstant.SIX, RoundingMode.HALF_UP) - ); - }else{ - entity.setClosedProjectRatio(BigDecimal.ZERO); - } + //办结率 + entity.setClosedProjectRatio(Optional.ofNullable(handlingRatioMap.get(entity.getAgencyId())).orElse(BigDecimal.ZERO)); //办结效率 entity.setHandleProjectRatio(Optional.ofNullable(efficiencyMap.get(entity.getAgencyId())).orElse(BigDecimal.ZERO)); }); 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 6de2c28648..8331905d41 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 @@ -129,24 +129,15 @@ public class IndexCollStreetServiceImpl implements IndexCollStreetService { List agencies = agencyList.stream().map(DimAgencyDTO :: getId).distinct().collect(Collectors.toList()); //办结数 Map agencyHandleCount = factOriginProjectLogDailyService.getProjectHandledAgency(agencies,customerId,dimId.getMonthId(),"month"); - ////评价周期内被吹哨且被办结(无论是哪一级办结)的项目数 - Map whistledAgencyClosedProject = factOriginProjectLogDailyService.getWhistledAgencyClosedProjectCount(agencies,customerId,dimId.getMonthId(),"month"); + //办结率 + Map handlingRatioMap = factOriginProjectLogDailyService.getHandlingRatio(agencies,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 = new BigDecimal(Optional.ofNullable(whistledAgencyClosedProject.get(entity.getAgencyId())).orElse(NumConstant.ZERO)); - //分母,吹哨次数 - Integer denominator = entity.getTransferedCount(); - if (null != denominator && denominator != NumConstant.ZERO) { - //办结率 - //“评价周期内被吹哨且办结的项目数”/“评价周期内被吹哨的所有项目数” - entity.setClosedProjectRatio( - element.divide(new BigDecimal(denominator), NumConstant.SIX, RoundingMode.HALF_UP) - ); - }else{ - entity.setClosedProjectRatio(BigDecimal.ZERO); - } + //办结率 + entity.setClosedProjectRatio(Optional.ofNullable(handlingRatioMap.get(entity.getAgencyId())).orElse(BigDecimal.ZERO)); //办结效率 entity.setHandleProjectRatio(Optional.ofNullable(efficiencyMap.get(entity.getAgencyId())).orElse(BigDecimal.ZERO)); }); 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 84a4c06392..dbedbb762d 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 @@ -178,7 +178,7 @@ public interface FactOriginProjectLogDailyService extends BaseService getProjectHandledAgency(List agencies, String customerId, String dimId,String dateType); /** - * @Description 评价周期内被吹哨且被办结(无论是哪一级办结)的项目数 + * @Description 办结率 * @param agencies * @param dimId * @param dateType - 日期维度类型 month date week quarter year @@ -186,7 +186,7 @@ public interface FactOriginProjectLogDailyService extends BaseService getWhistledAgencyClosedProjectCount(List agencies, String customerId,String dimId,String dateType); + Map getHandlingRatio(List agencies, String customerId,String dimId,String dateType); /** * @Description 计算机关办结项目效率 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 435990bc38..d7c6a7e7de 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 @@ -184,7 +184,7 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl getWhistledAgencyClosedProjectCount(List agencies, String customerId,String dimId, String dateType) { - Map result = new HashMap<>(); + public Map getHandlingRatio(List agencies, String customerId,String dimId, String dateType) { + //计算方式:“评价周期内被吹哨且办结(无论是哪一级办结)的项目数”/“评价周期内被吹哨的所有项目数” + + Map result = new HashMap<>(); List projectAgencyCount = baseDao.selectWhistledAgencyClosedProjectCount(agencies,customerId,dimId); if(!CollectionUtils.isEmpty(projectAgencyCount)){ - result = projectAgencyCount.stream().collect(Collectors.toMap(ProjectParticipatedAgencyResultDTO::getAgencyId,ProjectParticipatedAgencyResultDTO::getCount)); + Map whistledAndHandledProjectTotalMap = projectAgencyCount.stream().collect(Collectors.toMap(ProjectParticipatedAgencyResultDTO::getAgencyId,ProjectParticipatedAgencyResultDTO::getCount)); + List whistledProjectTotal = baseDao.selectAgencyWhistledCount(agencies,customerId,dimId); + Map whistledProjectTotalMap = whistledProjectTotal.stream().collect(Collectors.toMap(ProjectParticipatedAgencyResultDTO::getAgencyId,ProjectParticipatedAgencyResultDTO::getCount)); + whistledAndHandledProjectTotalMap.forEach((agencyId,count) -> { + //分母 被吹哨项目数 + Integer denominator = whistledProjectTotalMap.get(agencyId); + if(null == denominator || NumConstant.ZERO == denominator){ + result.put(agencyId,BigDecimal.ZERO); + }else{ + result.put(agencyId,new BigDecimal(count).divide(new BigDecimal(denominator), NumConstant.SIX, RoundingMode.HALF_UP)); + } + }); } + return result; } 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 cc9200ceb1..86551a98e2 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 @@ -138,55 +138,157 @@ fopld.ORG_ID - + - AND log.DATE_ID = #{dimId} + + + + + + + + + +