Browse Source

Merge remote-tracking branch 'origin/lingshan_master' into lingshan_master

master
luyan 2 years ago
parent
commit
d4961c542a
  1. 3
      doc/epmet-cloud.md
  2. 35
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/agentservice/LingShanScreenServiceRstDTO.java
  3. 13
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/LingShanAgentServiceController.java
  4. 2
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/LingShanAgentServiceService.java
  5. 80
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LingShanAgentServiceServiceImpl.java
  6. 5
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseListResultDTO.java
  7. 18
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/ConfigPartyCenterHouseFormDTO.java
  8. 5
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/enums/HouseChangeEnums.java
  9. 10
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java
  10. 12
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java
  11. 10
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java
  12. 2
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/LingshanPartyCenterHouseLianhuDao.java
  13. 7
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java
  14. 38
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java
  15. 32
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java
  16. 3
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml
  17. 8
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/LingshanPartyCenterHouseLianhuDao.xml
  18. 5
      epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/ICWarnStatsEventListener.java
  19. 36
      epmet-user/epmet-user-server/src/main/java/com/epmet/processor/ResiImportDyzxhPostProcessor.java
  20. 21
      epmet-user/epmet-user-server/src/main/java/com/epmet/processor/ResiImportPostProcessor.java
  21. 15
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java
  22. 64
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java

3
doc/epmet-cloud.md

@ -20,6 +20,9 @@ PS:目前正在测试通过负载均衡器和本地环境变量实现动态修
- dysmsapi.aliyuncs.com 阿里云短信
- api.weixin.qq.com 微信直接交互(二维码等)
- oss-cn-qingdao.aliyuncs.com(如果需要用到oss)
- service.sdmap.gov.cn 地图搜索代理
- wprd03.is.autonavi.com 地图瓦片代理
- oapi.dingtalk.com 钉钉后台交互(如果需要)

35
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/agentservice/LingShanScreenServiceRstDTO.java

@ -1,20 +1,25 @@
package com.epmet.dto.result.agentservice;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LingShanScreenServiceRstDTO {
private String id;
private String content;
private String applicantName;
private String applicantMobile;
private String applicantHomeAddress;
private String exceptServeAddress;
private Date createdTime;
private Date exceptServeTime;
private String agentName;
private String agentMobile;
@ -26,4 +31,32 @@ public class LingShanScreenServiceRstDTO {
* 纬度
*/
private String latitude;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date processTime;
private String processDesc;
private List<String> attachments;
private String processStatus;
private String closeDesc;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date closeTime;
private Integer satisfication;
/**
* 处理进展
*/
private List<ProcessNode> processNodes = new ArrayList<>();
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class ProcessNode {
private Integer processStatus;
private String processStatusName;
private String processorName;
private String processDesc;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date processTime;
private List<String> processAttachments = new ArrayList<>();
}
}

13
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/LingShanAgentServiceController.java

@ -286,6 +286,19 @@ public class LingShanAgentServiceController {
return new Result<List<LingShanScreenServiceRstDTO>>().ok(rl);
}
/**
* @Description: 中央大屏:服务详情
* @param id:
* @Return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.agentservice.LingShanScreenServiceRstDTO>
* @Author: wangxianzhang
* @Date: 2023/5/17 2:40 PM
*/
@GetMapping("screen/serviceDetail")
public Result<LingShanScreenServiceRstDTO> screenServiceDetail(@RequestParam("id") String id) {
LingShanScreenServiceRstDTO c = lingShanServiceAgentService.screenServiceDetail(id);
return new Result<LingShanScreenServiceRstDTO>().ok(c);
}
/**
* @Description: 服务类型数量分析
* @param orgType:

2
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/LingShanAgentServiceService.java

@ -38,4 +38,6 @@ public interface LingShanAgentServiceService {
List<ScreenAgentServiceCategoryAnalysisRstDTO> serviceCategoryAnalysis(String orgType, String orgId);
List<AgentServiceTrendAnalysisRstDTO> serviceTrendAnalysis(String orgType, String orgId);
LingShanScreenServiceRstDTO screenServiceDetail(String id);
}

80
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LingShanAgentServiceServiceImpl.java

@ -513,7 +513,6 @@ public class LingShanAgentServiceServiceImpl implements LingShanAgentServiceServ
d.setAgentMobile(agentInfo.getMobile());
}
// todo 此处要查什么??申请人家庭住址?申请人家庭住址是什么?
// IcResiUserDTO resiUser = getResultDataOrReturnNull(userOpenFeignClient.getIcResiUserDTO(rec.getApplicantId()), ServiceConstant.EPMET_USER_SERVER);
// if (resiUser == null) {
// log.error("【灵山大屏】代办事件列表:查询申请人信息失败,申请人ID:" + rec.getApplicantId());
@ -525,8 +524,10 @@ public class LingShanAgentServiceServiceImpl implements LingShanAgentServiceServ
// d.setApplicantHomeAddress(resiUserGridInfo.getGridName());
// }
// }
d.setId(rec.getId());
d.setContent(rec.getContent());
d.setExceptServeAddress(rec.getExceptServeAddress());
d.setExceptServeTime(rec.getExceptServeTime());
d.setCreatedTime(rec.getCreatedTime());
d.setApplicantName(rec.getApplicantName());
d.setApplicantMobile(rec.getContactMobile());
@ -537,6 +538,81 @@ public class LingShanAgentServiceServiceImpl implements LingShanAgentServiceServ
}).collect(Collectors.toList());
}
@Override
public LingShanScreenServiceRstDTO screenServiceDetail(String id) {
LingshanAgentServiceRecordEntity serviceRecord = agentServiceRecordDao.selectById(id);
if (serviceRecord == null) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "未找到对应服务,ID:" + id);
}
LingShanScreenServiceRstDTO rd = new LingShanScreenServiceRstDTO();
rd.setExceptServeAddress(serviceRecord.getExceptServeAddress());
rd.setExceptServeTime(serviceRecord.getExceptServeTime());
rd.setContent(serviceRecord.getContent());
rd.setLatitude(serviceRecord.getLatitude());
rd.setLongitude(serviceRecord.getLongitude());
rd.setAgentMobile(serviceRecord.getContactMobile());
rd.setAgentName(serviceRecord.getAgentName());
rd.setApplicantMobile(serviceRecord.getContactMobile());
rd.setApplicantName(serviceRecord.getApplicantName());
rd.setCreatedTime(serviceRecord.getCreatedTime());
rd.setCloseTime(serviceRecord.getCloseTime());
rd.setSatisfication(serviceRecord.getSatisfication());
rd.setAttachments(JSON.parseArray(serviceRecord.getAttachments(), String.class));
if (serviceRecord.getProcessStatus() == LingShanAgentServiceProcessStatusEnum.ACCEPTED.getStatusCode()
|| serviceRecord.getProcessStatus() == LingShanAgentServiceProcessStatusEnum.CLOSED.getStatusCode()) {
rd.setProcessTime(serviceRecord.getProcessTime());
}
// 处理进展
List<LingShanScreenServiceRstDTO.ProcessNode> processNodes = rd.getProcessNodes();
// 创建起始节点
LingShanScreenServiceRstDTO.ProcessNode nc = createProcessNode(LingShanAgentServiceProcessStatusEnum.WAIT_ACCEPT, serviceRecord.getApplicantName(), null, serviceRecord.getCreatedTime(), new ArrayList<>());
processNodes.add(nc);
// 根据最新状态拼接后续处理节点
int processStatus = serviceRecord.getProcessStatus().intValue();
LingShanAgentServiceProcessStatusEnum processStatusEnum = LingShanAgentServiceProcessStatusEnum.getByStatus(processStatus);
if (LingShanAgentServiceProcessStatusEnum.WITHDRAW.getStatusCode() == processStatus) {
// 已撤回
LingShanScreenServiceRstDTO.ProcessNode nd = createProcessNode(processStatusEnum, serviceRecord.getApplicantName(), null, serviceRecord.getProcessTime(), new ArrayList<>());
processNodes.add(nd);
} else {
// 正常处理流程
if (processStatus == LingShanAgentServiceProcessStatusEnum.ACCEPTED.getStatusCode()) {
// 受理 0 1
LingShanScreenServiceRstDTO.ProcessNode np = createProcessNode(processStatusEnum, serviceRecord.getAgentName(), serviceRecord.getProcessDesc(), serviceRecord.getProcessTime(), new ArrayList<>());
processNodes.add(np);
} else if (processStatus == LingShanAgentServiceProcessStatusEnum.REJECTED.getStatusCode()) {
// 驳回 0 2
LingShanScreenServiceRstDTO.ProcessNode np = createProcessNode(processStatusEnum, serviceRecord.getAgentName(), serviceRecord.getProcessDesc(), serviceRecord.getProcessTime(), new ArrayList<>());
processNodes.add(np);
} else {
// 办结 0 1 3
LingShanScreenServiceRstDTO.ProcessNode na = createProcessNode(LingShanAgentServiceProcessStatusEnum.ACCEPTED, serviceRecord.getAgentName(), serviceRecord.getProcessDesc(), serviceRecord.getProcessTime(), new ArrayList<>());
LingShanScreenServiceRstDTO.ProcessNode ncc = createProcessNode(LingShanAgentServiceProcessStatusEnum.CLOSED, serviceRecord.getAgentName(), serviceRecord.getCloseDesc(), serviceRecord.getCloseTime(), JSON.parseArray(serviceRecord.getProcessAttachments(), String.class));
processNodes.add(na);
processNodes.add(ncc);
}
}
return rd;
}
private LingShanScreenServiceRstDTO.ProcessNode createProcessNode(LingShanAgentServiceProcessStatusEnum processStatusEnum, String applicantName, String processDesc, Date processTime, List<String> processAttachments) {
return new LingShanScreenServiceRstDTO.ProcessNode(
processStatusEnum.getStatusCode(),
processStatusEnum.getStatusName(),
applicantName,
processDesc,
processTime,
processAttachments);
}
@Override
public List<ScreenAgentServiceCategoryAnalysisRstDTO> serviceCategoryAnalysis(String orgType, String orgId) {

5
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseListResultDTO.java

@ -89,5 +89,8 @@ public class IcHouseListResultDTO implements Serializable {
*/
private String houseCode;
/**
* 灵山项目是否党员中心户1是0不是
*/
private String partyCenterHouseFlag;
}

18
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/ConfigPartyCenterHouseFormDTO.java

@ -0,0 +1,18 @@
package com.epmet.dto.result.lingshan;
import lombok.Data;
/**
* @Description
* @Author yzm
* @Date 2023/5/17 12:45
*/
@Data
public class ConfigPartyCenterHouseFormDTO {
private String houseId;
/**
* 灵山项目是否党员中心户1是0不是
*/
private String partyCenterHouseFlag;
}

5
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/enums/HouseChangeEnums.java

@ -14,8 +14,9 @@ public enum HouseChangeEnums {
RENT_FLAG("RENT_FLAG","房屋状态"),
OWNER_NAME("OWNER_NAME","房主姓名"),
OWNER_PHONE("OWNER_PHONE","房主电话"),
OWNER_ID_CARD("OWNER_ID_CARD","房主身份证");
OWNER_ID_CARD("OWNER_ID_CARD","房主身份证"),
// 灵山项目:是否党员中心户:1是;0不是
PARTY_CENTER_HOUSE_FLAG("PARTY_CENTER_HOUSE_FLAG", "党员中心户");
private String column;
private String columnName;

10
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java

@ -6,6 +6,7 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.*;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.dto.result.lingshan.ConfigPartyCenterHouseFormDTO;
import com.epmet.feign.fallback.GovOrgOpenFeignClientFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
@ -782,4 +783,13 @@ public interface GovOrgOpenFeignClient {
Result<List<LingShanScreenPartyObjectByTypeRstDTO>> lingshanPartyServiceCenterList(
@RequestParam(value = "objType", required = false) String objType,
@RequestParam(value = "orgId", required = false) String orgId);
/**
* 灵山项目新增居民/修改居民/删除居民/导入居民时重新更新房屋是否是党员中心户
*
* @param formDTO
* @return
*/
@PostMapping("/gov/org/ichouse/updatePartyCenterHouse")
Result updatePartyCenterHouse(@RequestBody ConfigPartyCenterHouseFormDTO formDTO);
}

12
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java

@ -7,6 +7,7 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.*;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.dto.result.lingshan.ConfigPartyCenterHouseFormDTO;
import com.epmet.feign.GovOrgOpenFeignClient;
import java.util.List;
@ -483,4 +484,15 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient {
public Result<List<LingShanScreenPartyObjectByTypeRstDTO>> lingshanPartyServiceCenterList(String objType, String orgId) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "lingshanPartyServiceCenterList", objType, orgId);
}
/**
* 灵山项目新增居民/修改居民/删除居民/导入居民时重新更新房屋是否是党员中心户
*
* @param formDTO
* @return
*/
@Override
public Result updatePartyCenterHouse(ConfigPartyCenterHouseFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "updatePartyCenterHouse", formDTO);
}
}

10
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java

@ -218,4 +218,14 @@ public class IcHouseController {
return new Result<List<HouseTreeDTO>>().ok(icHouseService.getOrgTreeData(formDTO.getGridId()));
}
/**
* 灵山项目新增居民/修改居民/删除居民/导入居民时重新更新房屋是否是党员中心户
* @param formDTO
* @return
*/
@PostMapping("updatePartyCenterHouse")
public Result updatePartyCenterHouse(@RequestBody ConfigPartyCenterHouseFormDTO formDTO){
icHouseService.updatePartyCenterHouse(formDTO.getHouseId(),formDTO.getPartyCenterHouseFlag());
return new Result();
}
}

2
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/LingshanPartyCenterHouseLianhuDao.java

@ -14,4 +14,6 @@ import org.apache.ibatis.annotations.Mapper;
public interface LingshanPartyCenterHouseLianhuDao extends BaseDao<LingshanPartyCenterHouseLianhuEntity> {
int deleteByPartyCenterHouseId(String partyCenterHouseId);
LingshanPartyCenterHouseLianhuEntity selectByHouseId(String houseId);
}

7
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java

@ -176,4 +176,11 @@ public interface IcHouseService extends BaseService<IcHouseEntity> {
* @return
*/
List<HouseTreeDTO> getOrgTreeData(String gridId);
/**
* 更新房屋是否是党员中心户
* @param houseId
* @param partyCenterHouseFlag
*/
void updatePartyCenterHouse(String houseId, String partyCenterHouseFlag);
}

38
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java

@ -356,6 +356,44 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver {
e.setChangeBefore(StringUtils.isNotBlank(entity.getOwnerIdCard()) ? entity.getOwnerIdCard() : "无");
entityList.add(e);
}
if (StringUtils.isNotBlank(entity.getPartyCenterHouseFlag())) {
if(!entity.getPartyCenterHouseFlag().equals(houseDTO.getPartyCenterHouseFlag())){
String originName=NumConstant.ZERO_STR.equals(entity.getPartyCenterHouseFlag())?"否":"是";
String nowName="";
if(NumConstant.ZERO_STR.equals(houseDTO.getPartyCenterHouseFlag())){
nowName="否";
}else if(NumConstant.ONE_STR.equals(houseDTO.getPartyCenterHouseFlag())){
nowName="是";
}else{
nowName="-";
}
sbAfter.append(HouseChangeEnums.PARTY_CENTER_HOUSE_FLAG.getColumnName()).append(":").append(nowName).append(";");
sbBefore.append(HouseChangeEnums.PARTY_CENTER_HOUSE_FLAG.getColumnName()).append(":").append(originName).append(";");
IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity();
e.setChangeCol(HouseChangeEnums.PARTY_CENTER_HOUSE_FLAG.getColumn());
e.setChangeAfter(nowName);
e.setChangeBefore(originName);
entityList.add(e);
}
} else {
// 原来不确定是否是党员中心户
String nowName="";
if(NumConstant.ZERO_STR.equals(houseDTO.getPartyCenterHouseFlag())){
nowName="否";
}else if(NumConstant.ONE_STR.equals(houseDTO.getPartyCenterHouseFlag())){
nowName="是";
}else{
nowName="-";
}
sbAfter.append(HouseChangeEnums.PARTY_CENTER_HOUSE_FLAG.getColumnName()).append(":").append(nowName).append(";");
sbBefore.append(HouseChangeEnums.PARTY_CENTER_HOUSE_FLAG.getColumnName()).append(":").append("-").append(";");
IcHouseChangeDetailEntity e = new IcHouseChangeDetailEntity();
e.setChangeCol(HouseChangeEnums.PARTY_CENTER_HOUSE_FLAG.getColumn());
e.setChangeAfter(nowName);
e.setChangeBefore("-");
entityList.add(e);
}
if (StringUtils.isNotBlank(sbAfter)) {
String before = sbBefore.substring(NumConstant.ZERO, sbBefore.length() - NumConstant.ONE);
String after = sbAfter.substring(NumConstant.ZERO, sbAfter.length() - NumConstant.ONE);

32
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java

@ -1,6 +1,7 @@
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
@ -38,6 +39,7 @@ import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.OperCustomizeOpenFeignClient;
import com.epmet.redis.IcHouseRedis;
import com.epmet.service.CustomerGridService;
import com.epmet.service.HouseService;
import com.epmet.service.IcHouseService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -444,6 +446,7 @@ public class IcHouseServiceImpl extends BaseServiceImpl<IcHouseDao, IcHouseEntit
* @param partyCenterHouseId
* @param lianHuHouseList
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void bingLianHu(String partyCenterHouseId, List<PartyCenterHouseBindLianHuDetailDTO> lianHuHouseList) {
IcHouseEntity partyCenterHouse=baseDao.selectById(partyCenterHouseId);
@ -452,8 +455,6 @@ public class IcHouseServiceImpl extends BaseServiceImpl<IcHouseDao, IcHouseEntit
String gridIdPath=PidUtils.convertPid2OrgIdPath(gridDTO.getId(), gridDTO.getPids());
// 先删除
LambdaQueryWrapper<LingshanPartyCenterHouseLianhuEntity> queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.eq(LingshanPartyCenterHouseLianhuEntity::getPartyCenterHouseId,partyCenterHouseId);
partyCenterHouseLianhuDao.deleteByPartyCenterHouseId(partyCenterHouseId);
// 后插入
lianHuHouseList.forEach(lianHuHouse->{
@ -471,6 +472,8 @@ public class IcHouseServiceImpl extends BaseServiceImpl<IcHouseDao, IcHouseEntit
}
if(CollectionUtils.isNotEmpty(list)){
for(IcHouseEntity houseEntity:list){
LingshanPartyCenterHouseLianhuEntity existedEntiy=partyCenterHouseLianhuDao.selectByHouseId(houseEntity.getId());
if (null == existedEntiy) {
LingshanPartyCenterHouseLianhuEntity entity = new LingshanPartyCenterHouseLianhuEntity();
entity.setPartyCenterHouseId(partyCenterHouseId);
// 目前只能绑定同一个网格下的房屋
@ -486,6 +489,7 @@ public class IcHouseServiceImpl extends BaseServiceImpl<IcHouseDao, IcHouseEntit
partyCenterHouseLianhuDao.insert(entity);
}
}
}
});
}
@ -534,6 +538,30 @@ public class IcHouseServiceImpl extends BaseServiceImpl<IcHouseDao, IcHouseEntit
return resultList;
}
/**
* 更新房屋是否是党员中心户
*
* @param houseId
* @param partyCenterHouseFlag:是否党员中心户1是0不是
*/
@Override
public void updatePartyCenterHouse(String houseId, String partyCenterHouseFlag) {
if(NumConstant.ZERO_STR.equals(partyCenterHouseFlag)){
//房屋如果不是党员中心户,自动删除绑定的联户
partyCenterHouseLianhuDao.deleteByPartyCenterHouseId(houseId);
}
//加一条变更记录吧。。 就当留痕了
IcHouseEntity origin = baseDao.selectById(houseId);
IcHouseDTO icHouseDTO = ConvertUtils.sourceToTarget(origin, IcHouseDTO.class);
icHouseDTO.setPartyCenterHouseFlag(partyCenterHouseFlag);
SpringContextUtils.getBean(HouseService.class).houseChangeRecord(houseId, icHouseDTO.getCustomerId(), icHouseDTO);
//修改
LambdaUpdateWrapper<IcHouseEntity> update = new LambdaUpdateWrapper<>();
update.set(IcHouseEntity::getPartyCenterHouseFlag, partyCenterHouseFlag)
.set(IcHouseEntity::getUpdatedTime,new Date())
.eq(IcHouseEntity::getId, houseId);
baseDao.update(null, update);
}
}

3
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml

@ -118,7 +118,8 @@
gr.GRID_NAME,
IFNULL(a.sort,0) as sort,
IFNULL(a.REMARK,'') AS remark,
a.CUSTOMER_ID
a.CUSTOMER_ID,
a.PARTY_CENTER_HOUSE_FLAG as partyCenterHouseFlag
from ic_house a
LEFT JOIN ic_building b on a.BUILDING_ID = b.ID and b.DEL_FLAG = '0'
LEFT JOIN ic_neighbor_hood c on a.NEIGHBOR_HOOD_ID = c.ID and c.DEL_FLAG = '0'

8
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/LingshanPartyCenterHouseLianhuDao.xml

@ -26,4 +26,12 @@
<delete id="deleteByPartyCenterHouseId" parameterType="java.lang.String">
delete from lingshan_party_center_house_lianhu where PARTY_CENTER_HOUSE_ID=#{partyCenterHouseId}
</delete>
<select id="selectByHouseId" parameterType="java.lang.String" resultType="com.epmet.entity.LingshanPartyCenterHouseLianhuEntity">
select
*
from lingshan_party_center_house_lianhu
where DEL_FLAG='0'
and HOUSE_ID = #{houseId}
</select>
</mapper>

5
epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/ICWarnStatsEventListener.java

@ -15,6 +15,7 @@ import com.epmet.constant.SystemMessageType;
import com.epmet.service.IcNatService;
import com.epmet.service.IcResiUserService;
import com.epmet.service.StatsResiWarnService;
import com.epmet.service.impl.IcResiUserServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
@ -77,6 +78,10 @@ public class ICWarnStatsEventListener implements MessageListenerConcurrently {
if (!updateIcNatResiFlag(tags, obj)){
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"消费失败,等待重新消费");
}
//灵山需求:如果放屋里的人,有党员中心户, 将ic_house.party_center_house_flag置为1,说明该房屋是党员中心户
SpringContextUtils.getBean(IcResiUserServiceImpl.class).syncHousePartyCenterHouse(null,obj.getIcResiUser());
} catch (RenException e) {
// 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试
logger.error("【开放数据事件监听器】-居民信息变动MQ失败:".concat(ExceptionUtils.getErrorStackTrace(e)));

36
epmet-user/epmet-user-server/src/main/java/com/epmet/processor/ResiImportDyzxhPostProcessor.java

@ -0,0 +1,36 @@
package com.epmet.processor;
import com.epmet.commons.rocketmq.messages.IcResiUserAddMQMsg;
import com.epmet.constant.SystemMessageType;
import com.epmet.dto.form.SystemMsgFormDTO;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Map;
@Slf4j
@Component
public class ResiImportDyzxhPostProcessor extends ResiImportPostProcessor{
@Autowired
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
@Override
public void consume(Map<String, String> resiInfoMap) {
System.out.println(resiInfoMap);
String customerId=resiInfoMap.get("CUSTOMER_ID");
// String userId=resiInfoMap.get("ID");
String userId=resiInfoMap.get("IC_RESI_USER");
//推送MQ事件
IcResiUserAddMQMsg mqMsg = new IcResiUserAddMQMsg();
mqMsg.setCustomerId(customerId);
mqMsg.setIcResiUser(userId);
SystemMsgFormDTO form = new SystemMsgFormDTO();
form.setMessageType(SystemMessageType.IC_RESI_USER_ADD);
form.setContent(mqMsg);
epmetMessageOpenFeignClient.sendSystemMsgByMQ(form);
}
}

21
epmet-user/epmet-user-server/src/main/java/com/epmet/processor/ResiImportPostProcessor.java

@ -0,0 +1,21 @@
package com.epmet.processor;
import java.util.Map;
/**
* @Description 居民信息导入之后的处理方法
* @Author wangxianzhang
* @Time 2023/5/17 1:33 PM
*/
public abstract class ResiImportPostProcessor {
/**
* @Description: 居民信息导入之后的消费方法
* @param resiInfoMap: 居民信息map
* @Return void
* @Author: wangxianzhang
* @Date: 2023/5/17 1:33 PM
*/
public abstract void consume(Map<String, String> resiInfoMap);
}

15
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java

@ -6,7 +6,6 @@ import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.EasyExcelFactory;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.epmet.bean.ResiImportCategoryData;
@ -46,6 +45,7 @@ import com.epmet.enums.IcResiUserTableEnum;
import com.epmet.excel.handler.IcResiImportDynamicExcelListener;
import com.epmet.excel.handler.IcResiVirtualSheetImportListener;
import com.epmet.feign.*;
import com.epmet.processor.ResiImportPostProcessor;
import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient;
import com.epmet.send.SendMqMsgUtil;
import com.epmet.service.IcResiUserImportService;
@ -170,6 +170,8 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
private IcPartyMemberDao icPartyMemberDao;
@Autowired
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
@Autowired
private List<ResiImportPostProcessor> resiImportPostProcessors;
/**
* 子表中不需要的列因为主表中需要身份证号网格等信息但子表中不需要这些列必填只要有身份证号即可因此字表判断的时候需要排除这些列
@ -584,6 +586,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
categoryData = null;
}
} catch (Exception e) {
String errorMsg;
@ -762,6 +765,12 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
// 将成功的居民的身份证号添加到列表中
successIdCards.add(row.get(ID_CARD_COLUMN_NO));
// 居民信息-党员信息导入后置处理器回调
LinkedHashMap<String, String> finalColumnAndValues = columnAndValues;
resiImportPostProcessors.forEach(p -> {
p.consume(finalColumnAndValues);
});
} catch (Exception e) {
String errorMsg;
if (e instanceof RenException || e instanceof EpmetException) {
@ -1040,7 +1049,9 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
superOptions = new HashMap<>();
superOptions.put(superColumnValue, options);
itemIdAndOptionsCache.put(currentItemId, superOptions);
if (options == null) {
System.out.println(options);
}
String colValue = options.get(cellContent);
columnWrapper.setColValue(colValue);
}

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

@ -61,6 +61,7 @@ import com.epmet.dto.form.demand.UserDemandNameQueryFormDTO;
import com.epmet.dto.result.*;
import com.epmet.dto.result.demand.IcResiDemandDictDTO;
import com.epmet.dto.result.demand.OptionDTO;
import com.epmet.dto.result.lingshan.ConfigPartyCenterHouseFormDTO;
import com.epmet.dto.result.resi.IcResiNonDynamicResultDTO;
import com.epmet.entity.*;
import com.epmet.enums.RenHuConditionEnum;
@ -132,8 +133,8 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
private UserService userService;
@Autowired
private EpmetAdminOpenFeignClient epmetAdminOpenFeignClient;
@Autowired
private IcResiUserDao icResiUserDao;
// @Autowired
// private IcResiUserDao icResiUserDao;
@Autowired
private IcUserChangeRecordService icUserChangeRecordService;
@Autowired
@ -154,8 +155,8 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
private GuardarDatosFeignClient guardarDatosFeignClient;
@Resource
private ResiPartyMemberOpenFeignClient resiPartyMemberOpenFeignClient;
@Resource
private GovOrgOpenFeignClient getGovOrgOpenFeignClient;
// @Resource
// private GovOrgOpenFeignClient getGovOrgOpenFeignClient;
@Resource
private EpmetHeartOpenFeignClient epmetHeartOpenFeignClient;
@Resource
@ -169,8 +170,8 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
@Resource
private IcUserChangeDetailedDao icUserChangeDetailedDao;
@Autowired
private DataReportOpenFeignClient dataReportOpenFeignClient;
// @Autowired
// private DataReportOpenFeignClient dataReportOpenFeignClient;
@Autowired
private IcResiRentContractInfoDao icResiRentContractInfoDao;
@ -200,6 +201,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(DelIcResiUserFormDTO formDTO) {
IcResiUserEntity origin=baseDao.selectById(formDTO.getIcResiUserId());
baseDao.updateToDel(formDTO.getIcResiUserId(),formDTO.getCurrentStaffId());
CustomerFormQueryDTO queryDTO = ConvertUtils.sourceToTarget(formDTO, CustomerFormQueryDTO.class);
Result<Set<String>> subTableRes = operCustomizeOpenFeignClient.queryIcResiSubTables(queryDTO);
@ -232,7 +234,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
LambdaQueryWrapper<IcResiUserEntity> resiWrapper=new LambdaQueryWrapper<>();
resiWrapper.eq(IcResiUserEntity::getAgencyId,formDTO.getAgencyId());
resiWrapper.select(IcResiUserEntity::getId);
List<IcResiUserEntity> resiIds=icResiUserDao.selectList(resiWrapper);
List<IcResiUserEntity> resiIds=baseDao.selectList(resiWrapper);
for(IcResiUserEntity entity:resiIds){
baseDao.updateToDel(entity.getId(),formDTO.getCurrentStaffId());
CustomerFormQueryDTO queryDTO = ConvertUtils.sourceToTarget(formDTO, CustomerFormQueryDTO.class);
@ -448,7 +450,6 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
}
//3.变更记录表和变更记录明细表新增数据
saveUserChangeRecord(tokenDto, map, resiUserId, name);
return resiUserId;
}
@ -792,7 +793,8 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
/**
* @description: 生成居民变更记录
* @param null:
* @param entity
* @param map
* @return
* @author: sun
*/
@ -830,7 +832,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
}
//修改前数据库居民十八类信息值
List<String> columns = categoryListResult.getData().stream().map(IcResiCategoryStatsConfigDTO::getColumnName).collect(Collectors.toList());
Map<String, String> hash = icResiUserDao.getCategoryListMap(columns, entity.getId());
Map<String, String> hash = baseDao.getCategoryListMap(columns, entity.getId());
//封装变更记录和变更明细数据
//变更记录
IcUserChangeRecordEntity changeRecordEntity = new IcUserChangeRecordEntity();
@ -1684,7 +1686,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
r.setVillageName(neighborHood.getNeighborHoodName());
// 2.志愿者类型填充
List<String> volunteers = icResiUserDao.selectVolunteerByUserId(resiEntity.getId());
List<String> volunteers = baseDao.selectVolunteerByUserId(resiEntity.getId());
if (CollectionUtils.isNotEmpty(volunteers)) {
String[] vCategories = volunteers.get(0).split(",");
@ -1701,7 +1703,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
ArrayList<String> resiCategoryNames = new ArrayList<>();
Map<String, String> categories = icResiUserDao.getCategoryListMap(resiCategoryColumns, resiUserId);
Map<String, String> categories = baseDao.getCategoryListMap(resiCategoryColumns, resiUserId);
categories.forEach((k, v) -> {
if (NumConstant.ONE_STR.equals(v)) {
ResiCategoryEnum enumObject = ResiCategoryEnum.getEnum(k);
@ -2831,7 +2833,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
@Override
public Result editMember(IcResiUserConfirmSubmitDTO dto) {
IcResiUserEntity user = icResiUserDao.selectById(dto.getIcResiUserId());
IcResiUserEntity user = baseDao.selectById(dto.getIcResiUserId());
LambdaQueryWrapper<IcResiUserEntity> userWrapper = new LambdaQueryWrapper<>();
userWrapper.ne(IcResiUserEntity::getId, dto.getIcResiUserId());
@ -3247,7 +3249,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
entity.setUnitId(houseInfo.getBuildingUnitId());
entity.setAgencyId(houseInfo.getAgencyId());
// 根据homeId获取gridId和pids
Result<HouseAgencyInfoResultDTO> resultDTOResult = getGovOrgOpenFeignClient.getHouseAgencyInfo(houseInfo.getHomeId());
Result<HouseAgencyInfoResultDTO> resultDTOResult = govOrgOpenFeignClient.getHouseAgencyInfo(houseInfo.getHomeId());
HouseAgencyInfoResultDTO data = resultDTOResult.getData();
entity.setGridId(data.getGridId());
entity.setPids(data.getPids() + ":" + data.getAgencyId());
@ -3911,4 +3913,38 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
return fzBig.multiply(NumConstant.ONE_HUNDRED_DECIMAL).divide(totalBig, NumConstant.TWO, BigDecimal.ROUND_HALF_UP);
}
/**
* 灵山需求
* @param houseId 房屋id
*/
public void syncHousePartyCenterHouse(String houseId,String resiUserId) {
if(StringUtils.isBlank(houseId)){
IcResiUserEntity entity=baseDao.selectById(resiUserId);
houseId=entity.getHomeId();
}
// 查询房屋里的所有人
LambdaQueryWrapper<IcResiUserEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(IcResiUserEntity::getHomeId, houseId)
.eq(IcResiUserEntity::getStatus, NumConstant.ZERO_STR)
.select(IcResiUserEntity::getId);
List<IcResiUserEntity> resiList = baseDao.selectList(wrapper);
//默认该房屋不是党员中心户
ConfigPartyCenterHouseFormDTO configPartyCenterHouseFormDTO=new ConfigPartyCenterHouseFormDTO();
configPartyCenterHouseFormDTO.setHouseId(houseId);
configPartyCenterHouseFormDTO.setPartyCenterHouseFlag(NumConstant.ZERO_STR);
if(CollectionUtils.isNotEmpty(resiList)){
List<String> resiIds = resiList.stream().map(IcResiUserEntity::getId).collect(Collectors.toList());
// 是否有党员中心户
LambdaQueryWrapper<IcPartyMemberEntity> queryWrapper = new LambdaQueryWrapper();
queryWrapper.in(IcPartyMemberEntity::getIcResiUser, resiIds)
.eq(IcPartyMemberEntity::getIsDyzxh, NumConstant.ONE_STR);
List<IcPartyMemberEntity> dyzxhList = icPartyMemberDao.selectList(queryWrapper);
if (CollectionUtils.isNotEmpty(dyzxhList)) {
configPartyCenterHouseFormDTO.setPartyCenterHouseFlag(NumConstant.ONE_STR);
}
}
govOrgOpenFeignClient.updatePartyCenterHouse(configPartyCenterHouseFormDTO);
}
}

Loading…
Cancel
Save