Skip to content

流程定义管理

**本文引用的文件** - [index.vue](file://dm/lemes-web/src/components/bpmnModeler/index.vue) - [PropertyPanel.vue](file://dm/lemes-web/src/components/bpmnModeler/PropertyPanel.vue) - [BpmData.js](file://dm/lemes-web/src/components/bpmnModeler/BpmData.js) - [init.js](file://dm/lemes-web/src/components/bpmnModeler/flowable/init.js) - [flowable.json](file://dm/lemes-web/src/components/bpmnModeler/flowable/flowable.json) - [showConfig.js](file://dm/lemes-web/src/components/bpmnModeler/flowable/showConfig.js) - [FlowClient.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-workflow/lemes-service-dm-workflow-common/src/main/java/com/lenovo/lemes/service/dm/workflow/client/feign/FlowClient.java) - [StartProcessResp.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-workflow/lemes-service-dm-workflow-common/src/main/java/com/lenovo/lemes/service/dm/workflow/client/entity/StartProcessResp.java) - [ActivityDTO.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-workflow/lemes-service-dm-workflow-common/src/main/java/com/lenovo/lemes/service/dm/workflow/entity/dto/ActivityDTO.java) - [workflow.sql](file://docs/ddl/workflow.sql)

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构总览
  5. 详细组件分析
  6. 依赖分析
  7. 性能考虑
  8. 故障排查指南
  9. 结论
  10. 附录

简介

本技术文档围绕 DeviceMate 流程定义管理系统,系统性阐述 BPMN 2.0 流程定义的设计、创建、部署与版本控制机制;梳理流程定义的数据结构、存储方式与检索路径;阐明流程定义与业务系统的映射关系、动态参数传递与条件判断;并提供流程设计器的使用指南、流程图示例与设计规范,以及流程定义的导入导出、批量部署与升级策略。

项目结构

前端采用 Vue + bpmn-js 的可视化流程设计器,后端通过 Feign 接口对接工作流服务,数据库以 PostgreSQL 表结构承载流程运行时与配置数据。

图表来源

章节来源

核心组件

  • 前端流程设计器:基于 bpmn-js,集成 Flowable 扩展模型,支持 XML 导入导出、属性面板联动、节点高亮与视图缩放等能力。
  • 工作流客户端接口:通过 Feign 定义启动、审批、查询审批节点、撤销等接口,统一调用后端工作流服务。
  • 数据库层:以多张表承载流程定义、节点配置、业务映射、审计日志、用户与角色等数据。

章节来源

架构总览

前端设计器负责流程图的绘制与属性配置,后端工作流服务负责流程定义的部署、启动与执行,数据库持久化流程配置与运行日志。

图表来源

详细组件分析

前端流程设计器组件

  • 初始化与导入:默认生成基础 BPMN 模板,支持从本地上传 XML 并导入到设计器中,自动适配画布与工具栏。
  • 属性面板:根据选中元素类型动态切换面板,支持流程、任务、网关、起止事件等属性配置。
  • 工具配置:自定义左侧工具栏按钮文案与样式,提升可读性与可用性。
  • 导出与视图:支持保存 XML 与图片,提供自适应与缩放功能。

图表来源

章节来源

Flowable 扩展模型与显示配置

  • 扩展模型:在 bpmn-js 中注册 Flowable 的 Moddle 扩展,支持 Flowable 特有属性(如候选人、版本标签、表单字段等)。
  • 显示配置:按节点类型映射显示哪些属性面板可用,确保属性面板与节点类型一致。

图表来源

章节来源

工作流客户端接口与实体

  • 启动流程:接收流程启动参数,返回流程实例 ID 与审批状态标志。
  • 审批流程:提交审批参数,返回审批结果。
  • 查询审批节点:根据流程实例 ID 与业务类型获取可审批节点列表。
  • 撤销流程:按流程实例 ID 撤销申请。

图表来源

章节来源

数据结构与存储机制

  • 流程审计日志:记录流程实例、业务单据、节点标题、审批状态、审批人等信息,便于审计与追踪。
  • 流程节点配置:按流程 KEY 与节点序号维护节点标题、节点 ID、前置节点 ID、节点类型与条件参数。
  • 流程图字典:维护流程图 KEY、名称与参数校验开关,用于运行时参数校验。
  • 流程业务配置:建立业务 CODE 与流程图 KEY 的映射,以及节点数量统计。
  • 流程回退配置:记录当前节点与允许回退的目标节点。
  • 流程日志:记录流程执行过程中的方法名、任务名、节点类型、审批标志与结果等。
  • 用户与角色:维护用户、状态、角色层级与工厂/部门维度。

图表来源

章节来源

流程设计器使用指南与设计规范

  • 使用指南
    • 新建流程:点击“新建”生成默认模板,或通过“加载 XML”导入已有流程。
    • 绘制流程:从左侧工具栏拖拽节点到画布,设置起止事件、任务、网关与连接线。
    • 配置属性:选中元素打开属性面板,按类型填写相应字段(如用户任务的候选人、表单字段等)。
    • 导出流程:点击“保存为 XML”下载 BPMN 文件,或导出图片用于归档。
  • 设计规范
    • 节点命名:使用清晰语义的节点标题,避免歧义。
    • 连接线:确保流程方向单一、无环路死锁;条件表达式明确。
    • 参数校验:在流程图字典中配置参数校验开关,保证运行时一致性。
    • 版本控制:每次修改后导出并保留历史版本,配合数据库中的流程配置进行版本管理。

章节来源

流程定义的导入导出、批量部署与升级策略

  • 导入导出
    • 导入:通过上传 XML 文件实现流程定义的导入,设计器自动解析并渲染。
    • 导出:支持保存为标准 BPMN 2.0 XML,便于跨系统共享与归档。
  • 批量部署
    • 建议在后端工作流服务侧提供批量部署接口,结合流程图字典与业务配置表,实现按业务类型批量发布。
  • 升级策略
    • 版本标签:利用 Flowable 的版本标签属性,区分不同版本流程定义。
    • 回退配置:通过流程回退配置表记录可回退节点,保障流程演进中的可控回退。
    • 审计日志:通过流程审计日志与流程日志,监控升级后的运行状态与问题定位。

章节来源

依赖分析

  • 前端依赖
    • bpmn-js:流程图渲染与交互。
    • 自定义翻译模块:汉化提示与标签。
    • Flowable 扩展:支持 Flowable 特有属性与节点。
  • 后端依赖
    • Feign 客户端:统一调用工作流服务接口。
    • 实体类:封装启动、审批、节点查询等响应数据结构。
  • 数据库依赖
    • 多表协同:流程审计、节点配置、业务映射、参数校验、日志与用户角色等。

图表来源

章节来源

性能考虑

  • 渲染优化:合理控制流程复杂度,避免过多节点与连接导致渲染卡顿;必要时拆分子流程。
  • 导入导出:大文件导入建议异步处理并提供进度反馈;导出时可选择压缩格式减少体积。
  • 缓存策略:对常用流程图与参数字典进行缓存,降低重复请求开销。
  • 日志与审计:对高频操作的日志进行采样或异步写入,避免阻塞主流程。

故障排查指南

  • 导入失败:检查 XML 是否符合 BPMN 2.0 规范,确认 Flowable 扩展属性是否正确。
  • 属性面板不显示:确认节点类型是否在显示配置映射中,或检查属性面板组件的类型判断逻辑。
  • 启动流程异常:核对启动参数与业务配置表中的流程 KEY,检查流程图字典的参数校验开关。
  • 审批节点为空:确认流程实例 ID 与业务类型参数是否正确,检查审批节点查询接口的返回。

章节来源

结论

DeviceMate 流程定义管理系统通过前端可视化设计器与后端工作流服务的协同,实现了 BPMN 2.0 流程的全生命周期管理。借助数据库多表结构支撑流程配置、审计与日志,系统具备良好的可扩展性与可维护性。遵循本文的设计规范与升级策略,可高效完成流程定义的创建、部署与演进。

附录

  • 流程图示例:建议提供常见业务场景的流程图模板(如审批、巡检、维修),便于快速复用与定制。
  • 最佳实践:保持流程简洁、参数明确、版本可控,并定期进行流程审计与性能评估。