From d67be733a36b13787dc751f0ad26de585a23a6c3 Mon Sep 17 00:00:00 2001 From: jianjun Date: Mon, 8 Aug 2022 18:25:12 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=84=E7=BB=87code=20=E5=8F=98=E6=9B=B4?= =?UTF-8?q?=E6=97=B6=20=E5=8F=91=E9=80=81=E6=B6=88=E6=81=AF=E6=90=BA?= =?UTF-8?q?=E5=B8=A6=20=E4=BF=AE=E6=94=B9=E5=89=8D=E7=9A=84code=EF=BC=8C?= =?UTF-8?q?=E4=BE=BF=E4=BA=8E=E5=90=8C=E6=AD=A5=E5=B9=B3=E9=98=B4=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=97=B6=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rocketmq/messages/OrgOrStaffMQMsg.java | 5 ++ .../com/epmet/dto/form/EditGridFormDTO.java | 1 + .../epmet/controller/AgencyController.java | 11 +-- .../com/epmet/controller/GridController.java | 11 +-- .../epmet/service/impl/AgencyServiceImpl.java | 16 +++- .../service/impl/CustomerGridServiceImpl.java | 25 +++++-- .../form/ExractGridInfoPingYinFormDTO.java | 5 ++ .../OpenDataOrgChangeEventListener.java | 9 ++- .../impl/GridInfoPingyinServiceImpl.java | 75 ++++++++++++++++++- 9 files changed, 122 insertions(+), 36 deletions(-) diff --git a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/OrgOrStaffMQMsg.java b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/OrgOrStaffMQMsg.java index fdd9e5d860..f579fbb1fc 100644 --- a/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/OrgOrStaffMQMsg.java +++ b/epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/OrgOrStaffMQMsg.java @@ -22,6 +22,11 @@ public class OrgOrStaffMQMsg implements Serializable { //删除网格:grid_delete;删除组织:agency_delete private String type; + /** + * org原有的Code + */ + private String oldCode; + //工作人员Id集合 private List staffIdList; diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditGridFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditGridFormDTO.java index 8774da4f99..671fe3aee7 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditGridFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/EditGridFormDTO.java @@ -25,6 +25,7 @@ public class EditGridFormDTO implements Serializable { /** * gridId 网格id */ + @NotBlank(message = "网格ID不能为空") private String gridId; /** diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java index 893bc95cda..eb42e5a043 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/AgencyController.java @@ -177,16 +177,7 @@ public class AgencyController { formDTO.setCustomerId(tokenDTO.getCustomerId()); ValidatorUtils.validateEntity(formDTO, EditAgencyFormDTO.DefaultUserShowGroup.class, EditAgencyFormDTO.AddUserInternalGroup.class); Result result = agencyService.editAgency(formDTO); - - //2021-10-18 推送mq,数据同步到中介库 start【中介库只放了组织的名称、级别,所以涉及批量修改pname的操作不涉及同步中间库】 - OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); - mq.setCustomerId(tokenDTO.getCustomerId()); - mq.setOrgId(formDTO.getAgencyId()); - mq.setOrgType("agency"); - mq.setType("agency_change"); - SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); - //2021-10-18 end - + //发送mq 消息迁移至service return result; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java index 171197d40e..a9ec51cb6c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/GridController.java @@ -79,16 +79,7 @@ public class GridController { editGridFormDTO.setCustomerId(tokenDto.getCustomerId()); Result result = customerGridService.editGrid(tokenDto,editGridFormDTO); - //2021-10-18 推送mq,数据同步到中介库 start - if (result.success()) { - OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); - mq.setCustomerId(tokenDto.getCustomerId()); - mq.setOrgId(editGridFormDTO.getGridId()); - mq.setOrgType("grid"); - mq.setType("grid_change"); - SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); - } - //2021-10-18 end + //发送mq 消息 移至service return result; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java index 1505018fa9..494c68d392 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/AgencyServiceImpl.java @@ -20,6 +20,7 @@ package com.epmet.service.impl; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.epmet.commons.rocketmq.messages.OrgOrStaffMQMsg; import com.epmet.commons.tools.constant.Constant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; @@ -51,13 +52,14 @@ import com.epmet.entity.CustomerAgencyEntity; import com.epmet.entity.CustomerDepartmentEntity; import com.epmet.entity.CustomerGridEntity; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; +import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.OperCrmFeignClient; import com.epmet.redis.CustomerAgencyRedis; +import com.epmet.send.SendMqMsgUtil; import com.epmet.service.AgencyService; import com.epmet.service.CustomerAgencyService; import com.epmet.service.CustomerOrgParameterService; -import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.base.Joiner; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -70,7 +72,6 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.*; -import java.util.function.Function; import java.util.stream.Collectors; /** @@ -106,6 +107,8 @@ public class AgencyServiceImpl implements AgencyService { private IcBuildingDao icBuildingDao; @Autowired private CustomerDepartmentDao customerDepartmentDao; + @Autowired + private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; /** * @param formDTO @@ -240,6 +243,15 @@ public class AgencyServiceImpl implements AgencyService { //5.redis缓存 customerAgencyRedis.delete(formDTO.getAgencyId()); + //2021-10-18 推送mq,数据同步到中介库 start【中介库只放了组织的名称、级别,所以涉及批量修改pname的操作不涉及同步中间库】 + OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); + mq.setCustomerId(originalEntity.getCustomerId()); + mq.setOrgId(formDTO.getAgencyId()); + mq.setOrgType("agency"); + mq.setType("agency_change"); + mq.setOldCode(originalEntity.getCode()); + SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); + //2021-10-18 end return result; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index af626daac1..04c9312926 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -55,7 +55,6 @@ import com.epmet.entity.CustomerGridEntity; import com.epmet.entity.CustomerStaffGridEntity; import com.epmet.entity.StaffOrgRelationEntity; import com.epmet.feign.*; -import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient; import com.epmet.send.SendMqMsgUtil; import com.epmet.service.CustomerAgencyService; import com.epmet.service.CustomerGridService; @@ -111,10 +110,6 @@ public class CustomerGridServiceImpl extends BaseServiceImpl msgs, ConsumeConcurrentlyContext context) { @@ -51,7 +51,7 @@ public class OpenDataOrgChangeEventListener implements MessageListenerConcurrent } try { - msgs.forEach(msg -> consumeMessage(msg)); + msgs.forEach(this::consumeMessage); } catch (Exception e) { logger.error(ExceptionUtils.getErrorStackTrace(e)); return ConsumeConcurrentlyStatus.RECONSUME_LATER; @@ -94,6 +94,7 @@ public class OpenDataOrgChangeEventListener implements MessageListenerConcurrent ExractGridInfoPingYinFormDTO extractFormDto = new ExractGridInfoPingYinFormDTO(); extractFormDto.setCustomerId(obj.getCustomerId()); extractFormDto.setType(obj.getType()); + extractFormDto.setOldCode(obj.getOldCode()); List orgIdList = new ArrayList<>(); if(StringUtils.isNotBlank(obj.getOrgId())){ orgIdList.add(obj.getOrgId()); diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridInfoPingyinServiceImpl.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridInfoPingyinServiceImpl.java index c2d915155f..9958530251 100755 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridInfoPingyinServiceImpl.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/GridInfoPingyinServiceImpl.java @@ -1,5 +1,6 @@ package com.epmet.opendata.service.impl; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.Constant; import com.epmet.commons.tools.constant.NumConstant; @@ -7,14 +8,22 @@ import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.IndexCalConstant; +import com.epmet.dto.org.form.GridBaseInfoFormDTO; import com.epmet.dto.org.result.CustomerAgencyDTO; import com.epmet.dto.org.result.CustomerGridDTO; import com.epmet.feign.DataStatisticalOpenFeignClient; +import com.epmet.opendata.dao.EventreportPingyinDao; import com.epmet.opendata.dao.GridInfoPingyinDao; +import com.epmet.opendata.dao.GridstaffInfoPingyinDao; +import com.epmet.opendata.dao.GridstaffWorkInfoPingyinDao; import com.epmet.opendata.dto.constant.DataWorkerConstant; import com.epmet.opendata.dto.form.ExractGridInfoPingYinFormDTO; +import com.epmet.opendata.entity.EventreportPingyinEntity; import com.epmet.opendata.entity.GridInfoPingyinEntity; +import com.epmet.opendata.entity.GridstaffInfoPingyinEntity; +import com.epmet.opendata.entity.GridstaffWorkInfoPingyinEntity; import com.epmet.opendata.service.GridInfoPingyinService; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.ListUtils; import org.apache.commons.lang3.StringUtils; @@ -33,11 +42,18 @@ import java.util.List; * @author generator generator@elink-cn.com * @since v1.0.0 2022-07-22 */ +@Slf4j @Service public class GridInfoPingyinServiceImpl extends BaseServiceImpl implements GridInfoPingyinService { @Autowired private DataStatisticalOpenFeignClient dataStatisticalOpenFeignClient; + @Autowired + private GridstaffInfoPingyinDao gridstaffInfoPingyinDao; + @Autowired + private GridstaffWorkInfoPingyinDao gridstaffWorkInfoPingyinDao; + @Autowired + private EventreportPingyinDao eventreportPingyinDao; /** * 抽取customer_agency到grid_info_pingyin表 @@ -99,9 +115,13 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl orginList = baseDao.selectByGridCode(entity.getGridCode()); if (CollectionUtils.isNotEmpty(orginList)) { @@ -138,7 +158,7 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl> result = dataStatisticalOpenFeignClient.getGridBaseInfo(formDTO1); if (!result.success()) { + log.warn("根据网格Id 没有找到网格 等待再次调用"); throw new RenException(result.getInternalMsg()); } if (null == result.getData() || result.getData().size() < NumConstant.ONE) { @@ -195,7 +216,9 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl orginList = baseDao.selectByGridCode(entity.getGridCode()); if (CollectionUtils.isNotEmpty(orginList)) { @@ -224,5 +247,51 @@ public class GridInfoPingyinServiceImpl extends BaseServiceImpl updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(GridInfoPingyinEntity::getGridCode,formDTO.getOldCode()); + int update = baseDao.update(gridInfoEntity, updateWrapper); + log.info("code changed gridinfo effect row:{}",update); + //更新完 网格code 去更新其他的业务【工作人员、例行工作、事件】数据对应的code + + GridstaffInfoPingyinEntity staffInfo = new GridstaffInfoPingyinEntity(); + staffInfo.setGridCode(entity.getGridCode()); + staffInfo.setUpdateTime(new Date()); + + LambdaUpdateWrapper staffInfoWrapper = new LambdaUpdateWrapper<>(); + staffInfoWrapper.eq(GridstaffInfoPingyinEntity::getGridCode,formDTO.getOldCode()); + update = gridstaffInfoPingyinDao.update(staffInfo, staffInfoWrapper); + log.info("code changed gridStaffInfo effect row:{}",update); + + GridstaffWorkInfoPingyinEntity workInfo = new GridstaffWorkInfoPingyinEntity(); + workInfo.setGridCode(entity.getGridCode()); + workInfo.setUpdateTime(new Date()); + + LambdaUpdateWrapper workInfoWrapper = new LambdaUpdateWrapper<>(); + workInfoWrapper.eq(GridstaffWorkInfoPingyinEntity::getGridCode,formDTO.getOldCode()); + update = gridstaffWorkInfoPingyinDao.update(workInfo, workInfoWrapper); + log.info("code changed staffWorkInfo effect row:{}",update); + + EventreportPingyinEntity eventEntity = new EventreportPingyinEntity(); + eventEntity.setGridCode(entity.getGridCode()); + eventEntity.setUpdateTime(new Date()); + + LambdaUpdateWrapper eventWrapper = new LambdaUpdateWrapper<>(); + eventWrapper.eq(EventreportPingyinEntity::getGridCode,formDTO.getOldCode()); + update = eventreportPingyinDao.update(eventEntity, eventWrapper); + log.info("code changed eventreport effect row:{}",update); + + } + } + }