同步最新 CRM 代码

This commit is contained in:
YunaiV
2024-02-27 16:50:01 +08:00
parent 2370ad6ff3
commit 36a5859344
190 changed files with 4820 additions and 4163 deletions

View File

@@ -0,0 +1,43 @@
package cn.iocoder.yudao.module.bpm.event;
import lombok.Data;
import org.springframework.context.ApplicationEvent;
import jakarta.validation.constraints.NotNull;
/**
* 流程实例的结果发生变化的 Event
* 定位:由于额外增加了 {@link BpmProcessInstanceExtDO#getResult()} 结果,所以增加该事件
*
* @author 芋道源码
*/
@SuppressWarnings("ALL")
@Data
public class BpmProcessInstanceResultEvent extends ApplicationEvent {
/**
* 流程实例的编号
*/
@NotNull(message = "流程实例的编号不能为空")
private String id;
/**
* 流程实例的 key
*/
@NotNull(message = "流程实例的 key 不能为空")
private String processDefinitionKey;
/**
* 流程实例的结果
*/
@NotNull(message = "流程实例的结果不能为空")
private Integer result;
/**
* 流程实例对应的业务标识
* 例如说,请假
*/
private String businessKey;
public BpmProcessInstanceResultEvent(Object source) {
super(source);
}
}

View File

@@ -0,0 +1,35 @@
package cn.iocoder.yudao.module.bpm.event;
import cn.hutool.core.util.StrUtil;
import org.springframework.context.ApplicationListener;
// TODO 芋艿:跨服务的情况下,该逻辑无法跑通
/**
* {@link BpmProcessInstanceResultEvent} 的监听器
*
* @author 芋道源码
*/
public abstract class BpmProcessInstanceResultEventListener
implements ApplicationListener<BpmProcessInstanceResultEvent> {
@Override
public final void onApplicationEvent(BpmProcessInstanceResultEvent event) {
if (!StrUtil.equals(event.getProcessDefinitionKey(), getProcessDefinitionKey())) {
return;
}
onEvent(event);
}
/**
* @return 返回监听的流程定义 Key
*/
protected abstract String getProcessDefinitionKey();
/**
* 处理事件
*
* @param event 事件
*/
protected abstract void onEvent(BpmProcessInstanceResultEvent event);
}