From 489c41368296843c6799a72444934d91c9f3e8e4 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Wed, 7 Jul 2021 10:58:48 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E5=91=98=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tGridMemberStatisticsDailyServiceImpl.java | 470 ++++++++++++------ .../resources/mapper/issue/StatsIssueDao.xml | 2 +- 2 files changed, 307 insertions(+), 165 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactGridMemberStatisticsDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactGridMemberStatisticsDailyServiceImpl.java index b02c890f84..e7f436de06 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactGridMemberStatisticsDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactGridMemberStatisticsDailyServiceImpl.java @@ -32,11 +32,11 @@ import com.epmet.service.evaluationindex.extract.todata.FactOriginProjectLogDail import com.epmet.service.evaluationindex.extract.todata.FactOriginProjectMainDailyService; import com.epmet.service.org.CustomerGridService; import com.epmet.service.user.UserService; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.function.Function; @@ -49,6 +49,7 @@ import java.util.stream.Collectors; * @since v1.0.0 2021-07-02 */ @Service +@Slf4j public class FactGridMemberStatisticsDailyServiceImpl extends BaseServiceImpl implements FactGridMemberStatisticsDailyService { @Resource @@ -74,6 +75,7 @@ public class FactGridMemberStatisticsDailyServiceImpl extends BaseServiceImpl staffGridList = customerGridService.getCustomerStaffGridList(customerId); List staffInfoList = userService.getStaffByRoleKey(customerId, RoleKeyConstants.ROLE_KEY_GRID_MEMBER); if (CollectionUtils.isEmpty(staffGridList) || CollectionUtils.isEmpty(staffInfoList)) { @@ -83,172 +85,29 @@ public class FactGridMemberStatisticsDailyServiceImpl extends BaseServiceImpl list = staffGridList.stream().filter(p -> null != staffMap.get(p.getStaffId())).map(item -> { StaffRoleInfoDTO staffInfo = staffMap.get(item.getStaffId()); - FactGridMemberStatisticsDailyEntity entity = new FactGridMemberStatisticsDailyEntity(); - entity.setCustomerId(customerId); - entity.setAgencyId(item.getAgencyId()); - entity.setGridId(item.getGridId()); - entity.setPid(item.getPid()); - entity.setPids(item.getPids()); - entity.setGridId(item.getGridId()); - entity.setYearId(dateId.substring(NumConstant.ZERO, NumConstant.FOUR)); - entity.setMonthId(dateId.substring(NumConstant.ZERO, NumConstant.SIX)); - entity.setDateId(dateId); - entity.setStaffId(item.getStaffId()); - entity.setStaffName(staffInfo.getStaffName()); - entity.setProjectCount(NumConstant.ZERO); - entity.setProjectIncr(NumConstant.ZERO); - entity.setIssueToProjectCount(NumConstant.ZERO); - entity.setIssueToProjectIncr(NumConstant.ZERO); - entity.setClosedIssueCount(NumConstant.ZERO); - entity.setClosedIssueIncr(NumConstant.ZERO); - entity.setProjectClosedCount(NumConstant.ZERO); - entity.setProjectClosedIncr(NumConstant.ZERO); - entity.setProjectResponseCount(NumConstant.ZERO); - entity.setProjectResponseIncr(NumConstant.ZERO); - entity.setProjectTransferCount(NumConstant.ZERO); - entity.setProjectTransferIncr(NumConstant.ZERO); - return entity; + return initEntity(customerId, dateId, item, staffInfo); }).collect(Collectors.toList()); - //项目立项数 - Map> projectCountMap = factOriginProjectMainDailyService.getMemberProjectCount(customerId, dateId, - NumConstant.ZERO); - Map> projectIncrMap = factOriginProjectMainDailyService.getMemberProjectCount(customerId, dateId, - NumConstant.ONE); - //议题转项目数 - Map> issueToProjectCountMap = factOriginIssueLogDailyService.getIssueToProjectCount(customerId, dateId, - NumConstant.ZERO); - Map> issueToProjectIncrMap = factOriginIssueLogDailyService.getIssueToProjectCount(customerId, dateId, - NumConstant.ONE); - //议题关闭数 - Map> closedIssueCountMap = factOriginIssueLogDailyService.getClosedIssueCount(customerId, dateId, - NumConstant.ZERO); - Map> closedIssueIncrMap = factOriginIssueLogDailyService.getClosedIssueCount(customerId, dateId, - NumConstant.ONE); - //项目响应数 - Map> projectResponseCountMap = factOriginProjectLogDailyService.getProjectResponseCount(customerId, - dateId, NumConstant.ZERO); - Map> projectResponseIncrMap = factOriginProjectLogDailyService.getProjectResponseCount(customerId, dateId - , NumConstant.ONE); - //项目吹哨数 - Map> projectTransferCountMap = factOriginProjectLogDailyService.getProjectTransferCount(customerId, - dateId, NumConstant.ZERO); - Map> projectTransferIncrMap = factOriginProjectLogDailyService.getProjectTransferCount(customerId, dateId - , NumConstant.ONE); - //项目结案数 - Map> projectClosedCountMap = factOriginProjectLogDailyService.getProjectClosedCount(customerId, - dateId, NumConstant.ZERO); - Map> projectClosedIncrMap = factOriginProjectLogDailyService.getProjectClosedCount(customerId, dateId - , NumConstant.ONE); + //数据统计 + GetGridMemberData getGridMemberData = new GetGridMemberData(customerId, dateId).invoke(); + Map> projectCountMap = getGridMemberData.getProjectCountMap(); + Map> projectIncrMap = getGridMemberData.getProjectIncrMap(); + Map> issueToProjectCountMap = getGridMemberData.getIssueToProjectCountMap(); + Map> issueToProjectIncrMap = getGridMemberData.getIssueToProjectIncrMap(); + Map> closedIssueCountMap = getGridMemberData.getClosedIssueCountMap(); + Map> closedIssueIncrMap = getGridMemberData.getClosedIssueIncrMap(); + Map> projectResponseCountMap = getGridMemberData.getProjectResponseCountMap(); + Map> projectResponseIncrMap = getGridMemberData.getProjectResponseIncrMap(); + Map> projectTransferCountMap = getGridMemberData.getProjectTransferCountMap(); + Map> projectTransferIncrMap = getGridMemberData.getProjectTransferIncrMap(); + Map> projectClosedCountMap = getGridMemberData.getProjectClosedCountMap(); + Map> projectClosedIncrMap = getGridMemberData.getProjectClosedIncrMap(); + list.forEach(item -> { - //项目立项数 - List projectCount = projectCountMap.get(item.getStaffId()); - if (CollectionUtils.isNotEmpty(projectCount)) { - projectCount.forEach(dto -> { - if (item.getAgencyId().equals(dto.getAgencyId())) { - item.setProjectCount(dto.getCount()); - } - }); - } - //项目立项日增量 - List projectIncr = projectIncrMap.get(item.getStaffId()); - if (CollectionUtils.isNotEmpty(projectIncr)) { - projectIncr.forEach(dto -> { - if (item.getAgencyId().equals(dto.getAgencyId())) { - item.setProjectIncr(dto.getCount()); - } - }); - } - //议题转项目数 - List issueToProjectCount = issueToProjectCountMap.get(item.getStaffId()); - if (CollectionUtils.isNotEmpty(issueToProjectCount)) { - issueToProjectCount.forEach(dto -> { - if (item.getGridId().equals(dto.getOrgId())) { - item.setIssueToProjectCount(dto.getCount()); - } - }); - } - //议题转项目日增量 - List issueToProjectIncr = issueToProjectIncrMap.get(item.getStaffId()); - if (CollectionUtils.isNotEmpty(issueToProjectIncr)) { - issueToProjectIncr.forEach(dto -> { - if (item.getGridId().equals(dto.getOrgId())) { - item.setIssueToProjectIncr(dto.getCount()); - } - }); - } - //议题关闭数 - List closedIssueCount = closedIssueCountMap.get(item.getStaffId()); - if (CollectionUtils.isNotEmpty(closedIssueCount)) { - closedIssueCount.forEach(dto -> { - if (item.getGridId().equals(dto.getOrgId())) { - item.setClosedIssueCount(dto.getCount()); - } - }); - } - //议题关闭数日增量 - List closedIssueIncr = closedIssueIncrMap.get(item.getStaffId()); - if (CollectionUtils.isNotEmpty(closedIssueIncr)) { - closedIssueIncr.forEach(dto -> { - if (item.getGridId().equals(dto.getOrgId())) { - item.setClosedIssueIncr(dto.getCount()); - } - }); - } - //项目响应数 - List projectResponseCount = projectResponseCountMap.get(item.getStaffId()); - if (CollectionUtils.isNotEmpty(projectResponseCount)) { - projectResponseCount.forEach(dto -> { - if (item.getGridId().equals(dto.getOrgId())) { - item.setProjectResponseCount(dto.getCount()); - } - }); - } - //项目响应数日增量 - List projectResponseIncr = projectResponseIncrMap.get(item.getStaffId()); - if (CollectionUtils.isNotEmpty(projectResponseIncr)) { - projectResponseIncr.forEach(dto -> { - if (item.getGridId().equals(dto.getOrgId())) { - item.setProjectResponseIncr(dto.getCount()); - } - }); - } - //项目吹哨数 - List projectTransferCount = projectTransferCountMap.get(item.getStaffId()); - if (CollectionUtils.isNotEmpty(projectTransferCount)) { - projectTransferCount.forEach(dto -> { - if (item.getGridId().equals(dto.getOrgId())) { - item.setProjectTransferCount(dto.getCount()); - } - }); - } - //项目吹哨数日增量 - List projectTransferIncr = projectTransferIncrMap.get(item.getStaffId()); - if (CollectionUtils.isNotEmpty(projectTransferIncr)) { - projectTransferIncr.forEach(dto -> { - if (item.getGridId().equals(dto.getOrgId())) { - item.setProjectTransferIncr(dto.getCount()); - } - }); - } - //项目响应数 - List projectClosedCount = projectClosedCountMap.get(item.getStaffId()); - if (CollectionUtils.isNotEmpty(projectClosedCount)) { - projectClosedCount.forEach(dto -> { - if (item.getGridId().equals(dto.getOrgId())) { - item.setProjectClosedCount(dto.getCount()); - } - }); - } - //项目响应数日增量 - List projectClosedIncr = projectClosedIncrMap.get(item.getStaffId()); - if (CollectionUtils.isNotEmpty(projectClosedIncr)) { - projectClosedIncr.forEach(dto -> { - if (item.getGridId().equals(dto.getOrgId())) { - item.setProjectClosedIncr(dto.getCount()); - } - }); - } + //赋值 + setEntityData(projectCountMap, projectIncrMap, issueToProjectCountMap, issueToProjectIncrMap, closedIssueCountMap, closedIssueIncrMap, + projectResponseCountMap, projectResponseIncrMap, projectTransferCountMap, projectTransferIncrMap, projectClosedCountMap, + projectClosedIncrMap, item); }); @@ -260,6 +119,289 @@ public class FactGridMemberStatisticsDailyServiceImpl extends BaseServiceImpl> projectCountMap, Map> projectIncrMap, + Map> issueToProjectCountMap, Map> issueToProjectIncrMap, + Map> closedIssueCountMap, Map> closedIssueIncrMap, + Map> projectResponseCountMap, Map> projectResponseIncrMap, + Map> projectTransferCountMap, Map> projectTransferIncrMap, + Map> projectClosedCountMap, Map> projectClosedIncrMap, + FactGridMemberStatisticsDailyEntity item) { + //项目立项数 + List projectCount = projectCountMap.get(item.getStaffId()); + if (CollectionUtils.isNotEmpty(projectCount)) { + projectCount.forEach(dto -> { + if (item.getAgencyId().equals(dto.getAgencyId())) { + item.setProjectCount(dto.getCount()); + } + }); + } + //项目立项日增量 + List projectIncr = projectIncrMap.get(item.getStaffId()); + if (CollectionUtils.isNotEmpty(projectIncr)) { + projectIncr.forEach(dto -> { + if (item.getAgencyId().equals(dto.getAgencyId())) { + item.setProjectIncr(dto.getCount()); + } + }); + } + //议题转项目数 + List issueToProjectCount = issueToProjectCountMap.get(item.getStaffId()); + if (CollectionUtils.isNotEmpty(issueToProjectCount)) { + issueToProjectCount.forEach(dto -> { + if (item.getGridId().equals(dto.getOrgId())) { + item.setIssueToProjectCount(dto.getCount()); + } + }); + } + //议题转项目日增量 + List issueToProjectIncr = issueToProjectIncrMap.get(item.getStaffId()); + if (CollectionUtils.isNotEmpty(issueToProjectIncr)) { + issueToProjectIncr.forEach(dto -> { + if (item.getGridId().equals(dto.getOrgId())) { + item.setIssueToProjectIncr(dto.getCount()); + } + }); + } + //议题关闭数 + List closedIssueCount = closedIssueCountMap.get(item.getStaffId()); + if (CollectionUtils.isNotEmpty(closedIssueCount)) { + closedIssueCount.forEach(dto -> { + if (item.getGridId().equals(dto.getOrgId())) { + item.setClosedIssueCount(dto.getCount()); + } + }); + } + //议题关闭数日增量 + List closedIssueIncr = closedIssueIncrMap.get(item.getStaffId()); + if (CollectionUtils.isNotEmpty(closedIssueIncr)) { + closedIssueIncr.forEach(dto -> { + if (item.getGridId().equals(dto.getOrgId())) { + item.setClosedIssueIncr(dto.getCount()); + } + }); + } + //项目响应数 + List projectResponseCount = projectResponseCountMap.get(item.getStaffId()); + if (CollectionUtils.isNotEmpty(projectResponseCount)) { + projectResponseCount.forEach(dto -> { + if (item.getGridId().equals(dto.getOrgId())) { + item.setProjectResponseCount(dto.getCount()); + } + }); + } + //项目响应数日增量 + List projectResponseIncr = projectResponseIncrMap.get(item.getStaffId()); + if (CollectionUtils.isNotEmpty(projectResponseIncr)) { + projectResponseIncr.forEach(dto -> { + if (item.getGridId().equals(dto.getOrgId())) { + item.setProjectResponseIncr(dto.getCount()); + } + }); + } + //项目吹哨数 + List projectTransferCount = projectTransferCountMap.get(item.getStaffId()); + if (CollectionUtils.isNotEmpty(projectTransferCount)) { + projectTransferCount.forEach(dto -> { + if (item.getGridId().equals(dto.getOrgId())) { + item.setProjectTransferCount(dto.getCount()); + } + }); + } + //项目吹哨数日增量 + List projectTransferIncr = projectTransferIncrMap.get(item.getStaffId()); + if (CollectionUtils.isNotEmpty(projectTransferIncr)) { + projectTransferIncr.forEach(dto -> { + if (item.getGridId().equals(dto.getOrgId())) { + item.setProjectTransferIncr(dto.getCount()); + } + }); + } + //项目响应数 + List projectClosedCount = projectClosedCountMap.get(item.getStaffId()); + if (CollectionUtils.isNotEmpty(projectClosedCount)) { + projectClosedCount.forEach(dto -> { + if (item.getGridId().equals(dto.getOrgId())) { + item.setProjectClosedCount(dto.getCount()); + } + }); + } + //项目响应数日增量 + List projectClosedIncr = projectClosedIncrMap.get(item.getStaffId()); + if (CollectionUtils.isNotEmpty(projectClosedIncr)) { + projectClosedIncr.forEach(dto -> { + if (item.getGridId().equals(dto.getOrgId())) { + item.setProjectClosedIncr(dto.getCount()); + } + }); + } + } + + /** + * 初始化Entity + * @author zhaoqifeng + * @date 2021/7/7 10:55 + * @param customerId + * @param dateId + * @param item + * @param staffInfo + * @return com.epmet.entity.evaluationindex.extract.FactGridMemberStatisticsDailyEntity + */ + private FactGridMemberStatisticsDailyEntity initEntity(String customerId, String dateId, CustomerStaffGridDTO item, StaffRoleInfoDTO staffInfo) { + FactGridMemberStatisticsDailyEntity entity = new FactGridMemberStatisticsDailyEntity(); + entity.setCustomerId(customerId); + entity.setAgencyId(item.getAgencyId()); + entity.setGridId(item.getGridId()); + entity.setPid(item.getPid()); + entity.setPids(item.getPids()); + entity.setGridId(item.getGridId()); + entity.setYearId(dateId.substring(NumConstant.ZERO, NumConstant.FOUR)); + entity.setMonthId(dateId.substring(NumConstant.ZERO, NumConstant.SIX)); + entity.setDateId(dateId); + entity.setStaffId(item.getStaffId()); + entity.setStaffName(staffInfo.getStaffName()); + entity.setProjectCount(NumConstant.ZERO); + entity.setProjectIncr(NumConstant.ZERO); + entity.setIssueToProjectCount(NumConstant.ZERO); + entity.setIssueToProjectIncr(NumConstant.ZERO); + entity.setClosedIssueCount(NumConstant.ZERO); + entity.setClosedIssueIncr(NumConstant.ZERO); + entity.setProjectClosedCount(NumConstant.ZERO); + entity.setProjectClosedIncr(NumConstant.ZERO); + entity.setProjectResponseCount(NumConstant.ZERO); + entity.setProjectResponseIncr(NumConstant.ZERO); + entity.setProjectTransferCount(NumConstant.ZERO); + entity.setProjectTransferIncr(NumConstant.ZERO); + return entity; + } + + /** + * 网格员数据统计 + * @author zhaoqifeng + * @date 2021/7/7 10:55 + */ + private class GetGridMemberData { + private String customerId; + private String dateId; + private Map> projectCountMap; + private Map> projectIncrMap; + private Map> issueToProjectCountMap; + private Map> issueToProjectIncrMap; + private Map> closedIssueCountMap; + private Map> closedIssueIncrMap; + private Map> projectResponseCountMap; + private Map> projectResponseIncrMap; + private Map> projectTransferCountMap; + private Map> projectTransferIncrMap; + private Map> projectClosedCountMap; + private Map> projectClosedIncrMap; + + GetGridMemberData(String customerId, String dateId) { + this.customerId = customerId; + this.dateId = dateId; + } + + Map> getProjectCountMap() { + return projectCountMap; + } + + Map> getProjectIncrMap() { + return projectIncrMap; + } + + Map> getIssueToProjectCountMap() { + return issueToProjectCountMap; + } + + Map> getIssueToProjectIncrMap() { + return issueToProjectIncrMap; + } + + Map> getClosedIssueCountMap() { + return closedIssueCountMap; + } + + Map> getClosedIssueIncrMap() { + return closedIssueIncrMap; + } + + Map> getProjectResponseCountMap() { + return projectResponseCountMap; + } + + Map> getProjectResponseIncrMap() { + return projectResponseIncrMap; + } + + Map> getProjectTransferCountMap() { + return projectTransferCountMap; + } + + Map> getProjectTransferIncrMap() { + return projectTransferIncrMap; + } + + Map> getProjectClosedCountMap() { + return projectClosedCountMap; + } + + Map> getProjectClosedIncrMap() { + return projectClosedIncrMap; + } + + GetGridMemberData invoke() { + //项目立项数 + projectCountMap = factOriginProjectMainDailyService.getMemberProjectCount(customerId, dateId, + NumConstant.ZERO); + projectIncrMap = factOriginProjectMainDailyService.getMemberProjectCount(customerId, dateId, + NumConstant.ONE); + //议题转项目数 + issueToProjectCountMap = factOriginIssueLogDailyService.getIssueToProjectCount(customerId, dateId, + NumConstant.ZERO); + issueToProjectIncrMap = factOriginIssueLogDailyService.getIssueToProjectCount(customerId, dateId, + NumConstant.ONE); + //议题关闭数 + closedIssueCountMap = factOriginIssueLogDailyService.getClosedIssueCount(customerId, dateId, + NumConstant.ZERO); + closedIssueIncrMap = factOriginIssueLogDailyService.getClosedIssueCount(customerId, dateId, + NumConstant.ONE); + //项目响应数 + projectResponseCountMap = factOriginProjectLogDailyService.getProjectResponseCount(customerId, + dateId, NumConstant.ZERO); + projectResponseIncrMap = factOriginProjectLogDailyService.getProjectResponseCount(customerId, dateId + , NumConstant.ONE); + //项目吹哨数 + projectTransferCountMap = factOriginProjectLogDailyService.getProjectTransferCount(customerId, + dateId, NumConstant.ZERO); + projectTransferIncrMap = factOriginProjectLogDailyService.getProjectTransferCount(customerId, dateId + , NumConstant.ONE); + //项目结案数 + projectClosedCountMap = factOriginProjectLogDailyService.getProjectClosedCount(customerId, + dateId, NumConstant.ZERO); + projectClosedIncrMap = factOriginProjectLogDailyService.getProjectClosedCount(customerId, dateId + , NumConstant.ONE); + return this; + } + } } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/StatsIssueDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/StatsIssueDao.xml index ce72f989f2..59219341a1 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/StatsIssueDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/StatsIssueDao.xml @@ -241,7 +241,7 @@ i.DEL_FLAG = '0' AND ip.DEL_FLAG = '0' AND i.CUSTOMER_ID = #{customerId} - AND DATE_FORMAT(i.CREATED_TIME,'%Y%m%d') = #{dateId} + AND DATE_FORMAT(ip.CREATED_TIME,'%Y%m%d') = #{dateId}