基于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、效果图

相关推荐
醉颜凉6 小时前
Elasticsearch 核心基石:倒排索引全解析(原理+结构+流程图+实战)
elasticsearch·jenkins·流程图
Ai-_Man2 天前
希望大家能推荐一款软件,可以直接把文心生成的代码变流程图,提高办公效率
人工智能·ai·小程序·流程图
paopao_djshddhdj3 天前
钉钉智能OA高级版:企业数字化协同与智能管理新引擎
网络·钉钉
皮皮虾❀3 天前
钉钉服务商私有化部署+混合云架构+信创适配一体化实战:从“公有云单点部署”到“核心本地+弹性云端”的灵活部署方案
架构·钉钉
paopao_djshddhdj3 天前
钉钉智能绩效:功能解析与收费模式
科技·钉钉
皮皮虾❀4 天前
钉钉服务商选型+系统集成能力+数据安全合规一体化实战:从“考勤数据孤岛”到“ERP/薪资系统自动同步全链路打通”
钉钉
皮皮虾❀4 天前
钉钉服务商私有化部署+专属APP定制+品牌自主一体化实战:从“用别人的平台”到“打造企业自有数字化办公入口”的完整路径
钉钉
SL-staff4 天前
技术实践:HR如何用JVS-Logic可视化编排实现考勤数据同步(含节点配置与异常处理)
开发语言·python·低代码·钉钉·可视化编排·jvs-logic·hr技术
皮皮虾❀4 天前
钉钉服务商定制开发实战:基于典铭云赛平台的技术架构与实现
钉钉
皮皮虾❀5 天前
钉钉服务商与ISV深度解析:区别、选择与高价值实践指南
钉钉