Browse Source

需求研判分析

dev_shibei_match
yinzuomei 4 years ago
parent
commit
30425b5a87
  1. 34
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/DemandResearchAnalysisFormDTO.java
  2. 28
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/DemandResearchAnalysisResultDTO.java
  3. 14
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java
  4. 9
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java
  5. 51
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java
  6. 15
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/HouseUserDTO.java
  7. 19
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserBriefDTO.java
  8. 3
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java
  9. 5
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java
  10. 13
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
  11. 21
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java
  12. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java
  13. 5
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
  14. 37
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

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

@ -0,0 +1,34 @@
package com.epmet.dto.form.demand;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
/**
* 需求研判分析 入参DTO
*/
@Data
public class DemandResearchAnalysisFormDTO implements Serializable {
private static final long serialVersionUID = 3528172570410679765L;
public interface AddUserInternalGroup {
}
public interface AddUserShowGroup extends CustomerClientShowGroup {
}
@NotBlank(message = "firstCategoryCode不能为空",groups = AddUserInternalGroup.class)
private String firstCategoryCode;
@NotBlank(message = "isResiUserId不能为空",groups = AddUserInternalGroup.class)
private String isResiUserId;
private List<String> epmetUserIdList;
@NotBlank(message = "tokenDto中的customerId不能为空",groups = AddUserInternalGroup.class)
private String customerId;
}

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

@ -0,0 +1,28 @@
package com.epmet.dto.result.demand;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 数据分析-个人档案-需求详情研判分析
*/
@Data
public class DemandResearchAnalysisResultDTO implements Serializable {
private static final long serialVersionUID = -1024304149893118204L;
/**
* 居民信息及家属列表
*/
private String icResiUserId;
private String icUserName;
private String houseId;
private List<HouseUserDTO> houseUserList;
private List<IcResiUserReportDemandRes> demandList;
/**
* 入参中给的再返回去
*/
private List<String> epmetUserIdList;
}

14
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java

@ -25,6 +25,7 @@ import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.constant.UserDemandConstant;
import com.epmet.dto.form.demand.*;
import com.epmet.dto.result.demand.DemandRecResultDTO;
import com.epmet.dto.result.demand.DemandResearchAnalysisResultDTO;
import com.epmet.dto.result.demand.IcResiUserReportDemandRes;
import com.epmet.dto.result.demand.OptionDTO;
import com.epmet.service.*;
@ -210,7 +211,18 @@ public class IcUserDemandRecController {
}
/**
* 数据分析-个人档案-需求详情研判分析
*
* @param formDTO
* @return
*/
@PostMapping("demand-research-analysis")
public Result<DemandResearchAnalysisResultDTO> queryDemandResearchAnalysis(@LoginUser TokenDto tokenDto,@RequestBody DemandResearchAnalysisFormDTO formDTO){
formDTO.setCustomerId(tokenDto.getCustomerId());
ValidatorUtils.validateEntity(formDTO, DemandResearchAnalysisFormDTO.AddUserInternalGroup.class);
return new Result<DemandResearchAnalysisResultDTO>().ok(icUserDemandRecService.queryDemandResearchAnalysis(formDTO));
}
}

9
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java

@ -22,6 +22,7 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.IcUserDemandRecDTO;
import com.epmet.dto.form.demand.*;
import com.epmet.dto.result.demand.DemandRecResultDTO;
import com.epmet.dto.result.demand.DemandResearchAnalysisResultDTO;
import com.epmet.dto.result.demand.IcResiUserReportDemandRes;
import com.epmet.entity.IcUserDemandRecEntity;
@ -144,4 +145,12 @@ public interface IcUserDemandRecService extends BaseService<IcUserDemandRecEntit
* @return
*/
DemandRecResultDTO queryDemandDetail(DemandDetailFormDTO formDTO);
/**
* 数据分析-个人档案-需求详情研判分析
*
* @param formDTO
* @return
*/
DemandResearchAnalysisResultDTO queryDemandResearchAnalysis(DemandResearchAnalysisFormDTO formDTO);
}

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

@ -42,8 +42,10 @@ import com.epmet.dto.IcUserDemandRecDTO;
import com.epmet.dto.form.CustomerGridFormDTO;
import com.epmet.dto.form.demand.*;
import com.epmet.dto.result.AllGridsByUserIdResultDTO;
import com.epmet.dto.result.IcResiUserBriefDTO;
import com.epmet.dto.result.UserBaseInfoResultDTO;
import com.epmet.dto.result.demand.DemandRecResultDTO;
import com.epmet.dto.result.demand.DemandResearchAnalysisResultDTO;
import com.epmet.dto.result.demand.IcResiUserReportDemandRes;
import com.epmet.entity.*;
import com.epmet.feign.EpmetAdminOpenFeignClient;
@ -554,7 +556,56 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl<IcUserDemandRecD
}
/**
* 数据分析-个人档案-需求详情研判分析
*
* @param formDTO
* @return
*/
@Override
public DemandResearchAnalysisResultDTO queryDemandResearchAnalysis(DemandResearchAnalysisFormDTO formDTO) {
//获取案件居民和及家属列表
Result<IcResiUserBriefDTO> userRes = epmetUserOpenFeignClient.findFamilyMem(formDTO.getIsResiUserId());
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);
resultDTO.setEpmetUserIdList(CollectionUtils.isNotEmpty(formDTO.getEpmetUserIdList()) ? formDTO.getEpmetUserIdList() : Collections.emptyList());
//获取当前需求人,相同分类的需求列表。不分页,直接返回所有
List<String> userIds=new ArrayList<>();
userIds.add(formDTO.getIsResiUserId());
if(CollectionUtils.isNotEmpty(formDTO.getEpmetUserIdList())){
userIds.addAll(formDTO.getEpmetUserIdList());
}
IcResiUserDemandFromDTO icResiUserDemandFromDTO=new IcResiUserDemandFromDTO();
icResiUserDemandFromDTO.setUserIds(userIds);
icResiUserDemandFromDTO.setFirstCategoryCode(formDTO.getFirstCategoryCode());
List<IcResiUserReportDemandRes> demandList = baseDao.selectUserDemand(icResiUserDemandFromDTO);
if(CollectionUtils.isNotEmpty(demandList)){
// 1、状态字典
Result<Map<String, String>> statusRes = adminOpenFeignClient.dictMap(DictTypeEnum.USER_DEMAND_STATUS.getCode());
Map<String, String> statusMap = statusRes.success() && MapUtils.isNotEmpty(statusRes.getData()) ? statusRes.getData() : new HashMap<>();
//2、查询分类名称
List<String> categoryCodes = demandList.stream().map(IcResiUserReportDemandRes::getCategoryCode).collect(Collectors.toList());
List<IcResiDemandDictEntity> dictList = demandDictService.listByCodes(formDTO.getCustomerId(), categoryCodes);
Map<String, String> dictMap = dictList.stream().collect(Collectors.toMap(IcResiDemandDictEntity::getCategoryCode, IcResiDemandDictEntity::getCategoryName));
for (IcResiUserReportDemandRes resDto : demandList) {
//状态赋值
resDto.setStatusName(statusMap.containsKey(resDto.getStatus()) ? statusMap.get(resDto.getStatus()) : StrConstant.EPMETY_STR);
if (null != dictMap && dictMap.containsKey(resDto.getCategoryCode())) {
//分类名称XXX-XX 或者XXX
resDto.setCategoryName(dictMap.get(resDto.getCategoryCode()));
}
//一级分类名称
resDto.setFirstCategoryName(demandDictService.getCategoryName(formDTO.getCustomerId(),resDto.getFirstCategoryCode()));
}
resultDTO.setDemandList(CollectionUtils.isNotEmpty(demandList) ? demandList : Collections.emptyList());
}
return resultDTO;
}

15
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/HouseUserDTO.java

@ -0,0 +1,15 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* 家属
*/
@Data
public class HouseUserDTO implements Serializable {
private static final long serialVersionUID = -5307147522738642535L;
private String icResiUserId;
private String icUserName;
}

19
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/IcResiUserBriefDTO.java

@ -0,0 +1,19 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 案件居民家属列表
* 只有名称这些简要信息
*/
@Data
public class IcResiUserBriefDTO extends HouseUserDTO implements Serializable {
private String houseId;
/**
* 同屋的其他人
*/
private List<HouseUserDTO> houseUserList;
}

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

@ -669,4 +669,7 @@ public interface EpmetUserOpenFeignClient {
*/
@PostMapping(value = "/epmetuser/user/findepmetuser")
Result<ResiUserResDTO> findEpmetUser(@RequestBody ResiUserFormDTO formDTO);
@GetMapping("/epmetuser/icresiuser/findfamilymem/{icResiUserId}")
Result<IcResiUserBriefDTO> findFamilyMem(@PathVariable("icResiUserId") String icResiUserId);
}

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

@ -490,4 +490,9 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien
public Result<ResiUserResDTO> findEpmetUser(ResiUserFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "findEpmetUser", formDTO);
}
@Override
public Result<IcResiUserBriefDTO> findFamilyMem(String icResiUserId) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "findFamilyMem", icResiUserId);
}
}

13
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java

@ -206,6 +206,19 @@ public class IcResiUserController {
return new Result<List<HomeUserResultDTO>>().ok(icResiUserService.getPeopleByRoom(formDTO.getHomeId()));
}
/**
* 根据ic_resi_user找家属
* @param icResiUserId
* @return
*/
@GetMapping("findfamilymem/{icResiUserId}")
public Result<IcResiUserBriefDTO> findFamilyMem(@PathVariable("icResiUserId") String icResiUserId){
if(StringUtils.isNotBlank(icResiUserId)){
return new Result<IcResiUserBriefDTO>().ok(icResiUserService.findFamilyMem(icResiUserId));
}
return new Result<>();
}
@PostMapping("listresi")
public Result<PageData<Map<String, Object>>> queryListResi1(@LoginUser TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO) {
//pageFormDTO.setCustomerId("45687aa479955f9d06204d415238f7cc");

21
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java

@ -20,10 +20,7 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.IcResiUserDTO;
import com.epmet.dto.form.ResiUserQueryValueDTO;
import com.epmet.dto.result.DemandUserResDTO;
import com.epmet.dto.result.IcFormResColumnDTO;
import com.epmet.dto.result.PersonDataResultDTO;
import com.epmet.dto.result.SearchByNameResultDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.IcResiUserEntity;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
@ -166,4 +163,20 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
IcResiUserDTO selectIdByIdCard(@Param("customerId") String customerId,
@Param("idNum")String idNum,
@Param("icResiUserId")String icResiUserId);
/**
* 获取居民名称家属名称和id
* @param isResiUserId
* @return
*/
IcResiUserBriefDTO selectIcResuUser(@Param("isResiUserId") String isResiUserId);
/**
* 除了本人以外住在这个房子的人
*
* @param currentIcResiUserId
* @param homeId
* @return
*/
List<HouseUserDTO> selectListFamilyMember(@Param("currentIcResiUserId") String currentIcResiUserId, @Param("homeId") String homeId);
}

2
epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java

@ -151,4 +151,6 @@ public interface IcResiUserService extends BaseService<IcResiUserEntity> {
* @return
*/
IcResiUserDTO getByIdCard(String customerId, String idNum,String icResiUserId);
IcResiUserBriefDTO findFamilyMem(String icResiUserId);
}

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

@ -878,4 +878,9 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
}
return baseDao.selectIdByIdCard(customerId,idNum,icResiUserId);
}
@Override
public IcResiUserBriefDTO findFamilyMem(String icResiUserId) {
return baseDao.selectIcResuUser(icResiUserId);
}
}

37
epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

@ -324,4 +324,41 @@
and ir.id=#{icResiUserId}
</if>
</select>
<resultMap id="IcResiUserBriefDTOMap" type="com.epmet.dto.result.IcResiUserBriefDTO">
<id property="icResiUserId" column="ID" ></id>
<result property="houseId" column="HOME_ID"/>
<result property="icUserName" column="NAME"/>
<collection property="houseUserList" ofType="com.epmet.dto.result.HouseUserDTO"
column="{currentIcResiUserId=ID,homeId=HOME_ID}" select="com.epmet.dao.IcResiUserDao.selectListFamilyMember">
</collection>
</resultMap>
<!-- 查询当前居民的姓名,和房屋id -->
<select id="selectIcResuUser" parameterType="map" resultMap="IcResiUserBriefDTOMap">
SELECT
m.ID,
m.HOME_ID,
m.`NAME`
FROM
ic_resi_user m
WHERE
m.DEL_FLAG = '0'
AND m.id = #{isResiUserId}
</select>
<!-- 除了本人以外,住在这个房子的人 -->
<select id="selectListFamilyMember" parameterType="map" resultType="com.epmet.dto.result.HouseUserDTO">
SELECT
m.ID,
m.`NAME`
FROM
ic_resi_user m
WHERE
m.DEL_FLAG = '0'
AND m.id != #{isResiUserId}
and m.HOME_ID=#{homeId}
order by m.CREATED_TIME asc
</select>
</mapper>

Loading…
Cancel
Save