新增 bpm 基于流程实例的详情 API 接口

This commit is contained in:
YunaiV
2022-01-16 17:31:44 +08:00
parent 23eda6b1a9
commit 93e02b36dd
13 changed files with 256 additions and 31 deletions

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.framework.activiti.core.util;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.ttl.TransmittableThreadLocal;
import org.activiti.bpmn.converter.BpmnXMLConverter;
import org.activiti.bpmn.model.BpmnModel;
@ -46,7 +47,6 @@ public class ActivitiUtils {
// ========== BPMN XML 相关 ==========
/**
* 构建对应的 BPMN Model
*
@ -59,6 +59,13 @@ public class ActivitiUtils {
return converter.convertToBpmnModel(new BytesStreamSource(bpmnBytes), true, true);
}
/**
* 获得 BPMN 流程中,指定的元素们
*
* @param model
* @param clazz 指定元素。例如说,{@link org.activiti.bpmn.model.UserTask}、{@link org.activiti.bpmn.model.Gateway} 等等
* @return 元素们
*/
public static <T extends FlowElement> List<T> getBpmnModelElements(BpmnModel model, Class<T> clazz) {
List<T> result = new ArrayList<>();
model.getProcesses().forEach(process -> {
@ -71,4 +78,12 @@ public class ActivitiUtils {
return result;
}
public static String getBpmnXml(BpmnModel model) {
if (model == null) {
return null;
}
BpmnXMLConverter converter = new BpmnXMLConverter();
return StrUtil.utf8Str(converter.convertToXML(model));
}
}