Skip to content

任务管理

**本文引用的文件** - [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) - [NextTaskDTO.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/NextTaskDTO.java) - [NodeInfoDTO.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/NodeInfoDTO.java) - [UserDTO.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/UserDTO.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) - [index.vue](file://dm/lemes-web/src/components/bpmnModeler/index.vue) - [task.vue](file://dm/lemes-web/src/components/bpmnModeler/components/nodePanel/task.vue) - [index.js](file://dm/lemes-web/src/components/std/index.js) - [LemesGlobalFilter.java](file://lemes-cloud/lemes-gateway/src/main/java/com/lenovo/lemes/gateway/filter/LemesGlobalFilter.java) - [MpLevelCloseWotJob.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/handler/MpLevelCloseWotJob.java) - [SpDelayRemindJob.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/handler/SpDelayRemindJob.java) - [HjSpDelayRemindJob.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/handler/HjSpDelayRemindJob.java) - [DevicePlanTimeServiceImpl.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/service/device/impl/DevicePlanTimeServiceImpl.java)

目录

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

简介

本技术文档围绕“任务管理”主题,系统梳理工作流任务从创建、分配、执行到完成的全生命周期管理。重点覆盖以下方面:

  • 数据模型:FlowPendingTaskDTO、TaskNodeDTO、NextTaskDTO、NodeInfoDTO、UserDTO 的设计与使用场景
  • 任务分配机制:自动分配规则、手动分配策略、任务转办与委托
  • 任务管理API:任务查询、任务处理、任务监控等接口规范
  • 不同类型任务处理流程:审批任务、执行任务、监控任务
  • 最佳实践:任务超时处理、任务优先级设置、任务批量处理

项目结构

任务管理涉及前端流程设计器、后端工作流服务、网关过滤器以及定时作业等多个模块协同:

  • 前端:BPMN 流程设计器与节点属性配置,标准化流程处理入口
  • 后端:工作流服务通过 Feign 客户端对接流程引擎,提供任务查询与处理能力
  • 网关:全局过滤器注入任务追踪与延迟统计
  • 作业:定时任务对任务超期与优先级进行处理与告警

图表来源

章节来源

核心组件

  • FlowPendingTaskDTO:用于封装待处理任务的关键字段(任务类型、流程实例、任务名称、任务ID),便于前端或服务间传递
  • TaskNodeDTO:描述流程节点的任务信息(活动ID、任务名称、节点类型、角色ID、候选人列表、父级活动集合等)
  • NextTaskDTO:用于指定下一节点的活动ID、可选的替换审批人与部门ID
  • NodeInfoDTO:封装当前节点的活动ID、任务ID、任务名称与候选人用户列表
  • UserDTO:用户标识(用户ID、账号、姓名)

这些模型在工作流任务的查询、分配与流转中承担数据载体职责。

章节来源

架构总览

任务管理采用前后端分离与微服务架构:

  • 前端通过 BPMN 设计器配置任务节点属性(如审批人、候选人、到期时间等),并通过标准化方法提交流程处理
  • 网关层注入 traceId 与请求延迟统计,辅助任务链路追踪
  • 工作流服务通过 Feign 客户端对外暴露流程启动、任务处理等接口
  • 定时作业负责任务超期提醒与优先级控制,保障执行效率与合规性

图表来源

详细组件分析

数据模型类图

图表来源

章节来源

任务分配机制

  • 自动分配规则:基于流程节点的角色ID与候选人列表,系统可按候选用户集合自动选择执行人
  • 手动分配策略:通过 BPMN 节点面板配置“指定审批人/候选人/候选组”,并支持到期时间等属性
  • 任务转办与委托:通过替换审批人字段实现,允许在下一节点处理时指定新的审批人

图表来源

章节来源

任务管理API

  • 流程启动:通过 Feign 客户端调用流程启动接口,传入流程参数与上下文
  • 任务处理:前端通过标准化方法提交处理动作,携带 actionId 与业务数据
  • 监控与追踪:网关过滤器注入 traceId 与请求延迟,便于定位慢请求与异常

图表来源

章节来源

不同类型任务处理流程

  • 审批任务:通过 FlowPendingTaskDTO 识别审批节点,结合 TaskNodeDTO 的角色与候选人进行审批
  • 执行任务:通过 NodeInfoDTO 获取当前节点信息与候选人,进入执行阶段
  • 监控任务:定时作业对超期任务进行提醒与优先级处理,确保任务按时完成

图表来源

章节来源

依赖分析

  • 前端依赖:BPMN 设计器通过节点面板配置任务属性;标准化入口统一处理流程处理请求
  • 网关依赖:全局过滤器为请求注入 traceId 与延迟统计
  • 服务依赖:工作流服务通过 Feign 客户端对外提供流程启动与任务处理能力
  • 作业依赖:定时作业依赖任务服务与工单服务,实现超期提醒与优先级关闭

图表来源

章节来源

性能考虑

  • 请求追踪与延迟统计:网关过滤器注入 traceId 与请求延迟,有助于快速定位慢请求与异常路径
  • 任务超时处理:定时作业按业务类型区分超期提醒策略,避免重复提醒与资源浪费
  • 优先级控制:定时作业按优先级关闭多余工单,减少无效任务堆积

章节来源

故障排查指南

  • 任务状态异常:检查 BPMN 节点面板配置(审批人、候选人、到期时间)是否正确
  • 请求延迟过高:查看网关过滤器注入的 traceId 与延迟信息,定位慢请求环节
  • 超期未提醒:确认定时作业是否正常运行,检查任务的到期时间与提醒策略配置
  • 优先级冲突:核对定时作业的优先级关闭逻辑,确保仅关闭低优先级工单

章节来源

结论

本文档从数据模型、任务分配机制、API 规范、流程处理与最佳实践五个维度,全面阐述了任务管理在本项目中的实现方式。通过 BPMN 设计器、工作流服务、网关过滤器与定时作业的协同,实现了任务的可视化配置、高效处理与智能监控。建议在实际落地中重点关注节点属性配置、超时与优先级策略,以提升整体执行效率与用户体验。

附录

  • 前端 BPMN 节点属性配置参考:审批人、候选人、候选组、异步执行、到期时间等
  • 工作流服务接口参考:流程启动、任务处理等
  • 定时作业参考:超期提醒、优先级关闭等