Skip to content

流程实例管理

**本文引用的文件** - [HisTaskInstanceResp.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/outer/HisTaskInstanceResp.java) - [FlowLogDO.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/inner/FlowLogDO.java) - [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) - [FlowPendingTaskDTO.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/FlowPendingTaskDTO.java) - [TaskNodeDTO.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/TaskNodeDTO.java) - [BreakInfoDTO.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/BreakInfoDTO.java) - [MaintenanceWorkOrdersService.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/service/device/MaintenanceWorkOrdersService.java) - [MaintenancePlansServiceImpl.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/service/device/impl/MaintenancePlansServiceImpl.java) - [MpLevelCloseWotJob.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/handler/MpLevelCloseWotJob.java) - [FlowUserDo.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/model/workflow/FlowUserDo.java) - [FlowRoleDo.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/model/workflow/FlowRoleDo.java) - [EventLog.java](file://lemes-service-common/lemes-service-common-common/src/main/java/com/lenovo/lemes/service/common/entity/EventLog.java) - [EventLogMapper.xml](file://lemes-service-common/lemes-service-common-server/src/main/resources/mapper/EventLogMapper.xml) - [LemesGlobalFilter.java](file://lemes-cloud/lemes-gateway/src/main/java/com/lenovo/lemes/gateway/filter/LemesGlobalFilter.java) - [maintenance.vue](file://app/devicemate-app/modules/maintain/maintenance.vue) - [execute.vue](file://app/devicemate-app/modules/maintain/execute.vue) - [repair.vue](file://app/devicemate-app/modules/repair/repair.vue) - [checkDetail.vue](file://app/devicemate-app/modules/maintain/checkDetail.vue) - [inspectTasks.vue](file://app/devicemate-app/modules/inspectTasks/inspectTasks.vue) - [execute.vue](file://app/devicemate-app/modules/inspectTasks/execute.vue) - [process.vue](file://dm/lemes-web/src/components/bpmnModeler/components/nodePanel/process.vue) - [task.vue](file://dm/lemes-web/src/components/bpmnModeler/components/nodePanel/task.vue) - [index.vue](file://dm/lemes-web/src/components/bpmnModeler/index.vue) - [BpmData.js](file://dm/lemes-web/src/components/bpmnModeler/BpmData.js) - [showConfig.js](file://dm/lemes-web/src/components/bpmnModeler/flowable/showConfig.js)

目录

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

简介

本文件面向“流程实例管理”的专业文档,围绕流程实例的全生命周期(启动、执行、暂停、恢复、终止)、状态管理与监控、API 接口规范以及典型业务场景(设备维护工单、维修申请、审批流程)进行系统化梳理,并给出最佳实践建议(实例清理策略、查询优化、审计与追踪)。文档同时对关键实体类(如 HisTaskInstanceResp、FlowLogDO)进行结构与职责说明,帮助读者快速理解数据模型与运行机制。

项目结构

该仓库包含前端应用、流程设计器、后端服务与工作流模块、作业调度与设备工单执行等多层能力。与流程实例管理直接相关的关键位置如下:

  • 前端应用与流程设计器:用于流程建模、节点属性配置与流程可视化
  • 工作流服务(Feign 客户端):对外暴露流程启动等接口
  • 执行器与设备工单:负责将流程与具体业务(维护、巡检、维修)结合
  • 公共事件日志:提供统一审计与追踪能力

图表来源

章节来源

核心组件

  • 工作流服务 Feign 客户端:提供流程启动接口,作为前端与后端工作流引擎的桥梁
  • 历史任务实例传输对象:封装历史任务实例的关键字段,便于前端展示与审计
  • 流程日志实体:记录流程调用、节点、审批、表单等上下文信息,支撑审计与问题定位
  • 设备工单服务与执行器:将流程与设备业务(维护、巡检、维修)绑定,生成工单并推进流程
  • 事件日志:统一记录操作行为,支持审计与追踪
  • 流程设计器与节点面板:提供流程建模、节点属性配置与可视化

章节来源

架构总览

下图展示了从前端到工作流服务、执行器与审计系统的整体交互路径,体现流程实例的启动、执行与审计追踪。

图表来源

详细组件分析

实体类与数据模型

  • HisTaskInstanceResp:用于历史任务实例的传输,包含任务标识、名称、经办人、起止时间等字段,便于前端展示与审计
  • FlowLogDO:流程日志实体,记录请求键、接口名、流程实例、节点与审批上下文、表单信息、创建/更新时间等,支撑审计与问题定位

图表来源

章节来源

工作流服务与流程启动

  • 工作流客户端提供流程启动接口,前端通过该接口提交启动参数,后端完成流程实例创建与初始节点推进
  • 客户端采用 Feign 进行远程调用,具备降级与配置能力

图表来源

章节来源

设备工单与流程实例的结合

  • 执行器在生成设备工单的同时,会推进流程实例,确保业务闭环
  • 通过定时任务或作业处理器,对同设备的多条工单进行优先级与等级判定,必要时关闭低优先级工单并更新任务完成度

图表来源

章节来源

流程设计器与节点配置

  • 流程设计器提供节点面板,支持用户任务、服务任务、脚本任务等多种节点的属性配置
  • 支持监听器、多实例、到期时间等高级特性配置,满足复杂审批与执行需求

图表来源

章节来源

审计与追踪

  • 事件日志实体与 Mapper 提供统一的审计能力,记录主机名、用户名、动作类型、事件类型、事件来源、事件键值、事件数据、IP 地址等
  • 网关过滤器注入 traceId 并统计请求延迟,便于端到端追踪

图表来源

章节来源

依赖关系分析

  • 前端页面与执行器/设备工单:前端页面通过接口提交业务数据,执行器保存工单并推进流程
  • 工作流客户端与执行器:工作流客户端负责流程启动与推进,执行器负责业务数据落库与流程实例关联
  • 审计链路:网关过滤器贯穿请求生命周期,事件日志提供持久化审计

图表来源

章节来源

性能考量

  • 请求追踪与延迟统计:通过网关过滤器注入 traceId 并计算请求耗时,有助于定位慢请求与瓶颈
  • 审计写入:事件日志写入数据库需关注写入频率与批量策略,避免阻塞主业务路径
  • 流程启动与推进:工作流客户端应合理设置超时与重试策略,避免长事务占用资源
  • 数据库访问:执行器在保存工单与推进流程时,应使用批量插入与事务控制,减少锁竞争

[本节为通用性能建议,不直接分析具体文件]

故障排查指南

  • 审计与追踪
    • 使用 traceId 在网关过滤器中定位请求链路,结合事件日志确认关键节点的执行情况
    • 若流程未按预期推进,检查工作流客户端返回码与消息,核对 FlowLogDO 中的节点与审批上下文
  • 历史任务查看
    • 通过 HisTaskInstanceResp 的任务起止时间与经办人信息,快速定位历史节点执行情况
  • 工单状态异常
    • 若出现同设备多工单冲突,检查 MpLevelCloseWotJob 的逻辑是否正确关闭低优先级工单并更新任务完成度

章节来源

结论

流程实例管理以“工作流服务 + 执行器 + 审计追踪”为核心,结合前端流程设计器与业务页面,形成从流程启动到执行推进再到审计可视化的完整闭环。通过合理的实体设计、接口规范与最佳实践,能够有效支撑设备维护工单、巡检工单与维修申请等场景的高效运转。

[本节为总结性内容,不直接分析具体文件]

附录

API 规范(示例)

  • 启动流程
    • 方法:POST
    • 路径:/flow/startProcess
    • 请求体:StartProcessVo
    • 响应体:ResultData<StartProcessResp>
  • 查询待办任务(示意)
    • 方法:GET
    • 路径:/flow/pendingTasks
    • 响应体:List<FlowPendingTaskDTO>
  • 查询流程节点(示意)
    • 方法:GET
    • 路径:/flow/nodes
    • 响应体:List<TaskNodeDTO>
  • 回退流程(示意)
    • 方法:POST
    • 路径:/flow/breakback
    • 请求体:BreakInfoDTO
    • 响应体:ResultData<Boolean>

章节来源

实际应用场景

  • 设备维护工单实例
    • 页面:modules/maintain/maintenance.vue、modules/maintain/execute.vue、modules/maintain/checkDetail.vue
    • 关键点:提交检查项、指定确认人、推进流程实例
  • 巡检工单实例
    • 页面:modules/inspectTasks/inspectTasks.vue、modules/inspectTasks/execute.vue
    • 关键点:获取当前部门用户、展示设备信息、执行检查
  • 维修申请实例
    • 页面:modules/repair/repair.vue
    • 关键点:填写维修信息、提交申请、推进流程

章节来源

最佳实践

  • 实例清理策略
    • 对于已完成或超期的工单,定期清理历史数据,避免表膨胀;保留必要的审计字段以便追溯
  • 实例查询优化
    • 为常用查询条件建立索引(如流程实例 ID、业务键、状态、时间范围),并采用分页与缓存策略
  • 实例审计
    • 通过事件日志与 FlowLogDO 记录关键节点与审批上下文,确保可审计、可追踪
  • 用户与角色
    • 使用 FlowUserDo 与 FlowRoleDo 管理用户与角色,确保审批权限与可见性符合组织层级(工厂/部门)

章节来源