Browse Source

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

dev_shibei_match
wxz 4 years ago
parent
commit
8e24b4205f
  1. 28
      epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/OrgOrStaffMQMsg.java
  2. 7
      epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/StaffPatrolMQMsg.java
  3. 5
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/PageFormDTO.java
  4. 21
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/form/EventInfoFormDTO.java
  5. 143
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/result/EventInfoResultDTO.java
  6. 2
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenCustomerGridDTO.java
  7. 24
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectDataDTO.java
  8. 14
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/form/ScreenProjectDataInfoFormDTO.java
  9. 16
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java
  10. 19
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java
  11. 17
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DataReportingController.java
  12. 1
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java
  13. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenCustomerAgencyEntity.java
  14. 1
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenCustomerGridEntity.java
  15. 14
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectDataEntity.java
  16. 16
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/DataReportingService.java
  17. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueService.java
  18. 20
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueServiceImpl.java
  19. 85
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenProjectSettleServiceImpl.java
  20. 19
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerAgencyService.java
  21. 18
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerGridService.java
  22. 11
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectDataService.java
  23. 33
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerAgencyServiceImpl.java
  24. 41
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java
  25. 53
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java
  26. 116
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java
  27. 9
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java
  28. 10
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/CustomerProjectCategoryDictService.java
  29. 19
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/CustomerProjectCategoryDictServiceImpl.java
  30. 8
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml
  31. 3
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/StatsIssueDao.xml
  32. 24
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml
  33. 36
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/send/SendMqMsgUtil.java
  34. 207
      epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/BaseDisputeProcessDTO.java
  35. 56
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/BaseDisputeProcessController.java
  36. 15
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/UserPatrolRecordController.java
  37. 33
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/BaseDisputeProcessDao.java
  38. 177
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseDisputeProcessEntity.java
  39. 7
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/RocketMQConsumerRegister.java
  40. 19
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataPatrolChangeEventListener.java
  41. 108
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataProjectChangeEventListener.java
  42. 40
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/BaseDisputeProcessService.java
  43. 11
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/UserPatrolRecordService.java
  44. 74
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseDisputeProcessServiceImpl.java
  45. 84
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/UserPatrolRecordServiceImpl.java
  46. 42
      epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/BaseDisputeProcessDao.xml
  47. 7
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java

28
epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/OrgOrStaffMQMsg.java

@ -0,0 +1,28 @@
package com.epmet.commons.rocketmq.messages;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 组织网格人员中间库数据上报MQ
* @author sun
*/
@Data
@AllArgsConstructor
public class OrgOrStaffMQMsg implements Serializable {
//客户Id
private String customerId;
//组织、网格、人员Id
private String orgId;
//数据类型【组织:agency 网格:grid 人员:staff】
private String orgType;
//操作类型【新增:add 修改删除:edit】
private String type;
}

7
epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/StaffPatrolMQMsg.java

@ -18,11 +18,4 @@ public class StaffPatrolMQMsg {
*/
private String patrolId;
/**
* 操作类型
* SystemMessageType.USER_PATROL_START
* SystemMessageTypSTOP
*/
private String actionType;
}

5
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/PageFormDTO.java

@ -30,6 +30,11 @@ public class PageFormDTO {
*/
private Integer offset;
/**
* 是否分页 默认分页
*/
private boolean isPage = true;
public Integer getOffset() {
return (pageNo-1)*pageSize;
}

21
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/form/EventInfoFormDTO.java

@ -0,0 +1,21 @@
package com.epmet.dto.basereport.form;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @Author zhaoqifeng
* @Date 2021/10/15 10:55
*/
@Data
public class EventInfoFormDTO implements Serializable {
private static final long serialVersionUID = 8479649048108914555L;
private String customerId;
private String projectId;
/**
* 操作类型新增:add 修改删除:edit
*/
private String type;
}

143
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/basereport/result/EventInfoResultDTO.java

@ -0,0 +1,143 @@
package com.epmet.dto.basereport.result;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Description
* @Author zhaoqifeng
* @Date 2021/10/15 10:57
*/
@Data
public class EventInfoResultDTO implements Serializable {
private static final long serialVersionUID = -6483163020737762044L;
/**
* 客户Id
*/
private String customerId;
/**
* 网格编码
*/
private String orgCode;
/**
* 网格名称
*/
private String orgName;
/**
* 事件名称
*/
private String eventName;
/**
* 事件类别
*/
private String eventCategory;
/**
* 上报时间 YYYY-MM-DD HH:MM:SS
*/
private Date reportTime;
/**
* 发生时间 格式为YYYY-MM-DD
*/
private Date happenDate;
/**
* 发生地点
*/
private String happenPlace;
/**
* 事件简述
*/
private String eventDescription;
/**
* 办结方式 01自办02上报 源于居民端的最终结案的项目为02工作端立项的项目最终结案的01
*/
private String waysOfResolving;
/**
* 是否办结 YN
*/
private String successfulOrNo;
/**
* 办结层级01省自治区直辖市02地盟03县旗04乡镇街道05片区06村社区07网格
*/
private String completeLevel;
/**
* 基础信息主键
*/
private String baseInfoId;
/**
* 办结时间
*/
private Date completeTime;
/**
* 经度
*/
private BigDecimal lng;
/**
* 纬度
*/
private BigDecimal lat;
/**
* 主要当事人姓名
*/
private String name;
/**
* 涉及人数
*/
private Integer numberInvolved;
/**
* 涉及单位
*/
private String relatedUnits;
/**
* 重点场所类别 01九小场所, 02公共场所
*/
private String keyAreaType;
/**
* 宗教活动规模 01 0-50人,02 51-200人,03 201人以上
*/
private String religionScale;
/**
* 宗教类别 01道教 02佛教 03基督教 04伊斯兰教 05其他
*/
private String religionType;
/**
* 重点场所是否变动 YN
*/
private String isKeyareaState;
/**
* 重点人员是否在当地 YN
*/
private String isKeypeopleLocate;
/**
* 重点人员现状
*/
private String keypeopleStatus;
}

2
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenCustomerGridDTO.java

@ -43,7 +43,7 @@ public class ScreenCustomerGridDTO implements Serializable {
* 客户id
*/
private String customerId;
private String code;
/**
* 网格id
*/

24
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectDataDTO.java

@ -54,11 +54,6 @@ public class ScreenProjectDataDTO implements Serializable {
*/
private String orgId;
/**
* 来源议题issue组织agency
*/
private String origin;
/**
* 上级组织Id
*/
@ -112,6 +107,16 @@ public class ScreenProjectDataDTO implements Serializable {
*/
private String projectAddress;
/**
* add 20211014
* 项目所属编码如果有多个以英文顿号隔开
*/
private String categoryCode;
/**
* add 20211014
* 来源议题issue 项目立项:agency 事件:resi_event
*/
private String origin;
/**
* 所有分类名 - 连接
*/
@ -165,7 +170,7 @@ public class ScreenProjectDataDTO implements Serializable {
/**
* 结案日期
*/
private String closeCaseTime;
private Date closeCaseTime;
/**
* 数据更新至: yyyy|yyyMM|yyyyMMdd
@ -185,4 +190,11 @@ public class ScreenProjectDataDTO implements Serializable {
*/
private BigDecimal satisfactionScore;
/**
* fact_origin_project_main_daily.grid_id对应的网格名称
*/
private String tempGridName;
}

14
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/form/ScreenProjectDataInfoFormDTO.java

@ -81,6 +81,17 @@ public class ScreenProjectDataInfoFormDTO implements Serializable {
*/
private String projectAddress;
/**
* add 20211014
* 项目所属编码如果有多个以英文顿号隔开
*/
private String categoryCode;
/**
* add 20211014
* 来源议题issue 项目立项:agency 事件:resi_event
*/
private String origin;
/**
* 所有分类名 - 连接
*/
@ -104,7 +115,8 @@ public class ScreenProjectDataInfoFormDTO implements Serializable {
/**
* 结案日期
*/
private String closeCaseTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date closeCaseTime;
/**
* 所有上级ID用英文逗号分开

16
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/DataStatisticalOpenFeignClient.java

@ -3,6 +3,7 @@ package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.StatsFormDTO;
import com.epmet.dto.basereport.form.EventInfoFormDTO;
import com.epmet.dto.extract.form.BizDataFormDTO;
import com.epmet.dto.extract.form.ExtractIndexFormDTO;
import com.epmet.dto.extract.form.ExtractOriginFormDTO;
@ -14,15 +15,14 @@ import com.epmet.dto.org.result.CustomerGridDTO;
import com.epmet.dto.screen.form.InitCustomerIndexForm;
import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO;
import com.epmet.dto.user.param.MidPatrolFormDTO;
import com.epmet.dto.user.result.CustomerStaffDTO;
import com.epmet.dto.user.result.GridUserInfoDTO;
import com.epmet.dto.user.result.MidPatrolDetailResult;
import com.epmet.dto.user.result.MidPatrolRecordResult;
import com.epmet.dto.user.result.GridUserInfoDTO;
import com.epmet.feign.impl.DataStatisticalOpenFeignClientFallBackFactory;
import com.epmet.opendata.dto.BaseDisputeProcessDTO;
import com.epmet.opendata.dto.form.GridBaseInfoFormDTO;
import com.epmet.opendata.dto.form.StaffBaseInfoFormDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -331,4 +331,14 @@ public interface DataStatisticalOpenFeignClient {
*/
@PostMapping(value = "/data/stats/datareporting/getPatrolDetailList")
Result<List<MidPatrolDetailResult>> getPatrolDetailList(@RequestBody MidPatrolFormDTO midPatrolFormDTO);
/**
* 事件上报
* @Param formDTO
* @Return {@link Result<List<BaseDisputeProcessDTO>>}
* @Author zhaoqifeng
* @Date 2021/10/15 16:50
*/
@PostMapping("/data/stats/datareporting/eventinfo")
Result<List<BaseDisputeProcessDTO>> getEventInfo(@RequestBody EventInfoFormDTO formDTO);
}

19
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/feign/impl/DataStatisticalOpenFeignClientFallBack.java

@ -4,6 +4,7 @@ import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.StatsFormDTO;
import com.epmet.dto.basereport.form.EventInfoFormDTO;
import com.epmet.dto.extract.form.BizDataFormDTO;
import com.epmet.dto.extract.form.ExtractIndexFormDTO;
import com.epmet.dto.extract.form.ExtractOriginFormDTO;
@ -15,11 +16,11 @@ import com.epmet.dto.org.result.CustomerGridDTO;
import com.epmet.dto.screen.form.InitCustomerIndexForm;
import com.epmet.dto.stats.form.CustomerIdAndDateIdFormDTO;
import com.epmet.dto.user.param.MidPatrolFormDTO;
import com.epmet.dto.user.result.CustomerStaffDTO;
import com.epmet.dto.user.result.GridUserInfoDTO;
import com.epmet.dto.user.result.MidPatrolDetailResult;
import com.epmet.dto.user.result.MidPatrolRecordResult;
import com.epmet.dto.user.result.GridUserInfoDTO;
import com.epmet.feign.DataStatisticalOpenFeignClient;
import com.epmet.opendata.dto.BaseDisputeProcessDTO;
import com.epmet.opendata.dto.form.GridBaseInfoFormDTO;
import com.epmet.opendata.dto.form.StaffBaseInfoFormDTO;
@ -319,4 +320,18 @@ public class DataStatisticalOpenFeignClientFallBack implements DataStatisticalOp
public Result<List<MidPatrolDetailResult>> getPatrolDetailList(MidPatrolFormDTO midPatrolFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "getPatrolDetailList", midPatrolFormDTO);
}
/**
* 事件上报
*
* @param formDTO
* @Param formDTO
* @Return {@link Result<List< BaseDisputeProcessDTO >>}
* @Author zhaoqifeng
* @Date 2021/10/15 16:50
*/
@Override
public Result<List<BaseDisputeProcessDTO>> getEventInfo(EventInfoFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.DATA_STATISTICAL_SERVER, "getEventInfo", formDTO);
}
}

17
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DataReportingController.java

@ -2,13 +2,14 @@ package com.epmet.controller;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.basereport.form.EventInfoFormDTO;
import com.epmet.dto.org.result.CustomerAgencyDTO;
import com.epmet.dto.org.result.CustomerGridDTO;
import com.epmet.dto.user.param.MidPatrolFormDTO;
import com.epmet.dto.user.result.CustomerStaffDTO;
import com.epmet.dto.user.result.GridUserInfoDTO;
import com.epmet.dto.user.result.MidPatrolDetailResult;
import com.epmet.dto.user.result.MidPatrolRecordResult;
import com.epmet.dto.user.result.GridUserInfoDTO;
import com.epmet.opendata.dto.BaseDisputeProcessDTO;
import com.epmet.opendata.dto.form.GridBaseInfoFormDTO;
import com.epmet.opendata.dto.form.StaffBaseInfoFormDTO;
import com.epmet.service.DataReportingService;
@ -89,4 +90,16 @@ public class DataReportingController {
return new Result<List<MidPatrolDetailResult>>().ok(dataReportingService.getPatrolDetailList(formDTO));
}
/**
* @Description 事件上报
* @Param formDTO
* @Return {@link Result<List<BaseDisputeProcessDTO>>}
* @Author zhaoqifeng
* @Date 2021/10/15 14:09
*/
@PostMapping("eventinfo")
public Result<List<BaseDisputeProcessDTO>> getEventInfo(@RequestBody(required = false) EventInfoFormDTO formDTO) {
return new Result<List<BaseDisputeProcessDTO>>().ok(dataReportingService.getEventInfo(formDTO));
}
}

1
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java

@ -891,7 +891,6 @@ public class DemoController {
formDTO.setCustomerId(customerId);
formDTO.setDateId(param.getDateId());
screenProjectSettleService.extractScreenData(param);
log.error(String.format("/data/stats/demo/project-test,screen_project_**表抽取完毕,customerId:%s", customerId));
}
return new Result();
}

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenCustomerAgencyEntity.java

@ -92,7 +92,7 @@ public class ScreenCustomerAgencyEntity extends BaseEpmetEntity {
* 行政地区编码
*/
private String areaCode;
private String code;
private String sourceType;
/**

1
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenCustomerGridEntity.java

@ -39,6 +39,7 @@ public class ScreenCustomerGridEntity extends BaseEpmetEntity {
* 客户id
*/
private String customerId;
private String code;
/**
* 网格id

14
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/entity/evaluationindex/screen/ScreenProjectDataEntity.java

@ -109,6 +109,17 @@ public class ScreenProjectDataEntity extends BaseEpmetEntity {
*/
private String projectAddress;
/**
* add 20211014
* 项目所属编码如果有多个以英文顿号隔开
*/
private String categoryCode;
/**
* add 20211014
* 来源议题issue 项目立项:agency 事件:resi_event
*/
private String origin;
/**
* 所有分类名 - 连接
*/
@ -132,7 +143,7 @@ public class ScreenProjectDataEntity extends BaseEpmetEntity {
/**
* 结案日期
*/
private String closeCaseTime;
private Date closeCaseTime;
/**
* 数据更新至: yyyy|yyyMM|yyyyMMdd
@ -148,4 +159,5 @@ public class ScreenProjectDataEntity extends BaseEpmetEntity {
* 满意度得分
*/
private BigDecimal satisfactionScore;
}

16
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/DataReportingService.java

@ -1,12 +1,14 @@
package com.epmet.service;
import com.epmet.dto.basereport.form.EventInfoFormDTO;
import com.epmet.dto.basereport.result.EventInfoResultDTO;
import com.epmet.dto.org.result.CustomerAgencyDTO;
import com.epmet.dto.org.result.CustomerGridDTO;
import com.epmet.dto.user.param.MidPatrolFormDTO;
import com.epmet.dto.user.result.CustomerStaffDTO;
import com.epmet.dto.user.result.GridUserInfoDTO;
import com.epmet.dto.user.result.MidPatrolDetailResult;
import com.epmet.dto.user.result.MidPatrolRecordResult;
import com.epmet.dto.user.result.GridUserInfoDTO;
import com.epmet.opendata.dto.BaseDisputeProcessDTO;
import com.epmet.opendata.dto.form.GridBaseInfoFormDTO;
import com.epmet.opendata.dto.form.StaffBaseInfoFormDTO;
@ -58,4 +60,14 @@ public interface DataReportingService {
*/
List<MidPatrolDetailResult> getPatrolDetailList(MidPatrolFormDTO formDTO);
/**
* 事件上报
* @Param formDTO
* @Return {@link List<EventInfoResultDTO>}
* @Author zhaoqifeng
* @Date 2021/10/15 14:10
*/
List<BaseDisputeProcessDTO> getEventInfo(EventInfoFormDTO formDTO);
}

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/IssueService.java

@ -182,7 +182,7 @@ public interface IssueService {
* @author wangc
* @date 2021.03.09 00:23
*/
Map<String,String> getIntegratedProjectCategory(Map<String, Set<String>> param,String customerId);
Map<String,List<String>> getIntegratedProjectCategory(Map<String, Set<String>> param,String customerId);
/**
* 获取议题总数

20
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/Issue/impl/IssueServiceImpl.java

@ -17,10 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
/**
* @author zhaoqifeng
@ -157,18 +154,23 @@ public class IssueServiceImpl implements IssueService {
* @date 2021.03.09 00:23
*/
@Override
public Map<String, String> getIntegratedProjectCategory(Map<String, Set<String>> param,String customerId) {
Map<String, String> map = new HashMap<>();
public Map<String, List<String>> getIntegratedProjectCategory(Map<String, Set<String>> param,String customerId) {
Map<String, List<String>> map = new HashMap<>();
param.forEach((projectId,categoryIds) -> {
//以下查询只适用于二级分类,如果分类层级变多了要修改此查询
List<IssueProjectCategoryDictDTO> categories = statsIssueDao.selectCategory(customerId, categoryIds);
if(!CollectionUtils.isEmpty(categories)){
StringBuilder str = new StringBuilder();
StringBuilder allCategoryName = new StringBuilder();
StringBuilder categoryCode = new StringBuilder();
categories.forEach(category -> {
str.append(category.getCategoryName()).append(StrConstant.COMMA);
allCategoryName.append(category.getCategoryName()).append(StrConstant.COMMA);
categoryCode.append(category.getCategoryCode()).append(StrConstant.COMMA);
//log.info(str.toString());
});
map.put(projectId,str.substring(NumConstant.ZERO,str.length() - NumConstant.ONE));
List<String> list=new ArrayList<>();
list.add(allCategoryName.substring(NumConstant.ZERO,allCategoryName.length() - NumConstant.ONE));
list.add(categoryCode.substring(NumConstant.ZERO,categoryCode.length() - NumConstant.ONE));
map.put(projectId,list);
}
});

85
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenProjectSettleServiceImpl.java

@ -81,30 +81,47 @@ public class ScreenProjectSettleServiceImpl implements ScreenProjectSettleServic
List<ProjectEntity> info = projectService.getProjectInfo(metaData.stream().map(ScreenProjectDataDTO::getProjectId).collect(Collectors.toList()));
if(!CollectionUtils.isEmpty(info)){
metaData = metaData.stream().flatMap(meta -> info.stream().filter(nature -> StringUtils.equals(meta.getProjectId(),
nature.getId())).map(projectInfo -> {
meta.setProjectCreateTime(projectInfo.getCreatedTime());
meta.setProjectTitle(projectInfo.getTitle());
meta.setOrigin(projectInfo.getOrigin());
//直接立项的话 项目内容是项目背景 经纬度添加
if (ProjectConstant.PROJECT_ORIGIN_AGENCY.equals(projectInfo.getOrigin())){
meta.setOrgType(OrgTypeConstant.AGENCY);
meta.setOrgId(projectInfo.getAgencyId());
meta.setProjectContent(projectInfo.getBackGround());
meta.setLinkUserId(projectInfo.getCreatedBy());
meta.setLinkName(projectInfo.getCreatedBy());
if (StringUtils.isNotBlank(projectInfo.getLocateDimension())){
meta.setLatitude(new BigDecimal(projectInfo.getLocateDimension()));
}
if (StringUtils.isNotBlank(projectInfo.getLocateLongitude())){
meta.setLongitude(new BigDecimal(projectInfo.getLocateLongitude()));
}
meta.setProjectAddress(projectInfo.getLocateAddress());
} else {
meta.setLinkUserId(meta.getLinkName());
}
//项目满意度得分
meta.setSatisfactionScore(projectService.calProjectSatisfactionScore(param.getCustomerId(),meta.getProjectId()));
return meta;
nature.getId())).map(projectInfo -> {
meta.setProjectCreateTime(projectInfo.getCreatedTime());
meta.setProjectTitle(projectInfo.getTitle());
meta.setOrigin(projectInfo.getOrigin());
if (ProjectConstant.PROJECT_ORIGIN_ISSUE.equals(projectInfo.getOrigin())) {
//来源于议题的,上面的initNewScreenProjectData,已经赋值orgType=grid, orgId:gridId
meta.setOrgName(meta.getTempGridName());
//A:如果是来源于议题,linkUserId为话题的发布人id;
meta.setLinkUserId(meta.getLinkName());
}else if(ProjectConstant.PROJECT_ORIGIN_EVENT.equals(projectInfo.getOrigin())){
meta.setProjectContent(projectInfo.getBackGround());
meta.setLatitude(new BigDecimal(projectInfo.getLocateDimension()));
meta.setLongitude(new BigDecimal(projectInfo.getLocateLongitude()));
meta.setProjectAddress(projectInfo.getLocateAddress());
meta.setOrgType(OrgTypeConstant.AGENCY);
meta.setOrgId(projectInfo.getAgencyId());
//B:如果是来源是居民端报事,此列实际为空;
meta.setLinkUserId(meta.getLinkName());
}else if (ProjectConstant.PROJECT_ORIGIN_AGENCY.equals(projectInfo.getOrigin())) {
//直接立项的话 项目内容是项目背景 经纬度添加
meta.setOrgType(OrgTypeConstant.AGENCY);
meta.setOrgId(projectInfo.getAgencyId());
//上面的initNewScreenProjectData已经赋值了orgName=组织名称
meta.setProjectContent(projectInfo.getBackGround());
meta.setLinkUserId(projectInfo.getCreatedBy());
meta.setLinkName(projectInfo.getCreatedBy());
if (StringUtils.isNotBlank(projectInfo.getLocateDimension())) {
meta.setLatitude(new BigDecimal(projectInfo.getLocateDimension()));
}
if (StringUtils.isNotBlank(projectInfo.getLocateLongitude())) {
meta.setLongitude(new BigDecimal(projectInfo.getLocateLongitude()));
}
meta.setProjectAddress(projectInfo.getLocateAddress());
}
//项目满意度得分
meta.setSatisfactionScore(projectService.calProjectSatisfactionScore(param.getCustomerId(),meta.getProjectId()));
return meta;
})).collect(Collectors.toList());
}
//设置项目经纬度和项目内容
@ -129,13 +146,25 @@ public class ScreenProjectSettleServiceImpl implements ScreenProjectSettleServic
}
Map<String, Set<String>> categoryMap = projectService.getProjectCategory(projectIds);
if(!CollectionUtils.isEmpty(categoryMap)){
Map<String, String> integratedProjectCategoryMap = issueService.getIntegratedProjectCategory(categoryMap, param.getCustomerId());
Map<String, List<String>> integratedProjectCategoryMap = issueService.getIntegratedProjectCategory(categoryMap, param.getCustomerId());
if(!CollectionUtils.isEmpty(integratedProjectCategoryMap)){
metaData.forEach(meta -> {
meta.setAllCategoryName(integratedProjectCategoryMap.get(meta.getProjectId()));
List<String> list1=integratedProjectCategoryMap.get(meta.getProjectId());
if(!CollectionUtils.isEmpty(list1)){
meta.setAllCategoryName(list1.get(0));
meta.setCategoryCode(list1.get(1));
}else{
log.warn("1、projectId="+meta.getProjectId()+" category is null");
}
});
orientData.forEach(orient -> {
orient.setAllCategoryName(integratedProjectCategoryMap.get(orient.getProjectId()));
List<String> list2=integratedProjectCategoryMap.get(orient.getProjectId());
if(!CollectionUtils.isEmpty(list2)){
orient.setAllCategoryName(list2.get(0));
orient.setCategoryCode(list2.get(1));
}else{
log.warn("2、projectId="+orient.getProjectId()+" category is null");
}
});
}
}
@ -168,7 +197,7 @@ public class ScreenProjectSettleServiceImpl implements ScreenProjectSettleServic
}
}
log.error(String.format("/data/stats/demo/project-test,screen_project_**表抽取完毕,customerId:%s", param.getCustomerId()));
}
/**

19
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerAgencyService.java

@ -17,6 +17,7 @@
package com.epmet.service.evaluationindex.screen;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.dto.extract.form.PartyBaseInfoFormDTO;
import com.epmet.dto.extract.form.ScreenPartyBranchDataFormDTO;
@ -35,7 +36,7 @@ import java.util.Map;
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-09-22
*/
public interface ScreenCustomerAgencyService{
public interface ScreenCustomerAgencyService extends BaseService<ScreenCustomerAgencyEntity> {
/**
* @Description 根据agencyId查询所有子级agencyId当机关的级别为 community时所有子级为gridId
@ -137,5 +138,21 @@ public interface ScreenCustomerAgencyService{
* @author sun
*/
List<CustomerAgencyDTO> getByCustomerId(String customerId);
/**
* @Description 根据ID获取组织
* @Param agencyId
* @Return {@link ScreenCustomerAgencyEntity}
* @Author zhaoqifeng
* @Date 2021/10/15 15:44
*/
ScreenCustomerAgencyEntity getAgencyById(String agencyId);
/**
* @Description 获取组织列表
* @Param customerId
* @Return {@link Map< String, ScreenCustomerAgencyEntity>}
* @Author zhaoqifeng
* @Date 2021/10/15 15:44
*/
Map<String, ScreenCustomerAgencyEntity> getAgencyList(String customerId);
}

18
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerGridService.java

@ -28,6 +28,7 @@ import com.epmet.entity.evaluationindex.screen.ScreenCustomerGridEntity;
import com.epmet.entity.org.CustomerGridEntity;
import java.util.List;
import java.util.Map;
/**
* 网格(党支部)信息
@ -111,4 +112,21 @@ public interface ScreenCustomerGridService extends BaseService<ScreenCustomerGri
List<ScreenProjectGridDailyDTO> selectGridInfoList(String customerId, String pids);
List<ScreenCustomerGridEntity> selectEntityByAgencyId(String customerId, String parentAgencyId);
/**
* @Description 根据ID获取网格
* @Param gridId
* @Return {@link ScreenCustomerGridDTO}
* @Author zhaoqifeng
* @Date 2021/10/15 15:50
*/
ScreenCustomerGridDTO getGridById(String gridId);
/**
* @Description 获取网格列表
* @Param customerId
* @Return {@link Map<String, ScreenCustomerGridDTO>}
* @Author zhaoqifeng
* @Date 2021/10/15 15:50
*/
Map<String, ScreenCustomerGridDTO> getGridList(String customerId);
}

11
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectDataService.java

@ -127,4 +127,15 @@ public interface ScreenProjectDataService extends BaseService<ScreenProjectDataE
void insertOrUpdateBatch(String customerId,String dateId,List<ScreenProjectDataDTO> meta,List<ScreenProjectDataDTO> orient);
int updateProjectSatisfactionScore(String projectId, BigDecimal calProjectSatisfactionScore);
/**
* 获取项目
* @Param customerId
* @Param projectId
* @Return {@link List<ScreenProjectDataDTO>}
* @Author zhaoqifeng
* @Date 2021/10/15 14:22
*/
List<ScreenProjectDataDTO> getProjectList(String customerId, String projectId);
}

33
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerAgencyServiceImpl.java

@ -17,7 +17,9 @@
package com.epmet.service.evaluationindex.screen.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.constant.DataSourceConstant;
@ -36,13 +38,14 @@ import com.epmet.entity.evaluationindex.screen.ScreenCustomerAgencyEntity;
import com.epmet.entity.org.CustomerAgencyEntity;
import com.epmet.service.evaluationindex.screen.ScreenCustomerAgencyService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@ -54,7 +57,7 @@ import java.util.stream.Collectors;
@Service
@Slf4j
@DataSource(DataSourceConstant.EVALUATION_INDEX)
public class ScreenCustomerAgencyServiceImpl implements ScreenCustomerAgencyService {
public class ScreenCustomerAgencyServiceImpl extends BaseServiceImpl<ScreenCustomerAgencyDao, ScreenCustomerAgencyEntity> implements ScreenCustomerAgencyService {
@Autowired
private ScreenCustomerAgencyDao screenCustomerAgencyDao;
@ -304,4 +307,30 @@ public class ScreenCustomerAgencyServiceImpl implements ScreenCustomerAgencyServ
return screenCustomerAgencyDao.selectByCustomerId(customerId);
}
@Override
public ScreenCustomerAgencyEntity getAgencyById(String agencyId) {
LambdaQueryWrapper<ScreenCustomerAgencyEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ScreenCustomerAgencyEntity::getAgencyId, agencyId);
return baseDao.selectOne(wrapper);
}
/**
* @param customerId
* @Description 获取组织列表
* @Param customerId
* @Return {@link Map< String, ScreenCustomerAgencyEntity>}
* @Author zhaoqifeng
* @Date 2021/10/15 15:44
*/
@Override
public Map<String, ScreenCustomerAgencyEntity> getAgencyList(String customerId) {
LambdaQueryWrapper<ScreenCustomerAgencyEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(customerId), ScreenCustomerAgencyEntity::getAgencyId, customerId);
List<ScreenCustomerAgencyEntity> list = baseDao.selectList(wrapper);
if (CollectionUtils.isEmpty(list)) {
return Collections.emptyMap();
}
return list.stream().collect(Collectors.toMap(ScreenCustomerAgencyEntity::getAgencyId, Function.identity()));
}
}

41
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerGridServiceImpl.java

@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.constant.DataSourceConstant;
import com.epmet.constant.OrgSourceTypeConstant;
@ -34,15 +35,15 @@ import com.epmet.dto.screen.ScreenProjectGridDailyDTO;
import com.epmet.entity.evaluationindex.screen.ScreenCustomerGridEntity;
import com.epmet.entity.org.CustomerGridEntity;
import com.epmet.service.evaluationindex.screen.ScreenCustomerGridService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* 网格(党支部)信息
@ -215,4 +216,36 @@ public class ScreenCustomerGridServiceImpl extends BaseServiceImpl<ScreenCustome
public List<ScreenCustomerGridEntity> selectEntityByAgencyId(String customerId, String parentAgencyId) {
return baseDao.selectEntityByAgencyId(customerId,parentAgencyId);
}
/**
* @param gridId
* @Description 根据ID获取网格
* @Param gridId
* @Return {@link ScreenCustomerGridDTO}
* @Author zhaoqifeng
* @Date 2021/10/15 15:50
*/
@Override
public ScreenCustomerGridDTO getGridById(String gridId) {
LambdaQueryWrapper<ScreenCustomerGridEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ScreenCustomerGridEntity::getGridId, gridId);
ScreenCustomerGridEntity entity = baseDao.selectOne(wrapper);
return ConvertUtils.sourceToTarget(entity, ScreenCustomerGridDTO.class);
}
/**
* @param customerId
* @Description 获取网格列表
* @Param customerId
* @Return {@link Map <String, ScreenCustomerGridDTO>}
* @Author zhaoqifeng
* @Date 2021/10/15 15:50
*/
@Override
public Map<String, ScreenCustomerGridDTO> getGridList(String customerId) {
LambdaQueryWrapper<ScreenCustomerGridEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(customerId), ScreenCustomerGridEntity::getGridId, customerId);
List<ScreenCustomerGridEntity> list = baseDao.selectList(wrapper);
return ConvertUtils.sourceToTarget(list, ScreenCustomerGridDTO.class).stream().collect(Collectors.toMap(ScreenCustomerGridDTO::getGridId, Function.identity()));
}
}

53
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectDataServiceImpl.java

@ -17,6 +17,7 @@
package com.epmet.service.evaluationindex.screen.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
@ -26,7 +27,8 @@ import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.constant.DataSourceConstant;
import com.epmet.dao.evaluationindex.screen.*;
import com.epmet.dao.evaluationindex.screen.ScreenProjectDataDao;
import com.epmet.dao.evaluationindex.screen.ScreenProjectImgDataDao;
import com.epmet.dto.screen.ScreenProjectDataDTO;
import com.epmet.dto.screen.form.ScreenProjectDataInfoFormDTO;
import com.epmet.dto.screencoll.ScreenCollFormDTO;
@ -42,7 +44,6 @@ import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
@ -134,22 +135,18 @@ public class ScreenProjectDataServiceImpl extends BaseServiceImpl<ScreenProjectD
//todo 动态获取超时时间
//如果结案 结案时间立项时间;
if ("closed_case".equals(projectStatusCode)) {
try {
Date createTime = item.getProjectCreateTime();
Date closeCaseTime = sdf.parse(item.getCloseCaseTime());
Date createTime = item.getProjectCreateTime();
Date closeCaseTime = item.getCloseCaseTime();
if (closeCaseTime.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 4) {
//如果结案时间-立项时间小于等于4天 未超期 level3
item.setProjectLevel(3);
} else if (closeCaseTime.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 5) {
//如果结案时间-立项时间大于4天小于5天 即将超期 level2
item.setProjectLevel(2);
} else {
//大于5天 已超期 level1
item.setProjectLevel(1);
}
} catch (ParseException e) {
e.printStackTrace();
if (closeCaseTime.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 4) {
//如果结案时间-立项时间小于等于4天 未超期 level3
item.setProjectLevel(3);
} else if (closeCaseTime.getTime() - createTime.getTime() <= 1000 * 60 * 60 * 24 * 5) {
//如果结案时间-立项时间大于4天小于5天 即将超期 level2
item.setProjectLevel(2);
} else {
//大于5天 已超期 level1
item.setProjectLevel(1);
}
} else if ("pending".equals(projectStatusCode)) {
//如果处理中 当前时间-立项时间;
@ -275,4 +272,26 @@ public class ScreenProjectDataServiceImpl extends BaseServiceImpl<ScreenProjectD
return baseDao.updateProjectSatisfactionScore(projectId,score);
}
/**
* 获取项目
*
* @param customerId
* @param projectId
* @Param customerId
* @Param projectId
* @Return {@link List<ScreenProjectDataDTO>}
* @Author zhaoqifeng
* @Date 2021/10/15 14:22
*/
@Override
public List<ScreenProjectDataDTO> getProjectList(String customerId, String projectId) {
LambdaQueryWrapper<ScreenProjectDataEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(customerId), ScreenProjectDataEntity::getCustomerId, customerId);
wrapper.eq(StringUtils.isNotBlank(projectId), ScreenProjectDataEntity::getProjectId, projectId);
wrapper.ne(ScreenProjectDataEntity::getCategoryCode, null);
wrapper.ne(ScreenProjectDataEntity::getCategoryCode, "");
List<ScreenProjectDataEntity> list = baseDao.selectList(wrapper);
return ConvertUtils.sourceToTarget(list, ScreenProjectDataDTO.class);
}
}

116
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/DataReportingServiceImpl.java

@ -1,25 +1,42 @@
package com.epmet.service.impl;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.constant.OrgTypeConstant;
import com.epmet.constant.ProjectConstant;
import com.epmet.dto.basereport.form.EventInfoFormDTO;
import com.epmet.dto.org.result.CustomerAgencyDTO;
import com.epmet.dto.org.result.CustomerGridDTO;
import com.epmet.dto.screen.ScreenCustomerGridDTO;
import com.epmet.dto.screen.ScreenProjectDataDTO;
import com.epmet.dto.user.param.MidPatrolFormDTO;
import com.epmet.dto.user.result.CustomerStaffDTO;
import com.epmet.dto.user.result.GridUserInfoDTO;
import com.epmet.dto.user.result.MidPatrolDetailResult;
import com.epmet.dto.user.result.MidPatrolRecordResult;
import com.epmet.dto.user.result.GridUserInfoDTO;
import com.epmet.entity.evaluationindex.screen.ScreenCustomerAgencyEntity;
import com.epmet.entity.stats.CustomerProjectCategoryDictEntity;
import com.epmet.opendata.dto.BaseDisputeProcessDTO;
import com.epmet.opendata.dto.form.GridBaseInfoFormDTO;
import com.epmet.opendata.dto.form.StaffBaseInfoFormDTO;
import com.epmet.service.DataReportingService;
import com.epmet.service.evaluationindex.screen.ScreenCustomerAgencyService;
import com.epmet.service.evaluationindex.screen.ScreenCustomerGridService;
import com.epmet.service.evaluationindex.screen.ScreenProjectDataService;
import com.epmet.service.org.CustomerAgencyService;
import com.epmet.service.org.CustomerGridService;
import com.epmet.service.stats.CustomerProjectCategoryDictService;
import com.epmet.service.user.StatsStaffPatrolService;
import com.epmet.service.user.UserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/**
* @dscription 省网格化平台数据上报--数据查询
@ -34,8 +51,16 @@ public class DataReportingServiceImpl implements DataReportingService {
private CustomerGridService customerGridService;
@Autowired
private UserService userService;
@Resource
private ScreenProjectDataService screenProjectDataService;
@Resource
private ScreenCustomerAgencyService screenCustomerAgencyService;
@Resource
private ScreenCustomerGridService screenCustomerGridService;
@Autowired
private StatsStaffPatrolService statsStaffPatrolService;
@Resource
private CustomerProjectCategoryDictService customerProjectCategoryDictService;
/**
* @Author sun
@ -105,6 +130,93 @@ public class DataReportingServiceImpl implements DataReportingService {
return resultList;
}
/**
* 事件上报
*
* @param formDTO
* @Param formDTO
* @Return {@link List<BaseDisputeProcessDTO>}
* @Author zhaoqifeng
* @Date 2021/10/15 14:10
*/
@Override
public List<BaseDisputeProcessDTO> getEventInfo(EventInfoFormDTO formDTO) {
List<BaseDisputeProcessDTO> list;
//根据入参,获取项目
List<ScreenProjectDataDTO> projectList = screenProjectDataService.getProjectList(formDTO.getCustomerId(), formDTO.getProjectId());
//项目列表为空,返回空数组
if(CollectionUtils.isEmpty(projectList)) {
return Collections.emptyList();
}
//项目ID不为空时,因为只有一条,可以直接处理
if (StringUtils.isNotEmpty(formDTO.getProjectId())) {
list = projectList.stream().map(project -> {
BaseDisputeProcessDTO dto = getBaseDisputeProcessDTO(project);
if (OrgTypeConstant.AGENCY.equals(project.getOrgType())) {
ScreenCustomerAgencyEntity agency = screenCustomerAgencyService.getAgencyById(project.getOrgId());
dto.setOrgCode(agency.getCode());
dto.setOrgName(agency.getAgencyName());
} else {
ScreenCustomerGridDTO grid = screenCustomerGridService.getGridById(project.getOrgId());
dto.setOrgCode(grid.getCode());
dto.setOrgName(grid.getGridName());
}
return dto;
}).collect(Collectors.toList());
} else {
//项目ID不为空时,提前取出客户下的组织和网格
Map<String, ScreenCustomerAgencyEntity> agencyMap = screenCustomerAgencyService.getAgencyList(formDTO.getCustomerId());
Map<String, ScreenCustomerGridDTO> gridMap = screenCustomerGridService.getGridList(formDTO.getCustomerId());
list = projectList.stream().map(project -> {
BaseDisputeProcessDTO dto = getBaseDisputeProcessDTO(project);
if (OrgTypeConstant.AGENCY.equals(project.getOrgType())) {
ScreenCustomerAgencyEntity agency = agencyMap.get(project.getOrgId());
dto.setOrgCode(agency.getCode());
dto.setOrgName(agency.getAgencyName());
} else {
ScreenCustomerGridDTO grid = gridMap.get(project.getOrgId());
dto.setOrgCode(grid.getCode());
dto.setOrgName(grid.getGridName());
}
return dto;
}).collect(Collectors.toList());
}
return list.stream().filter(item -> StringUtils.isNotBlank(item.getEventCategory())).collect(Collectors.toList());
}
private BaseDisputeProcessDTO getBaseDisputeProcessDTO(ScreenProjectDataDTO project) {
BaseDisputeProcessDTO dto = new BaseDisputeProcessDTO();
dto.setId(project.getProjectId());
dto.setCustomerId(project.getCustomerId());
dto.setEventName(project.getProjectTitle());
String categoryCode = project.getCategoryCode().split(StrConstant.COMMA)[0];
//如果是孔村、榆山、锦水的项目需要关联分类字典表
if("2fe0065f70ca0e23ce4c26fca5f1d933".equals(project.getCustomerId()) ||
"44876154d10d7cb7affd92000f84f833".equals(project.getCustomerId()) ||
"46c55cb862d6d5e6d05d2ab61a1cc07e".equals(project.getCustomerId())) {
CustomerProjectCategoryDictEntity categoryEntity = customerProjectCategoryDictService.getByCategoryCode(project.getCustomerId(), categoryCode);
if (null != categoryEntity) {
categoryCode = categoryEntity.getEpmetCategoryCode();
} else {
categoryCode = null;
}
}
dto.setReportTime(project.getProjectCreateTime());
dto.setHappenDate(DateUtils.parseDate(DateUtils.format(project.getProjectCreateTime()), DateUtils.DATE_PATTERN));
dto.setEventDescription(project.getProjectContent());
//TODO 办结方式
dto.setWaysOfResolving("01");
dto.setSuccessfulOrNo(ProjectConstant.CLOSED_CASE.equals(project.getProjectStatusCode())?"Y":"N");
//TODO 办结层级
dto.setCompleteLevel("01");
dto.setCompleteTime(project.getCloseCaseTime());
dto.setLat(project.getLatitude());
dto.setLng(project.getLongitude());
return dto;
}
@Override
public List<MidPatrolRecordResult> getPatrolRecordList(MidPatrolFormDTO formDTO) {
return userService.getPatrolRecordList(formDTO);

9
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/project/impl/ProjectProcessServiceImpl.java

@ -20,7 +20,6 @@ package com.epmet.service.project.impl;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.constant.DataSourceConstant;
import com.epmet.dao.project.ProjectProcessDao;
import com.epmet.dto.ProjectProcessDTO;
@ -40,7 +39,9 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@ -144,7 +145,7 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl<ProjectProcessDao
list = list.stream().flatMap(target -> closedInfo.stream().filter(closedCase -> StringUtils.equals(closedCase.getProjectId(),target.getProjectId())).map(
merge -> {
target.setProjectStatusCode("closed_case");
target.setCloseCaseTime(DateUtils.format(merge.getCreatedTime(),DateUtils.DATE_TIME_PATTERN));
target.setCloseCaseTime(merge.getCreatedTime());
return target;
}
)).collect(Collectors.toList());
@ -166,7 +167,7 @@ public class ProjectProcessServiceImpl extends BaseServiceImpl<ProjectProcessDao
list = list.stream().flatMap(target -> closedInfo.stream().filter(closedCase -> StringUtils.equals(closedCase.getProjectId(),target.getProjectId())).map(
merge -> {
//target.setProjectStatusCode("closed_case");
target.setCloseCaseTime(DateUtils.format(merge.getCreatedTime(),DateUtils.DATE_TIME_PATTERN));
target.setCloseCaseTime(merge.getCreatedTime());
return target;
}
)).collect(Collectors.toList());

10
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/CustomerProjectCategoryDictService.java

@ -55,4 +55,14 @@ public interface CustomerProjectCategoryDictService extends BaseService<Customer
* @Date 16:03 2021-03-22
**/
void uploadCategoryDict(ScreenCollFormDTO<CategoryDictFormDTO> formDTO);
/**
* @Description 获取分类信息
* @Param customerId
* @Param categoryCode
* @Return {@link CustomerProjectCategoryDictEntity}
* @Author zhaoqifeng
* @Date 2021/10/15 16:33
*/
CustomerProjectCategoryDictEntity getByCategoryCode(String customerId, String categoryCode);
}

19
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/CustomerProjectCategoryDictServiceImpl.java

@ -17,6 +17,7 @@
package com.epmet.service.stats.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
@ -116,4 +117,22 @@ public class CustomerProjectCategoryDictServiceImpl extends BaseServiceImpl<Cust
baseDao.batchInsertCustomerProjectCategoryDict(formDTO.getDataList(), formDTO.getCustomerId());
}
}
/**
* @param customerId
* @param categoryCode
* @Description 获取分类信息
* @Param customerId
* @Param categoryCode
* @Return {@link CustomerProjectCategoryDictEntity}
* @Author zhaoqifeng
* @Date 2021/10/15 16:33
*/
@Override
public CustomerProjectCategoryDictEntity getByCategoryCode(String customerId, String categoryCode) {
LambdaQueryWrapper<CustomerProjectCategoryDictEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CustomerProjectCategoryDictEntity::getCategoryCode, categoryCode);
wrapper.eq(CustomerProjectCategoryDictEntity::getCustomerId, customerId);
return baseDao.selectOne(wrapper);
}
}

8
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml

@ -578,10 +578,12 @@
data.PIDS as allParentIds,
data.TOPIC_ID,
IFNULL(log.response, 0) AS responseCount,
#{dataEndTime} as dataEndTime
#{dataEndTime} as dataEndTime,
data.ORIGIN as origin,
grid.GRID_NAME as tempGridName
FROM `fact_origin_project_main_daily` data
LEFT JOIN DIM_AGENCY agency on data.agency_id = agency.id
LEFT JOIN DIM_AGENCY agency on (data.agency_id = agency.id and agency.del_flag='0')
LEFT JOIN DIM_GRID grid on (data.grid_id=grid.id and grid.del_flag='0')
LEFT JOIN (
SELECT PROJECT_ID, COUNT(IS_ACTIVE) AS response FROM fact_origin_project_log_daily
WHERE (ACTION_CODE = 'close' OR ACTION_CODE = 'response' OR ACTION_CODE = 'transfer' OR ACTION_CODE = 'return')

3
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/issue/StatsIssueDao.xml

@ -311,7 +311,8 @@
<select id="selectCategory" resultType="com.epmet.dto.issue.IssueProjectCategoryDictDTO">
SELECT
a.ID,
IF(a.CATEGORY_TYPE = '2',concat(b.CATEGORY_NAME,'-',a.CATEGORY_NAME),a.CATEGORY_NAME) as categoryName
IF(a.CATEGORY_TYPE = '2',concat(b.CATEGORY_NAME,'-',a.CATEGORY_NAME),a.CATEGORY_NAME) as categoryName,
a.category_code as categoryCode
FROM issue_project_category_dict a
LEFT JOIN issue_project_category_dict b on a.pid = b.id and a.customer_id = b.customer_id
WHERE a.DEL_FLAG = '0'

24
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml

@ -1011,12 +1011,15 @@
FROM staff_patrol_record
WHERE
1=1
<if test="patrolId != null and patrolId != ''">
AND ID = #{patrolId}
</if>
<if test="patrolId != null and patrolId != ''">
AND ID = #{patrolId}
</if>
and CUSTOMER_ID = #{customerId}
AND DEL_FLAG = '0'
LIMIT #{offset},#{pageSize}
<if test="isPage != null and isPage">
LIMIT #{offset},#{pageSize}
</if>
order by created_time
</select>
<select id="getPatrolDetailList" resultType="com.epmet.dto.user.result.MidPatrolDetailResult">
select
@ -1024,12 +1027,17 @@
from staff_patrol_detail
WHERE
1=1
<if test="patrolId != null and patrolId != ''">
AND staff_patrol_rec_id = #{patrolId}
</if>
<if test="patrolId != null and patrolId != ''">
AND staff_patrol_rec_id = #{patrolId}
</if>
and CUSTOMER_ID = #{customerId}
AND DEL_FLAG = '0'
LIMIT #{offset},#{pageSize}
<if test="isPage != null and isPage">
LIMIT #{offset},#{pageSize}
</if>
order by created_time
</select>
</mapper>

36
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/send/SendMqMsgUtil.java

@ -1,10 +1,7 @@
package com.epmet.send;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.rocketmq.messages.GroupAchievementMQMsg;
import com.epmet.commons.rocketmq.messages.PointRuleChangedMQMsg;
import com.epmet.commons.rocketmq.messages.ProjectChangedMQMsg;
import com.epmet.commons.rocketmq.messages.StaffPatrolMQMsg;
import com.epmet.commons.rocketmq.messages.*;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.SystemMessageType;
@ -135,10 +132,10 @@ public class SendMqMsgUtil {
* @author wxz
* @date 2021.06.21 12:46
*/
public boolean sendPatrolMqMsg(StaffPatrolMQMsg msg) {
public boolean sendPatrolMqMsg(StaffPatrolMQMsg msg,String messageType) {
try {
SystemMsgFormDTO msgForm = new SystemMsgFormDTO();
msgForm.setMessageType(msg.getActionType());
msgForm.setMessageType(messageType);
msgForm.setContent(msg);
Result sendMsgResult = null;
log.info("sendPatrolMqMsg param:{}",msgForm);
@ -158,4 +155,31 @@ public class SendMqMsgUtil {
}
/**
* @Description 组织网格人员中间库信息同步Mq
* @author sun
*/
public boolean sendOrgStaffMqMsg(OrgOrStaffMQMsg msg) {
try {
SystemMsgFormDTO msgForm = new SystemMsgFormDTO();
msgForm.setMessageType(msg.getType());
msgForm.setContent(msg);
Result sendMsgResult;
log.info("sendOrgStaffMqMsg param:{}",msgForm);
int retryTime = 0;
do {
sendMsgResult = epmetMessageOpenFeignClient.sendSystemMsgByMQ(msgForm);
} while ((sendMsgResult == null || !sendMsgResult.success()) && retryTime++ < NumConstant.TWO);
if (sendMsgResult != null && sendMsgResult.success()) {
return true;
}
log.error("发送(组织、网格、人员同步中间库)系统消息到message服务失败:{},msg:{}", JSON.toJSONString(sendMsgResult), JSON.toJSONString(msgForm));
} catch (Exception e) {
log.error("sendOrgStaffMqMsg exception", e);
}
return false;
}
}

207
epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/BaseDisputeProcessDTO.java

@ -0,0 +1,207 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.opendata.dto;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 事件信息表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-15
*/
@Data
public class BaseDisputeProcessDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* 客户Id
*/
private String customerId;
/**
* 网格编码
*/
private String orgCode;
/**
* 网格名称
*/
private String orgName;
/**
* 事件名称
*/
private String eventName;
/**
* 事件类别
*/
private String eventCategory;
/**
* 上报时间 YYYY-MM-DD HH:MM:SS
*/
private Date reportTime;
/**
* 发生时间 格式为YYYY-MM-DD
*/
private Date happenDate;
/**
* 发生地点
*/
private String happenPlace;
/**
* 事件简述
*/
private String eventDescription;
/**
* 办结方式 01自办02上报 源于居民端的最终结案的项目为02工作端立项的项目最终结案的01
*/
private String waysOfResolving;
/**
* 是否办结 YN
*/
private String successfulOrNo;
/**
* 办结层级
01省自治区直辖市
02地
03县
04乡镇街道
05片区
06村社区
07网格
*/
private String completeLevel;
/**
* 基础信息主键
*/
private String baseInfoId;
/**
* 办结时间
*/
private Date completeTime;
/**
* 经度
*/
private BigDecimal lng;
/**
* 纬度
*/
private BigDecimal lat;
/**
* 主要当事人姓名
*/
private String name;
/**
* 涉及人数
*/
private Integer numberInvolved;
/**
* 涉及单位
*/
private String relatedUnits;
/**
* 重点场所类别 01九小场所, 02公共场所
*/
private String keyAreaType;
/**
* 宗教活动规模 01 0-50人,02 51-200人,03 201人以上
*/
private String religionScale;
/**
* 宗教类别 01道教 02佛教 03基督教 04伊斯兰教 05其他
*/
private String religionType;
/**
* 重点场所是否变动 YN
*/
private String isKeyareaState;
/**
* 重点人员是否在当地 YN
*/
private String isKeypeopleLocate;
/**
* 重点人员现状
*/
private String keypeopleStatus;
/**
* 删除标识 0.未删除 1.已删除
*/
private Long delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

56
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/BaseDisputeProcessController.java

@ -0,0 +1,56 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.opendata.controller;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.basereport.form.EventInfoFormDTO;
import com.epmet.opendata.service.BaseDisputeProcessService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 事件信息表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-15
*/
@RestController
@RequestMapping("basedisputeprocess")
public class BaseDisputeProcessController {
@Autowired
private BaseDisputeProcessService baseDisputeProcessService;
/**
* 获取上报事件
* @Param formDTO
* @Return {@link Result}
* @Author zhaoqifeng
* @Date 2021/10/15 16:59
*/
@PostMapping("eventinfo")
public Result getEventinfo(@RequestBody(required = false) EventInfoFormDTO formDTO) {
baseDisputeProcessService.getEventinfo(formDTO);
return new Result();
}
}

15
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/UserPatrolRecordController.java

@ -17,8 +17,13 @@
package com.epmet.opendata.controller;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
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.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -36,4 +41,14 @@ public class UserPatrolRecordController {
@Autowired
private UserPatrolRecordService userPatrolRecordService;
/**
* @Author sun
* @Description 网格员信息中间库同步
**/
@PostMapping("patrol")
public Result getStaffBaseInfo(@RequestBody(required = false) UpsertPatrolRecordForm formDTO) {
ValidatorUtils.validateEntity(formDTO);
userPatrolRecordService.insertPatrolRecord(formDTO);
return new Result();
}
}

33
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/BaseDisputeProcessDao.java

@ -0,0 +1,33 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.opendata.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.opendata.entity.BaseDisputeProcessEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* 事件信息表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-15
*/
@Mapper
public interface BaseDisputeProcessDao extends BaseDao<BaseDisputeProcessEntity> {
}

177
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseDisputeProcessEntity.java

@ -0,0 +1,177 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.opendata.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
/**
* 事件信息表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-15
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("base_dispute_process")
public class BaseDisputeProcessEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户Id
*/
private String customerId;
/**
* 网格编码
*/
private String orgCode;
/**
* 网格名称
*/
private String orgName;
/**
* 事件名称
*/
private String eventName;
/**
* 事件类别
*/
private String eventCategory;
/**
* 上报时间 YYYY-MM-DD HH:MM:SS
*/
private Date reportTime;
/**
* 发生时间 格式为YYYY-MM-DD
*/
private Date happenDate;
/**
* 发生地点
*/
private String happenPlace;
/**
* 事件简述
*/
private String eventDescription;
/**
* 办结方式 01自办02上报 源于居民端的最终结案的项目为02工作端立项的项目最终结案的01
*/
private String waysOfResolving;
/**
* 是否办结 YN
*/
private String successfulOrNo;
/**
* 办结层级
01省自治区直辖市
02地
03县
04乡镇街道
05片区
06村社区
07网格
*/
private String completeLevel;
/**
* 基础信息主键
*/
private String baseInfoId;
/**
* 办结时间
*/
private Date completeTime;
/**
* 经度
*/
private BigDecimal lng;
/**
* 纬度
*/
private BigDecimal lat;
/**
* 主要当事人姓名
*/
private String name;
/**
* 涉及人数
*/
private Integer numberInvolved;
/**
* 涉及单位
*/
private String relatedUnits;
/**
* 重点场所类别 01九小场所, 02公共场所
*/
private String keyAreaType;
/**
* 宗教活动规模 01 0-50人,02 51-200人,03 201人以上
*/
private String religionScale;
/**
* 宗教类别 01道教 02佛教 03基督教 04伊斯兰教 05其他
*/
private String religionType;
/**
* 重点场所是否变动 YN
*/
private String isKeyareaState;
/**
* 重点人员是否在当地 YN
*/
private String isKeypeopleLocate;
/**
* 重点人员现状
*/
private String keypeopleStatus;
}

7
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/RocketMQConsumerRegister.java

@ -6,6 +6,7 @@ import com.epmet.commons.rocketmq.register.MQAbstractRegister;
import com.epmet.commons.rocketmq.register.MQConsumerProperties;
import com.epmet.opendata.mq.listener.OpenDataOrgChangeEventListener;
import com.epmet.opendata.mq.listener.OpenDataPatrolChangeEventListener;
import com.epmet.opendata.mq.listener.OpenDataProjectChangeEventListener;
import com.epmet.opendata.mq.listener.OpenDataStaffChangeEventListener;
import org.apache.rocketmq.common.protocol.heartbeat.MessageModel;
import org.springframework.stereotype.Component;
@ -41,6 +42,12 @@ public class RocketMQConsumerRegister extends MQAbstractRegister {
TopicConstants.PATROL,
"*",
new OpenDataPatrolChangeEventListener());
register(consumerProperties,
ConsomerGroupConstants.PROJECT_CHANGED_COMPONENTS_GROUP,
MessageModel.CLUSTERING,
TopicConstants.PROJECT_CHANGED,
"*",
new OpenDataProjectChangeEventListener());
// ...其他监听器类似
}

19
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataPatrolChangeEventListener.java

@ -9,6 +9,7 @@ import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.constant.SystemMessageType;
import com.epmet.opendata.dto.form.UpsertPatrolRecordForm;
import com.epmet.opendata.service.UserPatrolRecordService;
import lombok.extern.slf4j.Slf4j;
@ -75,9 +76,20 @@ public class OpenDataPatrolChangeEventListener implements MessageListenerConcurr
UpsertPatrolRecordForm patrolRecordForm = new UpsertPatrolRecordForm();
patrolRecordForm.setCustomerId(msgObj.getCustomerId());
patrolRecordForm.setPatrolId(msgObj.getPatrolId());
patrolRecordForm.setActionType(msgObj.getActionType());
patrolRecordForm.setActionType(tags);
Boolean aBoolean = false;
switch (tags) {
case SystemMessageType.USER_PATROL_START:
aBoolean = SpringContextUtils.getBean(UserPatrolRecordService.class).insertPatrolRecord(patrolRecordForm);
break;
case SystemMessageType.USER_PATROL_STOP:
aBoolean = SpringContextUtils.getBean(UserPatrolRecordService.class).updatePatrolRecord(patrolRecordForm);
break;
default:
log.error("错误的消息类型:{}", tags);
}
Boolean aBoolean = SpringContextUtils.getBean(UserPatrolRecordService.class).upsertPatrolRecord(patrolRecordForm);
} catch (RenException e) {
// 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试
logger.error("【开放数据事件监听器】-巡查记录信息变更-失败:".concat(ExceptionUtils.getErrorStackTrace(e)));
@ -99,10 +111,9 @@ public class OpenDataPatrolChangeEventListener implements MessageListenerConcurr
}
/**
* @description
*
* @param pendingMsgLabel
* @return
* @description
* @author wxz
* @date 2021.10.14 16:32:32
*/

108
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataProjectChangeEventListener.java

@ -0,0 +1,108 @@
package com.epmet.opendata.mq.listener;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.rocketmq.constants.MQUserPropertys;
import com.epmet.commons.tools.distributedlock.DistributedLock;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.dto.basereport.form.EventInfoFormDTO;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.opendata.service.BaseDisputeProcessService;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import org.apache.rocketmq.common.message.MessageExt;
import org.redisson.api.RLock;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
* @author wxz
* @Description 系统对接中间库项目信息变更监听器
* @date 2021.10.13 15:21:48
*/
public class OpenDataProjectChangeEventListener implements MessageListenerConcurrently {
private Logger logger = LoggerFactory.getLogger(getClass());
private EpmetMessageOpenFeignClient messageOpenFeignClient;
private RedisUtils redisUtils;
@Override
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
if (redisUtils == null) {
redisUtils = SpringContextUtils.getBean(RedisUtils.class);
}
try {
msgs.forEach(msg -> consumeMessage(msg));
} catch (Exception e) {
logger.error(ExceptionUtils.getErrorStackTrace(e));
return ConsumeConcurrentlyStatus.RECONSUME_LATER;
}
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
}
private void consumeMessage(MessageExt messageExt) {
// msg即为消息体
// tags为SystemMessageType.java中的项,为具体的操作,此处拿到tags,判断是创建还是变更,来做响应的后续操作即可
String msg = new String(messageExt.getBody());
String topic = messageExt.getTopic();
String tags = messageExt.getTags();
String pendingMsgLabel = messageExt.getUserProperty(MQUserPropertys.PENDING_MSG_LABEL);
//messageExt.propert
logger.info("【开放数据事件监听器】-项目信息变更-收到消息内容:{}, 操作:{}, pendingMsgLabel:{}", msg, tags, pendingMsgLabel);
EventInfoFormDTO obj = JSON.parseObject(msg, EventInfoFormDTO.class);
DistributedLock distributedLock = null;
RLock lock = null;
try {
distributedLock = SpringContextUtils.getBean(DistributedLock.class);
lock = distributedLock.getLock(String.format("lock:open_data_project:%s", obj.getProjectId()),
30L, 30L, TimeUnit.SECONDS);
SpringContextUtils.getBean(BaseDisputeProcessService.class).getEventinfo(obj);
} catch (RenException e) {
// 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试
logger.error("【开放数据事件监听器】-项目信息变更-上报项目信息失败:".concat(ExceptionUtils.getErrorStackTrace(e)));
} catch (Exception e) {
// 不是我们自己抛出的异常,可以让MQ重试
logger.error("【开放数据事件监听器】-项目信息变更-上报项目信息失败:".concat(ExceptionUtils.getErrorStackTrace(e)));
throw e;
} finally {
distributedLock.unLock(lock);
}
if (StringUtils.isNotBlank(pendingMsgLabel)) {
try {
removePendingMqMsgCache(pendingMsgLabel);
} catch (Exception e) {
logger.error("【开放数据事件监听器】-project-删除mq滞留消息缓存失败:{}", ExceptionUtils.getErrorStackTrace(e));
}
}
}
/**
* @description
*
* @param pendingMsgLabel
* @return
* @description 应答mq消息
* @author wxz
* @date 2021.10.14 16:32:32
*/
private void removePendingMqMsgCache(String pendingMsgLabel) {
String key = RedisKeys.pendingMqMsgKey(pendingMsgLabel);
redisUtils.delete(key);
}
}

40
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/BaseDisputeProcessService.java

@ -0,0 +1,40 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.opendata.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.dto.basereport.form.EventInfoFormDTO;
import com.epmet.opendata.entity.BaseDisputeProcessEntity;
/**
* 事件信息表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-15
*/
public interface BaseDisputeProcessService extends BaseService<BaseDisputeProcessEntity> {
/**
* 获取上报事件
* @Param formDTO
* @Return
* @Author zhaoqifeng
* @Date 2021/10/15 16:59
*/
void getEventinfo(EventInfoFormDTO formDTO);
}

11
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/UserPatrolRecordService.java

@ -30,9 +30,16 @@ import com.epmet.opendata.entity.UserPatrolRecordEntity;
public interface UserPatrolRecordService extends BaseService<UserPatrolRecordEntity> {
/**
* desc根据条件更新或者插入巡查记录
* desc根据条件插入巡查记录
* @param patrolRecordForm
* @return
*/
Boolean upsertPatrolRecord(UpsertPatrolRecordForm patrolRecordForm);
Boolean insertPatrolRecord(UpsertPatrolRecordForm patrolRecordForm);
/**
* desc根据条件更新巡查记录及轨迹
* @param patrolRecordForm
* @return
*/
Boolean updatePatrolRecord(UpsertPatrolRecordForm patrolRecordForm);
}

74
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseDisputeProcessServiceImpl.java

@ -0,0 +1,74 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.opendata.service.impl;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.basereport.form.EventInfoFormDTO;
import com.epmet.feign.DataStatisticalOpenFeignClient;
import com.epmet.opendata.dao.BaseDisputeProcessDao;
import com.epmet.opendata.dto.BaseDisputeProcessDTO;
import com.epmet.opendata.entity.BaseDisputeProcessEntity;
import com.epmet.opendata.service.BaseDisputeProcessService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* 事件信息表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-15
*/
@Service
public class BaseDisputeProcessServiceImpl extends BaseServiceImpl<BaseDisputeProcessDao, BaseDisputeProcessEntity> implements BaseDisputeProcessService {
@Resource
private DataStatisticalOpenFeignClient dataStatisticalOpenFeignClient;
/**
* 获取上报事件
*
* @param formDTO
* @Param formDTO
* @Return
* @Author zhaoqifeng
* @Date 2021/10/15 16:59
*/
@Override
public void getEventinfo(EventInfoFormDTO formDTO) {
Result<List<BaseDisputeProcessDTO>> result = dataStatisticalOpenFeignClient.getEventInfo(formDTO);
if (!result.success()) {
throw new RenException(result.getInternalMsg());
}
List<BaseDisputeProcessDTO> list = result.getData();
if (CollectionUtils.isNotEmpty(list)) {
List<BaseDisputeProcessEntity> entityList = ConvertUtils.sourceToTarget(list, BaseDisputeProcessEntity.class);
if("add".equals(formDTO.getType())){
insertBatch(entityList);
}else {
updateBatchById(entityList);
}
}
}
}

84
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/UserPatrolRecordServiceImpl.java

@ -18,12 +18,12 @@
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.constant.SystemMessageType;
import com.epmet.dto.user.param.MidPatrolFormDTO;
import com.epmet.dto.user.result.MidPatrolDetailResult;
import com.epmet.dto.user.result.MidPatrolRecordResult;
@ -59,48 +59,78 @@ public class UserPatrolRecordServiceImpl extends BaseServiceImpl<UserPatrolRecor
private UserPatrolDetailDao userPatrolDetailDao;
@Override
public Boolean upsertPatrolRecord(UpsertPatrolRecordForm patrolRecordForm) {
log.info("upsertPatrolRecord param:{}",JSON.toJSONString(patrolRecordForm));
public Boolean insertPatrolRecord(UpsertPatrolRecordForm patrolRecordForm) {
log.info("upsertPatrolRecord param:{}", JSON.toJSONString(patrolRecordForm));
ValidatorUtils.validateEntity(patrolRecordForm);
boolean delFlag = false;
MidPatrolFormDTO midPatrolFormDTO = buildParam(patrolRecordForm);
Result<List<MidPatrolRecordResult>> record = dataStatisticalOpenFeignClient.getPatrolRecordList(midPatrolFormDTO);
if (record == null || !record.success()){
if (record == null || !record.success()) {
log.error("获取巡查记录失败,param:{}", JSON.toJSONString(midPatrolFormDTO));
return false;
}
List<MidPatrolRecordResult> data = record.getData();
if (CollectionUtils.isEmpty(data)){
if (CollectionUtils.isEmpty(data)) {
//数据已被删除了
delFlag = true;
//暂时设置error 用于排错
log.error("获取巡查记录返回为空,param:{}", JSON.toJSONString(midPatrolFormDTO));
int effectRow = baseDao.deleteById(patrolRecordForm.getPatrolId());
log.warn("del effectRow:{}",effectRow);
log.warn("del effectRow:{}", effectRow);
return true;
}
MidPatrolRecordResult recordResult = data.get(NumConstant.ZERO);
switch (patrolRecordForm.getActionType()){
case SystemMessageType.USER_PATROL_START:
//insert
baseDao.insert(buildEntity(recordResult));
break;
case SystemMessageType.USER_PATROL_STOP:
//update
baseDao.updateById(buildEntity(recordResult));
Result<List<MidPatrolDetailResult>> detailResult = dataStatisticalOpenFeignClient.getPatrolDetailList(midPatrolFormDTO);
if (detailResult == null || !detailResult.success()){
log.error("获取巡查记录明细失败,param:{}", JSON.toJSONString(midPatrolFormDTO));
return false;
}
UserPatrolDetailEntity detailEntity = buildDetailEntity(recordResult, detailResult);
UserPatrolRecordEntity recordEntity = buildEntity(recordResult);
userPatrolDetailDao.insert(detailEntity);
break;
default:
log.info("======");
//insert
baseDao.insert(recordEntity);
return true;
}
@Override
public Boolean updatePatrolRecord(UpsertPatrolRecordForm patrolRecordForm) {
log.info("updatePatrolRecord param:{}", JSON.toJSONString(patrolRecordForm));
ValidatorUtils.validateEntity(patrolRecordForm);
boolean delFlag = false;
MidPatrolFormDTO midPatrolFormDTO = buildParam(patrolRecordForm);
Result<List<MidPatrolRecordResult>> record = dataStatisticalOpenFeignClient.getPatrolRecordList(midPatrolFormDTO);
if (record == null || !record.success()) {
log.error("获取巡查记录失败,param:{}", JSON.toJSONString(midPatrolFormDTO));
return false;
}
List<MidPatrolRecordResult> data = record.getData();
if (CollectionUtils.isEmpty(data)) {
//数据已被删除了
delFlag = true;
//暂时设置error 用于排错
log.error("获取巡查记录返回为空,param:{}", JSON.toJSONString(midPatrolFormDTO));
int effectRow = baseDao.deleteById(patrolRecordForm.getPatrolId());
log.warn("del effectRow:{}", effectRow);
return true;
}
MidPatrolRecordResult recordResult = data.get(NumConstant.ZERO);
UserPatrolRecordEntity recordEntity = buildEntity(recordResult);
//update
int effectRow = baseDao.updateById(recordEntity);
if (effectRow == 0) {
baseDao.insert(recordEntity);
}
midPatrolFormDTO.setPage(false);
//todo 过滤掉巡查结束时间之后的轨迹
Result<List<MidPatrolDetailResult>> detailResult = dataStatisticalOpenFeignClient.getPatrolDetailList(midPatrolFormDTO);
if (detailResult == null || !detailResult.success()) {
log.error("获取巡查记录明细失败,param:{}", JSON.toJSONString(midPatrolFormDTO));
return false;
}
UserPatrolDetailEntity detailEntity = buildDetailEntity(recordResult, detailResult);
//先删除再新增
LambdaQueryWrapper<UserPatrolDetailEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(UserPatrolDetailEntity::getStaffPatrolRecId, recordEntity.getId());
userPatrolDetailDao.delete(wrapper);
int insert = userPatrolDetailDao.insert(detailEntity);
return true;
}
@ -109,8 +139,8 @@ public class UserPatrolRecordServiceImpl extends BaseServiceImpl<UserPatrolRecor
UserPatrolDetailEntity detailEntity = new UserPatrolDetailEntity();
detailEntity.setCustomerId(recordResult.getCustomerId());
detailEntity.setStaffPatrolRecId(recordResult.getId());
StringBuilder sb =new StringBuilder();
detailResult.getData().forEach(o->{
StringBuilder sb = new StringBuilder();
detailResult.getData().forEach(o -> {
sb.append(o.getLongitude())
.append(StrConstant.COMMA)
.append(o.getLatitude())
@ -157,7 +187,7 @@ public class UserPatrolRecordServiceImpl extends BaseServiceImpl<UserPatrolRecor
MidPatrolFormDTO midPatrolFormDTO = new MidPatrolFormDTO();
midPatrolFormDTO.setCustomerId(patrolRecordForm.getCustomerId());
midPatrolFormDTO.setPatrolId(patrolRecordForm.getPatrolId());
midPatrolFormDTO.setPageNo(0);
midPatrolFormDTO.setPageNo(1);
midPatrolFormDTO.setPageSize(1);
return midPatrolFormDTO;
}

42
epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/BaseDisputeProcessDao.xml

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.opendata.dao.BaseDisputeProcessDao">
<resultMap type="com.epmet.opendata.entity.BaseDisputeProcessEntity" id="baseDisputeProcessMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="orgCode" column="ORG_CODE"/>
<result property="orgName" column="ORG_NAME"/>
<result property="eventName" column="EVENT_NAME"/>
<result property="eventCategory" column="EVENT_CATEGORY"/>
<result property="reportTime" column="REPORT_TIME"/>
<result property="happenDate" column="HAPPEN_DATE"/>
<result property="happenPlace" column="HAPPEN_PLACE"/>
<result property="eventDescription" column="EVENT_DESCRIPTION"/>
<result property="waysOfResolving" column="WAYS_OF_RESOLVING"/>
<result property="successfulOrNo" column="SUCCESSFUL_OR_NO"/>
<result property="completeLevel" column="COMPLETE_LEVEL"/>
<result property="baseInfoId" column="BASE_INFO_ID"/>
<result property="completeTime" column="COMPLETE_TIME"/>
<result property="lng" column="LNG"/>
<result property="lat" column="LAT"/>
<result property="name" column="NAME"/>
<result property="numberInvolved" column="NUMBER_INVOLVED"/>
<result property="relatedUnits" column="RELATED_UNITS"/>
<result property="keyAreaType" column="KEY_AREA_TYPE"/>
<result property="religionScale" column="RELIGION_SCALE"/>
<result property="religionType" column="RELIGION_TYPE"/>
<result property="isKeyareaState" column="IS_KEYAREA_STATE"/>
<result property="isKeypeopleLocate" column="IS_KEYPEOPLE_LOCATE"/>
<result property="keypeopleStatus" column="KEYPEOPLE_STATUS"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
</mapper>

7
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java

@ -281,16 +281,15 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl<StaffPatrolRec
}
private void sendPatrolMsg(StaffPatrolRecordEntity record, String userPatrolStop) {
private void sendPatrolMsg(StaffPatrolRecordEntity record, String messageType) {
//发送巡查消息
StaffPatrolMQMsg staffPatrolMQMsg = new StaffPatrolMQMsg();
staffPatrolMQMsg.setCustomerId(record.getCustomerId());
staffPatrolMQMsg.setPatrolId(record.getId());
staffPatrolMQMsg.setActionType(userPatrolStop);
boolean b = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendPatrolMqMsg(staffPatrolMQMsg);
boolean b = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendPatrolMqMsg(staffPatrolMQMsg,messageType);
if (!b) {
log.error( "发送{}巡查消息到mq失败,patrolId:{}", userPatrolStop, record.getId());
log.error( "发送{}巡查消息到mq失败,patrolId:{}", messageType, record.getId());
}
}

Loading…
Cancel
Save