提示词
任务系统的详细设计
1. 实现主要的功能有:
1)任务的接受和处理
2)任务持久化到数据库
3)任务分支进度查询
4)任务重试
5)其他根据drsp的项目文档,请补充
2. 结合drsp的项目文档[drsp1.0.5.md] 和 drsp的xml流程图[etc/taskDefinition/drsp], 给出dpmn的详细设计文档,给出 对象梳理,时序图,数据库设计。
3. 输出到doc/drsp/task.md
给出bpmn的java实现 通用任务体系的详细设计
1. 梳理bpmn的 操作对象 和 实现流程图。
2. 实现主要的功能有:
1)任务的接受和处理
2)任务持久化到数据库
3)任务查询
4)任务重试
3. xml参考drsp的流程
4. 输出到doc/taskEngine/task1.0.0.md
# BPMN通用任务引擎详细设计
## 需求描述
设计并实现一个基于BPMN 2.0规范的通用任务处理引擎,提供完整的任务生命周期管理能力。
## 技术范围
- **技术栈**: Java 21+, Spring Boot 3.x, MyBatis/MyBatis-Plus
- **规范**: BPMN 2.0 (Business Process Model and Notation)
- **数据存储**: MySQL 5.7+
- **流程定义格式**: XML (参考DRSP流程定义标准)
## 交付物要求
输出设计文档到: `doc/taskEngine/task1.0.0.md`
## 详细设计内容
### 1. 领域模型设计
请梳理并定义以下BPMN核心操作对象:
- 流程定义层对象(ProcessDefinition, FlowNode, SequenceFlow等)
- 运行时对象(ProcessInstance, TaskInstance, Variable等)
- 历史数据对象(HistoricProcessInstance, HistoricTaskInstance等)
- 请给出完整的类图或ER图
### 2. 核心功能实现
请提供以下四大核心功能的技术实现方案:
#### 2.1 任务接收与处理
- 任务签收(claim)
- 任务办理(complete)
- 任务转办/委派(delegate/resolve)
- 任务驳回/退回(reject)
- 需包含状态机设计
#### 2.2 任务持久化
- 数据库表结构设计(DDL语句)
- 实体映射方案(JPA/MyBatis)
- 缓存策略(Redis可选)
- 乐观锁/悲观锁处理并发
#### 2.3 任务查询
- 待办任务查询(支持分页、排序、多条件过滤)
- 已办任务查询
- 流程轨迹查询(当前节点、历史路径)
- 任务统计(数量、平均处理时长等)
#### 2.4 任务重试
- 自动重试机制(失败任务自动重试)
- 手动重试接口
- 重试策略配置(重试次数、间隔时间、指数退避)
- 死信任务处理(超过重试上限)
### 3. XML流程定义
- 请参考DRSP(Digital Resource Service Platform)的流程定义规范
- 提供示例XML结构(包含:开始事件、用户任务、排他网关、结束事件)
- 定义XML解析器,将BPMN XML转换为内部CFG(控制流图)
### 4. 架构设计
请提供:
- 整体架构图(分层架构:API层、服务层、引擎层、持久化层)
- 核心类图(UML)
- 时序图(任务从创建到完成的完整流程)
- 状态机图(TaskInstance的状态流转)
## 输出格式要求
- 使用Markdown格式
- 包含代码示例(Java伪代码或实际代码)
- 包含SQL DDL语句
- 包含图表(可使用Mermaid语法)
- 文档结构清晰,包含目录
## 附加要求(可选)
- 考虑分布式场景下的任务分配(如多节点竞争消费)
- 考虑任务的超时处理与催办
- 提供简单的REST API设计示例
## 参考信息
- BPMN 2.0规范: https://www.omg.org/spec/BPMN/2.0/
- DRSP流程定义规范: (请根据实际内部规范补充)
输出