add - 新增完成抄送的功能

This commit is contained in:
wangli 2024-04-10 15:30:24 +08:00
parent cf961520ca
commit a49e07cb85
7 changed files with 64 additions and 0 deletions

View File

@ -14,6 +14,7 @@ public enum ProcessMessagePushEventEnum {
PROCESS_PUSH_PENDING("process-push", "process-push-pending", "待办推送"),
PROCESS_PUSH_PENDING_COMPLETE("process-push", "process-push-pending-complete", "完成待办"),
PROCESS_CARBON_COPY("process-push", "process-carbon-copy", "抄送流程"),
PROCESS_CARBON_COPY_COMPLETE("process-push", "process-carbon-copy-complete", "完成抄送"),
PROCESS_PUSH_SMS("process-push", "process-push-sms", "短信推送"),
;

View File

@ -8,6 +8,7 @@ import java.util.List;
import static cn.axzo.workflow.core.common.code.OtherRespCode.MES_PUSH_OBJECT_BUILD_ERROR;
import static cn.axzo.workflow.core.engine.event.MessagePushEventType.CARBON_COPY;
import static cn.axzo.workflow.core.engine.event.MessagePushEventType.CARBON_COPY_COMPLETE;
import static cn.axzo.workflow.core.engine.event.MessagePushEventType.NOTICE;
import static cn.axzo.workflow.core.engine.event.MessagePushEventType.PENDING_COMPLETE;
import static cn.axzo.workflow.core.engine.event.MessagePushEventType.PENDING_PUSH;
@ -33,6 +34,8 @@ public class MessagePushEventBuilder {
return createPendingCompleteEvent(assigners, noticeConf, processInstanceId, tenantId, taskId);
case CARBON_COPY:
return createCarbonCopyEvent(assigners, noticeConf, processInstanceId, tenantId);
case CARBON_COPY_COMPLETE:
return createCarbonCopyCompleteEvent(assigners, noticeConf, processInstanceId, tenantId);
case SMS:
return createSmsEvent(assigners, noticeConf, processInstanceId, tenantId, taskId);
default:
@ -73,6 +76,14 @@ public class MessagePushEventBuilder {
return newEvent;
}
public static MessagePushEventImpl createCarbonCopyCompleteEvent(List<BpmnTaskDelegateAssigner> assigners,
BpmnNoticeConf noticeConf, String processInstanceId,
String tenantId) {
MessagePushEventImpl newEvent = new MessagePushEventImpl(CARBON_COPY_COMPLETE, assigners, noticeConf,
processInstanceId, tenantId, null);
return newEvent;
}
public static MessagePushEventImpl createSmsEvent(List<BpmnTaskDelegateAssigner> assigners,
BpmnNoticeConf noticeConf,
String processInstanceId, String tenantId, String taskId) {

View File

@ -31,6 +31,10 @@ public enum MessagePushEventType implements FlowableEventType {
* 抄送消息
*/
CARBON_COPY,
/**
* 完成抄送消息
*/
CARBON_COPY_COMPLETE,
/**
* 推送短信
*/

View File

@ -78,6 +78,12 @@ public class EngineNoticeEventListener extends AbstractFlowableEventListener {
stopWatch.stop();
log.info("CARBON-COPY StopWatch : running time = " + stopWatch.getTotalTimeSeconds() + " 's");
break;
case CARBON_COPY_COMPLETE:
stopWatch.start("CARBON-COPY-COMPLETE Event Execution Time");
getOrderedListeners().forEach(i -> i.onCarbonCopyComplete(event));
stopWatch.stop();
log.info("CARBON-COPY-COMPLETE StopWatch : running time = " + stopWatch.getTotalTimeSeconds() + " 's");
break;
case SMS:
stopWatch.start("SMS Event Execution Time");
getOrderedListeners().forEach(i -> i.onSms(event));

View File

@ -43,6 +43,15 @@ public interface BpmnMessagePushEventListener extends Ordered {
}
/**
* 完成抄送
*
* @param event
*/
default void onCarbonCopyComplete(MessagePushEvent event) {
}
/**
* 推送短信
*

View File

@ -64,6 +64,7 @@ import static cn.axzo.workflow.common.constant.VariableConstants.VAR_TASK_ID;
import static cn.axzo.workflow.common.constant.VariableConstants.VAR_TASK_START_TIME;
import static cn.axzo.workflow.common.constant.VariableConstants.VAR_TASK_USER_NAME;
import static cn.axzo.workflow.common.enums.ProcessMessagePushEventEnum.PROCESS_CARBON_COPY;
import static cn.axzo.workflow.common.enums.ProcessMessagePushEventEnum.PROCESS_CARBON_COPY_COMPLETE;
import static cn.axzo.workflow.common.enums.ProcessMessagePushEventEnum.PROCESS_PUSH_NOTICE;
import static cn.axzo.workflow.common.enums.ProcessMessagePushEventEnum.PROCESS_PUSH_PENDING;
import static cn.axzo.workflow.common.enums.ProcessMessagePushEventEnum.PROCESS_PUSH_PENDING_COMPLETE;
@ -205,6 +206,33 @@ public class RocketMqMessagePushEventListener implements BpmnMessagePushEventLis
}
}
/**
* 完成抄送
*
* @param event
*/
@Override
public void onCarbonCopyComplete(MessagePushEvent event) {
if (Objects.isNull(event.getNoticeConfig())
|| Objects.isNull(event.getNoticeConfig().getCarbonCopy())
|| !StringUtils.hasLength(event.getNoticeConfig().getCarbonCopy().getCarbonCopyMessageId())) {
return;
}
if (log.isDebugEnabled()) {
log.debug("RocketMqMessagePushEventListener#onCarbonCopyComplete... cc' templateId: {}",
event.getNoticeConfig().getCarbonCopy().getCarbonCopyMessageId());
}
if (Objects.nonNull(event.getNoticeConfig().getCarbonCopy())) {
MessagePushDTO dto = build(event.getNoticeConfig().getCarbonCopy().getCarbonCopyMessageId(),
PROCESS_CARBON_COPY_COMPLETE, event, collectionVariable(event));
sendMessageQueue(dto, PROCESS_CARBON_COPY_COMPLETE);
}
if (log.isDebugEnabled()) {
log.debug("RocketMqMessagePushEventListener#onCarbonCopyComplete...end, cc' templateId: {}",
event.getNoticeConfig().getCarbonCopy().getCarbonCopyMessageId());
}
}
@Override
public void onSms(MessagePushEvent event) {
if (Objects.isNull(event.getNoticeConfig())

View File

@ -83,9 +83,14 @@ public class MessagePushProcessEventListener implements BpmnProcessEventListener
MessagePushEventImpl messagePushEvent =
MessagePushEventBuilder.createEvent(MessagePushEventType.PENDING_COMPLETE, null, noticeConfig,
event.getProcessInstanceId(), null, null);
MessagePushEventImpl carbonCopyCompleteEvent =
MessagePushEventBuilder.createEvent(MessagePushEventType.CARBON_COPY_COMPLETE, null, noticeConfig,
event.getProcessInstanceId(), null, null);
if (log.isDebugEnabled()) {
log.debug("发送完成待办的消息: {}", JSON.toJSONString(messagePushEvent));
log.debug("发送完成抄送的消息: {}", JSON.toJSONString(carbonCopyCompleteEvent));
}
eventDispatcher.dispatchEvent(carbonCopyCompleteEvent, processEngineConfiguration.getEngineCfgKey());
eventDispatcher.dispatchEvent(messagePushEvent, processEngineConfiguration.getEngineCfgKey());
});
}