From 1c688d7b43339cb47598c3a928119adfe032d758 Mon Sep 17 00:00:00 2001 From: wangchao Date: Thu, 17 Sep 2020 16:33:05 +0800 Subject: [PATCH 01/33] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=8E=86=E6=97=B6?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/FactOriginGroupMainDailyDTO.java | 149 ++++++++++++++++++ .../FactOriginProjectOrgPeriodDailyDTO.java | 128 +++++++++++++++ .../result/ProjectOrgPeriodResultDTO.java | 83 ++++++++++ ...ojectOrgRelationWhenResponseResultDTO.java | 49 ++++++ .../extract/FactOriginGroupMainDailyDao.java | 33 ++++ .../FactOriginProjectOrgPeriodDailyDao.java | 51 ++++++ .../epmet/dao/project/ProjectProcessDao.java | 12 ++ .../FactOriginGroupMainDailyEntity.java | 119 ++++++++++++++ ...FactOriginProjectOrgPeriodDailyEntity.java | 98 ++++++++++++ .../extract/GroupExtractService.java | 9 ++ .../extract/ProjectPeriodExtractService.java | 21 +++ .../extract/impl/GroupExtractServiceImpl.java | 17 ++ .../impl/ProjectPeriodExtractServiceImpl.java | 51 ++++++ .../extract/FactOriginGroupMainDailyDao.xml | 33 ++++ .../FactOriginProjectOrgPeriodDailyDao.xml | 43 +++++ .../mapper/project/ProjectProcessDao.xml | 61 +++++++ 16 files changed, 957 insertions(+) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactOriginGroupMainDailyDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactOriginProjectOrgPeriodDailyDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgPeriodResultDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgRelationWhenResponseResultDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginGroupMainDailyEntity.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginProjectOrgPeriodDailyEntity.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/GroupExtractService.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/ProjectPeriodExtractService.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectPeriodExtractServiceImpl.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.xml diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactOriginGroupMainDailyDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactOriginGroupMainDailyDTO.java new file mode 100644 index 0000000000..7fbeb1ca84 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactOriginGroupMainDailyDTO.java @@ -0,0 +1,149 @@ +/** + * 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.extract; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + + +/** + * 业务数据抽取-小组相关 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-16 + */ +@Data +public class FactOriginGroupMainDailyDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 组的Id + */ + private String id; + + private String customerId; + + /** + * 状态:(审核通过 - approved 、 审核中 - under_auditting、 审核未通过 - rejected 、 已屏蔽 - hidden、 已关闭 - closed) +Ps: 如果一个小组被拒绝,当前小组的状态将永久停留在“审核未通过” + */ + private String groupState; + + /** + * 小组所在网格Id + */ + private String gridId; + + /** + * 小组所在机关Id + */ + private String agencyId; + + /** + * 小组所在组织的父机关Id + */ + private String parentId; + + /** + * 小组所在组织所有父类Id集合 + */ + private String pids; + + /** + * 建群申请审核通过的时期 + */ + private String dateId; + + /** + * 建群申请审核通过的周期 + */ + private String weekId; + + /** + * 建群申请审核通过的月份 + */ + private String monthId; + + /** + * 建群申请审核通过的季度 + */ + private String quarterId; + + /** + * 建群申请审核通过的年 + */ + private String yearId; + + /** + * 群众人数 + */ + private Integer resiMemberCount; + + /** + * 组内总人数 + */ + private Integer memberTotal; + + /** + * 群主ID + */ + private String groupOwnerId; + + /** + * 群主是否热心居民 可以update + */ + private Integer isOwnerHearted; + + /** + * 群主是否党员 可以update + */ + private Integer isOwnerParty; + + /** + * 删除标识 默认为0 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * + */ + private String createdBy; + + /** + * + */ + private Date createdTime; + + /** + * + */ + private String updatedBy; + + /** + * + */ + private Date updatedTime; + +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactOriginProjectOrgPeriodDailyDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactOriginProjectOrgPeriodDailyDTO.java new file mode 100644 index 0000000000..e9bb3e944e --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactOriginProjectOrgPeriodDailyDTO.java @@ -0,0 +1,128 @@ +/** + * 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.extract; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + + +/** + * 业务数据抽取-机关项目响应时间 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-16 + */ +@Data +public class FactOriginProjectOrgPeriodDailyDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * + */ + private String id; + + private String customerId; + + /** + * 项目ID + */ + private String projectId; + + /** + * + */ + private String orgId; + + /** + * grid agenct dept + */ + private String orgType; + + /** + * 如果是机关,则为父级机关(若已是顶级机关则为0);如果是网格和部门,则为所属机关 + */ + private String pid; + + /** + * 最后一个节点是PID,若无则为空 + */ + private String pids; + + /** + * 流转到的日期 + */ + private Date informedDate; + + /** + * 流转走或结案的日期 + */ + private Date handledDate; + + /** + * 响应时长,从流转到自己到流转走共耗时/小时(不算法定节假日和周末) + */ + private Integer totalPeriod; + + /** + * 截至第一次响应时长,从流转到第一次处理(响应、结案、流转)耗时,大于等于上一项值 + */ + private Integer periodTillReplyFirstly; + + /** + * resloved 、 unresolved + */ + private String isResolved; + + /** + * 办结的操作,return(回退)、transfer(流转)、closed(结案),但是不包括response(响应)! + * */ + private String operation; + + /** + * 删除标识 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * + */ + private Date createdTime; + + /** + * + */ + private String createdBy; + + /** + * + */ + private Date updatedTime; + + /** + * + */ + private String updatedBy; + +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgPeriodResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgPeriodResultDTO.java new file mode 100644 index 0000000000..9ce79b4fc5 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgPeriodResultDTO.java @@ -0,0 +1,83 @@ +package com.epmet.dto.project.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Description 从数据库中查询出的 项目 - 机关(网格、部门、机关)的响应时长 + * FIXME 注:查询的全都是已经结案的项目!!!!!!!!!!!!如果查询流转中的项目,需要修改逻辑(较为复杂) + * @ClassName ProjectOrgPeriodResultDTO + * @Auth wangc + * @Date 2020-09-16 15:28 + */ +@Data +public class ProjectOrgPeriodResultDTO implements Serializable { + private static final long serialVersionUID = 6216112710806237600L; + + /** + * 节点Id + * */ + private String processId; + + /** + * 项目Id + * */ + private String projectId; + + /** + * 是这个节点的操作,相当于上一个人的操作,而不是对于这个节点的处理 + * created transfer close return response + * */ + private String operation; + + /** + * 对这个节点的处理,如果未处理则为null + * created transfer close return response(查不出response,因为response类型的节点不会与process_staff产生关联,需要另取) + * */ + private String selfAction; + + /** + * 节点所属的机关,即上个节点推到这个节点的负责部门 + * */ + private String departmentName; + + /** + * 当前节点所属的Agency,如果负责的是部门或者网格则是其所属的机关 + * */ + private String orgId; + + /** + * 如果是部门处理,则有值,否则null + * */ + private String departmentId; + + /** + * 如果是网格处理,则有值,否则null + * */ + private String gridId; + + /** + * 当前所属的机关的所有Pid集合以及当前的机关Id,所以此项不会未null,至少也是它的所属Agency + * */ + private String orgIdPath; + + /** + * 从节点流入到节点流出,且当前负责单位确实解决(包括退回)了的情况下,所耗费的时间(以分钟为单位) + * 如果未当前负责单位一直停留在unresolved状态,即使做出response、或者项目被其他单位结案,该项依旧是0,不参与办结的计时 + * 如果负责单位只是做出回应,但未处理(即没有让节点流走),需要查出其相应的第一次响应时间,另取 + * */ + private Integer totalPeriod; + + /** + * 节点流入时间 + * */ + private Date informedDate; + + /** + * 节点流出时间,如果未解决则未null + * */ + private Date handledDate; + +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgRelationWhenResponseResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgRelationWhenResponseResultDTO.java new file mode 100644 index 0000000000..892e173491 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgRelationWhenResponseResultDTO.java @@ -0,0 +1,49 @@ +package com.epmet.dto.project.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Description 查询机关在项目节点上响应的结果 + * 查询的是存在“响应”的所有相关工作人员节点,如果同一个人对同一个项目已经做过一次处理(并未做出响应)而在第二次流转到自己时 + * 做出了响应,也会连带查询出其第一次未响应过的数据 + * @ClassName ProjectOrgRelationWhenResponseResultDTO + * @Auth wangc + * @Date 2020-09-16 17:27 + */ +@Data +public class ProjectOrgRelationWhenResponseResultDTO implements Serializable { + private static final long serialVersionUID = 1962332392048752037L; + + /** + * 项目Id + * */ + private String projectId; + + /** + * 节点Id + * */ + private String processId; + + /** + * 节点动作的发起人 + * */ + private String staffId; + + /** + * 负责人所属的单位名称:xx机关-xx部门 、 xx机关-xx网格 、 xx机关 + * */ + private String departmentName; + + /** + * 动作分类 + * */ + private String operation; + + /** + * 节点创建时间,动作发起时间 + * */ + private Date createdTime; +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java new file mode 100644 index 0000000000..3a8aa67089 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java @@ -0,0 +1,33 @@ +/** + * 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.dao.evaluationindex.extract; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.evaluationindex.extract.FactOriginGroupMainDailyEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 业务数据抽取-小组相关 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-16 + */ +@Mapper +public interface FactOriginGroupMainDailyDao extends BaseDao { + +} \ No newline at end of file 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 new file mode 100644 index 0000000000..8bae057bc8 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.java @@ -0,0 +1,51 @@ +/** + * 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.dao.evaluationindex.extract; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.entity.evaluationindex.extract.FactOriginProjectOrgPeriodDailyEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 业务数据抽取-机关项目响应时间 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-16 + */ +@Mapper +public interface FactOriginProjectOrgPeriodDailyDao extends BaseDao { + + /** + * @Description 查询是否存在数据,如果没有则视为第一次扫描该表,需要根据业务查询全部数据 + * @param + * @return + * @author wangc + * @date 2020.09.17 13:43 + **/ + int selectIfExisted(@Param("customerId") String customerId); + + /** + * @Description 在插入之前,先删除所有与这个项目相关的历时信息 + * @param projectId + * @return + * @author wangc + * @date 2020.09.17 14:43 + **/ + void deleteByProjectId(@Param("projectId") String projectId); +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectProcessDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectProcessDao.java index ad0c1ca057..27118a560a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectProcessDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectProcessDao.java @@ -18,6 +18,7 @@ package com.epmet.dao.project; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.project.result.ProjectOrgPeriodResultDTO; import com.epmet.entity.project.ProjectEntity; import com.epmet.entity.project.ProjectProcessEntity; import org.apache.ibatis.annotations.Mapper; @@ -41,4 +42,15 @@ public interface ProjectProcessDao extends BaseDao { **/ List selectProcessList(ProjectEntity projectEntity); + /** + * @Description 查询项目-机关各个节点历时详情 + * @param customerId + * @param projectStatus 项目状态 pending closed 如果是null则全查 + * @param dateId + * @return + * @author wangc + * @date 2020.09.17 09:43 + **/ + List selectProjectOrgPeriod(@Param("customerId") String customerId,@Param("projectStatus")String projectStatus,@Param("dateId") String dateId); + } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginGroupMainDailyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginGroupMainDailyEntity.java new file mode 100644 index 0000000000..8bb0ba12a1 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginGroupMainDailyEntity.java @@ -0,0 +1,119 @@ +/** + * 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.entity.evaluationindex.extract; + +import com.baomidou.mybatisplus.annotation.TableName; + +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * 业务数据抽取-小组相关 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-16 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("fact_origin_group_main_daily") +public class FactOriginGroupMainDailyEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + private String customerId; + + /** + * 状态:(审核通过 - approved 、 审核中 - under_auditting、 审核未通过 - rejected 、 已屏蔽 - hidden、 已关闭 - closed) +Ps: 如果一个小组被拒绝,当前小组的状态将永久停留在“审核未通过” + */ + private String groupState; + + /** + * 小组所在网格Id + */ + private String gridId; + + /** + * 小组所在机关Id + */ + private String agencyId; + + /** + * 小组所在组织的父机关Id + */ + private String parentId; + + /** + * 小组所在组织所有父类Id集合 + */ + private String pids; + + /** + * 建群申请审核通过的时期 + */ + private String dateId; + + /** + * 建群申请审核通过的周期 + */ + private String weekId; + + /** + * 建群申请审核通过的月份 + */ + private String monthId; + + /** + * 建群申请审核通过的季度 + */ + private String quarterId; + + /** + * 建群申请审核通过的年 + */ + private String yearId; + + /** + * 群众人数 + */ + private Integer resiMemberCount; + + /** + * 组内总人数 + */ + private Integer memberTotal; + + /** + * 群主ID + */ + private String groupOwnerId; + + /** + * 建组时群主是否热心居民,不更新 + */ + private Integer isOwnerHearted; + + /** + * 建组时群主是否党员,不更新 + */ + private Integer isOwnerParty; + +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginProjectOrgPeriodDailyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginProjectOrgPeriodDailyEntity.java new file mode 100644 index 0000000000..c6dc080aea --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginProjectOrgPeriodDailyEntity.java @@ -0,0 +1,98 @@ +/** + * 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.entity.evaluationindex.extract; + +import com.baomidou.mybatisplus.annotation.TableName; + +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * 业务数据抽取-机关项目响应时间 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-16 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("fact_origin_project_org_period_daily") +public class FactOriginProjectOrgPeriodDailyEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + private String customerId; + + /** + * 项目ID + */ + private String projectId; + + /** + * + */ + private String orgId; + + /** + * grid agenct dept + */ + private String orgType; + + /** + * 如果是机关,则为父级机关(若已是顶级机关则为0);如果是网格和部门,则为所属机关 + */ + private String pid; + + /** + * 最后一个节点是PID,若无则为空 + */ + private String pids; + + /** + * 流转到的日期 + */ + private Date informedDate; + + /** + * 流转走或结案的日期 + */ + private Date handledDate; + + /** + * 响应时长,从流转到自己到流转走共耗时/小时(不算法定节假日和周末) + */ + private Integer totalPeriod; + + /** + * 截至第一次响应时长,从流转到第一次处理(响应、结案、流转)耗时,大于等于上一项值 + */ + private Integer periodTillReplyFirstly; + + /** + * resloved 、 unresolved + */ + private String isResolved; + + /** + * 办结的操作,return(回退)、transfer(流转)、closed(结案),但是不包括response(响应)! + * */ + private String operation; + +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/GroupExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/GroupExtractService.java new file mode 100644 index 0000000000..33a2d6c7fa --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/GroupExtractService.java @@ -0,0 +1,9 @@ +package com.epmet.service.evaluationindex.extract; + +/** + * @Desc 业务数据抽取 - 组相关 + * @Author wangc + * @DateTime 2020/9/14 5:07 下午 + */ +public interface GroupExtractService { +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/ProjectPeriodExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/ProjectPeriodExtractService.java new file mode 100644 index 0000000000..30c06fdd24 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/ProjectPeriodExtractService.java @@ -0,0 +1,21 @@ +package com.epmet.service.evaluationindex.extract; + +import com.epmet.dto.extract.form.ExtractFormDTO; + +/** + * @Desc 业务数据抽取 - 项目节点历时 + * @Author wangc + * @DateTime 2020/9/14 5:07 下午 + */ +public interface ProjectPeriodExtractService { + + /** + * @Description 抽取项目节点历时逻辑 + * @param param + * @return + * @author wangc + * @date 2020.09.17 14:05 + **/ + void extractProjectPeriodData(ExtractFormDTO param); + +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java new file mode 100644 index 0000000000..039fda6047 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java @@ -0,0 +1,17 @@ +package com.epmet.service.evaluationindex.extract.impl; + +import com.epmet.service.evaluationindex.extract.GroupExtractService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @Description 业务数据抽取 - 组相关 + * @ClassName GroupExtractServiceImpl + * @Auth wangc + * @Date 2020-09-16 14:47 + */ +@Service +@Slf4j +public class GroupExtractServiceImpl implements GroupExtractService { + +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectPeriodExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectPeriodExtractServiceImpl.java new file mode 100644 index 0000000000..885a2cc271 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectPeriodExtractServiceImpl.java @@ -0,0 +1,51 @@ +package com.epmet.service.evaluationindex.extract.impl; + +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.dao.evaluationindex.extract.FactOriginProjectOrgPeriodDailyDao; +import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.project.result.ProjectOrgPeriodResultDTO; +import com.epmet.dto.project.result.ProjectOrgRelationWhenResponseResultDTO; +import com.epmet.service.evaluationindex.extract.ProjectPeriodExtractService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Description 业务数据抽取 - 项目节点历时 + * @ClassName ProjectPeriodExtractServiceImpl + * @Auth wangc + * @Date 2020-09-17 13:52 + */ +@Service +@Slf4j +public class ProjectPeriodExtractServiceImpl implements ProjectPeriodExtractService { + + @Autowired + private FactOriginProjectOrgPeriodDailyDao factOriginProjectOrgPeriodDailyDao; + + + /** + * @Description 抽取项目节点历时逻辑 + * @param param + * @return + * @author wangc + * @date 2020.09.17 14:05 + **/ + @Override + public void extractProjectPeriodData(ExtractFormDTO param) { + int trace = factOriginProjectOrgPeriodDailyDao.selectIfExisted(param.getCustomerId()); + + List periods; + List responseList; + + if(trace <= NumConstant.ZERO){ + //数据初始化 + + }else{ + //日常统计 + + } + } +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml new file mode 100644 index 0000000000..0d7753a090 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000000..d1b01b9e1a --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectOrgPeriodDailyDao.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DELETE FROM + fact_origin_project_org_period_daily + WHERE PROJECT_ID = #{projectId} + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml index 5f6816ff3b..d88cdff3a0 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml @@ -20,4 +20,65 @@ ORDER BY pro.project_id,pro.CREATED_TIME ASC + + + + + + \ No newline at end of file From 4921fb025bc8d0bd93afa55ec67298256e9570d5 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 18 Sep 2020 09:40:00 +0800 Subject: [PATCH 02/33] =?UTF-8?q?=E5=85=9A=E5=91=98=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/stats/impl/DimCustomerPartymemberServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimCustomerPartymemberServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimCustomerPartymemberServiceImpl.java index e04247c46d..e265c9438c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimCustomerPartymemberServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimCustomerPartymemberServiceImpl.java @@ -138,7 +138,7 @@ public class DimCustomerPartymemberServiceImpl extends BaseServiceImpl partyMemberList = partyMemberService.selectPartyMemberInfo(customerId, dateId); if (CollectionUtils.isEmpty(partyMemberList)){ - log.error(String.format(StatsConstant.PARTY_INFO_LIST,customerId)); + log.warn(String.format(StatsConstant.PARTY_INFO_LIST,customerId)); return; } List gridIds = partyMemberList.stream().map(party -> party.getGridId()).distinct().collect(Collectors.toList()); From 68f66ce42de6885826e91f259209c21f2ba5305b Mon Sep 17 00:00:00 2001 From: wangchao Date: Fri, 18 Sep 2020 09:49:51 +0800 Subject: [PATCH 03/33] project-period --- .../java/com/epmet/dao/project/ProjectProcessDao.java | 9 +++++++++ .../main/resources/mapper/project/ProjectProcessDao.xml | 6 ++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectProcessDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectProcessDao.java index 5cb1149973..fce4b95879 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectProcessDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectProcessDao.java @@ -20,6 +20,7 @@ package com.epmet.dao.project; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.project.ProcessInfoDTO; import com.epmet.dto.project.result.ProjectOrgPeriodResultDTO; +import com.epmet.dto.project.result.ProjectOrgRelationWhenResponseResultDTO; import com.epmet.entity.project.ProjectEntity; import com.epmet.entity.project.ProjectProcessEntity; import org.apache.ibatis.annotations.Mapper; @@ -93,4 +94,12 @@ public interface ProjectProcessDao extends BaseDao { **/ List selectProjectOrgPeriod(@Param("customerId") String customerId,@Param("projectStatus")String projectStatus,@Param("dateId") String dateId); + /** + * @Description 查询项目-机关各个节点的响应列表 + * @param projects + * @return + * @author wangc + * @date 2020.09.17 17:56 + **/ + List selectResponseTrace(@Param("projects") List projects); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml index bac3326cfa..dfcba705cb 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml @@ -128,10 +128,12 @@ WHERE process.DEL_FLAG = '0' AND - process.PROJECT_ID = '9400300725bdf49f8958f585555929af' + + process.PROJECT_ID = #{id} + AND EXISTS( - SELECT * FROM PROJECT_PROCESS WHERE DEL_FLAG = '0' AND PROJECT_ID = '9400300725bdf49f8958f585555929af' AND OPERATION = 'response' + SELECT * FROM PROJECT_PROCESS WHERE DEL_FLAG = '0' AND PROJECT_ID = process.PROJECT_ID AND OPERATION = 'response' AND STAFF_ID = process.STAFF_ID AND DEPARTMENT_NAME = process.DEPARTMENT_NAME ) ORDER BY process.STAFF_ID , process.CREATED_TIME ASC From a55cc4cabdc09275656918eafa087ad9b19b99f2 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 18 Sep 2020 09:58:27 +0800 Subject: [PATCH 04/33] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/CalGridIndexService.java | 36 +++++++++++++ .../extract/impl/CalGridIndexServiceImpl.java | 53 +++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/CalGridIndexService.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/CalGridIndexService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/CalGridIndexService.java new file mode 100644 index 0000000000..762b77e9fc --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/CalGridIndexService.java @@ -0,0 +1,36 @@ +package com.epmet.service.evaluationindex.extract; + +/** + * @Author zxc + * @DateTime 2020/9/18 9:52 上午 + */ +public interface CalGridIndexService { + + /** + * @Description 计算网格指标党建能力 + * @param customerId + * @param monthId + * @author zxc + * @date 2020/9/18 9:56 上午 + */ + Boolean calGridIndexPartyAbility(String customerId,String monthId); + + /** + * @Description 计算网格指标治理能力 + * @param customerId + * @param monthId + * @author zxc + * @date 2020/9/18 9:56 上午 + */ + Boolean calGridIndexGovernAbility(String customerId,String monthId); + + /** + * @Description 计算网格指标服务能力 + * @param customerId + * @param monthId + * @author zxc + * @date 2020/9/18 9:56 上午 + */ + Boolean calGridIndexServiceAbility(String customerId,String monthId); + +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java new file mode 100644 index 0000000000..0392931d9a --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java @@ -0,0 +1,53 @@ +package com.epmet.service.evaluationindex.extract.impl; + +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.constant.DataSourceConstant; +import com.epmet.service.evaluationindex.extract.CalGridIndexService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @Author zxc + * @DateTime 2020/9/18 9:53 上午 + */ +@Service +@Slf4j +@DataSource(DataSourceConstant.EVALUATION_INDEX) +public class CalGridIndexServiceImpl implements CalGridIndexService { + + /** + * @Description 计算网格指标党建能力 + * @param customerId + * @param monthId + * @author zxc + * @date 2020/9/18 9:56 上午 + */ + @Override + public Boolean calGridIndexPartyAbility(String customerId, String monthId) { + return null; + } + + /** + * @Description 计算网格指标治理能力 + * @param customerId + * @param monthId + * @author zxc + * @date 2020/9/18 9:56 上午 + */ + @Override + public Boolean calGridIndexGovernAbility(String customerId, String monthId) { + return null; + } + + /** + * @Description 计算网格指标服务能力 + * @param customerId + * @param monthId + * @author zxc + * @date 2020/9/18 9:56 上午 + */ + @Override + public Boolean calGridIndexServiceAbility(String customerId, String monthId) { + return null; + } +} From 3d7ab3ddc8c82e5644798ab515a3c8248fe922cb Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 18 Sep 2020 10:03:27 +0800 Subject: [PATCH 05/33] =?UTF-8?q?=E6=8A=BD=E5=8F=96=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/controller/FactOriginController.java | 14 ++++++-------- .../extract/FactOriginTopicMainDailyService.java | 10 ++++------ .../FactOriginTopicMainDailyServiceImpl.java | 16 ++++++++++------ 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java index 7bda36e19f..70d74cc121 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java @@ -4,18 +4,16 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.extract.form.ExtractFormDTO; import com.epmet.dto.extract.form.ProjectFormDTO; +import com.epmet.service.evaluationindex.extract.FactOriginTopicMainDailyService; import com.epmet.service.evaluationindex.extract.IssueExtractService; import com.epmet.service.evaluationindex.extract.ProjectExtractService; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; -import com.epmet.service.evaluationindex.extract.FactOriginTopicMainDailyService; -import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.Date; - /** * 原始数据清洗 @@ -62,16 +60,16 @@ public class FactOriginController { /** * @param customerId yyyyMMdd - * @param dateId yyyyMMdd + * @param dateId yyyyMMdd * @return com.epmet.commons.tools.utils.Result * @author yinzuomei * @description 话题 (fact_origin_topic_main_daily 话题主表_日统计 fact_origin_topic_log_daily 话题明细_日统计) * @Date 2020/9/15 13:39 **/ @PostMapping("topic") - public Result topicDataCleaning(String customerId,String dateId) { - if (StringUtils.isNotBlank(customerId) && StringUtils.isNotBlank(dateId)) { - factOriginTopicMainDailyService.topicCleaning(customerId,dateId); + public Result topicDataCleaning(@RequestBody ExtractFormDTO extractFormDTO) { + if (StringUtils.isNotBlank(extractFormDTO.getCustomerId()) && StringUtils.isNotBlank(extractFormDTO.getDateId())) { + factOriginTopicMainDailyService.topicCleaning(extractFormDTO); } return new Result(); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicMainDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicMainDailyService.java index cb68dadf3c..6b2414be05 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicMainDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicMainDailyService.java @@ -18,11 +18,9 @@ package com.epmet.service.evaluationindex.extract; import com.epmet.commons.mybatis.service.BaseService; -import com.epmet.dto.topic.TopicOriginInfoDTO; +import com.epmet.dto.extract.form.ExtractFormDTO; import com.epmet.entity.evaluationindex.extract.FactOriginTopicMainDailyEntity; -import java.util.List; - /** * 话题主表_日统计 @@ -33,14 +31,14 @@ import java.util.List; public interface FactOriginTopicMainDailyService extends BaseService { /** - * @return void * @param customerId 客户id - * @param dateId yyyyMMdd + * @param dateId yyyyMMdd + * @return void * @author yinzuomei 数据采集:话题本身 * @description fact_origin_topic_log_daily 话题明细_日统计 fact_origin_topic_main_daily 话题主表_日统计 * @Date 2020/9/15 13:40 **/ - Boolean topicCleaning(String customerId, String dateId); + Boolean topicCleaning(ExtractFormDTO extractFormDTO); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicMainDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicMainDailyServiceImpl.java index 6b4c2391fd..6915bb6777 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicMainDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicMainDailyServiceImpl.java @@ -26,6 +26,7 @@ import com.epmet.constant.DimObjectActionConstant; import com.epmet.constant.IndexCalConstant; import com.epmet.dao.evaluationindex.extract.FactOriginTopicLogDailyDao; import com.epmet.dao.evaluationindex.extract.FactOriginTopicMainDailyDao; +import com.epmet.dto.extract.form.ExtractFormDTO; import com.epmet.dto.org.GridInfoDTO; import com.epmet.dto.topic.TopicOriginInfoDTO; import com.epmet.entity.evaluationindex.extract.FactOriginTopicLogDailyEntity; @@ -64,6 +65,7 @@ public class FactOriginTopicMainDailyServiceImpl extends BaseServiceImpl topicOriginInfoList = topicService.queryTopicOriginInfoList(customerId, dateId); if (CollectionUtils.isEmpty(topicOriginInfoList)) { - log.info(String.format("customerId%s,dateId%s,doesn't have any topic operation record",customerId,dateId)); + log.info(String.format("customerId%s,dateId%s,doesn't have any topic operation record", customerId, dateId)); return true; } - Map gridMap=getGridInfoMap(customerId); - Map map=this.constructFactOriginData(topicOriginInfoList,gridMap); - List mainDailyEntityList= (List) map.get("main"); - List logDailyEntityList= (List) map.get("log"); + Map gridMap = getGridInfoMap(customerId); + Map map = this.constructFactOriginData(topicOriginInfoList, gridMap); + List mainDailyEntityList = (List) map.get("main"); + List logDailyEntityList = (List) map.get("log"); //删除之前统计的数据 deleteFactOriginData(customerId,dateId); //批量保存主表 From ed8018a07c42d1c309dbccc3f12e78ef3fe06997 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Fri, 18 Sep 2020 10:11:50 +0800 Subject: [PATCH 06/33] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/project/ProcessInfoDTO.java | 2 + .../impl/ProjectExtractServiceImpl.java | 70 +++++++++++-------- .../mapper/project/ProjectProcessDao.xml | 4 +- 3 files changed, 47 insertions(+), 29 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/ProcessInfoDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/ProcessInfoDTO.java index 070f1ceb0b..845c943aa9 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/ProcessInfoDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/ProcessInfoDTO.java @@ -14,6 +14,8 @@ import java.util.Date; public class ProcessInfoDTO implements Serializable { private static final long serialVersionUID = 4586424046147127143L; private String agencyId; + private String departmentId; + private String gridId; private String projectId; /** * 处理:结案close,退回return,部门流转transfer,创建项目created diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectExtractServiceImpl.java index f6a262571a..ca63c8c9aa 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectExtractServiceImpl.java @@ -24,6 +24,7 @@ import com.epmet.service.project.ProjectProcessService; import com.epmet.service.project.ProjectService; import com.epmet.service.topic.TopicService; import com.epmet.util.DimIdGenerator; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -68,18 +69,20 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { //获取已关闭项目列表 List closedList = projectProcessService.getClosedProjectList(customerId, dateString); List pendingList = factOriginProjectMainDailyService.getPendingList(customerId); - List closeProjects = - pendingList.stream().flatMap(pending -> closedList.stream().filter(closed -> pending.getId().equals(closed.getProjectId())).map(process -> { - FactOriginProjectMainDailyEntity entity = new FactOriginProjectMainDailyEntity(); - entity.setId(process.getId()); - entity.setProjectStatus("close"); - entity.setCreatedTime(DateUtils.stringToDate(pending.getDateId(), DateUtils.DATE_PATTERN_YYYYMMDD)); - entity.setUpdatedTime(process.getUpdatedTime()); - return entity; - })).collect(Collectors.toList()); - //更新状态 - if (null != closeProjects && !closeProjects.isEmpty()) { - factOriginProjectMainDailyService.updateBatchById(closeProjects); + if (null != closedList && !closedList.isEmpty()) { + List closeProjects = + pendingList.stream().flatMap(pending -> closedList.stream().filter(closed -> pending.getId().equals(closed.getProjectId())).map(process -> { + FactOriginProjectMainDailyEntity entity = new FactOriginProjectMainDailyEntity(); + entity.setId(process.getId()); + entity.setProjectStatus("close"); + entity.setCreatedTime(DateUtils.stringToDate(pending.getDateId(), DateUtils.DATE_PATTERN_YYYYMMDD)); + entity.setUpdatedTime(process.getUpdatedTime()); + return entity; + })).collect(Collectors.toList()); + //更新状态 + if (!closeProjects.isEmpty()) { + factOriginProjectMainDailyService.updateBatchById(closeProjects); + } } //获取项目信息 List projectList = projectService.getProjectInfo(customerId, dateString); @@ -133,7 +136,9 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { entity.setIsParty(NumConstant.ONE_STR); })); //插入数据 - factOriginProjectMainDailyService.insertBatch(list); + if (!list.isEmpty()) { + factOriginProjectMainDailyService.insertBatch(list); + } } //节点发起人 @@ -157,9 +162,9 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { return entity; }).collect(Collectors.toList()); - //节点接收人 - List processStaffList = projectProcessService.getProcessStaffByCustomer(customerId, dateString); - logList.addAll(processStaffList.stream().map(process -> { + //项目评论人 + List satisfactionRecordList = projectProcessService.getSatisfactionRecord(customerId, dateString); + logList.addAll(satisfactionRecordList.stream().map(process -> { //获取日期相关维度 DimIdGenerator.DimIdBean dimId = DimIdGenerator.getDimIdBean(process.getCreatedTime()); FactOriginProjectLogDailyEntity entity = new FactOriginProjectLogDailyEntity(); @@ -172,14 +177,19 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { entity.setProjectId(process.getProjectId()); entity.setOperationUserId(process.getStaffId()); entity.setActionCode(process.getOperation()); - entity.setIsActive(NumConstant.ZERO); + entity.setIsActive(NumConstant.ONE); entity.setOrgType("grid"); return entity; }).collect(Collectors.toList())); - //项目评论人 - List satisfactionRecordList = projectProcessService.getSatisfactionRecord(customerId, dateString); - logList.addAll(satisfactionRecordList.stream().map(process -> { + List projectMainList = factOriginProjectMainDailyService.getProjectByCustomer(customerId); + logList.forEach(log -> projectMainList.stream().filter(project -> log.getProjectId().equals(project.getId())).forEach(main -> { + log.setOrgId(main.getGridId()); + })); + + //节点接收人 + List processStaffList = projectProcessService.getProcessStaffByCustomer(customerId, dateString); + logList.addAll(processStaffList.stream().map(process -> { //获取日期相关维度 DimIdGenerator.DimIdBean dimId = DimIdGenerator.getDimIdBean(process.getCreatedTime()); FactOriginProjectLogDailyEntity entity = new FactOriginProjectLogDailyEntity(); @@ -192,17 +202,21 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { entity.setProjectId(process.getProjectId()); entity.setOperationUserId(process.getStaffId()); entity.setActionCode(process.getOperation()); - entity.setIsActive(NumConstant.ONE); - entity.setOrgType("grid"); + entity.setIsActive(NumConstant.ZERO); + if (StringUtils.isNotBlank(process.getDepartmentId())) { + entity.setOrgType("department"); + entity.setOrgId(process.getDepartmentId()); + } + if (StringUtils.isNotBlank(process.getGridId())) { + entity.setOrgType("grid"); + entity.setOrgId(process.getGridId()); + } return entity; }).collect(Collectors.toList())); - List projectMainList = factOriginProjectMainDailyService.getProjectByCustomer(customerId); - logList.forEach(log -> projectMainList.stream().filter(project -> log.getProjectId().equals(project.getId())).forEach(main -> { - log.setOrgId(main.getGridId()); - })); - - factOriginProjectLogDailyService.insertBatch(logList); + if (!logList.isEmpty()) { + factOriginProjectLogDailyService.insertBatch(logList); + } } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml index 680a923090..f7512194eb 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml @@ -35,7 +35,9 @@ - + + + insert into fact_index_party_ablity_cpc_monthly + ( + ID, + CUSTOMER_ID, + AGENCY_ID, + PARENT_ID, + GRID_ID, + MONTH_ID, + QUARTER_ID, + YEAR_ID, + CREATE_TOPIC_COUNT, + JOIN_TOPIC_COUNT, + SHIFT_ISSUE_COUNT, + SHIFT_PROJECT_COUNT, + JOIN_THREE_MEETS_COUNT, + GROUP_USER_COUNT, + GROUP_TOPIC_COUNT, + TOPIC_TO_ISSUE_RATIO, + GROUP_ACTIVE_USER_COUNT, + DEL_FLAG, + REVISION, + CREATED_BY, + CREATED_TIME, + UPDATED_BY, + UPDATED_TIME, + USER_ID + ) values + + ( + (SELECT REPLACE(UUID(), '-', '') AS id), + #{item.customerId}, + #{item.agencyId}, + #{item.parentId}, + #{item.gridId}, + #{item.monthId}, + #{item.quarterId}, + #{item.yearId}, + #{item.createTopicCount}, + #{item.joinTopicCount}, + #{item.shiftIssueCount}, + #{item.shiftProjectCount}, + #{item.joinThreeMeetsCount}, + #{item.groupUserCount}, + #{item.groupTopicCount}, + #{item.topicToIssueRatio}, + #{item.groupActiveUserCount}, + 0, + 0, + 'APP_USER', + now(), + 'APP_USER', + now(), + #{item.userId} + ) + + + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimCustomerPartymemberDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimCustomerPartymemberDao.xml index 8dbc158531..04b111bef6 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimCustomerPartymemberDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimCustomerPartymemberDao.xml @@ -59,4 +59,34 @@ CUSTOMER_ID = #{customerId} AND DATE_ID = #{dateId} + + + + \ No newline at end of file From 4ab1ac20537d8c5e69ded7327a0a38d7cb7e8764 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Fri, 18 Sep 2020 10:58:31 +0800 Subject: [PATCH 08/33] =?UTF-8?q?=E6=B2=BB=E7=90=86=E8=83=BD=E5=8A=9B?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../indexcoll/IndexCollCommunityService.java | 10 ++++++++++ .../IndexCollDistrictDepartmentService.java | 10 ++++++++++ .../indexcoll/IndexCollDistrictService.java | 10 ++++++++++ .../indexcoll/IndexCollStreetService.java | 10 ++++++++++ .../impl/IndexCollCommunityServiceImpl.java | 18 ++++++++++++++++++ ...IndexCollDistrictDepartmentServiceImpl.java | 18 ++++++++++++++++++ .../impl/IndexCollDistrictServiceImpl.java | 18 ++++++++++++++++++ .../impl/IndexCollStreetServiceImpl.java | 18 ++++++++++++++++++ 8 files changed, 112 insertions(+) create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollCommunityService.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollDistrictDepartmentService.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollDistrictService.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollStreetService.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollCommunityServiceImpl.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollDistrictDepartmentServiceImpl.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollDistrictServiceImpl.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollStreetServiceImpl.java diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollCommunityService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollCommunityService.java new file mode 100644 index 0000000000..e891e5a748 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollCommunityService.java @@ -0,0 +1,10 @@ +package com.epmet.service.evaluationindex.indexcoll; + +/** + * 社区相关统计 + * + * @author zhaoqifeng + * @date 2020/9/18 10:33 + */ +public interface IndexCollCommunityService { +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollDistrictDepartmentService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollDistrictDepartmentService.java new file mode 100644 index 0000000000..8416ac208c --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollDistrictDepartmentService.java @@ -0,0 +1,10 @@ +package com.epmet.service.evaluationindex.indexcoll; + +/** + * 区直部门相关统计 + * + * @author zhaoqifeng + * @date 2020/9/18 10:43 + */ +public interface IndexCollDistrictDepartmentService { +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollDistrictService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollDistrictService.java new file mode 100644 index 0000000000..d6863f651e --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollDistrictService.java @@ -0,0 +1,10 @@ +package com.epmet.service.evaluationindex.indexcoll; + +/** + * 全区相关统计 + * + * @author zhaoqifeng + * @date 2020/9/18 10:44 + */ +public interface IndexCollDistrictService { +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollStreetService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollStreetService.java new file mode 100644 index 0000000000..2266a52369 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollStreetService.java @@ -0,0 +1,10 @@ +package com.epmet.service.evaluationindex.indexcoll; + +/** + * 街道相关统计 + * + * @author zhaoqifeng + * @date 2020/9/18 10:35 + */ +public interface IndexCollStreetService { +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollCommunityServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollCommunityServiceImpl.java new file mode 100644 index 0000000000..28c504dbaa --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollCommunityServiceImpl.java @@ -0,0 +1,18 @@ +package com.epmet.service.evaluationindex.indexcoll.impl; + +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.constant.DataSourceConstant; +import com.epmet.service.evaluationindex.indexcoll.IndexCollCommunityService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/9/18 10:34 + */ +@Service +@Slf4j +@DataSource(DataSourceConstant.EVALUATION_INDEX) +public class IndexCollCommunityServiceImpl implements IndexCollCommunityService { +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollDistrictDepartmentServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollDistrictDepartmentServiceImpl.java new file mode 100644 index 0000000000..c5f62d4072 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollDistrictDepartmentServiceImpl.java @@ -0,0 +1,18 @@ +package com.epmet.service.evaluationindex.indexcoll.impl; + +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.constant.DataSourceConstant; +import com.epmet.service.evaluationindex.indexcoll.IndexCollDistrictDepartmentService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/9/18 10:43 + */ +@Service +@Slf4j +@DataSource(DataSourceConstant.EVALUATION_INDEX) +public class IndexCollDistrictDepartmentServiceImpl implements IndexCollDistrictDepartmentService { +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollDistrictServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollDistrictServiceImpl.java new file mode 100644 index 0000000000..64d47690b6 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollDistrictServiceImpl.java @@ -0,0 +1,18 @@ +package com.epmet.service.evaluationindex.indexcoll.impl; + +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.constant.DataSourceConstant; +import com.epmet.service.evaluationindex.indexcoll.IndexCollDistrictService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/9/18 10:45 + */ +@Service +@Slf4j +@DataSource(DataSourceConstant.EVALUATION_INDEX) +public class IndexCollDistrictServiceImpl implements IndexCollDistrictService { +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollStreetServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollStreetServiceImpl.java new file mode 100644 index 0000000000..09ceaf6188 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollStreetServiceImpl.java @@ -0,0 +1,18 @@ +package com.epmet.service.evaluationindex.indexcoll.impl; + +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.constant.DataSourceConstant; +import com.epmet.service.evaluationindex.indexcoll.IndexCollStreetService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/9/18 10:35 + */ +@Service +@Slf4j +@DataSource(DataSourceConstant.EVALUATION_INDEX) +public class IndexCollStreetServiceImpl implements IndexCollStreetService { +} From 2422ea3549e949cae9ed72f16163783a31771514 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 18 Sep 2020 13:58:26 +0800 Subject: [PATCH 09/33] =?UTF-8?q?=E7=BD=91=E6=A0=BC=20=E6=B2=BB=E7=90=86?= =?UTF-8?q?=E8=83=BD=E5=8A=9B=20=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/constant/ExtractConstant.java | 2 + .../form/GovernAbilityGridMonthlyFormDTO.java | 148 ++++++++++++++++++ .../extract/form/GridIssueCountResultDTO.java | 45 ++++++ .../result/GridProjectCountResultDTO.java | 31 ++++ .../extract/FactOriginIssueMainDailyDao.java | 21 +++ .../FactIndexGovrnAblityGridMonthlyDao.java | 9 ++ .../extract/IssueExtractService.java | 23 +++ .../extract/impl/CalGridIndexServiceImpl.java | 93 ++++++++++- .../extract/impl/IssueExtractServiceImpl.java | 32 +++- .../extract/FactOriginIssueMainDailyDao.xml | 35 +++++ .../FactIndexGovrnAblityGridMonthlyDao.xml | 13 ++ 11 files changed, 446 insertions(+), 6 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GovernAbilityGridMonthlyFormDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridIssueCountResultDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridProjectCountResultDTO.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/ExtractConstant.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/ExtractConstant.java index 7bf337367d..8e01f5ee46 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/ExtractConstant.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/ExtractConstant.java @@ -18,4 +18,6 @@ public interface ExtractConstant { String ISSUE_PROCESS = "查询查询议题process集合为空"; + String SHIFT_PROJECT = "shift_project"; + } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GovernAbilityGridMonthlyFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GovernAbilityGridMonthlyFormDTO.java new file mode 100644 index 0000000000..890e663083 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GovernAbilityGridMonthlyFormDTO.java @@ -0,0 +1,148 @@ +/** + * 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.extract.form; + +import java.io.Serializable; +import java.util.Date; + +import com.epmet.commons.tools.constant.NumConstant; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 治理能力-网格相关事实表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-18 + */ +@Data +public class GovernAbilityGridMonthlyFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * ID 主键 + */ + private String id; + + /** + * 客户Id + */ + private String customerId; + + /** + * 网格所属机关Id + */ + private String agencyId; + + /** + * 网格Id + */ + private String gridId; + + /** + * 月维度Id:yyyyMM + */ + private String monthId; + + /** + * 季度Id:yyyyQ1,yyyyQ2,yyyyQ3,yyyyQ4 + */ + private String quarterId; + + /** + * 年Id:yyyy + */ + private String yearId; + + /** + * 网格总议题数 + */ + private Integer issueTotal; + + /** + * 网格人均议题数目 + */ + private Integer avgIssueCount; + + /** + * 网格议题转项目率 + */ + private BigDecimal issueToProjectRatio; + + /** + * 网格总项目数 + */ + private Integer projectTotal; + + /** + * 网格自治项目数 统计期网格自身内办结的项目数目 + */ + private Integer selfSolveProjectCount; + + /** + * 网格办结项目数 统计期内办结的项目数目 + */ + private Integer resolveProjectCount; + + /** + * 网格吹哨部门准确率 + */ + private BigDecimal transferRightRatio; + + /** + * 网格内解决的项目的满意度 + */ + private BigDecimal satisfactionRatio; + + /** + * 删除标识 0未删除;1已删除 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 更新人 + */ + private String updatedBy; + + public GovernAbilityGridMonthlyFormDTO() { + this.issueTotal = NumConstant.ZERO; + this.avgIssueCount = NumConstant.ZERO; + this.issueToProjectRatio = new BigDecimal(NumConstant.ZERO); + this.projectTotal = NumConstant.ZERO; + this.selfSolveProjectCount = NumConstant.ZERO; + this.resolveProjectCount = NumConstant.ZERO; + this.transferRightRatio = new BigDecimal(NumConstant.ZERO); + this.satisfactionRatio = new BigDecimal(NumConstant.ZERO); + this.delFlag = NumConstant.ZERO_STR; + this.revision = NumConstant.ZERO; + this.createdBy = "APP_USER"; + this.updatedBy = "APP_USER"; + } +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridIssueCountResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridIssueCountResultDTO.java new file mode 100644 index 0000000000..6237f49117 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridIssueCountResultDTO.java @@ -0,0 +1,45 @@ +package com.epmet.dto.extract.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/9/18 10:12 上午 + */ +@Data +public class GridIssueCountResultDTO implements Serializable { + + private static final long serialVersionUID = -1222149631076688225L; + + /** + * 网格总议题数目 + */ + private Integer issueTotal; + + /** + * 网格人均议题数目 + */ + private Integer avgIssueCount; + + /** + * 网格ID + */ + private String gridId; + + /** + * 月份ID + */ + private String monthId; + + /** + * 季度ID + */ + private String quarterId; + + /** + * 年度ID + */ + private String yearId; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridProjectCountResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridProjectCountResultDTO.java new file mode 100644 index 0000000000..6d0a8cf1d7 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridProjectCountResultDTO.java @@ -0,0 +1,31 @@ +package com.epmet.dto.extract.result; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @Author zxc + * @DateTime 2020/9/18 1:22 下午 + */ +@Data +public class GridProjectCountResultDTO implements Serializable { + + private static final long serialVersionUID = -1348707512443965601L; + + /** + * 网格总项目数 + */ + private Integer projectTotal; + + /** + * 网格ID + */ + private String gridId; + + /** + * 网格议题转项目率 + */ + private BigDecimal issueToProjectRatio; +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java index 1866a593a5..f2e32ca442 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java @@ -18,7 +18,9 @@ package com.epmet.dao.evaluationindex.extract; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.extract.form.GridIssueCountResultDTO; import com.epmet.dto.extract.form.IssueMainDailyFormDTO; +import com.epmet.dto.extract.result.GridProjectCountResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginIssueMainDailyEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -50,4 +52,23 @@ public interface FactOriginIssueMainDailyDao extends BaseDao selectIssueTotal(@Param("customerId") String customerId,@Param("monthId") String monthId); + + /** + * @Description 网格总项目数 + * @param customerId + * @param monthId + * @param status + * @author zxc + * @date 2020/9/18 1:21 下午 + */ + List selectGridProjectCount(@Param("customerId") String customerId,@Param("monthId") String monthId, @Param("status") String status); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.java index 5e0c308c5f..520ce244e2 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.java @@ -18,6 +18,7 @@ package com.epmet.dao.evaluationindex.indexcoll; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.extract.form.GovernAbilityGridMonthlyFormDTO; import com.epmet.dto.indexcal.CalculateCommonFormDTO; import com.epmet.dto.indexcal.PageQueryGridFormDTO; import com.epmet.dto.indexcollect.form.GridGovrnAbilityFormDTO; @@ -101,4 +102,12 @@ public interface FactIndexGovrnAblityGridMonthlyDao extends BaseDao selectAllGridInfo(String customerId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java index 4d05ba19d7..5e8eeda1ce 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java @@ -1,6 +1,10 @@ package com.epmet.service.evaluationindex.extract; import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.GridIssueCountResultDTO; +import com.epmet.dto.extract.result.GridProjectCountResultDTO; + +import java.util.List; /** * @Author zxc @@ -23,4 +27,23 @@ public interface IssueExtractService { * @date 2020/9/16 9:41 上午 */ Boolean issueExtractLog(ExtractFormDTO extractFormDTO); + + /** + * @Description 查询网格议题总数,网格人均议题数目 + * @param customerId + * @param monthId + * @author zxc + * @date 2020/9/18 10:20 上午 + */ + List selectIssueTotal(String customerId, String monthId); + + /** + * @Description 网格总项目数 + * @param customerId + * @param monthId + * @param status + * @author zxc + * @date 2020/9/18 1:21 下午 + */ + List selectGridProjectCount(String customerId, String monthId,String status); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java index 0392931d9a..4ab4360397 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java @@ -1,10 +1,24 @@ package com.epmet.service.evaluationindex.extract.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.RenException; import com.epmet.constant.DataSourceConstant; +import com.epmet.constant.ExtractConstant; +import com.epmet.dao.evaluationindex.indexcoll.FactIndexGovrnAblityGridMonthlyDao; +import com.epmet.dto.extract.form.GovernAbilityGridMonthlyFormDTO; +import com.epmet.dto.extract.form.GridIssueCountResultDTO; +import com.epmet.dto.extract.result.GridProjectCountResultDTO; import com.epmet.service.evaluationindex.extract.CalGridIndexService; +import com.epmet.service.evaluationindex.extract.IssueExtractService; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.util.List; /** * @Author zxc @@ -15,6 +29,11 @@ import org.springframework.stereotype.Service; @DataSource(DataSourceConstant.EVALUATION_INDEX) public class CalGridIndexServiceImpl implements CalGridIndexService { + @Autowired + private IssueExtractService issueExtractService; + @Autowired + private FactIndexGovrnAblityGridMonthlyDao governAbilityDao; + /** * @Description 计算网格指标党建能力 * @param customerId @@ -36,7 +55,69 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { */ @Override public Boolean calGridIndexGovernAbility(String customerId, String monthId) { - return null; + + List result = governAbilityDao.selectAllGridInfo(customerId); + if (CollectionUtils.isEmpty(result)){ + throw new RenException("客户【"+customerId+"】未查出网格信息"); + } + //网格总议题数目,网格人均议题数目 + List gridIssueTotalList = issueExtractService.selectIssueTotal(customerId, monthId); + //网格总项目数 + List gridProjectTotalList = issueExtractService.selectGridProjectCount(customerId, monthId, ExtractConstant.SHIFT_PROJECT); + //网格议题转项目率 + gridProjectTotalList.forEach(project -> { + gridIssueTotalList.forEach(issue ->{ + if (project.getGridId().equals(issue.getGridId())){ + project.setIssueToProjectRatio(getRound(new BigDecimal(project.getProjectTotal()/issue.getIssueTotal()))); + } + }); + }); + //网格自治项目数 + + //网格办结项目数 + + //网格吹哨部门准确率 + + //网格内解决的项目的满意度 + + //组织内党员的参与议事能力考评分(平均值) + + result.forEach(r -> { + // 1. 网格总议题数目,网格人均议题数目 + if (!CollectionUtils.isEmpty(gridIssueTotalList)) { + gridIssueTotalList.forEach(total -> { + if (r.getGridId().equals(total.getGridId())) { + BeanUtils.copyProperties(total, r); + } + }); + } + // 2. 网格总项目数,网格议题转项目率 + if (!CollectionUtils.isEmpty(gridIssueTotalList)){ + gridProjectTotalList.forEach(projectTotal -> { + if (r.getGridId().equals(projectTotal.getGridId())){ + r.setProjectTotal(projectTotal.getProjectTotal()); + r.setIssueToProjectRatio(projectTotal.getIssueToProjectRatio()); + } + }); + } + }); + + + + + + // + + + + + + + + + + + return true; } /** @@ -50,4 +131,14 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { public Boolean calGridIndexServiceAbility(String customerId, String monthId) { return null; } + + /** + * @Description 小数四舍五入 + * @param d + * @author zxc + * @date 2020/9/18 2:01 下午 + */ + public BigDecimal getRound(BigDecimal d){ + return d.setScale(NumConstant.SIX, BigDecimal.ROUND_HALF_UP); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java index d277675b03..d5598650a0 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java @@ -9,13 +9,10 @@ import com.epmet.dao.evaluationindex.extract.FactOriginIssueLogDailyDao; import com.epmet.dao.evaluationindex.extract.FactOriginIssueMainDailyDao; import com.epmet.dao.stats.DimAgencyDao; import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.GridIssueCountResultDTO; import com.epmet.dto.extract.form.IssueLogDailyFormDTO; import com.epmet.dto.extract.form.IssueMainDailyFormDTO; -import com.epmet.dto.extract.result.SatisfactionInfoResultDTO; -import com.epmet.dto.extract.result.AgencyInfoResultDTO; -import com.epmet.dto.extract.result.IssueInfoResultDTO; -import com.epmet.dto.extract.result.IssueProcessInfoResultDTO; -import com.epmet.dto.extract.result.TopicInfoResultDTO; +import com.epmet.dto.extract.result.*; import com.epmet.service.Issue.IssueService; import com.epmet.service.evaluationindex.extract.IssueExtractService; import com.epmet.service.topic.TopicService; @@ -226,6 +223,31 @@ public class IssueExtractServiceImpl implements IssueExtractService { return true; } + /** + * @Description 查询网格议题总数,网格人均议题数目 + * @param customerId + * @param monthId + * @author zxc + * @date 2020/9/18 10:20 上午 + */ + @Override + public List selectIssueTotal(String customerId, String monthId) { + return issueMainDailyDao.selectIssueTotal(customerId, monthId); + } + + /** + * @Description 网格总项目数 + * @param customerId + * @param monthId + * @param status + * @author zxc + * @date 2020/9/18 1:21 下午 + */ + @Override + public List selectGridProjectCount(String customerId, String monthId, String status) { + return issueMainDailyDao.selectGridProjectCount(customerId, monthId, status); + } + /** * @Description 议题附表删除插入 * @param customerId diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml index 9d3ad44198..01da6c5f0b 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml @@ -66,4 +66,39 @@ CUSTOMER_ID = #{customerId} AND DATE_ID = #{dateId} + + + + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.xml index a84dff6a5c..5f4a53ed15 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.xml @@ -161,4 +161,17 @@ AND m.CUSTOMER_ID =#{customerId} AND m.MONTH_ID =#{monthId} + + + From ef098bf94cd0814b6e485fc83dc6e138530462e3 Mon Sep 17 00:00:00 2001 From: wangchao Date: Fri, 18 Sep 2020 15:22:22 +0800 Subject: [PATCH 10/33] project-period --- .../result/ProjectOrgPeriodResultDTO.java | 5 +++ .../impl/ProjectPeriodExtractServiceImpl.java | 11 +---- .../project/ProjectProcessService.java | 12 ++++++ .../impl/ProjectProcessServiceImpl.java | 40 +++++++++++++++++++ 4 files changed, 58 insertions(+), 10 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgPeriodResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgPeriodResultDTO.java index 9ce79b4fc5..fc4867d647 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgPeriodResultDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgPeriodResultDTO.java @@ -80,4 +80,9 @@ public class ProjectOrgPeriodResultDTO implements Serializable { * */ private Date handledDate; + /** + * 第一次响应时间 + * */ + private Date firstResponseDate; + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectPeriodExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectPeriodExtractServiceImpl.java index 885a2cc271..f5fa2cf898 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectPeriodExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectPeriodExtractServiceImpl.java @@ -36,16 +36,7 @@ public class ProjectPeriodExtractServiceImpl implements ProjectPeriodExtractServ @Override public void extractProjectPeriodData(ExtractFormDTO param) { int trace = factOriginProjectOrgPeriodDailyDao.selectIfExisted(param.getCustomerId()); + Boolean isFirst = trace <= NumConstant.ZERO ? true : false; - List periods; - List responseList; - - if(trace <= NumConstant.ZERO){ - //数据初始化 - - }else{ - //日常统计 - - } } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectProcessService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectProcessService.java index c60ff6c8cc..42def9affd 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectProcessService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectProcessService.java @@ -19,6 +19,7 @@ package com.epmet.service.project; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.dto.project.ProcessInfoDTO; +import com.epmet.dto.project.result.ProjectOrgPeriodResultDTO; import com.epmet.entity.project.ProjectEntity; import com.epmet.entity.project.ProjectProcessEntity; @@ -78,4 +79,15 @@ public interface ProjectProcessService extends BaseService * @return java.util.List */ List getClosedProjectList(String customerId, String date); + + /** + * @Description 查询各机关项目节点历时 + * @param isFirst 是否首次 + * @param customerId + * @param date + * @return + * @author wangc + * @date 2020.09.18 13:38 + **/ + List getProjectPeriod(Boolean isFirst,String customerId,String date); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java index 8bfa1c998c..fe319c224c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java @@ -22,12 +22,17 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.project.ProjectProcessDao; import com.epmet.dto.project.ProcessInfoDTO; +import com.epmet.dto.project.result.ProjectOrgPeriodResultDTO; +import com.epmet.dto.project.result.ProjectOrgRelationWhenResponseResultDTO; import com.epmet.entity.project.ProjectEntity; import com.epmet.entity.project.ProjectProcessEntity; import com.epmet.service.project.ProjectProcessService; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * 项目处理进展表 @@ -68,4 +73,39 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl getClosedProjectList(String customerId, String date) { return baseDao.selectClosedProjectList(customerId, date); } + + /** + * @Description 查询各机关项目节点历时 + * @param isFirst 是否首次 + * @param customerId + * @param date + * @return + * @author wangc + * @date 2020.09.18 13:38 + **/ + @Override + public List getProjectPeriod(Boolean isFirst,String customerId, String date) { + List projectNodePeriodPerOrgList; + if(isFirst){ + projectNodePeriodPerOrgList = baseDao.selectProjectOrgPeriod(customerId,null,null); + }else{ + projectNodePeriodPerOrgList = baseDao.selectProjectOrgPeriod(customerId,null,date); + } + + if(!CollectionUtils.isEmpty(projectNodePeriodPerOrgList)){ + List projects = + projectNodePeriodPerOrgList.stream().map(ProjectOrgPeriodResultDTO::getProjectId).distinct().collect(Collectors.toList()); + if(!projects.isEmpty()){ + List responseList = baseDao.selectResponseTrace(projects); + Map> sorted = + responseList.stream().collect(Collectors.groupingBy(ProjectOrgRelationWhenResponseResultDTO::getProjectId)); + + } + } + + return null; + } + + + } \ No newline at end of file From 9334e4a42c99e547d8b8f51b718f9e697554c25b Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Fri, 18 Sep 2020 15:41:31 +0800 Subject: [PATCH 11/33] =?UTF-8?q?=E5=85=9A=E5=91=98=E7=9B=B8=E5=85=B3-?= =?UTF-8?q?=E5=85=9A=E5=BB=BA=E8=83=BD=E5=8A=9B=E8=AE=A1=E7=AE=97V0.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/FactOriginController.java | 2 - .../extract/FactOriginIssueMainDailyDao.java | 20 ++ .../extract/FactOriginTopicLogDailyDao.java | 21 +++ .../extract/FactOriginTopicMainDailyDao.java | 10 + .../FactOriginTopicLogDailyService.java | 19 ++ .../FactOriginTopicMainDailyService.java | 15 +- .../extract/IssueExtractService.java | 23 +++ .../extract/impl/CalCpcIndexServiceImpl.java | 171 ++++++++++++++++-- .../FactOriginTopicLogDailyServiceImpl.java | 31 ++++ .../FactOriginTopicMainDailyServiceImpl.java | 18 +- .../extract/impl/IssueExtractServiceImpl.java | 30 +++ .../extract/FactOriginIssueMainDailyDao.xml | 33 ++++ .../extract/FactOriginTopicLogDailyDao.xml | 35 ++++ .../extract/FactOriginTopicMainDailyDao.xml | 16 ++ 14 files changed, 425 insertions(+), 19 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java index 70d74cc121..8ddfc6a872 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java @@ -59,8 +59,6 @@ public class FactOriginController { } /** - * @param customerId yyyyMMdd - * @param dateId yyyyMMdd * @return com.epmet.commons.tools.utils.Result * @author yinzuomei * @description 话题 (fact_origin_topic_main_daily 话题主表_日统计 fact_origin_topic_log_daily 话题明细_日统计) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java index 1866a593a5..5c5764dd82 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java @@ -24,6 +24,7 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** * 议题主表 @@ -50,4 +51,23 @@ public interface FactOriginIssueMainDailyDao extends BaseDao> + * @param customerId + * @param monthId + * @author yinzuomei + * @description 党员提出的话题转议题数 + * @Date 2020/9/18 13:58 + **/ + List> selectShiftIssueCount(@Param("customerId") String customerId,@Param("monthId") String monthId); + + /** + * @return java.util.List> + * @param customerId + * @param monthId + * @author yinzuomei + * @description 党员提出的议题转项目数 + * @Date 2020/9/18 14:11 + **/ + List> selectShiftProjectCount(@Param("customerId") String customerId,@Param("monthId") String monthId); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicLogDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicLogDailyDao.java index ef66cc0c73..2694c66397 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicLogDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicLogDailyDao.java @@ -23,6 +23,7 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** * 话题明细_日统计 @@ -52,4 +53,24 @@ public interface FactOriginTopicLogDailyDao extends BaseDao list); + + /** + * @return java.util.List> + * @param customerId + * @param monthId + * @author yinzuomei + * @description 查询客户下,这个月内,每个党员评论话题的次数 + * @Date 2020/9/18 13:36 + **/ + List> selectJoinTopicCount(@Param("customerId") String customerId, @Param("monthId") String monthId); + + /** + * @return java.util.List> + * @param customerId + * @param monthId + * @author yinzuomei + * @description 党员自建群活跃度——话题数 + * @Date 2020/9/18 15:05 + **/ + List> selectGroupTopicCount(@Param("customerId") String customerId, @Param("monthId") String monthId); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicMainDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicMainDailyDao.java index 26738dc2b3..a91508e59f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicMainDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicMainDailyDao.java @@ -23,6 +23,7 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** * 话题主表_日统计 @@ -54,4 +55,13 @@ public interface FactOriginTopicMainDailyDao extends BaseDao list); + + /** + * @param customerId + * @param monthId + * @author yinzuomei + * @description 党员提出话题数:返回每个党员这个月内,提出的话题数 + * @Date 2020/9/18 11:05 + **/ + List> selectPartyCreateTopicCount(@Param("customerId") String customerId, @Param("monthId") String monthId); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicLogDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicLogDailyService.java index 76c118972b..18971cf15a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicLogDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicLogDailyService.java @@ -32,4 +32,23 @@ import java.util.Map; */ public interface FactOriginTopicLogDailyService extends BaseService { + /** + * @return java.util.List> + * @param customerId + * @param monthId + * @author yinzuomei + * @description 查询客户下,这个月内,每个党员评论话题的次数 + * @Date 2020/9/18 13:35 + **/ + List> selectJoinTopicCount(String customerId, String monthId); + + /** + * @return java.util.List> + * @param customerId + * @param monthId + * @author yinzuomei + * @description 党员自建群活跃度——话题数 + * @Date 2020/9/18 14:33 + **/ + List> selectGroupTopicCount(String customerId, String monthId); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicMainDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicMainDailyService.java index 6b2414be05..cb30aa46e7 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicMainDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicMainDailyService.java @@ -21,6 +21,9 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.dto.extract.form.ExtractFormDTO; import com.epmet.entity.evaluationindex.extract.FactOriginTopicMainDailyEntity; +import java.util.List; +import java.util.Map; + /** * 话题主表_日统计 @@ -31,8 +34,6 @@ import com.epmet.entity.evaluationindex.extract.FactOriginTopicMainDailyEntity; public interface FactOriginTopicMainDailyService extends BaseService { /** - * @param customerId 客户id - * @param dateId yyyyMMdd * @return void * @author yinzuomei 数据采集:话题本身 * @description fact_origin_topic_log_daily 话题明细_日统计 fact_origin_topic_main_daily 话题主表_日统计 @@ -40,5 +41,13 @@ public interface FactOriginTopicMainDailyService extends BaseService> + * @param customerId + * @param monthId yyyyMM + * @author yinzuomei + * @description 党员提出话题数:返回每个党员这个月内,提出的话题数 + * @Date 2020/9/18 11:03 + **/ + List> selectPartyCreateTopicCount(String customerId, String monthId); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java index 4d05ba19d7..8dd0db2db3 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java @@ -2,6 +2,9 @@ package com.epmet.service.evaluationindex.extract; import com.epmet.dto.extract.form.ExtractFormDTO; +import java.util.List; +import java.util.Map; + /** * @Author zxc * @DateTime 2020/9/14 5:07 下午 @@ -23,4 +26,24 @@ public interface IssueExtractService { * @date 2020/9/16 9:41 上午 */ Boolean issueExtractLog(ExtractFormDTO extractFormDTO); + + /** + * @return java.util.List> + * @param customerId + * @param monthId + * @author yinzuomei + * @description 党员提出的话题转议题数 + * @Date 2020/9/18 13:57 + **/ + List> selectShiftIssueCount(String customerId, String monthId); + + /** + * @return java.util.List> + * @param customerId + * @param monthId + * @author yinzuomei + * @description 党员提出的议题转项目数 + * @Date 2020/9/18 14:11 + **/ + List> selectShiftProjectCount(String customerId, String monthId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalCpcIndexServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalCpcIndexServiceImpl.java index 758ff8d51e..8559025963 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalCpcIndexServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalCpcIndexServiceImpl.java @@ -5,16 +5,20 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.constant.DataSourceConstant; import com.epmet.constant.IndexCalConstant; import com.epmet.dao.evaluationindex.indexcoll.FactIndexPartyAblityCpcMonthlyDao; -import com.epmet.entity.evaluationindex.extract.FactOriginTopicLogDailyEntity; import com.epmet.entity.evaluationindex.indexcoll.FactIndexPartyAblityCpcMonthlyEntity; import com.epmet.service.evaluationindex.extract.CalCpcIndexService; +import com.epmet.service.evaluationindex.extract.FactOriginTopicLogDailyService; +import com.epmet.service.evaluationindex.extract.FactOriginTopicMainDailyService; +import com.epmet.service.evaluationindex.extract.IssueExtractService; import com.epmet.service.stats.DimCustomerPartymemberService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.ListUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 党员相关 @@ -29,6 +33,12 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { private DimCustomerPartymemberService dimCustomerPartymemberService; @Autowired private FactIndexPartyAblityCpcMonthlyDao factIndexPartyAblityCpcMonthlyDao; + @Autowired + private FactOriginTopicMainDailyService factOriginTopicMainDailyService; + @Autowired + private FactOriginTopicLogDailyService factOriginTopicLogDailyService; + @Autowired + private IssueExtractService issueExtractService; /** * @param customerId 客户id @@ -44,18 +54,48 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { List indexPartyAblityCpcList = dimCustomerPartymemberService.selectPartyMemberList(customerId); //2、删除之前统计过的 deleteFactIndexPartyAblityCpcMonthly(customerId, monthId); + //1、党员提出话题数 + Map createTopicCountMap = calCreateTopicCount(customerId, monthId); + //2、党员参与话题数(支持、反对、评论、浏览)---目前只统计 党员评论话题次数之和 + Map joinTopicCountMap=calJoinTopicCount(customerId,monthId); + //3、党员提出的话题转议题数 + Map shiftIssueCountMap=calShiftIssueCount(customerId,monthId); + //4、党员提出的议题转项目数 + Map shiftProjectCountMap=calShiftProjectCount(customerId,monthId); + //6、党员自建群群众人数 + Map groupUserCountMap=calgroupUserCount(customerId,monthId); + //8、党员自建群活跃度——话题数 + Map groupTopicCountMap=calGroupTopicCountMap(customerId,monthId); //3、计算实际值,更新 for (FactIndexPartyAblityCpcMonthlyEntity indexPartyAblityCpcEntity : indexPartyAblityCpcList) { - //TODO - //党员提出话题数 - //党员参与话题数(支持、反对、评论、浏览) - //党员提出的话题转议题数 - //党员提出的议题转项目数 - //参加“三会一课”次数 - //党员自建群群众人数 - //党员自建群活跃群众人数 - //党员自建群活跃度——话题数 - //自建群活跃度——议题转项目率 + //1、党员提出话题数 + if (createTopicCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())) { + indexPartyAblityCpcEntity.setCreateTopicCount(createTopicCountMap.get(indexPartyAblityCpcEntity.getUserId())); + } + //2、党员参与话题数(支持、反对、评论、浏览)---目前只统计 党员评论话题次数之和 + if(joinTopicCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())){ + indexPartyAblityCpcEntity.setJoinTopicCount(joinTopicCountMap.get(indexPartyAblityCpcEntity.getUserId())); + } + //3、党员提出的话题转议题数 + if(shiftIssueCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())){ + indexPartyAblityCpcEntity.setShiftIssueCount(shiftIssueCountMap.get(indexPartyAblityCpcEntity.getUserId())); + } + //4、党员提出的议题转项目数 + if(shiftProjectCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())){ + indexPartyAblityCpcEntity.setShiftProjectCount(shiftProjectCountMap.get(indexPartyAblityCpcEntity.getUserId())); + } + //5、参加“三会一课”次数 目前没有此业务,默认0 + //6、党员自建群群众人数 TODO + if(groupUserCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())){ + indexPartyAblityCpcEntity.setGroupUserCount(groupUserCountMap.get(indexPartyAblityCpcEntity.getUserId())); + } + //7、党员自建群活跃群众人数 TODO + //8、党员自建群活跃度——话题数 + if(groupTopicCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())){ + indexPartyAblityCpcEntity.setGroupTopicCount(groupTopicCountMap.get(indexPartyAblityCpcEntity.getUserId())); + } + //9、自建群活跃度——议题转项目率 TODO + } //4、分批插入 //批量插入 @@ -63,8 +103,117 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { partition.forEach(list -> { this.FactIndexPartyAblityCpcMonthlyEntity(list); }); + + } + + /** + * @param customerId + * @param monthId + * @return java.lang.Integer + * @author yinzuomei + * @description 1、查询出客户下所有党员对应的-党员提出话题数 + * @Date 2020/9/18 10:59 + **/ + private Map calCreateTopicCount(String customerId, String monthId) { + List> mapList = factOriginTopicMainDailyService.selectPartyCreateTopicCount(customerId, monthId); + Map resultMap = new HashMap<>(); + for (Map map : mapList) { + for (Map.Entry m : map.entrySet()) { + resultMap.put(m.getKey(), m.getValue()); + } + } + return resultMap; + } + + /** + * @return java.util.Map + * @param customerId + * @param monthId + * @author yinzuomei + * @description 2、查询客户下,这个月内,每个党员评论话题的次数 + * @Date 2020/9/18 13:33 + **/ + private Map calJoinTopicCount(String customerId, String monthId) { + List> mapList = factOriginTopicLogDailyService.selectJoinTopicCount(customerId, monthId); + Map resultMap = new HashMap<>(); + for (Map map : mapList) { + for (Map.Entry m : map.entrySet()) { + resultMap.put(m.getKey(), m.getValue()); + } + } + return resultMap; + } + + + /** + * @return java.util.Map + * @param customerId + * @param monthId + * @author yinzuomei + * @description 3、党员提出的话题转议题数 + * @Date 2020/9/18 13:53 + **/ + private Map calShiftIssueCount(String customerId, String monthId) { + List> mapList = issueExtractService.selectShiftIssueCount(customerId, monthId); + Map resultMap = new HashMap<>(); + for (Map map : mapList) { + for (Map.Entry m : map.entrySet()) { + resultMap.put(m.getKey(), m.getValue()); + } + } + return resultMap; + } + + /** + * @return java.util.Map + * @param customerId + * @param monthId + * @author yinzuomei + * @description 4、党员提出的议题转项目数 + * @Date 2020/9/18 14:10 + **/ + private Map calShiftProjectCount(String customerId, String monthId) { + List> mapList = issueExtractService.selectShiftProjectCount(customerId, monthId); + Map resultMap = new HashMap<>(); + for (Map map : mapList) { + for (Map.Entry m : map.entrySet()) { + resultMap.put(m.getKey(), m.getValue()); + } + } + return resultMap; + } + + /** + * @return java.util.Map + * @param customerId + * @param monthId + * @author yinzuomei + * @description 6、党员自建群群众人数 + * @Date 2020/9/18 15:38 + **/ + private Map calgroupUserCount(String customerId, String monthId) { + // TODO + return null; } + /** + * @param customerId + * @param monthId + * @return java.util.Map + * @author yinzuomei + * @description 8、党员自建群活跃度——话题数 + * @Date 2020/9/18 14:31 + **/ + private Map calGroupTopicCountMap(String customerId, String monthId) { + List> mapList = factOriginTopicLogDailyService.selectGroupTopicCount(customerId, monthId); + Map resultMap = new HashMap<>(); + for (Map map : mapList) { + for (Map.Entry m : map.entrySet()) { + resultMap.put(m.getKey(), m.getValue()); + } + } + return resultMap; + } /** * @param customerId diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicLogDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicLogDailyServiceImpl.java index b95bc36cb7..07a220fa44 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicLogDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicLogDailyServiceImpl.java @@ -17,20 +17,51 @@ package com.epmet.service.evaluationindex.extract.impl; +import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.constant.DataSourceConstant; import com.epmet.dao.evaluationindex.extract.FactOriginTopicLogDailyDao; import com.epmet.entity.evaluationindex.extract.FactOriginTopicLogDailyEntity; import com.epmet.service.evaluationindex.extract.FactOriginTopicLogDailyService; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Map; + /** * 话题明细_日统计 * * @author generator generator@elink-cn.com * @since v1.0.0 2020-09-15 */ +@DataSource(DataSourceConstant.STATS) @Service public class FactOriginTopicLogDailyServiceImpl extends BaseServiceImpl implements FactOriginTopicLogDailyService { + /** + * @param customerId + * @param monthId + * @return java.util.List> + * @author yinzuomei + * @description 查询客户下,这个月内,每个党员评论话题的次数 + * @Date 2020/9/18 13:35 + **/ + @Override + public List> selectJoinTopicCount(String customerId, String monthId) { + return baseDao.selectJoinTopicCount(customerId,monthId); + } + + /** + * @param customerId + * @param monthId + * @return java.util.List> + * @author yinzuomei + * @description 党员自建群活跃度——话题数 + * @Date 2020/9/18 14:33 + **/ + @Override + public List> selectGroupTopicCount(String customerId, String monthId) { + return baseDao.selectGroupTopicCount(customerId,monthId); + } } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicMainDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicMainDailyServiceImpl.java index 6915bb6777..6925b94644 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicMainDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicMainDailyServiceImpl.java @@ -17,11 +17,13 @@ package com.epmet.service.evaluationindex.extract.impl; +import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.constant.DataSourceConstant; import com.epmet.constant.DimObjectActionConstant; import com.epmet.constant.IndexCalConstant; import com.epmet.dao.evaluationindex.extract.FactOriginTopicLogDailyDao; @@ -54,6 +56,7 @@ import java.util.stream.Collectors; * @author generator generator@elink-cn.com * @since v1.0.0 2020-09-15 */ +@DataSource(value = DataSourceConstant.STATS) @Slf4j @Service public class FactOriginTopicMainDailyServiceImpl extends BaseServiceImpl implements FactOriginTopicMainDailyService { @@ -67,8 +70,6 @@ public class FactOriginTopicMainDailyServiceImpl extends BaseServiceImpl getGridInfoMap(String customerId) { Map map=new HashMap<>(); List list=customerGridService.queryGridInfoList(customerId); @@ -226,5 +228,15 @@ public class FactOriginTopicMainDailyServiceImpl extends BaseServiceImpl> selectPartyCreateTopicCount(String customerId, String monthId) { + return baseDao.selectPartyCreateTopicCount(customerId,monthId); + } } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java index d277675b03..9a45fece6e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java @@ -1,9 +1,11 @@ package com.epmet.service.evaluationindex.extract.impl; +import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.dto.form.TimeListResultDTO; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.constant.DataSourceConstant; import com.epmet.constant.ExtractConstant; import com.epmet.dao.evaluationindex.extract.FactOriginIssueLogDailyDao; import com.epmet.dao.evaluationindex.extract.FactOriginIssueMainDailyDao; @@ -240,4 +242,32 @@ public class IssueExtractServiceImpl implements IssueExtractService { issueLogDailyDao.insertIssueLogList(result); } + + + /** + * @param customerId + * @param monthId + * @return java.util.List> + * @author yinzuomei + * @description 党员提出的话题转议题数 + * @Date 2020/9/18 13:57 + **/ + @DataSource(DataSourceConstant.STATS) + @Override + public List> selectShiftIssueCount(String customerId, String monthId) { + return issueMainDailyDao.selectShiftIssueCount(customerId,monthId); + } + + /** + * @param customerId + * @param monthId + * @return java.util.List> + * @author yinzuomei + * @description 党员提出的议题转项目数 + * @Date 2020/9/18 14:11 + **/ + @Override + public List> selectShiftProjectCount(String customerId, String monthId) { + return issueMainDailyDao.selectShiftProjectCount(customerId,monthId); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml index 9d3ad44198..9ae5aed568 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml @@ -66,4 +66,37 @@ CUSTOMER_ID = #{customerId} AND DATE_ID = #{dateId} + + + + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicLogDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicLogDailyDao.xml index 3efebcd69f..3fcd8fba28 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicLogDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicLogDailyDao.xml @@ -65,4 +65,39 @@ ) + + + + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicMainDailyDao.xml index 377f09bd45..453ba483b2 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicMainDailyDao.xml @@ -62,4 +62,20 @@ ) + + + \ No newline at end of file From a95534223541af4216fef556b05f0213faa43744 Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 18 Sep 2020 15:55:33 +0800 Subject: [PATCH 12/33] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=8A=BD=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/controller/DemoController.java | 13 ++- .../controller/FactOriginController.java | 27 +++-- .../extract/FactOriginExtractService.java | 18 ++++ .../extract/ProjectExtractService.java | 20 ++-- .../impl/FactOriginExtractServiceImpl.java | 100 ++++++++++++++++++ .../extract/impl/IssueExtractServiceImpl.java | 4 +- .../impl/ProjectExtractServiceImpl.java | 10 +- 7 files changed, 166 insertions(+), 26 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginExtractService.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginExtractServiceImpl.java diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java index 6db7fd4245..47122de6ad 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java @@ -15,6 +15,7 @@ import com.epmet.dao.evaluationindex.screen.ScreenCustomerGridDao; import com.epmet.dao.stats.DimCustomerDao; import com.epmet.dao.stats.DimDateDao; import com.epmet.dto.AgencySubTreeDto; +import com.epmet.dto.extract.form.ExtractFormDTO; import com.epmet.dto.indexcal.CalculateCommonFormDTO; import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO; import com.epmet.entity.evaluationindex.indexcoll.FactIndexGovrnAblityGridMonthlyEntity; @@ -503,15 +504,21 @@ public class DemoController { @PostMapping("inserttopicorigin") public Result topicDataCleaning(@RequestParam("customerId") String customerId, @RequestParam("dateId")String dateId) { if (StringUtils.isNotBlank(customerId) && StringUtils.isNotBlank(dateId)) { - factOriginTopicMainDailyService.topicCleaning(customerId,dateId); + ExtractFormDTO param = new ExtractFormDTO(); + param.setDateId(dateId); + param.setCustomerId(customerId); + Boolean aBoolean = factOriginTopicMainDailyService.topicCleaning(param); }else{ QueryWrapper customerEntityQueryWrapper = new QueryWrapper<>(); List customerEntityList=dimCustomerDao.selectList(customerEntityQueryWrapper); QueryWrapper wrapper = new QueryWrapper<>(); List dimDateEntityList= dimDateDao.selectList(wrapper); for(DimCustomerEntity customerEntity:customerEntityList){ - for(DimDateEntity dateEntity:dimDateEntityList){ - factOriginTopicMainDailyService.topicCleaning(customerEntity.getId(),dateEntity.getId()); + for(DimDateEntity dateEntity:dimDateEntityList) { + ExtractFormDTO param = new ExtractFormDTO(); + param.setDateId(dateEntity.getId()); + param.setCustomerId(customerEntity.getId()); + factOriginTopicMainDailyService.topicCleaning(param); } } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java index 8ddfc6a872..eaabd2fa48 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java @@ -3,7 +3,7 @@ package com.epmet.controller; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.extract.form.ExtractFormDTO; -import com.epmet.dto.extract.form.ProjectFormDTO; +import com.epmet.service.evaluationindex.extract.FactOriginExtractService; import com.epmet.service.evaluationindex.extract.FactOriginTopicMainDailyService; import com.epmet.service.evaluationindex.extract.IssueExtractService; import com.epmet.service.evaluationindex.extract.ProjectExtractService; @@ -24,7 +24,8 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("factorigin") public class FactOriginController { - + @Autowired + private FactOriginExtractService factOriginExtractService; @Autowired private IssueExtractService issueExtractService; @Autowired @@ -33,13 +34,26 @@ public class FactOriginController { private ProjectExtractService projectExtractService; /** - * @Description 议题抽取(main) + * desc: + * + * @param extractFormDTO + * @return + */ + @PostMapping("extractall") + public Result extractAll(@RequestBody ExtractFormDTO extractFormDTO) { + factOriginExtractService.extractAll(extractFormDTO); + return new Result(); + } + + + /** * @param extractFormDTO + * @Description 议题抽取(main) * @author zxc * @date 2020/9/15 2:02 下午 */ @PostMapping("issueextractmain") - public Result issueExtractMain(@RequestBody ExtractFormDTO extractFormDTO){ + public Result issueExtractMain(@RequestBody ExtractFormDTO extractFormDTO) { ValidatorUtils.validateEntity(extractFormDTO, ExtractFormDTO.ExtractForm.class); issueExtractService.issueExtractMain(extractFormDTO); return new Result(); @@ -59,6 +73,7 @@ public class FactOriginController { } /** + * @param extractFormDTO * @return com.epmet.commons.tools.utils.Result * @author yinzuomei * @description 话题 (fact_origin_topic_main_daily 话题主表_日统计 fact_origin_topic_log_daily 话题明细_日统计) @@ -73,8 +88,8 @@ public class FactOriginController { } @PostMapping("project") - public Result projectData(@RequestBody ProjectFormDTO formDTO) { - projectExtractService.saveOriginProjectDaily(formDTO.getCustomerId(), formDTO.getDate()); + public Result projectData(@RequestBody ExtractFormDTO extractFormDTO) { + projectExtractService.saveOriginProjectDaily(extractFormDTO); return new Result(); } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginExtractService.java new file mode 100644 index 0000000000..886a7daf3c --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginExtractService.java @@ -0,0 +1,18 @@ +package com.epmet.service.evaluationindex.extract; + +import com.epmet.dto.extract.form.ExtractFormDTO; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/9/15 14:00 + */ +public interface FactOriginExtractService { + + /** + * desc:抽取所有业务数据到统计库 + * + * @param extractFormDTO + */ + void extractAll(ExtractFormDTO extractFormDTO); +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/ProjectExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/ProjectExtractService.java index 88efc32884..d6103f71a5 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/ProjectExtractService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/ProjectExtractService.java @@ -1,6 +1,6 @@ package com.epmet.service.evaluationindex.extract; -import java.util.Date; +import com.epmet.dto.extract.form.ExtractFormDTO; /** * @author zhaoqifeng @@ -10,13 +10,13 @@ import java.util.Date; public interface ProjectExtractService { - /** - * 项目主表、明细日统计 - * @author zhaoqifeng - * @date 2020/9/15 14:38 - * @param customerId - * @param date - * @return - */ - void saveOriginProjectDaily(String customerId, Date date); + /** + * 项目主表、明细日统计 + * + * @param extractFormDTO + * @return + * @author zhaoqifeng + * @date 2020/9/15 14:38 + */ + void saveOriginProjectDaily(ExtractFormDTO extractFormDTO); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginExtractServiceImpl.java new file mode 100644 index 0000000000..7c6275929d --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginExtractServiceImpl.java @@ -0,0 +1,100 @@ +package com.epmet.service.evaluationindex.extract.impl; + +import com.alibaba.fastjson.JSON; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.service.evaluationindex.extract.FactOriginExtractService; +import com.epmet.service.evaluationindex.extract.FactOriginTopicMainDailyService; +import com.epmet.service.evaluationindex.extract.IssueExtractService; +import com.epmet.service.evaluationindex.extract.ProjectExtractService; +import com.epmet.service.stats.DimCustomerService; +import com.epmet.util.DimIdGenerator; +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.concurrent.*; + +/** + * desc:抽取业务数据 到 统计库 汇聚类 + */ +@Slf4j +@Service +public class FactOriginExtractServiceImpl implements FactOriginExtractService { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("factOriginExtract-pool-%d").build(); + ExecutorService threadPool = new ThreadPoolExecutor(4, 8, + 10L, TimeUnit.MINUTES, + new LinkedBlockingQueue<>(100), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + + @Autowired + private IssueExtractService issueExtractService; + @Autowired + private FactOriginTopicMainDailyService factOriginTopicMainDailyService; + @Autowired + private ProjectExtractService projectExtractService; + @Autowired + private DimCustomerService dimCustomerService; + + + @Override + public void extractAll(ExtractFormDTO extractFormDTO) { + String dateId = extractFormDTO.getDateId(); + String customerId = extractFormDTO.getCustomerId(); + if (StringUtils.isBlank(dateId)) { + dateId = DimIdGenerator.getDateDimId(DateUtils.addDateDays(new Date(), -1)); + } + List customerIds = new ArrayList<>(); + if (StringUtils.isNotBlank(customerId)) { + customerIds.add(customerId); + } + int pageNo = NumConstant.ONE; + int pageSize = NumConstant.ONE_HUNDRED; + customerIds = dimCustomerService.selectCustomerIdPage(pageNo, pageSize); + if (CollectionUtils.isEmpty(customerIds)) { + log.error("extractAll 获取客户Id为空"); + return; + } + + String finalDateId = dateId; + customerIds.forEach(cId -> { + ExtractFormDTO param = new ExtractFormDTO(); + param.setCustomerId(cId); + param.setDateId(finalDateId); + submitJob(param); + }); + + } + + private void submitJob(ExtractFormDTO param) { + threadPool.submit(() -> { + try { + factOriginTopicMainDailyService.topicCleaning(param); + } catch (Exception e) { + log.error("抽取【话题数据】发生异常,参数:" + JSON.toJSONString(param), e); + } + }); + threadPool.submit(() -> { + try { + issueExtractService.issueExtractMain(param); + issueExtractService.issueExtractLog(param); + } catch (Exception e) { + log.error("抽取【议题数据】发生异常,参数:" + JSON.toJSONString(param), e); + } + }); + threadPool.submit(() -> { + try { + projectExtractService.saveOriginProjectDaily(param); + } catch (Exception e) { + log.error("抽取【项目数据】发生异常,参数:" + JSON.toJSONString(param), e); + } + }); + } +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java index 702487dad9..cc57e3d000 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java @@ -25,7 +25,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; -import javax.validation.constraints.NotBlank; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -66,7 +65,8 @@ public class IssueExtractServiceImpl implements IssueExtractService { List listResult = issueService.selectIssueInfo(customerId, dateId); List result = new ArrayList<>(); if (CollectionUtils.isEmpty(listResult)){ - throw new RenException(ExtractConstant.ISSUE_INFO); + log.warn("issueExtractMain selectIssueInfo return empty,customerId:{},dateId:{}", customerId, dateId); + return true; } listResult.forEach(issue -> { IssueMainDailyFormDTO issueMainDailyFormDTO = ConvertUtils.sourceToTarget(issue, IssueMainDailyFormDTO.class); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectExtractServiceImpl.java index ca63c8c9aa..cd8802aa8b 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectExtractServiceImpl.java @@ -5,6 +5,7 @@ import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.ProjectDTO; import com.epmet.dto.extract.FactOriginProjectMainDailyDTO; +import com.epmet.dto.extract.form.ExtractFormDTO; import com.epmet.dto.form.WorkDayFormDTO; import com.epmet.dto.issue.IssueDTO; import com.epmet.dto.party.PartyMemberDTO; @@ -61,11 +62,10 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { @Override - public void saveOriginProjectDaily(String customerId, Date date) { - String dateString = null; - if (null != date) { - dateString = DateUtils.format(date); - } + public void saveOriginProjectDaily(ExtractFormDTO extractFormDTO) { + String dateString = extractFormDTO.getDateId(); + String customerId = extractFormDTO.getCustomerId(); + //获取已关闭项目列表 List closedList = projectProcessService.getClosedProjectList(customerId, dateString); List pendingList = factOriginProjectMainDailyService.getPendingList(customerId); From 41cd752143d36b063a6d78160961af758f7c922a Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 18 Sep 2020 16:20:47 +0800 Subject: [PATCH 13/33] =?UTF-8?q?=E7=BD=91=E6=A0=BC=20=E6=B2=BB=E7=90=86?= =?UTF-8?q?=E8=83=BD=E5=8A=9B=20=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commons/tools/constant/NumConstant.java | 1 + .../com/epmet/constant/ExtractConstant.java | 12 ++ .../constant/ProjectEvaluateConstant.java | 19 +++ .../result/CalSatisfactionResultDTO.java | 16 +++ .../GridProjectClosedTotalResultDTO.java | 25 ++++ .../result/NotReturnProjectResultDTO.java | 32 +++++ .../result/ProjectEvaluateResultDTO.java | 37 ++++++ .../extract/FactOriginProjectLogDailyDao.java | 24 +++- .../FactOriginProjectMainDailyDao.java | 11 ++ .../FactOriginProjectLogDailyService.java | 20 +++ .../FactOriginProjectMainDailyService.java | 11 ++ .../extract/impl/CalGridIndexServiceImpl.java | 120 ++++++++++++++---- .../FactOriginProjectLogDailyServiceImpl.java | 26 ++++ ...FactOriginProjectMainDailyServiceImpl.java | 14 ++ .../extract/FactOriginProjectLogDailyDao.xml | 50 +++++--- .../extract/FactOriginProjectMainDailyDao.xml | 15 +++ 16 files changed, 384 insertions(+), 49 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/ProjectEvaluateConstant.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/CalSatisfactionResultDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridProjectClosedTotalResultDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/NotReturnProjectResultDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/ProjectEvaluateResultDTO.java diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java index e906535166..1d727fb297 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/NumConstant.java @@ -38,6 +38,7 @@ public interface NumConstant { int ONE_THOUSAND = 1000; int MAX = 99999999; int EIGHTY_EIGHT = 88; + int EIGHTY = 80; double ZERO_DOT_ZERO = 0.0; diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/ExtractConstant.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/ExtractConstant.java index 8e01f5ee46..b8ee4f09ee 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/ExtractConstant.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/ExtractConstant.java @@ -20,4 +20,16 @@ public interface ExtractConstant { String SHIFT_PROJECT = "shift_project"; + String CLOSED = "closed"; + + String GRID_ORG_TYPE = "grid"; + + String RETURN_ACTION_CODE = "return"; + + String EVALUATE_BAD = "bad"; + + String EVALUATE_GOOD = "good"; + + String EVALUATE_PERFECT = "perfect"; + } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/ProjectEvaluateConstant.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/ProjectEvaluateConstant.java new file mode 100644 index 0000000000..a2c15b100e --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/ProjectEvaluateConstant.java @@ -0,0 +1,19 @@ +package com.epmet.constant; + +import com.epmet.commons.tools.constant.NumConstant; + +/** + * @Author zxc + * @DateTime 2020/9/18 3:49 下午 + */ +public interface ProjectEvaluateConstant { + +// BigDecimal BAD = new BigDecimal(NumConstant.SIXTY); +// BigDecimal GOOD = new BigDecimal(NumConstant.EIGHTY); +// BigDecimal PERFECT = new BigDecimal(NumConstant.ONE_HUNDRED); + + Integer BAD = NumConstant.SIXTY; + Integer GOOD = NumConstant.EIGHTY; + Integer PERFECT = NumConstant.ONE_HUNDRED; + +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/CalSatisfactionResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/CalSatisfactionResultDTO.java new file mode 100644 index 0000000000..811f33c30b --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/CalSatisfactionResultDTO.java @@ -0,0 +1,16 @@ +package com.epmet.dto.extract.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/9/18 4:01 下午 + */ +@Data +public class CalSatisfactionResultDTO implements Serializable { + + private static final long serialVersionUID = -7514945819312915670L; + +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridProjectClosedTotalResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridProjectClosedTotalResultDTO.java new file mode 100644 index 0000000000..512e594ad2 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridProjectClosedTotalResultDTO.java @@ -0,0 +1,25 @@ +package com.epmet.dto.extract.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/9/18 2:02 下午 + */ +@Data +public class GridProjectClosedTotalResultDTO implements Serializable { + + private static final long serialVersionUID = 5144371528837124674L; + + /** + * 网格ID + */ + private String gridId; + + /** + * 网格办结项目数 + */ + private Integer resolveProjectCount; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/NotReturnProjectResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/NotReturnProjectResultDTO.java new file mode 100644 index 0000000000..70f0efd484 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/NotReturnProjectResultDTO.java @@ -0,0 +1,32 @@ +package com.epmet.dto.extract.result; + +import com.epmet.commons.tools.constant.NumConstant; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @Author zxc + * @DateTime 2020/9/18 2:46 下午 + */ +@Data +public class NotReturnProjectResultDTO implements Serializable { + + private static final long serialVersionUID = -2931817313224740122L; + + /** + * 网格ID + */ + private String gridId; + + /** + * 未被退回的项目 + */ + private Integer notReturnProject = NumConstant.ZERO; + + /** + * 网格吹哨部门准确率 + */ + private BigDecimal transferRightRatio = new BigDecimal(NumConstant.ZERO); +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/ProjectEvaluateResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/ProjectEvaluateResultDTO.java new file mode 100644 index 0000000000..1e9c927663 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/ProjectEvaluateResultDTO.java @@ -0,0 +1,37 @@ +package com.epmet.dto.extract.result; + +import com.epmet.commons.tools.constant.NumConstant; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @Author zxc + * @DateTime 2020/9/18 3:23 下午 + */ +@Data +public class ProjectEvaluateResultDTO implements Serializable { + + private static final long serialVersionUID = 6042094904405338630L; + + /** + * 动作code + */ + private String actionCode; + + /** + * 网格ID + */ + private String gridId; + + /** + * 满意度评价对应的分数 + */ + private Integer score = NumConstant.ZERO; + + /** + * 项目ID + */ + private String projectId; +} 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 a4729ec8ec..48f3a546a4 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 @@ -18,8 +18,13 @@ package com.epmet.dao.evaluationindex.extract; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.extract.result.NotReturnProjectResultDTO; +import com.epmet.dto.extract.result.ProjectEvaluateResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginProjectLogDailyEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 项目明细_日统计 @@ -29,5 +34,22 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface FactOriginProjectLogDailyDao extends BaseDao { - + + /** + * @Description 查询未被退回的项目数 + * @param customerId + * @param monthId + * @author zxc + * @date 2020/9/18 2:50 下午 + */ + List selectNotReturnProject(@Param("customerId") String customerId,@Param("monthId") String monthId,@Param("actionCode") String actionCode,@Param("orgType") String orgType); + + /** + * @Description 查询项目评价信息 + * @param customerId + * @param monthId + * @author zxc + * @date 2020/9/18 3:28 下午 + */ + List selectProjectEvaluate(@Param("customerId") String customerId,@Param("monthId") String monthId); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java index 1fc4f9b9a9..2b2e581698 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java @@ -19,6 +19,7 @@ package com.epmet.dao.evaluationindex.extract; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.extract.FactOriginProjectMainDailyDTO; +import com.epmet.dto.extract.result.GridProjectClosedTotalResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -51,4 +52,14 @@ public interface FactOriginProjectMainDailyDao extends BaseDao */ List getPendingList(@Param("customerId") String customerId); + + /** + * @Description 网格办结项目数 + * @param customerId + * @param monthId + * @param status + * @author zxc + * @date 2020/9/18 2:06 下午 + */ + List selectGridClosedProject(@Param("customerId") String customerId,@Param("monthId") String monthId,@Param("status") String status); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java index 8099ef503b..9a5975aa90 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java @@ -20,6 +20,8 @@ package com.epmet.service.evaluationindex.extract; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.extract.FactOriginProjectLogDailyDTO; +import com.epmet.dto.extract.result.NotReturnProjectResultDTO; +import com.epmet.dto.extract.result.ProjectEvaluateResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginProjectLogDailyEntity; import java.util.List; @@ -92,4 +94,22 @@ public interface FactOriginProjectLogDailyService extends BaseService selectNotReturnProject(String customerId,String monthId,String actionCode,String orgType); + + /** + * @Description 查询项目评价信息 + * @param customerId + * @param monthId + * @author zxc + * @date 2020/9/18 3:28 下午 + */ + List selectProjectEvaluate(String customerId,String monthId); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectMainDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectMainDailyService.java index 749fdc4897..8b6c93d719 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectMainDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectMainDailyService.java @@ -20,6 +20,7 @@ package com.epmet.service.evaluationindex.extract; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.extract.FactOriginProjectMainDailyDTO; +import com.epmet.dto.extract.result.GridProjectClosedTotalResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity; import java.util.List; @@ -110,4 +111,14 @@ public interface FactOriginProjectMainDailyService extends BaseService */ List getPendingList(String customerId); + + /** + * @Description 网格办结项目数 + * @param customerId + * @param monthId + * @param status + * @author zxc + * @date 2020/9/18 2:06 下午 + */ + List selectGridClosedProject(String customerId,String monthId,String status); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java index 4ab4360397..9fca7973bd 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java @@ -5,11 +5,17 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.RenException; import com.epmet.constant.DataSourceConstant; import com.epmet.constant.ExtractConstant; +import com.epmet.constant.ProjectEvaluateConstant; import com.epmet.dao.evaluationindex.indexcoll.FactIndexGovrnAblityGridMonthlyDao; import com.epmet.dto.extract.form.GovernAbilityGridMonthlyFormDTO; import com.epmet.dto.extract.form.GridIssueCountResultDTO; +import com.epmet.dto.extract.result.GridProjectClosedTotalResultDTO; import com.epmet.dto.extract.result.GridProjectCountResultDTO; +import com.epmet.dto.extract.result.NotReturnProjectResultDTO; +import com.epmet.dto.extract.result.ProjectEvaluateResultDTO; import com.epmet.service.evaluationindex.extract.CalGridIndexService; +import com.epmet.service.evaluationindex.extract.FactOriginProjectLogDailyService; +import com.epmet.service.evaluationindex.extract.FactOriginProjectMainDailyService; import com.epmet.service.evaluationindex.extract.IssueExtractService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; @@ -18,7 +24,11 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.math.BigDecimal; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicReference; +import java.util.stream.Collectors; /** * @Author zxc @@ -33,6 +43,10 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { private IssueExtractService issueExtractService; @Autowired private FactIndexGovrnAblityGridMonthlyDao governAbilityDao; + @Autowired + private FactOriginProjectMainDailyService projectMainService; + @Autowired + private FactOriginProjectLogDailyService projectLogService; /** * @Description 计算网格指标党建能力 @@ -65,22 +79,63 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { //网格总项目数 List gridProjectTotalList = issueExtractService.selectGridProjectCount(customerId, monthId, ExtractConstant.SHIFT_PROJECT); //网格议题转项目率 - gridProjectTotalList.forEach(project -> { - gridIssueTotalList.forEach(issue ->{ - if (project.getGridId().equals(issue.getGridId())){ - project.setIssueToProjectRatio(getRound(new BigDecimal(project.getProjectTotal()/issue.getIssueTotal()))); - } + if (!CollectionUtils.isEmpty(gridIssueTotalList) && !CollectionUtils.isEmpty(gridProjectTotalList)) { + gridProjectTotalList.forEach(project -> { + gridIssueTotalList.forEach(issue -> { + if (project.getGridId().equals(issue.getGridId())) { + project.setIssueToProjectRatio(getRound(new BigDecimal(project.getProjectTotal() / issue.getIssueTotal()))); + } + }); }); - }); - //网格自治项目数 + } + //网格自治项目数 从议题创建到项目关闭,包括处理人,自始至终没有出过议题所属网格 //网格办结项目数 - - //网格吹哨部门准确率 - + List gridProjectClosedTotalList = projectMainService.selectGridClosedProject(customerId, monthId, ExtractConstant.CLOSED); + //网格吹哨部门准确率 【没被退回的项目数/项目总数 】 + List notReturnProjectList = projectLogService.selectNotReturnProject(customerId, monthId, ExtractConstant.RETURN_ACTION_CODE, ExtractConstant.GRID_ORG_TYPE); + if (!CollectionUtils.isEmpty(gridProjectTotalList) && !CollectionUtils.isEmpty(notReturnProjectList)){ + notReturnProjectList.forEach(not -> { + gridProjectTotalList.forEach(total -> { + if (not.getGridId().equals(total.getGridId())){ + not.setTransferRightRatio(getRound(new BigDecimal(not.getNotReturnProject()/total.getProjectTotal()))); + } + }); + }); + } //网格内解决的项目的满意度 - - //组织内党员的参与议事能力考评分(平均值) + //项目评价(分值定义下非常满意100,满意80,不满意(一般)60)的人数的平均分(每个项目的参加人数的分数和/评论人数=一个项目的平均分)+其他项目得分/已关闭项目总数 + List projectEvaluateList = projectLogService.selectProjectEvaluate(customerId, monthId); + Map resultSatisfactionScore = new HashMap<>(16); + if (!CollectionUtils.isEmpty(projectEvaluateList)){ + Map> groupByGrid = projectEvaluateList.stream().collect(Collectors.groupingBy(ProjectEvaluateResultDTO::getGridId)); + groupByGrid.forEach((gridId,projectEvaluateInfoList) -> { + Map scoreMap = new HashMap<>(16); + Map> groupByProject = projectEvaluateInfoList.stream().collect(Collectors.groupingBy(ProjectEvaluateResultDTO::getProjectId)); + groupByProject.forEach((projectId,projectList) -> { + projectList.forEach(project -> { + switch (project.getActionCode()){ + case ExtractConstant.EVALUATE_BAD: + project.setScore(ProjectEvaluateConstant.BAD); + break; + case ExtractConstant.EVALUATE_GOOD: + project.setScore(ProjectEvaluateConstant.GOOD); + break; + case ExtractConstant.EVALUATE_PERFECT: + project.setScore(ProjectEvaluateConstant.PERFECT); + break; + } + }); + Integer projectAllScore = projectList.stream().collect(Collectors.summingInt(ProjectEvaluateResultDTO::getScore)); + scoreMap.put(projectId,projectAllScore/projectList.size()); + }); + AtomicReference allScore = new AtomicReference<>(0); + scoreMap.forEach((k,v) -> { + allScore.set(++v); + }); + resultSatisfactionScore.put(gridId,getRound(new BigDecimal(allScore.get()/scoreMap.size()))); + }); + } result.forEach(r -> { // 1. 网格总议题数目,网格人均议题数目 @@ -100,23 +155,32 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { } }); } + // 3. 网格办结项目数 + if (!CollectionUtils.isEmpty(gridProjectClosedTotalList)){ + gridProjectClosedTotalList.forEach(closed -> { + if (r.getGridId().equals(closed.getGridId())){ + r.setResolveProjectCount(closed.getResolveProjectCount()); + } + }); + } + // 4. 网格吹哨部门准确率 + if (!CollectionUtils.isEmpty(notReturnProjectList)){ + notReturnProjectList.forEach(not -> { + if (r.getGridId().equals(not.getGridId())){ + r.setTransferRightRatio(not.getTransferRightRatio()); + } + }); + } + // 5. 网格内解决的项目的满意度 + if (null != resultSatisfactionScore){ + resultSatisfactionScore.forEach((k,v) -> { + if (r.getGridId().equals(k)){ + r.setSatisfactionRatio(v); + } + }); + } + // 6. 网格自治项目数 }); - - - - - - // - - - - - - - - - - return true; } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectLogDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectLogDailyServiceImpl.java index e0d99443f7..f51b327fe6 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectLogDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectLogDailyServiceImpl.java @@ -25,6 +25,8 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.evaluationindex.extract.FactOriginProjectLogDailyDao; import com.epmet.dto.extract.FactOriginProjectLogDailyDTO; +import com.epmet.dto.extract.result.NotReturnProjectResultDTO; +import com.epmet.dto.extract.result.ProjectEvaluateResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginProjectLogDailyEntity; import com.epmet.service.evaluationindex.extract.FactOriginProjectLogDailyService; import org.apache.commons.lang3.StringUtils; @@ -97,4 +99,28 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl selectNotReturnProject(String customerId, String monthId, String actionCode, String orgType) { + return baseDao.selectNotReturnProject(customerId, monthId, actionCode, orgType); + } + + /** + * @Description 查询项目评价信息 + * @param customerId + * @param monthId + * @author zxc + * @date 2020/9/18 3:28 下午 + */ + @Override + public List selectProjectEvaluate(String customerId, String monthId) { + return baseDao.selectProjectEvaluate(customerId, monthId); + } + } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectMainDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectMainDailyServiceImpl.java index 006476a093..5f6b1838e7 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectMainDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectMainDailyServiceImpl.java @@ -25,6 +25,7 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.evaluationindex.extract.FactOriginProjectMainDailyDao; import com.epmet.dto.extract.FactOriginProjectMainDailyDTO; +import com.epmet.dto.extract.result.GridProjectClosedTotalResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity; import com.epmet.service.evaluationindex.extract.FactOriginProjectMainDailyService; import org.apache.commons.lang3.StringUtils; @@ -106,4 +107,17 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl selectGridClosedProject(String customerId, String monthId, String status) { + return baseDao.selectGridClosedProject(customerId, monthId); + } + } \ No newline at end of file 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 71f24fc66c..c812f10fc4 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 @@ -3,26 +3,36 @@ - - - - - - - - - - - - - - - - - - - - + + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml index 58bdebeea2..14b6913884 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml @@ -45,5 +45,20 @@ AND PROJECT_STATUS = 'pending' + + + \ No newline at end of file From e5bd914b3853d58dd24e2ab807b6d6ae28343a24 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 18 Sep 2020 16:56:29 +0800 Subject: [PATCH 14/33] =?UTF-8?q?=E8=A1=A5=E6=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/impl/FactOriginProjectMainDailyServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectMainDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectMainDailyServiceImpl.java index 5f6b1838e7..45885d07c1 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectMainDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectMainDailyServiceImpl.java @@ -117,7 +117,7 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl selectGridClosedProject(String customerId, String monthId, String status) { - return baseDao.selectGridClosedProject(customerId, monthId); + return baseDao.selectGridClosedProject(customerId, monthId,status); } } \ No newline at end of file From 0890247fff8ea09207bc804904db72b864d9a7ce Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 18 Sep 2020 17:04:20 +0800 Subject: [PATCH 15/33] =?UTF-8?q?=E7=BB=9F=E4=B8=80=E6=8A=BD=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dto/extract/form/ExtractFormDTO.java | 16 +++++++++++++--- .../epmet/controller/FactOriginController.java | 17 ++++++++++++++++- .../impl/FactOriginExtractServiceImpl.java | 2 +- .../extract/impl/IssueExtractServiceImpl.java | 3 ++- .../extract/impl/ProjectExtractServiceImpl.java | 1 - .../resources/mapper/project/ProjectDao.xml | 2 +- .../mapper/project/ProjectProcessDao.xml | 8 ++++---- 7 files changed, 37 insertions(+), 12 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/ExtractFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/ExtractFormDTO.java index 50b3a91f5c..0b392c0053 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/ExtractFormDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/ExtractFormDTO.java @@ -15,11 +15,21 @@ public class ExtractFormDTO implements Serializable { private static final long serialVersionUID = -6180252151765854242L; - public interface ExtractForm extends CustomerClientShowGroup{} + public interface ExtractForm extends CustomerClientShowGroup { + } - @NotBlank(message = "客户ID不能为空",groups = ExtractForm.class) + @NotBlank(message = "客户ID不能为空", groups = ExtractForm.class) private String customerId; - @NotBlank(message = "dateId不能为空",groups = ExtractForm.class) + @NotBlank(message = "dateId不能为空", groups = ExtractForm.class) private String dateId; + + /** + * 开始时间 + */ + private String startDate; + /** + * 结束时间 + */ + private String endDate; } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java index eaabd2fa48..870485ffd3 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java @@ -1,5 +1,6 @@ package com.epmet.controller; +import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.extract.form.ExtractFormDTO; @@ -7,6 +8,7 @@ import com.epmet.service.evaluationindex.extract.FactOriginExtractService; import com.epmet.service.evaluationindex.extract.FactOriginTopicMainDailyService; import com.epmet.service.evaluationindex.extract.IssueExtractService; import com.epmet.service.evaluationindex.extract.ProjectExtractService; +import com.epmet.util.DimIdGenerator; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -14,6 +16,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Date; + /** * 原始数据清洗 @@ -41,7 +45,18 @@ public class FactOriginController { */ @PostMapping("extractall") public Result extractAll(@RequestBody ExtractFormDTO extractFormDTO) { - factOriginExtractService.extractAll(extractFormDTO); + if (StringUtils.isNotBlank(extractFormDTO.getStartDate()) && StringUtils.isNotBlank(extractFormDTO.getEndDate())) { + Date startDate = DateUtils.stringToDate(extractFormDTO.getStartDate(), "yyyyMMdd"); + Date endDate = DateUtils.stringToDate(extractFormDTO.getEndDate(), "yyyyMMdd"); + do { + String dateDimId = DimIdGenerator.getDateDimId(startDate); + extractFormDTO.setDateId(dateDimId); + factOriginExtractService.extractAll(extractFormDTO); + startDate = DateUtils.addDateDays(DateUtils.stringToDate(extractFormDTO.getStartDate(), "yyyyMMdd"), 1); + } while (endDate.compareTo(startDate) >= 0); + } else { + factOriginExtractService.extractAll(extractFormDTO); + } return new Result(); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginExtractServiceImpl.java index 7c6275929d..f1a5b7e378 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginExtractServiceImpl.java @@ -32,7 +32,7 @@ public class FactOriginExtractServiceImpl implements FactOriginExtractService { .setNameFormat("factOriginExtract-pool-%d").build(); ExecutorService threadPool = new ThreadPoolExecutor(4, 8, 10L, TimeUnit.MINUTES, - new LinkedBlockingQueue<>(100), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + new LinkedBlockingQueue<>(500), namedThreadFactory, new ThreadPoolExecutor.CallerRunsPolicy()); @Autowired private IssueExtractService issueExtractService; diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java index cc57e3d000..33524d2e5b 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java @@ -161,7 +161,8 @@ public class IssueExtractServiceImpl implements IssueExtractService { // 1. 查询议题process List listResult = issueService.selectIssueProcessInfo(customerId, dateId); if (CollectionUtils.isEmpty(listResult)){ - throw new RenException(ExtractConstant.ISSUE_PROCESS); + log.warn("issueExtractMain issueExtractLog return empty,customerId:{},dateId:{}", customerId, dateId); + return true; } listResult.forEach(issueProcess -> { IssueLogDailyFormDTO issueLogDailyFormDTO = ConvertUtils.sourceToTarget(issueProcess, IssueLogDailyFormDTO.class); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectExtractServiceImpl.java index cd8802aa8b..cc5a4ed2ee 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectExtractServiceImpl.java @@ -65,7 +65,6 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { public void saveOriginProjectDaily(ExtractFormDTO extractFormDTO) { String dateString = extractFormDTO.getDateId(); String customerId = extractFormDTO.getCustomerId(); - //获取已关闭项目列表 List closedList = projectProcessService.getClosedProjectList(customerId, dateString); List pendingList = factOriginProjectMainDailyService.getPendingList(customerId); 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 c44315b3e6..e1a5401797 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 @@ -93,7 +93,7 @@ AND ORIGIN = 'issue' AND CUSTOMER_ID = #{customerId} - AND DATE_FORMAT(CREATED_TIME, '%Y-%m-%d') = #{date} + AND DATE_FORMAT(CREATED_TIME, '%Y%m%d') = #{date} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml index 1028e08e11..fd4b391fbf 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml @@ -30,7 +30,7 @@ INNER JOIN project p ON pp.PROJECT_ID = p.ID WHERE p.CUSTOMER_ID = #{customerId} - AND DATE_FORMAT(pp.CREATED_TIME, '%Y-%m-%d') = #{date} + AND DATE_FORMAT(pp.CREATED_TIME, '%Y%m%d') = #{date} From 7dcc09f0b8fcd70708f515be2dba5a648aa4e494 Mon Sep 17 00:00:00 2001 From: wangchao Date: Fri, 18 Sep 2020 17:57:01 +0800 Subject: [PATCH 16/33] =?UTF-8?q?project-period=E6=95=B0=E6=8D=AE=E6=8A=BD?= =?UTF-8?q?=E5=8F=96=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../result/ProjectOrgPeriodResultDTO.java | 13 ++-- .../FactOriginProjectOrgPeriodDailyDao.java | 15 +++- .../extract/ProjectExtractService.java | 12 +++ .../impl/ProjectExtractServiceImpl.java | 75 +++++++++++++++++- .../impl/ProjectPeriodExtractServiceImpl.java | 65 +++++++++++++++- .../impl/ProjectProcessServiceImpl.java | 78 +++++++++++++++++-- .../FactOriginProjectOrgPeriodDailyDao.xml | 54 ++++++++++++- .../mapper/project/ProjectProcessDao.xml | 5 +- 8 files changed, 299 insertions(+), 18 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgPeriodResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgPeriodResultDTO.java index fc4867d647..caa7034481 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgPeriodResultDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgPeriodResultDTO.java @@ -26,17 +26,18 @@ public class ProjectOrgPeriodResultDTO implements Serializable { * */ private String projectId; + /** - * 是这个节点的操作,相当于上一个人的操作,而不是对于这个节点的处理 - * created transfer close return response + * 对这个节点的处理,如果未处理则为null + * created transfer close return response(查不出response,因为response类型的节点不会与process_staff产生关联,需要另取) * */ private String operation; /** - * 对这个节点的处理,如果未处理则为null - * created transfer close return response(查不出response,因为response类型的节点不会与process_staff产生关联,需要另取) + * 是这个节点的操作,相当于上一个人的操作,而不是对于这个节点的处理 + * created transfer close return response * */ - private String selfAction; + private String lastAction; /** * 节点所属的机关,即上个节点推到这个节点的负责部门 @@ -83,6 +84,6 @@ public class ProjectOrgPeriodResultDTO implements Serializable { /** * 第一次响应时间 * */ - private Date firstResponseDate; + private Date periodTillReplyFirstly; } 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 8bae057bc8..ca899b5865 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 @@ -22,6 +22,8 @@ import com.epmet.entity.evaluationindex.extract.FactOriginProjectOrgPeriodDailyE import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 业务数据抽取-机关项目响应时间 * @@ -42,10 +44,19 @@ public interface FactOriginProjectOrgPeriodDailyDao extends BaseDao list); + + /** + * @Description 批量插入 + * @param list + * @return + * @author wangc + * @date 2020.09.18 17:11 + **/ + void insertBatch(@Param("list") List list); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/ProjectExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/ProjectExtractService.java index d6103f71a5..31d56460c9 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/ProjectExtractService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/ProjectExtractService.java @@ -1,7 +1,10 @@ package com.epmet.service.evaluationindex.extract; + import com.epmet.dto.extract.form.ExtractFormDTO; +import java.util.Date; + /** * @author zhaoqifeng * @dscription @@ -19,4 +22,13 @@ public interface ProjectExtractService { * @date 2020/9/15 14:38 */ void saveOriginProjectDaily(ExtractFormDTO extractFormDTO); + + /** + * @Description 抽取项目节点历时逻辑 + * @param param + * @return + * @author wangc + * @date 2020.09.17 14:05 + **/ + void extractProjectPeriodData(ExtractFormDTO param); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectExtractServiceImpl.java index cc5a4ed2ee..7450375773 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectExtractServiceImpl.java @@ -1,8 +1,10 @@ package com.epmet.service.evaluationindex.extract.impl; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.dao.evaluationindex.extract.FactOriginProjectOrgPeriodDailyDao; import com.epmet.dto.ProjectDTO; import com.epmet.dto.extract.FactOriginProjectMainDailyDTO; import com.epmet.dto.extract.form.ExtractFormDTO; @@ -10,10 +12,12 @@ import com.epmet.dto.form.WorkDayFormDTO; import com.epmet.dto.issue.IssueDTO; import com.epmet.dto.party.PartyMemberDTO; import com.epmet.dto.project.ProcessInfoDTO; +import com.epmet.dto.project.result.ProjectOrgPeriodResultDTO; import com.epmet.dto.result.WorkDayResultDTO; import com.epmet.dto.topic.ResiTopicDTO; import com.epmet.entity.evaluationindex.extract.FactOriginProjectLogDailyEntity; import com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity; +import com.epmet.entity.evaluationindex.extract.FactOriginProjectOrgPeriodDailyEntity; import com.epmet.entity.project.ProjectProcessEntity; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; import com.epmet.service.Issue.IssueService; @@ -28,10 +32,12 @@ import com.epmet.util.DimIdGenerator; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; +import java.util.LinkedList; import java.util.List; import java.util.stream.Collectors; @@ -59,7 +65,8 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { private ProjectProcessService projectProcessService; @Autowired private EpmetCommonServiceOpenFeignClient epmetCommonServiceOpenFeignClient; - + @Autowired + private FactOriginProjectOrgPeriodDailyDao factOriginProjectOrgPeriodDailyDao; @Override public void saveOriginProjectDaily(ExtractFormDTO extractFormDTO) { @@ -219,6 +226,72 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { } } + /** + * @Description 抽取项目节点历时逻辑 + * @param param + * @return + * @author wangc + * @date 2020.09.17 14:05 + **/ + @Override + public void extractProjectPeriodData(ExtractFormDTO param) { + int trace = factOriginProjectOrgPeriodDailyDao.selectIfExisted(param.getCustomerId()); + Boolean isFirst = trace <= NumConstant.ZERO ? true : false; + if(StringUtils.isBlank(param.getDateId())){ + Date yesterday = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24); + SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD); + param.setDateId(format.format(yesterday)); + } + List extractData = + projectProcessService.getProjectPeriod(isFirst,param.getCustomerId(),param.getDateId()); + List formattingData = new LinkedList<>(); + extractData.forEach(original -> { + FactOriginProjectOrgPeriodDailyEntity dest + = ConvertUtils.sourceToTarget(original,FactOriginProjectOrgPeriodDailyEntity.class); + if(StringUtils.isNotBlank(original.getDepartmentId())){ + dest.setOrgType("dept"); + dest.setPid(original.getOrgId()); + dest.setPids(original.getOrgIdPath()); + }else if(StringUtils.isNotBlank(original.getGridId())){ + dest.setOrgType("grid"); + dest.setPid(original.getOrgId()); + dest.setPids(original.getOrgIdPath()); + }else{ + dest.setOrgType("agency"); + dest.setPids(""); + String[] array = original.getOrgIdPath().split(":"); + if(null == array || array.length <= NumConstant.ZERO){ + dest.setPid(NumConstant.ZERO_STR); + } + if(array[NumConstant.ZERO] == original.getOrgId() && array.length == NumConstant.ONE){ + dest.setPid(NumConstant.ZERO_STR); + } + if(array.length > NumConstant.ONE && original.getOrgId() == array[array.length - NumConstant.ONE]){ + dest.setPid(array[array.length - NumConstant.TWO]); + dest.setPids(original.getOrgIdPath().replace(original.getOrgId(),"")); + } + if(StringUtils.isNotBlank(dest.getPids())){ + while(dest.getPids().endsWith(":")){ + dest.setPids(dest.getPids().substring(NumConstant.ZERO,dest.getPids().length() - NumConstant.ONE)); + } + while(dest.getPids().startsWith(":")){ + dest.setPids(dest.getPids().replaceFirst(":","")); + } + } + dest.setPids(dest.getPids().replaceAll(" ","")); + } + + formattingData.add(dest); + }); + if(!CollectionUtils.isEmpty(formattingData)) { + List projectIds = formattingData.stream().map(FactOriginProjectOrgPeriodDailyEntity::getProjectId).distinct().collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(projectIds)) { + factOriginProjectOrgPeriodDailyDao.deleteByProjectId(projectIds); + factOriginProjectOrgPeriodDailyDao.insertBatch(formattingData); + } + } + } + /** * 工作日计算 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectPeriodExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectPeriodExtractServiceImpl.java index f5fa2cf898..20c3e99e29 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectPeriodExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectPeriodExtractServiceImpl.java @@ -1,16 +1,26 @@ package com.epmet.service.evaluationindex.extract.impl; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.DateUtils; import com.epmet.dao.evaluationindex.extract.FactOriginProjectOrgPeriodDailyDao; import com.epmet.dto.extract.form.ExtractFormDTO; import com.epmet.dto.project.result.ProjectOrgPeriodResultDTO; import com.epmet.dto.project.result.ProjectOrgRelationWhenResponseResultDTO; +import com.epmet.entity.evaluationindex.extract.FactOriginProjectOrgPeriodDailyEntity; import com.epmet.service.evaluationindex.extract.ProjectPeriodExtractService; +import com.epmet.service.project.ProjectProcessService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.LinkedList; import java.util.List; +import java.util.stream.Collectors; /** * @Description 业务数据抽取 - 项目节点历时 @@ -24,7 +34,8 @@ public class ProjectPeriodExtractServiceImpl implements ProjectPeriodExtractServ @Autowired private FactOriginProjectOrgPeriodDailyDao factOriginProjectOrgPeriodDailyDao; - + @Autowired + private ProjectProcessService projectProcessService; /** * @Description 抽取项目节点历时逻辑 @@ -37,6 +48,58 @@ public class ProjectPeriodExtractServiceImpl implements ProjectPeriodExtractServ public void extractProjectPeriodData(ExtractFormDTO param) { int trace = factOriginProjectOrgPeriodDailyDao.selectIfExisted(param.getCustomerId()); Boolean isFirst = trace <= NumConstant.ZERO ? true : false; + if(StringUtils.isBlank(param.getDateId())){ + Date yesterday = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24); + SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD); + param.setDateId(format.format(yesterday)); + } + List extractData = + projectProcessService.getProjectPeriod(isFirst,param.getCustomerId(),param.getDateId()); + List formattingData = new LinkedList<>(); + extractData.forEach(original -> { + FactOriginProjectOrgPeriodDailyEntity dest + = ConvertUtils.sourceToTarget(original,FactOriginProjectOrgPeriodDailyEntity.class); + if(StringUtils.isNotBlank(original.getDepartmentId())){ + dest.setOrgType("dept"); + dest.setPid(original.getOrgId()); + dest.setPids(original.getOrgIdPath()); + }else if(StringUtils.isNotBlank(original.getGridId())){ + dest.setOrgType("grid"); + dest.setPid(original.getOrgId()); + dest.setPids(original.getOrgIdPath()); + }else{ + dest.setOrgType("agency"); + dest.setPids(""); + String[] array = original.getOrgIdPath().split(":"); + if(null == array || array.length <= NumConstant.ZERO){ + dest.setPid(NumConstant.ZERO_STR); + } + if(array[NumConstant.ZERO] == original.getOrgId() && array.length == NumConstant.ONE){ + dest.setPid(NumConstant.ZERO_STR); + } + if(array.length > NumConstant.ONE && original.getOrgId() == array[array.length - NumConstant.ONE]){ + dest.setPid(array[array.length - NumConstant.TWO]); + dest.setPids(original.getOrgIdPath().replace(original.getOrgId(),"")); + } + if(StringUtils.isNotBlank(dest.getPids())){ + while(dest.getPids().endsWith(":")){ + dest.setPids(dest.getPids().substring(NumConstant.ZERO,dest.getPids().length() - NumConstant.ONE)); + } + while(dest.getPids().startsWith(":")){ + dest.setPids(dest.getPids().replaceFirst(":","")); + } + } + dest.setPids(dest.getPids().replaceAll(" ","")); + } + formattingData.add(dest); + }); + if(!CollectionUtils.isEmpty(formattingData)) { + List projectIds = formattingData.stream().map(FactOriginProjectOrgPeriodDailyEntity::getProjectId).distinct().collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(projectIds)) { + factOriginProjectOrgPeriodDailyDao.deleteByProjectId(projectIds); + factOriginProjectOrgPeriodDailyDao.insertBatch(formattingData); + } + } } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java index fe319c224c..a78dec1da7 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java @@ -19,19 +19,22 @@ package com.epmet.service.project.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.project.ProjectProcessDao; +import com.epmet.dto.form.CommonStaffIdFormDTO; import com.epmet.dto.project.ProcessInfoDTO; import com.epmet.dto.project.result.ProjectOrgPeriodResultDTO; import com.epmet.dto.project.result.ProjectOrgRelationWhenResponseResultDTO; import com.epmet.entity.project.ProjectEntity; import com.epmet.entity.project.ProjectProcessEntity; import com.epmet.service.project.ProjectProcessService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -40,6 +43,7 @@ import java.util.stream.Collectors; * @author generator generator@elink-cn.com * @since v1.0.0 2020-05-11 */ +@Slf4j @Service @DataSource(DataSourceConstant.GOV_PROJECT) public class ProjectProcessServiceImpl extends BaseServiceImpl implements ProjectProcessService { @@ -93,19 +97,83 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl> processMap + = projectNodePeriodPerOrgList.stream().collect(Collectors.groupingBy(ProjectOrgPeriodResultDTO :: getProcessId)); + List projects = projectNodePeriodPerOrgList.stream().map(ProjectOrgPeriodResultDTO::getProjectId).distinct().collect(Collectors.toList()); if(!projects.isEmpty()){ List responseList = baseDao.selectResponseTrace(projects); Map> sorted = responseList.stream().collect(Collectors.groupingBy(ProjectOrgRelationWhenResponseResultDTO::getProjectId)); - + skipLevelGrouping(processMap,sorted); + List result = new LinkedList<>(); + processMap.values().forEach(list -> {list.forEach(obj -> {result.add(obj);});}); + return result; } } - return null; + return new ArrayList<>(); } + /** + * @Description 跨级分组 eg -> transfer ; response response transfer ; return ; response close. + * @param dest - Map> 需要填充的数据 + * @param fillFactor - Map> 填充因子 + * @return + * @author wangc + * @date 2020.09.18 15:27 + **/ + private void skipLevelGrouping(Map> dest,Map> fillFactor){ + for(String projectId : fillFactor.keySet()){ + List projectTraceUnit = fillFactor.get(projectId); + if(!projectTraceUnit.isEmpty()){ + Map> staffResponseTrace = + projectTraceUnit.stream().collect(Collectors.groupingBy(ProjectOrgRelationWhenResponseResultDTO::getStaffId)); + if(!CollectionUtils.isEmpty(staffResponseTrace)){ + staffResponseTrace.keySet().forEach( staffId -> { + + if(!CollectionUtils.isEmpty(staffResponseTrace.get(staffId))){ + List staffResponseTraceUnit + = staffResponseTrace.get(staffId); + int lastEndCount = NumConstant.ONE_NEG; + for(int index = NumConstant.ZERO; index < staffResponseTraceUnit.size(); index ++){ + + if(StringUtils.equalsAny(staffResponseTraceUnit.get(index).getOperation(), + "transfer","return","close")){ + + replaceFirstResponseDate(dest,index,staffResponseTraceUnit,false); + + lastEndCount = index; + }else{ + if(lastEndCount == NumConstant.ONE_NEG) continue; + + if(index - NumConstant.ONE == lastEndCount){ + replaceFirstResponseDate(dest,index,staffResponseTraceUnit,true); + }else{continue;} + } + + + + } + } + }); + } + + } + } + } - + private void replaceFirstResponseDate(Map> dest, int index, List staffResponseTraceUnit, boolean ifResponsed){ + List processSingleList = + dest.get(staffResponseTraceUnit.get(index).getProcessId()); + if(!CollectionUtils.isEmpty(processSingleList)){ + ProjectOrgPeriodResultDTO element = processSingleList.get(NumConstant.ZERO); + if(!ifResponsed && null == element.getHandledDate()){ + log.warn("com.epmet.service.project.impl.ProjectProcessServiceImpl.skipLevelGrouping::已流出节点没有办结日期,节点ID{}",element.getProcessId() ); + } + element.setPeriodTillReplyFirstly(ifResponsed ? staffResponseTraceUnit.get(index).getCreatedTime() :element.getHandledDate()); + } + } } \ No newline at end of file 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 d1b01b9e1a..175bf983b4 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 @@ -37,7 +37,59 @@ DELETE FROM fact_origin_project_org_period_daily - WHERE PROJECT_ID = #{projectId} + WHERE + DEL_FLAG = '0' + + PROJECT_ID = #{item} + + + + insert into fact_origin_project_org_period_daily + ( + id, + customer_id, + project_id, + org_id, + org_type, + pid, + pids, + informed_date, + handled_date, + total_period, + period_till_reply_firstly, + is_resolved, + operation, + del_flag, + revision, + created_time, + created_by, + updated_time, + updated_by + )values + + ( + (SELECT REPLACE(UUID(), '-', '') AS id), + #{customerId}, + #{projectId}, + #{orgId}, + #{orgType}, + #{pid}, + #{pids}, + #{informedDate}, + #{handledDate}, + #{totalPeriod}, + #{periodTillReplyFirstly}, + #{isResolved}, + #{operation}, + '0', + 0, + 'CRAWLER_ROBOT', + now(), + 'CRAWLER_ROBOT', + now() + ) + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml index fd4b391fbf..480c2ccf9a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml @@ -81,10 +81,11 @@ + SELECT + fopld.CUSTOMER_ID, + fopld.AGENCY_ID, + COUNT( fopld.ID ) AS "count" + FROM + fact_origin_project_log_daily fopld + INNER JOIN dim_agency da ON fopld.AGENCY_ID = da.ID + AND da.`LEVEL` = #{level} + WHERE + fopld.IS_ACTIVE = 0 + AND fopld.ACTION_CODE = 'transfer' + AND fopld.MONTH_ID = #{monthId} + GROUP BY + fopld.CUSTOMER_ID, + fopld.AGENCY_ID + + - + + DELETE FROM + fact_origin_project_main_daily + + WHERE + DATE_ID = #{date} + + \ No newline at end of file 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 175bf983b4..c047ea0541 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 @@ -44,6 +44,25 @@ + + insert into fact_origin_project_org_period_daily diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml index 480c2ccf9a..fae85f5561 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml @@ -141,4 +141,29 @@ ) ORDER BY process.STAFF_ID , process.CREATED_TIME ASC + \ No newline at end of file From 12a7b95ea5bc3dc8dc9bf8445f3aecc157f21462 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Sat, 19 Sep 2020 09:48:07 +0800 Subject: [PATCH 18/33] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E7=9B=B8=E5=85=B3=20?= =?UTF-8?q?=E6=B2=BB=E7=90=86=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/extract/result/AutoNoMyResultDTO.java | 30 ++++++++++++++++ .../extract/FactOriginProjectLogDailyDao.java | 10 ++++++ .../FactOriginProjectLogDailyService.java | 10 ++++++ .../extract/impl/CalGridIndexServiceImpl.java | 35 ++++++++++++++++--- .../FactOriginProjectLogDailyServiceImpl.java | 13 +++++++ .../extract/FactOriginProjectLogDailyDao.xml | 25 +++++++++++++ 6 files changed, 118 insertions(+), 5 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/AutoNoMyResultDTO.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/AutoNoMyResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/AutoNoMyResultDTO.java new file mode 100644 index 0000000000..234142eb80 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/AutoNoMyResultDTO.java @@ -0,0 +1,30 @@ +package com.epmet.dto.extract.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/9/18 5:22 下午 + */ +@Data +public class AutoNoMyResultDTO implements Serializable { + + private static final long serialVersionUID = 5812052000386418907L; + + /** + * 动作code + */ + private String actionCode; + + /** + * 网格ID + */ + private String gridId; + + /** + * 项目ID + */ + private String projectId; +} 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 b142c32e60..293163e1d9 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 @@ -19,6 +19,7 @@ package com.epmet.dao.evaluationindex.extract; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.extract.result.OrgStatisticsResultDTO; +import com.epmet.dto.extract.result.AutoNoMyResultDTO; import com.epmet.dto.extract.result.NotReturnProjectResultDTO; import com.epmet.dto.extract.result.ProjectEvaluateResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginProjectLogDailyEntity; @@ -63,6 +64,15 @@ public interface FactOriginProjectLogDailyDao extends BaseDao selectProjectEvaluate(@Param("customerId") String customerId,@Param("monthId") String monthId); + /** + * @Description 网格项目自治率查询 + * @param customerId + * @param monthId + * @author zxc + * @date 2020/9/18 5:25 下午 + */ + List selectProjectAutoNoMy(@Param("customerId") String customerId,@Param("monthId") String monthId); + /** * 根据日期删除数据 * @author zhaoqifeng diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java index a10f53783a..ba3b6f5239 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java @@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.extract.FactOriginProjectLogDailyDTO; import com.epmet.dto.extract.result.OrgStatisticsResultDTO; +import com.epmet.dto.extract.result.AutoNoMyResultDTO; import com.epmet.dto.extract.result.NotReturnProjectResultDTO; import com.epmet.dto.extract.result.ProjectEvaluateResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginProjectLogDailyEntity; @@ -132,4 +133,13 @@ public interface FactOriginProjectLogDailyService extends BaseService selectProjectAutoNoMy(String customerId,String monthId); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java index 9fca7973bd..b1f8d8833a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java @@ -9,10 +9,7 @@ import com.epmet.constant.ProjectEvaluateConstant; import com.epmet.dao.evaluationindex.indexcoll.FactIndexGovrnAblityGridMonthlyDao; import com.epmet.dto.extract.form.GovernAbilityGridMonthlyFormDTO; import com.epmet.dto.extract.form.GridIssueCountResultDTO; -import com.epmet.dto.extract.result.GridProjectClosedTotalResultDTO; -import com.epmet.dto.extract.result.GridProjectCountResultDTO; -import com.epmet.dto.extract.result.NotReturnProjectResultDTO; -import com.epmet.dto.extract.result.ProjectEvaluateResultDTO; +import com.epmet.dto.extract.result.*; import com.epmet.service.evaluationindex.extract.CalGridIndexService; import com.epmet.service.evaluationindex.extract.FactOriginProjectLogDailyService; import com.epmet.service.evaluationindex.extract.FactOriginProjectMainDailyService; @@ -89,7 +86,28 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { }); } //网格自治项目数 从议题创建到项目关闭,包括处理人,自始至终没有出过议题所属网格 - + List projectAutoNoMyList = projectLogService.selectProjectAutoNoMy(customerId, monthId); + Map autoMap = new HashMap<>(16); + if (!CollectionUtils.isEmpty(projectAutoNoMyList)){ + Map> groupByGrid = projectAutoNoMyList.stream().collect(Collectors.groupingBy(AutoNoMyResultDTO::getGridId)); + groupByGrid.forEach((gridId,projectList) -> { + Map> groupByProject = projectList.stream().collect(Collectors.groupingBy(AutoNoMyResultDTO::getProjectId)); + AtomicReference autoSelf = new AtomicReference<>(true); + AtomicReference count = new AtomicReference<>(NumConstant.ZERO); + groupByProject.forEach((projectId,projects) -> { + String disposeGrid = projects.get(NumConstant.ZERO).getGridId(); + projects.forEach(p -> { + if (!disposeGrid.equals(p.getGridId())){ + autoSelf.set(false); + } + }); + if (autoSelf.get() == true){ + count.getAndSet(count.get() + NumConstant.ONE); + } + }); + autoMap.put(gridId,count.get()); + }); + } //网格办结项目数 List gridProjectClosedTotalList = projectMainService.selectGridClosedProject(customerId, monthId, ExtractConstant.CLOSED); //网格吹哨部门准确率 【没被退回的项目数/项目总数 】 @@ -180,6 +198,13 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { }); } // 6. 网格自治项目数 + if (null != autoMap){ + autoMap.forEach((k,v) -> { + if (r.getGridId().equals(k)){ + r.setSelfSolveProjectCount(v); + } + }); + } }); return true; } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectLogDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectLogDailyServiceImpl.java index 1cb438c8c3..e23ab2e626 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectLogDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectLogDailyServiceImpl.java @@ -26,6 +26,7 @@ import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.evaluationindex.extract.FactOriginProjectLogDailyDao; import com.epmet.dto.extract.FactOriginProjectLogDailyDTO; import com.epmet.dto.extract.result.OrgStatisticsResultDTO; +import com.epmet.dto.extract.result.AutoNoMyResultDTO; import com.epmet.dto.extract.result.NotReturnProjectResultDTO; import com.epmet.dto.extract.result.ProjectEvaluateResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginProjectLogDailyEntity; @@ -134,4 +135,16 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl selectProjectAutoNoMy(String customerId, String monthId) { + return baseDao.selectProjectAutoNoMy(customerId, monthId); + } + } \ No newline at end of file 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 aa2d887e13..cfb6ff85b7 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 @@ -60,4 +60,29 @@ AND (ACTION_CODE = 'bad' OR ACTION_CODE = 'good' OR ACTION_CODE = 'perfect') + + + \ No newline at end of file From e5a4f0149e55aa82063e2a024a6263cc91f29bcf Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Sat, 19 Sep 2020 14:10:50 +0800 Subject: [PATCH 19/33] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E7=9B=B8=E5=85=B3=20?= =?UTF-8?q?=E5=85=9A=E5=BB=BA=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/PartyAbilityGridMonthlyFormDTO.java | 178 ++++++++++++++++++ .../result/CreateTopicCountResultDTO.java | 25 +++ .../result/GridUserCountResultDTO.java | 45 +++++ .../extract/FactOriginTopicMainDailyDao.java | 11 ++ .../FactIndexGovrnAblityGridMonthlyDao.java | 8 + .../FactIndexPartyAblityGridMonthlyDao.java | 18 ++ .../stats/user/FactRegUserGridMonthlyDao.java | 10 + .../FactOriginTopicMainDailyService.java | 11 ++ .../extract/impl/CalGridIndexServiceImpl.java | 58 +++++- .../FactOriginTopicMainDailyServiceImpl.java | 14 ++ .../user/FactRegUserGridMonthlyService.java | 10 + .../FactRegUserGridMonthlyServiceImpl.java | 13 ++ .../extract/FactOriginTopicMainDailyDao.xml | 15 ++ .../FactIndexGovrnAblityGridMonthlyDao.xml | 13 ++ .../FactIndexPartyAblityGridMonthlyDao.xml | 73 +++++++ .../stats/user/FactRegUserGridMonthlyDao.xml | 17 ++ 16 files changed, 514 insertions(+), 5 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/PartyAbilityGridMonthlyFormDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/CreateTopicCountResultDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridUserCountResultDTO.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/PartyAbilityGridMonthlyFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/PartyAbilityGridMonthlyFormDTO.java new file mode 100644 index 0000000000..de69be568b --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/PartyAbilityGridMonthlyFormDTO.java @@ -0,0 +1,178 @@ +/** + * 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.extract.form; + +import java.io.Serializable; +import java.util.Date; + +import com.epmet.commons.tools.constant.NumConstant; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 党建能力-网格相关事实表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-19 + */ +@Data +public class PartyAbilityGridMonthlyFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * ID 主键 + */ + private String id; + + /** + * 客户Id + */ + private String customerId; + + /** + * 机关Id + */ + private String agencyId; + + /** + * 网格Id + */ + private String gridId; + + /** + * 月维度Id:yyyyMM + */ + private String monthId; + + /** + * 季度Id yyyyQ1,yyyyQ2,yyyyQ3,yyyyQ4 + */ + private String quarterId; + + /** + * 年Idyyyy + */ + private String yearId; + + /** + * 网格群众用户数 + */ + private Integer userCount; + + /** + * 网格党员用户数 + */ + private Integer partyCount; + + /** + * 网格活跃群众用户数 + */ + private Integer activeUserCount; + + /** + * 网格活跃党员用户数 + */ + private Integer activePartyCount; + + /** + * 网格党员人均提出话题数 + */ + private Integer partyAvgTopicCount; + + /** + * 网格群众人均提出话题数 + */ + private Integer userAvgTopicCount; + + /** + * 网格党员人均提出的议题转项目数 + */ + private Integer partyAvgShiftProjectCount; + + /** + * 网格群众人均提出的议题转项目数 + */ + private Integer userAvgShiftProjectCount; + + /** + * 建群党员数(累计值) 去重 + */ + private Integer createGroupPartyCount; + + /** + * 网格发文数 + */ + private Integer publishArticleCount; + + /** + * 网格议题转项目率 + */ + private BigDecimal issueToProjectRatio; + + /** + * 组织三会一课次数 + */ + private Integer createThreeMeetsCount; + + /** + * 党员参加三会一课人次 + */ + private Integer joinThreeMeetsCount; + + /** + * 删除标识 0未删除;1已删除 + */ + private String delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 更新人 + */ + private String updatedBy; + + public PartyAbilityGridMonthlyFormDTO() { + this.userCount = NumConstant.ZERO; + this.partyCount = NumConstant.ZERO; + this.activeUserCount = NumConstant.ZERO; + this.activePartyCount = NumConstant.ZERO; + this.partyAvgTopicCount = NumConstant.ZERO; + this.userAvgTopicCount = NumConstant.ZERO; + this.partyAvgShiftProjectCount = NumConstant.ZERO; + this.userAvgShiftProjectCount = NumConstant.ZERO; + this.createGroupPartyCount = NumConstant.ZERO; + this.publishArticleCount = NumConstant.ZERO; + this.issueToProjectRatio = new BigDecimal(NumConstant.ZERO); + this.createThreeMeetsCount = NumConstant.ZERO; + this.joinThreeMeetsCount = NumConstant.ZERO; + this.delFlag = NumConstant.ZERO_STR; + this.revision = NumConstant.ZERO; + this.createdBy = "APP_USER"; + this.updatedBy = "APP_USER"; + } +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/CreateTopicCountResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/CreateTopicCountResultDTO.java new file mode 100644 index 0000000000..1aa548f014 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/CreateTopicCountResultDTO.java @@ -0,0 +1,25 @@ +package com.epmet.dto.extract.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/9/19 1:55 下午 + */ +@Data +public class CreateTopicCountResultDTO implements Serializable { + + private static final long serialVersionUID = 500844515980125608L; + + /** + * 网格ID + */ + private String gridId; + + /** + * 网格 党员/群众 人均提出话题数 + */ + private Integer createTopicCount; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridUserCountResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridUserCountResultDTO.java new file mode 100644 index 0000000000..aa2b5da005 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridUserCountResultDTO.java @@ -0,0 +1,45 @@ +package com.epmet.dto.extract.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/9/19 10:59 上午 + */ +@Data +public class GridUserCountResultDTO implements Serializable { + + private static final long serialVersionUID = -2912049598149499392L; + + /** + * 注册居民本月增量 + */ + private Integer userCount; + + /** + * 注册党员本月增量 + */ + private Integer partyCount; + + /** + * 网格ID + */ + private String gridId; + + /** + * 月份ID + */ + private String monthId; + + /** + * 季度ID + */ + private String quarterId; + + /** + * 年度ID + */ + private String yearId; +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicMainDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicMainDailyDao.java index a91508e59f..8da1ea3774 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicMainDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicMainDailyDao.java @@ -18,6 +18,7 @@ package com.epmet.dao.evaluationindex.extract; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.extract.result.CreateTopicCountResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginTopicMainDailyEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -64,4 +65,14 @@ public interface FactOriginTopicMainDailyDao extends BaseDao> selectPartyCreateTopicCount(@Param("customerId") String customerId, @Param("monthId") String monthId); + + /** + * @Description 查询网格 党员/群众 人均提出话题数 + * @param customerId + * @param monthId + * @param isParty + * @author zxc + * @date 2020/9/19 1:58 下午 + */ + List selectCreateTopicCount(@Param("customerId") String customerId, @Param("monthId") String monthId,@Param("isParty")Integer isParty); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.java index 520ce244e2..16a916edae 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.java @@ -19,6 +19,7 @@ package com.epmet.dao.evaluationindex.indexcoll; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.extract.form.GovernAbilityGridMonthlyFormDTO; +import com.epmet.dto.extract.form.PartyAbilityGridMonthlyFormDTO; import com.epmet.dto.indexcal.CalculateCommonFormDTO; import com.epmet.dto.indexcal.PageQueryGridFormDTO; import com.epmet.dto.indexcollect.form.GridGovrnAbilityFormDTO; @@ -110,4 +111,11 @@ public interface FactIndexGovrnAblityGridMonthlyDao extends BaseDao selectAllGridInfo(String customerId); + /** + * @Description 查询全部网格信息 + * @param customerId + * @author zxc + * @date 2020/9/19 10:50 上午 + */ + List selectAllGridInfoToParty(String customerId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexPartyAblityGridMonthlyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexPartyAblityGridMonthlyDao.java index 6e2dbcaee5..387e01ec6f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexPartyAblityGridMonthlyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexPartyAblityGridMonthlyDao.java @@ -18,6 +18,7 @@ package com.epmet.dao.evaluationindex.indexcoll; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.extract.form.PartyAbilityGridMonthlyFormDTO; import com.epmet.dto.indexcal.CalculateCommonFormDTO; import com.epmet.dto.indexcal.PageQueryGridFormDTO; import com.epmet.dto.indexcollect.form.GridPartyAbilityFormDTO; @@ -97,4 +98,21 @@ public interface FactIndexPartyAblityGridMonthlyDao extends BaseDao lists); + + /** + * @Description 删除旧的党建能力记录 + * @param customerId + * @param monthId + * @author zxc + * @date 2020/9/19 10:45 上午 + */ + void deleteOldPartyAbility(@Param("customerId")String customerId,@Param("monthId")String monthId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/user/FactRegUserGridMonthlyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/user/FactRegUserGridMonthlyDao.java index 940609d9bc..479ecf5902 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/user/FactRegUserGridMonthlyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/user/FactRegUserGridMonthlyDao.java @@ -18,6 +18,7 @@ package com.epmet.dao.stats.user; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.extract.result.GridUserCountResultDTO; import com.epmet.dto.stats.user.FactRegUserGridMonthlyDTO; import com.epmet.entity.stats.user.FactRegUserGridMonthlyEntity; import org.apache.ibatis.annotations.Mapper; @@ -38,4 +39,13 @@ public interface FactRegUserGridMonthlyDao extends BaseDao selectGridUserCount(String customerId, String monthId); + } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicMainDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicMainDailyService.java index cb30aa46e7..11440f0bd8 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicMainDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicMainDailyService.java @@ -19,6 +19,7 @@ package com.epmet.service.evaluationindex.extract; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.result.CreateTopicCountResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginTopicMainDailyEntity; import java.util.List; @@ -50,4 +51,14 @@ public interface FactOriginTopicMainDailyService extends BaseService> selectPartyCreateTopicCount(String customerId, String monthId); + + /** + * @Description 查询网格 党员/群众 人均提出话题数 + * @param customerId + * @param monthId + * @param isParty + * @author zxc + * @date 2020/9/19 1:58 下午 + */ + List selectCreateTopicCount(String customerId, String monthId,Integer isParty); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java index b1f8d8833a..150217a7eb 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java @@ -7,13 +7,13 @@ import com.epmet.constant.DataSourceConstant; import com.epmet.constant.ExtractConstant; import com.epmet.constant.ProjectEvaluateConstant; import com.epmet.dao.evaluationindex.indexcoll.FactIndexGovrnAblityGridMonthlyDao; +import com.epmet.dao.evaluationindex.indexcoll.FactIndexPartyAblityGridMonthlyDao; import com.epmet.dto.extract.form.GovernAbilityGridMonthlyFormDTO; import com.epmet.dto.extract.form.GridIssueCountResultDTO; +import com.epmet.dto.extract.form.PartyAbilityGridMonthlyFormDTO; import com.epmet.dto.extract.result.*; -import com.epmet.service.evaluationindex.extract.CalGridIndexService; -import com.epmet.service.evaluationindex.extract.FactOriginProjectLogDailyService; -import com.epmet.service.evaluationindex.extract.FactOriginProjectMainDailyService; -import com.epmet.service.evaluationindex.extract.IssueExtractService; +import com.epmet.service.evaluationindex.extract.*; +import com.epmet.service.stats.user.FactRegUserGridMonthlyService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -41,9 +41,15 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { @Autowired private FactIndexGovrnAblityGridMonthlyDao governAbilityDao; @Autowired + private FactIndexPartyAblityGridMonthlyDao partyAbilityGridDao; + @Autowired private FactOriginProjectMainDailyService projectMainService; @Autowired private FactOriginProjectLogDailyService projectLogService; + @Autowired + private FactRegUserGridMonthlyService userGridMonthlyService; + @Autowired + private FactOriginTopicMainDailyService topicMainService; /** * @Description 计算网格指标党建能力 @@ -54,7 +60,49 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { */ @Override public Boolean calGridIndexPartyAbility(String customerId, String monthId) { - return null; + List result = governAbilityDao.selectAllGridInfoToParty(customerId); + if (CollectionUtils.isEmpty(result)){ + throw new RenException("客户【"+customerId+"】未查出网格信息"); + } + // 网格群众用户数 , 网格党员用户数 + List gridUserCountList = userGridMonthlyService.selectGridUserCount(customerId, monthId); + // 网格党员人均提出话题数 + List partyCreateTopicCountList = topicMainService.selectCreateTopicCount(customerId, monthId, NumConstant.ONE); + // 网格群众人均提出话题数 + List massCreateTopicCountList = topicMainService.selectCreateTopicCount(customerId, monthId, NumConstant.ZERO); + + + + + result.forEach(r -> { + // 1. 网格群众用户数 , 网格党员用户数 + if (!CollectionUtils.isEmpty(gridUserCountList)){ + gridUserCountList.forEach(count -> { + if (r.getGridId().equals(count.getGridId())){ + BeanUtils.copyProperties(count,r); + } + }); + } + // 2. 网格党员人均提出话题数 + if (!CollectionUtils.isEmpty(partyCreateTopicCountList)){ + partyCreateTopicCountList.forEach(party -> { + if (r.getGridId().equals(party.getGridId())){ + r.setPartyAvgTopicCount(party.getCreateTopicCount()); + } + }); + } + // 3. 网格群众人均提出话题数 + if (!CollectionUtils.isEmpty(massCreateTopicCountList)){ + massCreateTopicCountList.forEach(mass -> { + if (r.getGridId().equals(mass.getGridId())){ + r.setUserAvgTopicCount(mass.getCreateTopicCount()); + } + }); + } + }); + + + return true; } /** diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicMainDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicMainDailyServiceImpl.java index 6925b94644..a61eab5a48 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicMainDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicMainDailyServiceImpl.java @@ -29,6 +29,7 @@ import com.epmet.constant.IndexCalConstant; import com.epmet.dao.evaluationindex.extract.FactOriginTopicLogDailyDao; import com.epmet.dao.evaluationindex.extract.FactOriginTopicMainDailyDao; import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.result.CreateTopicCountResultDTO; import com.epmet.dto.org.GridInfoDTO; import com.epmet.dto.topic.TopicOriginInfoDTO; import com.epmet.entity.evaluationindex.extract.FactOriginTopicLogDailyEntity; @@ -239,4 +240,17 @@ public class FactOriginTopicMainDailyServiceImpl extends BaseServiceImpl> selectPartyCreateTopicCount(String customerId, String monthId) { return baseDao.selectPartyCreateTopicCount(customerId,monthId); } + + /** + * @Description 查询网格 党员/群众 人均提出话题数 + * @param customerId + * @param monthId + * @param isParty + * @author zxc + * @date 2020/9/19 1:58 下午 + */ + @Override + public List selectCreateTopicCount(String customerId, String monthId,Integer isParty) { + return baseDao.selectCreateTopicCount(customerId, monthId, isParty); + } } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/user/FactRegUserGridMonthlyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/user/FactRegUserGridMonthlyService.java index 11c7dd2e12..860d383906 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/user/FactRegUserGridMonthlyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/user/FactRegUserGridMonthlyService.java @@ -19,6 +19,7 @@ package com.epmet.service.stats.user; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.extract.result.GridUserCountResultDTO; import com.epmet.dto.stats.user.FactRegUserGridMonthlyDTO; import com.epmet.entity.stats.user.FactRegUserGridMonthlyEntity; @@ -93,4 +94,13 @@ public interface FactRegUserGridMonthlyService extends BaseService selectGridUserCount(String customerId,String monthId); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/user/impl/FactRegUserGridMonthlyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/user/impl/FactRegUserGridMonthlyServiceImpl.java index 2054ea5909..8016f7f613 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/user/impl/FactRegUserGridMonthlyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/user/impl/FactRegUserGridMonthlyServiceImpl.java @@ -24,6 +24,7 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.dao.stats.user.FactRegUserGridMonthlyDao; +import com.epmet.dto.extract.result.GridUserCountResultDTO; import com.epmet.dto.stats.user.FactRegUserGridMonthlyDTO; import com.epmet.entity.stats.user.FactRegUserGridMonthlyEntity; import com.epmet.service.stats.user.FactRegUserGridMonthlyService; @@ -99,4 +100,16 @@ public class FactRegUserGridMonthlyServiceImpl extends BaseServiceImpl selectGridUserCount(String customerId, String monthId) { + return baseDao.selectGridUserCount(customerId, monthId); + } + } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicMainDailyDao.xml index 453ba483b2..ef87296be2 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicMainDailyDao.xml @@ -78,4 +78,19 @@ GROUP BY T1.CREATE_TOPIC_USER_ID + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.xml index 5f4a53ed15..401bc5931a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.xml @@ -174,4 +174,17 @@ DEL_FLAG = 0 AND CUSTOMER_ID = #{customerId} + + + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexPartyAblityGridMonthlyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexPartyAblityGridMonthlyDao.xml index 5f94b54fba..500f67dcc8 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexPartyAblityGridMonthlyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexPartyAblityGridMonthlyDao.xml @@ -193,4 +193,77 @@ AND m.CUSTOMER_ID =#{customerId} AND m.MONTH_ID =#{monthId} + + + + INSERT INTO fact_index_party_ablity_grid_monthly ( + ID, + CUSTOMER_ID, + AGENCY_ID, + GRID_ID, + MONTH_ID, + QUARTER_ID, + YEAR_ID, + USER_COUNT, + PARTY_COUNT, + ACTIVE_USER_COUNT, + ACTIVE_PARTY_COUNT, + PARTY_AVG_TOPIC_COUNT, + USER_AVG_TOPIC_COUNT, + PARTY_AVG_SHIFT_PROJECT_COUNT, + USER_AVG_SHIFT_PROJECT_COUNT, + CREATE_GROUP_PARTY_COUNT, + PUBLISH_ARTICLE_COUNT, + ISSUE_TO_PROJECT_RATIO, + CREATE_THREE_MEETS_COUNT, + JOIN_THREE_MEETS_COUNT, + DEL_FLAG, + REVISION, + CREATED_BY, + CREATED_TIME, + UPDATED_BY, + UPDATED_TIME + ) + VALUES + + ( + REPLACE ( UUID(), '-', '' ), + #{item.customerId}, + #{item.agencyId}, + #{item.gridId}, + #{item.monthId}, + #{item.quarterId}, + #{item.yearId}, + #{item.userCount}, + #{item.partyCount}, + #{item.activeUserCount}, + #{item.activePartyCount}, + #{item.partyAvgTopicCount}, + #{item.userAvgTopicCount}, + #{item.partyAvgShiftProjectCount}, + #{item.userAvgShiftProjectCount}, + #{item.createGroupPartyCount}, + #{item.publishArticleCount}, + #{item.issueToProjectRatio}, + #{item.createThreeMeetsCount}, + #{item.joinThreeMeetsCount}, + #{item.delFlag}, + #{item.revision}, + #{item.createdBy}, + NOW(), + #{item.updatedBy}, + NOW() + ) + + + + + + DELETE + FROM + fact_index_party_ablity_grid_monthly + WHERE + CUSTOMER_ID = #{customerId} + AND MONTH_ID = #{monthId} + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridMonthlyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridMonthlyDao.xml index f5f66265fe..38ce9ab106 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridMonthlyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridMonthlyDao.xml @@ -106,5 +106,22 @@ + + + \ No newline at end of file From 0006311ce2c9f99cb13e1d30c1f5ae4a9485bbc4 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Sat, 19 Sep 2020 17:50:10 +0800 Subject: [PATCH 20/33] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E7=9B=B8=E5=85=B3=20?= =?UTF-8?q?=E5=85=9A=E5=BB=BA=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/form/GridIssueCountResultDTO.java | 15 -- .../result/GridUserCountResultDTO.java | 15 -- .../PartyCreateGroupCountResultDTO.java | 25 +++ .../extract/result/PublishCountResultDTO.java | 25 +++ .../result/ShiftProjectCountResultDTO.java | 25 +++ .../com/epmet/controller/DemoController.java | 20 +++ .../extract/FactOriginGroupMainDailyDao.java | 15 +- .../extract/FactOriginIssueMainDailyDao.java | 11 ++ .../FactOriginProjectOrgPeriodDailyDao.java | 4 +- .../FactIndexGovrnAblityGridMonthlyDao.java | 17 ++ .../FactArticlePublishedGridDailyDao.java | 10 ++ ...tIndexGovernAbilityGridMonthlyService.java | 33 ++++ ...ctIndexPartyAbilityGridMonthlyService.java | 31 ++++ ...IndexServiceAbilityGridMonthlyService.java | 11 ++ .../extract/GroupExtractService.java | 14 ++ .../extract/IssueExtractService.java | 11 ++ .../extract/impl/CalGridIndexServiceImpl.java | 152 +++++++++++++++--- ...exGovernAbilityGridMonthlyServiceImpl.java | 37 +++++ ...dexPartyAbilityGridMonthlyServiceImpl.java | 37 +++++ ...xServiceAbilityGridMonthlyServiceImpl.java | 20 +++ .../extract/impl/GroupExtractServiceImpl.java | 19 +++ .../extract/impl/IssueExtractServiceImpl.java | 13 ++ .../impl/IndexCollCommunityServiceImpl.java | 4 +- .../FactArticlePublishedGridDailyService.java | 10 +- ...tArticlePublishedGridDailyServiceImpl.java | 13 ++ .../extract/FactOriginGroupMainDailyDao.xml | 38 ++--- .../extract/FactOriginIssueMainDailyDao.xml | 19 ++- .../FactIndexGovrnAblityGridMonthlyDao.xml | 60 +++++++ .../FactArticlePublishedGridDailyDao.xml | 12 ++ .../stats/user/FactRegUserGridMonthlyDao.xml | 5 +- 30 files changed, 628 insertions(+), 93 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/PartyCreateGroupCountResultDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/PublishCountResultDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/ShiftProjectCountResultDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactIndexGovernAbilityGridMonthlyService.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactIndexPartyAbilityGridMonthlyService.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactIndexServiceAbilityGridMonthlyService.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactIndexGovernAbilityGridMonthlyServiceImpl.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactIndexPartyAbilityGridMonthlyServiceImpl.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactIndexServiceAbilityGridMonthlyServiceImpl.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridIssueCountResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridIssueCountResultDTO.java index 6237f49117..207cd8e8df 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridIssueCountResultDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridIssueCountResultDTO.java @@ -27,19 +27,4 @@ public class GridIssueCountResultDTO implements Serializable { * 网格ID */ private String gridId; - - /** - * 月份ID - */ - private String monthId; - - /** - * 季度ID - */ - private String quarterId; - - /** - * 年度ID - */ - private String yearId; } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridUserCountResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridUserCountResultDTO.java index aa2b5da005..8b97bdc505 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridUserCountResultDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridUserCountResultDTO.java @@ -27,19 +27,4 @@ public class GridUserCountResultDTO implements Serializable { * 网格ID */ private String gridId; - - /** - * 月份ID - */ - private String monthId; - - /** - * 季度ID - */ - private String quarterId; - - /** - * 年度ID - */ - private String yearId; } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/PartyCreateGroupCountResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/PartyCreateGroupCountResultDTO.java new file mode 100644 index 0000000000..c95ae4bad3 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/PartyCreateGroupCountResultDTO.java @@ -0,0 +1,25 @@ +package com.epmet.dto.extract.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/9/19 3:30 下午 + */ +@Data +public class PartyCreateGroupCountResultDTO implements Serializable { + + private static final long serialVersionUID = -4193777575465275095L; + + /** + * 网格ID + */ + private String gridId; + + /** + * 建群党员数 + */ + private Integer partyCreateGroupCount; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/PublishCountResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/PublishCountResultDTO.java new file mode 100644 index 0000000000..2044dcd8fa --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/PublishCountResultDTO.java @@ -0,0 +1,25 @@ +package com.epmet.dto.extract.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/9/19 2:41 下午 + */ +@Data +public class PublishCountResultDTO implements Serializable { + + private static final long serialVersionUID = -955208044108055887L; + + /** + * 网格ID + */ + private String gridId; + + /** + * 发文数量 + */ + private Integer publishCount; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/ShiftProjectCountResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/ShiftProjectCountResultDTO.java new file mode 100644 index 0000000000..7519e32c48 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/ShiftProjectCountResultDTO.java @@ -0,0 +1,25 @@ +package com.epmet.dto.extract.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/9/19 2:23 下午 + */ +@Data +public class ShiftProjectCountResultDTO implements Serializable { + + private static final long serialVersionUID = -262809191405218048L; + + /** + * 网格ID + */ + private String gridId; + + /** + * 网格 党员/群众 人均提出的议题转项目数 + */ + private Integer shiftProjectCount; +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java index 47122de6ad..848be0a8bb 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java @@ -26,6 +26,7 @@ import com.epmet.entity.stats.DimAgencyEntity; import com.epmet.entity.stats.DimCustomerEntity; import com.epmet.entity.stats.DimDateEntity; import com.epmet.service.StatsDemoService; +import com.epmet.service.evaluationindex.extract.CalGridIndexService; import com.epmet.service.evaluationindex.extract.FactOriginTopicMainDailyService; import com.epmet.service.evaluationindex.indexcal.*; import com.epmet.service.stats.DimAgencyService; @@ -533,4 +534,23 @@ public class DemoController { partymemberService.statsPartyMember(customerIdAndDateIdFormDTO); return new Result(); } + + @Autowired + private CalGridIndexService calGridIndexService; + + @PostMapping("gridparty") + public void gridParty(){ +// String customerId = "3ef7e4bb195eb9e622d68b52509aa940"; + String customerId = "epmettest"; + String monthId = "202008"; + calGridIndexService.calGridIndexPartyAbility(customerId,monthId); + } + + @PostMapping("gridgovern") + public void gridGovern(){ +// String customerId = "3ef7e4bb195eb9e622d68b52509aa940"; + String customerId = "epmettest"; + String monthId = "202008"; + calGridIndexService.calGridIndexGovernAbility(customerId,monthId); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java index 3a8aa67089..ff1c16d1ec 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java @@ -18,8 +18,12 @@ package com.epmet.dao.evaluationindex.extract; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.extract.result.PartyCreateGroupCountResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginGroupMainDailyEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 业务数据抽取-小组相关 @@ -29,5 +33,14 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface FactOriginGroupMainDailyDao extends BaseDao { - + + /** + * @Description 查询建群党员数 + * @param customerId + * @param monthId + * @author zxc + * @date 2020/9/19 3:49 下午 + */ + List selectPartyCreateGroupCount(@Param("customerId") String customerId,@Param("monthId") String monthId); + } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java index ec13864713..475790cf49 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java @@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.extract.form.GridIssueCountResultDTO; import com.epmet.dto.extract.form.IssueMainDailyFormDTO; import com.epmet.dto.extract.result.GridProjectCountResultDTO; +import com.epmet.dto.extract.result.ShiftProjectCountResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginIssueMainDailyEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -91,4 +92,14 @@ public interface FactOriginIssueMainDailyDao extends BaseDao> selectShiftProjectCount(@Param("customerId") String customerId,@Param("monthId") String monthId); + + /** + * @Description 查询网格 党员/群众 人均提出的议题转项目数 + * @param customerId + * @param monthId + * @param isParty + * @author zxc + * @date 2020/9/19 2:26 下午 + */ + List selectShiftProjectCountPlus(@Param("customerId") String customerId,@Param("monthId") String monthId,@Param("isParty") Integer isParty); } \ No newline at end of file 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 ecb8faa448..9703dfa535 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 @@ -60,8 +60,8 @@ public interface FactOriginProjectOrgPeriodDailyDao extends BaseDao */ - List selectResponsiveness(@Param("monthId") String monthId, @Param("level")String level, - @Param("orgType")String orgType); +// List selectResponsiveness(@Param("monthId") String monthId, @Param("level")String level, +// @Param("orgType")String orgType); void deleteByProjectId(@Param("list") List list); /** diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.java index 16a916edae..1d8b7eb7ba 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.java @@ -118,4 +118,21 @@ public interface FactIndexGovrnAblityGridMonthlyDao extends BaseDao selectAllGridInfoToParty(String customerId); + + /** + * @Description 批量插入治理能力 + * @param lists + * @author zxc + * @date 2020/9/19 4:28 下午 + */ + void insertGovernAbilityRecord(@Param("lists") List lists); + + /** + * @Description 删除治理能力旧纪录 + * @param customerId + * @param monthId + * @author zxc + * @date 2020/9/19 4:31 下午 + */ + void deleteOldGovernAbilityRecord(@Param("customerId")String customerId,@Param("monthId")String monthId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactArticlePublishedGridDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactArticlePublishedGridDailyDao.java index 24b8ca6115..ddd8ebd63f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactArticlePublishedGridDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactArticlePublishedGridDailyDao.java @@ -18,6 +18,7 @@ package com.epmet.dao.stats; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.extract.result.PublishCountResultDTO; import com.epmet.entity.stats.FactArticlePublishedAgencyDailyEntity; import com.epmet.entity.stats.FactArticlePublishedGridDailyEntity; import org.apache.ibatis.annotations.Mapper; @@ -51,4 +52,13 @@ public interface FactArticlePublishedGridDailyDao extends BaseDao selectArticlePublishCount(@Param("customerId")String customerId,@Param("monthId") String monthId); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactIndexGovernAbilityGridMonthlyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactIndexGovernAbilityGridMonthlyService.java new file mode 100644 index 0000000000..a5d5e6bb9c --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactIndexGovernAbilityGridMonthlyService.java @@ -0,0 +1,33 @@ +package com.epmet.service.evaluationindex.extract; + +import com.epmet.dto.extract.form.GovernAbilityGridMonthlyFormDTO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 治理能力-网格相关事实表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-19 + */ +public interface FactIndexGovernAbilityGridMonthlyService{ + + /** + * @Description 批量插入治理能力 + * @param lists + * @author zxc + * @date 2020/9/19 4:28 下午 + */ + void insertGovernAbilityRecord(@Param("lists") List lists); + + /** + * @Description 删除治理能力旧纪录 + * @param customerId + * @param monthId + * @author zxc + * @date 2020/9/19 4:31 下午 + */ + void deleteOldGovernAbilityRecord(@Param("customerId")String customerId,@Param("monthId")String monthId); + +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactIndexPartyAbilityGridMonthlyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactIndexPartyAbilityGridMonthlyService.java new file mode 100644 index 0000000000..198bcf57dc --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactIndexPartyAbilityGridMonthlyService.java @@ -0,0 +1,31 @@ +package com.epmet.service.evaluationindex.extract; + +import com.epmet.dto.extract.form.PartyAbilityGridMonthlyFormDTO; + +import java.util.List; + +/** + * 党建能力-网格相关事实表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-19 + */ +public interface FactIndexPartyAbilityGridMonthlyService{ + + /** + * @Description 网格党建能力插入 + * @param lists + * @author zxc + * @date 2020/9/19 10:32 上午 + */ + void insertPartyAbility(List lists); + + /** + * @Description 删除旧的党建能力记录 + * @param customerId + * @param monthId + * @author zxc + * @date 2020/9/19 10:45 上午 + */ + void deleteOldPartyAbility(String customerId,String monthId); +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactIndexServiceAbilityGridMonthlyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactIndexServiceAbilityGridMonthlyService.java new file mode 100644 index 0000000000..793af948e6 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactIndexServiceAbilityGridMonthlyService.java @@ -0,0 +1,11 @@ +package com.epmet.service.evaluationindex.extract; + +/** + * 服务能力-网格相关事实表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-19 + */ +public interface FactIndexServiceAbilityGridMonthlyService{ + +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/GroupExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/GroupExtractService.java index 33a2d6c7fa..e775660b9e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/GroupExtractService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/GroupExtractService.java @@ -1,9 +1,23 @@ package com.epmet.service.evaluationindex.extract; +import com.epmet.dto.extract.result.PartyCreateGroupCountResultDTO; + +import java.util.List; + /** * @Desc 业务数据抽取 - 组相关 * @Author wangc * @DateTime 2020/9/14 5:07 下午 */ public interface GroupExtractService { + + /** + * @Description 查询建群党员数 + * @param customerId + * @param monthId + * @author zxc + * @date 2020/9/19 3:49 下午 + */ + List selectPartyCreateGroupCount(String customerId,String monthId); + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java index 432b775ab9..55cf8cd348 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java @@ -3,6 +3,7 @@ package com.epmet.service.evaluationindex.extract; import com.epmet.dto.extract.form.ExtractFormDTO; import com.epmet.dto.extract.form.GridIssueCountResultDTO; import com.epmet.dto.extract.result.GridProjectCountResultDTO; +import com.epmet.dto.extract.result.ShiftProjectCountResultDTO; import java.util.List; @@ -69,4 +70,14 @@ public interface IssueExtractService { * @Date 2020/9/18 14:11 **/ List> selectShiftProjectCount(String customerId, String monthId); + + /** + * @Description 查询网格 党员/群众 人均提出的议题转项目数 + * @param customerId + * @param monthId + * @param isParty + * @author zxc + * @date 2020/9/19 2:26 下午 + */ + List selectShiftProjectCountPlus(String customerId, String monthId,Integer isParty); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java index 150217a7eb..0b574b6009 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java @@ -1,9 +1,8 @@ package com.epmet.service.evaluationindex.extract.impl; -import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.RenException; -import com.epmet.constant.DataSourceConstant; +import com.epmet.commons.tools.utils.DateUtils; import com.epmet.constant.ExtractConstant; import com.epmet.constant.ProjectEvaluateConstant; import com.epmet.dao.evaluationindex.indexcoll.FactIndexGovrnAblityGridMonthlyDao; @@ -13,11 +12,13 @@ import com.epmet.dto.extract.form.GridIssueCountResultDTO; import com.epmet.dto.extract.form.PartyAbilityGridMonthlyFormDTO; import com.epmet.dto.extract.result.*; import com.epmet.service.evaluationindex.extract.*; +import com.epmet.service.stats.FactArticlePublishedGridDailyService; import com.epmet.service.stats.user.FactRegUserGridMonthlyService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.math.BigDecimal; @@ -33,15 +34,17 @@ import java.util.stream.Collectors; */ @Service @Slf4j -@DataSource(DataSourceConstant.EVALUATION_INDEX) +//@DataSource(DataSourceConstant.EVALUATION_INDEX) public class CalGridIndexServiceImpl implements CalGridIndexService { @Autowired private IssueExtractService issueExtractService; @Autowired - private FactIndexGovrnAblityGridMonthlyDao governAbilityDao; + private FactIndexGovernAbilityGridMonthlyService governAbilityGridMonthlyService; + @Autowired + private FactIndexPartyAbilityGridMonthlyService partyAbilityGridMonthlyService; @Autowired - private FactIndexPartyAblityGridMonthlyDao partyAbilityGridDao; + private FactIndexGovrnAblityGridMonthlyDao governAbilityDao; @Autowired private FactOriginProjectMainDailyService projectMainService; @Autowired @@ -50,6 +53,10 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { private FactRegUserGridMonthlyService userGridMonthlyService; @Autowired private FactOriginTopicMainDailyService topicMainService; + @Autowired + private FactArticlePublishedGridDailyService articlePublishedGridDailyService; + @Autowired + private GroupExtractService groupExtractService; /** * @Description 计算网格指标党建能力 @@ -70,11 +77,24 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { List partyCreateTopicCountList = topicMainService.selectCreateTopicCount(customerId, monthId, NumConstant.ONE); // 网格群众人均提出话题数 List massCreateTopicCountList = topicMainService.selectCreateTopicCount(customerId, monthId, NumConstant.ZERO); - - - - + // 网格党员人均提出的议题转项目数 + List partyShiftProjectCountList = issueExtractService.selectShiftProjectCountPlus(customerId, monthId, NumConstant.ONE); + // 网格群众人均提出的议题转项目数 + List massShiftProjectCountList = issueExtractService.selectShiftProjectCountPlus(customerId, monthId, NumConstant.ZERO); + // 网格的发文数量 + List publishCountList = articlePublishedGridDailyService.selectArticlePublishCount(customerId, monthId); + // 网格议题转项目率 + List gridIssueTotalList = issueExtractService.selectIssueTotal(customerId, monthId); + List gridProjectTotalList = issueExtractService.selectGridProjectCount(customerId, monthId, ExtractConstant.SHIFT_PROJECT); + List gridIssueShiftProjectRatio = getGridIssueShiftProjectRatio(gridIssueTotalList, gridProjectTotalList); + // 建群党员数 + List partyCreateGroupCountList = groupExtractService.selectPartyCreateGroupCount(customerId, monthId); + String quarterId = DateUtils.getQuarterId(monthId); + String yearId = DateUtils.getYearId(monthId); result.forEach(r -> { + r.setMonthId(monthId); + r.setQuarterId(quarterId); + r.setYearId(yearId); // 1. 网格群众用户数 , 网格党员用户数 if (!CollectionUtils.isEmpty(gridUserCountList)){ gridUserCountList.forEach(count -> { @@ -99,9 +119,48 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { } }); } + // 4. 网格党员人均提出的议题转项目数 + if (!CollectionUtils.isEmpty(partyShiftProjectCountList)){ + partyShiftProjectCountList.forEach(party -> { + if (r.getGridId().equals(party.getGridId())){ + r.setPartyAvgShiftProjectCount(party.getShiftProjectCount()); + } + }); + } + // 5. 网格群众人均提出的议题转项目数 + if (!CollectionUtils.isEmpty(massShiftProjectCountList)){ + massShiftProjectCountList.forEach(mass -> { + if (r.getGridId().equals(mass.getGridId())){ + r.setPartyAvgShiftProjectCount(mass.getShiftProjectCount()); + } + }); + } + // 6. 网格的发文数量 + if (!CollectionUtils.isEmpty(publishCountList)){ + publishCountList.forEach(publish -> { + if (r.getGridId().equals(publish.getGridId())){ + r.setPublishArticleCount(publish.getPublishCount()); + } + }); + } + // 7. 网格议题转项目率 + if (!CollectionUtils.isEmpty(gridIssueShiftProjectRatio)){ + gridIssueShiftProjectRatio.forEach(ratio -> { + if (r.getGridId().equals(ratio.getGridId())){ + r.setIssueToProjectRatio(ratio.getIssueToProjectRatio()); + } + }); + } + // 8. 建群党员数 + if (!CollectionUtils.isEmpty(partyCreateGroupCountList)){ + partyCreateGroupCountList.forEach(party -> { + if (r.getGridId().equals(party.getGridId())){ + r.setCreateGroupPartyCount(party.getPartyCreateGroupCount()); + } + }); + } }); - - + delAndInsertPartyAbility(result,customerId,monthId); return true; } @@ -124,15 +183,7 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { //网格总项目数 List gridProjectTotalList = issueExtractService.selectGridProjectCount(customerId, monthId, ExtractConstant.SHIFT_PROJECT); //网格议题转项目率 - if (!CollectionUtils.isEmpty(gridIssueTotalList) && !CollectionUtils.isEmpty(gridProjectTotalList)) { - gridProjectTotalList.forEach(project -> { - gridIssueTotalList.forEach(issue -> { - if (project.getGridId().equals(issue.getGridId())) { - project.setIssueToProjectRatio(getRound(new BigDecimal(project.getProjectTotal() / issue.getIssueTotal()))); - } - }); - }); - } + List gridIssueShiftProjectRatio = getGridIssueShiftProjectRatio(gridIssueTotalList, gridProjectTotalList); //网格自治项目数 从议题创建到项目关闭,包括处理人,自始至终没有出过议题所属网格 List projectAutoNoMyList = projectLogService.selectProjectAutoNoMy(customerId, monthId); Map autoMap = new HashMap<>(16); @@ -160,9 +211,9 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { List gridProjectClosedTotalList = projectMainService.selectGridClosedProject(customerId, monthId, ExtractConstant.CLOSED); //网格吹哨部门准确率 【没被退回的项目数/项目总数 】 List notReturnProjectList = projectLogService.selectNotReturnProject(customerId, monthId, ExtractConstant.RETURN_ACTION_CODE, ExtractConstant.GRID_ORG_TYPE); - if (!CollectionUtils.isEmpty(gridProjectTotalList) && !CollectionUtils.isEmpty(notReturnProjectList)){ + if (!CollectionUtils.isEmpty(gridIssueShiftProjectRatio) && !CollectionUtils.isEmpty(notReturnProjectList)){ notReturnProjectList.forEach(not -> { - gridProjectTotalList.forEach(total -> { + gridIssueShiftProjectRatio.forEach(total -> { if (not.getGridId().equals(total.getGridId())){ not.setTransferRightRatio(getRound(new BigDecimal(not.getNotReturnProject()/total.getProjectTotal()))); } @@ -202,8 +253,12 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { resultSatisfactionScore.put(gridId,getRound(new BigDecimal(allScore.get()/scoreMap.size()))); }); } - + String quarterId = DateUtils.getQuarterId(monthId); + String yearId = DateUtils.getYearId(monthId); result.forEach(r -> { + r.setMonthId(monthId); + r.setQuarterId(quarterId); + r.setYearId(yearId); // 1. 网格总议题数目,网格人均议题数目 if (!CollectionUtils.isEmpty(gridIssueTotalList)) { gridIssueTotalList.forEach(total -> { @@ -214,7 +269,7 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { } // 2. 网格总项目数,网格议题转项目率 if (!CollectionUtils.isEmpty(gridIssueTotalList)){ - gridProjectTotalList.forEach(projectTotal -> { + gridIssueShiftProjectRatio.forEach(projectTotal -> { if (r.getGridId().equals(projectTotal.getGridId())){ r.setProjectTotal(projectTotal.getProjectTotal()); r.setIssueToProjectRatio(projectTotal.getIssueToProjectRatio()); @@ -254,6 +309,7 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { }); } }); + delAndInsertGovernAbility(result,customerId,monthId); return true; } @@ -278,4 +334,52 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { public BigDecimal getRound(BigDecimal d){ return d.setScale(NumConstant.SIX, BigDecimal.ROUND_HALF_UP); } + + /** + * @Description + * @param gridIssueTotalList + * @param gridProjectTotalList + * @author zxc + * @date 2020/9/19 2:53 下午 + */ + public List getGridIssueShiftProjectRatio(List gridIssueTotalList,List gridProjectTotalList){ + if (!CollectionUtils.isEmpty(gridIssueTotalList) && !CollectionUtils.isEmpty(gridProjectTotalList)) { + gridProjectTotalList.forEach(project -> { + gridIssueTotalList.forEach(issue -> { + if (project.getGridId().equals(issue.getGridId())) { + project.setIssueToProjectRatio(getRound(new BigDecimal(project.getProjectTotal() / issue.getIssueTotal()))); + } + }); + }); + } + return gridProjectTotalList; + } + + /** + * @Description 删除并插入党建能力的记录 + * @param result + * @author zxc + * @date 2020/9/19 4:06 下午 + */ + @Transactional(rollbackFor = Exception.class) + public void delAndInsertPartyAbility(List result,String customerId,String monthId){ + if (!CollectionUtils.isEmpty(result)){ + partyAbilityGridMonthlyService.deleteOldPartyAbility(customerId, monthId); + partyAbilityGridMonthlyService.insertPartyAbility(result); + } + } + + /** + * @Description 删除并插入治理能力的记录 + * @param result + * @author zxc + * @date 2020/9/19 4:06 下午 + */ + @Transactional(rollbackFor = Exception.class) + public void delAndInsertGovernAbility(List result,String customerId,String monthId){ + if (!CollectionUtils.isEmpty(result)){ + governAbilityGridMonthlyService.deleteOldGovernAbilityRecord(customerId, monthId); + governAbilityGridMonthlyService.insertGovernAbilityRecord(result); + } + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactIndexGovernAbilityGridMonthlyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactIndexGovernAbilityGridMonthlyServiceImpl.java new file mode 100644 index 0000000000..64096f1935 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactIndexGovernAbilityGridMonthlyServiceImpl.java @@ -0,0 +1,37 @@ +package com.epmet.service.evaluationindex.extract.impl; + +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.constant.DataSourceConstant; +import com.epmet.dao.evaluationindex.indexcoll.FactIndexGovrnAblityGridMonthlyDao; +import com.epmet.dto.extract.form.GovernAbilityGridMonthlyFormDTO; +import com.epmet.service.evaluationindex.extract.FactIndexGovernAbilityGridMonthlyService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 治理能力-网格相关事实表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-19 + */ +@Service +@Slf4j +@DataSource(DataSourceConstant.EVALUATION_INDEX) +public class FactIndexGovernAbilityGridMonthlyServiceImpl implements FactIndexGovernAbilityGridMonthlyService { + + @Autowired + private FactIndexGovrnAblityGridMonthlyDao governAbilityDao; + + @Override + public void insertGovernAbilityRecord(List lists) { + governAbilityDao.insertGovernAbilityRecord(lists); + } + + @Override + public void deleteOldGovernAbilityRecord(String customerId, String monthId) { + governAbilityDao.deleteOldGovernAbilityRecord(customerId, monthId); + } +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactIndexPartyAbilityGridMonthlyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactIndexPartyAbilityGridMonthlyServiceImpl.java new file mode 100644 index 0000000000..922e429ac9 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactIndexPartyAbilityGridMonthlyServiceImpl.java @@ -0,0 +1,37 @@ +package com.epmet.service.evaluationindex.extract.impl; + +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.constant.DataSourceConstant; +import com.epmet.dao.evaluationindex.indexcoll.FactIndexPartyAblityGridMonthlyDao; +import com.epmet.dto.extract.form.PartyAbilityGridMonthlyFormDTO; +import com.epmet.service.evaluationindex.extract.FactIndexPartyAbilityGridMonthlyService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 党建能力-网格相关事实表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-19 + */ +@Service +@Slf4j +@DataSource(DataSourceConstant.EVALUATION_INDEX) +public class FactIndexPartyAbilityGridMonthlyServiceImpl implements FactIndexPartyAbilityGridMonthlyService { + + @Autowired + private FactIndexPartyAblityGridMonthlyDao partyAbilityGridDao; + + @Override + public void insertPartyAbility(List lists) { + partyAbilityGridDao.insertPartyAbility(lists); + } + + @Override + public void deleteOldPartyAbility(String customerId, String monthId) { + partyAbilityGridDao.deleteOldPartyAbility(customerId, monthId); + } +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactIndexServiceAbilityGridMonthlyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactIndexServiceAbilityGridMonthlyServiceImpl.java new file mode 100644 index 0000000000..3d5e2019e2 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactIndexServiceAbilityGridMonthlyServiceImpl.java @@ -0,0 +1,20 @@ +package com.epmet.service.evaluationindex.extract.impl; + +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.constant.DataSourceConstant; +import com.epmet.service.evaluationindex.extract.FactIndexServiceAbilityGridMonthlyService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * 服务能力-网格相关事实表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-19 + */ +@Service +@Slf4j +@DataSource(DataSourceConstant.EVALUATION_INDEX) +public class FactIndexServiceAbilityGridMonthlyServiceImpl implements FactIndexServiceAbilityGridMonthlyService { + +} \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java index 039fda6047..56a3b46245 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java @@ -1,9 +1,14 @@ package com.epmet.service.evaluationindex.extract.impl; +import com.epmet.dao.evaluationindex.extract.FactOriginGroupMainDailyDao; +import com.epmet.dto.extract.result.PartyCreateGroupCountResultDTO; import com.epmet.service.evaluationindex.extract.GroupExtractService; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** * @Description 业务数据抽取 - 组相关 * @ClassName GroupExtractServiceImpl @@ -14,4 +19,18 @@ import org.springframework.stereotype.Service; @Slf4j public class GroupExtractServiceImpl implements GroupExtractService { + @Autowired + private FactOriginGroupMainDailyDao groupMainDailyDao; + + /** + * @Description 查询建群党员数 + * @param customerId + * @param monthId + * @author zxc + * @date 2020/9/19 3:49 下午 + */ + @Override + public List selectPartyCreateGroupCount(String customerId, String monthId) { + return groupMainDailyDao.selectPartyCreateGroupCount(customerId, monthId); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java index 33524d2e5b..46ae7c8557 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java @@ -293,4 +293,17 @@ public class IssueExtractServiceImpl implements IssueExtractService { public List> selectShiftProjectCount(String customerId, String monthId) { return issueMainDailyDao.selectShiftProjectCount(customerId,monthId); } + + /** + * @Description 查询网格 党员/群众 人均提出的议题转项目数 + * @param customerId + * @param monthId + * @param isParty + * @author zxc + * @date 2020/9/19 2:26 下午 + */ + @Override + public List selectShiftProjectCountPlus(String customerId, String monthId, Integer isParty) { + return issueMainDailyDao.selectShiftProjectCountPlus(customerId, monthId, isParty); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollCommunityServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollCommunityServiceImpl.java index eedd83e19d..4fcf0bcaff 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollCommunityServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollCommunityServiceImpl.java @@ -44,8 +44,8 @@ public class IndexCollCommunityServiceImpl implements IndexCollCommunityService //被吹哨次数统计 List transferCount = factOriginProjectLogDailyService.getAgencyTransferCount(dimId.getMonthId(), "community"); //社区项目响应度 - List responsiveness = factOriginProjectOrgPeriodDailyDao.selectResponsiveness(dimId.getMonthId(), "community", - "agency"); +// List responsiveness = factOriginProjectOrgPeriodDailyDao.selectResponsiveness(dimId.getMonthId(), "community", +// "agency"); //社区超期项目率 List overdueCount = factOriginProjectMainDailyService.getOverdueCount(dimId.getMonthId()); //社区办结项目满意度 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactArticlePublishedGridDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactArticlePublishedGridDailyService.java index d19038fa4e..f0b212f125 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactArticlePublishedGridDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactArticlePublishedGridDailyService.java @@ -18,6 +18,7 @@ package com.epmet.service.stats; import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.dto.extract.result.PublishCountResultDTO; import com.epmet.entity.stats.FactArticlePublishedAgencyDailyEntity; import com.epmet.entity.stats.FactArticlePublishedGridDailyEntity; @@ -55,5 +56,12 @@ public interface FactArticlePublishedGridDailyService extends BaseService values); - + /** + * @Description 查询网格下的文章发文数量 + * @param customerId + * @param monthId + * @author zxc + * @date 2020/9/19 2:44 下午 + */ + List selectArticlePublishCount(String customerId, String monthId); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactArticlePublishedGridDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactArticlePublishedGridDailyServiceImpl.java index 9ad55d632f..2b2b77edce 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactArticlePublishedGridDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactArticlePublishedGridDailyServiceImpl.java @@ -23,6 +23,7 @@ import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.stats.FactArticlePublishedGridDailyDao; +import com.epmet.dto.extract.result.PublishCountResultDTO; import com.epmet.entity.stats.FactArticlePublishedAgencyDailyEntity; import com.epmet.entity.stats.FactArticlePublishedGridDailyEntity; import com.epmet.service.stats.FactArticlePublishedGridDailyService; @@ -67,4 +68,16 @@ public class FactArticlePublishedGridDailyServiceImpl extends BaseServiceImpl selectArticlePublishCount(String customerId, String monthId) { + return baseDao.selectArticlePublishCount(customerId, monthId); + } } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml index 0d7753a090..fd90cd5a18 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml @@ -3,31 +3,19 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml index f4de72303a..2e4884a8f6 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml @@ -72,10 +72,7 @@ SELECT COUNT( ID ) AS issueTotal, ROUND((COUNT(ID) / COUNT(DISTINCT(USER_ID))),0) AS avgIssueCount, - GRID_ID, - MONTH_ID, - QUARTER_ID, - YEAR_ID + GRID_ID FROM fact_origin_issue_main_daily WHERE @@ -134,4 +131,18 @@ GROUP BY T1.CREATE_TOPIC_USER_ID + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.xml index 401bc5931a..2343295520 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityGridMonthlyDao.xml @@ -187,4 +187,64 @@ DEL_FLAG = 0 AND CUSTOMER_ID = #{customerId} + + + + INSERT INTO fact_index_govrn_ablity_grid_monthly ( + ID, + CUSTOMER_ID, + AGENCY_ID, + GRID_ID, + MONTH_ID, + QUARTER_ID, + YEAR_ID, + ISSUE_TOTAL, + AVG_ISSUE_COUNT, + ISSUE_TO_PROJECT_RATIO, + PROJECT_TOTAL, + SELF_SOLVE_PROJECT_COUNT, + RESOLVE_PROJECT_COUNT, + TRANSFER_RIGHT_RATIO, + SATISFACTION_RATIO, + DEL_FLAG, + REVISION, + CREATED_BY, + CREATED_TIME, + UPDATED_BY, + UPDATED_TIME + ) + VALUES + + ( + REPLACE ( UUID(), '-', '' ), + #{item.customerId}, + #{item.agencyId}, + #{item.gridId}, + #{item.monthId}, + #{item.quarterId}, + #{item.yearId}, + #{item.issueTotal}, + #{item.avgIssueCount}, + #{item.issueToProjectRatio}, + #{item.projectTotal}, + #{item.selfSolveProjectCount}, + #{item.resolveProjectCount}, + #{item.transferRightRatio}, + #{item.satisfactionRatio}, + #{item.delFlag}, + #{item.revision}, + #{item.createdBy}, + NOW(), + #{item.updatedBy}, + NOW() + ) + + + + + + DELETE FROM fact_index_govrn_ablity_grid_monthly + WHERE CUSTOMER_ID = #{customerId} + AND MONTH_ID = #{monthId} + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactArticlePublishedGridDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactArticlePublishedGridDailyDao.xml index b265d0b0c9..01af6f789d 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactArticlePublishedGridDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactArticlePublishedGridDailyDao.xml @@ -41,5 +41,17 @@ DELETE FROM fact_article_published_grid_daily WHERE CUSTOMER_ID = #{customerId,jdbcType=VARCHAR} AND DATE_ID = #{dateId,jdbcType=VARCHAR} + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridMonthlyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridMonthlyDao.xml index 38ce9ab106..42e736c90c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridMonthlyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridMonthlyDao.xml @@ -111,10 +111,7 @@ SELECT REG_INCR, PARTYMEMBER_INCR, - GRID_ID, - MONTH_ID, - QUARTER_ID, - YEAR_ID + GRID_ID FROM fact_reg_user_grid_monthly WHERE From a702adc62c2593370f204510abe9f51c748c45d9 Mon Sep 17 00:00:00 2001 From: wangchao Date: Sun, 20 Sep 2020 20:24:55 +0800 Subject: [PATCH 21/33] =?UTF-8?q?=E5=B0=8F=E7=BB=84=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=8A=BD=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/FactOriginGroupMainDailyDTO.java | 6 + .../dto/extract/form/GridHeartedFormDTO.java | 20 ++ ...tractGroupMemberActionRecordResultDTO.java | 41 ++++ .../result/ProjectOrgPeriodResultDTO.java | 6 + .../stats/result/GridAttributesResultDTO.java | 36 ++++ .../controller/FactOriginController.java | 33 +++- .../extract/FactOriginGroupMainDailyDao.java | 75 ++++++++ .../com/epmet/dao/group/GroupDataDao.java | 10 + .../java/com/epmet/dao/stats/DimGridDao.java | 10 + .../main/java/com/epmet/dao/user/UserDao.java | 7 +- ...FactOriginProjectOrgPeriodDailyEntity.java | 2 +- .../extract/GroupExtractService.java | 11 ++ .../extract/impl/GroupExtractServiceImpl.java | 116 ++++++++++++ .../impl/ProjectPeriodExtractServiceImpl.java | 1 - .../epmet/service/group/GroupDataService.java | 11 ++ .../group/impl/GroupDataServiceImpl.java | 18 ++ .../impl/ProjectProcessServiceImpl.java | 11 +- .../epmet/service/stats/DimGridService.java | 10 + .../stats/impl/DimGridServiceImpl.java | 20 +- .../com/epmet/service/user/UserService.java | 20 ++ .../service/user/impl/UserServiceImpl.java | 25 +++ .../extract/FactOriginGroupMainDailyDao.xml | 178 ++++++++++++++++++ .../FactOriginProjectOrgPeriodDailyDao.xml | 33 ++-- .../resources/mapper/group/GroupDataDao.xml | 58 +++++- .../mapper/project/ProjectProcessDao.xml | 11 +- .../resources/mapper/stats/DimGridDao.xml | 19 ++ .../main/resources/mapper/user/UserDao.xml | 33 ++++ 27 files changed, 784 insertions(+), 37 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridHeartedFormDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/ExtractGroupMemberActionRecordResultDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/result/GridAttributesResultDTO.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactOriginGroupMainDailyDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactOriginGroupMainDailyDTO.java index 7fbeb1ca84..8292361039 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactOriginGroupMainDailyDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/FactOriginGroupMainDailyDTO.java @@ -18,7 +18,11 @@ package com.epmet.dto.extract; import java.io.Serializable; +import java.util.ArrayList; import java.util.Date; +import java.util.List; + +import com.epmet.dto.group.result.ExtractGroupMemberActionRecordResultDTO; import lombok.Data; @@ -146,4 +150,6 @@ Ps: 如果一个小组被拒绝,当前小组的状态将永久停留在“审 */ private Date updatedTime; + + private List members = new ArrayList(); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridHeartedFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridHeartedFormDTO.java new file mode 100644 index 0000000000..f570700d01 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/GridHeartedFormDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.extract.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @ClassName GridHeartedFormDTO + * @Auth wangc + * @Date 2020-09-20 12:42 + */ +@Data +public class GridHeartedFormDTO implements Serializable { + private static final long serialVersionUID = 9069263069122734316L; + + private String userId; + + private String gridId; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/ExtractGroupMemberActionRecordResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/ExtractGroupMemberActionRecordResultDTO.java new file mode 100644 index 0000000000..47aa8e8783 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/group/result/ExtractGroupMemberActionRecordResultDTO.java @@ -0,0 +1,41 @@ +package com.epmet.dto.group.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Description + * @ClassName ExtractGroupMemberActionRecordResultDTO + * @Auth wangc + * @Date 2020-09-18 21:18 + */ +@Data +public class ExtractGroupMemberActionRecordResultDTO implements Serializable { + private static final long serialVersionUID = -74883228267461785L; + private String customerId; + + private String groupId; + + private String memberId; + + private String leaderFlag; + + private String dateId; + + private String weekId; + + private String monthId; + + private String quarterId; + + private String yearId; + + private Date joinDate; + + /** + * 目前只有join leader也是join + * */ + private String actionCode; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgPeriodResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgPeriodResultDTO.java index caa7034481..b3e101295d 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgPeriodResultDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/result/ProjectOrgPeriodResultDTO.java @@ -86,4 +86,10 @@ public class ProjectOrgPeriodResultDTO implements Serializable { * */ private Date periodTillReplyFirstly; + private String customerId; + + private String staffId; + + private String isResolved; + } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/result/GridAttributesResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/result/GridAttributesResultDTO.java new file mode 100644 index 0000000000..17fd652a8c --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/result/GridAttributesResultDTO.java @@ -0,0 +1,36 @@ +package com.epmet.dto.stats.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description + * @ClassName GridAttributesResultDTO + * @Auth wangc + * @Date 2020-09-20 12:50 + */ +@Data +public class GridAttributesResultDTO implements Serializable { + private static final long serialVersionUID = 466974582608407121L; + + /** + * 网格ID + */ + private String gridId; + + /** + * 网格所属机关ID + */ + private String agencyId; + + /** + * 机关的上级ID + */ + private String parentId; + + /** + * 所有上级Id + * */ + private String pids; +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java index 870485ffd3..b90bdcdc28 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java @@ -4,10 +4,7 @@ import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.extract.form.ExtractFormDTO; -import com.epmet.service.evaluationindex.extract.FactOriginExtractService; -import com.epmet.service.evaluationindex.extract.FactOriginTopicMainDailyService; -import com.epmet.service.evaluationindex.extract.IssueExtractService; -import com.epmet.service.evaluationindex.extract.ProjectExtractService; +import com.epmet.service.evaluationindex.extract.*; import com.epmet.util.DimIdGenerator; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -36,6 +33,8 @@ public class FactOriginController { private FactOriginTopicMainDailyService factOriginTopicMainDailyService; @Autowired private ProjectExtractService projectExtractService; + @Autowired + private GroupExtractService groupExtractService; /** * desc: @@ -107,4 +106,30 @@ public class FactOriginController { projectExtractService.saveOriginProjectDaily(extractFormDTO); return new Result(); } + + /** + * @Description 项目节点历时数据清洗 + * @param param + * @return + * @author wangc + * @date 2020.09.20 16:11 + **/ + @PostMapping("projectorgperiodcleanning") + public Result projectOrgPeriodCleaning(@RequestBody ExtractFormDTO param){ + projectExtractService.extractProjectPeriodData(param); + return new Result(); + } + + /** + * @Description 小组数据清洗 + * @param + * @return + * @author wangc + * @date 2020.09.20 16:11 + **/ + @PostMapping("groupdatacleaning") + public Result groupDataCleaning(@RequestBody ExtractFormDTO param){ + groupExtractService.extractGroupData(param); + return new Result(); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java index ff1c16d1ec..c2100cee16 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java @@ -19,6 +19,9 @@ package com.epmet.dao.evaluationindex.extract; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.extract.result.PartyCreateGroupCountResultDTO; +import com.epmet.dto.extract.FactOriginGroupMainDailyDTO; +import com.epmet.dto.extract.form.GridHeartedFormDTO; +import com.epmet.dto.group.result.ExtractGroupMemberActionRecordResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginGroupMainDailyEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -43,4 +46,76 @@ public interface FactOriginGroupMainDailyDao extends BaseDao selectPartyCreateGroupCount(@Param("customerId") String customerId,@Param("monthId") String monthId); + + /** + * @Description 查询是否存在该客户下的数据 + * @param customerId + * @return + * @author wangc + * @date 2020.09.18 23:30 + **/ + int selectIfExist(@Param("customerId")String customerId); + + /** + * @Description 按照客户Id清除组数据 + * @param customerId + * @return + * @author wangc + * @date 2020.09.20 09:58 + **/ + void deleteBatchByCustomerId(@Param("customerId")String customerId); + + /** + * @Description 按照客户Id清除组员数据 + * @param customerId + * @return + * @author wangc + * @date 2020.09.20 09:58 + **/ + void deleteBatchMemberByCustomerId(@Param("customerId")String customerId); + + /** + * @Description 按照组Id清除组和组员数据 + * @param list + * @return + * @author wangc + * @date 2020.09.20 12:16 + **/ + void deleteBatchByGroupId(@Param("list") List list); + + /** + * @Description 更新群主的党员信息 + * @param list + * @return + * @author wangc + * @date 2020.09.20 12:44 + **/ + int updatePartyFlag(@Param("list") List list); + + /** + * @Description 更新群主的热心居民信息 + * @param list + * @return + * @author wangc + * @date 2020.09.20 12:44 + **/ + int updateHeartedFlag(@Param("list") List list); + + /** + * @Description 批量插入组主表 + * @param list + * @return + * @author wangc + * @date 2020.09.20 15:37 + **/ + int insertBatchMain(@Param("list") List list); + + /** + * @Description 批量插入组员表 + * @param list + * @return + * @author wangc + * @date 2020.09.20 15:37 + **/ + int insertBatchMembers(List list); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/group/GroupDataDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/group/GroupDataDao.java index db1bc08318..32059b58b3 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/group/GroupDataDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/group/GroupDataDao.java @@ -1,5 +1,6 @@ package com.epmet.dao.group; +import com.epmet.dto.extract.FactOriginGroupMainDailyDTO; import com.epmet.dto.group.form.GridGroupPeopleFormDTO; import com.epmet.dto.group.form.GridGroupPeopleTotalFormDTO; import com.epmet.dto.group.form.GridGroupTotalFormDTO; @@ -80,4 +81,13 @@ public interface GroupDataDao { * @author zxc */ List getAgencyGrid(@Param("gridIds")List gridIds); + + /** + * @Description 抽取小组数据 + * @param customerId + * @return + * @author wangc + * @date 2020.09.18 22:45 + **/ + List groupExtracting(@Param("customerId")String customerId,@Param("dateId") String dateId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimGridDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimGridDao.java index dd2338bb69..3087abdd21 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimGridDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimGridDao.java @@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.group.AgencyDTO; import com.epmet.dto.group.result.AgencyGridInfoResultDTO; import com.epmet.dto.group.result.SubAgencyIdResultDTO; +import com.epmet.dto.stats.result.GridAttributesResultDTO; import com.epmet.dto.stats.result.GridBelongAgencyResultDTO; import com.epmet.entity.stats.DimGridEntity; import org.apache.ibatis.annotations.Mapper; @@ -69,4 +70,13 @@ public interface DimGridDao extends BaseDao { * @date 2020/9/17 2:34 下午 */ List selectGridBelongAgencyInfo(@Param("gridIds") List gridIds); + + /** + * @Description 查询网格的所有所属上级属性 + * @param gridIds + * @return + * @author wangc + * @date 2020.09.20 13:01 + **/ + List selectGridAttributes(@Param("gridIds") List gridIds); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java index 9e50c2d7d4..22372cbed4 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java @@ -1,5 +1,6 @@ package com.epmet.dao.user; +import com.epmet.dto.extract.form.GridHeartedFormDTO; import com.epmet.dto.extract.result.UserPartyResultDTO; import com.epmet.dto.user.result.CommonTotalAndIncCountResultDTO; import org.apache.ibatis.annotations.Mapper; @@ -105,5 +106,9 @@ public interface UserDao { * @author zxc * @date 2020/9/15 4:23 下午 */ - List selectUserIsParty(@Param("userIds") List userIds);; + List selectUserIsParty(@Param("userIds") List userIds); + + List selectPartymembersByCustomerId(@Param("customerId")String customerId); + + List selectWarmHeartedByCustomerId(@Param("customerId")String customerId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginProjectOrgPeriodDailyEntity.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginProjectOrgPeriodDailyEntity.java index c6dc080aea..b5f0d2d53b 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginProjectOrgPeriodDailyEntity.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/extract/FactOriginProjectOrgPeriodDailyEntity.java @@ -83,7 +83,7 @@ public class FactOriginProjectOrgPeriodDailyEntity extends BaseEpmetEntity { /** * 截至第一次响应时长,从流转到第一次处理(响应、结案、流转)耗时,大于等于上一项值 */ - private Integer periodTillReplyFirstly; + private Date periodTillReplyFirstly; /** * resloved 、 unresolved diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/GroupExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/GroupExtractService.java index e775660b9e..c43a4d01c7 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/GroupExtractService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/GroupExtractService.java @@ -4,6 +4,8 @@ import com.epmet.dto.extract.result.PartyCreateGroupCountResultDTO; import java.util.List; +import com.epmet.dto.extract.form.ExtractFormDTO; + /** * @Desc 业务数据抽取 - 组相关 * @Author wangc @@ -20,4 +22,13 @@ public interface GroupExtractService { */ List selectPartyCreateGroupCount(String customerId,String monthId); + + /** + * @Description 业务抽取 - 小组祥光 + * @param param + * @return + * @author wangc + * @date 2020.09.18 21:07 + **/ + void extractGroupData(ExtractFormDTO param); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java index 56a3b46245..9d3c89eca8 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java @@ -2,10 +2,34 @@ package com.epmet.service.evaluationindex.extract.impl; import com.epmet.dao.evaluationindex.extract.FactOriginGroupMainDailyDao; import com.epmet.dto.extract.result.PartyCreateGroupCountResultDTO; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.dao.evaluationindex.extract.FactOriginGroupMainDailyDao; +import com.epmet.dto.extract.FactOriginGroupMainDailyDTO; +import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.GridHeartedFormDTO; +import com.epmet.dto.group.result.ExtractGroupMemberActionRecordResultDTO; +import com.epmet.dto.stats.result.GridAttributesResultDTO; import com.epmet.service.evaluationindex.extract.GroupExtractService; +import com.epmet.service.group.GroupDataService; +import com.epmet.service.stats.DimAgencyService; +import com.epmet.service.stats.DimGridService; +import com.epmet.service.user.UserService; +import com.epmet.util.DimIdGenerator; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; import java.util.List; @@ -33,4 +57,96 @@ public class GroupExtractServiceImpl implements GroupExtractService { public List selectPartyCreateGroupCount(String customerId, String monthId) { return groupMainDailyDao.selectPartyCreateGroupCount(customerId, monthId); } + @Autowired + private GroupDataService groupDataService; + @Autowired + private FactOriginGroupMainDailyDao factOriginGroupMainDailyDao; + @Autowired + private UserService userService; + @Autowired + private DimGridService dimGridService; + + /** + * @Description 业务抽取 - 小组祥光 + * @param param + * @return + * @author wangc + * @date 2020.09.18 21:07 + **/ + @Override + public void extractGroupData(ExtractFormDTO param) { + int count = factOriginGroupMainDailyDao.selectIfExist(param.getCustomerId()); + + if(StringUtils.isBlank(param.getDateId())){ + Date yesterday = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24); + SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD); + param.setDateId(format.format(yesterday)); + } + //原生数据,如果是首次,则为全部组,如果非首次,则只有新创建以及新进人的组 + //但是每个组每天都要更新一次组长的身份信息 + List originGroupData = groupDataService.extractGroupData( + count <= NumConstant.ZERO ? true : false, + param.getCustomerId(), param.getDateId()); + + List memberList = new LinkedList<>(); + if (!CollectionUtils.isEmpty(originGroupData)) { + List gridList = dimGridService.getGridAttributes(originGroupData.stream().map(FactOriginGroupMainDailyDTO::getGridId).distinct().collect(Collectors.toList())); + + if (!CollectionUtils.isEmpty(gridList)) { + Map gridMap = + gridList.stream().collect(Collectors.toMap(GridAttributesResultDTO::getGridId, Function.identity(), (key1, key2) -> key2)); + if (!CollectionUtils.isEmpty(originGroupData)) { + originGroupData.forEach(group -> { + if (!CollectionUtils.isEmpty(group.getMembers())) { + group.setMemberTotal(group.getMembers().size()); + group.getMembers().forEach(member -> { + DimIdGenerator.DimIdBean dateInfo = DimIdGenerator.getDimIdBean(member.getJoinDate()); + member.setDateId(dateInfo.getDateId()); + member.setWeekId(dateInfo.getWeekId()); + member.setMonthId(dateInfo.getMonthId()); + member.setQuarterId(dateInfo.getQuarterId()); + member.setYearId(dateInfo.getYearId()); + + memberList.add(member); + }); + } + GridAttributesResultDTO attr = gridMap.get(group.getGridId()); + if (null != attr) { + group.setAgencyId(attr.getAgencyId()); + group.setParentId(attr.getParentId()); + group.setPids(attr.getPids()); + } + if(null != group.getCreatedTime()){ + DimIdGenerator.DimIdBean dateInfo = DimIdGenerator.getDimIdBean(group.getCreatedTime()); + group.setDateId(dateInfo.getDateId()); + group.setWeekId(dateInfo.getWeekId()); + group.setMonthId(dateInfo.getMonthId()); + group.setQuarterId(dateInfo.getQuarterId()); + group.setYearId(dateInfo.getYearId()); + } + }); + } + + + if (count <= NumConstant.ZERO) { + //isFirst + factOriginGroupMainDailyDao.deleteBatchByCustomerId(param.getCustomerId()); + factOriginGroupMainDailyDao.deleteBatchMemberByCustomerId(param.getCustomerId()); + factOriginGroupMainDailyDao.insertBatchMain(originGroupData); + factOriginGroupMainDailyDao.insertBatchMembers(memberList); + } else { + factOriginGroupMainDailyDao.deleteBatchByGroupId(originGroupData.stream().map(FactOriginGroupMainDailyDTO :: getId).distinct().collect(Collectors.toList())); + factOriginGroupMainDailyDao.insertBatchMembers(memberList); + } + + } + + + List partyIds = userService.getPartymembersByCustomerId(param.getCustomerId()); + List heartedIds = userService.getWarmHeartedByCustomerId(param.getCustomerId()); + + factOriginGroupMainDailyDao.updatePartyFlag(partyIds); + factOriginGroupMainDailyDao.updateHeartedFlag(heartedIds); + } + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectPeriodExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectPeriodExtractServiceImpl.java index 20c3e99e29..37f6237c88 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectPeriodExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectPeriodExtractServiceImpl.java @@ -6,7 +6,6 @@ import com.epmet.commons.tools.utils.DateUtils; import com.epmet.dao.evaluationindex.extract.FactOriginProjectOrgPeriodDailyDao; import com.epmet.dto.extract.form.ExtractFormDTO; import com.epmet.dto.project.result.ProjectOrgPeriodResultDTO; -import com.epmet.dto.project.result.ProjectOrgRelationWhenResponseResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginProjectOrgPeriodDailyEntity; import com.epmet.service.evaluationindex.extract.ProjectPeriodExtractService; import com.epmet.service.project.ProjectProcessService; diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/group/GroupDataService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/group/GroupDataService.java index 82588801a7..38e291d420 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/group/GroupDataService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/group/GroupDataService.java @@ -1,5 +1,6 @@ package com.epmet.service.group; +import com.epmet.dto.extract.FactOriginGroupMainDailyDTO; import com.epmet.dto.group.result.*; import com.epmet.util.DimIdGenerator; import org.apache.ibatis.annotations.Param; @@ -55,4 +56,14 @@ public interface GroupDataService { */ List getAgencyGrid(@Param("gridIds") List gridIds); + /** + * @Description 业务抽取 - 小组数据 + * @param isFirst + * @param customerId + * @return + * @author wangc + * @date 2020.09.18 22:52 + **/ + List extractGroupData(Boolean isFirst,String customerId,String dateId); + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/group/impl/GroupDataServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/group/impl/GroupDataServiceImpl.java index 2b37f81ed6..b7875982d5 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/group/impl/GroupDataServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/group/impl/GroupDataServiceImpl.java @@ -4,6 +4,7 @@ import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.group.GroupDataDao; +import com.epmet.dto.extract.FactOriginGroupMainDailyDTO; import com.epmet.dto.group.form.GridGroupPeopleFormDTO; import com.epmet.dto.group.form.GridGroupPeopleTotalFormDTO; import com.epmet.dto.group.form.GridGroupTotalFormDTO; @@ -12,9 +13,12 @@ import com.epmet.dto.group.result.*; import com.epmet.entity.stats.DimGridEntity; import com.epmet.service.group.GroupDataService; import com.epmet.util.DimIdGenerator; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.util.StringUtil; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.util.*; import java.util.stream.Collectors; @@ -193,4 +197,18 @@ public class GroupDataServiceImpl implements GroupDataService { } + /** + * @Description 业务抽取 - 小组数据 + * * @param isFirst + * @param customerId + * @return + * @author wangc + * @date 2020.09.18 22:52 + **/ + @Override + public List extractGroupData(Boolean isFirst ,String customerId,String dateId) { + return groupDataDao.groupExtracting(customerId,isFirst?null:dateId); + } + + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java index a78dec1da7..fdf84a48e5 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java @@ -143,19 +143,16 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl processSingleList = dest.get(staffResponseTraceUnit.get(index).getProcessId()); if(!CollectionUtils.isEmpty(processSingleList)){ - ProjectOrgPeriodResultDTO element = processSingleList.get(NumConstant.ZERO); + //ProjectOrgPeriodResultDTO element = processSingleList.get(NumConstant.ZERO); + ProjectOrgPeriodResultDTO element = processSingleList.stream().filter(node -> + StringUtils.equals(node.getStaffId(),staffResponseTraceUnit.get(index).getStaffId())).findFirst().get(); if(!ifResponsed && null == element.getHandledDate()){ log.warn("com.epmet.service.project.impl.ProjectProcessServiceImpl.skipLevelGrouping::已流出节点没有办结日期,节点ID{}",element.getProcessId() ); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimGridService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimGridService.java index 399781d3d3..aed58b369b 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimGridService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimGridService.java @@ -23,6 +23,7 @@ import com.epmet.dto.group.AgencyDTO; import com.epmet.dto.group.result.AgencyGridInfoResultDTO; import com.epmet.dto.group.result.SubAgencyIdResultDTO; import com.epmet.dto.stats.DimGridDTO; +import com.epmet.dto.stats.result.GridAttributesResultDTO; import com.epmet.dto.stats.result.GridBelongAgencyResultDTO; import com.epmet.entity.stats.DimGridEntity; import com.epmet.entity.stats.LastExecRecordEntity; @@ -138,4 +139,13 @@ public interface DimGridService extends BaseService { * @date 2020/9/17 2:34 下午 */ List selectGridBelongAgencyInfo(List gridIds); + + /** + * @Description 查询网格的所有所属上级属性 + * @param gridIds + * @return + * @author wangc + * @date 2020.09.20 13:01 + **/ + List getGridAttributes(List gridIds); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java index f7cec14b13..6a6a5ff323 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java @@ -34,6 +34,7 @@ import com.epmet.dto.group.AgencyDTO; import com.epmet.dto.group.result.AgencyGridInfoResultDTO; import com.epmet.dto.group.result.SubAgencyIdResultDTO; import com.epmet.dto.stats.DimGridDTO; +import com.epmet.dto.stats.result.GridAttributesResultDTO; import com.epmet.dto.stats.result.GridBelongAgencyResultDTO; import com.epmet.entity.stats.DimGridEntity; import com.epmet.service.stats.DimGridService; @@ -41,11 +42,9 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 客户网格维度 @@ -177,4 +176,17 @@ public class DimGridServiceImpl extends BaseServiceImpl selectGridBelongAgencyInfo(List gridIds) { return baseDao.selectGridBelongAgencyInfo(gridIds); } + + /** + * @Description 查询网格的所有所属上级属性 + * @param gridIds + * @return + * @author wangc + * @date 2020.09.20 13:01 + **/ + @Override + public List getGridAttributes(List gridIds) { + if(CollectionUtils.isEmpty(gridIds)) return Collections.EMPTY_LIST; + return baseDao.selectGridAttributes(gridIds); + } } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java index 60934ed2c1..0203780cc8 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java @@ -1,8 +1,10 @@ package com.epmet.service.user; import com.epmet.dto.AgencySubTreeDto; +import com.epmet.dto.extract.form.GridHeartedFormDTO; import com.epmet.dto.stats.user.result.UserStatisticalData; import com.epmet.util.DimIdGenerator; +import org.apache.ibatis.annotations.Param; import java.util.Date; import java.util.List; @@ -35,4 +37,22 @@ public interface UserService { * @date 2020/9/15 4:23 下午 */ Map selectUserIsParty(List userIds); + + /** + * @Description 查询客户下的党员userId + * @param customerId + * @return + * @author wangc + * @date 2020.09.20 15:01 + **/ + List getPartymembersByCustomerId(String customerId); + + /** + * @Description 查询客户下的热心居民Id以及所在网格Id + * @param customerId + * @return + * @author wangc + * @date 2020.09.20 15:01 + **/ + List getWarmHeartedByCustomerId(String customerId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java index 3d230f476b..5a8aa7b3f2 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java @@ -6,6 +6,7 @@ import com.epmet.constant.DataSourceConstant; import com.epmet.constant.ExtractConstant; import com.epmet.dao.user.UserDao; import com.epmet.dto.AgencySubTreeDto; +import com.epmet.dto.extract.form.GridHeartedFormDTO; import com.epmet.dto.extract.result.UserPartyResultDTO; import com.epmet.dto.stats.user.*; import com.epmet.dto.stats.user.result.UserStatisticalData; @@ -152,6 +153,30 @@ public class UserServiceImpl implements UserService { return result; } + /** + * @Description 查询客户下的党员userId + * @param customerId + * @return + * @author wangc + * @date 2020.09.20 15:01 + **/ + @Override + public List getPartymembersByCustomerId(String customerId) { + return userDao.selectPartymembersByCustomerId(customerId); + } + + /** + * @Description 查询客户下的热心居民Id以及所在网格Id + * @param customerId + * @return + * @author wangc + * @date 2020.09.20 15:01 + **/ + @Override + public List getWarmHeartedByCustomerId(String customerId) { + return userDao.selectWarmHeartedByCustomerId(customerId); + } + /** * @Description 初始化机关-所有下级网格Map diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml index fd90cd5a18..305b618772 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml @@ -18,4 +18,182 @@ + + + + DELETE FROM + fact_origin_group_main_daily + WHERE + CUSTOMER_ID = #{customerId} + + + + + + DELETE FROM + fact_origin_group_member_daily + WHERE + CUSTOMER_ID = #{customerId} + + + + DELETE FROM + fact_origin_group_main_daily + + + ID = #{groupId} + + + + + + UPDATE fact_origin_group_main_daily + SET IS_OWNER_PARTY = 1 + + DEL_FLAG = '0' + AND + + GROUP_OWNER_ID = #{ownerId} + + + + + + UPDATE fact_origin_group_main_daily + SET IS_OWNER_HEARTED = 1 + + DEL_FLAG = '0' + AND + + (GROUP_OWNER_ID = #{item.userId} AND GRID_ID = #{item.gridId}) + + + + + + INSERT INTO fact_origin_group_main_daily + ( + + id, + customer_id, + group_state, + grid_id, + agency_id, + parent_id, + pids, + date_id, + week_id, + month_id, + quarter_id, + year_id, + resi_member_count, + member_total, + group_owner_id, + is_owner_hearted, + is_owner_party, + del_flag, + revision, + created_by, + created_time, + updated_by, + updated_time + )VALUES + + ( + #{item.id}, + #{item.customerId}, + #{item.groupState}, + #{item.gridId}, + #{item.agencyId}, + #{item.parentId}, + #{item.pids}, + #{item.dateId}, + #{item.weekId}, + #{item.monthId}, + #{item.quarterId}, + #{item.yearId}, + 0, + #{item.memberTotal}, + #{item.groupOwnerId}, + + + 0, + + + #{item.isOwnerHearted}, + + + + + + 0, + + + #{item.isOwnerParty}, + + + + '0', + 0, + 'CRAWLER_ROBOT', + now(), + 'CRAWLER_ROBOT', + now() + + ) + + + + + + INSERT INTO fact_origin_group_member_daily + ( + id, + group_id, + member_id, + customer_id, + leader_flag, + date_id, + week_id, + month_id, + quarter_id, + year_id, + action_code, + revision, + del_flag, + created_by, + created_time, + updated_by, + updated_time + )VALUES + + ( + (SELECT REPLACE(UUID(), '-', '') AS id), + #{item.groupId}, + #{item.memberId}, + #{item.customerId}, + #{item.leaderFlag}, + #{item.dateId}, + #{item.weekId}, + #{item.monthId}, + #{item.quarterId}, + #{item.yearId}, + #{item.actionCode}, + '0', + 0, + 'CRAWLER_ROBOT', + now(), + 'CRAWLER_ROBOT', + now() + ) + + \ No newline at end of file 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 c047ea0541..a642ff1f56 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 @@ -29,7 +29,7 @@ @@ -90,24 +90,27 @@ ( (SELECT REPLACE(UUID(), '-', '') AS id), - #{customerId}, - #{projectId}, - #{orgId}, - #{orgType}, - #{pid}, - #{pids}, - #{informedDate}, - #{handledDate}, - #{totalPeriod}, - #{periodTillReplyFirstly}, - #{isResolved}, - #{operation}, + #{item.customerId}, + #{item.projectId}, + #{item.orgId}, + #{item.orgType}, + + 0, + #{item.pid}, + + #{item.pids}, + #{item.informedDate}, + #{item.handledDate}, + #{item.totalPeriod}, + #{item.periodTillReplyFirstly}, + #{item.isResolved}, + #{item.operation}, '0', 0, - 'CRAWLER_ROBOT', now(), 'CRAWLER_ROBOT', - now() + now(), + 'CRAWLER_ROBOT' ) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/group/GroupDataDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/group/GroupDataDao.xml index 0ed8f428fe..61e4057e22 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/group/GroupDataDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/group/GroupDataDao.xml @@ -155,5 +155,61 @@ rgm.resi_group_id - + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml index fae85f5561..be19516363 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml @@ -90,11 +90,14 @@ staff.ORG_ID, staff.DEPARTMENT_ID, staff.GRID_ID, + staff.CREATED_BY AS staffId, staff.ORG_ID_PATH, IF(staff.IS_HANDLE='handle',timestampdiff(MINUTE , staff.CREATED_TIME , staff.UPDATED_TIME),0) AS TOTAL_PERIOD, + staff.CREATED_TIME AS informedDate, - -- 转入时间 - IF(staff.IS_HANDLE='handle',staff.UPDATED_TIME,null) AS handledDate + IF(staff.IS_HANDLE='handle','resolved','unresolved') AS isResolved, + IF(staff.IS_HANDLE='handle',staff.UPDATED_TIME,null) AS handledDate, + IF(staff.IS_HANDLE='handle',staff.UPDATED_TIME,null) AS periodTillReplyFirstly FROM PROJECT_STAFF staff LEFT JOIN PROJECT project ON staff.PROJECT_ID = project.ID AND project.DEL_FLAG = '0' @@ -102,7 +105,7 @@ LEFT JOIN PROJECT_PROCESS selfAction ON staff.PROJECT_ID = selfAction.PROJECT_ID AND selfAction.DEL_FLAG = '0' AND staff.UPDATED_TIME = selfAction.CREATED_TIME AND staff.STAFF_ID = selfAction.STAFF_ID WHERE staff.DEL_FLAG = '0' AND project.CUSTOMER_ID = #{customerId} - + AND project.STATUS = #{projectStatus} @@ -114,7 +117,7 @@ ) AND process.OPERATION ]]> 'response' - ORDER BY process.PROJECT_ID,staff.CREATED_TIME ASC -- 按照立项-流转的顺序 + ORDER BY process.PROJECT_ID,staff.CREATED_TIME ASC diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimGridDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimGridDao.xml index d3f6c044a3..09aa1bee36 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimGridDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimGridDao.xml @@ -89,4 +89,23 @@ ) + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml index 67e2ab9442..22061e3e70 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml @@ -424,4 +424,37 @@ ) + + + + From 201b82ba87032fc65c4de6202fa37aea320593ff Mon Sep 17 00:00:00 2001 From: jianjun Date: Sun, 20 Sep 2020 21:17:21 +0800 Subject: [PATCH 22/33] =?UTF-8?q?=E7=BB=9F=E4=B8=80=E6=8A=BD=E5=8F=96=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=B0=8F=E7=BB=84=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/impl/FactOriginExtractServiceImpl.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginExtractServiceImpl.java index f1a5b7e378..6b1aa32805 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginExtractServiceImpl.java @@ -4,10 +4,7 @@ import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.dto.extract.form.ExtractFormDTO; -import com.epmet.service.evaluationindex.extract.FactOriginExtractService; -import com.epmet.service.evaluationindex.extract.FactOriginTopicMainDailyService; -import com.epmet.service.evaluationindex.extract.IssueExtractService; -import com.epmet.service.evaluationindex.extract.ProjectExtractService; +import com.epmet.service.evaluationindex.extract.*; import com.epmet.service.stats.DimCustomerService; import com.epmet.util.DimIdGenerator; import com.google.common.util.concurrent.ThreadFactoryBuilder; @@ -42,6 +39,8 @@ public class FactOriginExtractServiceImpl implements FactOriginExtractService { private ProjectExtractService projectExtractService; @Autowired private DimCustomerService dimCustomerService; + @Autowired + private GroupExtractService groupExtractService; @Override @@ -74,6 +73,13 @@ public class FactOriginExtractServiceImpl implements FactOriginExtractService { } private void submitJob(ExtractFormDTO param) { + threadPool.submit(() -> { + try { + groupExtractService.extractGroupData(param); + } catch (Exception e) { + log.error("抽取【小组数据】发生异常,参数:" + JSON.toJSONString(param), e); + } + }); threadPool.submit(() -> { try { factOriginTopicMainDailyService.topicCleaning(param); From 37b4b4c6bba97a17fb3855e1ccfe7693eb4834c9 Mon Sep 17 00:00:00 2001 From: jianjun Date: Sun, 20 Sep 2020 21:51:09 +0800 Subject: [PATCH 23/33] =?UTF-8?q?=E7=BB=9F=E4=B8=80=E6=8A=BD=E5=8F=96?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/FactExtractOpenFeignClient.java | 30 +++ .../FactExtractOpenFeignClientFallBack.java | 184 ++++++++++++++++++ .../controller/FactOriginController.java | 4 +- .../service/FactOriginExtractTaskService.java | 23 +++ .../FactOriginExtractTaskServiceImpl.java | 30 +++ .../com/epmet/task/FactOriginExtractTask.java | 48 +++++ 6 files changed, 317 insertions(+), 2 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/FactExtractOpenFeignClient.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/FactExtractOpenFeignClientFallBack.java create mode 100644 epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/FactOriginExtractTaskService.java create mode 100644 epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/FactOriginExtractTaskServiceImpl.java create mode 100644 epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/FactOriginExtractTask.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/FactExtractOpenFeignClient.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/FactExtractOpenFeignClient.java new file mode 100644 index 0000000000..97bd66843c --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/FactExtractOpenFeignClient.java @@ -0,0 +1,30 @@ +package com.epmet.feign; + +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.feign.impl.FactExtractOpenFeignClientFallBack; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +/** + * desc: 数据抽取 对外feign client + * + * @return: + * @date: 2020/6/22 17:39 + * @author: jianjun liu + */ +@FeignClient(name = ServiceConstant.DATA_STATISTICAL_SERVER, fallback = FactExtractOpenFeignClientFallBack.class) +public interface FactExtractOpenFeignClient { + + /** + * desc: 【日】抽取业务数据到统计库 小组 话题 议题 项目 + * + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @PostMapping(value = "data/stats/factorigin/extractall") + Result extractall(@RequestBody(required = false) ExtractFormDTO formDTO); + +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/FactExtractOpenFeignClientFallBack.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/FactExtractOpenFeignClientFallBack.java new file mode 100644 index 0000000000..b5a24ce131 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/FactExtractOpenFeignClientFallBack.java @@ -0,0 +1,184 @@ +package com.epmet.feign.impl; + +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.utils.ModuleUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.StatsFormDTO; +import com.epmet.dto.group.form.GroupStatsFormDTO; +import com.epmet.dto.issue.form.IssueJobFromDTO; +import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO; +import com.epmet.feign.DataStatisticalOpenFeignClient; +import org.springframework.stereotype.Component; + +/** + * desc: + * + * @return: + * @date: 2020/6/22 9:38 + * @author: jianjun liu + * email:liujianjun@git.elinkit.com.cn + */ +@Component +public class FactExtractOpenFeignClientFallBack implements DataStatisticalOpenFeignClient { + + /** + * desc: 【日】统计文章总数及在线文章总数 包含 机关 部门 网格 + * + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @Override + public Result articleSummaryDailyStatsjob(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "articleSummaryDailyStatsjob", formDTO); + } + + /** + * desc: 定时任务 【日】统计文章总数及在线文章总数 包含 机关 部门 网格 + * + * @return: + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @Override + public Result tagUsedDailyStatsjob(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagUsedDailyStatsjob", formDTO); + } + + /** + * desc: 【月】 统计发表文章最多的分类 包含 机关 部门 网格 + * + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @Override + public Result tagUsedMonthlyStatsjob(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagUsedMonthlyStatsjob", formDTO); + } + + /** + * desc: 【季,年】 统计发表文章最多的分类 包含 机关 部门 网格 + * + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @Override + public Result tagUsedQuarterlyStatsjob(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagUsedQuarterlyStatsjob", formDTO); + } + + /** + * desc: 【日】 统计阅读最多的标签 包含 机关 网格 + * + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @Override + public Result tagViewedDailyStatsjob(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagViewedDailyStatsjob", formDTO); + } + + /** + * desc: 【月】 统计阅读最多的标签 包含 机关 网格 + * + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @Override + public Result tagViewedMonthlyStatsjob(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagViewedMonthlyStatsjob", formDTO); + } + + /** + * desc: 【季,年】 统计阅读最多的标签 包含 机关 网格 + * + * @param formDTO + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @Override + public Result tagViewedQuarterlyStatsjob(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "tagViewedQuarterlyStatsjob", formDTO); + } + + @Override + public Result groupGridDaily(GroupStatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "groupGridDaily", formDTO); + } + + @Override + public Result groupAgencyDaily(GroupStatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "groupAgencyDaily", formDTO); + } + + @Override + public Result groupAgencyMonthly(GroupStatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "groupAgencyMonthly", formDTO); + } + + @Override + public Result agencyGridIssueStats() { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "agencyGridIssueStats"); + } + + @Override + public Result agencyGridIssueStatsOfDate(IssueJobFromDTO fromDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "agencyGridIssueStatsOfDate"); + } + + /** + * @Description 数据统计-项目-机关日月统计 + * @Author sun + */ + @Override + public Result agencyProjectStats(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "agencyProjectStats", formDTO); + } + + /** + * @Description 数据统计-项目-网格日月统计 + * @Author sun + */ + @Override + public Result gridProjectStats(StatsFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "gridProjectStats", formDTO); + } + + @Override + public Result initAllDims() { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "initAllDims"); + } + + /** + * @param + * @return + * @Description 执行用户统计 + * @author wangc + * @date 2020.06.29 09:26 + **/ + @Override + public Result execUserStatistical(String date) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "execUserStatistical", date); + } + + /** + * @param + * @return + * @Description 执行话题统计 + * @author wangc + * @date 2020.06.29 09:27 + **/ + @Override + public Result execTopicStatistical(String date) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "execTopicStatistical", date); + } + + @Override + public Result getPartyInfo(CustomerIdAndDateIdFormDTO customerIdAndDateIdFormDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "getPartyInfo", customerIdAndDateIdFormDTO); + } + + @Override + public Result processPenddingCalculate() { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "processPenddingCalculate"); + } +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java index b90bdcdc28..0810df755a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java @@ -37,9 +37,9 @@ public class FactOriginController { private GroupExtractService groupExtractService; /** - * desc: + * desc:抽取业务数据到统计库 * - * @param extractFormDTO + * @param extractFormDTO 默认统计前一天 * @return */ @PostMapping("extractall") diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/FactOriginExtractTaskService.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/FactOriginExtractTaskService.java new file mode 100644 index 0000000000..59ce874166 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/FactOriginExtractTaskService.java @@ -0,0 +1,23 @@ +package com.epmet.service; + + +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.extract.form.ExtractFormDTO; + +/** + * desc: 业务数据抽取到统计库服务类 + * + * @return: + * @date: 2020/6/22 10:24 + * @author: jianjun liu + */ +public interface FactOriginExtractTaskService { + + /** + * desc: 【日】抽取 小组 话题 议题 项目数据到统计库 + * + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + Result factOriginExtractJob(ExtractFormDTO formDTO); +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/FactOriginExtractTaskServiceImpl.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/FactOriginExtractTaskServiceImpl.java new file mode 100644 index 0000000000..b9b818d305 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/FactOriginExtractTaskServiceImpl.java @@ -0,0 +1,30 @@ +package com.epmet.service.impl; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.feign.FactExtractOpenFeignClient; +import com.epmet.service.FactOriginExtractTaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * desc:数据统计 任务服务类 + */ +@Service +public class FactOriginExtractTaskServiceImpl implements FactOriginExtractTaskService { + @Autowired + private FactExtractOpenFeignClient factExtractOpenFeignClient; + + + /** + * desc: 【日】抽取 小组 话题 议题 项目数据到统计库 + * + * @param formDTO + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @Override + public Result factOriginExtractJob(ExtractFormDTO formDTO) { + return factExtractOpenFeignClient.extractall(formDTO); + } +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/FactOriginExtractTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/FactOriginExtractTask.java new file mode 100644 index 0000000000..51d4a847bc --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/FactOriginExtractTask.java @@ -0,0 +1,48 @@ +package com.epmet.task; + +import com.alibaba.fastjson.JSON; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.StatsFormDTO; +import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.service.FactOriginExtractTaskService; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * desc:数据抽取定时任务 定时任务 + */ +@Component("factOriginExtractTask") +public class FactOriginExtractTask implements ITask { + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private FactOriginExtractTaskService factOriginExtractTaskService; + + + @Override + public void run(String params) { + logger.info("FactOriginExtractTask定时任务正在执行,参数为:{}", params); + ExtractFormDTO formDTO = new ExtractFormDTO(); + if (StringUtils.isNotBlank(params)) { + formDTO = JSON.parseObject(params, ExtractFormDTO.class); + } + Result result = factOriginExtractTaskService.factOriginExtractJob(formDTO); + if (result.success()) { + logger.info("FactOriginExtractTask定时任务执行成功"); + } else { + logger.error("FactOriginExtractTask定时任务执行失败:" + result.getMsg()); + } + } + + public static void main(String[] args) { + StatsFormDTO formDTO = new StatsFormDTO(); + String params = "{'date':'\"2020-06-20','customerId':'123'}"; + if (StringUtils.isNotBlank(params)) { + formDTO = JSON.parseObject(params, StatsFormDTO.class); + } + System.out.println(JSON.toJSONString(formDTO)); + } +} From 29eac44df52c784e81462365762039b85907eea3 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Sun, 20 Sep 2020 22:27:00 +0800 Subject: [PATCH 24/33] =?UTF-8?q?=E6=B2=BB=E7=90=86=E8=83=BD=E5=8A=9B?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/project/FinishOrgDTO.java | 20 ++++ .../extract/FactOriginProjectLogDailyDao.java | 19 +++- .../FactOriginProjectMainDailyDao.java | 6 +- .../FactOriginProjectOrgPeriodDailyDao.java | 8 +- .../FactIndexGovrnAblityOrgMonthlyDao.java | 11 +++ .../epmet/dao/project/ProjectProcessDao.java | 5 +- .../com/epmet/dao/stats/DimAgencyDao.java | 10 ++ .../FactOriginProjectLogDailyService.java | 17 +++- .../FactOriginProjectMainDailyService.java | 6 +- .../FactOriginProjectLogDailyServiceImpl.java | 13 ++- ...FactOriginProjectMainDailyServiceImpl.java | 8 +- .../impl/ProjectExtractServiceImpl.java | 25 ++++- ...FactIndexGovrnAblityOrgMonthlyService.java | 22 +++++ .../indexcoll/IndexCollCommunityService.java | 16 +++- .../indexcoll/IndexCollStreetService.java | 10 ++ ...IndexGovrnAblityOrgMonthlyServiceImpl.java | 23 +++++ .../impl/IndexCollCommunityServiceImpl.java | 96 +++++++++++++++++-- .../impl/IndexCollStreetServiceImpl.java | 93 ++++++++++++++++++ .../project/ProjectProcessService.java | 11 +++ .../impl/ProjectProcessServiceImpl.java | 6 ++ .../epmet/service/stats/DimAgencyService.java | 11 +++ .../stats/impl/DimAgencyServiceImpl.java | 5 + .../extract/FactOriginProjectLogDailyDao.xml | 33 ++++++- .../extract/FactOriginProjectMainDailyDao.xml | 8 +- .../FactOriginProjectOrgPeriodDailyDao.xml | 1 + .../FactIndexGovrnAblityOrgMonthlyDao.xml | 6 ++ .../mapper/project/ProjectProcessDao.xml | 13 ++- .../resources/mapper/stats/DimAgencyDao.xml | 15 +++ 28 files changed, 480 insertions(+), 37 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/FinishOrgDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyService.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/FactIndexGovrnAblityOrgMonthlyServiceImpl.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/FinishOrgDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/FinishOrgDTO.java new file mode 100644 index 0000000000..ab5c9ef2ce --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/project/FinishOrgDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.project; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/9/20 21:08 + */ +@Data +public class FinishOrgDTO implements Serializable { + + private static final long serialVersionUID = -5684606755705833962L; + private String projectId; + private String orgIdPath; + private String pIdPath; + +} 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 293163e1d9..759a56e82c 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 @@ -40,11 +40,13 @@ public interface FactOriginProjectLogDailyDao extends BaseDao */ - List selectAgencyTransferCount(@Param("monthId") String monthId, @Param("level")String level); + List selectAgencyTransferCount(@Param("customerId") String customerId, @Param("monthId") String monthId, + @Param("level")String level); /** * @Description 查询未被退回的项目数 @@ -77,8 +79,21 @@ public interface FactOriginProjectLogDailyDao extends BaseDao + */ + List selectSatisfaction(@Param("customerId") String customerId, @Param("monthId") String monthId, + @Param("level")String level); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java index a8fef6685c..58e683ebbf 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java @@ -58,10 +58,11 @@ public interface FactOriginProjectMainDailyDao extends BaseDao */ - List selectOverdueCount(@Param("monthId") String monthId); + List selectOverdueCount(@Param("customerId") String customerId, @Param("monthId") String monthId); /** * @Description 网格办结项目数 @@ -77,8 +78,9 @@ public interface FactOriginProjectMainDailyDao extends BaseDao */ -// List selectResponsiveness(@Param("monthId") String monthId, @Param("level")String level, -// @Param("orgType")String orgType); + List selectResponsiveness(@Param("customerId") String customerId, @Param("monthId") String monthId, + @Param("level")String level, + @Param("orgType")String orgType); + void deleteByProjectId(@Param("list") List list); /** diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyDao.java index ef770f48b5..c3c85c1ffd 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyDao.java @@ -66,4 +66,15 @@ public interface FactIndexGovrnAblityOrgMonthlyDao extends BaseDao> selectCommunityGovernAbility(@Param("customerId")String customerId, @Param("monthId")String monthId,@Param("level")String level); + + /** + * 根据组织类型删除数据 + * @author zhaoqifeng + * @date 2020/9/20 20:52 + * @param customerId + * @param monthId + * @param type + * @return java.lang.Integer + */ + Integer deleteByCustomer(@Param("customerId") String customerId, @Param("monthId") String monthId, @Param("type") String type); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectProcessDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectProcessDao.java index 1c71121c1d..72beea8ca3 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectProcessDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/project/ProjectProcessDao.java @@ -18,6 +18,7 @@ package com.epmet.dao.project; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.project.FinishOrgDTO; import com.epmet.dto.project.ProcessInfoDTO; import com.epmet.dto.project.result.ProjectOrgPeriodResultDTO; import com.epmet.dto.project.result.ProjectOrgRelationWhenResponseResultDTO; @@ -109,7 +110,7 @@ public interface ProjectProcessDao extends BaseDao { * @date 2020/9/18 18:01 * @param customerId * @param date - * @return java.util.List + * @return java.util.List */ - List selectFinishOrg(@Param("customerId") String customerId, @Param("date") String date); + List selectFinishOrg(@Param("customerId") String customerId, @Param("date") String date); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimAgencyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimAgencyDao.java index 7e20babbeb..487bc79f97 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimAgencyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimAgencyDao.java @@ -135,4 +135,14 @@ public interface DimAgencyDao extends BaseDao { * @date 2020/9/15 6:15 下午 */ List selectAgencyInfo(@Param("agencyIds")List agencyIds); + + /** + * 根据级别获取组织信息 + * @author zhaoqifeng + * @date 2020/9/20 17:31 + * @param customerId + * @param level + * @return java.util.List + */ + List selectDimAgencyByLevel(@Param("customerId")String customerId, @Param("level")String level); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java index ba3b6f5239..72f840ba81 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java @@ -101,11 +101,12 @@ public interface FactOriginProjectLogDailyService extends BaseService */ - List getAgencyTransferCount(String monthId, String level); + List getAgencyTransferCount(String customerId, String monthId, String level); /** * @Description 查询未被退回的项目数 @@ -129,10 +130,11 @@ public interface FactOriginProjectLogDailyService extends BaseService selectProjectAutoNoMy(String customerId,String monthId); + + /** + * 办结项目满意度 + * @author zhaoqifeng + * @date 2020/9/20 16:43 + * @param customerId + * @param monthId + * @param level + * @return java.util.List + */ + List getSatisfaction(String customerId, String monthId, String level); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectMainDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectMainDailyService.java index 338418717b..2b8e9f629a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectMainDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectMainDailyService.java @@ -127,17 +127,19 @@ public interface FactOriginProjectMainDailyService extends BaseService */ - List getOverdueCount(String monthId); + List getOverdueCount(String customerId, String monthId); /** * 根据日期删除数据 * @author zhaoqifeng * @date 2020/9/18 17:30 + * @param customerId * @param date * @return void */ - void deleteByDate(String date); + void deleteByDate(String customerId, String date); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectLogDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectLogDailyServiceImpl.java index e23ab2e626..a62fdd38e2 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectLogDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectLogDailyServiceImpl.java @@ -102,8 +102,8 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl getAgencyTransferCount(String monthId, String level) { - return baseDao.selectAgencyTransferCount(monthId, level); + public List getAgencyTransferCount(String customerId, String monthId, String level) { + return baseDao.selectAgencyTransferCount(customerId, monthId, level); } /** @@ -131,8 +131,8 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl getSatisfaction(String customerId, String monthId, String level) { + return baseDao.selectSatisfaction(customerId, monthId, level); + } + } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectMainDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectMainDailyServiceImpl.java index 1358c2fdc4..3e42dfd1fb 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectMainDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectMainDailyServiceImpl.java @@ -109,8 +109,8 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl getOverdueCount(String monthId) { - return baseDao.selectOverdueCount(monthId); + public List getOverdueCount(String customerId, String monthId) { + return baseDao.selectOverdueCount(customerId, monthId); } /** @@ -127,8 +127,8 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl closedList = projectProcessService.getClosedProjectList(customerId, dateString); List pendingList = factOriginProjectMainDailyService.getPendingList(customerId); + List finishOrgList= projectProcessService.getFinishOrg(customerId, dateString); if (null != closedList && !closedList.isEmpty()) { List closeProjects = pendingList.stream().flatMap(pending -> closedList.stream().filter(closed -> pending.getId().equals(closed.getProjectId())).map(process -> { @@ -85,6 +87,17 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { entity.setUpdatedTime(process.getUpdatedTime()); return entity; })).collect(Collectors.toList()); + + if (null != finishOrgList && !finishOrgList.isEmpty()) { + closeProjects.forEach(close -> finishOrgList.stream().filter(finish -> close.getId().equals(finish.getProjectId())).forEach(dto -> { + String[] orgIds = dto.getPIdPath().split(":"); + if (orgIds.length > NumConstant.ONE) { + close.setFinishOrgIds(orgIds[orgIds.length - 1]); + } else { + close.setFinishOrgIds(orgIds[0]); + } + })); + } //更新状态 if (!closeProjects.isEmpty()) { factOriginProjectMainDailyService.updateBatchById(closeProjects); @@ -141,9 +154,17 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { list.forEach(entity -> partyMemberList.stream().filter(partyMemberDTO -> partyMemberDTO.getGridId().equals(entity.getGridId()) && partyMemberDTO.getUserId().equals(entity.getTopicCreatorId())).forEach(partyMember -> { entity.setIsParty(NumConstant.ONE_STR); })); + list.forEach(entity -> finishOrgList.stream().filter(finish -> entity.getId().equals(finish.getProjectId())).forEach(dto -> { + String[] orgIds = dto.getPIdPath().split(":"); + if (orgIds.length > NumConstant.ONE) { + entity.setFinishOrgIds(orgIds[orgIds.length - 1]); + } else { + entity.setFinishOrgIds(orgIds[0]); + } + })); //插入数据 if (!list.isEmpty()) { - factOriginProjectMainDailyService.deleteByDate(dateString); + factOriginProjectMainDailyService.deleteByDate(customerId, dateString); factOriginProjectMainDailyService.insertBatch(list); } } @@ -222,7 +243,7 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { }).collect(Collectors.toList())); if (!logList.isEmpty()) { - factOriginProjectLogDailyService.deleteByDate(dateString); + factOriginProjectLogDailyService.deleteByDate(customerId, dateString); factOriginProjectLogDailyService.insertBatch(logList); } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyService.java new file mode 100644 index 0000000000..c2e3b3a179 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyService.java @@ -0,0 +1,22 @@ +package com.epmet.service.evaluationindex.indexcoll; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.entity.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyEntity; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/9/20 20:29 + */ +public interface FactIndexGovrnAblityOrgMonthlyService extends BaseService { + /** + * 根据客户清空数据 + * @author zhaoqifeng + * @date 2020/9/20 20:33 + * @param customerId + * @param monthId + * @param type + * @return void + */ + void deleteByCustomer(String customerId, String monthId, String type); +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollCommunityService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollCommunityService.java index 26e46a623f..40fd419333 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollCommunityService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollCommunityService.java @@ -12,8 +12,20 @@ public interface IndexCollCommunityService { * * @author zhaoqifeng * @date 2020/9/18 13:52 - * @param + * @param customerId + * @param dateId * @return void */ - void saveCommunityAbility(); + void saveCommunityAbility(String customerId, String dateId); + + /** + * 社区党建能力统计 + * + * @author zhaoqifeng + * @date 2020/9/18 13:52 + * @param customerId + * @param dateId + * @return void + */ + void saveCommunityPartyAbility(String customerId, String dateId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollStreetService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollStreetService.java index 2266a52369..a38bff296d 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollStreetService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollStreetService.java @@ -7,4 +7,14 @@ package com.epmet.service.evaluationindex.indexcoll; * @date 2020/9/18 10:35 */ public interface IndexCollStreetService { + /** + * 街道治理能力统计 + * + * @author zhaoqifeng + * @date 2020/9/18 13:52 + * @param customerId + * @param dateId + * @return void + */ + void saveStreetAbility(String customerId, String dateId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/FactIndexGovrnAblityOrgMonthlyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/FactIndexGovrnAblityOrgMonthlyServiceImpl.java new file mode 100644 index 0000000000..a1665b836c --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/FactIndexGovrnAblityOrgMonthlyServiceImpl.java @@ -0,0 +1,23 @@ +package com.epmet.service.evaluationindex.indexcoll.impl; + +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.constant.DataSourceConstant; +import com.epmet.dao.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyDao; +import com.epmet.entity.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyEntity; +import com.epmet.service.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyService; +import org.springframework.stereotype.Service; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/9/20 20:29 + */ +@Service +@DataSource(DataSourceConstant.EVALUATION_INDEX) +public class FactIndexGovrnAblityOrgMonthlyServiceImpl extends BaseServiceImpl implements FactIndexGovrnAblityOrgMonthlyService { + @Override + public void deleteByCustomer(String customerId, String monthId, String type) { + baseDao.deleteByCustomer(customerId, monthId, type); + } +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollCommunityServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollCommunityServiceImpl.java index 4fcf0bcaff..73e99caaa0 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollCommunityServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollCommunityServiceImpl.java @@ -1,21 +1,30 @@ package com.epmet.service.evaluationindex.indexcoll.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.constant.DataSourceConstant; +import com.epmet.constant.OrgTypeConstant; import com.epmet.dao.evaluationindex.extract.FactOriginProjectOrgPeriodDailyDao; import com.epmet.dao.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyDao; import com.epmet.dto.extract.result.OrgStatisticsResultDTO; +import com.epmet.dto.stats.DimAgencyDTO; +import com.epmet.entity.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyEntity; import com.epmet.service.evaluationindex.extract.FactOriginProjectLogDailyService; import com.epmet.service.evaluationindex.extract.FactOriginProjectMainDailyService; +import com.epmet.service.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyService; import com.epmet.service.evaluationindex.indexcoll.IndexCollCommunityService; +import com.epmet.service.stats.DimAgencyService; import com.epmet.util.DimIdGenerator; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * @author zhaoqifeng @@ -27,7 +36,9 @@ import java.util.List; @DataSource(DataSourceConstant.EVALUATION_INDEX) public class IndexCollCommunityServiceImpl implements IndexCollCommunityService { @Autowired - private FactIndexGovrnAblityOrgMonthlyDao factIndexGovrnAblityOrgMonthlyDao; + private DimAgencyService dimAgencyService; + @Autowired + private FactIndexGovrnAblityOrgMonthlyService factIndexGovrnAblityOrgMonthlyService; @Autowired private FactOriginProjectLogDailyService factOriginProjectLogDailyService; @Autowired @@ -36,19 +47,90 @@ public class IndexCollCommunityServiceImpl implements IndexCollCommunityService private FactOriginProjectMainDailyService factOriginProjectMainDailyService; @Override - public void saveCommunityAbility() { + public void saveCommunityAbility(String customerId, String dateId) { //当前日期前一天 - Date date = DateUtils.getBeforeDay(new Date()); + Date date = DateUtils.getBeforeDay(DateUtils.stringToDate(dateId, DateUtils.DATE_PATTERN_YYYYMMDD)); //获取日期相关维度 DimIdGenerator.DimIdBean dimId = DimIdGenerator.getDimIdBean(date); + //获取社区列表 + ListagencyList = dimAgencyService.getAgencyByLevel(customerId, OrgTypeConstant.COMMUNITY); + //社区数据初始化 + List list = agencyList.stream().map(agency ->{ + FactIndexGovrnAblityOrgMonthlyEntity entity = new FactIndexGovrnAblityOrgMonthlyEntity(); + entity.setCustomerId(customerId); + entity.setAgencyId(agency.getId()); + entity.setParentId(agency.getPid()); + entity.setYearId(dimId.getYearId()); + entity.setQuarterId(dimId.getQuarterId()); + entity.setMonthId(dimId.getMonthId()); + entity.setDataType(OrgTypeConstant.COMMUNITY); + entity.setTransferedCount(NumConstant.ZERO); + entity.setClosedProjectCount(NumConstant.ZERO); + entity.setRespProjectRatio(new BigDecimal(NumConstant.ZERO)); + entity.setOverdueProjectRatio(new BigDecimal(NumConstant.ZERO)); + entity.setClosedProjectRatio(new BigDecimal(NumConstant.ZERO)); + entity.setSatisfactionRatio(new BigDecimal(NumConstant.ZERO)); + entity.setHandleProjectRatio(new BigDecimal(NumConstant.ZERO)); + return entity; + }).collect(Collectors.toList()); + //被吹哨次数统计 - List transferCount = factOriginProjectLogDailyService.getAgencyTransferCount(dimId.getMonthId(), "community"); + List transferCount = factOriginProjectLogDailyService.getAgencyTransferCount(customerId, dimId.getMonthId(), + OrgTypeConstant.COMMUNITY); + if (null != transferCount && !transferCount.isEmpty()) { + list.forEach(entity -> transferCount.stream().filter(dto -> dto.getAgencyId().equals(entity.getAgencyId())).forEach(count -> { + entity.setTransferedCount(count.getCount()); + })); + } + //社区项目响应度 -// List responsiveness = factOriginProjectOrgPeriodDailyDao.selectResponsiveness(dimId.getMonthId(), "community", -// "agency"); + List responsiveness = factOriginProjectOrgPeriodDailyDao.selectResponsiveness(customerId, dimId.getMonthId(), + OrgTypeConstant.COMMUNITY, OrgTypeConstant.AGENCY); + if (null != responsiveness && !responsiveness.isEmpty()) { + list.forEach(entity -> responsiveness.stream().filter(dto -> dto.getAgencyId().equals(entity.getAgencyId())).forEach(response -> { + if (response.getCount() != NumConstant.ZERO) { + BigDecimal count = new BigDecimal(response.getCount()); + BigDecimal sum = new BigDecimal(response.getSum()); + entity.setRespProjectRatio(sum.divide(count, NumConstant.SIX, RoundingMode.HALF_UP)); + } + })); + } + //社区超期项目率 - List overdueCount = factOriginProjectMainDailyService.getOverdueCount(dimId.getMonthId()); + List overdueCount = factOriginProjectMainDailyService.getOverdueCount(customerId, dimId.getMonthId()); + if (null != overdueCount && !overdueCount.isEmpty()) { + list.forEach(entity -> overdueCount.stream().filter(dto -> dto.getAgencyId().equals(entity.getAgencyId())).forEach(overdue -> { + if (overdue.getSum() != NumConstant.ZERO) { + BigDecimal count = new BigDecimal(overdue.getCount()); + BigDecimal sum = new BigDecimal(overdue.getSum()); + entity.setOverdueProjectRatio(count.divide(sum, NumConstant.SIX, RoundingMode.HALF_UP)); + } + })); + } + //社区办结项目满意度 + List satisfaction = factOriginProjectLogDailyService.getSatisfaction(customerId, dimId.getMonthId(), OrgTypeConstant.COMMUNITY); + if (null != satisfaction && !satisfaction.isEmpty()) { + list.forEach(entity -> satisfaction.stream().filter(dto -> dto.getAgencyId().equals(entity.getAgencyId())).forEach(sa -> { + if (sa.getCount() != NumConstant.ZERO) { + BigDecimal count = new BigDecimal(sa.getCount()); + BigDecimal sum = new BigDecimal(sa.getSum()); + entity.setOverdueProjectRatio(sum.divide(count, NumConstant.SIX, RoundingMode.HALF_UP)); + } + })); + } + factIndexGovrnAblityOrgMonthlyService.deleteByCustomer(customerId, dimId.getMonthId(), OrgTypeConstant.COMMUNITY); + factIndexGovrnAblityOrgMonthlyService.insertBatch(list); + } + @Override + public void saveCommunityPartyAbility(String customerId, String dateId) { + //当前日期前一天 + Date date = DateUtils.getBeforeDay(DateUtils.stringToDate(dateId, DateUtils.DATE_PATTERN_YYYYMMDD)); + //获取日期相关维度 + DimIdGenerator.DimIdBean dimId = DimIdGenerator.getDimIdBean(date); + //获取社区列表 + ListagencyList = dimAgencyService.getAgencyByLevel(customerId, OrgTypeConstant.COMMUNITY); + //获取社区发文数量 } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollStreetServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollStreetServiceImpl.java index 09ceaf6188..8f32d7507a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollStreetServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollStreetServiceImpl.java @@ -1,11 +1,30 @@ package com.epmet.service.evaluationindex.indexcoll.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.utils.DateUtils; import com.epmet.constant.DataSourceConstant; +import com.epmet.constant.OrgTypeConstant; +import com.epmet.dao.evaluationindex.extract.FactOriginProjectOrgPeriodDailyDao; +import com.epmet.dto.extract.result.OrgStatisticsResultDTO; +import com.epmet.dto.stats.DimAgencyDTO; +import com.epmet.entity.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyEntity; +import com.epmet.service.evaluationindex.extract.FactOriginProjectLogDailyService; +import com.epmet.service.evaluationindex.extract.FactOriginProjectMainDailyService; +import com.epmet.service.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyService; import com.epmet.service.evaluationindex.indexcoll.IndexCollStreetService; +import com.epmet.service.stats.DimAgencyService; +import com.epmet.util.DimIdGenerator; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + /** * @author zhaoqifeng * @dscription @@ -15,4 +34,78 @@ import org.springframework.stereotype.Service; @Slf4j @DataSource(DataSourceConstant.EVALUATION_INDEX) public class IndexCollStreetServiceImpl implements IndexCollStreetService { + @Autowired + private DimAgencyService dimAgencyService; + @Autowired + private FactIndexGovrnAblityOrgMonthlyService factIndexGovrnAblityOrgMonthlyService; + @Autowired + private FactOriginProjectLogDailyService factOriginProjectLogDailyService; + @Autowired + private FactOriginProjectOrgPeriodDailyDao factOriginProjectOrgPeriodDailyDao; + @Autowired + private FactOriginProjectMainDailyService factOriginProjectMainDailyService; + @Override + public void saveStreetAbility(String customerId, String dateId) { + //当前日期前一天 + Date date = DateUtils.getBeforeDay(DateUtils.stringToDate(dateId, DateUtils.DATE_PATTERN_YYYYMMDD)); + //获取日期相关维度 + DimIdGenerator.DimIdBean dimId = DimIdGenerator.getDimIdBean(date); + //获取社区列表 + ListagencyList = dimAgencyService.getAgencyByLevel(customerId, OrgTypeConstant.STREET); + //社区数据初始化 + List list = agencyList.stream().map(agency ->{ + FactIndexGovrnAblityOrgMonthlyEntity entity = new FactIndexGovrnAblityOrgMonthlyEntity(); + entity.setCustomerId(customerId); + entity.setAgencyId(agency.getId()); + entity.setParentId(agency.getPid()); + entity.setYearId(dimId.getYearId()); + entity.setQuarterId(dimId.getQuarterId()); + entity.setMonthId(dimId.getMonthId()); + entity.setDataType(OrgTypeConstant.STREET); + entity.setTransferedCount(NumConstant.ZERO); + entity.setClosedProjectCount(NumConstant.ZERO); + entity.setRespProjectRatio(new BigDecimal(NumConstant.ZERO)); + entity.setOverdueProjectRatio(new BigDecimal(NumConstant.ZERO)); + entity.setClosedProjectRatio(new BigDecimal(NumConstant.ZERO)); + entity.setSatisfactionRatio(new BigDecimal(NumConstant.ZERO)); + entity.setHandleProjectRatio(new BigDecimal(NumConstant.ZERO)); + return entity; + }).collect(Collectors.toList()); + + //被吹哨次数统计 + List transferCount = factOriginProjectLogDailyService.getAgencyTransferCount(customerId, dimId.getMonthId(), + OrgTypeConstant.STREET); + if (null != transferCount && !transferCount.isEmpty()) { + list.forEach(entity -> transferCount.stream().filter(dto -> dto.getAgencyId().equals(entity.getAgencyId())).forEach(count -> { + entity.setTransferedCount(count.getCount()); + })); + } + + //社区项目响应度 + List responsiveness = factOriginProjectOrgPeriodDailyDao.selectResponsiveness(customerId, dimId.getMonthId(), + OrgTypeConstant.STREET, OrgTypeConstant.AGENCY); + if (null != responsiveness && !responsiveness.isEmpty()) { + list.forEach(entity -> responsiveness.stream().filter(dto -> dto.getAgencyId().equals(entity.getAgencyId())).forEach(response -> { + if (response.getCount() != NumConstant.ZERO) { + BigDecimal count = new BigDecimal(response.getCount()); + BigDecimal sum = new BigDecimal(response.getSum()); + entity.setRespProjectRatio(sum.divide(count, NumConstant.SIX, RoundingMode.HALF_UP)); + } + })); + } + + //社区办结项目满意度 + List satisfaction = factOriginProjectLogDailyService.getSatisfaction(customerId, dimId.getMonthId(), OrgTypeConstant.STREET); + if (null != satisfaction && !satisfaction.isEmpty()) { + list.forEach(entity -> satisfaction.stream().filter(dto -> dto.getAgencyId().equals(entity.getAgencyId())).forEach(sa -> { + if (sa.getCount() != NumConstant.ZERO) { + BigDecimal count = new BigDecimal(sa.getCount()); + BigDecimal sum = new BigDecimal(sa.getSum()); + entity.setOverdueProjectRatio(sum.divide(count, NumConstant.SIX, RoundingMode.HALF_UP)); + } + })); + } + factIndexGovrnAblityOrgMonthlyService.deleteByCustomer(customerId, dimId.getMonthId(), OrgTypeConstant.STREET); + factIndexGovrnAblityOrgMonthlyService.insertBatch(list); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectProcessService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectProcessService.java index 42def9affd..b6b0f70269 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectProcessService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/ProjectProcessService.java @@ -18,6 +18,7 @@ package com.epmet.service.project; import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.dto.project.FinishOrgDTO; import com.epmet.dto.project.ProcessInfoDTO; import com.epmet.dto.project.result.ProjectOrgPeriodResultDTO; import com.epmet.entity.project.ProjectEntity; @@ -90,4 +91,14 @@ public interface ProjectProcessService extends BaseService * @date 2020.09.18 13:38 **/ List getProjectPeriod(Boolean isFirst,String customerId,String date); + + /** + * 获取办结组织 + * @author zhaoqifeng + * @date 2020/9/20 21:11 + * @param customerId + * @param date + * @return java.util.List + */ + List getFinishOrg(String customerId, String date); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java index fdf84a48e5..6d4f47d76c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java @@ -23,6 +23,7 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.project.ProjectProcessDao; import com.epmet.dto.form.CommonStaffIdFormDTO; +import com.epmet.dto.project.FinishOrgDTO; import com.epmet.dto.project.ProcessInfoDTO; import com.epmet.dto.project.result.ProjectOrgPeriodResultDTO; import com.epmet.dto.project.result.ProjectOrgRelationWhenResponseResultDTO; @@ -117,6 +118,11 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl(); } + @Override + public List getFinishOrg(String customerId, String date) { + return baseDao.selectFinishOrg(customerId, date); + } + /** * @Description 跨级分组 eg -> transfer ; response response transfer ; return ; response close. * @param dest - Map> 需要填充的数据 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimAgencyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimAgencyService.java index aad2cae314..e22b42c609 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimAgencyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimAgencyService.java @@ -25,6 +25,7 @@ import com.epmet.dto.stats.DimAgencyDTO; import com.epmet.entity.org.CustomerAgencyEntity; import com.epmet.entity.stats.DimAgencyEntity; +import javax.xml.soap.SAAJResult; import java.util.Date; import java.util.List; import java.util.Map; @@ -176,4 +177,14 @@ public interface DimAgencyService extends BaseService { DimAgencyEntity getLatestCreatedAgencyDimEntity(); DimAgencyEntity getLatestUpdatedAgencyDimEntity(); + + /** + * 根据级别获取组织信息 + * @author zhaoqifeng + * @date 2020/9/20 17:29 + * @param customerId + * @param level + * @return java.util.List + */ + List getAgencyByLevel(String customerId, String level); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimAgencyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimAgencyServiceImpl.java index ee4c56db29..f0f530fa4f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimAgencyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimAgencyServiceImpl.java @@ -276,4 +276,9 @@ public class DimAgencyServiceImpl extends BaseServiceImpl getAgencyByLevel(String customerId, String level) { + return baseDao.selectDimAgencyByLevel(customerId, level); + } + } \ No newline at end of file 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 cfb6ff85b7..6047bc9726 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 @@ -5,8 +5,9 @@ DELETE FROM fact_origin_project_log_daily + WHERE + CUSTOMER_ID = #{customerId} - WHERE DATE_ID = #{date} @@ -24,6 +25,7 @@ fopld.IS_ACTIVE = 0 AND fopld.ACTION_CODE = 'transfer' AND fopld.MONTH_ID = #{monthId} + AND fopld.CUSTOMER_ID = #{customerId} GROUP BY fopld.CUSTOMER_ID, fopld.AGENCY_ID @@ -84,5 +86,34 @@ OR l.ACTION_CODE = 'unresolved' OR l.ACTION_CODE = 'created') + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml index 81472beb65..7dee1c7ccf 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml @@ -61,8 +61,9 @@ INNER JOIN dim_agency da ON f.AGENCY_ID = da.ID AND da.`LEVEL` = 'community' WHERE - f.IS_OVERDUE = 0 + f.PROJECT_STATUS = 'closed' AND f.MONTH_ID = #{monthId} + AND f.CUSTOMER_ID = #{customerId} GROUP BY f.CUSTOMER_ID, f.AGENCY_ID @@ -78,7 +79,9 @@ AND da.`LEVEL` = 'community' WHERE f.IS_OVERDUE = 1 + AND f.PROJECT_STATUS = 'closed' AND f.MONTH_ID = #{monthId} + AND f.CUSTOMER_ID = #{customerId} GROUP BY f.CUSTOMER_ID, f.AGENCY_ID @@ -102,8 +105,9 @@ DELETE FROM fact_origin_project_main_daily + WHERE + CUSTOMER_ID = #{customerId} - WHERE DATE_ID = #{date} 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 a642ff1f56..20f45783a4 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 @@ -58,6 +58,7 @@ f.ORG_TYPE = #{orgType} AND DATE_FORMAT(INFORMED_DATE, '%Y%m') = #{monthId} AND PERIOD_TILL_REPLY_FIRSTLY != 0 + AND f.CUSTOMER_ID = #{customerId} GROUP BY f.CUSTOMER_ID, f.ORG_ID diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyDao.xml index eb9a582759..4644c01b11 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexGovrnAblityOrgMonthlyDao.xml @@ -33,6 +33,12 @@ AND MONTH_ID = #{monthId} limit 1000; + + delete from fact_index_govrn_ablity_org_monthly + where CUSTOMER_ID = #{customerId} + AND MONTH_ID = #{monthId} + AND DATA_TYPE = #{type} + insert into fact_index_govrn_ablity_org_monthly diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml index be19516363..48bf09f1c2 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/project/ProjectProcessDao.xml @@ -144,11 +144,11 @@ ) ORDER BY process.STAFF_ID , process.CREATED_TIME ASC - SELECT a.PROJECT_ID, a.ORG_ID_PATH, - b.ORG_ID_PATH + b.ORG_ID_PATH AS pIdPath FROM ( SELECT @@ -161,12 +161,19 @@ AND pp.PROJECT_ID = ps.PROJECT_ID AND ps.IS_HANDLE = 'handle' AND pp.CREATED_TIME = ps.UPDATED_TIME + AND ps.CUSTOMER_ID = #{customerId} WHERE pp.OPERATION = 'close' + + AND pp.CREATED_TIME = #{date} + + ) a LEFT JOIN ( SELECT PROJECT_ID, ORG_ID_PATH, MIN( LENGTH( ORG_ID_PATH )) - FROM project_staff GROUP BY PROJECT_ID + FROM project_staff + WHERE CUSTOMER_ID = #{customerId} + GROUP BY PROJECT_ID ) b ON a.PROJECT_ID = b.PROJECT_ID \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimAgencyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimAgencyDao.xml index 357265ee82..58dbc205d9 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimAgencyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimAgencyDao.xml @@ -315,5 +315,20 @@ ) + \ No newline at end of file From d92ba7db0b2c6973ca5e09f95438950fc92f6600 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Sun, 20 Sep 2020 23:03:50 +0800 Subject: [PATCH 25/33] =?UTF-8?q?=E5=85=9A=E5=91=98=E7=9B=B8=E5=85=B3-?= =?UTF-8?q?=E5=85=9A=E5=BB=BA=E8=83=BD=E5=8A=9B=E8=AE=A1=E7=AE=97V0.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/FactOriginGroupMainDailyDao.java | 18 ++ .../extract/FactOriginIssueLogDailyDao.java | 10 + .../extract/FactOriginIssueMainDailyDao.java | 19 +- .../FactOriginProjectMainDailyDao.java | 22 ++ .../extract/FactOriginTopicLogDailyDao.java | 20 ++ .../FactOriginProjectMainDailyService.java | 21 ++ .../FactOriginTopicLogDailyService.java | 20 ++ .../extract/IssueExtractService.java | 30 ++- .../extract/impl/CalCpcIndexServiceImpl.java | 245 +++++++++++++++--- ...FactOriginProjectMainDailyServiceImpl.java | 37 +++ .../FactOriginTopicLogDailyServiceImpl.java | 32 +++ .../FactOriginTopicMainDailyServiceImpl.java | 1 + .../extract/impl/IssueExtractServiceImpl.java | 44 +++- .../extract/FactOriginGroupMainDailyDao.xml | 23 ++ .../extract/FactOriginIssueLogDailyDao.xml | 16 ++ .../extract/FactOriginIssueMainDailyDao.xml | 42 +-- .../extract/FactOriginProjectMainDailyDao.xml | 31 +++ .../extract/FactOriginTopicLogDailyDao.xml | 28 ++ 18 files changed, 578 insertions(+), 81 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java index ff1c16d1ec..f492bb1462 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java @@ -43,4 +43,22 @@ public interface FactOriginGroupMainDailyDao extends BaseDao selectPartyCreateGroupCount(@Param("customerId") String customerId,@Param("monthId") String monthId); + /** + * @param customerId + * @param groupOwnerId + * @return java.util.List + * @author yinzuomei + * @description 查询当前用户建的所有群id + * @Date 2020/9/20 21:22 + **/ + List selectGroupIds(@Param("customerId") String customerId, @Param("groupOwnerId") String groupOwnerId); + + /** + * @return java.util.List + * @param groupIdList + * @author yinzuomei + * @description 查询组成员数(去重) + * @Date 2020/9/20 21:29 + **/ + List selectGroupMemberList(@Param("list") List groupIdList); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueLogDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueLogDailyDao.java index a98372928e..b7d86e4353 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueLogDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueLogDailyDao.java @@ -51,4 +51,14 @@ public interface FactOriginIssueLogDailyDao extends BaseDao> selectShiftIssueCount(@Param("customerId") String customerId,@Param("monthId") String monthId); - /** - * @return java.util.List> - * @param customerId - * @param monthId - * @author yinzuomei - * @description 党员提出的议题转项目数 - * @Date 2020/9/18 14:11 - **/ - List> selectShiftProjectCount(@Param("customerId") String customerId,@Param("monthId") String monthId); - /** * @Description 查询网格 党员/群众 人均提出的议题转项目数 * @param customerId @@ -102,4 +92,13 @@ public interface FactOriginIssueMainDailyDao extends BaseDao selectShiftProjectCountPlus(@Param("customerId") String customerId,@Param("monthId") String monthId,@Param("isParty") Integer isParty); + + /** + * @return java.lang.Integer + * @param topicIdList + * @author yinzuomei + * @description 查询本周期和上周期内,自建群内话题转为议题的数量的总和 + * @Date 2020/9/20 22:54 + **/ + Integer selectIssueTotalTwoMonth(@Param("list") List topicIdList); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java index a8fef6685c..db30525d58 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java @@ -26,6 +26,7 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** * 项目主表_日统计 @@ -81,4 +82,25 @@ public interface FactOriginProjectMainDailyDao extends BaseDao> + * @param customerId + * @param monthId + * @author yinzuomei + * @description 党员提出的议题转项目数 + * @Date 2020/9/18 14:11 + **/ + List> selectShiftProjectCount(@Param("customerId") String customerId, @Param("monthId") String monthId); + + /** + * @return java.lang.Integer + * @param customerId + * @param monthId + * @param topicIdList + * @author yinzuomei + * @description 9、自建群活跃度——议题转项目率 用 + * @Date 2020/9/20 22:27 + **/ + Integer selectCountByPartyUser(@Param("customerId") String customerId, @Param("monthId")String monthId, @Param("list")List topicIdList); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicLogDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicLogDailyDao.java index 2694c66397..ab43a21b2e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicLogDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicLogDailyDao.java @@ -73,4 +73,24 @@ public interface FactOriginTopicLogDailyDao extends BaseDao> selectGroupTopicCount(@Param("customerId") String customerId, @Param("monthId") String monthId); + + /** + * @return java.lang.Integer + * @param userId + * @param customerId + * @param monthId + * @author yinzuomei + * @description 查询当前用户在本月内评论的次数 + * @Date 2020/9/20 21:46 + **/ + Integer selectUserCommentCount(@Param("userId") String userId, @Param("customerId") String customerId, @Param("monthId") String monthId); + + /** + * @return java.util.List + * @param groupIdList + * @author yinzuomei + * @description 组内的所有话题id + * @Date 2020/9/20 22:18 + **/ + List selectTopicIds(@Param("list") List groupIdList); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectMainDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectMainDailyService.java index 338418717b..a21fb1c1a2 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectMainDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectMainDailyService.java @@ -140,4 +140,25 @@ public interface FactOriginProjectMainDailyService extends BaseService> + * @param customerId + * @param monthId + * @author yinzuomei + * @description 党员提出的议题转项目数 + * @Date 2020/9/18 14:11 + **/ + List> selectShiftProjectCount(String customerId, String monthId); + + /** + * @return java.lang.Integer + * @param customerId + * @param monthId + * @param topicIdList + * @author yinzuomei + * @description 9、自建群活跃度——议题转项目率 用 + * @Date 2020/9/20 22:25 + **/ + Integer selectCountByPartyUser(String customerId, String monthId, List topicIdList); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicLogDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicLogDailyService.java index 18971cf15a..f5eb32bd09 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicLogDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicLogDailyService.java @@ -51,4 +51,24 @@ public interface FactOriginTopicLogDailyService extends BaseService> selectGroupTopicCount(String customerId, String monthId); + + /** + * @return int + * @param userId + * @param customerId + * @param monthId + * @author yinzuomei + * @description + * @Date 2020/9/20 21:43 + **/ + Integer selectUserCommentCount(String userId,String customerId, String monthId ); + + /** + * @return java.util.List + * @param groupIdList + * @author yinzuomei + * @description 组内的所有话题id + * @Date 2020/9/20 22:17 + **/ + List selectTopicIds(List groupIdList); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java index 55cf8cd348..0b7ec04c48 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java @@ -61,16 +61,6 @@ public interface IssueExtractService { **/ List> selectShiftIssueCount(String customerId, String monthId); - /** - * @return java.util.List> - * @param customerId - * @param monthId - * @author yinzuomei - * @description 党员提出的议题转项目数 - * @Date 2020/9/18 14:11 - **/ - List> selectShiftProjectCount(String customerId, String monthId); - /** * @Description 查询网格 党员/群众 人均提出的议题转项目数 * @param customerId @@ -80,4 +70,24 @@ public interface IssueExtractService { * @date 2020/9/19 2:26 下午 */ List selectShiftProjectCountPlus(String customerId, String monthId,Integer isParty); + + /** + * @return java.lang.Integer + * @param userId 用户id + * @param customerId + * @param monthId + * @author yinzuomei + * @description 查询用户在这个月内表决的总次数 + * @Date 2020/9/20 21:50 + **/ + Integer selectCountUserVote(String userId, String customerId, String monthId); + + /** + * @return java.lang.Integer + * @param topicIdList + * @author yinzuomei + * @description + * @Date 2020/9/20 22:50 + **/ + Integer selectIssueTotalTwoMonth(List topicIdList); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalCpcIndexServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalCpcIndexServiceImpl.java index 8559025963..d7cf968388 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalCpcIndexServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalCpcIndexServiceImpl.java @@ -4,18 +4,20 @@ import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.constant.DataSourceConstant; import com.epmet.constant.IndexCalConstant; +import com.epmet.dao.evaluationindex.extract.FactOriginGroupMainDailyDao; import com.epmet.dao.evaluationindex.indexcoll.FactIndexPartyAblityCpcMonthlyDao; import com.epmet.entity.evaluationindex.indexcoll.FactIndexPartyAblityCpcMonthlyEntity; -import com.epmet.service.evaluationindex.extract.CalCpcIndexService; -import com.epmet.service.evaluationindex.extract.FactOriginTopicLogDailyService; -import com.epmet.service.evaluationindex.extract.FactOriginTopicMainDailyService; -import com.epmet.service.evaluationindex.extract.IssueExtractService; +import com.epmet.service.evaluationindex.extract.*; import com.epmet.service.stats.DimCustomerPartymemberService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.ListUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.text.NumberFormat; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -39,6 +41,10 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { private FactOriginTopicLogDailyService factOriginTopicLogDailyService; @Autowired private IssueExtractService issueExtractService; + @Autowired + private FactOriginProjectMainDailyService factOriginProjectMainDailyService; + @Autowired + private FactOriginGroupMainDailyDao factOriginGroupMainDailyDao; /** * @param customerId 客户id @@ -52,20 +58,35 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { public void calCpcPartyAbility(String customerId, String monthId) { //1、构造初始值 List indexPartyAblityCpcList = dimCustomerPartymemberService.selectPartyMemberList(customerId); + if (CollectionUtils.isEmpty(indexPartyAblityCpcList)) { + log.info("dim_customer_partymember do not any records"); + return; + } //2、删除之前统计过的 deleteFactIndexPartyAblityCpcMonthly(customerId, monthId); + + //1、党员提出话题数 Map createTopicCountMap = calCreateTopicCount(customerId, monthId); //2、党员参与话题数(支持、反对、评论、浏览)---目前只统计 党员评论话题次数之和 - Map joinTopicCountMap=calJoinTopicCount(customerId,monthId); + Map joinTopicCountMap = calJoinTopicCount(customerId, monthId); //3、党员提出的话题转议题数 - Map shiftIssueCountMap=calShiftIssueCount(customerId,monthId); + Map shiftIssueCountMap = calShiftIssueCount(customerId, monthId); //4、党员提出的议题转项目数 - Map shiftProjectCountMap=calShiftProjectCount(customerId,monthId); - //6、党员自建群群众人数 - Map groupUserCountMap=calgroupUserCount(customerId,monthId); - //8、党员自建群活跃度——话题数 - Map groupTopicCountMap=calGroupTopicCountMap(customerId,monthId); + Map shiftProjectCountMap = calShiftProjectCount(customerId, monthId); + //5、参加“三会一课”次数 默认0 + + //可以先查询出每个党员的 自建群 + Map> userCreatedGroups = queryUserCreatedGroups(customerId, indexPartyAblityCpcList); + //6、党员自建群群众人数 (todo 和monthId无关??) + Map groupUserCountMap = calgroupUserCount(customerId, monthId, indexPartyAblityCpcList, userCreatedGroups); + //7、党员自建群活跃群众人数 + Map groupActiveUserCountMap = calGroupActiveUserCount(customerId, monthId, indexPartyAblityCpcList, userCreatedGroups); + //8、党员自建群活跃度——话题数 (todo 校验sql正确性) + Map groupTopicCountMap = calGroupTopicCount(customerId, monthId); + //9、自建群活跃度——议题转项目率 + Map topicToIssueRatioMap = caltopicToIssueRatio(customerId, monthId, indexPartyAblityCpcList, userCreatedGroups); + //3、计算实际值,更新 for (FactIndexPartyAblityCpcMonthlyEntity indexPartyAblityCpcEntity : indexPartyAblityCpcList) { //1、党员提出话题数 @@ -73,32 +94,36 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { indexPartyAblityCpcEntity.setCreateTopicCount(createTopicCountMap.get(indexPartyAblityCpcEntity.getUserId())); } //2、党员参与话题数(支持、反对、评论、浏览)---目前只统计 党员评论话题次数之和 - if(joinTopicCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())){ + if (joinTopicCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())) { indexPartyAblityCpcEntity.setJoinTopicCount(joinTopicCountMap.get(indexPartyAblityCpcEntity.getUserId())); } //3、党员提出的话题转议题数 - if(shiftIssueCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())){ + if (shiftIssueCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())) { indexPartyAblityCpcEntity.setShiftIssueCount(shiftIssueCountMap.get(indexPartyAblityCpcEntity.getUserId())); } //4、党员提出的议题转项目数 - if(shiftProjectCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())){ + if (shiftProjectCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())) { indexPartyAblityCpcEntity.setShiftProjectCount(shiftProjectCountMap.get(indexPartyAblityCpcEntity.getUserId())); } //5、参加“三会一课”次数 目前没有此业务,默认0 - //6、党员自建群群众人数 TODO - if(groupUserCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())){ + //6、党员自建群群众人数 + if (groupUserCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())) { indexPartyAblityCpcEntity.setGroupUserCount(groupUserCountMap.get(indexPartyAblityCpcEntity.getUserId())); } - //7、党员自建群活跃群众人数 TODO + //7、党员自建群活跃群众人数 + if (groupActiveUserCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())) { + indexPartyAblityCpcEntity.setGroupActiveUserCount(groupActiveUserCountMap.get(indexPartyAblityCpcEntity.getUserId())); + } //8、党员自建群活跃度——话题数 - if(groupTopicCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())){ + if (groupTopicCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())) { indexPartyAblityCpcEntity.setGroupTopicCount(groupTopicCountMap.get(indexPartyAblityCpcEntity.getUserId())); } - //9、自建群活跃度——议题转项目率 TODO - + //9、自建群活跃度——议题转项目率 + if (topicToIssueRatioMap.containsKey(indexPartyAblityCpcEntity.getUserId())) { + indexPartyAblityCpcEntity.setTopicToIssueRatio(topicToIssueRatioMap.get(indexPartyAblityCpcEntity.getUserId())); + } } - //4、分批插入 - //批量插入 + //4、分批插入批量插入 List> partition = ListUtils.partition(indexPartyAblityCpcList, IndexCalConstant.INSERT_SIZE); partition.forEach(list -> { this.FactIndexPartyAblityCpcMonthlyEntity(list); @@ -106,6 +131,30 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { } + + /** + * @param customerId + * @param partyMemberList + * @return java.util.Map> + * @author yinzuomei + * @description 查询每个党员的自建群 + * @Date 2020/9/20 22:07 + **/ + private Map> queryUserCreatedGroups(String customerId, List partyMemberList) { + Map> map = new HashMap<>(); + for (FactIndexPartyAblityCpcMonthlyEntity partyMember : partyMemberList) { + //查询当前党员建了多少个组 + List groupIdList = factOriginGroupMainDailyDao.selectGroupIds(customerId, partyMember.getUserId()); + if (CollectionUtils.isEmpty(groupIdList)) { + map.put(partyMember.getUserId(), new ArrayList<>()); + continue; + } else { + map.put(partyMember.getUserId(), groupIdList); + } + } + return map; + } + /** * @param customerId * @param monthId @@ -126,9 +175,9 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { } /** - * @return java.util.Map * @param customerId * @param monthId + * @return java.util.Map * @author yinzuomei * @description 2、查询客户下,这个月内,每个党员评论话题的次数 * @Date 2020/9/18 13:33 @@ -146,9 +195,9 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { /** - * @return java.util.Map * @param customerId * @param monthId + * @return java.util.Map * @author yinzuomei * @description 3、党员提出的话题转议题数 * @Date 2020/9/18 13:53 @@ -165,15 +214,16 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { } /** - * @return java.util.Map * @param customerId * @param monthId + * @return java.util.Map * @author yinzuomei * @description 4、党员提出的议题转项目数 * @Date 2020/9/18 14:10 **/ private Map calShiftProjectCount(String customerId, String monthId) { - List> mapList = issueExtractService.selectShiftProjectCount(customerId, monthId); + //查询fact_origin_project_main_daily 表 中议题的议题的状态为 shift_ + List> mapList = factOriginProjectMainDailyService.selectShiftProjectCount(customerId, monthId); Map resultMap = new HashMap<>(); for (Map map : mapList) { for (Map.Entry m : map.entrySet()) { @@ -184,18 +234,99 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { } /** - * @return java.util.Map * @param customerId * @param monthId + * @return java.util.Map * @author yinzuomei * @description 6、党员自建群群众人数 * @Date 2020/9/18 15:38 **/ - private Map calgroupUserCount(String customerId, String monthId) { - // TODO - return null; + private Map calgroupUserCount(String customerId, String monthId, + List partyMemberList, + Map> userCreatedGroups) { + /*含义:评价周期内,党员自建群中群众成员数。 + 数据来源:用户社群关系表。 + 计算方法:对党员i的所有j个自建群,从用户社群关系表中统计属于每个自建群的群众用户总人数,并对j个群众用户总数进行不重复累加。 + 对评价结果的影响:正向。*/ + Map map = new HashMap<>(); + for (FactIndexPartyAblityCpcMonthlyEntity partyMember : partyMemberList) { + //查询当前党员建了多少个组 + List groupIdList = userCreatedGroups.get(partyMember.getUserId()); + if (CollectionUtils.isEmpty(groupIdList)) { + map.put(partyMember.getUserId(), NumConstant.ZERO); + continue; + } + //去重组里面的成员 + List memberIdList = factOriginGroupMainDailyDao.selectGroupMemberList(groupIdList); + if (CollectionUtils.isEmpty(memberIdList)) { + map.put(partyMember.getUserId(), NumConstant.ZERO); + continue; + } else { + map.put(partyMember.getUserId(), memberIdList.size()); + } + } + return map; + } + + /** + * @param customerId + * @param monthId + * @param partyMemberList + * @return java.util.Map + * @author yinzuomei + * @description 7、党员自建群活跃群众人数 + * @Date 2020/9/20 21:36 + **/ + private Map calGroupActiveUserCount(String customerId, String monthId, + List partyMemberList, + Map> userCreatedGroups) { + /*含义:评价周期内,党员自建群中活跃群众成员数。所谓活跃群成员,即评价周期内参与话题、事件评论、点赞、点踩总次数大于给定阈值的群众用户。 + 数据来源:话题用户阅读表、话题评论用户表态表、话题评论表、事件点赞点踩表、事件评论点赞点踩表、事件评论表、用户信息表。 + 计算方法: + a)判断群中的群众成员是否活跃 + for each 群众成员 i + 统计i的话题阅读次数、话题评论次数、话题评论表态次数、事件点赞点踩次数、事件评论点赞点踩次数、事件评论总次数。 + If 总次数>阈值 + 成员i为活跃群众成员 + b)不重复累加活跃群众成员数 + 对评价结果的影响:正向。*/ + //结合目前产品,数据来源:话题评论、议题表决 + Map map = new HashMap<>(); + for (FactIndexPartyAblityCpcMonthlyEntity partyMember : partyMemberList) { + int groupActiveUserCount = 0; + //1、查询当前党员建了多少个组 + List groupIdList = userCreatedGroups.get(partyMember.getUserId()); + if (CollectionUtils.isEmpty(groupIdList)) { + map.put(partyMember.getUserId(), NumConstant.ZERO); + continue; + } + //2、去重组里面的成员 + List memberIdList = factOriginGroupMainDailyDao.selectGroupMemberList(groupIdList); + if (CollectionUtils.isEmpty(memberIdList)) { + map.put(partyMember.getUserId(), NumConstant.ZERO); + continue; + } + //3、判断每个成员是否 “活跃” + for (String memberId : memberIdList) { + //1、判断成员在本月内是否评论过 + Integer topicCommentCount = factOriginTopicLogDailyService.selectUserCommentCount(memberId, customerId, monthId); + if (topicCommentCount > 0) { + groupActiveUserCount++; + continue; + } + //2、判断成员在本月内是否表决过(支持or反对)议题 + Integer voteCount = issueExtractService.selectCountUserVote(memberId, customerId, monthId); + if (voteCount > 0) { + groupActiveUserCount++; + } + } + //赋值每个党员的 -- 党员自建群活跃群众人数 + map.put(partyMember.getUserId(), groupActiveUserCount); + } + return map; } + /** * @param customerId * @param monthId @@ -204,7 +335,11 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { * @description 8、党员自建群活跃度——话题数 * @Date 2020/9/18 14:31 **/ - private Map calGroupTopicCountMap(String customerId, String monthId) { + private Map calGroupTopicCount(String customerId, String monthId) { + /*含义:评价周期内,党员自建群中话题发布数。 + 数据来源:话题表。 + 计算方法:从话题表中统计党员自建群i的话题总数;对所有自建群话题数累加。 + 对评价结果的影响:正向。*/ List> mapList = factOriginTopicLogDailyService.selectGroupTopicCount(customerId, monthId); Map resultMap = new HashMap<>(); for (Map map : mapList) { @@ -215,6 +350,54 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { return resultMap; } + /** + * @param userCreatedGroups 党员自建群 + * @return java.util.Map + * @author yinzuomei + * @description 9、自建群活跃度——议题转项目率 + * @Date 2020/9/20 22:11 + **/ + private Map caltopicToIssueRatio(String customerId, + String monthId, + List partyMemberList, + Map> userCreatedGroups) { + Map map = new HashMap<>(); + for (FactIndexPartyAblityCpcMonthlyEntity partyMember : partyMemberList) { + //如果党员自建群为空,直接赋值0 + if (CollectionUtils.isEmpty(userCreatedGroups.get(partyMember.getUserId()))) { + map.put(partyMember.getUserId(), BigDecimal.ZERO); + continue; + } + //自建群出来的话题 + List groupIdList = userCreatedGroups.get(partyMember.getUserId()); + List topicIdList = factOriginTopicLogDailyService.selectTopicIds(groupIdList); + if (CollectionUtils.isEmpty(topicIdList)) { + map.put(partyMember.getUserId(), BigDecimal.ZERO); + continue; + } + //分子 + //本月内新增的项目(and 源于自建群中的话题) + Integer projectTotal = factOriginProjectMainDailyService.selectCountByPartyUser(customerId, monthId, topicIdList); + if (null == projectTotal || projectTotal == NumConstant.ZERO) { + map.put(partyMember.getUserId(), BigDecimal.ZERO); + continue; + } + //分母 + //本评价周期+上一个评价周期内自建群中的议题数 + Integer issueTotal = issueExtractService.selectIssueTotalTwoMonth(topicIdList); + if (null == issueTotal || issueTotal == NumConstant.ZERO) { + map.put(partyMember.getUserId(), BigDecimal.ZERO); + continue; + } + NumberFormat numberFormat = NumberFormat.getInstance(); + numberFormat.setMaximumFractionDigits(6); + String topicToIssueRatioStr = numberFormat.format((float) projectTotal / issueTotal); + BigDecimal topicToIssueRatio = new BigDecimal(topicToIssueRatioStr); + map.put(partyMember.getUserId(), topicToIssueRatio); + } + return map; + } + /** * @param customerId * @param monthId diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectMainDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectMainDailyServiceImpl.java index 1358c2fdc4..a32bbe22f0 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectMainDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectMainDailyServiceImpl.java @@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.evaluationindex.extract.FactOriginProjectMainDailyDao; @@ -32,7 +33,9 @@ import com.epmet.service.evaluationindex.extract.FactOriginProjectMainDailyServi import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -131,4 +134,38 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl> + * @author yinzuomei + * @description 党员提出的议题转项目数 + * @Date 2020/9/18 14:11 + **/ + @Override + public List> selectShiftProjectCount(String customerId, String monthId) { + //查询项目主表fact_origin_project_main_daily,这个月内新增的项目,按话题发布人分组 + /*含义:评价周期内,党员提出的议题转数目数。 + 数据来源:项目表。 + 计算方法:从项目表中按照用户ID和党员标识统计。 + 对评价结果的影响:正向。*/ + return baseDao.selectShiftProjectCount(customerId,monthId); + } + + /** + * @param customerId + * @param monthId + * @param topicIdList + * @return java.lang.Integer + * @author yinzuomei + * @description 9、自建群活跃度——议题转项目率 用 + * @Date 2020/9/20 22:25 + **/ + @Override + public Integer selectCountByPartyUser(String customerId, String monthId, List topicIdList) { + if(CollectionUtils.isEmpty(topicIdList)){ + return NumConstant.ZERO; + } + return baseDao.selectCountByPartyUser(customerId,monthId,topicIdList); + } } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicLogDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicLogDailyServiceImpl.java index 07a220fa44..d1f1ed681a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicLogDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicLogDailyServiceImpl.java @@ -24,7 +24,9 @@ import com.epmet.dao.evaluationindex.extract.FactOriginTopicLogDailyDao; import com.epmet.entity.evaluationindex.extract.FactOriginTopicLogDailyEntity; import com.epmet.service.evaluationindex.extract.FactOriginTopicLogDailyService; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -49,6 +51,7 @@ public class FactOriginTopicLogDailyServiceImpl extends BaseServiceImpl> selectJoinTopicCount(String customerId, String monthId) { + //这个月内新增的话题评论,按人分组,不限制评论时的身份,以当前用户最新身份为准 return baseDao.selectJoinTopicCount(customerId,monthId); } @@ -64,4 +67,33 @@ public class FactOriginTopicLogDailyServiceImpl extends BaseServiceImpl> selectGroupTopicCount(String customerId, String monthId) { return baseDao.selectGroupTopicCount(customerId,monthId); } + + /** + * @return java.lang.Integer + * @param userId + * @param customerId + * @param monthId + * @author yinzuomei + * @description 查询当前用户在本月内评论的次数 + * @Date 2020/9/20 21:45 + **/ + @Override + public Integer selectUserCommentCount(String userId,String customerId, String monthId) { + return baseDao.selectUserCommentCount(userId,customerId,monthId); + } + + /** + * @param groupIdList + * @return java.util.List + * @author yinzuomei + * @description 组内的所有话题id + * @Date 2020/9/20 22:17 + **/ + @Override + public List selectTopicIds(List groupIdList) { + if(CollectionUtils.isEmpty(groupIdList)){ + return new ArrayList<>(); + } + return baseDao.selectTopicIds(groupIdList); + } } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicMainDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicMainDailyServiceImpl.java index a61eab5a48..b82592861a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicMainDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicMainDailyServiceImpl.java @@ -238,6 +238,7 @@ public class FactOriginTopicMainDailyServiceImpl extends BaseServiceImpl> selectPartyCreateTopicCount(String customerId, String monthId) { + //这个月内新增的话题,按人分组,不限制发话题人的身份,也就是说以用户最新的身份为准 return baseDao.selectPartyCreateTopicCount(customerId,monthId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java index 46ae7c8557..78bb8a187c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java @@ -278,22 +278,14 @@ public class IssueExtractServiceImpl implements IssueExtractService { @DataSource(DataSourceConstant.STATS) @Override public List> selectShiftIssueCount(String customerId, String monthId) { + //查询fact_origin_issue_main_daily 表,转议题的时间在评价周期内的,按发布话题的人分组 + /*含义:评价周期内,党员提出的话题转为议题的数目。 + 数据来源:议题表。 + 计算方法:从议题表中按照用户ID和党员标识统计。 + 对评价结果的影响:正向。*/ return issueMainDailyDao.selectShiftIssueCount(customerId,monthId); } - /** - * @param customerId - * @param monthId - * @return java.util.List> - * @author yinzuomei - * @description 党员提出的议题转项目数 - * @Date 2020/9/18 14:11 - **/ - @Override - public List> selectShiftProjectCount(String customerId, String monthId) { - return issueMainDailyDao.selectShiftProjectCount(customerId,monthId); - } - /** * @Description 查询网格 党员/群众 人均提出的议题转项目数 * @param customerId @@ -306,4 +298,30 @@ public class IssueExtractServiceImpl implements IssueExtractService { public List selectShiftProjectCountPlus(String customerId, String monthId, Integer isParty) { return issueMainDailyDao.selectShiftProjectCountPlus(customerId, monthId, isParty); } + + /** + * @param userId 用户id + * @param customerId + * @param monthId + * @return java.lang.Integer + * @author yinzuomei + * @description 查询用户在这个月内表决的总次数 + * @Date 2020/9/20 21:50 + **/ + @Override + public Integer selectCountUserVote(String userId, String customerId, String monthId) { + return issueLogDailyDao.selectCountUserVote(userId,customerId,monthId); + } + + /** + * @param topicIdList + * @return java.lang.Integer + * @author yinzuomei + * @description 查询本周期和上周期内,自建群内话题转为议题的数量的总和 + * @Date 2020/9/20 22:48 + **/ + @Override + public Integer selectIssueTotalTwoMonth(List topicIdList) { + return issueMainDailyDao.selectIssueTotalTwoMonth(topicIdList); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml index fd90cd5a18..6894e88ce1 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml @@ -17,5 +17,28 @@ GROUP BY GRID_ID + + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueLogDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueLogDailyDao.xml index ab19b88e80..862f0488c5 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueLogDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueLogDailyDao.xml @@ -62,4 +62,20 @@ CUSTOMER_ID = #{customerId} AND DATE_ID = #{dateId} + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml index 2e4884a8f6..de03f24dc5 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueMainDailyDao.xml @@ -111,27 +111,12 @@ -- AND t1.TOPIC_USER_IS_PARTY = '1' AND t1.CUSTOMER_ID = #{customerId} AND t1.MONTH_ID = #{monthId} + AND ISNULL(T1.CREATE_TOPIC_USER_ID)=0 + AND LENGTH(trim(T1.CREATE_TOPIC_USER_ID))>0 GROUP BY T1.CREATE_TOPIC_USER_ID - - - + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml index 81472beb65..a619489c28 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml @@ -108,4 +108,35 @@ + + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicLogDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicLogDailyDao.xml index 3fcd8fba28..848a0d733a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicLogDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicLogDailyDao.xml @@ -100,4 +100,32 @@ and t1.MONTH_ID=#{monthId} group by t2.USER_ID + + + + + + + \ No newline at end of file From 8faa729e5359b09a6b9fa847c7fb2f54e5b36b64 Mon Sep 17 00:00:00 2001 From: jianjun Date: Sun, 20 Sep 2020 23:29:20 +0800 Subject: [PATCH 26/33] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/impl/CalGridIndexServiceImpl.java | 37 +++++++++---------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java index 0b574b6009..9fea4c2476 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java @@ -6,7 +6,6 @@ import com.epmet.commons.tools.utils.DateUtils; import com.epmet.constant.ExtractConstant; import com.epmet.constant.ProjectEvaluateConstant; import com.epmet.dao.evaluationindex.indexcoll.FactIndexGovrnAblityGridMonthlyDao; -import com.epmet.dao.evaluationindex.indexcoll.FactIndexPartyAblityGridMonthlyDao; import com.epmet.dto.extract.form.GovernAbilityGridMonthlyFormDTO; import com.epmet.dto.extract.form.GridIssueCountResultDTO; import com.epmet.dto.extract.form.PartyAbilityGridMonthlyFormDTO; @@ -200,7 +199,7 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { autoSelf.set(false); } }); - if (autoSelf.get() == true){ + if (autoSelf.get()) { count.getAndSet(count.get() + NumConstant.ONE); } }); @@ -231,7 +230,7 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { Map> groupByProject = projectEvaluateInfoList.stream().collect(Collectors.groupingBy(ProjectEvaluateResultDTO::getProjectId)); groupByProject.forEach((projectId,projectList) -> { projectList.forEach(project -> { - switch (project.getActionCode()){ + switch (project.getActionCode()) { case ExtractConstant.EVALUATE_BAD: project.setScore(ProjectEvaluateConstant.BAD); break; @@ -241,9 +240,11 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { case ExtractConstant.EVALUATE_PERFECT: project.setScore(ProjectEvaluateConstant.PERFECT); break; + default: + log.warn("calGridIndexGovernAbility orther projectEvaluate,actionCode:{}", project.getActionCode()); } }); - Integer projectAllScore = projectList.stream().collect(Collectors.summingInt(ProjectEvaluateResultDTO::getScore)); + Integer projectAllScore = projectList.stream().mapToInt(ProjectEvaluateResultDTO::getScore).sum(); scoreMap.put(projectId,projectAllScore/projectList.size()); }); AtomicReference allScore = new AtomicReference<>(0); @@ -285,29 +286,25 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { }); } // 4. 网格吹哨部门准确率 - if (!CollectionUtils.isEmpty(notReturnProjectList)){ + if (!CollectionUtils.isEmpty(notReturnProjectList)) { notReturnProjectList.forEach(not -> { - if (r.getGridId().equals(not.getGridId())){ + if (r.getGridId().equals(not.getGridId())) { r.setTransferRightRatio(not.getTransferRightRatio()); } }); } // 5. 网格内解决的项目的满意度 - if (null != resultSatisfactionScore){ - resultSatisfactionScore.forEach((k,v) -> { - if (r.getGridId().equals(k)){ - r.setSatisfactionRatio(v); - } - }); - } + resultSatisfactionScore.forEach((k, v) -> { + if (r.getGridId().equals(k)) { + r.setSatisfactionRatio(v); + } + }); // 6. 网格自治项目数 - if (null != autoMap){ - autoMap.forEach((k,v) -> { - if (r.getGridId().equals(k)){ - r.setSelfSolveProjectCount(v); - } - }); - } + autoMap.forEach((k, v) -> { + if (r.getGridId().equals(k)) { + r.setSelfSolveProjectCount(v); + } + }); }); delAndInsertGovernAbility(result,customerId,monthId); return true; From 99e9518cbb8c38761af55484108af036487e57d7 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Sun, 20 Sep 2020 23:32:35 +0800 Subject: [PATCH 27/33] =?UTF-8?q?=E6=B2=BB=E7=90=86=E8=83=BD=E5=8A=9B?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../result/OrgStatisticsResultDTO.java | 1 + .../extract/FactOriginProjectLogDailyDao.java | 12 +++++ .../FactIndexPartyAblityOrgMonthlyDao.java | 11 +++++ .../FactArticlePublishedAgencyDailyDao.java | 15 ++++++ .../FactOriginProjectLogDailyService.java | 11 +++++ .../FactOriginProjectLogDailyServiceImpl.java | 5 ++ ...FactIndexPartyAblityOrgMonthlyService.java | 22 +++++++++ .../indexcoll/IndexCollCommunityService.java | 12 +---- ...IndexPartyAblityOrgMonthlyServiceImpl.java | 23 +++++++++ .../impl/IndexCollCommunityServiceImpl.java | 47 ++++++++++++++----- .../impl/IndexCollStreetServiceImpl.java | 34 ++++++++++++++ ...actArticlePublishedAgencyDailyService.java | 13 +++++ ...rticlePublishedAgencyDailyServiceImpl.java | 9 ++++ .../extract/FactOriginProjectLogDailyDao.xml | 21 +++++++++ .../FactIndexPartyAblityOrgMonthlyDao.xml | 6 +++ .../FactArticlePublishedAgencyDailyDao.xml | 12 +++++ 16 files changed, 231 insertions(+), 23 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/FactIndexPartyAblityOrgMonthlyService.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/FactIndexPartyAblityOrgMonthlyServiceImpl.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/OrgStatisticsResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/OrgStatisticsResultDTO.java index 2d70c0b254..ad170c5b96 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/OrgStatisticsResultDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/OrgStatisticsResultDTO.java @@ -14,6 +14,7 @@ public class OrgStatisticsResultDTO implements Serializable { private static final long serialVersionUID = 9221060553279124719L; private String customerId; private String agencyId; + private String orgId; private Integer count; private Integer sum; private String ratio; 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 759a56e82c..9eb37ea0c8 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 @@ -96,4 +96,16 @@ public interface FactOriginProjectLogDailyDao extends BaseDao selectSatisfaction(@Param("customerId") String customerId, @Param("monthId") String monthId, @Param("level")String level); + + /** + * 区直部门被吹哨次数 + * @author zhaoqifeng + * @date 2020/9/18 14:46 + * @param customerId + * @param monthId + * @param level + * @return java.util.List + */ + List selectDepTransferCount(@Param("customerId") String customerId, @Param("monthId") String monthId, + @Param("level")String level); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexPartyAblityOrgMonthlyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexPartyAblityOrgMonthlyDao.java index 220e9a91f1..f9ab1ba754 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexPartyAblityOrgMonthlyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/FactIndexPartyAblityOrgMonthlyDao.java @@ -77,4 +77,15 @@ public interface FactIndexPartyAblityOrgMonthlyDao extends BaseDao> selectPublishArticleCountMap(@Param("customerId")String customerId, @Param("monthId")String monthId,@Param("level")String level); + + /** + * 根据组织类型删除数据 + * @author zhaoqifeng + * @date 2020/9/20 20:52 + * @param customerId + * @param monthId + * @param type + * @return java.lang.Integer + */ + Integer deleteByCustomer(@Param("customerId") String customerId, @Param("monthId") String monthId, @Param("type") String type); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactArticlePublishedAgencyDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactArticlePublishedAgencyDailyDao.java index 5a7e9dbfc7..3e20141c80 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactArticlePublishedAgencyDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/FactArticlePublishedAgencyDailyDao.java @@ -18,10 +18,13 @@ package com.epmet.dao.stats; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.stats.FactArticlePublishedAgencyDailyDTO; import com.epmet.entity.stats.FactArticlePublishedAgencyDailyEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 文章发布数量【机关】日统计表 * @@ -38,4 +41,16 @@ public interface FactArticlePublishedAgencyDailyDao extends BaseDao + */ + List selectArticleCount(@Param("customerId")String customerId, @Param("monthId")String monthId, + @Param("level")String level); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java index 72f840ba81..32267cbe10 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java @@ -155,4 +155,15 @@ public interface FactOriginProjectLogDailyService extends BaseService */ List getSatisfaction(String customerId, String monthId, String level); + + /** + * 机关被吹哨次数 + * @author zhaoqifeng + * @date 2020/9/18 14:53 + * @param customerId + * @param monthId + * @param level + * @return java.util.List + */ + List getDepTransferCount(String customerId, String monthId, String level); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectLogDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectLogDailyServiceImpl.java index a62fdd38e2..3a2d9255e2 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectLogDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectLogDailyServiceImpl.java @@ -152,4 +152,9 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl getDepTransferCount(String customerId, String monthId, String level) { + return baseDao.selectDepTransferCount(customerId, monthId, level); + } + } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/FactIndexPartyAblityOrgMonthlyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/FactIndexPartyAblityOrgMonthlyService.java new file mode 100644 index 0000000000..0227a835f8 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/FactIndexPartyAblityOrgMonthlyService.java @@ -0,0 +1,22 @@ +package com.epmet.service.evaluationindex.indexcoll; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.entity.evaluationindex.indexcoll.FactIndexPartyAblityOrgMonthlyEntity; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/9/20 23:00 + */ +public interface FactIndexPartyAblityOrgMonthlyService extends BaseService { + /** + * 根据客户清空数据 + * @author zhaoqifeng + * @date 2020/9/20 20:33 + * @param customerId + * @param monthId + * @param type + * @return void + */ + void deleteByCustomer(String customerId, String monthId, String type); +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollCommunityService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollCommunityService.java index 40fd419333..f69747ce74 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollCommunityService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/IndexCollCommunityService.java @@ -8,7 +8,7 @@ package com.epmet.service.evaluationindex.indexcoll; */ public interface IndexCollCommunityService { /** - * 社区治理能力统计 + * 社区能力统计 * * @author zhaoqifeng * @date 2020/9/18 13:52 @@ -18,14 +18,4 @@ public interface IndexCollCommunityService { */ void saveCommunityAbility(String customerId, String dateId); - /** - * 社区党建能力统计 - * - * @author zhaoqifeng - * @date 2020/9/18 13:52 - * @param customerId - * @param dateId - * @return void - */ - void saveCommunityPartyAbility(String customerId, String dateId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/FactIndexPartyAblityOrgMonthlyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/FactIndexPartyAblityOrgMonthlyServiceImpl.java new file mode 100644 index 0000000000..7964b2788b --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/FactIndexPartyAblityOrgMonthlyServiceImpl.java @@ -0,0 +1,23 @@ +package com.epmet.service.evaluationindex.indexcoll.impl; + +import com.epmet.commons.dynamic.datasource.annotation.DataSource; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.constant.DataSourceConstant; +import com.epmet.dao.evaluationindex.indexcoll.FactIndexPartyAblityOrgMonthlyDao; +import com.epmet.entity.evaluationindex.indexcoll.FactIndexPartyAblityOrgMonthlyEntity; +import com.epmet.service.evaluationindex.indexcoll.FactIndexPartyAblityOrgMonthlyService; +import org.springframework.stereotype.Service; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/9/20 23:01 + */ +@Service +@DataSource(DataSourceConstant.EVALUATION_INDEX) +public class FactIndexPartyAblityOrgMonthlyServiceImpl extends BaseServiceImpl implements FactIndexPartyAblityOrgMonthlyService { + @Override + public void deleteByCustomer(String customerId, String monthId, String type) { + baseDao.deleteByCustomer(customerId, monthId, type); + } +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollCommunityServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollCommunityServiceImpl.java index 73e99caaa0..ad5ce2728f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollCommunityServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollCommunityServiceImpl.java @@ -6,15 +6,18 @@ import com.epmet.commons.tools.utils.DateUtils; import com.epmet.constant.DataSourceConstant; import com.epmet.constant.OrgTypeConstant; import com.epmet.dao.evaluationindex.extract.FactOriginProjectOrgPeriodDailyDao; -import com.epmet.dao.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyDao; import com.epmet.dto.extract.result.OrgStatisticsResultDTO; import com.epmet.dto.stats.DimAgencyDTO; +import com.epmet.dto.stats.FactArticlePublishedAgencyDailyDTO; import com.epmet.entity.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyEntity; +import com.epmet.entity.evaluationindex.indexcoll.FactIndexPartyAblityOrgMonthlyEntity; import com.epmet.service.evaluationindex.extract.FactOriginProjectLogDailyService; import com.epmet.service.evaluationindex.extract.FactOriginProjectMainDailyService; import com.epmet.service.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyService; +import com.epmet.service.evaluationindex.indexcoll.FactIndexPartyAblityOrgMonthlyService; import com.epmet.service.evaluationindex.indexcoll.IndexCollCommunityService; import com.epmet.service.stats.DimAgencyService; +import com.epmet.service.stats.FactArticlePublishedAgencyDailyService; import com.epmet.util.DimIdGenerator; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -45,6 +48,10 @@ public class IndexCollCommunityServiceImpl implements IndexCollCommunityService private FactOriginProjectOrgPeriodDailyDao factOriginProjectOrgPeriodDailyDao; @Autowired private FactOriginProjectMainDailyService factOriginProjectMainDailyService; + @Autowired + private FactArticlePublishedAgencyDailyService factArticlePublishedAgencyDailyService; + @Autowired + private FactIndexPartyAblityOrgMonthlyService factIndexPartyAblityOrgMonthlyService; @Override public void saveCommunityAbility(String customerId, String dateId) { @@ -65,15 +72,15 @@ public class IndexCollCommunityServiceImpl implements IndexCollCommunityService entity.setMonthId(dimId.getMonthId()); entity.setDataType(OrgTypeConstant.COMMUNITY); entity.setTransferedCount(NumConstant.ZERO); - entity.setClosedProjectCount(NumConstant.ZERO); entity.setRespProjectRatio(new BigDecimal(NumConstant.ZERO)); entity.setOverdueProjectRatio(new BigDecimal(NumConstant.ZERO)); entity.setClosedProjectRatio(new BigDecimal(NumConstant.ZERO)); entity.setSatisfactionRatio(new BigDecimal(NumConstant.ZERO)); + entity.setClosedProjectCount(NumConstant.ZERO); entity.setHandleProjectRatio(new BigDecimal(NumConstant.ZERO)); return entity; }).collect(Collectors.toList()); - + //1.治理能力 //被吹哨次数统计 List transferCount = factOriginProjectLogDailyService.getAgencyTransferCount(customerId, dimId.getMonthId(), OrgTypeConstant.COMMUNITY); @@ -119,18 +126,34 @@ public class IndexCollCommunityServiceImpl implements IndexCollCommunityService } })); } + factIndexGovrnAblityOrgMonthlyService.deleteByCustomer(customerId, dimId.getMonthId(), OrgTypeConstant.COMMUNITY); factIndexGovrnAblityOrgMonthlyService.insertBatch(list); - } - @Override - public void saveCommunityPartyAbility(String customerId, String dateId) { - //当前日期前一天 - Date date = DateUtils.getBeforeDay(DateUtils.stringToDate(dateId, DateUtils.DATE_PATTERN_YYYYMMDD)); - //获取日期相关维度 - DimIdGenerator.DimIdBean dimId = DimIdGenerator.getDimIdBean(date); - //获取社区列表 - ListagencyList = dimAgencyService.getAgencyByLevel(customerId, OrgTypeConstant.COMMUNITY); + //2.党建能力 //获取社区发文数量 + List articles = factArticlePublishedAgencyDailyService.getArticleCount(customerId, dimId.getMonthId(), + OrgTypeConstant.COMMUNITY); + + List partyList = agencyList.stream().map(agency ->{ + FactIndexPartyAblityOrgMonthlyEntity entity = new FactIndexPartyAblityOrgMonthlyEntity(); + entity.setCustomerId(customerId); + entity.setAgencyId(agency.getId()); + entity.setParentId(agency.getPid()); + entity.setYearId(dimId.getYearId()); + entity.setQuarterId(dimId.getQuarterId()); + entity.setMonthId(dimId.getMonthId()); + entity.setDataType(OrgTypeConstant.COMMUNITY); + entity.setPublishArticleCount(NumConstant.ZERO); + return entity; + }).collect(Collectors.toList()); + if (null != articles && !articles.isEmpty()) { + partyList.forEach(entity -> articles.stream().filter(article -> entity.getAgencyId().equals(article.getAgencyId())).forEach(dto -> { + entity.setPublishArticleCount(dto.getArticleTotalCount()); + })); + } + factIndexPartyAblityOrgMonthlyService.deleteByCustomer(customerId, dimId.getMonthId(), OrgTypeConstant.COMMUNITY); + factIndexPartyAblityOrgMonthlyService.insertBatch(partyList); } + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollStreetServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollStreetServiceImpl.java index 8f32d7507a..617e4ac46f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollStreetServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollStreetServiceImpl.java @@ -8,12 +8,16 @@ import com.epmet.constant.OrgTypeConstant; import com.epmet.dao.evaluationindex.extract.FactOriginProjectOrgPeriodDailyDao; import com.epmet.dto.extract.result.OrgStatisticsResultDTO; import com.epmet.dto.stats.DimAgencyDTO; +import com.epmet.dto.stats.FactArticlePublishedAgencyDailyDTO; import com.epmet.entity.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyEntity; +import com.epmet.entity.evaluationindex.indexcoll.FactIndexPartyAblityOrgMonthlyEntity; import com.epmet.service.evaluationindex.extract.FactOriginProjectLogDailyService; import com.epmet.service.evaluationindex.extract.FactOriginProjectMainDailyService; import com.epmet.service.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthlyService; +import com.epmet.service.evaluationindex.indexcoll.FactIndexPartyAblityOrgMonthlyService; import com.epmet.service.evaluationindex.indexcoll.IndexCollStreetService; import com.epmet.service.stats.DimAgencyService; +import com.epmet.service.stats.FactArticlePublishedAgencyDailyService; import com.epmet.util.DimIdGenerator; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -44,6 +48,11 @@ public class IndexCollStreetServiceImpl implements IndexCollStreetService { private FactOriginProjectOrgPeriodDailyDao factOriginProjectOrgPeriodDailyDao; @Autowired private FactOriginProjectMainDailyService factOriginProjectMainDailyService; + @Autowired + private FactArticlePublishedAgencyDailyService factArticlePublishedAgencyDailyService; + @Autowired + private FactIndexPartyAblityOrgMonthlyService factIndexPartyAblityOrgMonthlyService; + @Override public void saveStreetAbility(String customerId, String dateId) { //当前日期前一天 @@ -107,5 +116,30 @@ public class IndexCollStreetServiceImpl implements IndexCollStreetService { } factIndexGovrnAblityOrgMonthlyService.deleteByCustomer(customerId, dimId.getMonthId(), OrgTypeConstant.STREET); factIndexGovrnAblityOrgMonthlyService.insertBatch(list); + + + //2.党建能力 + //获取社区发文数量 + List articles = factArticlePublishedAgencyDailyService.getArticleCount(customerId, dimId.getMonthId(), + OrgTypeConstant.STREET); + List partyList = agencyList.stream().map(agency ->{ + FactIndexPartyAblityOrgMonthlyEntity entity = new FactIndexPartyAblityOrgMonthlyEntity(); + entity.setCustomerId(customerId); + entity.setAgencyId(agency.getId()); + entity.setParentId(agency.getPid()); + entity.setYearId(dimId.getYearId()); + entity.setQuarterId(dimId.getQuarterId()); + entity.setMonthId(dimId.getMonthId()); + entity.setDataType(OrgTypeConstant.COMMUNITY); + entity.setPublishArticleCount(NumConstant.ZERO); + return entity; + }).collect(Collectors.toList()); + if (null != articles && !articles.isEmpty()) { + partyList.forEach(entity -> articles.stream().filter(article -> entity.getAgencyId().equals(article.getAgencyId())).forEach(dto -> { + entity.setPublishArticleCount(dto.getArticleTotalCount()); + })); + } + factIndexPartyAblityOrgMonthlyService.deleteByCustomer(customerId, dimId.getMonthId(), OrgTypeConstant.STREET); + factIndexPartyAblityOrgMonthlyService.insertBatch(partyList); } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactArticlePublishedAgencyDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactArticlePublishedAgencyDailyService.java index dc9d7e3d63..5838685418 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactArticlePublishedAgencyDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactArticlePublishedAgencyDailyService.java @@ -18,9 +18,11 @@ package com.epmet.service.stats; import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.dto.stats.FactArticlePublishedAgencyDailyDTO; import com.epmet.entity.stats.FactArticlePublishedAgencyDailyEntity; import java.util.Collection; +import java.util.List; /** * 文章发布数量【机关】日统计表 @@ -42,4 +44,15 @@ public interface FactArticlePublishedAgencyDailyService extends BaseService values); + /** + * 获取组织文章数量 + * @author zhaoqifeng + * @date 2020/9/20 22:49 + * @param customerId + * @param monthId + * @param level + * @return java.util.List + */ + List getArticleCount(String customerId, String monthId, String level); + } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactArticlePublishedAgencyDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactArticlePublishedAgencyDailyServiceImpl.java index c12d4b176f..a411475a62 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactArticlePublishedAgencyDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactArticlePublishedAgencyDailyServiceImpl.java @@ -22,6 +22,7 @@ import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.stats.FactArticlePublishedAgencyDailyDao; +import com.epmet.dto.stats.FactArticlePublishedAgencyDailyDTO; import com.epmet.entity.stats.FactArticlePublishedAgencyDailyEntity; import com.epmet.service.stats.FactArticlePublishedAgencyDailyService; import lombok.extern.slf4j.Slf4j; @@ -30,6 +31,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.Collection; +import java.util.List; /** * 文章发布数量【机关】日统计表 @@ -55,4 +57,11 @@ public class FactArticlePublishedAgencyDailyServiceImpl extends BaseServiceImpl< this.insertBatch(values, 100); return true; } + + @Override + public List getArticleCount(String customerId, String monthId, String level) { + return baseDao.selectArticleCount(customerId, monthId, level); + } + + } \ No newline at end of file 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 6047bc9726..2420d05fb6 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 @@ -115,5 +115,26 @@ ) b ON a.ID = b.PROJECT_ID GROUP BY AGENCY_ID + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexPartyAblityOrgMonthlyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexPartyAblityOrgMonthlyDao.xml index 4aacf64da8..cf9146cc1f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexPartyAblityOrgMonthlyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/FactIndexPartyAblityOrgMonthlyDao.xml @@ -27,6 +27,12 @@ AND MONTH_ID = #{monthId} limit 1000; + + delete from fact_index_party_ablity_org_monthly + where CUSTOMER_ID = #{customerId} + AND MONTH_ID = #{monthId} + AND DATA_TYPE = #{type} + insert into fact_index_party_ablity_org_monthly diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactArticlePublishedAgencyDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactArticlePublishedAgencyDailyDao.xml index ea4debe1dc..5050847753 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactArticlePublishedAgencyDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/FactArticlePublishedAgencyDailyDao.xml @@ -25,6 +25,18 @@ DELETE FROM fact_article_published_agency_daily WHERE CUSTOMER_ID = #{customerId,jdbcType=VARCHAR} AND DATE_ID = #{dateId,jdbcType=VARCHAR} + \ No newline at end of file From b79d10948f137d8d8e2aa874cd0c522832b479c4 Mon Sep 17 00:00:00 2001 From: jianjun Date: Sun, 20 Sep 2020 23:39:17 +0800 Subject: [PATCH 28/33] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/impl/GroupExtractServiceImpl.java | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java index 9d3c89eca8..158883bf8c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java @@ -1,23 +1,20 @@ package com.epmet.service.evaluationindex.extract.impl; -import com.epmet.dao.evaluationindex.extract.FactOriginGroupMainDailyDao; -import com.epmet.dto.extract.result.PartyCreateGroupCountResultDTO; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.dao.evaluationindex.extract.FactOriginGroupMainDailyDao; import com.epmet.dto.extract.FactOriginGroupMainDailyDTO; import com.epmet.dto.extract.form.ExtractFormDTO; import com.epmet.dto.extract.form.GridHeartedFormDTO; +import com.epmet.dto.extract.result.PartyCreateGroupCountResultDTO; import com.epmet.dto.group.result.ExtractGroupMemberActionRecordResultDTO; import com.epmet.dto.stats.result.GridAttributesResultDTO; import com.epmet.service.evaluationindex.extract.GroupExtractService; import com.epmet.service.group.GroupDataService; -import com.epmet.service.stats.DimAgencyService; import com.epmet.service.stats.DimGridService; import com.epmet.service.user.UserService; import com.epmet.util.DimIdGenerator; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -31,8 +28,6 @@ import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; -import java.util.List; - /** * @Description 业务数据抽取 - 组相关 * @ClassName GroupExtractServiceImpl @@ -78,14 +73,14 @@ public class GroupExtractServiceImpl implements GroupExtractService { int count = factOriginGroupMainDailyDao.selectIfExist(param.getCustomerId()); if(StringUtils.isBlank(param.getDateId())){ - Date yesterday = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24); + Date yesterday = DateUtils.addDateDays(new Date(), -1); SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD); param.setDateId(format.format(yesterday)); } //原生数据,如果是首次,则为全部组,如果非首次,则只有新创建以及新进人的组 //但是每个组每天都要更新一次组长的身份信息 List originGroupData = groupDataService.extractGroupData( - count <= NumConstant.ZERO ? true : false, + count <= NumConstant.ZERO, param.getCustomerId(), param.getDateId()); List memberList = new LinkedList<>(); @@ -138,7 +133,6 @@ public class GroupExtractServiceImpl implements GroupExtractService { factOriginGroupMainDailyDao.deleteBatchByGroupId(originGroupData.stream().map(FactOriginGroupMainDailyDTO :: getId).distinct().collect(Collectors.toList())); factOriginGroupMainDailyDao.insertBatchMembers(memberList); } - } From 207af6eeda5afa73b6978d553b6bf974f9dac711 Mon Sep 17 00:00:00 2001 From: wangchao Date: Mon, 21 Sep 2020 03:21:52 +0800 Subject: [PATCH 29/33] =?UTF-8?q?=E7=A4=BE=E5=8C=BA=E5=8A=9E=E7=BB=93?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=95=B0=EF=BC=8C=E7=A4=BE=E5=8C=BA=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=93=8D=E5=BA=94=E5=BA=A6=EF=BC=8C=E7=A4=BE=E5=8C=BA?= =?UTF-8?q?=E5=8A=9E=E7=BB=93=E9=A1=B9=E7=9B=AE=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../result/OrgResponseTimeResultDTO.java | 25 +++++ .../ProjectParticipatedAgencyResultDTO.java | 24 +++++ .../com/epmet/controller/DemoController.java | 19 ++++ .../extract/FactOriginGroupMainDailyDao.java | 8 +- .../extract/FactOriginProjectLogDailyDao.java | 15 ++- .../FactOriginProjectOrgPeriodDailyDao.java | 20 ++++ .../java/com/epmet/dao/stats/DimGridDao.java | 2 +- .../FactOriginProjectLogDailyService.java | 20 ++++ .../FactOriginProjectLogDailyServiceImpl.java | 93 +++++++++++++++++-- .../extract/impl/GroupExtractServiceImpl.java | 9 +- .../impl/ProjectExtractServiceImpl.java | 2 + .../impl/IndexCollStreetServiceImpl.java | 19 ++++ .../impl/ProjectProcessServiceImpl.java | 2 + .../epmet/service/stats/DimGridService.java | 2 +- .../stats/impl/DimGridServiceImpl.java | 4 +- .../extract/FactOriginGroupMainDailyDao.xml | 5 +- .../extract/FactOriginProjectLogDailyDao.xml | 50 ++++++++++ .../FactOriginProjectOrgPeriodDailyDao.xml | 64 +++++++++++++ .../resources/mapper/stats/DimGridDao.xml | 1 + 19 files changed, 359 insertions(+), 25 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/OrgResponseTimeResultDTO.java create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/ProjectParticipatedAgencyResultDTO.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/OrgResponseTimeResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/OrgResponseTimeResultDTO.java new file mode 100644 index 0000000000..88735859d3 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/OrgResponseTimeResultDTO.java @@ -0,0 +1,25 @@ +package com.epmet.dto.extract.result; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @Description 各机关响应时间 + * @ClassName OrgResponseTimeResultDTO + * @Auth wangc + * @Date 2020-09-21 02:03 + */ +@Data +public class OrgResponseTimeResultDTO implements Serializable { + private static final long serialVersionUID = 6017440139236985959L; + + private String agencyId; + + private BigDecimal responseTime; + + private BigDecimal projectTotal; + + private BigDecimal distinctProjectTotal; +} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/ProjectParticipatedAgencyResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/ProjectParticipatedAgencyResultDTO.java new file mode 100644 index 0000000000..1cd9de713b --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/ProjectParticipatedAgencyResultDTO.java @@ -0,0 +1,24 @@ +package com.epmet.dto.extract.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 参与过项目的agencyDTO + * @ClassName ProjectParticipatedAgencyResultDTO + * @Auth wangc + * @Date 2020-09-20 23:40 + */ +@Data +public class ProjectParticipatedAgencyResultDTO implements Serializable { + private static final long serialVersionUID = 1071619125612033138L; + + private String projectId; + + private String agencyId; + + private String level; + + private int score; +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java index 848be0a8bb..92611df2cf 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java @@ -27,6 +27,7 @@ import com.epmet.entity.stats.DimCustomerEntity; import com.epmet.entity.stats.DimDateEntity; import com.epmet.service.StatsDemoService; import com.epmet.service.evaluationindex.extract.CalGridIndexService; +import com.epmet.service.evaluationindex.extract.FactOriginProjectLogDailyService; import com.epmet.service.evaluationindex.extract.FactOriginTopicMainDailyService; import com.epmet.service.evaluationindex.indexcal.*; import com.epmet.service.stats.DimAgencyService; @@ -39,6 +40,7 @@ import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; +import java.util.Map; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; @@ -83,6 +85,8 @@ public class DemoController { private DimCustomerDao dimCustomerDao; @Autowired private FactOriginTopicMainDailyService factOriginTopicMainDailyService; + @Autowired + private FactOriginProjectLogDailyService factOriginProjectLogDailyService; @GetMapping("testAlarm") public void testAlarm() { @@ -553,4 +557,19 @@ public class DemoController { String monthId = "202008"; calGridIndexService.calGridIndexGovernAbility(customerId,monthId); } + + @PostMapping("handlemap") + public Result> handleMap(){ + return new Result>().ok( + factOriginProjectLogDailyService.getProjectHandledAgency("3ef7e4bb195eb9e622d68b52509aa940","202006","month")); + } + + @PostMapping("responseration") + public Result> responseRatio(){ + return new Result>().ok( + factOriginProjectLogDailyService.getAgencyResponseRatio("3ef7e4bb195eb9e622d68b52509aa940","202006","month") + ); + } + + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java index c2100cee16..336e900771 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java @@ -76,12 +76,12 @@ public interface FactOriginGroupMainDailyDao extends BaseDao list); + void deleteBatchByGroupId(@Param("customerId")String customerId,@Param("list") List list); /** * @Description 更新群主的党员信息 @@ -90,7 +90,7 @@ public interface FactOriginGroupMainDailyDao extends BaseDao list); + int updatePartyFlag(@Param("list") List list,@Param("customerId")String customerId); /** * @Description 更新群主的热心居民信息 @@ -99,7 +99,7 @@ public interface FactOriginGroupMainDailyDao extends BaseDao list); + int updateHeartedFlag(@Param("list") List list,@Param("customerId")String customerId); /** * @Description 批量插入组主表 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 759a56e82c..3dec07d1b3 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 @@ -18,10 +18,7 @@ package com.epmet.dao.evaluationindex.extract; import com.epmet.commons.mybatis.dao.BaseDao; -import com.epmet.dto.extract.result.OrgStatisticsResultDTO; -import com.epmet.dto.extract.result.AutoNoMyResultDTO; -import com.epmet.dto.extract.result.NotReturnProjectResultDTO; -import com.epmet.dto.extract.result.ProjectEvaluateResultDTO; +import com.epmet.dto.extract.result.*; import com.epmet.entity.evaluationindex.extract.FactOriginProjectLogDailyEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -96,4 +93,14 @@ public interface FactOriginProjectLogDailyDao extends BaseDao selectSatisfaction(@Param("customerId") String customerId, @Param("monthId") String monthId, @Param("level")String level); + + /** + * @Description 查询各项目经受了多少机关 + * @param customerId + * @return + * @author wangc + * @date 2020.09.20 23:46 + **/ + List selectProjectParticipatedAgency(@Param("customerId") String customerId, @Param("dimId") String dimId, + @Param("dateType")String dateType); } 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 87e8342706..72932604b2 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 @@ -18,10 +18,12 @@ package com.epmet.dao.evaluationindex.extract; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.extract.result.OrgResponseTimeResultDTO; import com.epmet.dto.extract.result.OrgStatisticsResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginProjectOrgPeriodDailyEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.springframework.web.bind.annotation.PostMapping; import java.util.List; @@ -76,4 +78,22 @@ public interface FactOriginProjectOrgPeriodDailyDao extends BaseDao list); + + /** + * @Description 查找网格、部门对项目的响应系数 + * @param customerId + * @return + * @author wangc + * @date 2020.09.21 02:13 + **/ + List selectSubOrgResponseCoefficient(@Param("customerId") String customerId,@Param("dimId") String dimId, @Param("dateType") String dateType); + + /** + * @Description 查找机关对项目的响应系数 + * @param customerId + * @return + * @author wangc + * @date 2020.09.21 02:13 + **/ + List selectAgencyResponseCoefficient(@Param("customerId") String customerId,@Param("dimId") String dimId, @Param("dateType") String dateType); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimGridDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimGridDao.java index 3087abdd21..310dbc6ee5 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimGridDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimGridDao.java @@ -78,5 +78,5 @@ public interface DimGridDao extends BaseDao { * @author wangc * @date 2020.09.20 13:01 **/ - List selectGridAttributes(@Param("gridIds") List gridIds); + List selectGridAttributes(@Param("customerId") String customerId,@Param("gridIds") List gridIds); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java index 72f840ba81..e32e492e5e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectLogDailyService.java @@ -26,6 +26,7 @@ import com.epmet.dto.extract.result.NotReturnProjectResultDTO; import com.epmet.dto.extract.result.ProjectEvaluateResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginProjectLogDailyEntity; +import java.math.BigDecimal; import java.util.List; import java.util.Map; @@ -155,4 +156,23 @@ public interface FactOriginProjectLogDailyService extends BaseService */ List getSatisfaction(String customerId, String monthId, String level); + + /** + * @Description 查询各机关办结了多少项目 + * @param customerId + * @return + * @author wangc + * @date 2020.09.20 23:46 + **/ + Map getProjectHandledAgency(String customerId, String dimId,String dateType); + + /** + * @Description 计算机关响应度 + * @param customerId + * @return + * @author wangc + * @date 2020.09.21 02:16 + **/ + Map getAgencyResponseRatio(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/impl/FactOriginProjectLogDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectLogDailyServiceImpl.java index a62fdd38e2..727bc75659 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectLogDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginProjectLogDailyServiceImpl.java @@ -21,23 +21,25 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.dao.evaluationindex.extract.FactOriginProjectLogDailyDao; +import com.epmet.dao.evaluationindex.extract.FactOriginProjectOrgPeriodDailyDao; import com.epmet.dto.extract.FactOriginProjectLogDailyDTO; -import com.epmet.dto.extract.result.OrgStatisticsResultDTO; -import com.epmet.dto.extract.result.AutoNoMyResultDTO; -import com.epmet.dto.extract.result.NotReturnProjectResultDTO; -import com.epmet.dto.extract.result.ProjectEvaluateResultDTO; +import com.epmet.dto.extract.result.*; import com.epmet.entity.evaluationindex.extract.FactOriginProjectLogDailyEntity; import com.epmet.service.evaluationindex.extract.FactOriginProjectLogDailyService; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.*; +import java.util.stream.Collectors; /** * 项目明细_日统计 @@ -48,6 +50,8 @@ import java.util.Map; @Service public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl implements FactOriginProjectLogDailyService { + @Autowired + private FactOriginProjectOrgPeriodDailyDao projectOrgPeriodDailyDao; @Override public PageData page(Map params) { @@ -152,4 +156,79 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl getProjectHandledAgency(String customerId, String dimId, String dateType) { + Map result = new HashMap<>(); + List projectAgency = baseDao.selectProjectParticipatedAgency(customerId,dimId,dateType); + if(!CollectionUtils.isEmpty(projectAgency)){ + Map> map + = projectAgency.stream().collect(Collectors.groupingBy(ProjectParticipatedAgencyResultDTO :: getProjectId)); + + map.forEach((key ,agencies) ->{ + if(!CollectionUtils.isEmpty(agencies)) { + String highest = agencies.get(NumConstant.ZERO).getLevel(); + for (int i = NumConstant.ZERO; i < agencies.size(); i++) { + if(StringUtils.equals(agencies.get(i).getLevel(),highest)){ + if(null != result.get(agencies.get(i).getAgencyId())){ + result.put(key,result.get(agencies.get(i).getAgencyId()) + NumConstant.ONE); + }else{ + result.put(key,NumConstant.ONE); + } + }else break; + } + } + }); + } + return result; + } + + /** + * @Description 计算机关响应度 + * @param customerId + * @return + * @author wangc + * @date 2020.09.21 02:16 + **/ + @Override + public Map getAgencyResponseRatio(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<>(); + if(!CollectionUtils.isEmpty(agencyResponse)){ + agencyResponse.forEach(response -> { + consumingMap.put(response.getAgencyId(),response.getResponseTime()); + //注意,这里取的是去重后的项目次数,例如一个部门被项目流转了多次,项目数只算一次 + //如果需要改成不去重,只需response.getProjectTotal() + timeMap.put(response.getAgencyId(),response.getDistinctProjectTotal()); + }); + } + if(!CollectionUtils.isEmpty(gridDeptResponse)){ + gridDeptResponse.forEach(response -> { + if(null != consumingMap.get(response.getAgencyId())){ + consumingMap.put(response.getAgencyId(),consumingMap.get(response.getAgencyId()).add(response.getResponseTime())); + timeMap.put(response.getAgencyId(),timeMap.get(response.getAgencyId()).add(response.getDistinctProjectTotal())); + }else{ + consumingMap.put(response.getAgencyId(),response.getResponseTime()); + timeMap.put(response.getAgencyId(),response.getDistinctProjectTotal()); + } + }); + } + Map ratioMap = 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)); + }); + } + return ratioMap; + } + + } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java index 9d3c89eca8..4a47ab67fa 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/GroupExtractServiceImpl.java @@ -90,7 +90,7 @@ public class GroupExtractServiceImpl implements GroupExtractService { List memberList = new LinkedList<>(); if (!CollectionUtils.isEmpty(originGroupData)) { - List gridList = dimGridService.getGridAttributes(originGroupData.stream().map(FactOriginGroupMainDailyDTO::getGridId).distinct().collect(Collectors.toList())); + List gridList = dimGridService.getGridAttributes(param.getCustomerId(),originGroupData.stream().map(FactOriginGroupMainDailyDTO::getGridId).distinct().collect(Collectors.toList())); if (!CollectionUtils.isEmpty(gridList)) { Map gridMap = @@ -130,12 +130,11 @@ public class GroupExtractServiceImpl implements GroupExtractService { if (count <= NumConstant.ZERO) { //isFirst - factOriginGroupMainDailyDao.deleteBatchByCustomerId(param.getCustomerId()); factOriginGroupMainDailyDao.deleteBatchMemberByCustomerId(param.getCustomerId()); factOriginGroupMainDailyDao.insertBatchMain(originGroupData); factOriginGroupMainDailyDao.insertBatchMembers(memberList); } else { - factOriginGroupMainDailyDao.deleteBatchByGroupId(originGroupData.stream().map(FactOriginGroupMainDailyDTO :: getId).distinct().collect(Collectors.toList())); + factOriginGroupMainDailyDao.deleteBatchByGroupId(param.getCustomerId(),originGroupData.stream().map(FactOriginGroupMainDailyDTO :: getId).distinct().collect(Collectors.toList())); factOriginGroupMainDailyDao.insertBatchMembers(memberList); } @@ -145,8 +144,8 @@ public class GroupExtractServiceImpl implements GroupExtractService { List partyIds = userService.getPartymembersByCustomerId(param.getCustomerId()); List heartedIds = userService.getWarmHeartedByCustomerId(param.getCustomerId()); - factOriginGroupMainDailyDao.updatePartyFlag(partyIds); - factOriginGroupMainDailyDao.updateHeartedFlag(heartedIds); + factOriginGroupMainDailyDao.updatePartyFlag(partyIds,param.getCustomerId()); + factOriginGroupMainDailyDao.updateHeartedFlag(heartedIds,param.getCustomerId()); } } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectExtractServiceImpl.java index f1e8d60dff..26cb96daf1 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/ProjectExtractServiceImpl.java @@ -344,4 +344,6 @@ public class ProjectExtractServiceImpl implements ProjectExtractService { } return result; } + + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollStreetServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollStreetServiceImpl.java index 8f32d7507a..51d688745e 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollStreetServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/IndexCollStreetServiceImpl.java @@ -15,6 +15,7 @@ import com.epmet.service.evaluationindex.indexcoll.FactIndexGovrnAblityOrgMonthl import com.epmet.service.evaluationindex.indexcoll.IndexCollStreetService; import com.epmet.service.stats.DimAgencyService; import com.epmet.util.DimIdGenerator; +import io.swagger.models.auth.In; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -23,6 +24,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -63,9 +65,12 @@ public class IndexCollStreetServiceImpl implements IndexCollStreetService { entity.setMonthId(dimId.getMonthId()); entity.setDataType(OrgTypeConstant.STREET); entity.setTransferedCount(NumConstant.ZERO); + //办结项目数 entity.setClosedProjectCount(NumConstant.ZERO); + //项目响应度 entity.setRespProjectRatio(new BigDecimal(NumConstant.ZERO)); entity.setOverdueProjectRatio(new BigDecimal(NumConstant.ZERO)); + //办结项目率 entity.setClosedProjectRatio(new BigDecimal(NumConstant.ZERO)); entity.setSatisfactionRatio(new BigDecimal(NumConstant.ZERO)); entity.setHandleProjectRatio(new BigDecimal(NumConstant.ZERO)); @@ -105,6 +110,20 @@ public class IndexCollStreetServiceImpl implements IndexCollStreetService { } })); } + //办结数 + Map agencyHandleCount = factOriginProjectLogDailyService.getProjectHandledAgency(customerId,dimId.getMonthId(),"month"); + Map responseMap = factOriginProjectLogDailyService.getAgencyResponseRatio(customerId,dimId.getMonthId(),"month"); + list.forEach(entity ->{ + entity.setClosedProjectCount(agencyHandleCount.get(entity.getAgencyId())); + BigDecimal element = entity.getClosedProjectRatio(); + //办结率 + entity.setClosedProjectRatio( + element.divide(new BigDecimal(entity.getTransferedCount()), NumConstant.SIX, RoundingMode.HALF_UP) + ); + //响应度 + entity.setRespProjectRatio(responseMap.get(entity.getAgencyId())); + }); + factIndexGovrnAblityOrgMonthlyService.deleteByCustomer(customerId, dimId.getMonthId(), OrgTypeConstant.STREET); factIndexGovrnAblityOrgMonthlyService.insertBatch(list); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java index 6d4f47d76c..c29bf789a5 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java @@ -181,4 +181,6 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl { * @author wangc * @date 2020.09.20 13:01 **/ - List getGridAttributes(List gridIds); + List getGridAttributes(String customerId,List gridIds); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java index 6a6a5ff323..5062b8e94f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimGridServiceImpl.java @@ -185,8 +185,8 @@ public class DimGridServiceImpl extends BaseServiceImpl getGridAttributes(List gridIds) { + public List getGridAttributes(String customerId,List gridIds) { if(CollectionUtils.isEmpty(gridIds)) return Collections.EMPTY_LIST; - return baseDao.selectGridAttributes(gridIds); + return baseDao.selectGridAttributes(customerId,gridIds); } } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml index 305b618772..c3dfa906d8 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml @@ -48,7 +48,8 @@ DELETE FROM fact_origin_group_main_daily - + CUSTOMER_ID = #{customerId} + ID = #{groupId} @@ -59,6 +60,7 @@ SET IS_OWNER_PARTY = 1 DEL_FLAG = '0' + AND CUSTOMER_ID = #{customerId} AND GROUP_OWNER_ID = #{ownerId} @@ -71,6 +73,7 @@ SET IS_OWNER_HEARTED = 1 DEL_FLAG = '0' + AND CUSTOMER_ID = #{customerId} AND (GROUP_OWNER_ID = #{item.userId} AND GRID_ID = #{item.gridId}) 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 6047bc9726..2a52eb8076 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 @@ -116,4 +116,54 @@ GROUP BY AGENCY_ID + + \ No newline at end of file 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 20f45783a4..bf502d1af2 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 @@ -115,4 +115,68 @@ ) + + + + + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimGridDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimGridDao.xml index 09aa1bee36..bbc7e463e1 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimGridDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimGridDao.xml @@ -101,6 +101,7 @@ WHERE dg.DEL_FLAG = '0' AND da.DEL_FLAG = '0' + AND da.CUSTOMER_ID = #{customerId} AND ( From c3d3ef66935c7d269f2a5db9beb8e584eb2ac62e Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 21 Sep 2020 09:55:14 +0800 Subject: [PATCH 30/33] =?UTF-8?q?=E5=85=9A=E5=91=98=E7=9B=B8=E5=85=B3-?= =?UTF-8?q?=E5=85=9A=E5=BB=BA=E8=83=BD=E5=8A=9B=E8=AE=A1=E7=AE=97V0.4=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9monthId,yearId,quarterId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/impl/CalCpcIndexServiceImpl.java | 6 ++++++ .../resources/mapper/stats/DimCustomerPartymemberDao.xml | 8 +++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalCpcIndexServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalCpcIndexServiceImpl.java index d7cf968388..4c930bec8a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalCpcIndexServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalCpcIndexServiceImpl.java @@ -2,6 +2,7 @@ package com.epmet.service.evaluationindex.extract.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.utils.DateUtils; import com.epmet.constant.DataSourceConstant; import com.epmet.constant.IndexCalConstant; import com.epmet.dao.evaluationindex.extract.FactOriginGroupMainDailyDao; @@ -62,6 +63,8 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { log.info("dim_customer_partymember do not any records"); return; } + String quarterId= DateUtils.getQuarterId(monthId); + String yearId=DateUtils.getYearId(monthId); //2、删除之前统计过的 deleteFactIndexPartyAblityCpcMonthly(customerId, monthId); @@ -89,6 +92,9 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { //3、计算实际值,更新 for (FactIndexPartyAblityCpcMonthlyEntity indexPartyAblityCpcEntity : indexPartyAblityCpcList) { + indexPartyAblityCpcEntity.setMonthId(monthId); + indexPartyAblityCpcEntity.setQuarterId(quarterId); + indexPartyAblityCpcEntity.setYearId(yearId); //1、党员提出话题数 if (createTopicCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())) { indexPartyAblityCpcEntity.setCreateTopicCount(createTopicCountMap.get(indexPartyAblityCpcEntity.getUserId())); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimCustomerPartymemberDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimCustomerPartymemberDao.xml index 04b111bef6..b8465ad316 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimCustomerPartymemberDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimCustomerPartymemberDao.xml @@ -68,11 +68,9 @@ dcp.GRID_ID, dcp.AGENCY_ID, dcp.PARENT_ID, - dcp.DATE_ID, - dcp.WEEK_ID, - dcp.MONTH_ID, - dcp.QUARTER_ID, - dcp.YEAR_ID, + null as MONTH_ID, + null as QUARTER_ID, + null as YEAR_ID, dcp.USER_ID, 0 as CREATE_TOPIC_COUNT, 0 as JOIN_TOPIC_COUNT, From b997ca7d9d786029c57dc2f6b4590b476846f027 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 21 Sep 2020 10:12:18 +0800 Subject: [PATCH 31/33] =?UTF-8?q?=E7=BD=91=E6=A0=BC=E7=9B=B8=E5=85=B3=20?= =?UTF-8?q?=E5=85=9A=E5=BB=BA=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/result/PartyActiveResultDTO.java | 25 ++++++++++ .../extract/FactOriginIssueLogDailyDao.java | 11 +++++ .../extract/FactOriginTopicLogDailyDao.java | 11 +++++ .../FactOriginTopicLogDailyService.java | 11 +++++ .../extract/IssueExtractService.java | 11 +++++ .../extract/impl/CalGridIndexServiceImpl.java | 47 ++++++++++++++++++- .../FactOriginTopicLogDailyServiceImpl.java | 14 ++++++ .../extract/impl/IssueExtractServiceImpl.java | 13 +++++ .../extract/FactOriginIssueLogDailyDao.xml | 13 +++++ .../extract/FactOriginTopicLogDailyDao.xml | 13 +++++ 10 files changed, 167 insertions(+), 2 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/PartyActiveResultDTO.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/PartyActiveResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/PartyActiveResultDTO.java new file mode 100644 index 0000000000..53bc3f2658 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/PartyActiveResultDTO.java @@ -0,0 +1,25 @@ +package com.epmet.dto.extract.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2020/9/21 9:35 上午 + */ +@Data +public class PartyActiveResultDTO implements Serializable { + + private static final long serialVersionUID = 4694666116463447613L; + + /** + * 网格ID + */ + private String gridId; + + /** + * 动作操作用户ID + */ + private String userId; +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueLogDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueLogDailyDao.java index b7d86e4353..1e4ab97477 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueLogDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueLogDailyDao.java @@ -19,6 +19,7 @@ package com.epmet.dao.evaluationindex.extract; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.extract.form.IssueLogDailyFormDTO; +import com.epmet.dto.extract.result.PartyActiveResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginIssueLogDailyEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -61,4 +62,14 @@ public interface FactOriginIssueLogDailyDao extends BaseDao selectPartyActiveIssueVote(@Param("customerId")String customerId,@Param("monthId") String monthId,@Param("isParty") Integer isParty); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicLogDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicLogDailyDao.java index ab43a21b2e..198625b577 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicLogDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicLogDailyDao.java @@ -18,6 +18,7 @@ package com.epmet.dao.evaluationindex.extract; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.extract.result.PartyActiveResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginTopicLogDailyEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -93,4 +94,14 @@ public interface FactOriginTopicLogDailyDao extends BaseDao selectTopicIds(@Param("list") List groupIdList); + + /** + * @Description 查询 话题评论【党员/群众】 + * @param customerId + * @param monthId + * @param isParty + * @author zxc + * @date 2020/9/21 9:37 上午 + */ + List selectPartyActiveTopic(@Param("customerId")String customerId,@Param("monthId") String monthId,@Param("isParty") Integer isParty); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicLogDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicLogDailyService.java index f5eb32bd09..3946572305 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicLogDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginTopicLogDailyService.java @@ -19,6 +19,7 @@ package com.epmet.service.evaluationindex.extract; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.extract.result.PartyActiveResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginTopicLogDailyEntity; import java.util.List; @@ -71,4 +72,14 @@ public interface FactOriginTopicLogDailyService extends BaseService selectTopicIds(List groupIdList); + + /** + * @Description 查询 话题评论【党员/群众】 + * @param customerId + * @param monthId + * @param isParty + * @author zxc + * @date 2020/9/21 9:37 上午 + */ + List selectPartyActiveTopic(String customerId, String monthId,Integer isParty); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java index 0b7ec04c48..45f9c1ff0a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/IssueExtractService.java @@ -3,6 +3,7 @@ package com.epmet.service.evaluationindex.extract; import com.epmet.dto.extract.form.ExtractFormDTO; import com.epmet.dto.extract.form.GridIssueCountResultDTO; import com.epmet.dto.extract.result.GridProjectCountResultDTO; +import com.epmet.dto.extract.result.PartyActiveResultDTO; import com.epmet.dto.extract.result.ShiftProjectCountResultDTO; import java.util.List; @@ -90,4 +91,14 @@ public interface IssueExtractService { * @Date 2020/9/20 22:50 **/ Integer selectIssueTotalTwoMonth(List topicIdList); + + /** + * @Description 查询 议题表决【党员/群众】 + * @param customerId + * @param monthId + * @param isParty + * @author zxc + * @date 2020/9/21 9:37 上午 + */ + List selectPartyActiveIssueVote(String customerId, String monthId, Integer isParty); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java index 9fea4c2476..aa240d30aa 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/CalGridIndexServiceImpl.java @@ -33,7 +33,6 @@ import java.util.stream.Collectors; */ @Service @Slf4j -//@DataSource(DataSourceConstant.EVALUATION_INDEX) public class CalGridIndexServiceImpl implements CalGridIndexService { @Autowired @@ -56,6 +55,8 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { private FactArticlePublishedGridDailyService articlePublishedGridDailyService; @Autowired private GroupExtractService groupExtractService; + @Autowired + private FactOriginTopicLogDailyService topicLogService; /** * @Description 计算网格指标党建能力 @@ -88,6 +89,32 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { List gridIssueShiftProjectRatio = getGridIssueShiftProjectRatio(gridIssueTotalList, gridProjectTotalList); // 建群党员数 List partyCreateGroupCountList = groupExtractService.selectPartyCreateGroupCount(customerId, monthId); + //结合目前产品,数据来源:话题评论、议题表决 + //网格活跃群众用户数 + Map gridMassActiveMap = new HashMap<>(16); + List massActiveList = topicLogService.selectPartyActiveTopic(customerId, monthId, NumConstant.ZERO); + List massActiveIssueVote = issueExtractService.selectPartyActiveIssueVote(customerId, monthId, NumConstant.ZERO); + massActiveList.addAll(massActiveIssueVote); + if (!CollectionUtils.isEmpty(massActiveList)) { + Map> collectMap = massActiveList.stream().collect(Collectors.groupingBy(PartyActiveResultDTO::getGridId)); + collectMap.forEach((gridId, massActive) -> { + List userIds = massActive.stream().map(mass -> mass.getUserId()).distinct().collect(Collectors.toList()); + gridMassActiveMap.put(gridId, userIds.size()); + }); + } + //网格活跃党员用户数 + Map gridPartyActiveMap = new HashMap<>(16); + List partyActiveList = topicLogService.selectPartyActiveTopic(customerId, monthId, NumConstant.ONE); + List partyActiveIssueVote = issueExtractService.selectPartyActiveIssueVote(customerId, monthId, NumConstant.ONE); + partyActiveList.addAll(partyActiveIssueVote); + if (!CollectionUtils.isEmpty(partyActiveList)){ + Map> collectMap = massActiveList.stream().collect(Collectors.groupingBy(PartyActiveResultDTO::getGridId)); + collectMap.forEach((gridId, partyActive) -> { + List userIds = partyActive.stream().map(party -> party.getUserId()).distinct().collect(Collectors.toList()); + gridPartyActiveMap.put(gridId, userIds.size()); + }); + } + String quarterId = DateUtils.getQuarterId(monthId); String yearId = DateUtils.getYearId(monthId); result.forEach(r -> { @@ -158,6 +185,22 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { } }); } + // 9. 网格活跃群众用户数 + if (null != gridMassActiveMap){ + gridMassActiveMap.forEach((k,v) -> { + if (r.getGridId().equals(k)){ + r.setActiveUserCount(v); + } + }); + } + // 10. 网格活跃党员用户数 + if (null != gridPartyActiveMap){ + gridPartyActiveMap.forEach((k,v) -> { + if (r.getGridId().equals(k)){ + r.setActivePartyCount(v); + } + }); + } }); delAndInsertPartyAbility(result,customerId,monthId); return true; @@ -323,7 +366,7 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { } /** - * @Description 小数四舍五入 + * @Description 小数四舍五入【保留六位小数】 * @param d * @author zxc * @date 2020/9/18 2:01 下午 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicLogDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicLogDailyServiceImpl.java index d1f1ed681a..e2f4b39e16 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicLogDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginTopicLogDailyServiceImpl.java @@ -21,6 +21,7 @@ import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.evaluationindex.extract.FactOriginTopicLogDailyDao; +import com.epmet.dto.extract.result.PartyActiveResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginTopicLogDailyEntity; import com.epmet.service.evaluationindex.extract.FactOriginTopicLogDailyService; import org.springframework.stereotype.Service; @@ -96,4 +97,17 @@ public class FactOriginTopicLogDailyServiceImpl extends BaseServiceImpl selectPartyActiveTopic(String customerId, String monthId, Integer isParty) { + return baseDao.selectPartyActiveTopic(customerId, monthId, isParty); + } } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java index 78bb8a187c..2c6414b910 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/IssueExtractServiceImpl.java @@ -324,4 +324,17 @@ public class IssueExtractServiceImpl implements IssueExtractService { public Integer selectIssueTotalTwoMonth(List topicIdList) { return issueMainDailyDao.selectIssueTotalTwoMonth(topicIdList); } + + /** + * @Description 查询 议题表决【党员/群众】 + * @param customerId + * @param monthId + * @param isParty + * @author zxc + * @date 2020/9/21 9:37 上午 + */ + @Override + public List selectPartyActiveIssueVote(String customerId, String monthId, Integer isParty) { + return issueLogDailyDao.selectPartyActiveIssueVote(customerId, monthId, isParty); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueLogDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueLogDailyDao.xml index 862f0488c5..1f62f10256 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueLogDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginIssueLogDailyDao.xml @@ -78,4 +78,17 @@ T1.ACTION_CODE = 'vote_support' OR T1.ACTION_CODE = 'vote_opposition') + + + \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicLogDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicLogDailyDao.xml index 848a0d733a..bbb25ff3ae 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicLogDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicLogDailyDao.xml @@ -128,4 +128,17 @@ T1.GROUP_ID =#{groupId} + + + \ No newline at end of file From 83d0b78762c5a3605f85a48634a2bed2f41471bf Mon Sep 17 00:00:00 2001 From: jianjun Date: Mon, 21 Sep 2020 10:12:34 +0800 Subject: [PATCH 32/33] =?UTF-8?q?=E6=8C=87=E6=A0=87=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=8A=BD=E5=8F=96formDTO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/extract/form/ExtractIndexFormDTO.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/ExtractIndexFormDTO.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/ExtractIndexFormDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/ExtractIndexFormDTO.java new file mode 100644 index 0000000000..c188b64a57 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/form/ExtractIndexFormDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.extract.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * desc:抽取指标数据 参数dto + */ +@Data +public class ExtractIndexFormDTO implements Serializable { + + + private static final long serialVersionUID = 1248641210655148366L; + + private String customerId; + + private String monthId; + +} From 10089700cdd9be0143a9510f90e8c0d5fb35dfb6 Mon Sep 17 00:00:00 2001 From: jianjun Date: Mon, 21 Sep 2020 10:33:54 +0800 Subject: [PATCH 33/33] =?UTF-8?q?=E6=8A=BD=E5=8F=96=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/DataStatisticalOpenFeignClient.java | 22 +++ .../feign/FactExtractOpenFeignClient.java | 30 ---- ...ataStatisticalOpenFeignClientFallBack.java | 28 +++- .../FactExtractOpenFeignClientFallBack.java | 26 ++++ .../controller/FactOriginController.java | 135 ------------------ .../IndexOriginExtractController.java | 37 +++++ .../FactOriginProjectMainDailyService.java | 3 +- .../IndexOriginExtractService.java | 18 +++ .../impl/IndexOriginExtractServiceImpl.java | 105 ++++++++++++++ .../impl/FactOriginExtractServiceImpl.java | 1 + .../IndexOriginExtractTaskService.java | 24 ++++ .../FactOriginExtractTaskServiceImpl.java | 6 +- .../IndexOriginExtractTaskServiceImpl.java | 30 ++++ .../epmet/task/IndexOriginExtractTask.java | 38 +++++ 14 files changed, 332 insertions(+), 171 deletions(-) delete mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/FactExtractOpenFeignClient.java delete mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexOriginExtractController.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/IndexOriginExtractService.java create mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexOriginExtractServiceImpl.java create mode 100644 epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/IndexOriginExtractTaskService.java create mode 100644 epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/IndexOriginExtractTaskServiceImpl.java create mode 100644 epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/IndexOriginExtractTask.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java index 5d2892bfe0..ee35accdae 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java @@ -3,6 +3,8 @@ package com.epmet.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.StatsFormDTO; +import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.ExtractIndexFormDTO; import com.epmet.dto.group.form.GroupStatsFormDTO; import com.epmet.dto.issue.form.IssueJobFromDTO; import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO; @@ -182,11 +184,31 @@ public interface DataStatisticalOpenFeignClient { */ @PostMapping("/data/stats/dim/statsparty") Result getPartyInfo(@RequestBody CustomerIdAndDateIdFormDTO customerIdAndDateIdFormDTO); + /** * 处理暂停的计算 + * * @return */ @PostMapping("/data/stats/indexcalculate/process-pendding-cals") Result processPenddingCalculate(); + /** + * desc: 【日】抽取业务数据到统计库 小组 话题 议题 项目 + * + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @PostMapping(value = "data/stats/factorigin/extractall") + Result factOriginExtractAll(@RequestBody(required = false) ExtractFormDTO formDTO); + + /** + * desc: 【月】抽取统计数据到指标库 + * + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @PostMapping(value = "data/stats/indexorigin/extractall") + Result indexOriginExtractAll(@RequestBody(required = false) ExtractIndexFormDTO formDTO); + } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/FactExtractOpenFeignClient.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/FactExtractOpenFeignClient.java deleted file mode 100644 index 97bd66843c..0000000000 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/FactExtractOpenFeignClient.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.epmet.feign; - -import com.epmet.commons.tools.constant.ServiceConstant; -import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.extract.form.ExtractFormDTO; -import com.epmet.feign.impl.FactExtractOpenFeignClientFallBack; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; - -/** - * desc: 数据抽取 对外feign client - * - * @return: - * @date: 2020/6/22 17:39 - * @author: jianjun liu - */ -@FeignClient(name = ServiceConstant.DATA_STATISTICAL_SERVER, fallback = FactExtractOpenFeignClientFallBack.class) -public interface FactExtractOpenFeignClient { - - /** - * desc: 【日】抽取业务数据到统计库 小组 话题 议题 项目 - * - * @date: 2020/6/22 9:09 - * @author: jianjun liu - */ - @PostMapping(value = "data/stats/factorigin/extractall") - Result extractall(@RequestBody(required = false) ExtractFormDTO formDTO); - -} diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java index f14f0807cb..cec2bb3195 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java @@ -4,6 +4,8 @@ import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.StatsFormDTO; +import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.ExtractIndexFormDTO; import com.epmet.dto.group.form.GroupStatsFormDTO; import com.epmet.dto.issue.form.IssueJobFromDTO; import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO; @@ -174,11 +176,35 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp @Override public Result getPartyInfo(CustomerIdAndDateIdFormDTO customerIdAndDateIdFormDTO) { - return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "getPartyInfo",customerIdAndDateIdFormDTO); + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "getPartyInfo", customerIdAndDateIdFormDTO); } @Override public Result processPenddingCalculate() { return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "processPenddingCalculate"); } + + /** + * desc: 【日】抽取业务数据到统计库 小组 话题 议题 项目 + * + * @param formDTO + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @Override + public Result factOriginExtractAll(ExtractFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "factOriginExtractAll", formDTO); + } + + /** + * desc: 【月】抽取统计数据到指标库 + * + * @param formDTO + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @Override + public Result indexOriginExtractAll(ExtractIndexFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "indexOriginExtractAll", formDTO); + } } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/FactExtractOpenFeignClientFallBack.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/FactExtractOpenFeignClientFallBack.java index b5a24ce131..b06cc18485 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/FactExtractOpenFeignClientFallBack.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/FactExtractOpenFeignClientFallBack.java @@ -4,6 +4,8 @@ import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.StatsFormDTO; +import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.dto.extract.form.ExtractIndexFormDTO; import com.epmet.dto.group.form.GroupStatsFormDTO; import com.epmet.dto.issue.form.IssueJobFromDTO; import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO; @@ -181,4 +183,28 @@ public class FactExtractOpenFeignClientFallBack implements DataStatisticalOpenFe public Result processPenddingCalculate() { return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "processPenddingCalculate"); } + + /** + * desc: 【日】抽取业务数据到统计库 小组 话题 议题 项目 + * + * @param formDTO + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @Override + public Result factOriginExtractAll(ExtractFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "factOriginExtractAll", formDTO); + } + + /** + * desc: 【月】抽取统计数据到指标库 + * + * @param formDTO + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @Override + public Result indexOriginExtractAll(ExtractIndexFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "indexOriginExtractAll", formDTO); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java deleted file mode 100644 index 0810df755a..0000000000 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginController.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.epmet.controller; - -import com.epmet.commons.tools.utils.DateUtils; -import com.epmet.commons.tools.utils.Result; -import com.epmet.commons.tools.validator.ValidatorUtils; -import com.epmet.dto.extract.form.ExtractFormDTO; -import com.epmet.service.evaluationindex.extract.*; -import com.epmet.util.DimIdGenerator; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.Date; - - -/** - * 原始数据清洗 - * - * @author yinzuomei@elink-cn.com - * @date 2020/9/15 11:06 - */ -@RestController -@RequestMapping("factorigin") -public class FactOriginController { - @Autowired - private FactOriginExtractService factOriginExtractService; - @Autowired - private IssueExtractService issueExtractService; - @Autowired - private FactOriginTopicMainDailyService factOriginTopicMainDailyService; - @Autowired - private ProjectExtractService projectExtractService; - @Autowired - private GroupExtractService groupExtractService; - - /** - * desc:抽取业务数据到统计库 - * - * @param extractFormDTO 默认统计前一天 - * @return - */ - @PostMapping("extractall") - public Result extractAll(@RequestBody ExtractFormDTO extractFormDTO) { - if (StringUtils.isNotBlank(extractFormDTO.getStartDate()) && StringUtils.isNotBlank(extractFormDTO.getEndDate())) { - Date startDate = DateUtils.stringToDate(extractFormDTO.getStartDate(), "yyyyMMdd"); - Date endDate = DateUtils.stringToDate(extractFormDTO.getEndDate(), "yyyyMMdd"); - do { - String dateDimId = DimIdGenerator.getDateDimId(startDate); - extractFormDTO.setDateId(dateDimId); - factOriginExtractService.extractAll(extractFormDTO); - startDate = DateUtils.addDateDays(DateUtils.stringToDate(extractFormDTO.getStartDate(), "yyyyMMdd"), 1); - } while (endDate.compareTo(startDate) >= 0); - } else { - factOriginExtractService.extractAll(extractFormDTO); - } - return new Result(); - } - - - /** - * @param extractFormDTO - * @Description 议题抽取(main) - * @author zxc - * @date 2020/9/15 2:02 下午 - */ - @PostMapping("issueextractmain") - public Result issueExtractMain(@RequestBody ExtractFormDTO extractFormDTO) { - ValidatorUtils.validateEntity(extractFormDTO, ExtractFormDTO.ExtractForm.class); - issueExtractService.issueExtractMain(extractFormDTO); - return new Result(); - } - - /** - * @Description 议题抽取(log) - * @param extractFormDTO - * @author zxc - * @date 2020/9/16 9:41 上午 - */ - @PostMapping("issueextractlog") - public Result issueExtractLog(@RequestBody ExtractFormDTO extractFormDTO){ - ValidatorUtils.validateEntity(extractFormDTO, ExtractFormDTO.ExtractForm.class); - issueExtractService.issueExtractLog(extractFormDTO); - return new Result(); - } - - /** - * @param extractFormDTO - * @return com.epmet.commons.tools.utils.Result - * @author yinzuomei - * @description 话题 (fact_origin_topic_main_daily 话题主表_日统计 fact_origin_topic_log_daily 话题明细_日统计) - * @Date 2020/9/15 13:39 - **/ - @PostMapping("topic") - public Result topicDataCleaning(@RequestBody ExtractFormDTO extractFormDTO) { - if (StringUtils.isNotBlank(extractFormDTO.getCustomerId()) && StringUtils.isNotBlank(extractFormDTO.getDateId())) { - factOriginTopicMainDailyService.topicCleaning(extractFormDTO); - } - return new Result(); - } - - @PostMapping("project") - public Result projectData(@RequestBody ExtractFormDTO extractFormDTO) { - projectExtractService.saveOriginProjectDaily(extractFormDTO); - return new Result(); - } - - /** - * @Description 项目节点历时数据清洗 - * @param param - * @return - * @author wangc - * @date 2020.09.20 16:11 - **/ - @PostMapping("projectorgperiodcleanning") - public Result projectOrgPeriodCleaning(@RequestBody ExtractFormDTO param){ - projectExtractService.extractProjectPeriodData(param); - return new Result(); - } - - /** - * @Description 小组数据清洗 - * @param - * @return - * @author wangc - * @date 2020.09.20 16:11 - **/ - @PostMapping("groupdatacleaning") - public Result groupDataCleaning(@RequestBody ExtractFormDTO param){ - groupExtractService.extractGroupData(param); - return new Result(); - } -} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexOriginExtractController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexOriginExtractController.java new file mode 100644 index 0000000000..1f2b86020a --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexOriginExtractController.java @@ -0,0 +1,37 @@ +package com.epmet.controller; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.extract.form.ExtractIndexFormDTO; +import com.epmet.service.evaluationindex.extract.dataToIndex.IndexOriginExtractService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +/** + * 原始数据清洗 + * + * @author yinzuomei@elink-cn.com + * @date 2020/9/15 11:06 + */ +@RestController +@RequestMapping("indexorigin") +public class IndexOriginExtractController { + @Autowired + private IndexOriginExtractService indexOriginExtractService; + + + /** + * desc:抽取统计数据到指标库 + * + * @param extractFormDTO 默认统计上一个月 + * @return + */ + @PostMapping("extractall") + public Result extractAll(@RequestBody ExtractIndexFormDTO extractFormDTO) { + indexOriginExtractService.indexOriginExtractAll(extractFormDTO); + return new Result(); + } +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectMainDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectMainDailyService.java index e18d8251f5..cf6307d212 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectMainDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/FactOriginProjectMainDailyService.java @@ -20,8 +20,8 @@ package com.epmet.service.evaluationindex.extract; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.extract.FactOriginProjectMainDailyDTO; -import com.epmet.dto.extract.result.OrgStatisticsResultDTO; import com.epmet.dto.extract.result.GridProjectClosedTotalResultDTO; +import com.epmet.dto.extract.result.OrgStatisticsResultDTO; import com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity; import java.util.List; @@ -142,7 +142,6 @@ public interface FactOriginProjectMainDailyService extends BaseService> diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/IndexOriginExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/IndexOriginExtractService.java new file mode 100644 index 0000000000..773e902e00 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/IndexOriginExtractService.java @@ -0,0 +1,18 @@ +package com.epmet.service.evaluationindex.extract.dataToIndex; + +import com.epmet.dto.extract.form.ExtractIndexFormDTO; + +/** + * desc:将统计库对象数据抽取到指标库 服务接口 + * + * @author yinzuomei@elink-cn.com + * @date 2020/9/17 14:05 + */ +public interface IndexOriginExtractService { + /** + * desc:从统计库对象抽取指标数据 + * + * @param formDTO + */ + void indexOriginExtractAll(ExtractIndexFormDTO formDTO); +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexOriginExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexOriginExtractServiceImpl.java new file mode 100644 index 0000000000..febf3fc41e --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexOriginExtractServiceImpl.java @@ -0,0 +1,105 @@ +package com.epmet.service.evaluationindex.extract.dataToIndex.impl; + +import com.alibaba.fastjson.JSON; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.dto.extract.form.ExtractIndexFormDTO; +import com.epmet.service.evaluationindex.extract.CalCpcIndexService; +import com.epmet.service.evaluationindex.extract.CalGridIndexService; +import com.epmet.service.evaluationindex.extract.dataToIndex.IndexOriginExtractService; +import com.epmet.service.stats.DimCustomerService; +import com.epmet.util.DimIdGenerator; +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.concurrent.*; + +/** + * desc:指标原始数据抽取服务实现类 + */ +@Slf4j +@Service +public class IndexOriginExtractServiceImpl implements IndexOriginExtractService { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("indexOriginExtract-pool-%d").build(); + ExecutorService threadPool = new ThreadPoolExecutor(2, 8, + 10L, TimeUnit.MINUTES, + new LinkedBlockingQueue<>(500), namedThreadFactory, new ThreadPoolExecutor.CallerRunsPolicy()); + + @Autowired + private CalCpcIndexService calCpcIndexService; + @Autowired + private CalGridIndexService calGridIndexService; + @Autowired + private DimCustomerService dimCustomerService; + + /** + * desc:从统计库对象抽取指标数据 + * + * @param formDTO + */ + @Override + public void indexOriginExtractAll(ExtractIndexFormDTO formDTO) { + String monthId = formDTO.getMonthId(); + String customerId = formDTO.getCustomerId(); + if (StringUtils.isBlank(monthId)) { + monthId = DimIdGenerator.getDateDimId(DateUtils.addDateMonths(new Date(), -1)); + } + List customerIds = new ArrayList<>(); + if (StringUtils.isNotBlank(customerId)) { + customerIds.add(customerId); + } + int pageNo = NumConstant.ONE; + int pageSize = NumConstant.ONE_HUNDRED; + customerIds = dimCustomerService.selectCustomerIdPage(pageNo, pageSize); + if (CollectionUtils.isEmpty(customerIds)) { + log.error("indexOriginExtractAll 获取客户Id为空"); + return; + } + + String finalMonthId = monthId; + customerIds.forEach(cId -> { + ExtractIndexFormDTO param = new ExtractIndexFormDTO(); + param.setCustomerId(cId); + param.setMonthId(finalMonthId); + submitJob(param); + }); + } + + + private void submitJob(ExtractIndexFormDTO param) { + final String customerId = param.getCustomerId(); + final String monthId = param.getMonthId(); + threadPool.submit(() -> { + try { + calCpcIndexService.calCpcPartyAbility(customerId, monthId); + } catch (Exception e) { + log.error("抽取【党员相关数据】发生异常,参数:" + JSON.toJSONString(param), e); + } + }); + threadPool.submit(() -> { + try { + calGridIndexService.calGridIndexGovernAbility(customerId, monthId); + } catch (Exception e) { + log.error("抽取【网格治理能力数据】发生异常,参数:" + JSON.toJSONString(param), e); + } + try { + calGridIndexService.calGridIndexPartyAbility(customerId, monthId); + } catch (Exception e) { + log.error("抽取【网格党建能力数据】发生异常,参数:" + JSON.toJSONString(param), e); + } + try { + calGridIndexService.calGridIndexServiceAbility(customerId, monthId); + } catch (Exception e) { + log.error("抽取【网格服务能力数据】发生异常,参数:" + JSON.toJSONString(param), e); + } + }); + } +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginExtractServiceImpl.java index 6b1aa32805..0a10a193db 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/impl/FactOriginExtractServiceImpl.java @@ -98,6 +98,7 @@ public class FactOriginExtractServiceImpl implements FactOriginExtractService { threadPool.submit(() -> { try { projectExtractService.saveOriginProjectDaily(param); + projectExtractService.extractProjectPeriodData(param); } catch (Exception e) { log.error("抽取【项目数据】发生异常,参数:" + JSON.toJSONString(param), e); } diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/IndexOriginExtractTaskService.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/IndexOriginExtractTaskService.java new file mode 100644 index 0000000000..5416375c13 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/IndexOriginExtractTaskService.java @@ -0,0 +1,24 @@ +package com.epmet.service; + + +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.extract.form.ExtractIndexFormDTO; + +/** + * desc: 统计库数据抽取到指标库服务类 + * + * @return: + * @date: 2020/6/22 10:24 + * @author: jianjun liu + */ +public interface IndexOriginExtractTaskService { + + /** + * desc: 【月】抽取 数据到指标库 + * + * @param formDTO + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + Result indexOriginExtractJob(ExtractIndexFormDTO formDTO); +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/FactOriginExtractTaskServiceImpl.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/FactOriginExtractTaskServiceImpl.java index b9b818d305..9dfed79a57 100644 --- a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/FactOriginExtractTaskServiceImpl.java +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/FactOriginExtractTaskServiceImpl.java @@ -2,7 +2,7 @@ package com.epmet.service.impl; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.extract.form.ExtractFormDTO; -import com.epmet.feign.FactExtractOpenFeignClient; +import com.epmet.feign.DataStatisticalOpenFeignClient; import com.epmet.service.FactOriginExtractTaskService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -13,7 +13,7 @@ import org.springframework.stereotype.Service; @Service public class FactOriginExtractTaskServiceImpl implements FactOriginExtractTaskService { @Autowired - private FactExtractOpenFeignClient factExtractOpenFeignClient; + private DataStatisticalOpenFeignClient dataStatisticalOpenFeignClient; /** @@ -25,6 +25,6 @@ public class FactOriginExtractTaskServiceImpl implements FactOriginExtractTaskSe */ @Override public Result factOriginExtractJob(ExtractFormDTO formDTO) { - return factExtractOpenFeignClient.extractall(formDTO); + return dataStatisticalOpenFeignClient.factOriginExtractAll(formDTO); } } diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/IndexOriginExtractTaskServiceImpl.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/IndexOriginExtractTaskServiceImpl.java new file mode 100644 index 0000000000..e734004bd7 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/service/impl/IndexOriginExtractTaskServiceImpl.java @@ -0,0 +1,30 @@ +package com.epmet.service.impl; + +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.extract.form.ExtractIndexFormDTO; +import com.epmet.feign.DataStatisticalOpenFeignClient; +import com.epmet.service.IndexOriginExtractTaskService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * desc:指标原始数据统计 任务服务类 + */ +@Service +public class IndexOriginExtractTaskServiceImpl implements IndexOriginExtractTaskService { + @Autowired + private DataStatisticalOpenFeignClient dataStatisticalOpenFeignClient; + + + /** + * desc: 【月】抽取 统计库对象数据到统计库 + * + * @param formDTO + * @date: 2020/6/22 9:09 + * @author: jianjun liu + */ + @Override + public Result indexOriginExtractJob(ExtractIndexFormDTO formDTO) { + return dataStatisticalOpenFeignClient.indexOriginExtractAll(formDTO); + } +} diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/IndexOriginExtractTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/IndexOriginExtractTask.java new file mode 100644 index 0000000000..f8f405587a --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/IndexOriginExtractTask.java @@ -0,0 +1,38 @@ +package com.epmet.task; + +import com.alibaba.fastjson.JSON; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.extract.form.ExtractFormDTO; +import com.epmet.service.FactOriginExtractTaskService; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * desc:数据抽取定时任务 定时任务 + */ +@Component("indexOriginExtractTask") +public class IndexOriginExtractTask implements ITask { + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private FactOriginExtractTaskService factOriginExtractTaskService; + + + @Override + public void run(String params) { + logger.info("indexOriginExtractTask定时任务正在执行,参数为:{}", params); + ExtractFormDTO formDTO = new ExtractFormDTO(); + if (StringUtils.isNotBlank(params)) { + formDTO = JSON.parseObject(params, ExtractFormDTO.class); + } + Result result = factOriginExtractTaskService.factOriginExtractJob(formDTO); + if (result.success()) { + logger.info("indexOriginExtractTask定时任务执行成功"); + } else { + logger.error("indexOriginExtractTask定时任务执行失败:" + result.getMsg()); + } + } +}