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 bbe4f551db..650b9e9f90 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 @@ -12,7 +12,6 @@ import java.util.List; * @author sun */ @Data -@AllArgsConstructor public class OrgOrStaffMQMsg implements Serializable { //客户Id @@ -21,7 +20,7 @@ public class OrgOrStaffMQMsg implements Serializable { private String orgId; //数据类型【组织:agency 网格:grid 人员:staff】 private String orgType; - //操作类型【新增:add 修改删除:edit】 + //操作类型【组织新增:agency_create 组织变更:agency_change 网格新增:grid_create 网格变更:grid_change 人员新增:staff_create 人员变更:staff_change】 private String type; diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/PageFormDTO.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/PageFormDTO.java index c699557bac..4820f4d50b 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/PageFormDTO.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/PageFormDTO.java @@ -30,11 +30,6 @@ public class PageFormDTO { */ private Integer offset; - /** - * 是否分页 默认分页 - */ - private boolean isPage = true; - public Integer getOffset() { return (pageNo-1)*pageSize; } diff --git a/epmet-gateway/pom.xml b/epmet-gateway/pom.xml index e09410668d..3d668a8b6f 100644 --- a/epmet-gateway/pom.xml +++ b/epmet-gateway/pom.xml @@ -223,6 +223,9 @@ lb://data-aggregator-server + + lb://open-data-worker-server + lb://epmet-openapi-adv-server @@ -361,6 +364,10 @@ lb://data-aggregator-server + + + http://127.0.0.1:8117 + lb://epmet-openapi-adv-server @@ -469,6 +476,8 @@ lb://data-aggregator-server lb://tduck-api + + lb://open-data-worker-server lb://epmet-openapi-adv-server @@ -570,6 +579,8 @@ lb://epmet-ext-server lb://data-aggregator-server + + lb://open-data-worker-server lb://epmet-openapi-adv-server diff --git a/epmet-gateway/src/main/resources/bootstrap.yml b/epmet-gateway/src/main/resources/bootstrap.yml index a147811112..d4006d0bd3 100644 --- a/epmet-gateway/src/main/resources/bootstrap.yml +++ b/epmet-gateway/src/main/resources/bootstrap.yml @@ -350,6 +350,16 @@ spring: filters: - StripPrefix=1 - CpAuth=true + #政府工作端议题管理 + - id: open-data-worker-server + uri: @gateway.routes.gov-issue-server.uri@ + order: 38 + predicates: + - Path=${server.servlet.context-path}/opendata/** + filters: + - StripPrefix=1 + - CpAuth=true + nacos: discovery: server-addr: @nacos.server-addr@ diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/GridUserInfoDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/GridUserInfoDTO.java index 6978b50bf9..2fde3c3566 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/GridUserInfoDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/GridUserInfoDTO.java @@ -149,4 +149,34 @@ public class GridUserInfoDTO implements Serializable { */ private String isMediator; + /** + * 删除标识 0.未删除 1.已删除 + */ + private Integer delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + } diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/MidPatrolRecordResult.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/MidPatrolRecordResult.java index a08d7cba17..12c18962d1 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/MidPatrolRecordResult.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/result/MidPatrolRecordResult.java @@ -129,4 +129,9 @@ public class MidPatrolRecordResult implements Serializable { */ private String longitude; + /** + * 经纬度组合成的路线 经度,维度; + */ + private String route; + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java index 249eb11c81..26b125af39 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java @@ -124,6 +124,11 @@ public class DataReportingServiceImpl implements DataReportingService { st.setIsVillageLeader("Y"); st.setIsPoliceAssistant("N"); st.setIsMediator("Y"); + st.setDelFlag(dto.getDelFlag()); + st.setCreatedBy(dto.getCreatedBy()); + st.setCreatedTime(dto.getCreatedTime()); + st.setUpdatedBy(dto.getUpdatedBy()); + st.setUpdatedTime(dto.getUpdatedTime()); } }); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml index 78e124791c..bc20519148 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml @@ -1006,20 +1006,38 @@ diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/DeleteGridFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/DeleteGridFormDTO.java index ed266210ba..5bd8641413 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/DeleteGridFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/DeleteGridFormDTO.java @@ -27,4 +27,9 @@ public class DeleteGridFormDTO implements Serializable { * userId */ private String userId; + + /** + * 客户Id + */ + private String customerId; } 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 0ad04c404d..ff48cd1972 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 @@ -40,4 +40,7 @@ public class EditGridFormDTO implements Serializable { */ private String manageDistrict; + //客户Id + private String customerId; + } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/RemoveAgencyFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/RemoveAgencyFormDTO.java index 5caaec7ea5..27bee4e64d 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/RemoveAgencyFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/RemoveAgencyFormDTO.java @@ -38,5 +38,9 @@ public class RemoveAgencyFormDTO implements Serializable { */ @NotBlank(message = "机关组织ID不能为空") private String agencyId; + /** + * 客户Id + */ + private String customerId; } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/pom.xml b/epmet-module/gov-org/gov-org-server/pom.xml index 2bc10abf21..13561a58a3 100644 --- a/epmet-module/gov-org/gov-org-server/pom.xml +++ b/epmet-module/gov-org/gov-org-server/pom.xml @@ -107,6 +107,12 @@ 2.0.0 compile + + com.epmet + epmet-message-client + 2.0.0 + compile + 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 a3695f6362..112d6b8e35 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 @@ -141,6 +141,7 @@ public class AgencyController { @RequirePermission(requirePermission = RequirePermissionEnum.ORG_SUBAGENCY_DELETE) public Result removeAgency(@LoginUser TokenDto tokenDTO, @RequestBody RemoveAgencyFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO); + formDTO.setCustomerId(tokenDTO.getCustomerId()); return agencyService.removeAgency(formDTO); } 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 ce24000220..f9cc5c1b54 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 @@ -58,6 +58,7 @@ public class GridController { @RequirePermission(requirePermission = RequirePermissionEnum.ORG_GRID_UPDATE) public Result editGrid(@LoginUser TokenDto tokenDto, @RequestBody EditGridFormDTO editGridFormDTO){ ValidatorUtils.validateEntity(editGridFormDTO, EditGridFormDTO.EditGrid.class); + editGridFormDTO.setCustomerId(tokenDto.getCustomerId()); return customerGridService.editGrid(tokenDto,editGridFormDTO); } @@ -68,6 +69,7 @@ public class GridController { @PostMapping("deletegrid") @RequirePermission(requirePermission = RequirePermissionEnum.ORG_GRID_DELETE) public Result deleteGrid(@LoginUser TokenDto tokenDto, @RequestBody DeleteGridFormDTO deleteGridFormDTO){ + deleteGridFormDTO.setCustomerId(tokenDto.getCustomerId()); return customerGridService.deleteGrid(tokenDto,deleteGridFormDTO); } 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 b60e0ff31c..aa070f2d90 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 @@ -18,6 +18,7 @@ package com.epmet.service.impl; import com.alibaba.fastjson.JSON; +import com.epmet.commons.rocketmq.messages.OrgOrStaffMQMsg; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; @@ -35,8 +36,10 @@ import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.CustomerAgencyEntity; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; +import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; 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; @@ -80,6 +83,8 @@ public class AgencyServiceImpl implements AgencyService { private CustomerOrgParameterService customerOrgParameterService; @Autowired private EpmetCommonServiceOpenFeignClient epmetCommonServiceOpenFeignClient; + @Autowired + private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; /** @@ -176,6 +181,16 @@ 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"); + SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); + //2021-10-18 end + return result; } @@ -215,6 +230,16 @@ public class AgencyServiceImpl implements AgencyService { log.error(CustomerAgencyConstant.DEL_EXCEPTION); throw new RenException(CustomerAgencyConstant.DEL_EXCEPTION); } + + //2021-10-18 推送mq,数据同步到中介库 start + OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); + mq.setCustomerId(formDTO.getCustomerId()); + mq.setOrgId(formDTO.getAgencyId()); + mq.setOrgType("agency"); + mq.setType("agency_change"); + SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); + //2021-10-18 end + return result; } @@ -370,6 +395,16 @@ public class AgencyServiceImpl implements AgencyService { entity.setTotalUser(0); entity.setCustomerId(form.getCustomerId()); customerAgencyDao.insert(entity); + + //2021-10-18 推送mq,数据同步到中介库 start + OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); + mq.setCustomerId(form.getCustomerId()); + mq.setOrgId(entity.getId()); + mq.setOrgType("agency"); + mq.setType("agency_create"); + SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); + //2021-10-18 end + return entity.getId(); } @@ -430,6 +465,15 @@ public class AgencyServiceImpl implements AgencyService { throw new RenException(EpmetErrorCode.OPER_ADD_CUSTOMER_MANAGER_ERROR.getCode(), staffResult.getMsg()); } + //2021-10-18 推送mq,数据同步到中介库 start + OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); + mq.setCustomerId(agencyDTO.getCustomerId()); + mq.setOrgId(entity.getId()); + mq.setOrgType("agency"); + mq.setType("agency_create"); + SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); + //2021-10-18 end + } /** @@ -474,6 +518,15 @@ public class AgencyServiceImpl implements AgencyService { //3:返回新组织Id resultDTO.setAgencyId(insertEntity.getId()); resultDTO.setAreaCode(insertEntity.getAreaCode()); + + //2021-10-18 推送mq,数据同步到中介库 start + OrgOrStaffMQMsg mq = new OrgOrStaffMQMsg(); + mq.setCustomerId(parent.getCustomerId()); + mq.setOrgId(insertEntity.getId()); + mq.setOrgType("agency"); + mq.setType("agency_create"); + SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendOrgStaffMqMsg(mq); + //2021-10-18 end return resultDTO; } 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 58faa734ac..d5497b8a08 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 @@ -21,6 +21,7 @@ import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.rocketmq.messages.OrgOrStaffMQMsg; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; @@ -41,8 +42,10 @@ import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.entity.CustomerAgencyEntity; import com.epmet.entity.CustomerGridEntity; +import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.feign.EpmetUserFeignClient; import com.epmet.feign.OperCrmOpenFeignClient; +import com.epmet.send.SendMqMsgUtil; import com.epmet.service.CustomerAgencyService; import com.epmet.service.CustomerGridService; import com.epmet.util.ModuleConstant; @@ -79,9 +82,10 @@ public class CustomerGridServiceImpl extends BaseServiceImpl page(Map params) { @@ -270,6 +274,16 @@ public class CustomerGridServiceImpl extends BaseServiceImpl().ok(resultDTO); } @@ -291,6 +305,16 @@ public class CustomerGridServiceImpl extends BaseServiceImpl orgIdList; - /** - * 数据类型【组织:agency 网格:grid】 - */ - private String orgType; /** * 操作类型【新增:add 修改删除:edit】 */ diff --git a/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/UpsertPatrolRecordForm.java b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/UpsertPatrolRecordForm.java index 3fd1db81ac..d80157031e 100644 --- a/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/UpsertPatrolRecordForm.java +++ b/epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/UpsertPatrolRecordForm.java @@ -1,5 +1,6 @@ package com.epmet.opendata.dto.form; +import com.epmet.commons.tools.dto.form.PageFormDTO; import lombok.Data; import javax.validation.constraints.NotEmpty; @@ -9,7 +10,7 @@ import javax.validation.constraints.NotEmpty; * @author liujianjun */ @Data -public class UpsertPatrolRecordForm { +public class UpsertPatrolRecordForm extends PageFormDTO { /** * 客户Id */ @@ -19,7 +20,6 @@ public class UpsertPatrolRecordForm { /** * 巡查记录id */ - @NotEmpty(message = "patrolId不能为空") private String patrolId; /** diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/InitDataController.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/InitDataController.java index e8da4e413e..38fe35fd15 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/InitDataController.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/InitDataController.java @@ -18,10 +18,14 @@ package com.epmet.opendata.controller; import com.epmet.commons.tools.utils.Result; +import com.epmet.constant.SystemMessageType; import com.epmet.opendata.dto.form.UpsertPatrolRecordForm; import com.epmet.opendata.service.UserPatrolRecordService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; /** @@ -42,9 +46,7 @@ public class InitDataController { * @Description 网格员信息中间库同步 **/ @PostMapping("patrol/{customerId}") - public Result getStaffBaseInfo(@PathVariable String customerId) { - UpsertPatrolRecordForm formDTO = new UpsertPatrolRecordForm(); - formDTO.setCustomerId(customerId); - return new Result().ok(userPatrolRecordService.insertPatrolRecord(formDTO)); + public Result reloadPatrolData(@PathVariable String customerId) { + return new Result().ok(userPatrolRecordService.reloadPatrolData(customerId)); } } diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataOrgChangeEventListener.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataOrgChangeEventListener.java index df6278488e..04e95a893b 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataOrgChangeEventListener.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataOrgChangeEventListener.java @@ -2,6 +2,7 @@ package com.epmet.opendata.mq.listener; import com.alibaba.fastjson.JSON; import com.epmet.commons.rocketmq.constants.MQUserPropertys; +import com.epmet.commons.rocketmq.messages.OrgOrStaffMQMsg; import com.epmet.commons.tools.distributedlock.DistributedLock; import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.RenException; @@ -19,6 +20,7 @@ import org.redisson.api.RLock; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; @@ -58,19 +60,24 @@ public class OpenDataOrgChangeEventListener implements MessageListenerConcurrent String pendingMsgLabel = messageExt.getUserProperty(MQUserPropertys.BLOCKED_MSG_LABEL); logger.info("【开放数据事件监听器】-组织信息变更-收到消息内容:{},操作:{}", msg, tags); - GridBaseInfoFormDTO obj = JSON.parseObject(msg, GridBaseInfoFormDTO.class); + OrgOrStaffMQMsg obj = JSON.parseObject(msg, OrgOrStaffMQMsg.class); DistributedLock distributedLock = null; RLock lock = null; try { distributedLock = SpringContextUtils.getBean(DistributedLock.class); - lock = distributedLock.getLock(String.format("lock:open_data_org:%s", obj.getOrgIdList()), + lock = distributedLock.getLock(String.format("lock:open_data_org:%s", obj.getOrgId()), 30L, 30L, TimeUnit.SECONDS); + GridBaseInfoFormDTO dto = new GridBaseInfoFormDTO(); + dto.setCustomerId(obj.getCustomerId()); + dto.setType(obj.getType()); + List orgIdList = new ArrayList<>(); + orgIdList.add(obj.getOrgId()); if ("agency".equals(obj.getOrgType())) { - SpringContextUtils.getBean(BaseGridInfoService.class).getAgencyBaseInfo(obj); + SpringContextUtils.getBean(BaseGridInfoService.class).getAgencyBaseInfo(dto); } else { - SpringContextUtils.getBean(BaseGridInfoService.class).getGridBaseInfo(obj); + SpringContextUtils.getBean(BaseGridInfoService.class).getGridBaseInfo(dto); } } catch (RenException e) { // 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试 diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataStaffChangeEventListener.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataStaffChangeEventListener.java index 313c036cb8..48d0ece671 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataStaffChangeEventListener.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataStaffChangeEventListener.java @@ -2,6 +2,7 @@ package com.epmet.opendata.mq.listener; import com.epmet.commons.rocketmq.constants.MQUserPropertys; import com.alibaba.fastjson.JSON; +import com.epmet.commons.rocketmq.messages.OrgOrStaffMQMsg; import com.epmet.commons.tools.distributedlock.DistributedLock; import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.RenException; @@ -20,6 +21,7 @@ import org.redisson.api.RLock; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; @@ -63,15 +65,21 @@ public class OpenDataStaffChangeEventListener implements MessageListenerConcurre //messageExt.propert logger.info("【开放数据事件监听器】-工作人员信息变更-收到消息内容:{}, 操作:{}, blockedMsgLabel:{}", msg, tags, pendingMsgLabel); - StaffBaseInfoFormDTO obj = JSON.parseObject(msg, StaffBaseInfoFormDTO.class); + OrgOrStaffMQMsg obj = JSON.parseObject(msg, OrgOrStaffMQMsg.class); DistributedLock distributedLock = null; RLock lock = null; try { distributedLock = SpringContextUtils.getBean(DistributedLock.class); - lock = distributedLock.getLock(String.format("lock:open_data_staff:%s", obj.getStaffIdList()), + lock = distributedLock.getLock(String.format("lock:open_data_staff:%s", obj.getOrgId()), 30L, 30L, TimeUnit.SECONDS); - SpringContextUtils.getBean(BaseGridUserService.class).getStaffBaseInfo(obj); + + StaffBaseInfoFormDTO dto = new StaffBaseInfoFormDTO(); + dto.setCustomerId(obj.getCustomerId()); + dto.setType(obj.getType()); + List staffIdList = new ArrayList<>(); + staffIdList.add(obj.getOrgId()); + SpringContextUtils.getBean(BaseGridUserService.class).getStaffBaseInfo(dto); } catch (RenException e) { // 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试 logger.error("【开放数据事件监听器】-工作人员信息变更-初始化客户组织失败:".concat(ExceptionUtils.getErrorStackTrace(e))); diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/UserPatrolDetailService.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/UserPatrolDetailService.java index b6ca5b2c47..13cde46235 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/UserPatrolDetailService.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/UserPatrolDetailService.java @@ -29,4 +29,7 @@ import com.epmet.opendata.entity.UserPatrolDetailEntity; public interface UserPatrolDetailService extends BaseService { + int deleteByPatrolId(String patrolId); + + int deleteByCustomerId(String customerId); } diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/UserPatrolRecordService.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/UserPatrolRecordService.java index 45d894e531..e6896f32b8 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/UserPatrolRecordService.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/UserPatrolRecordService.java @@ -42,4 +42,12 @@ public interface UserPatrolRecordService extends BaseService implements UserPatrolDetailService { + @Override + public int deleteByPatrolId(String patrolId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(UserPatrolDetailEntity::getStaffPatrolRecId, patrolId); + return baseDao.delete(wrapper); + } + @Override + public int deleteByCustomerId(String customerId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(UserPatrolDetailEntity::getCustomerId, customerId); + return baseDao.delete(wrapper); + } } diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/UserPatrolRecordServiceImpl.java b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/UserPatrolRecordServiceImpl.java index 105b170038..cfa413dbe2 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/UserPatrolRecordServiceImpl.java +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/UserPatrolRecordServiceImpl.java @@ -18,21 +18,19 @@ package com.epmet.opendata.service.impl; import com.alibaba.fastjson.JSON; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.NumConstant; -import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.user.param.MidPatrolFormDTO; import com.epmet.dto.user.result.MidPatrolDetailResult; import com.epmet.dto.user.result.MidPatrolRecordResult; import com.epmet.feign.DataStatisticalOpenFeignClient; -import com.epmet.opendata.dao.UserPatrolDetailDao; import com.epmet.opendata.dao.UserPatrolRecordDao; import com.epmet.opendata.dto.form.UpsertPatrolRecordForm; import com.epmet.opendata.entity.UserPatrolDetailEntity; import com.epmet.opendata.entity.UserPatrolRecordEntity; +import com.epmet.opendata.service.UserPatrolDetailService; import com.epmet.opendata.service.UserPatrolRecordService; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; @@ -57,13 +55,12 @@ public class UserPatrolRecordServiceImpl extends BaseServiceImpl> record = dataStatisticalOpenFeignClient.getPatrolRecordList(midPatrolFormDTO); if (record == null || !record.success()) { @@ -73,7 +70,6 @@ public class UserPatrolRecordServiceImpl extends BaseServiceImpl data = record.getData(); if (CollectionUtils.isEmpty(data)) { //数据已被删除了 - delFlag = true; //暂时设置error 用于排错 log.error("获取巡查记录返回为空,param:{}", JSON.toJSONString(midPatrolFormDTO)); int effectRow = baseDao.deleteById(patrolRecordForm.getPatrolId()); @@ -117,37 +113,82 @@ public class UserPatrolRecordServiceImpl extends BaseServiceImpl> detailResult = dataStatisticalOpenFeignClient.getPatrolDetailList(midPatrolFormDTO); if (detailResult == null || !detailResult.success()) { log.error("获取巡查记录明细失败,param:{}", JSON.toJSONString(midPatrolFormDTO)); return; } - UserPatrolDetailEntity detailEntity = buildDetailEntity(o, detailResult); + UserPatrolDetailEntity detailEntity = buildDetailEntity(o); //先删除再新增 - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(UserPatrolDetailEntity::getStaffPatrolRecId, recordEntity.getId()); - userPatrolDetailDao.delete(wrapper); - int insert = userPatrolDetailDao.insert(detailEntity); + userPatrolDetailService.deleteByPatrolId(recordEntity.getId()); + boolean insert = userPatrolDetailService.insert(detailEntity); }); return true; } + @Override + public Boolean reloadPatrolData(String customerId) { + int pageNo = 1; + int pageSize = 1000; + List resultList = null; + do { + MidPatrolFormDTO param = new MidPatrolFormDTO(); + param.setCustomerId(customerId); + param.setPageNo(pageNo++); + param.setPageSize(pageSize); + Result> record = dataStatisticalOpenFeignClient.getPatrolRecordList(param); + if (record == null || !record.success()) { + log.error("获取巡查记录失败,param:{}", JSON.toJSONString(param)); + return false; + } + resultList = record.getData(); + if (CollectionUtils.isEmpty(resultList)){ + log.warn("不存在巡查记录,param:{}", JSON.toJSONString(param)); + return false; + } + insertRecordBatch(resultList,true); + + + + }while (!CollectionUtils.isEmpty(resultList) && resultList.size()> pageSize ); + + return null; + } + private Boolean insertRecordBatch(List list,boolean isReload){ + List insertList = new ArrayList<>(); + list.forEach(o-> insertList.add(buildEntity(o))); + //insert + if (CollectionUtils.isEmpty(insertList)){ + log.error("构建要插入的数据为空,param:{}", JSON.toJSONString(list)); + return false; + } + if (isReload){ + userPatrolDetailService.deleteByCustomerId(list.get(0).getCustomerId()); + } + this.insertBatch(insertList, NumConstant.ONE_HUNDRED); + List insertDetailList = new ArrayList<>(); + list.forEach(o-> { + insertDetailList.add(buildDetailEntity(o)); + if (!isReload){ + //先删除再新增 + userPatrolDetailService.deleteByPatrolId(o.getId()); + } + }); + if (CollectionUtils.isEmpty(insertList)){ + log.warn("构建要插入的数据为空,param:{}", JSON.toJSONString(list)); + } + userPatrolDetailService.insertBatch(insertDetailList, NumConstant.ONE_HUNDRED); + return true; + } + @NotNull - private UserPatrolDetailEntity buildDetailEntity(MidPatrolRecordResult recordResult, Result> detailResult) { + private UserPatrolDetailEntity buildDetailEntity(MidPatrolRecordResult recordResult) { UserPatrolDetailEntity detailEntity = new UserPatrolDetailEntity(); detailEntity.setCustomerId(recordResult.getCustomerId()); detailEntity.setStaffPatrolRecId(recordResult.getId()); - StringBuilder sb = new StringBuilder(); - detailResult.getData().forEach(o -> { - sb.append(o.getLongitude()) - .append(StrConstant.COMMA) - .append(o.getLatitude()) - .append(StrConstant.SEMICOLON); - }); - detailEntity.setRoute(sb.toString()); + detailEntity.setRoute(recordResult.getRoute()); detailEntity.setId(recordResult.getId()); detailEntity.setRevision(recordResult.getRevision()); detailEntity.setCreatedBy(recordResult.getCreatedBy()); @@ -188,8 +229,8 @@ public class UserPatrolRecordServiceImpl extends BaseServiceImpl page(Map params) { @@ -342,6 +347,16 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl().ok(ConvertUtils.sourceToTarget(staffEntity, CustomerStaffDTO.class)); } @@ -415,6 +430,16 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl