diff --git a/doc/epmet-cloud.md b/doc/epmet-cloud.md index 18928176dc..15a6fa173d 100644 --- a/doc/epmet-cloud.md +++ b/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 钉钉后台交互(如果需要) diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/agentservice/LingShanScreenServiceRstDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/agentservice/LingShanScreenServiceRstDTO.java index 4669c0a2ce..42c85b61ce 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/agentservice/LingShanScreenServiceRstDTO.java +++ b/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 attachments; + private String processStatus; + private String closeDesc; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date closeTime; + private Integer satisfication; + + /** + * 处理进展 + */ + private List 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 processAttachments = new ArrayList<>(); + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/LingShanAgentServiceController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/LingShanAgentServiceController.java index 541462c10b..6bca986b45 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/LingShanAgentServiceController.java +++ b/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>().ok(rl); } + /** + * @Description: 中央大屏:服务详情 + * @param id: + * @Return com.epmet.commons.tools.utils.Result + * @Author: wangxianzhang + * @Date: 2023/5/17 2:40 PM + */ + @GetMapping("screen/serviceDetail") + public Result screenServiceDetail(@RequestParam("id") String id) { + LingShanScreenServiceRstDTO c = lingShanServiceAgentService.screenServiceDetail(id); + return new Result().ok(c); + } + /** * @Description: 服务类型数量分析 * @param orgType: diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/LingShanAgentServiceService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/LingShanAgentServiceService.java index 992244d76b..539809106a 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/LingShanAgentServiceService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/LingShanAgentServiceService.java @@ -38,4 +38,6 @@ public interface LingShanAgentServiceService { List serviceCategoryAnalysis(String orgType, String orgId); List serviceTrendAnalysis(String orgType, String orgId); + + LingShanScreenServiceRstDTO screenServiceDetail(String id); } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LingShanAgentServiceServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LingShanAgentServiceServiceImpl.java index cfa4aef5ee..35beffaaf3 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/LingShanAgentServiceServiceImpl.java +++ b/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 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 processAttachments) { + return new LingShanScreenServiceRstDTO.ProcessNode( + processStatusEnum.getStatusCode(), + processStatusEnum.getStatusName(), + applicantName, + processDesc, + processTime, + processAttachments); + } + @Override public List serviceCategoryAnalysis(String orgType, String orgId) { diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseListResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseListResultDTO.java index 03346cb6fc..459fb1bcca 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseListResultDTO.java +++ b/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; } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/ConfigPartyCenterHouseFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/lingshan/ConfigPartyCenterHouseFormDTO.java new file mode 100644 index 0000000000..faa711dc25 --- /dev/null +++ b/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; +} + diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/enums/HouseChangeEnums.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/enums/HouseChangeEnums.java index bd8cd9a1be..e10170853d 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/enums/HouseChangeEnums.java +++ b/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; diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java index 6712f7247e..3f76336879 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java +++ b/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> 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); } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java index 040c046b85..5d8c8ebf4b 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java +++ b/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> 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); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java index e0ffaeb3e7..ae3393cf17 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcHouseController.java +++ b/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>().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(); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/LingshanPartyCenterHouseLianhuDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/LingshanPartyCenterHouseLianhuDao.java index aaeb853332..7b712e100c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/LingshanPartyCenterHouseLianhuDao.java +++ b/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 { int deleteByPartyCenterHouseId(String partyCenterHouseId); + + LingshanPartyCenterHouseLianhuEntity selectByHouseId(String houseId); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java index 476ce0419a..cec8ca1349 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcHouseService.java @@ -176,4 +176,11 @@ public interface IcHouseService extends BaseService { * @return */ List getOrgTreeData(String gridId); + + /** + * 更新房屋是否是党员中心户 + * @param houseId + * @param partyCenterHouseFlag + */ + void updatePartyCenterHouse(String houseId, String partyCenterHouseFlag); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java index d47c6e0132..a642150cf9 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java +++ b/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); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java index 0a9da1c2b6..8a782c376a 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcHouseServiceImpl.java +++ b/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 lianHuHouseList) { IcHouseEntity partyCenterHouse=baseDao.selectById(partyCenterHouseId); @@ -452,8 +455,6 @@ public class IcHouseServiceImpl extends BaseServiceImpl queryWrapper=new LambdaQueryWrapper<>(); - queryWrapper.eq(LingshanPartyCenterHouseLianhuEntity::getPartyCenterHouseId,partyCenterHouseId); partyCenterHouseLianhuDao.deleteByPartyCenterHouseId(partyCenterHouseId); // 后插入 lianHuHouseList.forEach(lianHuHouse->{ @@ -471,19 +472,22 @@ public class IcHouseServiceImpl extends BaseServiceImpl update = new LambdaUpdateWrapper<>(); + update.set(IcHouseEntity::getPartyCenterHouseFlag, partyCenterHouseFlag) + .set(IcHouseEntity::getUpdatedTime,new Date()) + .eq(IcHouseEntity::getId, houseId); + baseDao.update(null, update); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml index fb4e43e0bf..7ffaff80a2 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml +++ b/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' diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/LingshanPartyCenterHouseLianhuDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/LingshanPartyCenterHouseLianhuDao.xml index cae8f215d7..285b47922e 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/LingshanPartyCenterHouseLianhuDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/LingshanPartyCenterHouseLianhuDao.xml @@ -26,4 +26,12 @@ delete from lingshan_party_center_house_lianhu where PARTY_CENTER_HOUSE_ID=#{partyCenterHouseId} + + \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/ICWarnStatsEventListener.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/ICWarnStatsEventListener.java index c1328f548a..8d9b07a7ab 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/mq/listener/ICWarnStatsEventListener.java +++ b/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))); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/ResiImportDyzxhPostProcessor.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/ResiImportDyzxhPostProcessor.java new file mode 100644 index 0000000000..83e0d49964 --- /dev/null +++ b/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 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); + + } +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/ResiImportPostProcessor.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/processor/ResiImportPostProcessor.java new file mode 100644 index 0000000000..8fb7633444 --- /dev/null +++ b/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 resiInfoMap); + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java index e0b5c91837..b5151a3cb7 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java +++ b/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 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 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); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index 9a3863b42d..b149345970 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/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> subTableRes = operCustomizeOpenFeignClient.queryIcResiSubTables(queryDTO); @@ -232,7 +234,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl resiWrapper=new LambdaQueryWrapper<>(); resiWrapper.eq(IcResiUserEntity::getAgencyId,formDTO.getAgencyId()); resiWrapper.select(IcResiUserEntity::getId); - List resiIds=icResiUserDao.selectList(resiWrapper); + List 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 columns = categoryListResult.getData().stream().map(IcResiCategoryStatsConfigDTO::getColumnName).collect(Collectors.toList()); - Map hash = icResiUserDao.getCategoryListMap(columns, entity.getId()); + Map hash = baseDao.getCategoryListMap(columns, entity.getId()); //封装变更记录和变更明细数据 //变更记录 IcUserChangeRecordEntity changeRecordEntity = new IcUserChangeRecordEntity(); @@ -1684,7 +1686,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl volunteers = icResiUserDao.selectVolunteerByUserId(resiEntity.getId()); + List volunteers = baseDao.selectVolunteerByUserId(resiEntity.getId()); if (CollectionUtils.isNotEmpty(volunteers)) { String[] vCategories = volunteers.get(0).split(","); @@ -1701,7 +1703,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl resiCategoryNames = new ArrayList<>(); - Map categories = icResiUserDao.getCategoryListMap(resiCategoryColumns, resiUserId); + Map 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 userWrapper = new LambdaQueryWrapper<>(); userWrapper.ne(IcResiUserEntity::getId, dto.getIcResiUserId()); @@ -3247,7 +3249,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl resultDTOResult = getGovOrgOpenFeignClient.getHouseAgencyInfo(houseInfo.getHomeId()); + Result 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 wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcResiUserEntity::getHomeId, houseId) + .eq(IcResiUserEntity::getStatus, NumConstant.ZERO_STR) + .select(IcResiUserEntity::getId); + List resiList = baseDao.selectList(wrapper); + + //默认该房屋不是党员中心户 + ConfigPartyCenterHouseFormDTO configPartyCenterHouseFormDTO=new ConfigPartyCenterHouseFormDTO(); + configPartyCenterHouseFormDTO.setHouseId(houseId); + configPartyCenterHouseFormDTO.setPartyCenterHouseFlag(NumConstant.ZERO_STR); + + if(CollectionUtils.isNotEmpty(resiList)){ + List resiIds = resiList.stream().map(IcResiUserEntity::getId).collect(Collectors.toList()); + // 是否有党员中心户 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper(); + queryWrapper.in(IcPartyMemberEntity::getIcResiUser, resiIds) + .eq(IcPartyMemberEntity::getIsDyzxh, NumConstant.ONE_STR); + List dyzxhList = icPartyMemberDao.selectList(queryWrapper); + if (CollectionUtils.isNotEmpty(dyzxhList)) { + configPartyCenterHouseFormDTO.setPartyCenterHouseFlag(NumConstant.ONE_STR); + } + } + govOrgOpenFeignClient.updatePartyCenterHouse(configPartyCenterHouseFormDTO); + } }