feat(REQ-3647) - 新增 IM 类型推送 MQ 广播事件
This commit is contained in:
parent
ed748f531a
commit
ea6789188f
@ -17,7 +17,7 @@ import java.util.List;
|
||||
@Data
|
||||
public class BpmnTaskRemindDTO {
|
||||
/**
|
||||
* 终端类型
|
||||
* 操作催办时的终端类型,管理端cm、工人端cmp
|
||||
*/
|
||||
@NotBlank(message = "终端类型不能为空")
|
||||
private String terminalType;
|
||||
|
||||
@ -75,5 +75,9 @@ public class MessagePushDTO implements Serializable {
|
||||
* 节点电子签开关
|
||||
*/
|
||||
private Boolean activitySignature;
|
||||
/**
|
||||
* 催办专用属性,催办时的终端类型(管理端、工人端)
|
||||
*/
|
||||
private String terminalType;
|
||||
|
||||
}
|
||||
|
||||
@ -37,4 +37,6 @@ public interface MessagePushEvent extends FlowableEvent {
|
||||
|
||||
String getImTemplateCode();
|
||||
|
||||
String getTerminalType();
|
||||
|
||||
}
|
||||
|
||||
@ -29,11 +29,11 @@ public class MessagePushEventBuilder {
|
||||
public static MessagePushEventImpl createEvent(MessagePushEventType type, List<BpmnTaskDelegateAssigner> assigners,
|
||||
BpmnNoticeConf noticeConf, String processInstanceId, String processDefinitionKey,
|
||||
String tenantId, String taskId, Boolean activitySignature) {
|
||||
return createEvent(type, assigners, noticeConf, processInstanceId, processDefinitionKey, tenantId, taskId, activitySignature, null);
|
||||
return createEvent(type, assigners, noticeConf, processInstanceId, processDefinitionKey, tenantId, taskId, activitySignature, null, null);
|
||||
}
|
||||
public static MessagePushEventImpl createEvent(MessagePushEventType type, List<BpmnTaskDelegateAssigner> assigners,
|
||||
BpmnNoticeConf noticeConf, String processInstanceId, String processDefinitionKey,
|
||||
String tenantId, String taskId, Boolean activitySignature, String imTemplateCode) {
|
||||
String tenantId, String taskId, Boolean activitySignature, String imTemplateCode, String terminalType) {
|
||||
switch (type) {
|
||||
case NOTICE:
|
||||
return createNoticeEvent(assigners, noticeConf, processInstanceId, processDefinitionKey, tenantId, taskId, activitySignature);
|
||||
@ -48,7 +48,7 @@ public class MessagePushEventBuilder {
|
||||
case SMS:
|
||||
return createSmsEvent(assigners, noticeConf, processInstanceId, processDefinitionKey, tenantId, taskId, activitySignature);
|
||||
case IM:
|
||||
return createImEvent(assigners, imTemplateCode, processInstanceId);
|
||||
return createImEvent(assigners, imTemplateCode, processInstanceId, terminalType);
|
||||
default:
|
||||
throw new WorkflowEngineException(MES_PUSH_OBJECT_BUILD_ERROR);
|
||||
}
|
||||
@ -128,7 +128,8 @@ public class MessagePushEventBuilder {
|
||||
|
||||
public static MessagePushEventImpl createImEvent(List<BpmnTaskDelegateAssigner> assigners,
|
||||
String imTemplateCode,
|
||||
String processInstanceId) {
|
||||
return new MessagePushEventImpl(IM, assigners, imTemplateCode, processInstanceId);
|
||||
String processInstanceId,
|
||||
String terminalType) {
|
||||
return new MessagePushEventImpl(IM, assigners, imTemplateCode, processInstanceId, terminalType);
|
||||
}
|
||||
}
|
||||
|
||||
@ -31,6 +31,7 @@ public class MessagePushEventImpl implements MessagePushEvent {
|
||||
private String tenantId;
|
||||
private String taskId;
|
||||
private String imTemplateCode;
|
||||
private String terminalType;
|
||||
|
||||
public MessagePushEventImpl(FlowableEventType type) {
|
||||
if (type == null) {
|
||||
@ -63,9 +64,10 @@ public class MessagePushEventImpl implements MessagePushEvent {
|
||||
}
|
||||
|
||||
public MessagePushEventImpl(FlowableEventType type, List<BpmnTaskDelegateAssigner> assigners, String imTemplateCode,
|
||||
String processInstanceId) {
|
||||
String processInstanceId, String terminalType) {
|
||||
this(type, assigners, null, processInstanceId, null, null, null);
|
||||
this.imTemplateCode = imTemplateCode;
|
||||
this.terminalType = terminalType;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -206,6 +208,15 @@ public class MessagePushEventImpl implements MessagePushEvent {
|
||||
this.imTemplateCode = imTemplateCode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTerminalType() {
|
||||
return terminalType;
|
||||
}
|
||||
|
||||
public void setTerminalType(String terminalType) {
|
||||
this.terminalType = terminalType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getClass() + " - " + type;
|
||||
|
||||
@ -910,7 +910,7 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService {
|
||||
Lists.newArrayList(assigner), noticeConfig.orElse(null), processInstance.getProcessInstanceId(),
|
||||
processInstance.getProcessDefinitionKey(), processInstance.getTenantId(), task.getId(),
|
||||
getActivitySignature(process.getFlowElement(dto.getTaskDefinitionKey())),
|
||||
refreshProperties.getImTemplateCode());
|
||||
refreshProperties.getImTemplateCode(), dto.getTerminalType());
|
||||
eventDispatcher.dispatchEvent(event, processEngineConfiguration.getEngineCfgKey());
|
||||
});
|
||||
});
|
||||
|
||||
@ -335,13 +335,14 @@ public class RocketMqMessagePushEventListener extends AbstractBpmnEventListener<
|
||||
|
||||
@Override
|
||||
public void onIm(MessagePushEvent event) {
|
||||
if (!StringUtils.hasText(event.getImTemplateCode())) {
|
||||
if (!StringUtils.hasText(event.getImTemplateCode()) && !StringUtils.hasText(event.getTerminalType())) {
|
||||
log.warn("RocketMqMessagePushEventListener#onIm...ignore, imTemplateCode or terminalType is empty, event: {}", JSONUtil.toJsonStr(event));
|
||||
return;
|
||||
}
|
||||
log.info("RocketMqMessagePushEventListener#onIm...msgTemplateId: {}, receivePerson: {}, processInstanceId: {}",
|
||||
event.getImTemplateCode(), JSONUtil.toJsonStr(event.getAssigners()), event.getProcessInstanceId());
|
||||
MessagePushDTO dto = build(event.getImTemplateCode(),
|
||||
PROCESS_PUSH_IM, event, collectionVariable(event), event.getActivitySignature());
|
||||
PROCESS_PUSH_IM, event, collectionVariable(event), event.getActivitySignature(), event.getTerminalType());
|
||||
sendMessageQueue(dto, PROCESS_PUSH_IM);
|
||||
log.info("RocketMqMessagePushEventListener#onIm...end, msgTemplateId: {}, receivePerson: {}, processInstanceId: {}",
|
||||
event.getImTemplateCode(), JSONUtil.toJsonStr(event.getAssigners()), event.getProcessInstanceId());
|
||||
@ -423,6 +424,11 @@ public class RocketMqMessagePushEventListener extends AbstractBpmnEventListener<
|
||||
|
||||
public MessagePushDTO build(String templateId, ProcessMessagePushEventEnum type, MessagePushEvent event, Map<String,
|
||||
Object> variables, Boolean activitySignature) {
|
||||
return build(templateId, type, event, variables, activitySignature, null);
|
||||
}
|
||||
|
||||
public MessagePushDTO build(String templateId, ProcessMessagePushEventEnum type, MessagePushEvent event, Map<String,
|
||||
Object> variables, Boolean activitySignature, String terminalType) {
|
||||
return new MessagePushDTO()
|
||||
.setProcessInstanceId(event.getProcessInstanceId())
|
||||
.setAdscriptionTenantId(event.getTenantId())
|
||||
@ -433,7 +439,8 @@ public class RocketMqMessagePushEventListener extends AbstractBpmnEventListener<
|
||||
.setReceivePersons(event.getAssigners())
|
||||
.setVariables(variables)
|
||||
.setProcessApproveConf(event.getProcessApproveConfig())
|
||||
.setActivitySignature(activitySignature);
|
||||
.setActivitySignature(activitySignature)
|
||||
.setTerminalType(terminalType);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -83,4 +83,10 @@ public interface MessageNotificationEventHandler extends Ordered {
|
||||
default void pushSms(MessagePushDTO dto) {
|
||||
}
|
||||
|
||||
/**
|
||||
* IM 推送
|
||||
* @param dto
|
||||
*/
|
||||
default void pushIm(MessagePushDTO dto) {}
|
||||
|
||||
}
|
||||
|
||||
@ -66,6 +66,8 @@ public class InnerNotificationEventListener extends AbstractInnerWorkflowListene
|
||||
case PROCESS_PUSH_SMS:
|
||||
consumer = noticeListener::pushSms;
|
||||
break;
|
||||
case PROCESS_PUSH_IM:
|
||||
consumer = noticeListener::pushIm;
|
||||
default:
|
||||
log.warn("unknown message event type: {}", type);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user