Browse Source

Merge remote-tracking branch 'remotes/origin/develop' into release_temp

master
jianjun 4 years ago
parent
commit
898a4cd7be
  1. 11
      epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/constants/ConsomerGroupConstants.java
  2. 10
      epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/constants/TopicConstants.java
  3. 28
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/MidBaseFormDTO.java
  4. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/PageFormDTO.java
  5. 4
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/param/MidPatrolFormDTO.java
  6. 12
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml
  7. 23
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/UserDemandRelFormDTO.java
  8. 18
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/UserDemandRelResDTO.java
  9. 3
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/constant/UserDemandConstant.java
  10. 14
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiDemandController.java
  11. 8
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java
  12. 22
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActLiveRecServiceImpl.java
  13. 21
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java
  14. 18
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/VolunteerInfoServiceImpl.java
  15. 46
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActServiceImpl.java
  16. 44
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SystemMessageType.java
  17. 4
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/SystemMsgFormDTO.java
  18. 32
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SystemMessageServiceImpl.java
  19. 16
      epmet-module/epmet-point/epmet-point-server/pom.xml
  20. 27
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/mq/RocketMQConsumerRegister.java
  21. 236
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/mq/listener/PointListener.java
  22. 4
      epmet-module/epmet-point/epmet-point-server/src/main/resources/bootstrap.yml
  23. 12
      epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/UpsertPatrolRecordForm.java
  24. 58
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/BaseGridDailyworkController.java
  25. 14
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/InitDataController.java
  26. 2
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/UserPatrolRecordController.java
  27. 34
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/BaseGridDailyworkDao.java
  28. 155
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseGridDailyworkEntity.java
  29. 2
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/UserPatrolRecordEntity.java
  30. 19
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/mq/listener/OpenDataPatrolChangeEventListener.java
  31. 46
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/BaseGridDailyworkService.java
  32. 4
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/ExDeptService.java
  33. 4
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/ExUserService.java
  34. 10
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/UserPatrolDetailService.java
  35. 2
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseDisputeProcessServiceImpl.java
  36. 180
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/BaseGridDailyworkServiceImpl.java
  37. 15
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/ExDeptServiceImpl.java
  38. 16
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/ExUserServiceImpl.java
  39. 12
      epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/impl/UserPatrolRecordServiceImpl.java
  40. 35
      epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/BaseGridDailyworkDao.xml
  41. 2
      epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/UserPatrolRecordDao.xml
  42. 31
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/GroupMemeberOperationServiceImpl.java
  43. 23
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java
  44. 27
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicCommentServiceImpl.java
  45. 97
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
  46. 18
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/TopicDraftServiceImpl.java
  47. 29
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/patrol/PatrolQueryFormDTO.java
  48. 78
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PatrolRoutineWorkResult.java
  49. 9
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java
  50. 6
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java
  51. 23
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/PatrolRoutineWorkController.java
  52. 9
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/PatrolRoutineWorkDao.java
  53. 10
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/PatrolRoutineWorkService.java
  54. 14
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java
  55. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java
  56. 17
      epmet-user/epmet-user-server/src/main/resources/mapper/PatrolRoutineWorkDao.xml

11
epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/constants/ConsomerGroupConstants.java

@ -41,10 +41,19 @@ public interface ConsomerGroupConstants {
*/
String PROJECT_OPERATION_LOG_GROUP = "project_operation_log_group";
/**
* 积分操作消费组
* 积分操作日志消费组
*/
String POINT_OPERATION_LOG_GROUP = "point_operation_log_group";
/**
* 爱心互助积分操作消费组
*/
String EPMET_HEART_POINT_OPERATION_GROUP = "epmet_heart_point_operation_group";
/**
* 楼院小组积分操作消费组
*/
String RESI_GROUP_POINT_OPERATION_GROUP = "resi_group_point_operation_group";
/**
* 开放的对接数据(中间库) 组织变更事件监听器分组
*/

10
epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/constants/TopicConstants.java

@ -58,4 +58,14 @@ public interface TopicConstants {
* 需求完成如果服务方是区域化党建单位重新计算这个单位的满意度
*/
String CAL_PARTY_UNIT_SATISFACTION = "cal_party_unit_satisfaction";
/**
* 爱心互助
*/
String EPMET_HEART = "epmet_heart";
/**
* 楼院小组
*/
String RESI_GROUP = "resi_group";
}

28
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/MidBaseFormDTO.java

@ -0,0 +1,28 @@
package com.epmet.commons.tools.dto.form;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* desc:查询巡查 参数
*
* @author zhaoqifeng
* @dscription
* @date 2021/6/7 16:23
*/
@NoArgsConstructor
@Data
public class MidBaseFormDTO extends PageFormDTO implements Serializable {
private static final long serialVersionUID = 7585836892408288392L;
/**
* 客户Id
*/
private String customerId;
/**
* 对象id 没有则查询全部
*/
private String objectId;
}

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

@ -30,6 +30,8 @@ public class PageFormDTO {
*/
private Integer offset;
private boolean isPage = true;
public Integer getOffset() {
return (pageNo-1)*pageSize;
}

4
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/user/param/MidPatrolFormDTO.java

@ -22,8 +22,8 @@ public class MidPatrolFormDTO extends PageFormDTO implements Serializable {
*/
private String customerId;
/**
* 巡查记录id 没有则查询全部
* 对象id 没有则查询全部
*/
private String patrolId;
private String objectId;
}

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

@ -1029,8 +1029,8 @@
LEFT JOIN staff_patrol_detail d ON m.ID = d.STAFF_PATROL_REC_ID
WHERE
1 =1
<if test="patrolId != null and patrolId != ''">
AND m.ID = #{patrolId}
<if test="objectId != null and objectId != ''">
AND m.ID = #{objectId}
</if>
and m.CUSTOMER_ID = #{customerId}
AND m.DEL_FLAG = '0'
@ -1044,22 +1044,22 @@
from staff_patrol_detail
WHERE
1=1
<if test="patrolId != null and patrolId != ''">
AND staff_patrol_rec_id = #{patrolId}
<if test="objectId != null and objectId != ''">
AND staff_patrol_rec_id = #{objectId}
</if>
and CUSTOMER_ID = #{customerId}
AND DEL_FLAG = '0'
order by created_time
LIMIT #{offset},#{pageSize}
</select>
<!-- 从UserId列表中过滤符合条件的UserId列表出来 -->
<select id="filterUserIds" resultType="java.lang.String">
select distinct ur.USER_ID
from user_role ur
inner join epmet_role er on (ur.ROLE_ID = er.ID)
where ur.DEL_FLAG = 0
and ur.USER_ID in
and ur.USER_ID in
<foreach collection="userIds" open="(" item="userId" separator="," close=")">
#{userId}
</foreach>

23
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/demand/UserDemandRelFormDTO.java

@ -0,0 +1,23 @@
package com.epmet.dto.form.demand;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 当前用户与需求消息的关系
*/
@Data
public class UserDemandRelFormDTO implements Serializable {
private static final long serialVersionUID = 948510931204329428L;
public interface AddInternalGroup {
}
@NotBlank(message = "需求id不能为空",groups = AddInternalGroup.class)
private String demandRecId;
@NotBlank(message = "userId不能为空",groups = AddInternalGroup.class)
private String userId;
}

18
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/UserDemandRelResDTO.java

@ -0,0 +1,18 @@
package com.epmet.dto.result.demand;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.io.Serializable;
/**
* 当前用户与需求消息的关系
*/
@AllArgsConstructor
@Data
public class UserDemandRelResDTO implements Serializable {
private static final long serialVersionUID = -9007483306143283653L;
// 需求发布人:publisher ;服务人:server
private String identity;
}

3
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/constant/UserDemandConstant.java

@ -73,4 +73,7 @@ public interface UserDemandConstant {
*/
String DEMAND_EVALUATED=" 您收到来自%s的评价,请查看。";
String DEMAND_CANCELED=" %s的需求已取消,请查看。";
String DEMAND_PUBLISHER="publisher";
String DEMAND_SERVER="server";
}

14
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiDemandController.java

@ -202,4 +202,18 @@ public class ResiDemandController {
return new Result<DemandRecId>().ok(icUserDemandRecService.saveOrUpdateDemand(formDTO));
}
/**
* 当前用户与需求消息的关系
* 需求发布人publisher 服务人server
*
* @param tokenDto
* @param formDTO
* @return
*/
@PostMapping("user-demand-rel")
public Result<UserDemandRelResDTO> queryUserDemandRel(@LoginUser TokenDto tokenDto, @RequestBody UserDemandRelFormDTO formDTO) {
formDTO.setUserId(tokenDto.getUserId());
ValidatorUtils.validateEntity(formDTO, UserDemandRelFormDTO.AddInternalGroup.class);
return new Result<UserDemandRelResDTO>().ok(icUserDemandRecService.queryUserDemandRel(formDTO));
}
}

8
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java

@ -204,4 +204,12 @@ public interface IcUserDemandRecService extends BaseService<IcUserDemandRecEntit
* @return
*/
DemandRecId saveOrUpdateDemand(ReportDemandFormDTO formDTO);
/**
* 当前用户与需求消息的关系 需求发布人publisher 服务人server
*
* @param formDTO
* @return
*/
UserDemandRelResDTO queryUserDemandRel(UserDemandRelFormDTO formDTO);
}

22
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActLiveRecServiceImpl.java

@ -36,16 +36,19 @@ import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.ScanContentUtils;
import com.epmet.commons.tools.utils.SendMqMsgUtils;
import com.epmet.constant.SystemMessageType;
import com.epmet.dao.ActLivePicDao;
import com.epmet.dao.ActLiveRecDao;
import com.epmet.dto.ActInfoDTO;
import com.epmet.dto.ActLivePicDTO;
import com.epmet.dto.ActLiveRecDTO;
import com.epmet.dto.form.SystemMsgFormDTO;
import com.epmet.dto.form.resi.ResiActInsertLiveFormDTO;
import com.epmet.dto.result.UserBaseInfoResultDTO;
import com.epmet.dto.result.resi.ResiActLiveRecResultDTO;
import com.epmet.entity.ActLivePicEntity;
import com.epmet.entity.ActLiveRecEntity;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.redis.ActLiveRecRedis;
import com.epmet.service.ActInfoService;
@ -80,6 +83,9 @@ public class ActLiveRecServiceImpl extends BaseServiceImpl<ActLiveRecDao, ActLiv
@Autowired
private ActInfoService actInfoService;
@Autowired
private EpmetMessageOpenFeignClient messageOpenFeignClient;
@Value("${openapi.scan.server.url}")
private String scanApiUrl;
@ -226,11 +232,11 @@ public class ActLiveRecServiceImpl extends BaseServiceImpl<ActLiveRecDao, ActLiv
// 查询 活动信息
ActInfoDTO actInfoDTO = actInfoService.get(formDTO.getActId());
MqBaseMsgDTO mqBaseMsgDTO=new MqBaseMsgDTO();
//MqBaseMsgDTO mqBaseMsgDTO=new MqBaseMsgDTO();
//mq的事件类型
mqBaseMsgDTO.setEventClass(EventEnum.ACTIVE_INSERT_LIVE.getEventClass());
//mqBaseMsgDTO.setEventClass(EventEnum.ACTIVE_INSERT_LIVE.getEventClass());
//事件code
mqBaseMsgDTO.setEventTag(EventEnum.ACTIVE_INSERT_LIVE.getEventTag());
//mqBaseMsgDTO.setEventTag(EventEnum.ACTIVE_INSERT_LIVE.getEventTag());
List<BasePointEventMsg> actPointEventMsgList=new ArrayList<>();
BasePointEventMsg actPointEventMsg=new BasePointEventMsg();
actPointEventMsg.setCustomerId(formDTO.getCustomerId());
@ -242,8 +248,14 @@ public class ActLiveRecServiceImpl extends BaseServiceImpl<ActLiveRecDao, ActLiv
actPointEventMsg.setSourceId(formDTO.getActId());
actPointEventMsgList.add(actPointEventMsg);
mqBaseMsgDTO.setMsg(JSON.toJSONString(actPointEventMsgList));
Result result= SendMqMsgUtils.sendMsg(mqBaseMsgDTO);
//mqBaseMsgDTO.setMsg(JSON.toJSONString(actPointEventMsgList));
//Result result= SendMqMsgUtils.sendMsg(mqBaseMsgDTO);
SystemMsgFormDTO msgForm = new SystemMsgFormDTO();
msgForm.setMessageType(SystemMessageType.ACTIVE_INSERT_LIVE);
msgForm.setContent(actPointEventMsgList);
Result result = messageOpenFeignClient.sendSystemMsgByMQ(msgForm);
if(!result.success()){
logger.error("添加活动实况,事件发送失败");
}

21
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java

@ -1486,5 +1486,26 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl<IcUserDemandRecD
messageOpenFeignClient.saveUserMessage(userMessage);
}
}
/**
* 当前用户与需求消息的关系 需求发布人publisher 服务人server
*
* @param formDTO
* @return
*/
@Override
public UserDemandRelResDTO queryUserDemandRel(UserDemandRelFormDTO formDTO) {
UserDemandRelResDTO res = new UserDemandRelResDTO("");
IcUserDemandRecEntity origin = baseDao.selectById(formDTO.getDemandRecId());
if (null != origin && formDTO.getUserId().equals(origin.getDemandUserId())) {
res.setIdentity(UserDemandConstant.DEMAND_PUBLISHER);
return res;
}
IcUserDemandServiceEntity serviceEntity = demandServiceDao.selectByRecId(formDTO.getDemandRecId());
if (null != serviceEntity && formDTO.getUserId().equals(serviceEntity.getServerId())) {
res.setIdentity(UserDemandConstant.DEMAND_SERVER);
}
return res;
}
}

18
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/VolunteerInfoServiceImpl.java

@ -40,6 +40,7 @@ import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.SendMqMsgUtils;
import com.epmet.constant.SmsTemplateConstant;
import com.epmet.constant.SystemMessageType;
import com.epmet.dao.VolunteerInfoDao;
import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.dto.CustomerGridDTO;
@ -49,6 +50,7 @@ import com.epmet.dto.form.CommonCustomerFormDTO;
import com.epmet.dto.form.CustomerGridFormDTO;
import com.epmet.dto.form.SendVerificationCodeFormDTO;
import com.epmet.dto.form.VolunteerRegResiFormDTO;
import com.epmet.dto.form.SystemMsgFormDTO;
import com.epmet.dto.form.resi.ResiSendSmsCodeFormDTO;
import com.epmet.dto.form.resi.ResiVolunteerAuthenticateFormDTO;
import com.epmet.dto.result.ResiUserBaseInfoResultDTO;
@ -198,11 +200,11 @@ public class VolunteerInfoServiceImpl extends BaseServiceImpl<VolunteerInfoDao,
}
private void grantActPoints(ResiVolunteerAuthenticateFormDTO formDTO){
MqBaseMsgDTO mqBaseMsgDTO=new MqBaseMsgDTO();
//MqBaseMsgDTO mqBaseMsgDTO=new MqBaseMsgDTO();
//mq的事件类型
mqBaseMsgDTO.setEventClass(EventEnum.REGISTER_VOLUNTEER.getEventClass());
//mqBaseMsgDTO.setEventClass(EventEnum.REGISTER_VOLUNTEER.getEventClass());
//事件code
mqBaseMsgDTO.setEventTag(EventEnum.REGISTER_VOLUNTEER.getEventTag());
//mqBaseMsgDTO.setEventTag(EventEnum.REGISTER_VOLUNTEER.getEventTag());
List<BasePointEventMsg> actPointEventMsgList=new ArrayList<>();
BasePointEventMsg actPointEventMsg=new BasePointEventMsg();
actPointEventMsg.setCustomerId(formDTO.getCustomerId());
@ -213,8 +215,14 @@ public class VolunteerInfoServiceImpl extends BaseServiceImpl<VolunteerInfoDao,
actPointEventMsg.setIsCommon(false);
actPointEventMsgList.add(actPointEventMsg);
mqBaseMsgDTO.setMsg(JSON.toJSONString(actPointEventMsgList));
Result result= SendMqMsgUtils.sendMsg(mqBaseMsgDTO);
//mqBaseMsgDTO.setMsg(JSON.toJSONString(actPointEventMsgList));
//Result result= SendMqMsgUtils.sendMsg(mqBaseMsgDTO);
SystemMsgFormDTO msgForm = new SystemMsgFormDTO();
msgForm.setMessageType(SystemMessageType.REGISTER_VOLUNTEER);
msgForm.setContent(actPointEventMsgList);
Result result = epmetMessageOpenFeignClient.sendSystemMsgByMQ(msgForm);
if(!result.success()){
logger.error("志愿者认证事件发送失败");
}

46
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActServiceImpl.java

@ -18,12 +18,10 @@ import com.epmet.commons.tools.scan.param.TextTaskDTO;
import com.epmet.commons.tools.scan.result.SyncScanResult;
import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.*;
import com.epmet.constant.ActConstant;
import com.epmet.constant.ActMessageConstant;
import com.epmet.constant.ReadFlagConstant;
import com.epmet.constant.UserMessageTypeConstant;
import com.epmet.constant.*;
import com.epmet.dao.*;
import com.epmet.dto.*;
import com.epmet.dto.form.SystemMsgFormDTO;
import com.epmet.dto.form.UserMessageFormDTO;
import com.epmet.dto.form.WxSubscribeMessageFormDTO;
import com.epmet.dto.form.work.*;
@ -917,11 +915,11 @@ public class WorkActServiceImpl implements WorkActService {
String opAgencyId=userResult.getData().getId();
//备注
String remark=String.format(ActMessageConstant.ACT_POINTS_EVENT_REMARK,actInfoDTO.getTitle());
MqBaseMsgDTO mqBaseMsgDTO=new MqBaseMsgDTO();
//MqBaseMsgDTO mqBaseMsgDTO=new MqBaseMsgDTO();
//mq的事件类型
mqBaseMsgDTO.setEventClass(EventEnum.ACTIVE_SEND_POINT.getEventClass());
//mqBaseMsgDTO.setEventClass(EventEnum.ACTIVE_SEND_POINT.getEventClass());
//事件code
mqBaseMsgDTO.setEventTag(EventEnum.ACTIVE_SEND_POINT.getEventTag());
//mqBaseMsgDTO.setEventTag(EventEnum.ACTIVE_SEND_POINT.getEventTag());
List<BasePointEventMsg> basePointEventMsgArrayList=new ArrayList<>();
for(ActUserRelationEntity actUserRelationEntity:actUserRelationEntityList){
BasePointEventMsg basePointEventMsg=new BasePointEventMsg();
@ -937,15 +935,22 @@ public class WorkActServiceImpl implements WorkActService {
basePointEventMsg.setOperatorId(loginUserUtil.getLoginUserId());
basePointEventMsgArrayList.add(basePointEventMsg);
}
mqBaseMsgDTO.setMsg(JSON.toJSONString(basePointEventMsgArrayList));
Result result=SendMqMsgUtils.sendMsg(mqBaseMsgDTO);
//mqBaseMsgDTO.setMsg(JSON.toJSONString(basePointEventMsgArrayList));
//Result result=SendMqMsgUtils.sendMsg(mqBaseMsgDTO);
SystemMsgFormDTO systemMsgFormDTO = new SystemMsgFormDTO();
systemMsgFormDTO.setMessageType(SystemMessageType.ACTIVE_SEND_POINT);
systemMsgFormDTO.setContent(basePointEventMsgArrayList);
Result result = epmetMessageOpenFeignClient.sendSystemMsgByMQ(systemMsgFormDTO);
ActGrantPointLogEntity actGrantPointLogEntity=new ActGrantPointLogEntity();
actGrantPointLogEntity.setActId(actInfoDTO.getId());
actGrantPointLogEntity.setCustomerId(actInfoDTO.getCustomerId());
actGrantPointLogEntity.setOperatorId(loginUserUtil.getLoginUserId());
actGrantPointLogEntity.setRemark(remark);
actGrantPointLogEntity.setReward(actInfoDTO.getReward());
actGrantPointLogEntity.setSendMsg(JSON.toJSONString(mqBaseMsgDTO));
actGrantPointLogEntity.setSendMsg(JSON.toJSONString(systemMsgFormDTO));
actGrantPointLogEntity.setResponseMsg(JSON.toJSONString(result));
actGrantPointLogDao.insert(actGrantPointLogEntity);
if(!result.success()){
@ -958,11 +963,11 @@ public class WorkActServiceImpl implements WorkActService {
//查询当前用户所属组织信息
Result<CustomerAgencyDTO> userResult = govOrgOpenFeignClient.getAgencyByStaff(loginUserUtil.getLoginUserId());
String opAgencyId = userResult.getData().getId();
MqBaseMsgDTO mqBaseMsgDTO = new MqBaseMsgDTO();
//MqBaseMsgDTO mqBaseMsgDTO = new MqBaseMsgDTO();
//mq的事件类型
mqBaseMsgDTO.setEventClass(EventEnum.ACTIVE_SEND_POINT.getEventClass());
//mqBaseMsgDTO.setEventClass(EventEnum.ACTIVE_SEND_POINT.getEventClass());
//事件code
mqBaseMsgDTO.setEventTag(EventEnum.ACTIVE_SEND_POINT.getEventTag());
//mqBaseMsgDTO.setEventTag(EventEnum.ACTIVE_SEND_POINT.getEventTag());
List<BasePointEventMsg> basePointEventMsgArrayList = new ArrayList<>();
BasePointEventMsg basePointEventMsg = new BasePointEventMsg();
basePointEventMsg.setOpAgencyId(opAgencyId);
@ -976,9 +981,16 @@ public class WorkActServiceImpl implements WorkActService {
basePointEventMsg.setSourceId(formDTO.getSourceId());
basePointEventMsg.setOperatorId(loginUserUtil.getLoginUserId());
basePointEventMsgArrayList.add(basePointEventMsg);
mqBaseMsgDTO.setMsg(JSON.toJSONString(basePointEventMsgArrayList));
logger.info("发送消息入参:"+JSON.toJSON(mqBaseMsgDTO));
Result result = SendMqMsgUtils.sendMsg(mqBaseMsgDTO);
//mqBaseMsgDTO.setMsg(JSON.toJSONString(basePointEventMsgArrayList));
//logger.info("发送消息入参:"+JSON.toJSON(mqBaseMsgDTO));
//Result result = SendMqMsgUtils.sendMsg(mqBaseMsgDTO);
SystemMsgFormDTO msgForm = new SystemMsgFormDTO();
msgForm.setMessageType(SystemMessageType.ACTIVE_SEND_POINT);
msgForm.setContent(basePointEventMsgArrayList);
Result result = epmetMessageOpenFeignClient.sendSystemMsgByMQ(msgForm);
logger.info("发送消息返参:"+JSON.toJSON(result));
ActGrantPointLogEntity actGrantPointLogEntity=new ActGrantPointLogEntity();
actGrantPointLogEntity.setActId(formDTO.getSourceId());
@ -986,7 +998,7 @@ public class WorkActServiceImpl implements WorkActService {
actGrantPointLogEntity.setOperatorId(loginUserUtil.getLoginUserId());
actGrantPointLogEntity.setRemark(formDTO.getRemark());
actGrantPointLogEntity.setReward(formDTO.getReward());
actGrantPointLogEntity.setSendMsg(JSON.toJSONString(mqBaseMsgDTO));
actGrantPointLogEntity.setSendMsg(JSON.toJSONString(msgForm));
actGrantPointLogEntity.setResponseMsg(JSON.toJSONString(result));
actGrantPointLogDao.insert(actGrantPointLogEntity);
if (!result.success()) {

44
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SystemMessageType.java

@ -110,4 +110,48 @@ public interface SystemMessageType {
*/
String CAL_PARTY_UNIT_SATISFACTION = "cal_party_unit_satisfaction";
/**
* 活动发放积分
*/
String ACTIVE_SEND_POINT = "active_send_point";
/**
* 认证志愿者
*/
String REGISTER_VOLUNTEER = "register_volunteer";
/**
* 添加活动实况
*/
String ACTIVE_INSERT_LIVE = "active_insert_live";
/**
* 拉新用户入组
*/
String INVITE_NEW_INTO_GROUP = "invite_new_into_group";
/**
* 邀请已注册的用户入组
*/
String INVITE_RESI_INTO_GROUP = "invite_resi_into_group";
/**
* 发布话题
*/
String PUBLISH_ONE_TOPIC = "publish_one_topic";
/**
* 对小组内话题进行15字以上评论
*/
String PARTICIPATE_ONE_TOPIC = "participate_one_topic";
/**
* 话题被转为议题(小组中发布的话题被组长转为议题)
*/
String TOPIC_TO_ISSUE = "topic_to_issue";
/**
* 转话题为议题(将自建小组中话题转为议题)
*/
String SHIFT_TOPIC_TO_ISSUE = "shift_topic_to_issue";
/**
* 话题被转为项目
*/
String TOPIC_TO_PROJECT = "topic_to_project";
/**
* 组长解决组内话题
*/
String LEADER_RESOLVE_TOPIC = "leader_resolve_topic";
}

4
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/SystemMsgFormDTO.java

@ -19,6 +19,6 @@ public class SystemMsgFormDTO {
@NotNull(message = "消息内容不能为空", groups = { SendMsgByMQ.class })
private Object content;
@NotNull(message = "pendingMsgLabel不能为空", groups = { AckMsgByMQ.class })
private String pendingMsgLabel;
//@NotNull(message = "pendingMsgLabel不能为空", groups = { AckMsgByMQ.class })
//private String pendingMsgLabel;
}

32
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SystemMessageServiceImpl.java

@ -19,6 +19,8 @@ import com.epmet.service.SystemMessageService;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.remoting.common.RemotingHelper;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
@ -108,6 +110,10 @@ public class SystemMessageServiceImpl implements SystemMessageService {
private void sendMQMessage(String messageType, String contentStr, String penddingId) {
String topic = getTopicByMsgType(messageType);
if (StringUtils.isBlank(topic)){
logger.warn("topic is not match,messageType:{}", messageType);
return;
}
// 缓存下来,供滞留消息扫描。TTL -1,永不过期
String pendingMsgLabel = null;
@ -128,6 +134,14 @@ public class SystemMessageServiceImpl implements SystemMessageService {
meMessage.putUserProperty(MQUserPropertys.BLOCKED_MSG_LABEL, pendingMsgLabel);
rocketMQTemplate.getProducer().send(meMessage);
logger.info("【发送MQ系统消息】-发送到MQ成功");
} catch (MQClientException e) {
String errorStackTrace = ExceptionUtils.getErrorStackTrace(e);
logger.error("【发送MQ系统消息】发送系统MQ消息失败,MQ中间件异常请检查:{}", errorStackTrace);
// 清理阻塞中的消息缓存
redisUtils.delete(pendingMsgKey);
throw new RenException(EpmetErrorCode.SYSTEM_MQ_MSG_SEND_FAIL.getCode(),e.getErrorMessage());
} catch (Exception e) {
String errorStackTrace = ExceptionUtils.getErrorStackTrace(e);
logger.error("【发送MQ系统消息】发送系统MQ消息失败,堆栈信息:{}", errorStackTrace);
@ -182,6 +196,7 @@ public class SystemMessageServiceImpl implements SystemMessageService {
case SystemMessageType.USER_PATROL_START:
case SystemMessageType.USER_PATROL_STOP:
case SystemMessageType.PATROL_ROUTINE_WORK_ADD:
topic = TopicConstants.PATROL;
break;
case SystemMessageType.PROJECT_ADD:
@ -196,8 +211,23 @@ public class SystemMessageServiceImpl implements SystemMessageService {
case SystemMessageType.CAL_PARTY_UNIT_SATISFACTION:
topic=TopicConstants.CAL_PARTY_UNIT_SATISFACTION;
break;
case SystemMessageType.INVITE_NEW_INTO_GROUP:
case SystemMessageType.INVITE_RESI_INTO_GROUP:
case SystemMessageType.PUBLISH_ONE_TOPIC:
case SystemMessageType.PARTICIPATE_ONE_TOPIC:
case SystemMessageType.TOPIC_TO_ISSUE:
case SystemMessageType.SHIFT_TOPIC_TO_ISSUE:
case SystemMessageType.TOPIC_TO_PROJECT:
case SystemMessageType.LEADER_RESOLVE_TOPIC:
topic = TopicConstants.RESI_GROUP;
break;
case SystemMessageType.ACTIVE_SEND_POINT:
case SystemMessageType.REGISTER_VOLUNTEER:
case SystemMessageType.ACTIVE_INSERT_LIVE:
topic = TopicConstants.EPMET_HEART;
break;
default:
logger.info("getTopicByMsgType default topic:{}", msgType);
logger.error("getTopicByMsgType msgType:{} is not support for any topic", msgType);
}
return topic;
}

16
epmet-module/epmet-point/epmet-point-server/pom.xml

@ -167,6 +167,10 @@
<!--钉钉 机器人地址-->
<dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4</dingTalk.robot.webHook>
<dingTalk.robot.secret>SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd</dingTalk.robot.secret>
<!--rocketmq-->
<rocketmq.enable>true</rocketmq.enable>
<rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver>
</properties>
</profile>
<profile>
@ -210,6 +214,10 @@
<!--钉钉 机器人地址-->
<dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4</dingTalk.robot.webHook>
<dingTalk.robot.secret>SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd</dingTalk.robot.secret>
<!--rocketmq-->
<rocketmq.enable>true</rocketmq.enable>
<rocketmq.nameserver>192.168.1.140:9876;192.168.1.141:9876</rocketmq.nameserver>
</properties>
</profile>
<profile>
@ -253,6 +261,10 @@
<!--钉钉 机器人地址-->
<dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4</dingTalk.robot.webHook>
<dingTalk.robot.secret>SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd</dingTalk.robot.secret>
<!--rocketmq-->
<rocketmq.enable>true</rocketmq.enable>
<rocketmq.nameserver>192.168.10.161:9876</rocketmq.nameserver>
</properties>
</profile>
<profile>
@ -296,6 +308,10 @@
<!--生产钉钉 机器人地址-->
<dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=a5f66c3374b1642fe2142dbf56d5997e280172d4e8f2b546c9423a68c82ece6c</dingTalk.robot.webHook>
<dingTalk.robot.secret>SEC95f4f40b533ad379ea6a6d1af6dd37029383cfe1b7cd96dfac2678be2c1c3ed1</dingTalk.robot.secret>
<!--rocketmq-->
<rocketmq.enable>true</rocketmq.enable>
<rocketmq.nameserver>192.168.11.187:9876;192.168.11.184:9876</rocketmq.nameserver>
</properties>
</profile>
</profiles>

27
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/mq/RocketMQConsumerRegister.java

@ -0,0 +1,27 @@
package com.epmet.mq;
import com.epmet.commons.rocketmq.constants.ConsomerGroupConstants;
import com.epmet.commons.rocketmq.constants.TopicConstants;
import com.epmet.commons.rocketmq.register.MQAbstractRegister;
import com.epmet.commons.rocketmq.register.MQConsumerProperties;
import com.epmet.mq.listener.PointListener;
import com.epmet.service.UserPointActionLogService;
import org.apache.rocketmq.common.protocol.heartbeat.MessageModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class RocketMQConsumerRegister extends MQAbstractRegister {
@Autowired
private UserPointActionLogService userPointActionLogService;
@Override
public void registerAllListeners(String env, MQConsumerProperties consumerProperties) {
// 客户初始化监听器注册
register(consumerProperties, ConsomerGroupConstants.RESI_GROUP_POINT_OPERATION_GROUP, MessageModel.CLUSTERING, TopicConstants.RESI_GROUP, "*", new PointListener(userPointActionLogService));
register(consumerProperties, ConsomerGroupConstants.EPMET_HEART_POINT_OPERATION_GROUP, MessageModel.CLUSTERING, TopicConstants.EPMET_HEART, "*", new PointListener(userPointActionLogService));
// ...其他监听器类似
}
}

236
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/mq/listener/PointListener.java

@ -0,0 +1,236 @@
package com.epmet.mq.listener;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.rocketmq.constants.MQUserPropertys;
import com.epmet.commons.rocketmq.messages.LoginMQMsg;
import com.epmet.commons.tools.distributedlock.DistributedLock;
import com.epmet.commons.tools.dto.form.mq.eventmsg.BasePointEventMsg;
import com.epmet.commons.tools.enums.EventEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
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.Result;
import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.constant.SystemMessageType;
import com.epmet.service.UserPointActionLogService;
import dto.form.SendPointFormDTO;
import lombok.extern.slf4j.Slf4j;
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 登录操作日志监听器
* @return
* @date 2021.06.07 16:12
*/
@Slf4j
public class PointListener implements MessageListenerConcurrently {
private RedisUtils redisUtils;
private UserPointActionLogService userPointActionLogService;
public PointListener(UserPointActionLogService userPointActionLogService) {
this.userPointActionLogService = userPointActionLogService;
}
@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) {
log.error(ExceptionUtils.getErrorStackTrace(e));
return ConsumeConcurrentlyStatus.RECONSUME_LATER;
}
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
}
private void consumeMessage(MessageExt messageExt) {
String tags = messageExt.getTags();
String msg = new String(messageExt.getBody());
String pendingMsgLabel = messageExt.getUserProperty(MQUserPropertys.BLOCKED_MSG_LABEL);
log.info("【积分操作监听器】-收到消息内容:{}", msg);
DistributedLock distributedLock = null;
RLock lock = null;
try {
distributedLock = SpringContextUtils.getBean(DistributedLock.class);
lock = distributedLock.getLock("lock:point_operation", 30L, 30L, TimeUnit.SECONDS);
switch (tags) {
case SystemMessageType.PARTICIPATE_ONE_TOPIC:
resiGroupPointOpe(msg);
break;
case SystemMessageType.ACTIVE_SEND_POINT:
// 爱心活动积分发放
activeSendPoint(msg);
break;
case SystemMessageType.ACTIVE_INSERT_LIVE:
// 添加活动实况
activeInsertLive(msg);
break;
case SystemMessageType.REGISTER_VOLUNTEER:
// 注册志愿者
registerVolunteer(msg);
break;
case SystemMessageType.TOPIC_TO_ISSUE:
// 话题被组长转为议题
topicToIssue(msg);
break;
case SystemMessageType.TOPIC_TO_PROJECT:
// 话题转为项目
topicToProject(msg);
break;
case SystemMessageType.INVITE_RESI_INTO_GROUP:
inviteResiIntoGroup(msg);
break;
case SystemMessageType.INVITE_NEW_INTO_GROUP:
inviteNewIntoGroup(msg);
break;
case SystemMessageType.SHIFT_TOPIC_TO_ISSUE:
shiftTopicToIssue(msg);
break;
case SystemMessageType.PUBLISH_ONE_TOPIC:
publicOneTopic(msg);
break;
case SystemMessageType.LEADER_RESOLVE_TOPIC:
leaderResolveTopic(msg);
break;
}
} catch (RenException e) {
// 如果是我们手动抛出的异常,说明在业务可控范围内。目前不需要MQ重试
log.error("【积分操作监听器】消费消息失败:".concat(ExceptionUtils.getErrorStackTrace(e)));
} catch (Exception e) {
// 不是我们自己抛出的异常,可以让MQ重试
log.error("【积分操作监听器】消费消息失败:".concat(ExceptionUtils.getErrorStackTrace(e)));
throw e;
} finally {
distributedLock.unLock(lock);
}
if (StringUtils.isNotBlank(pendingMsgLabel)) {
try {
removePendingMqMsgCache(pendingMsgLabel);
} catch (Exception e) {
log.error("【登录操作事件监听器】-删除mq阻塞消息缓存失败:{}", ExceptionUtils.getErrorStackTrace(e));
}
}
}
private void leaderResolveTopic(String msg) {
List<BasePointEventMsg> formList = JSON.parseArray(msg, BasePointEventMsg.class);
formList.forEach(obj -> {
userPointActionLogService.grantPointByEvent(obj.getEventTag(),obj);
});
}
private void publicOneTopic(String msg) {
List<BasePointEventMsg> formList = JSON.parseArray(msg, BasePointEventMsg.class);
formList.forEach(obj -> {
userPointActionLogService.grantPointByEvent(obj.getEventTag(),obj);
});
}
private void shiftTopicToIssue(String msg) {
List<BasePointEventMsg> formList = JSON.parseArray(msg, BasePointEventMsg.class);
formList.forEach(obj -> {
userPointActionLogService.grantPointByEvent(obj.getEventTag(),obj);
});
}
private void inviteNewIntoGroup(String msg) {
List<BasePointEventMsg> formList = JSON.parseArray(msg, BasePointEventMsg.class);
formList.forEach(obj -> {
userPointActionLogService.grantPointByEvent(obj.getEventTag(),obj);
});
}
private void inviteResiIntoGroup(String msg) {
List<BasePointEventMsg> formList = JSON.parseArray(msg, BasePointEventMsg.class);
formList.forEach(obj -> {
userPointActionLogService.grantPointByEvent(obj.getEventTag(),obj);
});
}
private void topicToProject(String msg) {
List<BasePointEventMsg> formList = JSON.parseArray(msg, BasePointEventMsg.class);
formList.forEach(obj -> {
userPointActionLogService.grantPointByEvent(obj.getEventTag(),obj);
});
}
private void topicToIssue(String msg) {
List<BasePointEventMsg> formList = JSON.parseArray(msg, BasePointEventMsg.class);
formList.forEach(obj -> {
userPointActionLogService.grantPointByEvent(obj.getEventTag(), obj);
});
}
private void registerVolunteer(String msg) {
List<BasePointEventMsg> formList = JSON.parseArray(msg, BasePointEventMsg.class);
formList.forEach(obj -> {
userPointActionLogService.grantPointByEvent(EventEnum.REGISTER_VOLUNTEER.getEventTag(),obj);
});
}
private void activeInsertLive(String msg) {
List<BasePointEventMsg> formList = JSON.parseArray(msg, BasePointEventMsg.class);
formList.forEach(obj -> {
userPointActionLogService.grantPointByEvent(EventEnum.ACTIVE_INSERT_LIVE.getEventTag(), obj);
});
}
private void activeSendPoint(String msg) {
List<SendPointFormDTO> formDTO = JSON.parseArray(msg, SendPointFormDTO.class);
userPointActionLogService.grantPoint(formDTO);
}
private void resiGroupPointOpe(String msg) {
List<BasePointEventMsg> formList = JSON.parseArray(msg, BasePointEventMsg.class);
formList.forEach(obj -> {
userPointActionLogService.grantPointByEvent(obj.getEventTag(),obj);
});
}
/**
* @description
*
* @param pendingMsgLabel
* @return
* @author wxz
* @date 2021.10.14 16:32:32
*/
private void removePendingMqMsgCache(String pendingMsgLabel) {
String key = RedisKeys.blockedMqMsgKey(pendingMsgLabel);
redisUtils.delete(key);
//logger.info("【登录操作事件监听器】删除pendingMsgLabel成功:{}", pendingMsgLabel);
}
}

4
epmet-module/epmet-point/epmet-point-server/src/main/resources/bootstrap.yml

@ -141,3 +141,7 @@ shutdown:
graceful:
enable: true #是否开启优雅停机
waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警
rocketmq:
enable: @rocketmq.enable@
name-server: @rocketmq.nameserver@

12
epmet-module/open-data-worker/open-data-worker-client/src/main/java/com/epmet/opendata/dto/form/UpsertPatrolRecordForm.java

@ -1,6 +1,8 @@
package com.epmet.opendata.dto.form;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
@ -11,23 +13,25 @@ import javax.validation.constraints.NotEmpty;
*/
@Data
public class UpsertPatrolRecordForm extends PageFormDTO {
/**
* 客户Id
*/
@NotEmpty(message = "customerId不能为空")
@NotEmpty(message = "customerId不能为空",groups = {DefaultGroup.class,AddGroup.class})
private String customerId;
/**
* 巡查记录id
* 记录id
*/
private String patrolId;
@NotEmpty(message = "id不能为空",groups = AddGroup.class)
private String id;
/**
* 操作类型
* SystemMessageType.USER_PATROL_START
* SystemMessageTypSTOP
*/
@NotEmpty(message = "actionType不能为空")
@NotEmpty(message = "actionType不能为空",groups = DefaultGroup.class)
private String actionType;
}

58
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/BaseGridDailyworkController.java

@ -0,0 +1,58 @@
/**
* 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.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.opendata.dto.form.UpsertPatrolRecordForm;
import com.epmet.opendata.service.BaseGridDailyworkService;
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-12-24
*/
@RestController
@RequestMapping("basegriddailywork")
public class BaseGridDailyworkController {
@Autowired
private BaseGridDailyworkService baseGridDailyworkService;
/**
* @Author sun
* @Description 巡查信息中间库同步 分页
**/
@PostMapping("sync")
public Result getStaffBaseInfo(@RequestBody(required = false) UpsertPatrolRecordForm formDTO) {
ValidatorUtils.validateEntity(formDTO, DefaultGroup.class);
baseGridDailyworkService.insertPatrolRecord(formDTO);
return new Result();
}
}

14
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/controller/InitDataController.java

@ -18,8 +18,7 @@
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.BaseGridDailyworkService;
import com.epmet.opendata.service.UserPatrolRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
@ -40,6 +39,8 @@ public class InitDataController {
@Autowired
private UserPatrolRecordService userPatrolRecordService;
@Autowired
private BaseGridDailyworkService baseGridDailyworkService;
/**
* @Author sun
@ -49,4 +50,13 @@ public class InitDataController {
public Result<Boolean> reloadPatrolData(@PathVariable String customerId) {
return new Result().ok(userPatrolRecordService.reloadPatrolData(customerId));
}
/**
* @Author sun
* @Description 例行工作中间库同步
**/
@PostMapping("routineWork/{customerId}")
public Result<Boolean> reloadRoutineWorkData(@PathVariable String customerId) {
return new Result().ok(baseGridDailyworkService.reloadPatrolData(customerId));
}
}

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

@ -43,7 +43,7 @@ public class UserPatrolRecordController {
/**
* @Author sun
* @Description 网格员信息中间库同步
* @Description 巡查信息中间库同步 分页
**/
@PostMapping("patrol")
public Result getStaffBaseInfo(@RequestBody(required = false) UpsertPatrolRecordForm formDTO) {

34
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/dao/BaseGridDailyworkDao.java

@ -0,0 +1,34 @@
/**
* 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.BaseGridDailyworkEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* 巡查例行工作
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-12-24
*/
@Mapper
public interface BaseGridDailyworkDao extends BaseDao<BaseGridDailyworkEntity> {
}

155
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/BaseGridDailyworkEntity.java

@ -0,0 +1,155 @@
/**
* 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.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* 巡查例行工作
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-12-24
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("base_grid_dailywork")
public class BaseGridDailyworkEntity implements Serializable {
private static final long serialVersionUID = 1L;
private String id;
/**
* 客户Id customer.id
*/
private String customerId;
/**
* 网格ID
*/
private String gridId;
/**
* 网格名称
*/
private String gridName;
/**
* 一级工作类型
*/
private String firstWorkType;
/**
* 二级工作类型
*/
private String secondWorkType;
/**
* 事项名称
*/
private String eventName;
/**
* 发生日期 格式为YYYY-MM-DD
*/
private String happenTime;
/**
* 有无变动异常YN
*/
private String workResult;
/**
* 工作内容
*/
private String workContent;
/**
* 重点场所类别 字典值
*/
private String keyAreaType;
/**
* 宗教活动规模 字典值
*/
private String regionScale;
/**
* 重点场所是否发生变动 Y;N
*/
private String isKeyareaState;
/**
* 重点人员是否在当地-当事件类型为特殊人群服务与管理时必填
*/
private String isKeyPeopleLocate;
/**
* 重点人员现状
*/
private String keyPeopleStatus;
/**
* 发生地
*/
private String happenPlace;
/**
* 经度
*/
private String lng;
/**
* 纬度
*/
private String lat;
/**
* 抽取状态0是未抽取1代表已抽取2是抽取失败
*/
//private String flag;
@TableLogic
private String delFlag;
/**
* 创建人
*/
private String createBy;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新人
*/
private String updateBy;
/**
* 更新时间
*/
private Date updateTime;
}

2
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/entity/UserPatrolRecordEntity.java

@ -47,7 +47,7 @@ public class UserPatrolRecordEntity extends BaseEpmetEntity {
/**
* 网格id
*/
private String grid;
private String gridId;
/**
* 网格所有上级id

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

@ -3,7 +3,6 @@ package com.epmet.opendata.mq.listener;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.rocketmq.constants.MQUserPropertys;
import com.epmet.commons.rocketmq.messages.StaffPatrolMQMsg;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.distributedlock.DistributedLock;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.RenException;
@ -12,6 +11,7 @@ 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.BaseGridDailyworkService;
import com.epmet.opendata.service.UserPatrolRecordService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@ -39,11 +39,11 @@ public class OpenDataPatrolChangeEventListener implements MessageListenerConcurr
private RedisUtils redisUtils;
private DistributedLock distributedLock;
public OpenDataPatrolChangeEventListener(DistributedLock distributedLock) {
this.distributedLock = distributedLock;
}
@Override
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
@ -52,7 +52,7 @@ public class OpenDataPatrolChangeEventListener implements MessageListenerConcurr
}
try {
msgs.forEach(msg -> consumeMessage(msg));
msgs.forEach(this::consumeMessage);
} catch (Exception e) {
logger.error(ExceptionUtils.getErrorStackTrace(e));
return ConsumeConcurrentlyStatus.RECONSUME_LATER;
@ -70,10 +70,10 @@ public class OpenDataPatrolChangeEventListener implements MessageListenerConcurr
logger.info("【开放数据事件监听器】-巡查记录信息变更-收到消息内容:{}, 操作:{}", msg, tags);
StaffPatrolMQMsg msgObj = JSON.parseObject(msg, StaffPatrolMQMsg.class);
//只推送平阴数据
if (!StrConstant.PY_CUSTOMER.equals(msgObj.getCustomerId())) {
//只推送平阴数据 todo 先干掉测试
/*if (!StrConstant.PY_CUSTOMER.equals(msgObj.getCustomerId())) {
return;
}
}*/
if (msgObj == null) {
log.warn("consumeMessage msg body is blank");
return;
@ -84,7 +84,7 @@ public class OpenDataPatrolChangeEventListener implements MessageListenerConcurr
30L, 30L, TimeUnit.SECONDS);
UpsertPatrolRecordForm patrolRecordForm = new UpsertPatrolRecordForm();
patrolRecordForm.setCustomerId(msgObj.getCustomerId());
patrolRecordForm.setPatrolId(msgObj.getPatrolId());
patrolRecordForm.setId(msgObj.getObjectId());
patrolRecordForm.setActionType(tags);
Boolean aBoolean = false;
switch (tags) {
@ -94,6 +94,9 @@ public class OpenDataPatrolChangeEventListener implements MessageListenerConcurr
case SystemMessageType.USER_PATROL_STOP:
aBoolean = SpringContextUtils.getBean(UserPatrolRecordService.class).updatePatrolRecord(patrolRecordForm);
break;
case SystemMessageType.PATROL_ROUTINE_WORK_ADD:
aBoolean = SpringContextUtils.getBean(BaseGridDailyworkService.class).insertPatrolRecord(patrolRecordForm);
break;
default:
log.error("错误的消息类型:{}", tags);

46
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/BaseGridDailyworkService.java

@ -0,0 +1,46 @@
/**
* 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.opendata.dto.form.UpsertPatrolRecordForm;
import com.epmet.opendata.entity.BaseGridDailyworkEntity;
/**
* 用户巡查主记录
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-14
*/
public interface BaseGridDailyworkService extends BaseService<BaseGridDailyworkEntity> {
/**
* desc根据条件插入巡查记录
* @param patrolRecordForm
* @return
*/
Boolean insertPatrolRecord(UpsertPatrolRecordForm patrolRecordForm);
/**
* desc重新加载数据
* @param customerId
* @return
*/
Boolean reloadPatrolData(String customerId);
}

4
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/ExDeptService.java

@ -18,6 +18,7 @@
package com.epmet.opendata.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.opendata.dto.ExDeptDTO;
import com.epmet.opendata.dto.form.ExDeptFormDTO;
import com.epmet.opendata.entity.ExDeptEntity;
@ -32,7 +33,7 @@ import java.util.Map;
public interface ExDeptService extends BaseService<ExDeptEntity> {
Map<String, Integer> getDeptMap();
Map<String, Integer> getDeptDTOMap();
/**
* @Author sun
@ -46,4 +47,5 @@ public interface ExDeptService extends BaseService<ExDeptEntity> {
**/
void getGridBaseInfo(ExDeptFormDTO formDTO);
Map<String, ExDeptDTO> getDeptDTOMap(String customerId);
}

4
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/ExUserService.java

@ -18,6 +18,7 @@
package com.epmet.opendata.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.opendata.dto.ExUserDTO;
import com.epmet.opendata.dto.form.StaffBaseInfoFormDTO;
import com.epmet.opendata.entity.ExUserEntity;
@ -39,4 +40,5 @@ public interface ExUserService extends BaseService<ExUserEntity> {
**/
void getStaffBaseInfo(StaffBaseInfoFormDTO formDTO);
}
Map<String, ExUserDTO> getUserDTOMap(String customerId);
}

10
epmet-module/open-data-worker/open-data-worker-server/src/main/java/com/epmet/opendata/service/UserPatrolDetailService.java

@ -29,7 +29,17 @@ import com.epmet.opendata.entity.UserPatrolDetailEntity;
public interface UserPatrolDetailService extends BaseService<UserPatrolDetailEntity> {
/**
* desc:根据巡查id 删除巡查明细
* @param patrolId
* @return
*/
int deleteByPatrolId(String patrolId);
/**
* desc:根据客户Id 删除明细
* @param customerId
* @return
*/
int deleteByCustomerId(String customerId);
}

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

@ -76,7 +76,7 @@ public class BaseDisputeProcessServiceImpl extends BaseServiceImpl<BaseDisputePr
if (!result.success()) {
throw new RenException(result.getInternalMsg());
}
Map<String, Integer> deptMap = exDeptService.getDeptMap();
Map<String, Integer> deptMap = exDeptService.getDeptDTOMap();
Map<String, Integer> userMap = exUserService.getUserMap(formDTO.getCustomerId());
List<EventInfoResultDTO> list = result.getData();
saveEvent(formDTO, deptMap, userMap, list);

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

@ -0,0 +1,180 @@
/**
* 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.alibaba.fastjson.JSON;
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.commons.tools.validator.group.AddGroup;
import com.epmet.dto.form.patrol.PatrolQueryFormDTO;
import com.epmet.dto.result.PatrolRoutineWorkResult;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.opendata.dao.BaseGridDailyworkDao;
import com.epmet.opendata.dto.ExDeptDTO;
import com.epmet.opendata.dto.ExUserDTO;
import com.epmet.opendata.dto.form.UpsertPatrolRecordForm;
import com.epmet.opendata.entity.BaseGridDailyworkEntity;
import com.epmet.opendata.service.BaseGridDailyworkService;
import com.epmet.opendata.service.ExDeptService;
import com.epmet.opendata.service.ExUserService;
import com.epmet.opendata.service.UserPatrolDetailService;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 用户例行工作主记录
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-10-14
*/
@Slf4j
@Service
public class BaseGridDailyworkServiceImpl extends BaseServiceImpl<BaseGridDailyworkDao, BaseGridDailyworkEntity> implements BaseGridDailyworkService {
@Autowired
private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
@Autowired
private UserPatrolDetailService userPatrolDetailService;
@Autowired
private ExDeptService exDeptService;
@Autowired
private ExUserService exUserService;
@Override
public Boolean insertPatrolRecord(UpsertPatrolRecordForm patrolRecordForm) {
log.info("upsertPatrolRecord param:{}", JSON.toJSONString(patrolRecordForm));
ValidatorUtils.validateEntity(patrolRecordForm, AddGroup.class);
PatrolQueryFormDTO midPatrolFormDTO = buildParam(patrolRecordForm);
Result<List<PatrolRoutineWorkResult>> record = epmetUserOpenFeignClient.getPatrolRoutineWorkList(midPatrolFormDTO);
if (record == null || !record.success()) {
log.error("获取例行工作记录失败,param:{}", JSON.toJSONString(midPatrolFormDTO));
return false;
}
Map<String, ExDeptDTO> deptMap = exDeptService.getDeptDTOMap(patrolRecordForm.getCustomerId());
Map<String, ExUserDTO> userMap = exUserService.getUserDTOMap(patrolRecordForm.getCustomerId());
List<PatrolRoutineWorkResult> data = record.getData();
if (CollectionUtils.isEmpty(data)) {
//数据已被删除了
//暂时设置error 用于排错
log.error("获取例行工作记录返回为空,param:{}", JSON.toJSONString(midPatrolFormDTO));
int effectRow = baseDao.deleteById(patrolRecordForm.getId());
log.warn("del effectRow:{}", effectRow);
return true;
}
insertRecordBatch(data, deptMap, userMap);
return true;
}
@Override
public Boolean reloadPatrolData(String customerId) {
int pageNo = NumConstant.ONE;
int pageSize = NumConstant.ONE_THOUSAND;
List<PatrolRoutineWorkResult> resultList = null;
Map<String, ExDeptDTO> deptMap = exDeptService.getDeptDTOMap(customerId);
Map<String, ExUserDTO> userMap = exUserService.getUserDTOMap(customerId);
do {
PatrolQueryFormDTO param = new PatrolQueryFormDTO();
param.setCustomerId(customerId);
param.setPageNo(pageNo++);
param.setPageSize(pageSize);
Result<List<PatrolRoutineWorkResult>> record = epmetUserOpenFeignClient.getPatrolRoutineWorkList(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, deptMap, userMap);
}while (!CollectionUtils.isEmpty(resultList) && resultList.size()> pageSize );
return null;
}
private Boolean insertRecordBatch(List<PatrolRoutineWorkResult> list, Map<String, ExDeptDTO> deptMap, Map<String, ExUserDTO> userMap){
List<BaseGridDailyworkEntity> insertList = new ArrayList<>();
list.forEach(o-> insertList.add(buildEntity(o, deptMap, userMap)));
//insert
if (CollectionUtils.isEmpty(insertList)){
log.error("构建要插入的数据为空,param:{}", JSON.toJSONString(list));
return false;
}
this.saveOrUpdateBatch(insertList, NumConstant.ONE_HUNDRED);
return true;
}
private BaseGridDailyworkEntity buildEntity(PatrolRoutineWorkResult record, Map<String, ExDeptDTO> deptMap, Map<String, ExUserDTO> userMap) {
BaseGridDailyworkEntity entity = new BaseGridDailyworkEntity();
entity.setCustomerId(record.getCustomerId());
ExDeptDTO exDeptDTO = deptMap.getOrDefault(record.getGridId(),new ExDeptDTO());
entity.setGridId(exDeptDTO.getDeptId() == null ? "":exDeptDTO.getDeptId().toString());
entity.setGridName(exDeptDTO.getDeptName());
entity.setFirstWorkType(record.getWorkTypeFirstCode());
entity.setSecondWorkType(record.getWorkTypeSecondCode());
entity.setEventName(record.getTitle());
entity.setHappenTime(record.getHappenTime());
entity.setWorkResult(NumConstant.ONE == record.getIsNormal()? "Y":"N");
entity.setWorkContent(record.getWorkContent());
//业务暂时不支持
entity.setKeyAreaType(StrConstant.EPMETY_STR);
entity.setRegionScale(StrConstant.EPMETY_STR);
entity.setIsKeyareaState(StrConstant.EPMETY_STR);
entity.setIsKeyPeopleLocate(NumConstant.ONE == record.getIsKeyPeopleLocate()?"Y":"N");
entity.setKeyPeopleStatus(record.getKeyPeopleStatus());
entity.setHappenPlace(record.getAddress());
entity.setLng(record.getLongitude());
entity.setLat(record.getLatitude());
//entity.setFlag(NumConstant.ZERO_STR);
Integer userId = userMap.getOrDefault(record.getCreatedBy(), new ExUserDTO()).getUserId();
entity.setCreateBy(userId == null?record.getCreatedBy():userId.toString());
entity.setCreateTime(record.getCreatedTime());
Integer userIdU = userMap.getOrDefault(record.getUpdatedBy(), new ExUserDTO()).getUserId();
entity.setUpdateBy(userIdU == null? record.getCreatedBy():userIdU.toString());
entity.setUpdateTime(record.getUpdatedTime());
entity.setId(record.getId()+"_PY");
entity.setDelFlag(NumConstant.ZERO_STR);
return entity;
}
@NotNull
private PatrolQueryFormDTO buildParam(UpsertPatrolRecordForm patrolRecordForm) {
PatrolQueryFormDTO midPatrolFormDTO = new PatrolQueryFormDTO();
midPatrolFormDTO.setCustomerId(patrolRecordForm.getCustomerId());
midPatrolFormDTO.setId(patrolRecordForm.getId());
midPatrolFormDTO.setPageNo(patrolRecordForm.getPageNo());
midPatrolFormDTO.setPageSize(patrolRecordForm.getPageSize());
return midPatrolFormDTO;
}
}

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

@ -27,6 +27,7 @@ import com.epmet.dto.org.result.CustomerAgencyDTO;
import com.epmet.dto.org.result.CustomerGridDTO;
import com.epmet.feign.DataStatisticalOpenFeignClient;
import com.epmet.opendata.dao.ExDeptDao;
import com.epmet.opendata.dto.ExDeptDTO;
import com.epmet.opendata.dto.form.ExDeptFormDTO;
import com.epmet.opendata.entity.ExDeptEntity;
import com.epmet.opendata.service.ExDeptService;
@ -39,6 +40,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@ -54,7 +56,7 @@ public class ExDeptServiceImpl extends BaseServiceImpl<ExDeptDao, ExDeptEntity>
@Override
public Map<String, Integer> getDeptMap() {
public Map<String, Integer> getDeptDTOMap() {
LambdaQueryWrapper<ExDeptEntity> wrapper = new LambdaQueryWrapper<>();
List<ExDeptEntity> entityList = baseDao.selectList(wrapper);
if (CollectionUtils.isEmpty(entityList)) {
@ -135,4 +137,15 @@ public class ExDeptServiceImpl extends BaseServiceImpl<ExDeptDao, ExDeptEntity>
}
@Override
public Map<String, ExDeptDTO> getDeptDTOMap(String customerId) {
LambdaQueryWrapper<ExDeptEntity> wrapper = new LambdaQueryWrapper<>();
List<ExDeptEntity> entityList = baseDao.selectList(wrapper);
if (CollectionUtils.isEmpty(entityList)) {
return Collections.emptyMap();
}
List<ExDeptDTO> exDeptDTOList = ConvertUtils.sourceToTarget(entityList, ExDeptDTO.class);
return exDeptDTOList.stream().collect(Collectors.toMap(ExDeptDTO::getQxDeptId, Function.identity(),(o1,o2)->o1));
}
}

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

@ -25,6 +25,7 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.user.result.GridUserInfoDTO;
import com.epmet.feign.DataStatisticalOpenFeignClient;
import com.epmet.opendata.dao.ExUserDao;
import com.epmet.opendata.dto.ExUserDTO;
import com.epmet.opendata.dto.form.StaffBaseInfoFormDTO;
import com.epmet.opendata.entity.ExUserEntity;
import com.epmet.opendata.service.ExUserService;
@ -37,6 +38,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@ -98,4 +100,16 @@ public class ExUserServiceImpl extends BaseServiceImpl<ExUserDao, ExUserEntity>
}
}
@Override
public Map<String, ExUserDTO> getUserDTOMap(String customerId) {
LambdaQueryWrapper<ExUserEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ExUserEntity::getQxCustomerId, customerId);
List<ExUserEntity> list = baseDao.selectList(wrapper);
if (CollectionUtils.isEmpty(list)) {
return Collections.emptyMap();
}
List<ExUserDTO> exUserDTOList = ConvertUtils.sourceToTarget(list, ExUserDTO.class);
return exUserDTOList.stream().collect(Collectors.toMap(ExUserDTO::getQxUserId, Function.identity(), (key1, key2) -> key1));
}
}

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

@ -72,7 +72,7 @@ public class UserPatrolRecordServiceImpl extends BaseServiceImpl<UserPatrolRecor
//数据已被删除了
//暂时设置error 用于排错
log.error("获取巡查记录返回为空,param:{}", JSON.toJSONString(midPatrolFormDTO));
int effectRow = baseDao.deleteById(patrolRecordForm.getPatrolId());
int effectRow = baseDao.deleteById(patrolRecordForm.getId());
log.warn("del effectRow:{}", effectRow);
return true;
}
@ -102,7 +102,7 @@ public class UserPatrolRecordServiceImpl extends BaseServiceImpl<UserPatrolRecor
//数据已被删除了
//暂时设置error 用于排错
log.error("获取巡查记录返回为空,param:{}", JSON.toJSONString(midPatrolFormDTO));
int effectRow = baseDao.deleteById(patrolRecordForm.getPatrolId());
int effectRow = baseDao.deleteById(patrolRecordForm.getId());
log.warn("del effectRow:{}", effectRow);
return true;
}
@ -124,8 +124,8 @@ public class UserPatrolRecordServiceImpl extends BaseServiceImpl<UserPatrolRecor
@Override
public Boolean reloadPatrolData(String customerId) {
int pageNo = 1;
int pageSize = 1000;
int pageNo = NumConstant.ONE;
int pageSize = NumConstant.ONE_THOUSAND;
List<MidPatrolRecordResult> resultList = null;
do {
MidPatrolFormDTO param = new MidPatrolFormDTO();
@ -201,7 +201,7 @@ public class UserPatrolRecordServiceImpl extends BaseServiceImpl<UserPatrolRecor
private UserPatrolRecordEntity buildEntity(MidPatrolRecordResult recordResult) {
UserPatrolRecordEntity entity = new UserPatrolRecordEntity();
entity.setCustomerId(recordResult.getCustomerId());
entity.setGrid(recordResult.getGrid());
entity.setGridId(recordResult.getGrid());
entity.setGridPids(recordResult.getGridPids());
entity.setStaffId(recordResult.getStaffId());
entity.setAgencyId(recordResult.getAgencyId());
@ -227,7 +227,7 @@ public class UserPatrolRecordServiceImpl extends BaseServiceImpl<UserPatrolRecor
private MidPatrolFormDTO buildParam(UpsertPatrolRecordForm patrolRecordForm) {
MidPatrolFormDTO midPatrolFormDTO = new MidPatrolFormDTO();
midPatrolFormDTO.setCustomerId(patrolRecordForm.getCustomerId());
midPatrolFormDTO.setPatrolId(patrolRecordForm.getPatrolId());
midPatrolFormDTO.setObjectId(patrolRecordForm.getId());
midPatrolFormDTO.setPageNo(patrolRecordForm.getPageNo());
midPatrolFormDTO.setPageSize(patrolRecordForm.getPageSize());
return midPatrolFormDTO;

35
epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/BaseGridDailyworkDao.xml

@ -0,0 +1,35 @@
<?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.BaseGridDailyworkDao">
<resultMap type="com.epmet.opendata.entity.BaseGridDailyworkEntity" id="patrolRoutineWorkMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="gridId" column="GRID_ID"/>
<result property="gridName" column="GRID_NAME"/>
<result property="firstWorkType" column="FIRST_WORK_TYPE"/>
<result property="secondWorkType" column="SECOND_WORK_TYPE"/>
<result property="eventName" column="EVENT_NAME"/>
<result property="happenTime" column="HAPPEN_TIME"/>
<result property="workResult" column="WORK_RESULT"/>
<result property="workContent" column="WORK_CONTENT"/>
<result property="keyAreaType" column="KEY_AREA_TYPE"/>
<result property="regionScale" column="REGION_SCALE"/>
<result property="isKeyareaState" column="IS_KEYAREA_STATE"/>
<result property="isKeyPeopleLocate" column="IS_KEY_PEOPLE_LOCATE"/>
<result property="keyPeopleStatus" column="KEY_PEOPLE_STATUS"/>
<result property="happenPlace" column="HAPPEN_PLACE"/>
<result property="lng" column="LNG"/>
<result property="lat" column="LAT"/>
<result property="flag" column="FLAG"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createBy" column="CREATE_BY"/>
<result property="createTime" column="CREATE_TIME"/>
<result property="updateBy" column="UPDATE_BY"/>
<result property="updateTime" column="UPDATE_TIME"/>
</resultMap>
</mapper>

2
epmet-module/open-data-worker/open-data-worker-server/src/main/resources/mapper/UserPatrolRecordDao.xml

@ -6,7 +6,7 @@
<resultMap type="com.epmet.opendata.entity.UserPatrolRecordEntity" id="userPatrolRecordMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="grid" column="GRID"/>
<result property="gridId" column="GRID"/>
<result property="gridPids" column="GRID_PIDS"/>
<result property="staffId" column="STAFF_ID"/>
<result property="agencyId" column="AGENCY_ID"/>

31
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/GroupMemeberOperationServiceImpl.java

@ -21,6 +21,7 @@ import com.alibaba.fastjson.JSON;
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.constants.TopicConstants;
import com.epmet.commons.tools.constant.EpmetRoleKeyConstant;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.MqConstant;
@ -34,12 +35,15 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.SendMqMsgUtils;
import com.epmet.constant.SystemMessageType;
import com.epmet.dto.IssueShareLinkRecordDTO;
import com.epmet.dto.IssueShareLinkVisitRecordDTO;
import com.epmet.dto.form.CommonGridIdFormDTO;
import com.epmet.dto.form.GetRoleKeyListFormDTO;
import com.epmet.dto.form.SystemMsgFormDTO;
import com.epmet.dto.result.CommonDataFilterResultDTO;
import com.epmet.dto.result.UserBaseInfoResultDTO;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.GovIssueOpenFeignClient;
import com.epmet.modules.feign.GovOrgFeignClient;
@ -120,6 +124,8 @@ public class GroupMemeberOperationServiceImpl extends BaseServiceImpl<GroupMemeb
private GovOrgFeignClient govOrgFeignClient;
@Autowired
private GroupInvitationService groupInvitationService;
@Autowired
private EpmetMessageOpenFeignClient messageOpenFeignClient;
@Override
public PageData<GroupMemeberOperationDTO> page(Map<String, Object> params) {
@ -352,10 +358,13 @@ public class GroupMemeberOperationServiceImpl extends BaseServiceImpl<GroupMemeb
}
//mq的事件类型
MqBaseMsgDTO mqBaseMsgDTO = new MqBaseMsgDTO();
//MqBaseMsgDTO mqBaseMsgDTO = new MqBaseMsgDTO();
//事件code
mqBaseMsgDTO.setEventTag(isNew ? EventEnum.INVITE_NEW_RESIDENT_INTO_GROUP.getEventTag() : EventEnum.INVITE_RESIDENT_INTO_GROUP.getEventTag());
mqBaseMsgDTO.setEventClass("resi_group");
//mqBaseMsgDTO.setEventTag(isNew ? EventEnum.INVITE_NEW_RESIDENT_INTO_GROUP.getEventTag() : EventEnum.INVITE_RESIDENT_INTO_GROUP.getEventTag());
//mqBaseMsgDTO.setEventClass("resi_group");
String eventTag = isNew ? SystemMessageType.INVITE_NEW_INTO_GROUP : SystemMessageType.INVITE_RESI_INTO_GROUP;
List<BasePointEventMsg> pointEventMsgList = new ArrayList<>();
BasePointEventMsg pointEventMsg = new BasePointEventMsg();
pointEventMsg.setCustomerId(resiGroupDTO.getCustomerId());
@ -368,8 +377,8 @@ public class GroupMemeberOperationServiceImpl extends BaseServiceImpl<GroupMemeb
pointEventMsg.setActionFlag(MqConstant.PLUS);
pointEventMsg.setIsCommon(false);
pointEventMsg.setTargetDate(current);
pointEventMsg.setEventTag(mqBaseMsgDTO.getEventTag());
pointEventMsg.setEventClass(mqBaseMsgDTO.getEventClass());
pointEventMsg.setEventTag(eventTag);
pointEventMsg.setEventClass(TopicConstants.RESI_GROUP);
//pointEventMsg.setRemark("通过".concat(StringUtils.equals(param.getShareLinkType(),"topic")
// ? "话题":"议题").concat("分享链接邀请").concat(isNew ? "新" : "").concat("用户进组"));
@ -387,9 +396,15 @@ public class GroupMemeberOperationServiceImpl extends BaseServiceImpl<GroupMemeb
}
pointEventMsgList.add(pointEventMsg);
mqBaseMsgDTO.setMsg(JSON.toJSONString(pointEventMsgList));
Result sendResult = SendMqMsgUtils.sendMsg(mqBaseMsgDTO);
if(!sendResult.success()){
//mqBaseMsgDTO.setMsg(JSON.toJSONString(pointEventMsgList));
//Result sendResult = SendMqMsgUtils.sendMsg(mqBaseMsgDTO);
SystemMsgFormDTO form = new SystemMsgFormDTO();
form.setMessageType(SystemMessageType.INVITE_NEW_INTO_GROUP);
form.setContent(pointEventMsgList);
Result sendMsgResult = messageOpenFeignClient.sendSystemMsgByMQ(form);
if(!sendMsgResult.success()){
log.error((isNew ? "拉新用户入组事件发送失败" : "邀请已注册用户入组事件发送失败").concat(",参数:{}"),JSON.toJSONString(param));
}
}

23
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java

@ -34,6 +34,7 @@ import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.SendMqMsgUtils;
import com.epmet.constant.ReadFlagConstant;
import com.epmet.constant.SystemMessageType;
import com.epmet.constant.UserMessageTypeConstant;
import com.epmet.dto.IssueShareLinkVisitRecordDTO;
import com.epmet.dto.form.CommonGridIdFormDTO;
@ -673,10 +674,13 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
}
//mq的事件类型
MqBaseMsgDTO mqBaseMsgDTO = new MqBaseMsgDTO();
mqBaseMsgDTO.setEventClass("resi_group");
//MqBaseMsgDTO mqBaseMsgDTO = new MqBaseMsgDTO();
//mqBaseMsgDTO.setEventClass("resi_group");
//事件code
mqBaseMsgDTO.setEventTag(isNew ? EventEnum.INVITE_NEW_RESIDENT_INTO_GROUP.getEventTag() : EventEnum.INVITE_RESIDENT_INTO_GROUP.getEventTag());
//mqBaseMsgDTO.setEventTag(isNew ? EventEnum.INVITE_NEW_RESIDENT_INTO_GROUP.getEventTag() : EventEnum.INVITE_RESIDENT_INTO_GROUP.getEventTag());
String eventTag = isNew ? SystemMessageType.INVITE_NEW_INTO_GROUP : SystemMessageType.INVITE_RESI_INTO_GROUP;
List<BasePointEventMsg> pointEventMsgList = new ArrayList<>();
BasePointEventMsg pointEventMsg = new BasePointEventMsg();
pointEventMsg.setCustomerId(groupCache.getCustomerId());
@ -689,7 +693,7 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
pointEventMsg.setActionFlag(MqConstant.PLUS);
pointEventMsg.setIsCommon(false);
pointEventMsg.setTargetDate(groupMemeberOperationDTO.getCreatedTime());
pointEventMsg.setEventTag(mqBaseMsgDTO.getEventTag());
pointEventMsg.setEventTag(eventTag);
//pointEventMsg.setRemark("通过".concat(StringUtils.equals(groupMemeberOperationDTO.getEnterGroupType(),ModuleConstant.ENTER_GROUP_TYPE_TOPIC_LINK)
//? "话题":"议题").concat("分享链接邀请").concat(isNew ? "新" : "").concat("用户进组"));
List<String> userParam = new LinkedList<>();
@ -707,8 +711,15 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
pointEventMsgList.add(pointEventMsg);
mqBaseMsgDTO.setMsg(JSON.toJSONString(pointEventMsgList));
Result result= SendMqMsgUtils.sendMsg(mqBaseMsgDTO);
//mqBaseMsgDTO.setMsg(JSON.toJSONString(pointEventMsgList));
//Result result= SendMqMsgUtils.sendMsg(mqBaseMsgDTO);
SystemMsgFormDTO sendMsgForm = new SystemMsgFormDTO();
sendMsgForm.setMessageType(eventTag);
sendMsgForm.setContent(pointEventMsgList);
Result result = epmetMessageOpenFeignClient.sendSystemMsgByMQ(sendMsgForm);
if(!result.success()){
logger.error((isNew ? "拉新用户入组事件发送失败" : "邀请已注册用户入组事件发送失败").concat(",参数:{}"),JSON.toJSONString(agreeApplyFormDTO));
}

27
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicCommentServiceImpl.java

@ -40,10 +40,12 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.ScanContentUtils;
import com.epmet.commons.tools.utils.SendMqMsgUtils;
import com.epmet.dto.form.CommonGridIdFormDTO;
import com.epmet.dto.form.SystemMsgFormDTO;
import com.epmet.dto.form.UserResiInfoListFormDTO;
import com.epmet.dto.result.CommonDataFilterResultDTO;
import com.epmet.dto.result.UserInfoResultDTO;
import com.epmet.dto.result.UserResiInfoResultDTO;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.modules.comment.entity.ResiTopicCommentEntity;
import com.epmet.modules.constant.ResiGroupRedisKeys;
import com.epmet.modules.constant.WxmpSubscribeConstant;
@ -127,6 +129,8 @@ public class ResiTopicCommentServiceImpl extends BaseServiceImpl<ResiTopicCommen
private NoticeCommentService noticeCommentService;
@Autowired
private ResiTopicCommentAttachmentService resiTopicCommentAttachmentService;
@Autowired
private EpmetMessageOpenFeignClient messageOpenFeignClient;
@Value("${openapi.scan.server.url}")
private String scanApiUrl;
@ -266,11 +270,14 @@ public class ResiTopicCommentServiceImpl extends BaseServiceImpl<ResiTopicCommen
Integer commentCount = baseDao.selectCommentCountByUserId(tokenDto.getUserId());
if (null == commentCount || commentCount <= NumConstant.THREE){
if (StringUtils.isNotBlank(commentContent) && commentContent.length() > NumConstant.FIFTEEN){
String eventClass = EventEnum.PARTICIPATE_ONE_TOPIC.getEventClass();
String eventTag = EventEnum.PARTICIPATE_ONE_TOPIC.getEventTag();
//mq的事件类型
MqBaseMsgDTO mqBaseMsgDTO = new MqBaseMsgDTO();
mqBaseMsgDTO.setEventClass(EventEnum.PARTICIPATE_ONE_TOPIC.getEventClass());
//MqBaseMsgDTO mqBaseMsgDTO = new MqBaseMsgDTO();
//mqBaseMsgDTO.setEventClass(EventEnum.PARTICIPATE_ONE_TOPIC.getEventClass());
//事件code
mqBaseMsgDTO.setEventTag(EventEnum.PARTICIPATE_ONE_TOPIC.getEventTag());
//mqBaseMsgDTO.setEventTag(EventEnum.PARTICIPATE_ONE_TOPIC.getEventTag());
List<BasePointEventMsg> pointEventMsgList = new ArrayList<>();
BasePointEventMsg pointEventMsg = new BasePointEventMsg();
String customerId = resiTopicdDao.selectCustomerIdByTopicId(resiCommentFormDTO.getTopicId());
@ -297,8 +304,8 @@ public class ResiTopicCommentServiceImpl extends BaseServiceImpl<ResiTopicCommen
// 加分
pointEventMsg.setActionFlag(MqConstant.PLUS);
pointEventMsg.setIsCommon(false);
pointEventMsg.setEventTag(mqBaseMsgDTO.getEventTag());
pointEventMsg.setEventClass(mqBaseMsgDTO.getEventClass());
pointEventMsg.setEventTag(eventTag);
pointEventMsg.setEventClass(eventClass);
//某某小组中评论话题“某某某…”
StringBuilder builder = new StringBuilder(groupRedis.get(topic.getGroupId()).getGroupName()).append("小组中评论");
String content = CharMatcher.WHITESPACE.trimFrom(topic.getTopicContent());
@ -317,8 +324,14 @@ public class ResiTopicCommentServiceImpl extends BaseServiceImpl<ResiTopicCommen
pointEventMsg.setRemark(builder.toString());
pointEventMsgList.add(pointEventMsg);
mqBaseMsgDTO.setMsg(JSON.toJSONString(pointEventMsgList));
Result msgResult= SendMqMsgUtils.sendMsg(mqBaseMsgDTO);
SystemMsgFormDTO msgForm = new SystemMsgFormDTO();
msgForm.setMessageType(eventTag);
msgForm.setContent(pointEventMsgList);
Result msgResult = messageOpenFeignClient.sendSystemMsgByMQ(msgForm);
//mqBaseMsgDTO.setMsg(JSON.toJSONString(pointEventMsgList));
//Result msgResult= SendMqMsgUtils.sendMsg(mqBaseMsgDTO);
if(!msgResult.success()){
logger.error(TopicConstant.COMMENT_TOPIC_FAILURE);
}

97
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java

@ -23,6 +23,7 @@ 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.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.rocketmq.constants.TopicConstants;
import com.epmet.commons.rocketmq.messages.GroupAchievementMQMsg;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.MqConstant;
@ -45,6 +46,7 @@ import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.*;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.constant.OrgInfoConstant;
import com.epmet.constant.SystemMessageType;
import com.epmet.constant.WxmpMessageConstant;
import com.epmet.dto.CustomerGridDTO;
import com.epmet.dto.IssueApplicationDTO;
@ -414,10 +416,14 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
if (null != publishTopicCount && publishTopicCount <= NumConstant.THREE){
//mq的事件类型
MqBaseMsgDTO mqBaseMsgDTO = new MqBaseMsgDTO();
mqBaseMsgDTO.setEventClass(EventEnum.PUBLISH_ONE_TOPIC.getEventClass());
//MqBaseMsgDTO mqBaseMsgDTO = new MqBaseMsgDTO();
//mqBaseMsgDTO.setEventClass(EventEnum.PUBLISH_ONE_TOPIC.getEventClass());
//事件code
mqBaseMsgDTO.setEventTag(EventEnum.PUBLISH_ONE_TOPIC.getEventTag());
//mqBaseMsgDTO.setEventTag(EventEnum.PUBLISH_ONE_TOPIC.getEventTag());
String eventClass = TopicConstants.RESI_GROUP;
String eventTag = SystemMessageType.PUBLISH_ONE_TOPIC;
List<BasePointEventMsg> pointEventMsgList = new ArrayList<>();
BasePointEventMsg pointEventMsg = new BasePointEventMsg();
ResiGroupInfoRedisDTO resiGroupInfoRedisDTO = resiGroupRedis.get(resiTopicPublishFormDTO.getGroupId());
@ -449,13 +455,19 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
// 加分
pointEventMsg.setActionFlag(MqConstant.PLUS);
pointEventMsg.setIsCommon(false);
pointEventMsg.setEventTag(mqBaseMsgDTO.getEventTag());
pointEventMsg.setEventClass(mqBaseMsgDTO.getEventClass());
pointEventMsg.setEventTag(eventTag);
pointEventMsg.setEventClass(eventClass);
pointEventMsgList.add(pointEventMsg);
mqBaseMsgDTO.setMsg(JSON.toJSONString(pointEventMsgList));
Result msgResult= SendMqMsgUtils.sendMsg(mqBaseMsgDTO);
if(!msgResult.success()){
//mqBaseMsgDTO.setMsg(JSON.toJSONString(pointEventMsgList));
//Result msgResult= SendMqMsgUtils.sendMsg(mqBaseMsgDTO);
SystemMsgFormDTO msgFormDTO = new SystemMsgFormDTO();
msgFormDTO.setMessageType(eventTag);
msgFormDTO.setContent(pointEventMsgList);
Result sendMsgResult = epmetMessageOpenFeignClient.sendSystemMsgByMQ(msgFormDTO);
if(!sendMsgResult.success()){
logger.error(TopicConstant.CREATE_TOPIC_FAILURE);
}
}
@ -810,10 +822,10 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
//mq的事件类型
MqBaseMsgDTO mqBaseMsgDTO = new MqBaseMsgDTO();
mqBaseMsgDTO.setEventClass("resi_group");
//MqBaseMsgDTO mqBaseMsgDTO = new MqBaseMsgDTO();
//mqBaseMsgDTO.setEventClass("resi_group");
//事件code 组长解决组内话题
mqBaseMsgDTO.setEventTag(EventEnum.LEADER_RESOLVE_TOPIC.getEventTag());
//mqBaseMsgDTO.setEventTag(EventEnum.LEADER_RESOLVE_TOPIC.getEventTag());
List<BasePointEventMsg> pointEventMsgList = new ArrayList<>();
BasePointEventMsg pointEventMsg = new BasePointEventMsg();
@ -840,8 +852,15 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
"已被解决");
pointEventMsgList.add(pointEventMsg);
mqBaseMsgDTO.setMsg(JSON.toJSONString(pointEventMsgList));
if (!SendMqMsgUtils.sendMsg(mqBaseMsgDTO).success()) {
//mqBaseMsgDTO.setMsg(JSON.toJSONString(pointEventMsgList));
//Result<String> result = SendMqMsgUtils.sendMsg(mqBaseMsgDTO);
SystemMsgFormDTO msgFormDTO = new SystemMsgFormDTO();
msgFormDTO.setContent(pointEventMsgList);
msgFormDTO.setMessageType(SystemMessageType.LEADER_RESOLVE_TOPIC);
Result result = epmetMessageOpenFeignClient.sendSystemMsgByMQ(msgFormDTO);
if (!result.success()) {
log.error("组长解决话题事件发送失败,参数:{}", JSON.toJSONString(closeFormDTO));
}
}
@ -1931,15 +1950,22 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
).append("转为议题").toString());
pointEventMsgList.add(pointEventMsg2);
pointEventMsgList.forEach(item -> {
MqBaseMsgDTO msgDTO = new MqBaseMsgDTO();
msgDTO.setEventClass("resi_group");
//MqBaseMsgDTO msgDTO = new MqBaseMsgDTO();
//msgDTO.setEventClass("resi_group");
//事件code 因为楼院小组的事件回调统一入口,外层的EventTag不能够判断具体的事件
//因为可能会一次发送多个事件集合,需要对集合里的对象逐个判断
msgDTO.setEventTag(EventEnum.SHIFT_TOPIC_TO_ISSUE.getEventTag());
//msgDTO.setEventTag(EventEnum.SHIFT_TOPIC_TO_ISSUE.getEventTag());
List<BasePointEventMsg> msgList = new ArrayList<>();
msgList.add(item);
msgDTO.setMsg(JSON.toJSONString(msgList));
if(!SendMqMsgUtils.sendMsg(msgDTO).success()){
//msgDTO.setMsg(JSON.toJSONString(msgList));
SystemMsgFormDTO msgForm = new SystemMsgFormDTO();
msgForm.setMessageType(SystemMessageType.SHIFT_TOPIC_TO_ISSUE);
msgForm.setContent(msgList);
Result sendMsgResult = epmetMessageOpenFeignClient.sendSystemMsgByMQ(msgForm);
//Result<String> sendMsgResult = SendMqMsgUtils.sendMsg(msgDTO);
if(!sendMsgResult.success()){
log.error("话题转议题事件发送失败,参数:{}",JSON.toJSONString(topicTurnIssueFromDTO));
}
});
@ -2104,15 +2130,22 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
).append("转为议题").toString());
pointEventMsgList.add(pointEventMsg2);
pointEventMsgList.forEach(item -> {
MqBaseMsgDTO msgDTO = new MqBaseMsgDTO();
msgDTO.setEventClass("resi_group");
//MqBaseMsgDTO msgDTO = new MqBaseMsgDTO();
//msgDTO.setEventClass("resi_group");
//事件code 因为楼院小组的事件回调统一入口,外层的EventTag不能够判断具体的事件
//因为可能会一次发送多个事件集合,需要对集合里的对象逐个判断
msgDTO.setEventTag(EventEnum.SHIFT_TOPIC_TO_ISSUE.getEventTag());
//msgDTO.setEventTag(EventEnum.SHIFT_TOPIC_TO_ISSUE.getEventTag());
List<BasePointEventMsg> msgList = new ArrayList<>();
msgList.add(item);
msgDTO.setMsg(JSON.toJSONString(msgList));
if(!SendMqMsgUtils.sendMsg(msgDTO).success()){
//msgDTO.setMsg(JSON.toJSONString(msgList));
SystemMsgFormDTO sendMsgForm = new SystemMsgFormDTO();
sendMsgForm.setContent(msgList);
sendMsgForm.setMessageType(SystemMessageType.SHIFT_TOPIC_TO_ISSUE);
Result sendMsgResult = epmetMessageOpenFeignClient.sendSystemMsgByMQ(sendMsgForm);
//Result<String> sendMsgResult = SendMqMsgUtils.sendMsg(msgDTO);
if(!sendMsgResult.success()){
log.error("话题转议题事件发送失败,参数:{}",JSON.toJSONString(param));
}
});
@ -2462,10 +2495,10 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
//某某小组中发布的话题“某某某…” (前十个字后面省略号) 被转为项目
if(EventEnum.TOPIC_SHIFTED_TO_PROJECT == param.getEvent()){
MqBaseMsgDTO mqBaseMsgDTO = new MqBaseMsgDTO();
mqBaseMsgDTO.setEventClass("resi_group");
//MqBaseMsgDTO mqBaseMsgDTO = new MqBaseMsgDTO();
//mqBaseMsgDTO.setEventClass("resi_group");
mqBaseMsgDTO.setEventTag(EventEnum.TOPIC_SHIFTED_TO_PROJECT.getEventTag());
//mqBaseMsgDTO.setEventTag(EventEnum.TOPIC_SHIFTED_TO_PROJECT.getEventTag());
List<BasePointEventMsg> pointEventMsgList = new ArrayList<>();
//话题被转为项目 话题作者
@ -2493,8 +2526,16 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
+ (NumConstant.TEN > content.length() ? "\"" : "…\"")
).append("被转为项目").toString());
pointEventMsgList.add(pointEventMsg);
mqBaseMsgDTO.setMsg(JSON.toJSONString(pointEventMsgList));
if(!SendMqMsgUtils.sendMsg(mqBaseMsgDTO).success()){
//mqBaseMsgDTO.setMsg(JSON.toJSONString(pointEventMsgList));
//Result<String> sendMsgResult = SendMqMsgUtils.sendMsg(mqBaseMsgDTO);
SystemMsgFormDTO sendMsgForm = new SystemMsgFormDTO();
sendMsgForm.setContent(pointEventMsgList);
sendMsgForm.setMessageType(SystemMessageType.TOPIC_TO_PROJECT);
Result sendMsgResult = epmetMessageOpenFeignClient.sendSystemMsgByMQ(sendMsgForm);
if(!sendMsgResult.success()){
log.error("话题转议题事件发送失败,参数:{}",JSON.toJSONString(param));
}
}

18
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/TopicDraftServiceImpl.java

@ -38,7 +38,9 @@ import com.epmet.commons.tools.scan.result.SyncScanResult;
import com.epmet.commons.tools.scan.result.VoiceResultDTO;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.*;
import com.epmet.constant.SystemMessageType;
import com.epmet.dto.form.CommonGridIdFormDTO;
import com.epmet.dto.form.SystemMsgFormDTO;
import com.epmet.dto.result.AllGridsByUserIdResultDTO;
import com.epmet.dto.result.UserInfoResultDTO;
import com.epmet.dto.result.CommonDataFilterResultDTO;
@ -1004,11 +1006,11 @@ public class TopicDraftServiceImpl extends BaseServiceImpl<TopicDraftDao, TopicD
private void sendMqMsg(String userId, String customerId, Date targetDate, String groupName, String topicBreviary, String agencyId,
String gridId, String groupId, String topicId) {
//6.发送积分
MqBaseMsgDTO mqBaseMsgDTO=new MqBaseMsgDTO();
//MqBaseMsgDTO mqBaseMsgDTO=new MqBaseMsgDTO();
//mq的事件类型
mqBaseMsgDTO.setEventClass(EventEnum.PUBLISH_ONE_TOPIC.getEventClass());
//mqBaseMsgDTO.setEventClass(EventEnum.PUBLISH_ONE_TOPIC.getEventClass());
//事件code
mqBaseMsgDTO.setEventTag(EventEnum.PUBLISH_ONE_TOPIC.getEventTag());
//mqBaseMsgDTO.setEventTag(EventEnum.PUBLISH_ONE_TOPIC.getEventTag());
List<BasePointEventMsg> actPointEventMsgList=new ArrayList<>();
BasePointEventMsg actPointEventMsg=new BasePointEventMsg();
actPointEventMsg.setCustomerId(customerId);
@ -1026,8 +1028,14 @@ public class TopicDraftServiceImpl extends BaseServiceImpl<TopicDraftDao, TopicD
actPointEventMsg.setEventClass(EventEnum.PUBLISH_ONE_TOPIC.getEventClass());
actPointEventMsgList.add(actPointEventMsg);
mqBaseMsgDTO.setMsg(JSON.toJSONString(actPointEventMsgList));
Result mqResult = SendMqMsgUtils.sendMsg(mqBaseMsgDTO);
//mqBaseMsgDTO.setMsg(JSON.toJSONString(actPointEventMsgList));
//Result mqResult = SendMqMsgUtils.sendMsg(mqBaseMsgDTO);
SystemMsgFormDTO sendMsgForm = new SystemMsgFormDTO();
sendMsgForm.setContent(actPointEventMsgList);
sendMsgForm.setMessageType(SystemMessageType.PUBLISH_ONE_TOPIC);
Result mqResult = epmetMessageOpenFeignClient.sendSystemMsgByMQ(sendMsgForm);
if(!mqResult.success()){
logger.error("发表话题积分添加失败");
}

29
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/patrol/PatrolQueryFormDTO.java

@ -0,0 +1,29 @@
package com.epmet.dto.form.patrol;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* desc:查询巡查 参数
*
* @author zhaoqifeng
* @dscription
* @date 2021/6/7 16:23
*/
@NoArgsConstructor
@Data
public class PatrolQueryFormDTO extends PageFormDTO implements Serializable {
private static final long serialVersionUID = 7585836892408288392L;
/**
* 客户Id
*/
private String customerId;
/**
* 对象id 没有则查询全部
*/
private String id;
}

78
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/PatrolRoutineWorkResult.java

@ -0,0 +1,78 @@
package com.epmet.dto.result;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* desc:例行工作结果
*
* @Author zxc
* @DateTime 2021/10/19 10:41 上午
* @DESC
*/
@Data
public class PatrolRoutineWorkResult implements Serializable {
private static final long serialVersionUID = 6508374707998213266L;
private String id;
private String customerId;
private String gridId;
private String title;
/**
* 一级工作类型 code
*/
private String workTypeFirstCode;
/**
* 二级工作类型 code
*/
private String workTypeSecondCode;
private Integer isNormal;
private String happenTime;
private String workContent;
private String address;
/**
* 当事件类型为特殊人群服务与管理时必填 重点人员是否在当地
*/
private Integer isKeyPeopleLocate;
/**
* 当事件类型为特殊人群服务与管理时必填 重点人员现状
*/
private String keyPeopleStatus;
/**
* 经度
*/
private String longitude;
/**
* 纬度
*/
private String latitude;
private Integer revision;
private String createdBy;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createdTime;
private String updatedBy;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updatedTime;
}

9
epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java

@ -7,6 +7,7 @@ import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.*;
import com.epmet.dto.form.*;
import com.epmet.dto.form.patrol.PatrolQueryFormDTO;
import com.epmet.dto.result.*;
import com.epmet.feign.fallback.EpmetUserOpenFeignClientFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
@ -689,4 +690,12 @@ public interface EpmetUserOpenFeignClient {
*/
@PostMapping(value = "/epmetuser/icresiuser/geticresiuser/{icResiUserId}")
Result<IcResiUserDTO> getIcResiUserDTO(@PathVariable("icResiUserId") String icResiUserId);
/**
* desc:获取例行工作 数据 分页
* @param patrolQueryFormDTO
* @return
*/
@PostMapping(value = "//epmetuser/patrolroutinework/selectList")
Result<List<PatrolRoutineWorkResult>> getPatrolRoutineWorkList(@RequestBody PatrolQueryFormDTO patrolQueryFormDTO);
}

6
epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java

@ -7,6 +7,7 @@ import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.*;
import com.epmet.dto.form.*;
import com.epmet.dto.form.patrol.PatrolQueryFormDTO;
import com.epmet.dto.result.*;
import com.epmet.feign.EpmetUserOpenFeignClient;
@ -511,4 +512,9 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien
public Result<IcResiUserDTO> getIcResiUserDTO(String icResiUserId) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getIcResiUserDTO", icResiUserId);
}
@Override
public Result<List<PatrolRoutineWorkResult>> getPatrolRoutineWorkList(PatrolQueryFormDTO patrolQueryFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getPatrolRoutineWorkList", patrolQueryFormDTO);
}
}

23
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/PatrolRoutineWorkController.java

@ -4,9 +4,17 @@ import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.PatrolRoutineWorkFormDTO;
import com.epmet.dto.form.patrol.PatrolQueryFormDTO;
import com.epmet.dto.result.PatrolRoutineWorkResult;
import com.epmet.service.PatrolRoutineWorkService;
import com.github.pagehelper.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
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;
import java.util.List;
/**
* 例行工作
@ -21,6 +29,19 @@ public class PatrolRoutineWorkController {
@Autowired
private PatrolRoutineWorkService gridUserWorkService;
/**
* @Description 添加例行工作
* @param formDTO
* @author zxc
* @date 2021/10/19 1:35 下午
*/
@NoRepeatSubmit
@PostMapping("selectList")
public Result<List<PatrolRoutineWorkResult>> gridUserWork(@RequestBody PatrolQueryFormDTO formDTO){
formDTO.setPage(false);
Page<PatrolRoutineWorkResult> data = gridUserWorkService.listPage(formDTO);
return new Result().ok(data.getResult());
}
/**
* @Description 添加例行工作
* @param formDTO

9
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/PatrolRoutineWorkDao.java

@ -18,9 +18,13 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.patrol.PatrolQueryFormDTO;
import com.epmet.dto.result.PatrolRoutineWorkResult;
import com.epmet.entity.PatrolRoutineWorkEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 巡查例行工作
*
@ -29,5 +33,6 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface PatrolRoutineWorkDao extends BaseDao<PatrolRoutineWorkEntity> {
}
List<PatrolRoutineWorkResult> selectList(PatrolQueryFormDTO formDTO);
}

10
epmet-user/epmet-user-server/src/main/java/com/epmet/service/PatrolRoutineWorkService.java

@ -19,7 +19,10 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.dto.form.PatrolRoutineWorkFormDTO;
import com.epmet.dto.form.patrol.PatrolQueryFormDTO;
import com.epmet.dto.result.PatrolRoutineWorkResult;
import com.epmet.entity.PatrolRoutineWorkEntity;
import com.github.pagehelper.Page;
/**
* 巡查例行工作
@ -34,4 +37,11 @@ public interface PatrolRoutineWorkService extends BaseService<PatrolRoutineWorkE
* @param formDTO
*/
void add(PatrolRoutineWorkFormDTO formDTO);
/**
* desc:分页获取
* @param formDTO
* @return
*/
Page<PatrolRoutineWorkResult> listPage(PatrolQueryFormDTO formDTO);
}

14
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java

@ -34,6 +34,8 @@ import com.epmet.dao.PatrolRoutineWorkDao;
import com.epmet.dto.CustomerGridDTO;
import com.epmet.dto.form.CustomerGridFormDTO;
import com.epmet.dto.form.PatrolRoutineWorkFormDTO;
import com.epmet.dto.form.patrol.PatrolQueryFormDTO;
import com.epmet.dto.result.PatrolRoutineWorkResult;
import com.epmet.entity.PatrolRoutineWorkEntity;
import com.epmet.entity.PatrolRoutineWorkTypeEntity;
import com.epmet.feign.EpmetAdminOpenFeignClient;
@ -42,6 +44,8 @@ import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.send.SendMqMsgUtil;
import com.epmet.service.PatrolRoutineWorkService;
import com.epmet.service.PatrolRoutineWorkTypeService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -103,8 +107,8 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl<PatrolRoutineW
entity.setUserId(loginUserUtil.getLoginUserId());
entity.setCustomerId(loginUserUtil.getLoginUserCustomerId());
//entity.setUserId("loginUserUtil.getLoginUserId()");
//entity.setCustomerId("loginUserUtil.getLoginUserCustomerId()");
entity.setUserId("loginUserUtil.getLoginUserId()");
entity.setCustomerId("45687aa479955f9d06204d415238f7cc");
baseDao.insert(entity);
Result<List<DictTreeResultDTO>> mapResult = adminOpenFeignClient.dictTree(DictTypeEnum.PATROL_WORK_TYPE.getCode());
@ -137,6 +141,12 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl<PatrolRoutineW
}
@Override
public Page<PatrolRoutineWorkResult> listPage(PatrolQueryFormDTO formDTO) {
return PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.isPage())
.doSelectPage(() -> baseDao.selectList(formDTO));
}
/**
* desc:递归遍历树形结构 构建pids 根节点pids 为空字符串
*

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

@ -287,7 +287,7 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl<StaffPatrolRec
//发送巡查消息
StaffPatrolMQMsg staffPatrolMQMsg = new StaffPatrolMQMsg();
staffPatrolMQMsg.setCustomerId(record.getCustomerId());
staffPatrolMQMsg.setPatrolId(record.getId());
staffPatrolMQMsg.setObjectId(record.getId());
boolean b = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendPatrolMqMsg(staffPatrolMQMsg,messageType);
if (!b) {

17
epmet-user/epmet-user-server/src/main/resources/mapper/PatrolRoutineWorkDao.xml

@ -22,6 +22,21 @@
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<!--支持多级分类哈-->
<select id="selectList" resultType="com.epmet.dto.result.PatrolRoutineWorkResult">
SELECT
m.*,
prwt.WORK_TYPE_CODE AS workTypeSecondCode,
substring_index(prwt.ALL_P_CODE,':',1) AS workTypeFirstCode
FROM epmet_user.patrol_routine_work m
LEFT JOIN patrol_routine_work_type prwt ON m.ID = prwt.ROUTINE_WORK_ID
WHERE
m.CUSTOMER_ID = #{customerId}
<if test="id != null and id != ''">
AND m.ID = #{id}
</if>
AND m.DEL_FLAG = '0'
</select>
</mapper>
</mapper>

Loading…
Cancel
Save