Browse Source

添加例行工作 mq 生产者

dev_shibei_match
jianjun 4 years ago
parent
commit
a46320761c
  1. 24
      epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/BaseMQMsgDTO.java
  2. 8
      epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/StaffPatrolMQMsg.java
  3. 6
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SystemMessageType.java
  4. 2
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/send/SendMqMsgUtil.java
  5. 5
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SystemMessageServiceImpl.java
  6. 2
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PatrolRoutineWorkFormDTO.java
  7. 110
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java

24
epmet-commons/epmet-commons-rocketmq/src/main/java/com/epmet/commons/rocketmq/messages/BaseMQMsgDTO.java

@ -0,0 +1,24 @@
package com.epmet.commons.rocketmq.messages;
import lombok.Data;
import java.io.Serializable;
/**
* 基础消息体
* @author liujianjun
*/
@Data
public class BaseMQMsgDTO implements Serializable {
private static final long serialVersionUID = 1019260278983535301L;
/**
* 客户Id
*/
private String customerId;
/**
* 对象id
*/
private String objectId;
}

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

@ -7,12 +7,8 @@ import lombok.Data;
* @author liujianjun * @author liujianjun
*/ */
@Data @Data
public class StaffPatrolMQMsg { public class StaffPatrolMQMsg extends BaseMQMsgDTO {
/** private static final long serialVersionUID = 3039825049521866599L;
* 客户Id
*/
private String customerId;
/** /**
* 巡查记录id * 巡查记录id
*/ */

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

@ -75,6 +75,11 @@ public interface SystemMessageType {
*/ */
String USER_PATROL_STOP = "user_patrol_stop"; String USER_PATROL_STOP = "user_patrol_stop";
/**
* 添加例行工作
*/
String PATROL_ROUTINE_WORK_ADD = "patrol_routine_work_add";
/** /**
* 项目变动 * 项目变动
*/ */
@ -104,4 +109,5 @@ public interface SystemMessageType {
* 需求完成如果服务方是区域化党建单位重新计算这个单位的满意度 * 需求完成如果服务方是区域化党建单位重新计算这个单位的满意度
*/ */
String CAL_PARTY_UNIT_SATISFACTION = "cal_party_unit_satisfaction"; String CAL_PARTY_UNIT_SATISFACTION = "cal_party_unit_satisfaction";
} }

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

@ -132,7 +132,7 @@ public class SendMqMsgUtil {
* @author wxz * @author wxz
* @date 2021.06.21 12:46 * @date 2021.06.21 12:46
*/ */
public boolean sendPatrolMqMsg(StaffPatrolMQMsg msg,String messageType) { public boolean sendPatrolMqMsg(BaseMQMsgDTO msg, String messageType) {
try { try {
SystemMsgFormDTO msgForm = new SystemMsgFormDTO(); SystemMsgFormDTO msgForm = new SystemMsgFormDTO();
msgForm.setMessageType(messageType); msgForm.setMessageType(messageType);

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

@ -181,6 +181,7 @@ public class SystemMessageServiceImpl implements SystemMessageService {
break; break;
case SystemMessageType.USER_PATROL_START: case SystemMessageType.USER_PATROL_START:
case SystemMessageType.USER_PATROL_STOP: case SystemMessageType.USER_PATROL_STOP:
case SystemMessageType.PATROL_ROUTINE_WORK_ADD:
topic = TopicConstants.PATROL; topic = TopicConstants.PATROL;
break; break;
case SystemMessageType.PROJECT_ADD: case SystemMessageType.PROJECT_ADD:
@ -195,6 +196,8 @@ public class SystemMessageServiceImpl implements SystemMessageService {
case SystemMessageType.CAL_PARTY_UNIT_SATISFACTION: case SystemMessageType.CAL_PARTY_UNIT_SATISFACTION:
topic=TopicConstants.CAL_PARTY_UNIT_SATISFACTION; topic=TopicConstants.CAL_PARTY_UNIT_SATISFACTION;
break; break;
default:
logger.info("getTopicByMsgType default topic:{}", msgType);
} }
return topic; return topic;
} }
@ -244,6 +247,8 @@ public class SystemMessageServiceImpl implements SystemMessageService {
l1LastAlertTime = now; l1LastAlertTime = now;
} }
break; break;
default:
logger.info("blockedMqMsgScan default topic:{}", mcb.getTopic());
} }
} }
} }

2
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PatrolRoutineWorkFormDTO.java

@ -24,8 +24,6 @@ public class PatrolRoutineWorkFormDTO implements Serializable {
public interface AddOrUpdateForm { public interface AddOrUpdateForm {
} }
private String customerId;
@NotBlank(message = "网格ID不能为空", groups = AddOrUpdateForm.class) @NotBlank(message = "网格ID不能为空", groups = AddOrUpdateForm.class)
private String gridId; private String gridId;

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

@ -19,6 +19,7 @@ package com.epmet.service.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.rocketmq.messages.BaseMQMsgDTO;
import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.result.DictTreeResultDTO; import com.epmet.commons.tools.dto.result.DictTreeResultDTO;
@ -28,6 +29,7 @@ import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.SystemMessageType;
import com.epmet.dao.PatrolRoutineWorkDao; import com.epmet.dao.PatrolRoutineWorkDao;
import com.epmet.dto.CustomerGridDTO; import com.epmet.dto.CustomerGridDTO;
import com.epmet.dto.form.CustomerGridFormDTO; import com.epmet.dto.form.CustomerGridFormDTO;
@ -35,7 +37,9 @@ import com.epmet.dto.form.PatrolRoutineWorkFormDTO;
import com.epmet.entity.PatrolRoutineWorkEntity; import com.epmet.entity.PatrolRoutineWorkEntity;
import com.epmet.entity.PatrolRoutineWorkTypeEntity; import com.epmet.entity.PatrolRoutineWorkTypeEntity;
import com.epmet.feign.EpmetAdminOpenFeignClient; import com.epmet.feign.EpmetAdminOpenFeignClient;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.GovOrgOpenFeignClient; import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.send.SendMqMsgUtil;
import com.epmet.service.PatrolRoutineWorkService; import com.epmet.service.PatrolRoutineWorkService;
import com.epmet.service.PatrolRoutineWorkTypeService; import com.epmet.service.PatrolRoutineWorkTypeService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -66,7 +70,9 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl<PatrolRoutineW
@Autowired @Autowired
private LoginUserUtil loginUserUtil; private LoginUserUtil loginUserUtil;
@Autowired @Autowired
PatrolRoutineWorkTypeService patrolRoutineWorkTypeService; private PatrolRoutineWorkTypeService patrolRoutineWorkTypeService;
@Autowired
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
/** /**
* @param formDTO * @param formDTO
@ -77,49 +83,57 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl<PatrolRoutineW
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void add(PatrolRoutineWorkFormDTO formDTO) { public void add(PatrolRoutineWorkFormDTO formDTO) {
if (formDTO.getWorkTypeList().toString().contains("02") PatrolRoutineWorkEntity entity = null;
&& (formDTO.getIsKeyPeopleLocate() == null || StringUtils.isBlank(formDTO.getKeyPeopleStatus()))){ try {
log.warn("add patrolRoutineWork fail,param is error,param:{}", JSON.toJSONString(formDTO)); if (formDTO.getWorkTypeList().toString().contains("02")
throw new EpmetException(EpmetErrorCode.ORG_ADD_FAILED.getCode()); && (formDTO.getIsKeyPeopleLocate() == null || StringUtils.isBlank(formDTO.getKeyPeopleStatus()))) {
} log.warn("add patrolRoutineWork fail,param is error,param:{}", JSON.toJSONString(formDTO));
PatrolRoutineWorkEntity entity = ConvertUtils.sourceToTarget(formDTO, PatrolRoutineWorkEntity.class); throw new EpmetException(EpmetErrorCode.ORG_ADD_FAILED.getCode());
}
entity = ConvertUtils.sourceToTarget(formDTO, PatrolRoutineWorkEntity.class);
CustomerGridFormDTO gridFormDTO = new CustomerGridFormDTO(); CustomerGridFormDTO gridFormDTO = new CustomerGridFormDTO();
gridFormDTO.setGridId(formDTO.getGridId()); gridFormDTO.setGridId(formDTO.getGridId());
Result<CustomerGridDTO> gridBaseInfoData = govOrgOpenFeignClient.getGridBaseInfoByGridId(gridFormDTO); Result<CustomerGridDTO> gridBaseInfoData = govOrgOpenFeignClient.getGridBaseInfoByGridId(gridFormDTO);
if (!gridBaseInfoData.success()) { if (!gridBaseInfoData.success()) {
throw new EpmetException("查询网格基本信息失败......"); throw new EpmetException("查询网格基本信息失败......");
} }
CustomerGridDTO gridBaseInfo = gridBaseInfoData.getData(); CustomerGridDTO gridBaseInfo = gridBaseInfoData.getData();
entity.setPids(gridBaseInfo.getPids()); entity.setPids(gridBaseInfo.getPids());
entity.setUserId(loginUserUtil.getLoginUserId()); entity.setUserId(loginUserUtil.getLoginUserId());
entity.setCustomerId(loginUserUtil.getLoginUserCustomerId()); entity.setCustomerId(loginUserUtil.getLoginUserCustomerId());
//entity.setUserId("loginUserUtil.getLoginUserId()"); //entity.setUserId("loginUserUtil.getLoginUserId()");
//entity.setCustomerId("loginUserUtil.getLoginUserCustomerId()"); //entity.setCustomerId("loginUserUtil.getLoginUserCustomerId()");
baseDao.insert(entity); baseDao.insert(entity);
Result<List<DictTreeResultDTO>> mapResult = adminOpenFeignClient.dictTree(DictTypeEnum.PATROL_WORK_TYPE.getCode()); Result<List<DictTreeResultDTO>> mapResult = adminOpenFeignClient.dictTree(DictTypeEnum.PATROL_WORK_TYPE.getCode());
if (mapResult == null || !mapResult.success() || CollectionUtils.isEmpty(mapResult.getData())) { if (mapResult == null || !mapResult.success() || CollectionUtils.isEmpty(mapResult.getData())) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "例行工作类型字典获取失败!"); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "例行工作类型字典获取失败!");
}
List<DictTreeResultDTO> dictTree = mapResult.getData();
Map<String, StringBuilder> pidsMap = new HashMap<>();
dictTree.forEach(dto -> buildAllParentIdPath(pidsMap, dto));
//插入分类
List<PatrolRoutineWorkTypeEntity> workTypeList = new ArrayList<>();
for (String code : formDTO.getWorkTypeList()) {
PatrolRoutineWorkTypeEntity typeEntity = new PatrolRoutineWorkTypeEntity();
typeEntity.setCustomerId(loginUserUtil.getLoginUserCustomerId());
typeEntity.setRoutineWorkId(entity.getId());
typeEntity.setWorkTypeCode(code);
StringBuilder pids = pidsMap.get(code);
typeEntity.setAllPCode(pids.length() == NumConstant.ZERO ? NumConstant.ZERO_STR : pids.toString());
workTypeList.add(typeEntity);
}
patrolRoutineWorkTypeService.insertBatch(workTypeList);
} finally {
if (entity != null){
sendPatrolMsg(entity.getCustomerId(),entity.getId(),SystemMessageType.PATROL_ROUTINE_WORK_ADD);
}
} }
List<DictTreeResultDTO> dictTree = mapResult.getData();
Map<String, StringBuilder> pidsMap = new HashMap<>();
dictTree.forEach(dto -> buildAllParentIdPath(pidsMap, dto));
List<PatrolRoutineWorkTypeEntity> workTypeList = new ArrayList<>();
formDTO.getWorkTypeList().forEach(code -> {
PatrolRoutineWorkTypeEntity typeEntity = new PatrolRoutineWorkTypeEntity();
typeEntity.setCustomerId(loginUserUtil.getLoginUserCustomerId());
typeEntity.setRoutineWorkId(entity.getId());
typeEntity.setWorkTypeCode(code);
StringBuilder pids = pidsMap.get(code);
typeEntity.setAllPCode(pids.length() == NumConstant.ZERO ? NumConstant.ZERO_STR : pids.toString());
workTypeList.add(typeEntity);
});
patrolRoutineWorkTypeService.insertBatch(workTypeList);
} }
@ -154,6 +168,18 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl<PatrolRoutineW
} }
} }
private void sendPatrolMsg(String customerId, String id, String messageType) {
//发送巡查消息
BaseMQMsgDTO baseMQMsgDTO = new BaseMQMsgDTO();
baseMQMsgDTO.setCustomerId(customerId);
baseMQMsgDTO.setObjectId(id);
boolean b = SendMqMsgUtil.build().openFeignClient(epmetMessageOpenFeignClient).sendPatrolMqMsg(baseMQMsgDTO, messageType);
if (!b) {
log.error("发送{}巡查消息到mq失败,patrolId:{}", messageType, id);
}
}
public static void main(String[] args) { public static void main(String[] args) {
String str = "[{\"id\":\"01\",\"pid\":\"0\",\"children\":[{\"id\":\"0101\",\"pid\":\"01\",\"children\":[{\"id\":\"010101\",\"pid\":\"0101\",\"children\":[],\"name\":\"出租房屋巡查\"}],\"name\":\"出租房屋巡查\"},{\"id\":\"0102\",\"pid\":\"01\",\"children\":[],\"name\":\"重点场所巡查\"},{\"id\":\"0103\",\"pid\":\"01\",\"children\":[],\"name\":\"宗教活动\"},{\"id\":\"0199\",\"pid\":\"01\",\"children\":[],\"name\":\"其他\"}],\"name\":\"重点巡查\"},{\"id\":\"02\",\"pid\":\"0\",\"children\":[{\"id\":\"0201\",\"pid\":\"02\",\"children\":[],\"name\":\"刑满释放人员\"},{\"id\":\"0202\",\"pid\":\"02\",\"children\":[],\"name\":\"社区矫正\"},{\"id\":\"0203\",\"pid\":\"02\",\"children\":[],\"name\":\"吸毒人员\"},{\"id\":\"0204\",\"pid\":\"02\",\"children\":[],\"name\":\"信访人员\"},{\"id\":\"0205\",\"pid\":\"02\",\"children\":[],\"name\":\"重点青少年\"},{\"id\":\"0206\",\"pid\":\"02\",\"children\":[],\"name\":\"精神障碍者\"}],\"name\":\"特殊人群\"},{\"id\":\"09\",\"pid\":\"0\",\"children\":[{\"id\":\"0901\",\"pid\":\"09\",\"children\":[],\"name\":\"公共服务\"},{\"id\":\"0902\",\"pid\":\"09\",\"children\":[],\"name\":\"权益保障\"},{\"id\":\"0903\",\"pid\":\"09\",\"children\":[],\"name\":\"政策宣传\"},{\"id\":\"0904\",\"pid\":\"09\",\"children\":[],\"name\":\"便利服务\"},{\"id\":\"0999\",\"pid\":\"09\",\"children\":[],\"name\":\"其他\"}],\"name\":\"为民服务\"}]"; String str = "[{\"id\":\"01\",\"pid\":\"0\",\"children\":[{\"id\":\"0101\",\"pid\":\"01\",\"children\":[{\"id\":\"010101\",\"pid\":\"0101\",\"children\":[],\"name\":\"出租房屋巡查\"}],\"name\":\"出租房屋巡查\"},{\"id\":\"0102\",\"pid\":\"01\",\"children\":[],\"name\":\"重点场所巡查\"},{\"id\":\"0103\",\"pid\":\"01\",\"children\":[],\"name\":\"宗教活动\"},{\"id\":\"0199\",\"pid\":\"01\",\"children\":[],\"name\":\"其他\"}],\"name\":\"重点巡查\"},{\"id\":\"02\",\"pid\":\"0\",\"children\":[{\"id\":\"0201\",\"pid\":\"02\",\"children\":[],\"name\":\"刑满释放人员\"},{\"id\":\"0202\",\"pid\":\"02\",\"children\":[],\"name\":\"社区矫正\"},{\"id\":\"0203\",\"pid\":\"02\",\"children\":[],\"name\":\"吸毒人员\"},{\"id\":\"0204\",\"pid\":\"02\",\"children\":[],\"name\":\"信访人员\"},{\"id\":\"0205\",\"pid\":\"02\",\"children\":[],\"name\":\"重点青少年\"},{\"id\":\"0206\",\"pid\":\"02\",\"children\":[],\"name\":\"精神障碍者\"}],\"name\":\"特殊人群\"},{\"id\":\"09\",\"pid\":\"0\",\"children\":[{\"id\":\"0901\",\"pid\":\"09\",\"children\":[],\"name\":\"公共服务\"},{\"id\":\"0902\",\"pid\":\"09\",\"children\":[],\"name\":\"权益保障\"},{\"id\":\"0903\",\"pid\":\"09\",\"children\":[],\"name\":\"政策宣传\"},{\"id\":\"0904\",\"pid\":\"09\",\"children\":[],\"name\":\"便利服务\"},{\"id\":\"0999\",\"pid\":\"09\",\"children\":[],\"name\":\"其他\"}],\"name\":\"为民服务\"}]";
List<DictTreeResultDTO> dtos = JSON.parseArray(str, DictTreeResultDTO.class); List<DictTreeResultDTO> dtos = JSON.parseArray(str, DictTreeResultDTO.class);

Loading…
Cancel
Save