一、该问题的重现步骤是什么?
1. 原已在blade-starter-flowable工程下配置好了监听事件,但是无法调用BladeX-Boot工程下的业务逻辑,官方给出解释需要在BladeX-Boot工程下配置监听事件,但是试过之后,如果配置在BladeX-Boot工程下,会报错找不到类
2. 配置如下:
3.
二、你期待的结果是什么?实际看到的又是什么?
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
@Configuration @AllArgsConstructor WfGlobListenerConfig ApplicationListener<ContextRefreshedEvent> { GlobalListener globalListenerRuntimeService runtimeService@Override onApplicationEvent(ContextRefreshedEvent event) { runtimeService.addEventListener(globalListenerFlowableEngineEventType.TASK_CREATED)runtimeService.addEventListener(globalListenerFlowableEngineEventType.TASK_ASSIGNED)runtimeService.addEventListener(globalListenerFlowableEngineEventType.TASK_COMPLETED)runtimeService.addEventListener(globalListenerFlowableEngineEventType.PROCESS_COMPLETED)runtimeService.addEventListener(globalListenerFlowableEngineEventType.PROCESS_COMPLETED_WITH_TERMINATE_END_EVENT)} }
@Slf4j @Component GlobalListener AbstractFlowableEngineEventListener { @Autowired TaskService taskService@Autowired RuntimeService runtimeService@Autowired RepositoryService repositoryService@Autowired ISafeInspectionLedgerService safeInspectionLedgerService@Autowired IQualityInspectionLedgerService qualityInspectionLedgerService@Autowired BladeLogger bladeLogger@Override taskCreated(FlowableEngineEntityEvent event) { .taskCreated(event)Thread(() -> { { Thread.sleep()} (InterruptedException e) { e.printStackTrace()} (event FlowableEntityEventImpl) { String processDefinitionId = event.getProcessDefinitionId()String processInstanceId = event.getProcessInstanceId()ProcessDefinition processDefinition = repositoryService .createProcessDefinitionQuery() .processDefinitionId(processDefinitionId) .singleResult()ProcessInstance process = runtimeService .createProcessInstanceQuery() .includeProcessVariables() .processInstanceId(processInstanceId) .singleResult()TaskEntity entity = (TaskEntity) event.getEntity()Task task = taskService.createTaskQuery() .taskId(entity.getId()) .includeIdentityLinks() .singleResult()(task != ) { (StringUtil.isBlank(task.getAssignee())) { System.err.println()List<String> roles = ArrayList<>()List<String> userIds = ArrayList<>()List<? IdentityLinkInfo> identityLinks = task.getIdentityLinks()identityLinks.forEach(link -> { (StringUtil.isNotBlank(link.getGroupId())) { roles.add(link.getGroupId())} (StringUtil.isNotBlank(link.getUserId())) { userIds.add(link.getUserId())} })System.err.println()System.err.println(roles)System.err.println()System.err.println()System.err.println(userIds)System.err.println()} { System.err.println(+ processDefinition.getName() + + entity.getName() + )} } } }).start()} @Override taskAssigned(FlowableEngineEntityEvent event) { .taskAssigned(event)(event org.flowable.engine.delegate.event.impl.FlowableEntityEventImpl) { TaskEntity entity = (TaskEntity) event.getEntity()(StringUtil.isNotBlank(entity.getOwner())) { Thread(() -> { { Thread.sleep()} (InterruptedException e) { e.printStackTrace()} ProcessDefinition processDefinition = repositoryService .createProcessDefinitionQuery() .processDefinitionId(event.getProcessDefinitionId()) .singleResult()String owner = entity.getOwner()String assignee = entity.getAssignee()DelegationState delegationState = entity.getDelegationState()(ObjectUtil.isNotEmpty(delegationState)) { System.err.println(entity.getOwner() + + processDefinition.getName() + + entity.getName() + )} { System.err.println(entity.getOwner() + + processDefinition.getName() + + entity.getName() + )} }).start()} } } @Override taskCompleted(FlowableEngineEntityEvent event) { .taskCompleted(event)(event FlowableEntityWithVariablesEventImpl) { TaskEntity entity = (TaskEntity) event.getEntity()System.err.println(entity.getVariables())Thread(() -> { { Thread.sleep()} (InterruptedException e) { e.printStackTrace()} List<Comment> comment = taskService.getTaskComments(entity.getId())}).start()} } @Override processCompleted(FlowableEngineEntityEvent event) { .processCompleted(event)ExecutionEntityImpl executionEntity = (ExecutionEntityImpl) event.getEntity()} @Override processCompletedWithTerminateEnd(FlowableEngineEntityEvent event) { .processCompletedWithTerminateEnd(event)System.err.println()} }
参考这个代码。
扫一扫访问 Blade技术社区 移动端