Browse Source

【项目分类分析】研判分析

dev_shibei_match
sunyuchao 4 years ago
parent
commit
d8d12db798
  1. 5
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectAnalysisFormDTO.java
  2. 65
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectAnalysisResultDTO.java
  3. 33
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectCategoryResultDTO.java
  4. 2
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/result/ProjectCategoryTotalResultDTO.java
  5. 49
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java
  6. 6
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/UserBaseInfoDao.java
  7. 11
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java
  8. 493
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/entity/epmetuser/IcResiUserEntity.java
  9. 21
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java
  10. 32
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java
  11. 91
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java
  12. 39
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml
  13. 11
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/UserBaseInfoDao.xml
  14. 37
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml

5
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<String> categoryCodeList;
private String customerId;
public interface Analysis extends CustomerClientShowGroup {
}

65
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<Home> homeUserList = new ArrayList<>();
//楼院小组下分类项目列表
private List<Category> groupProjectList = new ArrayList<>();
//事件上报下分类项目列表
private List<Category> 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<Project> projectList = new ArrayList<>();
}
@Data
public static class Project {
//项目Id
private String projectId;
//项目标题
private String title;
//状态:待处理 pending,结案closed
private String status;
}
}

33
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;
}

2
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;

49
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
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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<IcResiUserEntity> {
/**
* @Description 根据身份证号查询负能平台用户信息
* @author sun
*/
IcResiUserDTO getIcResiUser(@Param("idCard") String idCard, @Param("customerId") String customerId);
/**
* @Description 查询人员的家庭成员数据
* @author sun
*/
List<ProjectAnalysisResultDTO.Home> getHomeUserList(@Param("homeId") String homeId, @Param("icUserId") String icUserId);
}

6
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<UserBaseInfoEntity> {
*/
List<String> selectUserIdByCustomerId(@Param("userIds") List<String> userIds);
/**
* @Description 查询userId的身份证号在小程序用户中存在的多个userId值
* @author sun
*/
List<UserBaseInfoDTO> getUserBaseList(@Param("userId") String userId);
}

11
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<ProjectEntity> {
* @author sun
*/
List<ProjectRelatedPersonnelDTO> getTopicUser(@Param("projectIds") List<String> projectIds);
/**
* @Description 根据项目来源查询不同分类不同创建人下的分类项目
* @author sun
*/
List<ProjectCategoryResultDTO> getProjectCategoryList(@Param("customerId") String customerId,
@Param("secondCodeList") List<String> secondCodeList,
@Param("userIds") List<String> userIds,
@Param("origin") String origin);
}

493
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
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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;
}

21
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<UserBaseInfoDTO> getUserBaseList(String userId);
/**
* @Description 根据身份证号查询负能平台用户信息
* @author sun
*/
IcResiUserDTO getIcResiUser(String idNum, String customerId);
/**
* @Description 查询人员的家庭成员数据
* @author sun
*/
List<ProjectAnalysisResultDTO.Home> getHomeUserList(String homeId, String icUserId);
}

32
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<UserBaseInfoDTO> 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<ProjectAnalysisResultDTO.Home> getHomeUserList(String homeId, String icUserId) {
return icResiUserDao.getHomeUserList(homeId, icUserId);
}
}

91
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<UserBaseInfoDTO> userList = epmetUserService.getUserBaseList(formDTO.getUserId());
List<String> 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<ProjectAnalysisResultDTO.Home> 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<IssueProjectCategoryDictDTO> categoryList = govIssueService.categoryList(formDTO.getCustomerId(), null, null);
List<String> 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<ProjectCategoryResultDTO> groupList = projectDao.getProjectCategoryList(formDTO.getCustomerId(), secondCodeList, userIds, "issue");
//5.根据userId集合和二级分类Code集合查询来源事件上报的项目
List<ProjectCategoryResultDTO> eventList = projectDao.getProjectCategoryList(formDTO.getCustomerId(), secondCodeList, userIds, "resiEvent");
//6.封装数据
//楼院小组下分类项目列表
List<ProjectAnalysisResultDTO.Category> groupProjectList = new ArrayList<>();
//事件上报下分类项目列表
List<ProjectAnalysisResultDTO.Category> eventProjectList = new ArrayList<>();
formDTO.getCategoryCodeList().forEach(code -> {
//一级分类code下的二级分类code集合
Map<String, String> secondCodeMap = new HashMap<>();
//来源楼院小组的分类及项目列表
ProjectAnalysisResultDTO.Category groupCa = new ProjectAnalysisResultDTO.Category();
List<ProjectAnalysisResultDTO.Project> groupPrList = new ArrayList<>();
//来源事件上报的分类及项目列表
ProjectAnalysisResultDTO.Category eventCa = new ProjectAnalysisResultDTO.Category();
List<ProjectAnalysisResultDTO.Project> 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;
}
/**

39
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dataaggre.dao.epmetuser.IcResiUserDao">
<select id="getIcResiUser" resultType="com.epmet.dto.IcResiUserDTO">
SELECT
id,
customer_id,
agency_id,
grid_id,
home_id,
name,
mobile,
gender,
id_card,
birthday
FROM
ic_resi_user
WHERE
del_flag = '0'
AND customer_id = #{customerId}
AND id_card = #{idCard}
</select>
<select id="getHomeUserList" resultType="com.epmet.dataaggre.dto.govproject.result.ProjectAnalysisResultDTO$Home">
SELECT
id icUserId,
home_id homeId,
name icUserName
FROM
ic_resi_user
WHERE
del_flag = '0'
AND home_id = #{homeId}
ORDER BY id = #{icUserId} desc <!-- 指定某个人排在第一位 -->
</select>
</mapper>

11
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/UserBaseInfoDao.xml

@ -38,4 +38,15 @@
</foreach>
)
</select>
<select id="getUserBaseList" resultType="com.epmet.dto.UserBaseInfoDTO">
SELECT
*
FROM
user_base_info
WHERE
del_flag = '0'
AND id_num = ( SELECT id_num FROM user_base_info WHERE user_id = #{userId})
</select>
</mapper>

37
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml

@ -256,4 +256,41 @@
p.ORIGIN_ID = #{issueId}
</foreach>
</select>
<select id="getProjectCategoryList" resultType="com.epmet.dataaggre.dto.govproject.result.ProjectCategoryResultDTO">
SELECT
p.id projectId,
p.title title,
p.`status` status,
pc.category_code categoryCode
FROM
project p
INNER JOIN project_category pc ON p.id = pc.project_id
<if test="origin != null and origin != '' and origin == 'issue'">
INNER JOIN project_related_personnel prp ON p.id = prp.project_id AND prp.source_type = 'topic'
</if>
<if test="origin != null and origin != '' and origin == 'resiEvent'">
INNER JOIN resi_event re ON p.ID = re.PROJECT_ID
</if>
WHERE
p.del_flag = '0'
AND p.customer_id = #{customerId}
AND p.origin = #{origin}
<foreach collection="secondCodeList" item="code" open="AND pc.category_code IN (" separator="," close=")">
#{code}
</foreach>
<if test="origin != null and origin != '' and origin == 'issue'">
<foreach collection="userIds" item="userId" open="AND prp.user_id IN (" separator="," close=")">
#{userId}
</foreach>
</if>
<if test="origin != null and origin != '' and origin == 'resiEvent'">
<foreach collection="userIds" item="userId" open="AND re.report_user_id IN (" separator="," close=")">
#{userId}
</foreach>
</if>
GROUP BY pc.project_id
ORDER BY p.created_time DESC
</select>
</mapper>
Loading…
Cancel
Save