Browse Source

点击居民端小程序用户上报的需求,查看需求研判分析逻辑调整

dev_shibei_match
yinzuomei 4 years ago
parent
commit
f77aa6e8a2
  1. 2
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/DemandResearchAnalysisFormDTO.java
  2. 10
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandResearchAnalysisResultDTO.java
  3. 22
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/HouseMemResDTO.java
  4. 66
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java
  5. 19
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/FindIcUserFormDTO.java
  6. 35
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/EpmetUserFamilyDTO.java
  7. 9
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java
  8. 11
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java
  9. 12
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java
  10. 6
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserDao.java
  11. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserService.java
  12. 29
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java
  13. 22
      epmet-user/epmet-user-server/src/main/resources/mapper/UserDao.xml

2
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/DemandResearchAnalysisFormDTO.java

@ -36,6 +36,6 @@ public class DemandResearchAnalysisFormDTO implements Serializable {
* 个人档案personal-data
* 服务措施分析demand-analysis
*/
@NotBlank(message = "个人档案:personal-data;服务措施分析:demand-analysis",groups = AddUserInternalGroup.class)
@NotBlank(message = "queryOrigin不能为空:个人档案:personal-data;服务措施分析:demand-analysis",groups = AddUserInternalGroup.class)
private String queryOrigin;
}

10
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandResearchAnalysisResultDTO.java

@ -1,6 +1,5 @@
package com.epmet.dto.result.demand;
import com.epmet.dto.result.HouseUserDTO;
import lombok.Data;
import java.io.Serializable;
@ -10,15 +9,8 @@ import java.util.List;
* 数据分析-个人档案-需求详情研判分析
*/
@Data
public class DemandResearchAnalysisResultDTO implements Serializable {
public class DemandResearchAnalysisResultDTO extends HouseMemResDTO implements Serializable {
private static final long serialVersionUID = -1024304149893118204L;
/**
* 居民信息及家属列表
*/
private String icResiUserId;
private String icUserName;
private String houseId;
private List<HouseUserDTO> houseUserList;
private List<DemandDataDTO> demandData;
/**

22
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/HouseMemResDTO.java

@ -0,0 +1,22 @@
package com.epmet.dto.result.demand;
import com.epmet.dto.result.HouseUserDTO;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 数据分析-个人档案-需求详情研判分析
* 案件居民家属
*/
@Data
public class HouseMemResDTO implements Serializable {
/**
* 居民信息及家属列表
*/
private String icResiUserId;
private String icUserName;
private String houseId;
private List<HouseUserDTO> houseUserList;
}

66
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java

@ -42,12 +42,10 @@ import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.dto.CustomerGridDTO;
import com.epmet.dto.IcUserDemandRecDTO;
import com.epmet.dto.form.CustomerGridFormDTO;
import com.epmet.dto.form.FindIcUserFormDTO;
import com.epmet.dto.form.ResiUserFormDTO;
import com.epmet.dto.form.demand.*;
import com.epmet.dto.result.AllGridsByUserIdResultDTO;
import com.epmet.dto.result.IcResiUserBriefDTO;
import com.epmet.dto.result.ResiUserResDTO;
import com.epmet.dto.result.UserBaseInfoResultDTO;
import com.epmet.dto.result.*;
import com.epmet.dto.result.demand.*;
import com.epmet.entity.*;
import com.epmet.feign.EpmetAdminOpenFeignClient;
@ -579,13 +577,9 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl<IcUserDemandRecD
@Override
public DemandResearchAnalysisResultDTO queryDemandResearchAnalysis(DemandResearchAnalysisFormDTO formDTO) {
//获取案件居民和及家属列表
Result<IcResiUserBriefDTO> userRes = epmetUserOpenFeignClient.findFamilyMem(formDTO.getIcResiUserId());
if (!userRes.success() || null == userRes.getData()) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取居民信息接口异常");
}
IcResiUserBriefDTO icResiUserDTO = userRes.getData();
DemandResearchAnalysisResultDTO resultDTO = ConvertUtils.sourceToTarget(icResiUserDTO, DemandResearchAnalysisResultDTO.class);
HouseMemResDTO houseMemResDTO=queryDemandUserFamily(formDTO);
DemandResearchAnalysisResultDTO resultDTO = ConvertUtils.sourceToTarget(houseMemResDTO, DemandResearchAnalysisResultDTO.class);
//log.info(JSON.toJSONString(formDTO));
//返参格式套一层类别和类别名称
List<DemandDataDTO> demandData=new ArrayList<>();
@ -596,13 +590,14 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl<IcUserDemandRecD
demandData.add(demandDataDTO);
//如果是服务措施分析来的,并且是pc录入的需求,需要先去找epmetUserIdList
if(UserDemandConstant.DEMAND_ANALYSIS.equals(formDTO.getQueryOrigin())
&&CollectionUtils.isEmpty(formDTO.getEpmetUserIdList())){
ResiUserFormDTO resiUserFormDTO=new ResiUserFormDTO();
if (UserDemandConstant.DEMAND_ANALYSIS.equals(formDTO.getQueryOrigin())
&& StringUtils.isNotBlank(formDTO.getIcResiUserId())
&& CollectionUtils.isEmpty(formDTO.getEpmetUserIdList())) {
ResiUserFormDTO resiUserFormDTO = new ResiUserFormDTO();
resiUserFormDTO.setCustomerId(formDTO.getCustomerId());
resiUserFormDTO.setIcResiUserId(formDTO.getIcResiUserId());
Result<ResiUserResDTO> resiRes=epmetUserOpenFeignClient.findEpmetUser(resiUserFormDTO);
if(!resiRes.success()){
Result<ResiUserResDTO> resiRes = epmetUserOpenFeignClient.findEpmetUser(resiUserFormDTO);
if (!resiRes.success()) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "查询小程序用户异常");
}
if (null != resiRes.getData() && CollectionUtils.isNotEmpty(resiRes.getData().getEpmetUserIdList())) {
@ -655,6 +650,45 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl<IcUserDemandRecD
return resultDTO;
}
/**
* 数据分析-个人档案-需求详情研判分析
* 获取案件居民和及家属列表
*
*
* @param formDTO
* @return
*/
private HouseMemResDTO queryDemandUserFamily(DemandResearchAnalysisFormDTO formDTO) {
HouseMemResDTO houseMemResDTO=new HouseMemResDTO();
if(StringUtils.isBlank(formDTO.getIcResiUserId())&&CollectionUtils.isEmpty(formDTO.getEpmetUserIdList())){
//需求人不能为空
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "需求人不能为空,icResiUserId与epmetUserIdList不能同时为空");
}
//服务措施分析点击了PC录入的需求,或者个人档案进来的(这两种情况肯定会有icResiUserId)
if(StringUtils.isNotBlank(formDTO.getIcResiUserId())){
Result<IcResiUserBriefDTO> userRes = epmetUserOpenFeignClient.findFamilyMem(formDTO.getIcResiUserId());
if (!userRes.success() || null == userRes.getData()) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取居民信息接口异常");
}
houseMemResDTO=ConvertUtils.sourceToTarget(userRes.getData(),HouseMemResDTO.class);
}
//服务措施点击了,小程序用户上报的需求
if (StringUtils.isBlank(formDTO.getIcResiUserId())&&CollectionUtils.isNotEmpty(formDTO.getEpmetUserIdList())) {
//需要找到当前这个epmetUserIdList相同身份证号的人,
//以及这个身份证号所对应的居民的家属
FindIcUserFormDTO findIcUserFormDTO=new FindIcUserFormDTO();
findIcUserFormDTO.setCustomerId(formDTO.getCustomerId());
findIcUserFormDTO.setEpmetUserId(formDTO.getEpmetUserIdList().get(NumConstant.ZERO));
Result<EpmetUserFamilyDTO> epmetUserFamilyDTOResult=epmetUserOpenFeignClient.findIcUser(findIcUserFormDTO);
if (!epmetUserFamilyDTOResult.success() || null == epmetUserFamilyDTOResult.getData()) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "根据小程序用户id,获取ic居民信息接口异常");
}
houseMemResDTO=ConvertUtils.sourceToTarget(epmetUserFamilyDTOResult.getData(),HouseMemResDTO.class);
formDTO.setEpmetUserIdList(epmetUserFamilyDTOResult.getData().getEpmetUserIdList());
}
return houseMemResDTO;
}
/**
* 数分析-服务措施分析-分页查询
*

19
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/FindIcUserFormDTO.java

@ -0,0 +1,19 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
@Data
public class FindIcUserFormDTO implements Serializable {
public interface AddUserInternalGroup {
}
@NotBlank(message = "epmetUserId不能为空", groups = AddUserInternalGroup.class)
private String epmetUserId;
@NotBlank(message = "客户id不能为空", groups = AddUserInternalGroup.class)
private String customerId;
}

35
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/EpmetUserFamilyDTO.java

@ -0,0 +1,35 @@
package com.epmet.dto.result;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class EpmetUserFamilyDTO implements Serializable {
/**
* 当前客户下与自己相同身份证号的所有账号
*/
private List<String> epmetUserIdList;
/**
* 同身份证号对应的ic里的居民
*/
private String icResiUserId;
/**
* ic里的姓名
*/
private String icUserName;
/**
* ic里的房子id
*/
private String houseId;
/**
* 同屋的其他人
*/
private List<HouseUserDTO> houseUserList;
}

9
epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java

@ -672,4 +672,13 @@ public interface EpmetUserOpenFeignClient {
@GetMapping("/epmetuser/icresiuser/findfamilymem/{icResiUserId}")
Result<IcResiUserBriefDTO> findFamilyMem(@PathVariable("icResiUserId") String icResiUserId);
/**
* 查找居民端小程序里的用户对应ic里的人以及家属们
*
* @param formDTO
* @return
*/
@PostMapping(value = "/epmetuser/user/findicuser")
Result<EpmetUserFamilyDTO> findIcUser(@RequestBody FindIcUserFormDTO formDTO);
}

11
epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java

@ -495,4 +495,15 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien
public Result<IcResiUserBriefDTO> findFamilyMem(String icResiUserId) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "findFamilyMem", icResiUserId);
}
/**
* 查找居民端小程序里的用户对应ic里的人以及家属们
*
* @param epmetUserIdList
* @return
*/
@Override
public Result<EpmetUserFamilyDTO> findIcUser(FindIcUserFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "findIcUser", formDTO);
}
}

12
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java

@ -198,4 +198,16 @@ public class UserController {
ValidatorUtils.validateEntity(formDTO,ResiUserFormDTO.AddUserInternalGroup.class);
return new Result<ResiUserResDTO>().ok(userService.findEpmetUser(formDTO));
}
/**
* 查找居民端小程序里的用户对应ic里的人以及家属们
*
* @param findIcUserFormDTO
* @return
*/
@PostMapping(value = "findicuser")
public Result<EpmetUserFamilyDTO> findIcUser(@RequestBody FindIcUserFormDTO findIcUserFormDTO){
ValidatorUtils.validateEntity(findIcUserFormDTO,FindIcUserFormDTO.AddUserInternalGroup.class);
return new Result<EpmetUserFamilyDTO>().ok(userService.findIcUser(findIcUserFormDTO));
}
}

6
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserDao.java

@ -12,6 +12,8 @@ import com.epmet.entity.UserEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @Description 用户DAO
* @IntefaceName UserDao
@ -63,4 +65,8 @@ public interface UserDao extends BaseDao<UserEntity> {
* @date 2021/9/10 8:51 上午
*/
UserDTO selectByUserId(String userId);
String selectIdNum(@Param("customerId") String customerId,@Param("epmetUserId") String epmetUserId);
List<String> selectCommonEpmetUser(@Param("idNum") String idNum, @Param("customerId") String customerId);
}

8
epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserService.java

@ -113,4 +113,12 @@ public interface UserService extends BaseService<UserEntity> {
* @return
*/
ResiUserResDTO findEpmetUser(ResiUserFormDTO formDTO);
/**
* 查找居民端小程序里的用户对应ic里的人以及家属们
*
* @param findIcUserFormDTO
* @return
*/
EpmetUserFamilyDTO findIcUser(FindIcUserFormDTO findIcUserFormDTO);
}

29
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java

@ -33,6 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@ -385,4 +386,32 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
return resiUserResDTO;
}
/**
* 查找居民端小程序里的用户对应ic里的人以及家属们
*
* @param findIcUserFormDTO
* @return
*/
@Override
public EpmetUserFamilyDTO findIcUser(FindIcUserFormDTO findIcUserFormDTO) {
EpmetUserFamilyDTO result=new EpmetUserFamilyDTO();
String idNum=baseDao.selectIdNum(findIcUserFormDTO.getCustomerId(),findIcUserFormDTO.getEpmetUserId());
if(StringUtils.isNotBlank(idNum)){
//同客户下,相同身份证号的,epmetuser
List<String> epmetUserIdList=baseDao.selectCommonEpmetUser(idNum,findIcUserFormDTO.getCustomerId());
result.setEpmetUserIdList(epmetUserIdList);
//找到该身份证号的居民
IcResiUserDTO icResiUserDTO=icResiUserService.getByIdCard(findIcUserFormDTO.getCustomerId(),idNum,null);
if(null!=icResiUserDTO){
result.setIcResiUserId(icResiUserDTO.getId());
result.setIcUserName(icResiUserDTO.getName());
result.setHouseId(icResiUserDTO.getHomeId());
IcResiUserBriefDTO icResiUserBriefDTO=icResiUserService.findFamilyMem(icResiUserDTO.getId());
result.setHouseUserList(null!=icResiUserBriefDTO&&CollectionUtils.isNotEmpty(icResiUserBriefDTO.getHouseUserList())?icResiUserBriefDTO.getHouseUserList():new ArrayList<>());
}
}
result.setEpmetUserIdList(Arrays.asList(findIcUserFormDTO.getEpmetUserId()));
return result;
}
}

22
epmet-user/epmet-user-server/src/main/resources/mapper/UserDao.xml

@ -82,4 +82,26 @@
u.DEL_FLAG = '0'
AND u.id = #{userId}
</select>
<select id="selectIdNum" parameterType="map" resultType="java.lang.String">
SELECT
uri.ID_NUM
FROM
user_resi_info uri
WHERE
uri.DEL_FLAG = '0'
AND uri.USER_ID = #{epmetUserId}
AND uri.CUSTOMER_ID = #{customerId}
</select>
<select id="selectCommonEpmetUser" parameterType="map" resultType="java.lang.String">
SELECT DISTINCT
uri.user_id
FROM
user_resi_info uri
WHERE
uri.DEL_FLAG = '0'
AND uri.CUSTOMER_ID = #{customerId}
AND uri.ID_NUM = #{idNum}
</select>
</mapper>

Loading…
Cancel
Save