Merge branch 'refs/heads/master' into REQ-2393

This commit is contained in:
wangli 2024-04-28 16:00:34 +08:00
commit f50db42c8f
21 changed files with 237 additions and 208 deletions

View File

@ -24,6 +24,6 @@ public class CustomAsyncRunnableExecutionExceptionHandler implements AsyncRunnab
eventDispatcher.dispatchEvent(new ErrorInfoEvent(job, exception), jobServiceConfiguration.getEngineName());
return true;
return false;
}
}

View File

@ -139,10 +139,9 @@ public class EngineExecutionStartListener implements ExecutionListener {
// 这里只会是 human 这一种情况 因为 nobody 在转 BPMN 协议时Activity 直接变成了 ReceiveTask 节点了
List<BpmnTaskDelegateAssigner> assigners = new ArrayList<>();
getApproverSpecify(userTask).ifPresent(specify -> {
if (log.isDebugEnabled()) {
log.debug("当前审批节点ID: {}, 节点名称: {}, 审批人指定方式: {}", userTask.getId(),
log.info("当前审批节点ID: {}, 节点名称: {}, 审批人指定方式: {}", userTask.getId(),
userTask.getName(), specify.getDesc());
}
assigners.addAll(approverSelect(specify.getType(), userTask, execution, true));
});
@ -235,9 +234,7 @@ public class EngineExecutionStartListener implements ExecutionListener {
*/
if ((mock && global) ||
(mock && !global && Objects.equals(category, execution.getProcessDefinitionId().split(":")[0]))) {
if (log.isDebugEnabled()) {
log.debug("当前系统 Nacos 配置中开启了 mock: {}, 将使用 mock 方式查找审批人", mock);
}
log.info("当前系统 Nacos 配置中开启了 mock: {}, 将使用 mock 方式查找审批人", mock);
assigners.addAll(new MockTaskAssigneeSelector(assigneeMap, global, category)
.select(flowElement, execution, throwException));
} else {

View File

@ -148,9 +148,7 @@ public class EngineProcessInstanceEventListener extends AbstractFlowableEngineEv
MessagePushEventImpl messagePushEvent = MessagePushEventBuilder.createEvent(MessagePushEventType.NOTICE,
Lists.newArrayList(assigner), noticeConfig.orElse(null),
processInstance.getProcessInstanceId(), processInstance.getTenantId(), null);
if (log.isDebugEnabled()) {
log.debug("发送站内信: {}", JSONUtil.toJsonStr(messagePushEvent));
}
log.info("发送站内信: {}", JSONUtil.toJsonStr(messagePushEvent));
eventDispatcher.dispatchEvent(messagePushEvent, processEngineConfiguration.getEngineCfgKey());
}

View File

@ -71,9 +71,7 @@ public class InternalExtAxTaskInstEvent_lo_Listener extends AbstractBpmnEventLis
@Override
public void onDeleted(DelegateTask delegateTask) {
Object operationType = delegateTask.getTransientVariable(TASK_COMPLETE_OPERATION_TYPE + delegateTask.getId());
if (log.isDebugEnabled()) {
log.debug("taskId:{}, operationType:{}", delegateTask.getId(), operationType);
}
log.info("taskId:{}, operationType:{}", delegateTask.getId(), operationType);
// 多实例或签同意时,无法正确区分状态, 所以默认认为这种是无需展示在日志中的
BpmnProcessInstanceResultEnum resultEnum = DELETED;

View File

@ -0,0 +1,18 @@
package cn.axzo.workflow.core.repository.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* TODO
*
* @author wangli
* @since 2024/4/28 14:44
*/
@Mapper
public interface CommonMapper {
List<Map<String, Object>> executeDynamicSQL(@Param("sql") String sql);
}

View File

@ -15,6 +15,8 @@ import javax.annotation.Resource;
import java.util.List;
import java.util.Objects;
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.PROCESSING;
/**
* 流程定义扩展表操作服务实现
*
@ -66,6 +68,14 @@ public class ExtAxHiTaskInstServiceImpl implements ExtAxHiTaskInstService {
@Override
public void updateByTaskIdAndInstanceId(String taskId, String processInstanceId, String assignee, BpmnProcessInstanceResultEnum resultEnum) {
ExtAxHiTaskInst existence = getByTaskId(taskId, processInstanceId);
if (Objects.nonNull(existence)) {
log.info("更新扩展任务实例表数据: taskId:{}, instanceId:{}, currentStatus:{}, anticipateStatus: {}",
taskId, processInstanceId, existence.getStatus(), resultEnum.getStatus());
} else {
log.warn("无法正确更新扩展任务表数据: taskId:{}, instanceId:{}, anticipateStatus: {}",
taskId, processInstanceId, resultEnum.getStatus());
}
ExtAxHiTaskInst entity = new ExtAxHiTaskInst();
if (StringUtils.hasText(assignee)) {
entity.setAssignee(assignee);
@ -74,7 +84,9 @@ public class ExtAxHiTaskInstServiceImpl implements ExtAxHiTaskInstService {
LambdaUpdateWrapper<ExtAxHiTaskInst> wrapper = new LambdaUpdateWrapper<ExtAxHiTaskInst>()
.eq(ExtAxHiTaskInst::getTaskId, taskId)
.eq(ExtAxHiTaskInst::getProcInstId, processInstanceId);
.eq(ExtAxHiTaskInst::getProcInstId, processInstanceId)
// 可能由于事件消费时, 嵌套了引擎操作, 会引起一部分的消息顺序异常, 导致状态被异常变更
.eq(ExtAxHiTaskInst::getStatus, PROCESSING.getStatus());
extAxHiTaskInstMapper.update(entity, wrapper);
}
}

View File

@ -0,0 +1,9 @@
<?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="cn.axzo.workflow.core.repository.mapper.CommonMapper">
<!-- 定义执行动态 SQL 的方法 -->
<select id="executeDynamicSQL" resultType="java.util.Map">
${sql}
</select>
</mapper>

View File

@ -115,6 +115,10 @@
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
</dependency>
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
</dependency>
</dependencies>
<build>

View File

@ -13,7 +13,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
* @since 2024/2/6 11:35
*/
@Configuration(proxyBeanMethods = false)
public class WebMvcConfig implements WebMvcConfigurer {
public class WebMvcConfiguration implements WebMvcConfigurer {
@Autowired
private RequestHeaderContextInterceptor requestHeaderContextInterceptor;

View File

@ -0,0 +1,54 @@
package cn.axzo.workflow.server.common.config;
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* XXL-JOB
*
* @author wangli
* @since 2024/4/28 14:02
*/
@Configuration
public class XxlJobConfiguration {
Logger logger = LoggerFactory.getLogger(XxlJobConfiguration.class);
@Value("${xxl.job.admin.addresses}")
private String adminAddresses;
@Value("${xxl.job.executor.appname}")
private String appName;
@Value("")
private String ip;
@Value("${xxl.job.executor.port}")
private int port;
@Value("")
private String accessToken;
@Value("")
private String logPath;
@Value("-1")
private int logRetentionDays;
@Bean
public XxlJobSpringExecutor xxlJobExecutor() {
logger.info(">>>>>>>>>>> xxl-job config init.");
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
xxlJobSpringExecutor.setAppname(appName);
xxlJobSpringExecutor.setIp(ip);
xxlJobSpringExecutor.setPort(port);
xxlJobSpringExecutor.setAccessToken(accessToken);
xxlJobSpringExecutor.setLogPath(logPath);
xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
return xxlJobSpringExecutor;
}
}

View File

@ -64,23 +64,17 @@ public class RocketMqBpmActivityEventListener extends AbstractBpmnEventListener<
@Override
public void onStart(DelegateExecution execution) {
if (log.isDebugEnabled()) {
log.debug("RocketMqBpmActivityEventListener#onStart...activityId: {}", execution.getCurrentActivityId());
}
log.info("RocketMqBpmActivityEventListener#onStart...activityId: {}", execution.getCurrentActivityId());
ProcessActivityDTO dto = build(PROCESS_ACTIVITY_START, execution);
sendMessageQueue(dto, PROCESS_ACTIVITY_START);
if (log.isDebugEnabled()) {
log.debug("RocketMqBpmActivityEventListener#onStart...end, activityId: {}",
log.info("RocketMqBpmActivityEventListener#onStart...end, activityId: {}",
execution.getCurrentActivityId());
}
}
@Override
public void onWaitAssignee(BizSpecifyAssigneeEvent event) {
if (log.isDebugEnabled()) {
log.debug("RocketMqBpmActivityEventListener#onWaitAssignee...activityId: {}", event.getActivityId());
}
log.info("RocketMqBpmActivityEventListener#onWaitAssignee...activityId: {}", event.getActivityId());
// 特殊的自定义业务事件, 不能使用公共的 build 方法
ProcessActivityDTO dto = new ProcessActivityDTO();
dto.setType(PROCESS_ACTIVITY_WAIT_ASSIGNEE);
@ -102,43 +96,33 @@ public class RocketMqBpmActivityEventListener extends AbstractBpmnEventListener<
}
dto.setWorkflowEngineVersion(version);
sendMessageQueue(dto, PROCESS_ACTIVITY_WAIT_ASSIGNEE);
if (log.isDebugEnabled()) {
log.debug("RocketMqBpmActivityEventListener#onWaitAssignee...end, activityId: {}", event.getActivityId());
}
log.info("RocketMqBpmActivityEventListener#onWaitAssignee...end, activityId: {}", event.getActivityId());
}
@Override
public void onTake(DelegateExecution execution) {
if (log.isDebugEnabled()) {
log.debug("RocketMqBpmActivityEventListener#onTake...activityId: {}",
log.info("RocketMqBpmActivityEventListener#onTake...activityId: {}",
execution.getCurrentActivityId());
}
ProcessActivityDTO dto = build(PROCESS_ACTIVITY_TAKE, execution);
handlePassedAssignee(execution, dto);
sendMessageQueue(dto, PROCESS_ACTIVITY_TAKE);
if (log.isDebugEnabled()) {
log.debug("RocketMqBpmActivityEventListener#onTake...end, activityId: {}",
log.info("RocketMqBpmActivityEventListener#onTake...end, activityId: {}",
execution.getCurrentActivityId());
}
}
@Override
public void onEnd(DelegateExecution execution) {
if (log.isDebugEnabled()) {
log.debug("RocketMqMessagePushEventListener#onEnd...activityId: {}",
log.info("RocketMqMessagePushEventListener#onEnd...activityId: {}",
execution.getCurrentActivityId());
}
ProcessActivityDTO dto = build(PROCESS_ACTIVITY_END, execution);
handlePassedAssignee(execution, dto);
sendMessageQueue(dto, PROCESS_ACTIVITY_END);
if (log.isDebugEnabled()) {
log.debug("RocketMqBpmActivityEventListener#onEnd...end, activityId: {}",
log.info("RocketMqBpmActivityEventListener#onEnd...end, activityId: {}",
execution.getCurrentActivityId());
}
}
private ProcessActivityDTO build(ProcessActivityEventEnum type, DelegateExecution execution) {

View File

@ -126,19 +126,15 @@ public class RocketMqMessagePushEventListener extends AbstractBpmnEventListener<
|| Objects.isNull(event.getAssigners())) {
return;
}
if (log.isDebugEnabled()) {
log.debug("RocketMqMessagePushEventListener#onNotice...msgTemplateId: {}, receivePerson: {}",
log.info("RocketMqMessagePushEventListener#onNotice...msgTemplateId: {}, receivePerson: {}",
event.getNoticeConfig().getNotice().getNoticeMessageId(), JSONUtil.toJsonStr(event.getAssigners()));
}
if (Objects.nonNull(event.getNoticeConfig().getNotice())) {
MessagePushDTO dto = build(event.getNoticeConfig().getNotice().getNoticeMessageId(),
PROCESS_PUSH_NOTICE, event, collectionVariable(event));
sendMessageQueue(dto, PROCESS_PUSH_NOTICE);
}
if (log.isDebugEnabled()) {
log.debug("RocketMqMessagePushEventListener#onNotice...end, msgTemplateId: {}, receivePerson: {}",
log.info("RocketMqMessagePushEventListener#onNotice...end, msgTemplateId: {}, receivePerson: {}",
event.getNoticeConfig().getNotice().getNoticeMessageId(), JSONUtil.toJsonStr(event.getAssigners()));
}
}
@ -150,11 +146,9 @@ public class RocketMqMessagePushEventListener extends AbstractBpmnEventListener<
|| Objects.isNull(event.getAssigners())) {
return;
}
if (log.isDebugEnabled()) {
log.debug("RocketMqMessagePushEventListener#onPendingPush...msgTemplateId: {}, receivePerson: {}",
log.info("RocketMqMessagePushEventListener#onPendingPush...msgTemplateId: {}, receivePerson: {}",
event.getNoticeConfig().getPending().getPendingMessageId(),
JSONUtil.toJsonStr(event.getAssigners()));
}
if (Objects.nonNull(event.getNoticeConfig().getPending())) {
MessagePushDTO dto = build(event.getNoticeConfig().getPending().getPendingMessageId(),
PROCESS_PUSH_PENDING, event, collectionVariable(event));
@ -186,11 +180,9 @@ public class RocketMqMessagePushEventListener extends AbstractBpmnEventListener<
dto.setButtons(buttons);
sendMessageQueue(dto, PROCESS_PUSH_PENDING);
}
if (log.isDebugEnabled()) {
log.debug("RocketMqMessagePushEventListener#onPendingPush...end, msgTemplateId: {}, receivePerson: {}",
log.info("RocketMqMessagePushEventListener#onPendingPush...end, msgTemplateId: {}, receivePerson: {}",
event.getNoticeConfig().getPending().getPendingMessageId(),
JSONUtil.toJsonStr(event.getAssigners()));
}
}
private boolean isHistoryOperationUser(BpmnProcessInstanceVO instance, BpmnTaskDelegateAssigner bpmnTaskDelegateAssigner) {
@ -216,21 +208,17 @@ public class RocketMqMessagePushEventListener extends AbstractBpmnEventListener<
|| !StringUtils.hasText(event.getNoticeConfig().getPending().getPendingMessageId())) {
return;
}
if (log.isDebugEnabled()) {
log.debug("RocketMqMessagePushEventListener#onPendingComplete...msgTemplateId: {}, receivePerson: {}",
log.info("RocketMqMessagePushEventListener#onPendingComplete...msgTemplateId: {}, receivePerson: {}",
event.getNoticeConfig().getPending().getPendingMessageId(),
JSONUtil.toJsonStr(event.getAssigners()));
}
if (Objects.nonNull(event.getNoticeConfig().getPending())) {
MessagePushDTO dto = build(event.getNoticeConfig().getPending().getPendingMessageId(),
PROCESS_PUSH_PENDING_COMPLETE, event, collectionVariable(event));
sendMessageQueue(dto, PROCESS_PUSH_PENDING_COMPLETE);
}
if (log.isDebugEnabled()) {
log.debug("RocketMqMessagePushEventListener#onPendingComplete...end, msgTemplateId: {}, receivePerson: " +
log.info("RocketMqMessagePushEventListener#onPendingComplete...end, msgTemplateId: {}, receivePerson: " +
"{}", event.getNoticeConfig().getPending().getPendingMessageId(),
JSONUtil.toJsonStr(event.getAssigners()));
}
}
@Override
@ -240,21 +228,17 @@ public class RocketMqMessagePushEventListener extends AbstractBpmnEventListener<
|| !StringUtils.hasText(event.getNoticeConfig().getCarbonCopy().getCarbonCopyMessageId())) {
return;
}
if (log.isDebugEnabled()) {
log.debug("RocketMqMessagePushEventListener#onCarbonCopy... cc' templateId: {}, receivePerson: {}",
log.info("RocketMqMessagePushEventListener#onCarbonCopy... cc' templateId: {}, receivePerson: {}",
event.getNoticeConfig().getCarbonCopy().getCarbonCopyMessageId(),
JSONUtil.toJsonStr(event.getAssigners()));
}
if (Objects.nonNull(event.getNoticeConfig().getCarbonCopy())) {
MessagePushDTO dto = build(event.getNoticeConfig().getCarbonCopy().getCarbonCopyMessageId(),
PROCESS_CARBON_COPY, event, collectionVariable(event));
sendMessageQueue(dto, PROCESS_CARBON_COPY);
}
if (log.isDebugEnabled()) {
log.debug("RocketMqMessagePushEventListener#onCarbonCopy...end, cc' templateId: {}, receivePerson: {}",
log.info("RocketMqMessagePushEventListener#onCarbonCopy...end, cc' templateId: {}, receivePerson: {}",
event.getNoticeConfig().getCarbonCopy().getCarbonCopyMessageId(),
JSONUtil.toJsonStr(event.getAssigners()));
}
}
/**
@ -269,19 +253,15 @@ public class RocketMqMessagePushEventListener extends AbstractBpmnEventListener<
|| !StringUtils.hasText(event.getNoticeConfig().getCarbonCopy().getCarbonCopyMessageId())) {
return;
}
if (log.isDebugEnabled()) {
log.debug("RocketMqMessagePushEventListener#onCarbonCopyComplete... cc' templateId: {}",
log.info("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: {}",
log.info("RocketMqMessagePushEventListener#onCarbonCopyComplete...end, cc' templateId: {}",
event.getNoticeConfig().getCarbonCopy().getCarbonCopyMessageId());
}
}
@Override
@ -292,19 +272,15 @@ public class RocketMqMessagePushEventListener extends AbstractBpmnEventListener<
|| Objects.isNull(event.getAssigners())) {
return;
}
if (log.isDebugEnabled()) {
log.debug("RocketMqMessagePushEventListener#onSms...msgTemplateId: {}, receivePerson: {}",
log.info("RocketMqMessagePushEventListener#onSms...msgTemplateId: {}, receivePerson: {}",
event.getNoticeConfig().getSms().getSmsId(), JSONUtil.toJsonStr(event.getAssigners()));
}
if (Objects.nonNull(event.getNoticeConfig().getCarbonCopy())) {
MessagePushDTO dto = build(event.getNoticeConfig().getSms().getSmsId(),
PROCESS_PUSH_SMS, event, collectionVariable(event));
sendMessageQueue(dto, PROCESS_PUSH_SMS);
}
if (log.isDebugEnabled()) {
log.debug("RocketMqMessagePushEventListener#onSms...end, msgTemplateId: {}, receivePerson: {}",
log.info("RocketMqMessagePushEventListener#onSms...end, msgTemplateId: {}, receivePerson: {}",
event.getNoticeConfig().getSms().getSmsId(), JSONUtil.toJsonStr(event.getAssigners()));
}
}
private Map<String, Object> collectionVariable(MessagePushEvent event) {
@ -354,9 +330,7 @@ public class RocketMqMessagePushEventListener extends AbstractBpmnEventListener<
// 传递业务的参数
REMOVE_KEYS.forEach(originVariables::remove);
if (log.isDebugEnabled()) {
log.debug("流程实例的参数: {}", JSONUtil.toJsonStr(originVariables));
}
log.info("流程实例的参数: {}", JSONUtil.toJsonStr(originVariables));
if (CollectionUtils.isEmpty(originVariables)) {
return variables;
}

View File

@ -40,46 +40,30 @@ public class MessagePushProcessEventListener extends AbstractBpmnEventListener<P
private String carbonCopyTemplateCode;
@Override
public void onCancelled(FlowableCancelledEvent event) {
if (log.isDebugEnabled()) {
log.debug("MessagePushProcessEventListener#onCancelled...{}", event.getProcessInstanceId());
}
log.info("MessagePushProcessEventListener#onCancelled...{}", event.getProcessInstanceId());
pendingComplete(event);
if (log.isDebugEnabled()) {
log.debug("MessagePushProcessEventListener#onCancelled...end: {}", event.getProcessInstanceId());
}
log.info("MessagePushProcessEventListener#onCancelled...end: {}", event.getProcessInstanceId());
}
@Override
public void onRejected(FlowableCancelledEvent event) {
if (log.isDebugEnabled()) {
log.debug("MessagePushProcessEventListener#onRejected...{}", event.getProcessInstanceId());
}
log.info("MessagePushProcessEventListener#onRejected...{}", event.getProcessInstanceId());
pendingComplete(event);
if (log.isDebugEnabled()) {
log.debug("MessagePushProcessEventListener#onRejected...end: {}", event.getProcessInstanceId());
}
log.info("MessagePushProcessEventListener#onRejected...end: {}", event.getProcessInstanceId());
}
@Override
public void onAborted(FlowableCancelledEvent event) {
if (log.isDebugEnabled()) {
log.debug("MessagePushProcessEventListener#onAborted...{}", event.getProcessInstanceId());
}
log.info("MessagePushProcessEventListener#onAborted...{}", event.getProcessInstanceId());
pendingComplete(event);
if (log.isDebugEnabled()) {
log.debug("MessagePushProcessEventListener#onAborted...end: {}", event.getProcessInstanceId());
}
log.info("MessagePushProcessEventListener#onAborted...end: {}", event.getProcessInstanceId());
}
@Override
public void onCompleted(FlowableEngineEntityEvent event) {
if (log.isDebugEnabled()) {
log.debug("MessagePushProcessEventListener#onCompleted...{}", event.getProcessInstanceId());
}
log.info("MessagePushProcessEventListener#onCompleted...{}", event.getProcessInstanceId());
pendingComplete(event);
if (log.isDebugEnabled()) {
log.debug("MessagePushProcessEventListener#onCompleted...end: {}", event.getProcessInstanceId());
}
log.info("MessagePushProcessEventListener#onCompleted...end: {}", event.getProcessInstanceId());
}
private void pendingComplete(FlowableEngineEvent event) {
@ -92,9 +76,7 @@ public class MessagePushProcessEventListener extends AbstractBpmnEventListener<P
MessagePushEventBuilder.createEvent(MessagePushEventType.PENDING_COMPLETE, null, noticeConfig,
event.getProcessInstanceId(), null, null);
if (log.isDebugEnabled()) {
log.debug("发送完成待办的消息: {}", JSONUtil.toJsonStr(messagePushEvent));
}
log.info("发送完成待办的消息: {}", JSONUtil.toJsonStr(messagePushEvent));
eventDispatcher.dispatchEvent(messagePushEvent, processEngineConfiguration.getEngineCfgKey());
if (Objects.nonNull(noticeConfig.getCarbonCopy())) {
@ -105,9 +87,7 @@ public class MessagePushProcessEventListener extends AbstractBpmnEventListener<P
MessagePushEventBuilder.createEvent(MessagePushEventType.CARBON_COPY_COMPLETE, null, noticeConfig,
event.getProcessInstanceId(), null, null);
eventDispatcher.dispatchEvent(carbonCopyCompleteEvent, processEngineConfiguration.getEngineCfgKey());
if (log.isDebugEnabled()) {
log.debug("发送完成抄送的消息: {}", JSONUtil.toJsonStr(carbonCopyCompleteEvent));
}
log.info("发送完成抄送的消息: {}", JSONUtil.toJsonStr(carbonCopyCompleteEvent));
}
});

View File

@ -58,10 +58,7 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
@Override
public void onCreated(FlowableEngineEntityEvent event) {
if (log.isDebugEnabled()) {
log.debug("MessagePushProcessEventListener#onCreated...{}", event.getProcessInstanceId());
}
log.info("MessagePushProcessEventListener#onCreated...{}", event.getProcessInstanceId());
Deployment deployment = getContext().getDeployment(() -> repositoryService.createDeploymentQuery()
.deploymentId(((ExecutionEntityImpl) event.getEntity()).getDeploymentId()).singleResult());
Process mainProcess = getContext().getProcess(() -> repositoryService.getBpmnModel(event.getProcessDefinitionId()).getMainProcess());
@ -84,17 +81,13 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
setProcessInstanceVersion(event.getProcessInstanceId(), dto);
sendMessageQueue(dto, PROCESS_INSTANCE_CREATED);
if (log.isDebugEnabled()) {
log.debug("MessagePushProcessEventListener#onCreated...end: {}", event.getProcessInstanceId());
}
log.info("MessagePushProcessEventListener#onCreated...end: {}", event.getProcessInstanceId());
}
@Override
public void onStarted(FlowableProcessStartedEvent event) {
if (log.isDebugEnabled()) {
log.debug("MessagePushProcessEventListener#onStarted...{}", ((ExecutionEntityImpl) event.getEntity()).getProcessInstanceId());
}
log.info("MessagePushProcessEventListener#onStarted...{}", ((ExecutionEntityImpl) event.getEntity()).getProcessInstanceId());
Deployment deployment = getContext().getDeployment(() -> repositoryService.createDeploymentQuery()
.deploymentId(((ExecutionEntityImpl) event.getEntity()).getDeploymentId())
.singleResult());
@ -122,16 +115,12 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
setProcessInstanceVersion(((ExecutionEntityImpl) event.getEntity()).getProcessInstanceId(), dto);
sendMessageQueue(dto, PROCESS_INSTANCE_STARTED);
if (log.isDebugEnabled()) {
log.debug("MessagePushProcessEventListener#onStarted...end: {}", ((ExecutionEntityImpl) event.getEntity()).getProcessInstanceId());
}
log.info("MessagePushProcessEventListener#onStarted...end: {}", ((ExecutionEntityImpl) event.getEntity()).getProcessInstanceId());
}
@Override
public void onCancelled(FlowableCancelledEvent event) {
if (log.isDebugEnabled()) {
log.debug("MessagePushProcessEventListener#onCancelled...{}", event.getProcessInstanceId());
}
log.info("MessagePushProcessEventListener#onCancelled...{}", event.getProcessInstanceId());
Deployment deployment = getContext().getDeployment(() -> repositoryService.createDeploymentQuery()
.deploymentId(((ExecutionEntityImpl) ((FlowableProcessCancelledEventImpl) event).getExecution()).getDeploymentId())
.singleResult());
@ -157,9 +146,7 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
setProcessDeleteReason(event, dto);
setProcessInstanceVersion(event.getProcessInstanceId(), dto);
sendMessageQueue(dto, PROCESS_INSTANCE_CANCELLED);
if (log.isDebugEnabled()) {
log.debug("MessagePushProcessEventListener#onCancelled...end: {}", event.getProcessInstanceId());
}
log.info("MessagePushProcessEventListener#onCancelled...end: {}", event.getProcessInstanceId());
}
/**
@ -169,9 +156,7 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
*/
@Override
public void onRejected(FlowableCancelledEvent event) {
if (log.isDebugEnabled()) {
log.debug("MessagePushProcessEventListener#onRejected...{}", event.getProcessInstanceId());
}
log.info("MessagePushProcessEventListener#onRejected...{}", event.getProcessInstanceId());
Deployment deployment = getContext().getDeployment(() -> repositoryService.createDeploymentQuery()
.deploymentId(((ExecutionEntityImpl) ((FlowableProcessCancelledEventImpl) event).getExecution()).getDeploymentId())
.singleResult());
@ -197,16 +182,12 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
setProcessDeleteReason(event, dto);
setProcessInstanceVersion(event.getProcessInstanceId(), dto);
sendMessageQueue(dto, PROCESS_INSTANCE_REJECTED);
if (log.isDebugEnabled()) {
log.debug("MessagePushProcessEventListener#onRejected...end: {}", event.getProcessInstanceId());
}
log.info("MessagePushProcessEventListener#onRejected...end: {}", event.getProcessInstanceId());
}
@Override
public void onAborted(FlowableCancelledEvent event) {
if (log.isDebugEnabled()) {
log.debug("MessagePushProcessEventListener#onAborted...{}", event.getProcessInstanceId());
}
log.info("MessagePushProcessEventListener#onAborted...{}", event.getProcessInstanceId());
Deployment deployment = getContext().getDeployment(() -> repositoryService.createDeploymentQuery()
.deploymentId(((ExecutionEntityImpl) ((FlowableProcessCancelledEventImpl) event).getExecution()).getDeploymentId())
.singleResult());
@ -232,16 +213,12 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
setProcessDeleteReason(event, dto);
setProcessInstanceVersion(event.getProcessInstanceId(), dto);
sendMessageQueue(dto, PROCESS_INSTANCE_ABORTED);
if (log.isDebugEnabled()) {
log.debug("MessagePushProcessEventListener#onAborted...end: {}", event.getProcessInstanceId());
}
log.info("MessagePushProcessEventListener#onAborted...end: {}", event.getProcessInstanceId());
}
@Override
public void onCompleted(FlowableEngineEntityEvent event) {
if (log.isDebugEnabled()) {
log.debug("MessagePushProcessEventListener#onCompleted...{}", event.getProcessInstanceId());
}
log.info("MessagePushProcessEventListener#onCompleted...{}", event.getProcessInstanceId());
Deployment deployment = getContext().getDeployment(() -> repositoryService.createDeploymentQuery()
.deploymentId(((ExecutionEntityImpl) event.getEntity()).getDeploymentId())
.singleResult());
@ -270,9 +247,7 @@ public class RocketMqBpmnProcessEventListener extends AbstractBpmnEventListener<
}
dto.setWorkflowEngineVersion(version);
sendMessageQueue(dto, PROCESS_INSTANCE_COMPLETED);
if (log.isDebugEnabled()) {
log.debug("MessagePushProcessEventListener#onCompleted...end: {}", event.getProcessInstanceId());
}
log.info("MessagePushProcessEventListener#onCompleted...end: {}", event.getProcessInstanceId());
}
private void setProcessDeleteReason(FlowableCancelledEvent event, ProcessInstanceDTO dto) {

View File

@ -78,9 +78,7 @@ public class AutoOperatorEvent_101_Listener extends AbstractBpmnEventListener<Ta
@Override
public void onCreated(DelegateTask delegateTask) {
if (log.isDebugEnabled()) {
log.debug("AutoOperatorEventListener#onCreated...{}", delegateTask.getTaskDefinitionKey());
}
log.info("AutoOperatorEventListener#onCreated...{}", delegateTask.getTaskDefinitionKey());
if (Objects.equals(NODE_STARTER.getType(), delegateTask.getTaskDefinitionKey())) {
BpmnTaskDelegateAssigner initiator = getContext().getInitiator(() -> BpmnTaskDelegateAssigner.toObjectCompatible(delegateTask.getVariable(INTERNAL_INITIATOR)));
@ -109,9 +107,7 @@ public class AutoOperatorEvent_101_Listener extends AbstractBpmnEventListener<Ta
// 检测节点自身配置是否有自动操作
checkApprovalMethod(delegateTask, userTask);
if (log.isDebugEnabled()) {
log.debug("AutoOperatorEventListener#onCreated...end: {}", delegateTask.getTaskDefinitionKey());
}
log.info("AutoOperatorEventListener#onCreated...end: {}", delegateTask.getTaskDefinitionKey());
}
/**
@ -234,9 +230,7 @@ public class AutoOperatorEvent_101_Listener extends AbstractBpmnEventListener<Ta
}
private void autoReject(DelegateTask delegateTask) {
if (log.isDebugEnabled()) {
log.debug("AutoOperatorEventListener#autoReject...{}", delegateTask.getTaskDefinitionKey());
}
log.info("AutoOperatorEventListener#autoReject...{}", delegateTask.getTaskDefinitionKey());
taskService.addComment(delegateTask.getId(), delegateTask.getProcessInstanceId(), COMMENT_TYPE_OPERATION_DESC
, "自动驳回");
delegateTask.setTransientVariable(TASK_COMPLETE_OPERATION_TYPE + delegateTask.getId(), REJECTED.getStatus());
@ -257,9 +251,7 @@ public class AutoOperatorEvent_101_Listener extends AbstractBpmnEventListener<Ta
// 删除流程实例以实现驳回任务时中止整个审批流程
runtimeService.deleteProcessInstance(delegateTask.getProcessInstanceId(), REJECTION_AUTO_COMPLETED.getDesc());
if (log.isDebugEnabled()) {
log.debug("AutoOperatorEventListener#autoReject...end: {}", delegateTask.getTaskDefinitionKey());
}
log.info("AutoOperatorEventListener#autoReject...end: {}", delegateTask.getTaskDefinitionKey());
}

View File

@ -61,10 +61,8 @@ public class MessagePushTaskEvent_103_Listener extends AbstractBpmnEventListener
@Override
public void onAssigned(DelegateTask delegateTask) {
if (log.isDebugEnabled()) {
log.debug("MessagePushTaskEventListener#onAssigned...{}, assignee: {}, taskId: {}",
log.info("MessagePushTaskEventListener#onAssigned...{}, assignee: {}, taskId: {}",
delegateTask.getTaskDefinitionKey(), delegateTask.getAssignee(), delegateTask.getId());
}
if (Objects.equals(NODE_STARTER.getType(), delegateTask.getTaskDefinitionKey())) {
return;
}
@ -89,23 +87,17 @@ public class MessagePushTaskEvent_103_Listener extends AbstractBpmnEventListener
return;
}
pendingPush(delegateTask);
if (log.isDebugEnabled()) {
log.debug("MessagePushTaskEventListener#onAssigned...end: {}", delegateTask.getTaskDefinitionKey());
}
log.info("MessagePushTaskEventListener#onAssigned...end: {}", delegateTask.getTaskDefinitionKey());
}
@Override
public void onDeleted(DelegateTask delegateTask) {
if (log.isDebugEnabled()) {
log.debug("MessagePushTaskEventListener#onDeleted...{}", delegateTask.getTaskDefinitionKey());
}
log.info("MessagePushTaskEventListener#onDeleted...{}", delegateTask.getTaskDefinitionKey());
if (Objects.equals(NODE_STARTER.getType(), delegateTask.getTaskDefinitionKey())) {
return;
}
pendingComplete(delegateTask);
if (log.isDebugEnabled()) {
log.debug("MessagePushTaskEventListener#onDeleted...end: {}", delegateTask.getTaskDefinitionKey());
}
log.info("MessagePushTaskEventListener#onDeleted...end: {}", delegateTask.getTaskDefinitionKey());
}
private void pendingComplete(DelegateTask delegateTask) {
@ -121,9 +113,7 @@ public class MessagePushTaskEvent_103_Listener extends AbstractBpmnEventListener
MessagePushEventImpl event = MessagePushEventBuilder.createEvent(MessagePushEventType.PENDING_COMPLETE,
null, noticeConfig, delegateTask.getProcessInstanceId(), null, delegateTask.getId());
if (log.isDebugEnabled()) {
log.debug("发送完成待办的消息: {}", JSONUtil.toJsonStr(event));
}
log.info("发送完成待办的消息: {}", JSONUtil.toJsonStr(event));
eventDispatcher.dispatchEvent(event, processEngineConfiguration.getEngineCfgKey());
});
}
@ -160,9 +150,7 @@ public class MessagePushTaskEvent_103_Listener extends AbstractBpmnEventListener
processInstance.getProcessInstanceId(),
processInstance.getProcessDefinitionId(), userTask.getId(),
processInstance.getTenantId(), delegateTask.getId());
if (log.isDebugEnabled()) {
log.debug("发送推送待办的消息: {}", JSONUtil.toJsonStr(event));
}
log.info("发送推送待办的消息: {}", JSONUtil.toJsonStr(event));
eventDispatcher.dispatchEvent(event, processEngineConfiguration.getEngineCfgKey());
});
});

View File

@ -59,53 +59,37 @@ public class RocketMqBpmnTaskEvent_102_Listener extends AbstractBpmnEventListene
@Override
public void onAssigned(DelegateTask delegateTask) {
if (log.isDebugEnabled()) {
log.debug("RocketMqBpmnTaskEventListener#onAssigned...{}", delegateTask.getTaskDefinitionKey());
}
log.info("RocketMqBpmnTaskEventListener#onAssigned...{}", delegateTask.getTaskDefinitionKey());
if (StringUtils.hasLength(delegateTask.getAssignee()) && delegateTask.getAssignee().contains(TASK_ASSIGNEE_SKIP_FLAT)) {
return;
}
ProcessTaskDTO dto = build(delegateTask, PROCESS_TASK_ASSIGNED);
sendMessageQueue(dto, PROCESS_TASK_ASSIGNED);
if (log.isDebugEnabled()) {
log.debug("RocketMqBpmnTaskEventListener#onAssigned...end: {}", delegateTask.getTaskDefinitionKey());
}
log.info("RocketMqBpmnTaskEventListener#onAssigned...end: {}", delegateTask.getTaskDefinitionKey());
}
@Override
public void onCreated(DelegateTask delegateTask) {
if (log.isDebugEnabled()) {
log.debug("RocketMqBpmnTaskEventListener#onCreated...{}", delegateTask.getTaskDefinitionKey());
}
log.info("RocketMqBpmnTaskEventListener#onCreated...{}", delegateTask.getTaskDefinitionKey());
ProcessTaskDTO dto = build(delegateTask, PROCESS_TASK_CREATED);
sendMessageQueue(dto, PROCESS_TASK_CREATED);
if (log.isDebugEnabled()) {
log.debug("RocketMqBpmnTaskEventListener#onCreated...end: {}", delegateTask.getTaskDefinitionKey());
}
log.info("RocketMqBpmnTaskEventListener#onCreated...end: {}", delegateTask.getTaskDefinitionKey());
}
@Override
public void onCompleted(DelegateTask delegateTask) {
if (log.isDebugEnabled()) {
log.debug("RocketMqBpmnTaskEventListener#onCompleted...{}", delegateTask.getTaskDefinitionKey());
}
log.info("RocketMqBpmnTaskEventListener#onCompleted...{}", delegateTask.getTaskDefinitionKey());
ProcessTaskDTO dto = build(delegateTask, PROCESS_TASK_COMPLETED);
sendMessageQueue(dto, PROCESS_TASK_COMPLETED);
if (log.isDebugEnabled()) {
log.debug("RocketMqBpmnTaskEventListener#onCompleted...end: {}", delegateTask.getTaskDefinitionKey());
}
log.info("RocketMqBpmnTaskEventListener#onCompleted...end: {}", delegateTask.getTaskDefinitionKey());
}
@Override
public void onDeleted(DelegateTask delegateTask) {
if (log.isDebugEnabled()) {
log.debug("RocketMqBpmnTaskEventListener#onDeleted...{}", delegateTask.getTaskDefinitionKey());
}
log.info("RocketMqBpmnTaskEventListener#onDeleted...{}", delegateTask.getTaskDefinitionKey());
ProcessTaskDTO dto = build(delegateTask, PROCESS_TASK_DELETED);
sendMessageQueue(dto, PROCESS_TASK_DELETED);
if (log.isDebugEnabled()) {
log.debug("RocketMqBpmnTaskEventListener#onDeleted...end: {}", delegateTask.getTaskDefinitionKey());
}
log.info("RocketMqBpmnTaskEventListener#onDeleted...end: {}", delegateTask.getTaskDefinitionKey());
}
private Deployment getDeployment(String processInstanceId) {

View File

@ -43,9 +43,7 @@ public class SnapshotBpmnTaskTaskEvent_100_Listener extends AbstractBpmnEventLis
@Override
public void onAssigned(DelegateTask delegateTask) {
if (log.isDebugEnabled()) {
log.debug("SnapshotBpmnTaskTaskEventListener#onAssigned...{}", delegateTask.getTaskDefinitionKey());
}
log.info("SnapshotBpmnTaskTaskEventListener#onAssigned...{}", delegateTask.getTaskDefinitionKey());
List<BpmnTaskDelegateAssigner> assignerList = runtimeService.getVariable(delegateTask.getProcessInstanceId(),
INTERNAL_ACTIVITY_RELATION_ASSIGNEE_LIST_INFO_SNAPSHOT + delegateTask.getTaskDefinitionKey(),
List.class);
@ -63,8 +61,6 @@ public class SnapshotBpmnTaskTaskEvent_100_Listener extends AbstractBpmnEventLis
}
});
if (log.isDebugEnabled()) {
log.debug("SnapshotBpmnTaskTaskEventListener#onAssigned...end: {}", delegateTask.getTaskDefinitionKey());
}
log.info("SnapshotBpmnTaskTaskEventListener#onAssigned...end: {}", delegateTask.getTaskDefinitionKey());
}
}

View File

@ -53,10 +53,10 @@ public class ExtDatabaseInitializer implements ApplicationRunner {
if (Objects.equals(DB_SCHEMA_UPDATE_DROP_CREATE, springProcessEngineConfiguration.getDatabaseSchemaUpdate())) {
tables.forEach(this::executeSqlScript);
}
log.debug("tables: {}", JSONUtil.toJsonStr(tables));
log.info("tables: {}", JSONUtil.toJsonStr(tables));
localSqlFiles().forEach(i -> {
if (!tables.contains(i.replace(".sql", "").toUpperCase())) {
log.debug("execute sql script: {}", i);
log.info("execute sql script: {}", i);
executeSqlScript(i);
}
});

View File

@ -65,7 +65,7 @@ public class VersionUpgradeInitializer implements ApplicationRunner {
String fileName = FILE_PREFIX + upgradeVersion + ".sql";
try {
executeSqlScript(fileName);
log.debug("execute sql script: {}", fileName);
log.info("execute sql script: {}", fileName);
} catch (Exception e) {
LogUtil.error(LogUtil.ErrorType.ERROR_SQL, "升级服务数据库版本发生异常,文件: {}, 异常信息: {}", fileName, e.getMessage());
result.compareAndSet(true, false);

View File

@ -0,0 +1,66 @@
package cn.axzo.workflow.server.xxljob;
import cn.axzo.framework.jackson.utility.JSON;
import cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum;
import cn.axzo.workflow.common.model.request.bpmn.task.ExtHiTaskSearchDTO;
import cn.axzo.workflow.core.repository.entity.ExtAxHiTaskInst;
import cn.axzo.workflow.core.repository.mapper.CommonMapper;
import cn.axzo.workflow.core.service.ExtAxHiTaskInstService;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.XxlJob;
import com.xxl.job.core.log.XxlJobLogger;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import static cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum.APPROVED;
/**
* 操作数据表
*
* @author wangli
* @since 2024/4/28 14:06
*/
@Component
@RequiredArgsConstructor
@Slf4j
public class OperationDataJobHandler extends IJobHandler {
@Resource
private CommonMapper commonMapper;
@Resource
private ExtAxHiTaskInstService extAxHiTaskInstService;
@Override
@XxlJob("executeDynamicSql")
public ReturnT<String> execute(String s) throws Exception {
if (StringUtils.hasText(s)) {
XxlJobLogger.log("执行动态 sql");
List<Map<String, Object>> maps = commonMapper.executeDynamicSQL(s);
XxlJobLogger.log("result: {}", JSON.toJSONString(maps));
} else {
XxlJobLogger.log("仅修复 extAxTaskInst 表数据");
repairData();
}
return ReturnT.SUCCESS;
}
private void repairData() {
ExtHiTaskSearchDTO searchDTO = new ExtHiTaskSearchDTO();
searchDTO.setTaskDefinitionKey("NODE_STARTER");
searchDTO.setStatus(BpmnProcessInstanceResultEnum.PROCESSING);
List<ExtAxHiTaskInst> extAxHiTaskInsts = extAxHiTaskInstService.queryList(searchDTO);
if (!CollectionUtils.isEmpty(extAxHiTaskInsts)) {
extAxHiTaskInsts.forEach(i -> {
i.setStatus(APPROVED.getStatus());
extAxHiTaskInstService.update(i);
});
}
}
}