基于jeecgboot-vue3的Flowable流程-集成仿钉钉流程(六)仿钉钉流程的转bpmn流程图

因为这个项目license问题无法开源,更多技术支持与服务请加入我的知识星球。

1、转bpmn流程图接口

java 复制代码
/**
     * 转为bpmn xml格式
     * @param processModel
     * @throws IOException
     */
    @PostMapping("/ddtobpmnxml")
    public Result<?> ddToBpmnXml(@RequestBody ProcessModel processModel) {
    	try {
	        BpmnModel bpmnModel = processModel.toBpmnModel();
	        return Result.OK(new String(new BpmnXMLConverter().convertToXML(bpmnModel)));
    	} catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("创建失败: e=" + e.getMessage());
        }
    }

2、toBpmnModel()方法

java 复制代码
public BpmnModel toBpmnModel() {
        BpmnModel bpmnModel = new BpmnModel();
        // 命名空间
        bpmnModel.setTargetNamespace("https://flowable.org/bpmn20");
        // 创建一个流程
        Process process = new Process();
        // 设置流程的id
        process.setId(this.getCode());
        // 设置流程的name
        process.setName(this.getName());
        // 设置流程的文档
        process.setDocumentation(this.getRemark());
        // 递归构建所有节点
        Node node = this.getProcess();
        List<FlowElement> flowElementList = node.convert();
        for (FlowElement flowElement : flowElementList) {
            process.addFlowElement(flowElement);
        }
        // 设置流程
        bpmnModel.addProcess(process);
        // 自动布局
        new BpmnAutoLayout(bpmnModel).execute();
        return bpmnModel;
    }

3、前端调用接口

javascript 复制代码
const converterBpmn = () => {
  const processModel = {
    code: pCode.value,
    name: pName.value,
    icon: {
      name: 'el:HomeFilled',
      color: '#409EFF'
    },
    process: props.process,
    enable: true,
    version: 1,
    sort: 0,
    groupId: '',
    remark: ''
  }
  ddToBpmnXml(processModel).then(res => {
     console.log("ddToBpmnXml res",res)
     processView.title = pName.value
     processView.index = pCode.value
     processView.xmlData = res.result
     processView.open = true
  })  
}

4、效果图

相关推荐
✎ ﹏梦醒͜ღ҉繁华落℘3 小时前
Visio 绘制流程图
流程图
医疗信息化王工1 天前
钉钉小程序开发实战:投诉管理系统
小程序·钉钉·开发·投诉管理
医疗信息化王工2 天前
钉钉小程序开发实战:手术查询小程序
小程序·钉钉·手术查询
二进喵2 天前
OpenClaw 接入钉钉完整指南
钉钉
Teable任意门互动2 天前
多维表格本地化部署实践解析 企业如何实现数据自主可控路径
数据库·excel·钉钉·飞书·开源软件
水文摸鱼怪4 天前
HHU校园网自动连接监控系统(钉钉机器人版)操作说明书
机器人·钉钉
秋94 天前
AI快速生成可编辑的流程图的方法
流程图
QDYOKR1684 天前
一文了解什么是OKR
大数据·人工智能·笔记·钉钉·企业微信
宁静致远20214 天前
Mermaid VSCode插件制作流程图保存方法
ide·vscode·流程图
MarkHD5 天前
从“能跑”到“好用”:Python脚本监控与告警实战(邮件/钉钉/企业微信)
python·钉钉·企业微信