From ddc632c4ebbbaea0c7ff06a362cc3f09df8428eb Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Wed, 4 Aug 2021 18:02:48 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=BB=9F=E8=AE=A1=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/project/ResiEventDTO.java | 85 +++++++++++++++++++ .../com/epmet/constant/ProjectConstant.java | 1 + .../com/epmet/dao/project/ProjectDao.java | 12 ++- .../FactAgencyGovernDailyServiceImpl.java | 34 +++++++- .../impl/FactGridGovernDailyServiceImpl.java | 20 ++++- .../impl/ProjectExtractServiceImpl.java | 26 ++++-- .../service/impl/StatsIssueServiceImpl.java | 2 +- .../epmet/service/project/ProjectService.java | 8 ++ .../project/impl/ProjectServiceImpl.java | 15 +++- .../extract/FactOriginProjectLogDailyDao.xml | 3 +- .../resources/mapper/project/ProjectDao.xml | 19 ++++- 11 files changed, 198 insertions(+), 27 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/ResiEventDTO.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/ResiEventDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/ResiEventDTO.java new file mode 100644 index 0000000000..d0e2efaf01 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/ResiEventDTO.java @@ -0,0 +1,85 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dto.project; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 居民报事表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-08-03 + */ +@Data +public class ResiEventDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 客户ID + */ + private String customerId; + + /** + * 事件id + */ + private String resiEventId; + + /** + * 报给?: + 网格:grid; + 社区:community; + 乡(镇、街道)级:street; + 区县级: district; + 市级: city; + 省级:province。 + */ + private String orgType; + + /** + * 报给的组织或者网格id + */ + private String orgId; + + /** + * org_id的上级组织id,org_id是跟组织,此列为0 + */ + private String orgPid; + + /** + * org_id的所有上级组织id,org_id是跟组织,此列为0 + */ + private String orgPids; + + /** + * 含义:已读read,未读:un_read;组织下的工作人员从待处理=>处理中,点击查看详情前更新为已读; + */ + private String orgRead; + + /** + * (1)含义:1:展示红点;0:不展示;(2)注意:发布事件插入数据时为1,(3)何时更新?:人大代表回复or报事人回复or工作人员回复、立项、办结更新为1; + */ + private Boolean redDot; + + private String projectId; + + private String createdBy; + +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/ProjectConstant.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/ProjectConstant.java index b714ce2210..af4ef095f6 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/ProjectConstant.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/constant/ProjectConstant.java @@ -81,4 +81,5 @@ public interface ProjectConstant { * 项目来源于 工作端立项 */ String PROJECT_ORIGIN_AGENCY="agency"; + String PROJECT_ORIGIN_EVENT="resi_event"; } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectDao.java index 704aa3ee26..a0f70a5591 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectDao.java @@ -19,10 +19,7 @@ package com.epmet.dao.project; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.ProjectDTO; -import com.epmet.dto.project.ProjectAgencyDTO; -import com.epmet.dto.project.ProjectCategoryDTO; -import com.epmet.dto.project.ProjectGridDTO; -import com.epmet.dto.project.ProjectPointDTO; +import com.epmet.dto.project.*; import com.epmet.dto.project.result.ProjectExceedParamsResultDTO; import com.epmet.entity.project.ProjectEntity; import org.apache.ibatis.annotations.Mapper; @@ -194,4 +191,11 @@ public interface ProjectDao extends BaseDao { List selectClosedProjectIds(@Param("customerId")String customerId, @Param("origin")String origin, @Param("projectStatus")String projectStatus); + + /** + * 获取已转项目事件事件 + * @param customerId + * @return + */ + List getEventList(@Param("customerId")String customerId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactAgencyGovernDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactAgencyGovernDailyServiceImpl.java index 9cae42b818..c2ebfd43e6 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactAgencyGovernDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactAgencyGovernDailyServiceImpl.java @@ -206,24 +206,54 @@ public class FactAgencyGovernDailyServiceImpl extends BaseServiceImpl projectResolvedTotal = factOriginProjectMainDailyService.getAgencyClosedProjectCount(customerId, dateId, ProjectConstant.RESOLVED, OrgTypeConstant.AGENCY); + Map eventProjectResolvedTotal = factOriginProjectMainDailyService.getAgencyClosedProjectCount(customerId, + dateId, ProjectConstant.RESOLVED, + ProjectConstant.PROJECT_ORIGIN_EVENT); if (!projectResolvedTotal.isEmpty()) { agencyGovernDailyList.forEach(item -> { OrgStatisticsResultDTO dto = projectResolvedTotal.get(item.getAgencyId()); + int sum = item.getApprovalProjectResolvedCount(); + if (null != dto) { + sum = sum + dto.getSum(); + } + item.setApprovalProjectResolvedCount(sum); + }); + } + if (!eventProjectResolvedTotal.isEmpty()) { + agencyGovernDailyList.forEach(item -> { + OrgStatisticsResultDTO dto = eventProjectResolvedTotal.get(item.getAgencyId()); + int sum = item.getApprovalProjectResolvedCount(); if (null != dto) { - item.setApprovalProjectResolvedCount(dto.getSum()); + sum = sum + dto.getSum(); } + item.setApprovalProjectResolvedCount(sum); }); } // 当前组织内:来源于议题的项目:结案无需解决数 Map projectUnResolvedTotal = factOriginProjectMainDailyService.getAgencyClosedProjectCount(customerId, dateId, ProjectConstant.UNRESOLVED, OrgTypeConstant.AGENCY); + Map eventProjectUnResolvedTotal = factOriginProjectMainDailyService.getAgencyClosedProjectCount(customerId, + dateId, ProjectConstant.UNRESOLVED, + ProjectConstant.PROJECT_ORIGIN_EVENT); if (!projectUnResolvedTotal.isEmpty()) { agencyGovernDailyList.forEach(item -> { OrgStatisticsResultDTO dto = projectUnResolvedTotal.get(item.getAgencyId()); + int sum = item.getApprovalProjectUnResolvedCount(); + if (null != dto) { + sum = sum + dto.getSum(); + } + item.setApprovalProjectUnResolvedCount(sum); + }); + } + if (!eventProjectUnResolvedTotal.isEmpty()) { + agencyGovernDailyList.forEach(item -> { + OrgStatisticsResultDTO dto = eventProjectUnResolvedTotal.get(item.getAgencyId()); + int sum = item.getApprovalProjectUnResolvedCount(); if (null != dto) { - item.setApprovalProjectUnResolvedCount(dto.getSum()); + sum = sum + dto.getSum(); } + item.setApprovalProjectUnResolvedCount(sum); }); } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactGridGovernDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactGridGovernDailyServiceImpl.java index 56346813b5..a5bb954bef 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactGridGovernDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactGridGovernDailyServiceImpl.java @@ -108,6 +108,8 @@ public class FactGridGovernDailyServiceImpl extends BaseServiceImpl issueProjectUnResolvedMap=getGridProjectMap(customerId,null,ProjectConstant.CLOSED,ProjectConstant.PROJECT_ORIGIN_ISSUE,DimObjectStatusConstant.UNRESOLVED); Map approvalProjectResolvedMap=getGridProjectMap(customerId,null,ProjectConstant.CLOSED,ProjectConstant.PROJECT_ORIGIN_AGENCY,DimObjectStatusConstant.RESOLVED); Map approvalProjectUnResolvedMap=getGridProjectMap(customerId,null,ProjectConstant.CLOSED,ProjectConstant.PROJECT_ORIGIN_AGENCY,DimObjectStatusConstant.UNRESOLVED); + Map eventProjectResolvedMap=getGridProjectMap(customerId,null,ProjectConstant.CLOSED,ProjectConstant.PROJECT_ORIGIN_EVENT,DimObjectStatusConstant.RESOLVED); + Map eventProjectUnResolvedMap=getGridProjectMap(customerId,null,ProjectConstant.CLOSED,ProjectConstant.PROJECT_ORIGIN_EVENT,DimObjectStatusConstant.UNRESOLVED); Map inGroupTopicResolvedMap=getTopicMap(customerId, null,ProjectConstant.CLOSED, DimObjectStatusConstant.RESOLVED,NumConstant.ZERO_STR); Map inGroupTopicUnResolvedMap=getTopicMap(customerId, null,ProjectConstant.CLOSED, DimObjectStatusConstant.UNRESOLVED,NumConstant.ZERO_STR); Map dtoMap=getGovernGridClosedTotalCommonDTOMap(customerId,gridIds); @@ -142,14 +144,24 @@ public class FactGridGovernDailyServiceImpl extends BaseServiceImpl projectList = projectService.getProjectInfo(customerId, dateString); factOriginProjectMainDailyService.deleteByDate(customerId, dateString); if (!CollectionUtils.isEmpty(projectList)) { + Map projectEventMap = projectService.getEventList(customerId); //提取议题ID List issueIds = projectList.stream().filter(item -> ProjectConstant.ISSUE.equals(item.getOrigin())).map(ProjectDTO::getOriginId).collect(Collectors.toList()); @@ -154,11 +153,6 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { entity.setMonthId(dimId.getMonthId()); entity.setWeekId(dimId.getWeekId()); entity.setDateId(dimId.getDateId()); - if (ProjectConstant.ISSUE.equals(project.getOrigin())) { - entity.setIssueId(project.getOriginId()); - } else { - entity.setIssueId(""); - } entity.setProjectStatus(project.getStatus()); entity.setIsResolved(project.getClosedStatus()); entity.setCreatedTime(project.getCreatedTime()); @@ -168,6 +162,20 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { entity.setTopicId(""); entity.setTopicCreatorId(""); entity.setGridId(""); + if (ProjectConstant.ISSUE.equals(project.getOrigin())) { + entity.setIssueId(project.getOriginId()); + } else if (ProjectConstant.PROJECT_ORIGIN_EVENT.equals(project.getOrigin())){ + entity.setIssueId(""); + ResiEventDTO eventDTO = projectEventMap.get(project.getId()); + if (null != eventDTO) { + if (ProjectConstant.PUBLISHER_TYPE_GRID.equals(eventDTO.getOrgType())) { + entity.setGridId(eventDTO.getOrgId()); + entity.setTopicCreatorId(eventDTO.getCreatedBy()); + } + } + } else { + entity.setIssueId(""); + } String[] pIds = project.getOrgIdPath().split(StrConstant.COLON); if (pIds.length > 1) { entity.setPid(pIds[pIds.length - 2]); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsIssueServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsIssueServiceImpl.java index c359035647..4c587f9694 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsIssueServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsIssueServiceImpl.java @@ -270,7 +270,7 @@ public class StatsIssueServiceImpl implements StatsIssueService { //已结案项目统计 List closedProjectTotalList = projectService.getGridClosedProjectTotal(customerId, dateString); //已结案项目增量 - List closedProjectIncList = projectService.getGridClosedProjectTotal(customerId, dateString); + List closedProjectIncList = projectService.getGridClosedProjectInc(customerId, dateString); Map resolveMap= new HashMap<>(); Map unResolveMap = new HashMap<>(); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectService.java index e826c9f9e7..f4283979b0 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectService.java @@ -22,6 +22,7 @@ import com.epmet.dto.ProjectCategoryDTO; import com.epmet.dto.ProjectDTO; import com.epmet.dto.project.ProjectAgencyDTO; import com.epmet.dto.project.ProjectGridDTO; +import com.epmet.dto.project.ResiEventDTO; import com.epmet.dto.project.result.ProjectExceedParamsResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity; import com.epmet.entity.project.ProjectEntity; @@ -191,4 +192,11 @@ public interface ProjectService extends BaseService { * @return */ List selectClosedProjectIds(String customerId,String origin ,String projectStatus); + + /** + * 获取事件信息 + * @param customerId + * @return + */ + Map getEventList(String customerId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java index f67bff807c..095a0ec901 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectServiceImpl.java @@ -23,10 +23,7 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.project.ProjectDao; import com.epmet.dto.ProjectDTO; -import com.epmet.dto.project.ProjectAgencyDTO; -import com.epmet.dto.project.ProjectCategoryDTO; -import com.epmet.dto.project.ProjectGridDTO; -import com.epmet.dto.project.ProjectPointDTO; +import com.epmet.dto.project.*; import com.epmet.dto.project.result.ProjectExceedParamsResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity; import com.epmet.entity.project.ProjectEntity; @@ -37,6 +34,7 @@ import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -239,5 +237,14 @@ public class ProjectServiceImpl extends BaseServiceImpl getEventList(String customerId) { + List list = baseDao.getEventList(customerId); + if (org.apache.commons.collections4.CollectionUtils.isEmpty(list)) { + return Collections.emptyMap(); + } + return list.stream().collect(Collectors.toMap(ResiEventDTO::getProjectId, Function.identity())); + } + } 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 280de575cf..92dd3ee38a 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 @@ -707,7 +707,8 @@ ) a ON fm.GRID_ID = a.orgId WHERE PROJECT_STATUS = 'closed' - AND ORIGIN = "issue" + AND (ORIGIN = 'issue' OR ORIGIN = 'resi_event') + AND GRID_ID != '' AND CUSTOMER_ID = #{customerId} AND DATE_ID <= #{dateId} GROUP BY diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectDao.xml index 0b60e3efd5..7b217ec4ff 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectDao.xml @@ -55,7 +55,7 @@ FROM project WHERE DEL_FLAG = '0' - AND ORIGIN = 'issue' + AND (ORIGIN = 'issue' OR ORIGIN = 'resi_event') AND STATUS = 'closed' AND CUSTOMER_ID = #{customerId} AND DATE_FORMAT(UPDATED_TIME, '%Y-%m-%d') #{date} @@ -69,7 +69,7 @@ FROM project WHERE DEL_FLAG = '0' - AND ORIGIN = 'issue' + AND (ORIGIN = 'issue' OR ORIGIN = 'resi_event') AND STATUS = 'closed' AND CUSTOMER_ID = #{customerId} AND DATE_FORMAT(UPDATED_TIME, '%Y-%m-%d') = #{date} @@ -220,4 +220,19 @@ AND p.ORIGIN =#{origin} + +