Browse Source

灵山项目:大屏居民搜索增加特殊人员类型和重点人员类型

master
luyan 2 years ago
parent
commit
a58fa5c809
  1. 1
      epmet-user/epmet-user-server/src/main/java/com/epmet/constant/UserConstant.java
  2. 5
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcSpecialDao.java
  3. 11
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanHelpCrowdResiMergeDao.java
  4. 127
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
  5. 13
      epmet-user/epmet-user-server/src/main/resources/mapper/IcSpecialDao.xml
  6. 15
      epmet-user/epmet-user-server/src/main/resources/mapper/LingshanHelpCrowdResiMergeDao.xml

1
epmet-user/epmet-user-server/src/main/java/com/epmet/constant/UserConstant.java

@ -104,6 +104,7 @@ public interface UserConstant {
String GENDER="GENDER"; String GENDER="GENDER";
String HOUSE_TYPE_KEY="HOUSE_TYPE"; String HOUSE_TYPE_KEY="HOUSE_TYPE";
String HOME_ID = "HOME_ID"; String HOME_ID = "HOME_ID";
String IC_RESI_USER_ID = "icResiUserId";
/** /**
* 居民信息 子表中的主表id * 居民信息 子表中的主表id
*/ */

5
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcSpecialDao.java

@ -3,10 +3,12 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.result.LingShanSpecialCrowdListResultDTO; import com.epmet.dto.result.LingShanSpecialCrowdListResultDTO;
import com.epmet.entity.IcSpecialEntity; import com.epmet.entity.IcSpecialEntity;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import java.util.Map;
@Mapper @Mapper
public interface IcSpecialDao extends BaseDao<IcSpecialEntity> { public interface IcSpecialDao extends BaseDao<IcSpecialEntity> {
@ -27,4 +29,7 @@ public interface IcSpecialDao extends BaseDao<IcSpecialEntity> {
* @return 返回重点帮扶人员类别 * @return 返回重点帮扶人员类别
*/ */
List<String> selectHelpCrowdType(String resiUserId); List<String> selectHelpCrowdType(String resiUserId);
@MapKey("resiId")
List<Map<String, String>> findSpecialTypeByUserId(@Param("userIds") List<String> userIds);
} }

11
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/LingshanHelpCrowdResiMergeDao.java

@ -5,10 +5,12 @@ import com.epmet.dto.result.lingshan.LingShanHelpCrowdListRstDTO;
import com.epmet.dto.result.lingshan.LingShanHelpCrowdScreenQtyOfSubOrgRstDTO; import com.epmet.dto.result.lingshan.LingShanHelpCrowdScreenQtyOfSubOrgRstDTO;
import com.epmet.dto.result.lingshan.LingShanHelpCrowdStatusByCateRstDTO; import com.epmet.dto.result.lingshan.LingShanHelpCrowdStatusByCateRstDTO;
import com.epmet.entity.LingshanHelpCrowdResiMergeEntity; import com.epmet.entity.LingshanHelpCrowdResiMergeEntity;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 居民-重点帮扶人群对应关系 * 居民-重点帮扶人群对应关系
@ -20,12 +22,12 @@ import java.util.List;
public interface LingshanHelpCrowdResiMergeDao extends BaseDao<LingshanHelpCrowdResiMergeEntity> { public interface LingshanHelpCrowdResiMergeDao extends BaseDao<LingshanHelpCrowdResiMergeEntity> {
/** /**
* @Description: 特殊人群列表
* @param orgIdPath: * @param orgIdPath:
* @param helpType: * @param helpType:
* @param name: * @param name:
* @param mobile: * @param mobile:
* @param idCard: * @param idCard:
* @Description: 特殊人群列表
* @Return java.util.List<com.epmet.dto.result.lingshan.LingShanHelpCrowdListRstDTO> * @Return java.util.List<com.epmet.dto.result.lingshan.LingShanHelpCrowdListRstDTO>
* @Author: wangxianzhang * @Author: wangxianzhang
* @Date: 2023/5/25 4:07 PM * @Date: 2023/5/25 4:07 PM
@ -37,8 +39,8 @@ public interface LingshanHelpCrowdResiMergeDao extends BaseDao<LingshanHelpCrowd
@Param("idCard") String idCard); @Param("idCard") String idCard);
/** /**
* @Description: 根据orgIdPath统计本级及下级所有的分类及其数量
* @param orgIdPath: * @param orgIdPath:
* @Description: 根据orgIdPath统计本级及下级所有的分类及其数量
* @Return java.util.List<com.epmet.dto.result.lingshan.LingShanHelpCrowdStatusByCateRstDTO> * @Return java.util.List<com.epmet.dto.result.lingshan.LingShanHelpCrowdStatusByCateRstDTO>
* @Author: wangxianzhang * @Author: wangxianzhang
* @Date: 2023/5/29 2:15 PM * @Date: 2023/5/29 2:15 PM
@ -46,8 +48,8 @@ public interface LingshanHelpCrowdResiMergeDao extends BaseDao<LingshanHelpCrowd
List<LingShanHelpCrowdStatusByCateRstDTO> statsByCategory(@Param("customerId") String customerId, @Param("orgIdPath") String orgIdPath); List<LingShanHelpCrowdStatusByCateRstDTO> statsByCategory(@Param("customerId") String customerId, @Param("orgIdPath") String orgIdPath);
/** /**
* @Description: 子组织下的帮扶人群数量
* @param orgIdPath: * @param orgIdPath:
* @Description: 子组织下的帮扶人群数量
* @Return java.util.List<com.epmet.dto.result.lingshan.LingShanHelpCrowdScreenQtyOfSubOrgRstDTO> * @Return java.util.List<com.epmet.dto.result.lingshan.LingShanHelpCrowdScreenQtyOfSubOrgRstDTO>
* @Author: wangxianzhang * @Author: wangxianzhang
* @Date: 2023/5/29 3:14 PM * @Date: 2023/5/29 3:14 PM
@ -55,4 +57,7 @@ public interface LingshanHelpCrowdResiMergeDao extends BaseDao<LingshanHelpCrowd
List<LingShanHelpCrowdScreenQtyOfSubOrgRstDTO> qtyOfSubOrg(@Param("orgIdPath") String orgIdPath, List<LingShanHelpCrowdScreenQtyOfSubOrgRstDTO> qtyOfSubOrg(@Param("orgIdPath") String orgIdPath,
@Param("helpType") String helpType, @Param("helpType") String helpType,
@Param("customerId") String customerId); @Param("customerId") String customerId);
@MapKey("resiId")
List<Map<String, String>> findHlepTypeByResiUserId(@Param("userIds") List<String> userIds);
} }

127
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java

@ -30,7 +30,6 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.epmet.bean.ResiExportBaseInfoData; import com.epmet.bean.ResiExportBaseInfoData;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.*; import com.epmet.commons.tools.constant.*;
import com.epmet.commons.tools.distributedlock.DistributedLock;
import com.epmet.commons.tools.dto.form.DictListFormDTO; import com.epmet.commons.tools.dto.form.DictListFormDTO;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.dto.result.DictListResultDTO; import com.epmet.commons.tools.dto.result.DictListResultDTO;
@ -170,16 +169,13 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
private UserBaseInfoDao userBaseInfoDao; private UserBaseInfoDao userBaseInfoDao;
@Autowired @Autowired
private EpmetUserOpenFeignClient epmetUserOpenFeignClient; private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
@Autowired
private DistributedLock distributedLock;
@Resource @Resource
private IcUserChangeRecordDao icUserChangeRecordDao; private IcUserChangeRecordDao icUserChangeRecordDao;
@Resource @Resource
private IcUserChangeDetailedDao icUserChangeDetailedDao; private IcUserChangeDetailedDao icUserChangeDetailedDao;
// @Autowired // @Autowired
// private DataReportOpenFeignClient dataReportOpenFeignClient; // private DataReportOpenFeignClient dataReportOpenFeignClient;
@Autowired @Autowired
private IcResiRentContractInfoDao icResiRentContractInfoDao; private IcResiRentContractInfoDao icResiRentContractInfoDao;
@ -191,6 +187,9 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
@Autowired @Autowired
private IcSpecialDao icSpecialDao; private IcSpecialDao icSpecialDao;
@Autowired
private LingshanHelpCrowdResiMergeDao helpCrowdResiMergeDao;
/** /**
* 组织字段目前用于居民信息动态查询接口将此条件从conditions中移除单独生成固定的sql片段 * 组织字段目前用于居民信息动态查询接口将此条件从conditions中移除单独生成固定的sql片段
*/ */
@ -233,6 +232,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
/** /**
* 该接口供开发人员手动调用 * 该接口供开发人员手动调用
* 项目上经常要求删除某个社区的人房数据 索性写一个接口供开发人员调用 * 项目上经常要求删除某个社区的人房数据 索性写一个接口供开发人员调用
*
* @param formDTO * @param formDTO
* @return * @return
*/ */
@ -465,6 +465,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
/** /**
* 为党员信息生成家庭地址 * 为党员信息生成家庭地址
*
* @param customerId * @param customerId
* @param gridId * @param gridId
* @param homeId * @param homeId
@ -801,10 +802,10 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
} }
/** /**
* @description: 生成居民变更记录
* @param entity * @param entity
* @param map * @param map
* @return * @return
* @description: 生成居民变更记录
* @author: sun * @author: sun
*/ */
public void icUserChangeRecord(IcResiUserEntity entity, LinkedHashMap<String, String> map) { public void icUserChangeRecord(IcResiUserEntity entity, LinkedHashMap<String, String> map) {
@ -1044,6 +1045,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
//查询网格名称、房屋名称用 //查询网格名称、房屋名称用
List<String> gridIds = new ArrayList<>(); List<String> gridIds = new ArrayList<>();
Set<String> houseIds = new HashSet<>(); Set<String> houseIds = new HashSet<>();
List<String> userIds = new ArrayList<>();
for (Map<String, Object> map : list) { for (Map<String, Object> map : list) {
if (map.containsKey(UserConstant.GRID_ID) && null != map.get(UserConstant.GRID_ID) && StringUtils.isNotBlank(map.get(UserConstant.GRID_ID).toString())) { if (map.containsKey(UserConstant.GRID_ID) && null != map.get(UserConstant.GRID_ID) && StringUtils.isNotBlank(map.get(UserConstant.GRID_ID).toString())) {
gridIds.add(map.get(UserConstant.GRID_ID).toString()); gridIds.add(map.get(UserConstant.GRID_ID).toString());
@ -1051,6 +1053,33 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
if (map.containsKey(UserConstant.HOME_ID) && null != map.get(UserConstant.HOME_ID) && StringUtils.isNotBlank(map.get(UserConstant.HOME_ID).toString())) { if (map.containsKey(UserConstant.HOME_ID) && null != map.get(UserConstant.HOME_ID) && StringUtils.isNotBlank(map.get(UserConstant.HOME_ID).toString())) {
houseIds.add(map.get(UserConstant.HOME_ID).toString()); houseIds.add(map.get(UserConstant.HOME_ID).toString());
} }
//过滤居民ID
if (map.containsKey(UserConstant.IC_RESI_USER_ID) && null != map.get(UserConstant.IC_RESI_USER_ID) && StringUtils.isNotBlank(map.get(UserConstant.IC_RESI_USER_ID).toString())) {
userIds.add(map.get(UserConstant.IC_RESI_USER_ID).toString());
}
}
Map<String, String> helpTypeMap = new HashMap<>();
List<Map<String, String>> helpTypeList = helpCrowdResiMergeDao.findHlepTypeByResiUserId(userIds);
if (null != helpTypeList && helpTypeList.size() > 0) {
for (Map<String, String> map : helpTypeList) {
buildHelpType(map, helpTypeMap);
}
}
Map<String, String> specialTypeMap = new HashMap<>();
List<Map<String, String>> specialTypeList = icSpecialDao.findSpecialTypeByUserId(userIds);
if (null != specialTypeList && specialTypeList.size() > 0) {
for (Map<String, String> map : specialTypeList) {
buildSpecialType(map, specialTypeMap);
}
}
for (Map<String, Object> map : list) {
for (String key : map.keySet()) {
if (key.equals(UserConstant.IC_RESI_USER_ID)) {
map.put("helpTypeDisplay", helpTypeMap.get(map.get(key)) == null ? "/" : helpTypeMap.get(map.get(key)));
map.put("specialTypeDisplay", specialTypeMap.get(map.get(key)) == null ? "/" : specialTypeMap.get(map.get(key)));
break;
}
}
} }
Map<String, AllGridsByUserIdResultDTO> gridInfoMap = getGridInfoMap(gridIds); Map<String, AllGridsByUserIdResultDTO> gridInfoMap = getGridInfoMap(gridIds);
//查询房子名称 //查询房子名称
@ -1063,6 +1092,81 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
return new PageData<>(pageInfo.getList(), pageInfo.getTotal()); return new PageData<>(pageInfo.getList(), pageInfo.getTotal());
} }
private void buildHelpType(Map<String, String> helpTypeMap, Map<String, String> map) {
if (helpTypeMap.size() > 0) {
String temp = "";
for (String k : helpTypeMap.keySet()) {
if (k.equals("helpType")) {
StringBuilder sb = new StringBuilder();
String[] keys = helpTypeMap.get(k).split(",");
for (String key : keys) {
if (key.equals(LingShanHelpCrowdTypeEnum.CANJI.getType())) {
sb.append(LingShanHelpCrowdTypeEnum.CANJI.getName()).append(",");
}
if (key.equals(LingShanHelpCrowdTypeEnum.DABING.getType())) {
sb.append(LingShanHelpCrowdTypeEnum.DABING.getName()).append(",");
}
if (key.equals(LingShanHelpCrowdTypeEnum.DIBAO.getType())) {
sb.append(LingShanHelpCrowdTypeEnum.DIBAO.getName()).append(",");
}
if (key.equals(LingShanHelpCrowdTypeEnum.GAOLING.getType())) {
sb.append(LingShanHelpCrowdTypeEnum.GAOLING.getName()).append(",");
}
if (key.equals(LingShanHelpCrowdTypeEnum.KONGCHAO.getType())) {
sb.append(LingShanHelpCrowdTypeEnum.KONGCHAO.getName()).append(",");
}
if (key.equals(LingShanHelpCrowdTypeEnum.DUJU.getType())) {
sb.append(LingShanHelpCrowdTypeEnum.DUJU.getName()).append(",");
}
if (key.equals(LingShanHelpCrowdTypeEnum.LIUSHOU.getType())) {
sb.append(LingShanHelpCrowdTypeEnum.LIUSHOU.getName()).append(",");
}
if (key.equals(LingShanHelpCrowdTypeEnum.TEKUN.getType())) {
sb.append(LingShanHelpCrowdTypeEnum.TEKUN.getName()).append(",");
}
}
temp = sb.substring(0, sb.lastIndexOf(","));
} else if (k.equals("resiId")) {
map.put(helpTypeMap.get(k), temp);
temp = "";
}
}
}
}
private void buildSpecialType(Map<String, String> specialMap, Map<String, String> map) {
if (specialMap.size() > 0) {
String temp = "";
for (String k : specialMap.keySet()) {
if (k.equals("SPECIAL_TYPES_STR")) {
StringBuilder sb = new StringBuilder();
String[] keys = specialMap.get(k).split(",");
for (String key : keys) {
if (key.equals(LingShanSpecialCrowdTypeEnums.AZBJ.getType())) {
sb.append(LingShanSpecialCrowdTypeEnums.AZBJ.getName()).append(",");
}
if (key.equals(LingShanSpecialCrowdTypeEnums.SQJZ.getType())) {
sb.append(LingShanSpecialCrowdTypeEnums.SQJZ.getName()).append(",");
}
if (key.equals(LingShanSpecialCrowdTypeEnums.JDRY.getType())) {
sb.append(LingShanSpecialCrowdTypeEnums.JDRY.getName()).append(",");
}
if (key.equals(LingShanSpecialCrowdTypeEnums.JZHZ.getType())) {
sb.append(LingShanSpecialCrowdTypeEnums.JZHZ.getName()).append(",");
}
if (key.equals(LingShanSpecialCrowdTypeEnums.XFRY.getType())) {
sb.append(LingShanSpecialCrowdTypeEnums.XFRY.getName()).append(",");
}
}
temp = sb.substring(0, sb.lastIndexOf(","));
} else if (k.equals("resiId")) {
map.put(specialMap.get(k), temp);
temp = "";
}
}
}
}
private List<IcFormResColumnDTO> queryResultColumns(IcResiUserPageFormDTO formDTO) { private List<IcFormResColumnDTO> queryResultColumns(IcResiUserPageFormDTO formDTO) {
// 查询列表展示项,如果没有,直接返回 // 查询列表展示项,如果没有,直接返回
CustomerFormQueryDTO queryDTO1 = ConvertUtils.sourceToTarget(formDTO, CustomerFormQueryDTO.class); CustomerFormQueryDTO queryDTO1 = ConvertUtils.sourceToTarget(formDTO, CustomerFormQueryDTO.class);
@ -3096,6 +3200,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
/** /**
* 获取组织下志愿者列表 * 获取组织下志愿者列表
* 居民信息里的志愿者 * 居民信息里的志愿者
*
* @param customerId * @param customerId
* @param agencyId * @param agencyId
* @Param customerId * @Param customerId
@ -3220,6 +3325,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
/** /**
* 目前只返回id,和姓名 * 目前只返回id,和姓名
*
* @param icResiUserIdList * @param icResiUserIdList
* @return * @return
*/ */
@ -3453,6 +3559,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
/** /**
* desc:设置居民的pids pids为agencyId的pids+agencyId 即包含组织本身 如果pids 为空则pids 为agencyId * desc:设置居民的pids pids为agencyId的pids+agencyId 即包含组织本身 如果pids 为空则pids 为agencyId
*
* @param entity * @param entity
*/ */
@Override @Override
@ -3678,6 +3785,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
/** /**
* Desc: 居民首次进入小程序可以根据输入身份证信息查询在数字社区居民信息中的网格匹配不成功提示 * Desc: 居民首次进入小程序可以根据输入身份证信息查询在数字社区居民信息中的网格匹配不成功提示
*
* @param formDTO * @param formDTO
* @author zxc * @author zxc
* @date 2022/8/5 11:17 * @date 2022/8/5 11:17
@ -3804,7 +3912,6 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
} }
/** /**
* 更新育龄妇女状态定时任务 * 更新育龄妇女状态定时任务
* *
@ -3959,8 +4066,8 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
} }
/** /**
* @Description 人户状况统计查询
* @param formDTO * @param formDTO
* @Description 人户状况统计查询
* @Author zxc * @Author zxc
* @Date 2022/11/16 09:22 * @Date 2022/11/16 09:22
*/ */
@ -4020,9 +4127,9 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
} }
/** /**
* @Description
* @param total 总人数 * @param total 总人数
* @param fz 分子人数 * @param fz 分子人数
* @Description
* @Author zxc * @Author zxc
* @Date 2022/11/16 10:12 * @Date 2022/11/16 10:12
*/ */
@ -4262,8 +4369,10 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
PageInfo<ResiPortrayalDetailDTO> pageInfo = new PageInfo<>(list); PageInfo<ResiPortrayalDetailDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list, pageInfo.getTotal(), pageSize); return new PageData<>(list, pageInfo.getTotal(), pageSize);
} }
/** /**
* 灵山需求 * 灵山需求
*
* @param houseId 房屋id * @param houseId 房屋id
*/ */
public void syncHousePartyCenterHouse(String houseId, String resiUserId) { public void syncHousePartyCenterHouse(String houseId, String resiUserId) {

13
epmet-user/epmet-user-server/src/main/resources/mapper/IcSpecialDao.xml

@ -60,4 +60,17 @@
AND m.RESI_ID = #{resiUserId} AND m.RESI_ID = #{resiUserId}
order by m.CREATED_TIME asc order by m.CREATED_TIME asc
</select> </select>
<select id="findSpecialTypeByUserId" resultType="java.util.Map">
select r.ID AS resiId
, s.SPECIAL_RQLB SPECIAL_TYPES_STR
from ic_resi_user r
inner join ic_special s on (r.ID = s.IC_RESI_USER and s.DEL_FLAG = 0)
where r.DEL_FLAG = 0
<if test="null != userIds and userIds.size > 0">
<foreach collection="userIds" item="userId" open="AND r.id IN (" separator="," close=")">
#{userId}
</foreach>
</if>
group by r.id
</select>
</mapper> </mapper>

15
epmet-user/epmet-user-server/src/main/resources/mapper/LingshanHelpCrowdResiMergeDao.xml

@ -78,5 +78,20 @@
group by m.ORG_ID_PATH group by m.ORG_ID_PATH
</select> </select>
<select id="findHlepTypeByResiUserId" resultType="java.util.Map">
select
resi.id resiId,
group_concat(m.CROWD_TYPE) helpType
from lingshan_help_crowd_resi_merge m
inner join ic_resi_user resi on (resi.DEL_FLAG = 0 and m.RESI_ID = resi.ID)
where m.DEL_FLAG = 0
<if test="null != userIds and userIds.size > 0">
<foreach collection="userIds" item="userId" open="AND resi.id IN (" separator="," close=")">
#{userId}
</foreach>
</if>
group by resi.id
</select>
</mapper> </mapper>
Loading…
Cancel
Save