Commit 7d4b124f by 赵剑炜

调整监听事件

parent 286b6e39
...@@ -69,7 +69,7 @@ public class BpmnController { ...@@ -69,7 +69,7 @@ public class BpmnController {
/** /**
* 转交 * 转交
*/ */
@ApiOperation("交") @ApiOperation("交")
@PutMapping("turn") @PutMapping("turn")
public ApiRes<Boolean> turn(@RequestBody TurnVo turns) { public ApiRes<Boolean> turn(@RequestBody TurnVo turns) {
if (WorkProcessService.turn(turns)) if (WorkProcessService.turn(turns))
......
...@@ -16,39 +16,48 @@ import org.slf4j.Logger; ...@@ -16,39 +16,48 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
@Component @Component
public class GlobalEndListener extends AbstractFlowableEngineEventListener { public class GlobalEndListener extends AbstractFlowableEngineEventListener {
protected Logger logger = LoggerFactory.getLogger(this.getClass()); protected Logger logger = LoggerFactory.getLogger(this.getClass());
/**
* @Author: Zhaojw @SneakyThrows
* @Description: 流程结束监听 @Override
* @DateTime: 2023/6/27 13:21 protected void processCompleted(FlowableEngineEntityEvent event) {
* @Params: if (event.getType() == FlowableEngineEventType.PROCESS_COMPLETED) {
* @Return // 获取流程实例ID
*/ String processInstanceId = event.getProcessInstanceId();
@SneakyThrows
@Override // 获取流程定义ID
protected void processCompleted(FlowableEngineEntityEvent event) { String processDefinitionId = event.getProcessDefinitionId();
//流程结束后工作在这里写
//得到流程定义id // 获取流程实例关联的变量
String processDefinitionId = event.getProcessDefinitionId(); Map<String, Object> processVariables = getProcessVariables(processInstanceId);
//得到流程实例id // 获取单据类型
String processInstanceId = event.getProcessInstanceId(); String documentType = (String) processVariables.get("documentType");
/**
* 生产者不需要绑定队列和交换机,只有生产者才需要 // 根据单据类型执行不同的操作
* if ("equipment".equals(documentType)) {
* 建立连接 // 执行装备相关操作
* 建立通道 // ...
* 推送消息 } else if ("personnel".equals(documentType)) {
*/ // 执行人员相关操作
// ...
Connection connection = RabbitMQUtils2.getConnection(); }
Channel channel = connection.createChannel();
channel.queueDeclare("info",false,false,false,null); }
channel.basicPublish("", "info", MessageProperties.PERSISTENT_TEXT_PLAIN,("publish").getBytes()); }
RabbitMQUtils2.closeChannelAndConnection(connection,channel); // 获取流程实例关联的变量
private Map<String, Object> getProcessVariables(String processInstanceId) {
// 根据 processInstanceId 获取流程实例关联的变量
// 这里需要根据你的业务逻辑来实现获取变量的方法
// 返回一个包含流程变量的 Map
return null;
}
} }
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论