From d8d12db7986ea17c6e51166e82a81d9713c38912 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Fri, 10 Dec 2021 11:11:46 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E9=A1=B9=E7=9B=AE=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E5=88=86=E6=9E=90=E3=80=91=E7=A0=94=E5=88=A4=E5=88=86=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/ProjectAnalysisFormDTO.java | 5 +- .../result/ProjectAnalysisResultDTO.java | 65 ++- .../result/ProjectCategoryResultDTO.java | 33 ++ .../result/ProjectCategoryTotalResultDTO.java | 2 + .../dao/epmetuser/IcResiUserDao.java | 49 ++ .../dao/epmetuser/UserBaseInfoDao.java | 6 + .../dataaggre/dao/govproject/ProjectDao.java | 11 + .../entity/epmetuser/IcResiUserEntity.java | 493 ++++++++++++++++++ .../service/epmetuser/EpmetUserService.java | 21 + .../epmetuser/impl/EpmetUserServiceImpl.java | 32 ++ .../impl/GovProjectServiceImpl.java | 91 +++- .../mapper/epmetuser/IcResiUserDao.xml | 39 ++ .../mapper/epmetuser/UserBaseInfoDao.xml | 11 + .../mapper/govproject/ProjectDao.xml | 37 ++ 14 files changed, 873 insertions(+), 22 deletions(-) create mode 100644 epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectCategoryResultDTO.java create mode 100644 epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java create mode 100644 epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java create mode 100644 epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectAnalysisFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectAnalysisFormDTO.java index 1cf8e85373..d3d1a0e9a8 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectAnalysisFormDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectAnalysisFormDTO.java @@ -18,9 +18,6 @@ import java.util.List; @Data public class ProjectAnalysisFormDTO implements Serializable { private static final long serialVersionUID = -8515172319313536407L; - //日期yyyymmdd - @NotBlank(message = "日维度ID不能为空", groups = {Analysis.class}) - private String dateId; //小程序话题或事件发起人Id @NotBlank(message = "话题或事件发起人Id不能为空", groups = {Analysis.class}) private String userId; @@ -28,6 +25,8 @@ public class ProjectAnalysisFormDTO implements Serializable { @NotNull(message = "分类Code集合不能为空", groups = {Analysis.class}) private List categoryCodeList; + private String customerId; + public interface Analysis extends CustomerClientShowGroup { } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectAnalysisResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectAnalysisResultDTO.java index 62a949a3d2..2601c26a63 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectAnalysisResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectAnalysisResultDTO.java @@ -3,6 +3,8 @@ package com.epmet.dataaggre.dto.govproject.result; import lombok.Data; import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; /** * @Description 赋能平台【项目处理分析】研判分析-接口返参 @@ -12,23 +14,50 @@ import java.io.Serializable; public class ProjectAnalysisResultDTO implements Serializable { private static final long serialVersionUID = 6188316867855643263L; - //组织Id - private String agencyId; - //日期yyyymmdd - private String dateId; - //项目总数 - private Integer projectTotal = 0; - //较昨日数 - private Integer dateIncr = 0; - //较上月数 - private Integer monthIncr = 0; - //未结案项目数 - private Integer pendingTotal = 0; - //为结案项目占比 xx% - private String pendingRatio = "0%"; - //已结案项目数 - private Integer closedTotal = 0; - //已结案项目占比 - private String closedRatio = "0%"; + //小程序居民Id + private String userId; + //负能平台居民Id + private String icUserId; + //负能平台居民名称 + private String icUserName; + //家庭里人员集合 + private List homeUserList = new ArrayList<>(); + //楼院小组下分类项目列表 + private List groupProjectList = new ArrayList<>(); + //事件上报下分类项目列表 + private List eventProjectList = new ArrayList<>(); + + @Data + public static class Home { + //家庭Id + private String homeId; + //居民Id + private String icUserId; + //居民姓名 + private String icUserName; + + } + + @Data + public static class Category { + //一级分类Id + private String categoryCode; + //一级分类名称 + private String categoryName; + //分类下项目列表【创建时间倒序】 + private List projectList = new ArrayList<>(); + + + } + + @Data + public static class Project { + //项目Id + private String projectId; + //项目标题 + private String title; + //状态:待处理 pending,结案closed + private String status; + } } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectCategoryResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectCategoryResultDTO.java new file mode 100644 index 0000000000..f7846c3354 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectCategoryResultDTO.java @@ -0,0 +1,33 @@ +package com.epmet.dataaggre.dto.govproject.result; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @author sun + * @dscription + */ +@NoArgsConstructor +@Data +public class ProjectCategoryResultDTO implements Serializable { + + private static final long serialVersionUID = 3217246702883400582L; + /** + * 项目ID + */ + private String projectId; + /** + * 项目标题 + */ + private String title; + /** + * 项目状态 + */ + private String status; + /** + * 二级分类Code + */ + private String categoryCode; +} diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectCategoryTotalResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectCategoryTotalResultDTO.java index fabbad4ddf..c329d79cdf 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectCategoryTotalResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectCategoryTotalResultDTO.java @@ -18,6 +18,8 @@ public class ProjectCategoryTotalResultDTO implements Serializable { private String categoryCode; //一级分类名称 private String categoryName; + //一级分类颜色 + private String colour; //分类下项目总数 private Integer total = 0; diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java new file mode 100644 index 0000000000..1e34921a43 --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java @@ -0,0 +1,49 @@ +/** + * 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.dataaggre.dao.epmetuser; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dataaggre.dto.govproject.result.ProjectAnalysisResultDTO; +import com.epmet.dataaggre.entity.epmetuser.IcResiUserEntity; +import com.epmet.dto.IcResiUserDTO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 用户基础信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-10-26 + */ +@Mapper +public interface IcResiUserDao extends BaseDao { + + /** + * @Description 根据身份证号查询负能平台用户信息 + * @author sun + */ + IcResiUserDTO getIcResiUser(@Param("idCard") String idCard, @Param("customerId") String customerId); + + /** + * @Description 查询人员的家庭成员数据 + * @author sun + */ + List getHomeUserList(@Param("homeId") String homeId, @Param("icUserId") String icUserId); +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserBaseInfoDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserBaseInfoDao.java index 805657fc11..0ac5f211fc 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserBaseInfoDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserBaseInfoDao.java @@ -20,6 +20,7 @@ package com.epmet.dataaggre.dao.epmetuser; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dataaggre.dto.epmetuser.result.UserInfosResultDTO; import com.epmet.dataaggre.entity.epmetuser.UserBaseInfoEntity; +import com.epmet.dto.UserBaseInfoDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -50,4 +51,9 @@ public interface UserBaseInfoDao extends BaseDao { */ List selectUserIdByCustomerId(@Param("userIds") List userIds); + /** + * @Description 查询userId的身份证号在小程序用户中存在的多个userId值 + * @author sun + */ + List getUserBaseList(@Param("userId") String userId); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java index 05071b61e5..ee44c3cee8 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java @@ -27,6 +27,7 @@ import com.epmet.dataaggre.dto.govproject.form.CategoryProjectFormDTO; import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; import com.epmet.dataaggre.dto.govproject.result.*; import com.epmet.dataaggre.entity.govproject.ProjectEntity; +import com.epmet.dto.ProjectCategoryDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -104,4 +105,14 @@ public interface ProjectDao extends BaseDao { * @author sun */ List getTopicUser(@Param("projectIds") List projectIds); + + /** + * @Description 根据项目来源查询不同分类不同创建人下的分类项目 + * @author sun + */ + List getProjectCategoryList(@Param("customerId") String customerId, + @Param("secondCodeList") List secondCodeList, + @Param("userIds") List userIds, + @Param("origin") String origin); + } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java new file mode 100644 index 0000000000..e40441101d --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java @@ -0,0 +1,493 @@ +/** + * 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.dataaggre.entity.epmetuser; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 用户基础信息 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2021-10-26 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("ic_resi_user") +public class IcResiUserEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户Id customer.id + */ + private String customerId; + + /** + * + */ + private String agencyId; + + /** + * + */ + private String pids; + + /** + * 网格ID + */ + private String gridId; + + /** + * 所属小区ID + */ + private String villageId; + + /** + * 所属楼宇Id + */ + private String buildId; + + /** + * 单元id + */ + private String unitId; + + /** + * 所属家庭Id + */ + private String homeId; + + /** + * 是否本地户籍 + */ + private String isBdhj; + + /** + * 姓名 + */ + private String name; + + /** + * 手机号 + */ + private String mobile; + + /** + * 性别 + */ + private String gender; + + /** + * 身份证号 + */ + private String idCard; + + /** + * 出生日期 + */ + private String birthday; + + /** + * 备注 + */ + private String remarks; + + /** + * 联系人 + */ + private String contacts; + + /** + * 联系人电话 + */ + private String contactsMobile; + + /** + * 九小场所url + */ + private String ninePlace; + + /** + * 是否党员 + */ + private String isParty; + + /** + * 是否低保户 + */ + private String isDbh; + + /** + * 是否保障房 + */ + private String isEnsureHouse; + + /** + * 是否失业 + */ + private String isUnemployed; + + /** + * 是否育龄妇女 + */ + private String isYlfn; + + /** + * 是否退役军人 + */ + private String isVeterans; + + /** + * 是否统战人员 + */ + private String isUnitedFront; + + /** + * 是否信访人员 + */ + private String isXfry; + + /** + * 是否志愿者 + */ + private String isVolunteer; + + /** + * 是否老年人 + */ + private String isOldPeople; + + /** + * 是否空巢 + */ + private String isKc; + + /** + * 是否失独 + */ + private String isSd; + + /** + * 是否失能 + */ + private String isSn; + + /** + * 是否失智 + */ + private String isSz; + + /** + * 是否残疾 + */ + private String isCj; + + /** + * 是否大病 + */ + private String isDb; + + /** + * 是否慢病 + */ + private String isMb; + + /** + * 是否特殊人群 + */ + private String isSpecial; + + /** + * 文化程度【字典表】 + */ + private String culture; + + /** + * 文化程度备注 + */ + private String cultureRemakes; + + /** + * 特长【字典表】 + */ + private String specialSkill; + + /** + * 兴趣爱好 + */ + private String hobby; + + /** + * 兴趣爱好备注 + */ + private String hobbyRemakes; + + /** + * 宗教信仰 + */ + private String faith; + + /** + * 宗教信仰备注 + */ + private String faithRemakes; + + /** + * 残疾类别【字典表】 + */ + private String cjlb; + + /** + * 残疾登记(状况)【字典表】 + */ + private String cjzk; + + /** + * 残疾证号 + */ + private String cjzh; + + /** + * 残疾说明 + */ + private String cjsm; + + /** + * 有无监护人【yes no】 + */ + private String ynJdr; + + /** + * 有无技能特长【yes no】 + */ + private String ynJntc; + + /** + * 有无劳动能力 + */ + private String ynLdnl; + + /** + * 有无非义务教育阶段助学【yes no】 + */ + private String ynFywjyjdzx; + + /** + * 所患大病 + */ + private String shdb; + + /** + * 患大病时间 + */ + private String dbsj; + + /** + * 所患慢性病 + */ + private String shmxb; + + /** + * 患慢性病时间 + */ + private String mxbsj; + + /** + * 是否参保 + */ + private String isCb; + + /** + * 自付金额 + */ + private String zfje; + + /** + * 救助金额 + */ + private String jzje; + + /** + * 救助时间[yyyy-MM-dd] + */ + private String jzsj; + + /** + * 享受救助明细序号 + */ + private String jzmxxh; + + /** + * 健康信息备注 + */ + private String healthRemakes; + + /** + * 工作单位 + */ + private String gzdw; + + /** + * 职业 + */ + private String zy; + + /** + * 离退休时间 + */ + private String ltxsj; + + /** + * 工作信息备注 + */ + private String workRemake; + + /** + * 退休金额 + */ + private String txje; + + /** + * 月收入 + */ + private String ysr; + + /** + * 籍贯 + */ + private String jg; + + /** + * 户籍所在地 + */ + private String hjszd; + + /** + * 现居住地 + */ + private String xjzd; + + /** + * 人户情况 + */ + private String rhzk; + + /** + * 居住信息备注 + */ + private String jzxxRemakes; + + /** + * 民族【字典表】 + */ + private String mz; + + /** + * 与户主关系【字典表】 + */ + private String yhzgx; + + /** + * 居住情况【字典表】 + */ + private String jzqk; + + /** + * 婚姻状况【字典表】 + */ + private String hyzk; + + /** + * 配偶情况【字典表】 + */ + private String poqk; + + /** + * 有无赡养人 + */ + private String ynSyr; + + /** + * 与赡养人关系【字典表】 + */ + private String ysyrgx; + + /** + * 赡养人电话 + */ + private String syrMobile; + + /** + * 家庭信息备注 + */ + private String jtxxRemakes; + + /** + * 预留字段1 + */ + private String field1; + + /** + * 预留字段2 + */ + private String field2; + + /** + * 预留字段3 + */ + private String field3; + + /** + * 预留字段4 + */ + private String field4; + + /** + * 预留字段5 + */ + private String field5; + + /** + * 预留字段6 + */ + private String field6; + + /** + * 预留字段7 + */ + private String field7; + + /** + * 预留字段8 + */ + private String field8; + + /** + * 预留字段9 + */ + private String field9; + + /** + * 预留字段10 + */ + private String field10; + +} diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java index 5f0a73ad1e..e9275ee09e 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java @@ -7,6 +7,9 @@ import com.epmet.dataaggre.dto.epmetuser.result.*; import com.epmet.dataaggre.dto.govorg.form.OrgStaffListFormDTO; import com.epmet.dataaggre.dto.govorg.form.StaffDetailV2FormDTO; import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; +import com.epmet.dataaggre.dto.govproject.result.ProjectAnalysisResultDTO; +import com.epmet.dto.IcResiUserDTO; +import com.epmet.dto.UserBaseInfoDTO; import java.util.List; @@ -148,4 +151,22 @@ public interface EpmetUserService { * @author sun */ StaffDetailV2FormDTO selectByStaffId(String staffId); + + /** + * @Description 查询userId的身份证号在小程序用户中存在的多个userId值 + * @author sun + */ + List getUserBaseList(String userId); + + /** + * @Description 根据身份证号查询负能平台用户信息 + * @author sun + */ + IcResiUserDTO getIcResiUser(String idNum, String customerId); + + /** + * @Description 查询人员的家庭成员数据 + * @author sun + */ + List getHomeUserList(String homeId, String icUserId); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java index 50221188f9..ac6ee4a24e 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java @@ -26,6 +26,7 @@ import com.epmet.dataaggre.dto.govorg.form.StaffDetailV2FormDTO; import com.epmet.dataaggre.dto.govorg.result.GridStaffResultDTO; import com.epmet.dataaggre.dto.govorg.result.StaffOrgNameResultDTO; import com.epmet.dataaggre.dto.govorg.result.StaffOrgRelationResultDTO; +import com.epmet.dataaggre.dto.govproject.result.ProjectAnalysisResultDTO; import com.epmet.dataaggre.entity.epmetuser.CustomerStaffEntity; import com.epmet.dataaggre.entity.epmetuser.GovStaffRoleEntity; import com.epmet.dataaggre.entity.epmetuser.ResiUserBadgeEntity; @@ -36,6 +37,8 @@ import com.epmet.dataaggre.service.epmetuser.StaffPatrolDetailService; import com.epmet.dataaggre.service.epmetuser.StaffPatrolRecordService; import com.epmet.dataaggre.service.govorg.GovOrgService; import com.epmet.dataaggre.service.govproject.GovProjectService; +import com.epmet.dto.IcResiUserDTO; +import com.epmet.dto.UserBaseInfoDTO; import com.epmet.dto.result.StaffRoleResultDTO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -79,6 +82,8 @@ public class EpmetUserServiceImpl implements EpmetUserService { private DataStatsService dataStatsService; @Resource private GovStaffRoleDao govStaffRoleDao; + @Resource + private IcResiUserDao icResiUserDao; /** * @Description 根据UserIds查询 @@ -702,5 +707,32 @@ public class EpmetUserServiceImpl implements EpmetUserService { return result; } + /** + * @Description 查询userId的身份证号在小程序用户中存在的多个userId值 + * @author sun + */ + @Override + public List getUserBaseList(String userId) { + return userBaseInfoDao.getUserBaseList(userId); + } + + /** + * @Description 根据身份证号查询负能平台用户信息 + * @author sun + */ + @Override + public IcResiUserDTO getIcResiUser(String idNum, String customerId) { + return icResiUserDao.getIcResiUser(idNum, customerId); + } + + /** + * @Description 查询人员的家庭成员数据 + * @author sun + */ + @Override + public List getHomeUserList(String homeId, String icUserId) { + return icResiUserDao.getHomeUserList(homeId, icUserId); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java index 21c18f8ba2..3aa1329a11 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java @@ -15,6 +15,7 @@ import com.epmet.dataaggre.dto.datastats.result.FactAgencyProjectResultDTO; import com.epmet.dataaggre.dto.govissue.IssueProjectCategoryDictDTO; import com.epmet.dataaggre.dto.govissue.result.IssueInfoDTO; import com.epmet.dataaggre.dto.govissue.result.IssueListResultDTO; +import com.epmet.dataaggre.dto.govissue.result.ShiftProjectIssueListResultDTO; import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO; import com.epmet.dataaggre.dto.govproject.ProjectDTO; import com.epmet.dataaggre.dto.govproject.ProjectRelatedPersonnelDTO; @@ -23,11 +24,15 @@ import com.epmet.dataaggre.dto.govproject.form.*; import com.epmet.dataaggre.dto.govproject.result.*; import com.epmet.dataaggre.dto.resigroup.ResiTopicDTO; import com.epmet.dataaggre.service.datastats.DataStatsService; +import com.epmet.dataaggre.service.epmetuser.EpmetUserService; import com.epmet.dataaggre.service.evaluationindex.EvaluationIndexService; import com.epmet.dataaggre.service.govissue.GovIssueService; import com.epmet.dataaggre.service.govorg.GovOrgService; import com.epmet.dataaggre.service.govproject.GovProjectService; import com.epmet.dataaggre.service.resigroup.ResiGroupService; +import com.epmet.dto.IcResiUserDTO; +import com.epmet.dto.ProjectCategoryDTO; +import com.epmet.dto.UserBaseInfoDTO; import com.epmet.dto.form.TimestampIntervalFormDTO; import com.epmet.dto.form.WorkMinuteFormDTO; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; @@ -65,6 +70,8 @@ public class GovProjectServiceImpl implements GovProjectService { private DataStatsService dataStatsService; @Autowired private EvaluationIndexService evaluationIndexService; + @Autowired + private EpmetUserService epmetUserService; /** * @Description 查询项目信息 @@ -360,6 +367,7 @@ public class GovProjectServiceImpl implements GovProjectService { dto.setAgencyId(formDTO.getAgencyId()); dto.setCategoryCode(ca.getCategoryCode()); dto.setCategoryName(ca.getCategoryName()); + dto.setColour(ca.getColour()); list.forEach(l -> { if (ca.getCategoryCode().equals(l.getCategoryCode())) { dto.setTotal(l.getTotal()); @@ -450,7 +458,88 @@ public class GovProjectServiceImpl implements GovProjectService { */ @Override public ProjectAnalysisResultDTO projectAnalysis(ProjectAnalysisFormDTO formDTO) { - return null; + ProjectAnalysisResultDTO resultDTO = new ProjectAnalysisResultDTO(); + //1.查询userId的身份证号在小程序用户中存在的多个userId值 + List userList = epmetUserService.getUserBaseList(formDTO.getUserId()); + List userIds = userList.stream().map(UserBaseInfoDTO::getUserId).collect(Collectors.toList()); + + //2.查询对应负能平台用户家庭信息 + if (!org.springframework.util.CollectionUtils.isEmpty(userList)) { + //2-1.根据身份证号查询负能平台用户信息 + IcResiUserDTO icResiUserDTO = epmetUserService.getIcResiUser(userList.get(0).getIdNum(), formDTO.getCustomerId()); + resultDTO.setIcUserId(icResiUserDTO.getId()); + resultDTO.setIcUserName(icResiUserDTO.getName()); + if (null != icResiUserDTO) { + //2-2.查询人员的家庭成员数据 + List homeList = epmetUserService.getHomeUserList(icResiUserDTO.getHomeId(), icResiUserDTO.getId()); + resultDTO.setHomeUserList(homeList); + } + } + if (org.springframework.util.CollectionUtils.isEmpty(userIds)) { + userIds = new ArrayList<>(); + userIds.add(formDTO.getUserId()); + } + + //3.查询一级分类数据 + List categoryList = govIssueService.categoryList(formDTO.getCustomerId(), null, null); + List secondCodeList = formDTO.getCategoryCodeList().stream().flatMap(code -> categoryList.stream().filter(ca -> code.equals(ca.getParentCategoryCode())).map(second -> { + return second.getCategoryCode(); + })).collect(Collectors.toList()); + + //4.根据userId集合和二级分类Code集合查询来源楼院小组的项目 + List groupList = projectDao.getProjectCategoryList(formDTO.getCustomerId(), secondCodeList, userIds, "issue"); + + //5.根据userId集合和二级分类Code集合查询来源事件上报的项目 + List eventList = projectDao.getProjectCategoryList(formDTO.getCustomerId(), secondCodeList, userIds, "resiEvent"); + + //6.封装数据 + //楼院小组下分类项目列表 + List groupProjectList = new ArrayList<>(); + //事件上报下分类项目列表 + List eventProjectList = new ArrayList<>(); + formDTO.getCategoryCodeList().forEach(code -> { + //一级分类code下的二级分类code集合 + Map secondCodeMap = new HashMap<>(); + //来源楼院小组的分类及项目列表 + ProjectAnalysisResultDTO.Category groupCa = new ProjectAnalysisResultDTO.Category(); + List groupPrList = new ArrayList<>(); + //来源事件上报的分类及项目列表 + ProjectAnalysisResultDTO.Category eventCa = new ProjectAnalysisResultDTO.Category(); + List eventPrList = new ArrayList<>(); + categoryList.forEach(ca -> { + groupCa.setCategoryCode(code); + eventCa.setCategoryCode(code); + if (code.equals(ca.getCategoryCode())) { + groupCa.setCategoryName(ca.getCategoryName()); + eventCa.setCategoryName(ca.getCategoryName()); + } + if (code.equals(ca.getParentCategoryCode())) { + secondCodeMap.put(ca.getCategoryCode(), ca.getCategoryCode()); + } + }); + //当前分类下来源楼院小组的项目 + groupList.forEach(gr -> { + if (secondCodeMap.containsKey(gr.getCategoryCode())) { + ProjectAnalysisResultDTO.Project project = ConvertUtils.sourceToTarget(gr, ProjectAnalysisResultDTO.Project.class); + groupPrList.add(project); + } + }); + groupCa.setProjectList(groupPrList); + groupProjectList.add(groupCa); + //当前分类下来源事件上报的项目 + eventList.forEach(gr -> { + if (secondCodeMap.containsKey(gr.getCategoryCode())) { + ProjectAnalysisResultDTO.Project project = ConvertUtils.sourceToTarget(gr, ProjectAnalysisResultDTO.Project.class); + eventPrList.add(project); + } + }); + eventCa.setProjectList(eventPrList); + eventProjectList.add(eventCa); + }); + + resultDTO.setGroupProjectList(groupProjectList); + resultDTO.setEventProjectList(eventProjectList); + return resultDTO; } /** diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml new file mode 100644 index 0000000000..c28d81375c --- /dev/null +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml @@ -0,0 +1,39 @@ + + + + + + + + + + diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/UserBaseInfoDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/UserBaseInfoDao.xml index 1ce45a28d8..195e586292 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/UserBaseInfoDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/UserBaseInfoDao.xml @@ -38,4 +38,15 @@ ) + + + \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml index cec83dea7f..ceea242e1f 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml @@ -256,4 +256,41 @@ p.ORIGIN_ID = #{issueId} + + + \ No newline at end of file