You've already forked DataMate
## 功能概述 实现完整的任务拆分、分配和进度跟踪功能,支持将任务拆分为子任务并分配给不同用户。 ## Phase 1: 数据库层 - 新增 t_task_meta 表(任务元数据协调表) - 新增 t_task_assignment_log 表(分配日志表) - 新增 3 个权限条目(read/write/assign) - 新增 SQLAlchemy ORM 模型 ## Phase 2: 后端 API (Java) - 新增 task-coordination-service 模块(32 个文件) - 实现 11 个 API 端点: - 任务查询(列表、子任务、我的任务) - 任务拆分(支持 4 种策略) - 任务分配(单个、批量、重新分配、撤回) - 进度管理(查询、更新、聚合) - 分配日志 - 集成权限控制和路由规则 ## Phase 3: 前端 UI (React + TypeScript) - 新增 10 个文件(模型、API、组件、页面) - 实现 5 个核心组件: - SplitTaskDialog - 任务拆分对话框 - AssignTaskDialog - 任务分配对话框 - BatchAssignDialog - 批量分配对话框 - TaskProgressPanel - 进度面板 - AssignmentLogDrawer - 分配记录 - 实现 2 个页面: - TaskCoordination - 任务管理主页 - MyTasks - 我的任务页面 - 集成侧边栏菜单和路由 ## 问题修复 - 修复 getMyTasks 分页参数缺失 - 修复子任务 assignee 信息缺失(批量查询优化) - 修复 proportion 精度计算(余量分配) ## 技术亮点 - 零侵入设计:通过独立协调表实现,不修改现有模块 - 批量查询优化:避免 N+1 查询问题 - 4 种拆分策略:按比例/数量/文件/手动 - 进度自动聚合:子任务更新自动聚合到父任务 - 权限细粒度控制:read/write/assign 三级权限 ## 验证 - Maven 编译:✅ 零错误 - TypeScript 编译:✅ 零错误 - Vite 生产构建:✅ 成功
🚀 快速开始
npm install # 安装依赖
npm run dev # 启动项目
npm run mock # 启动后台Mock服务(可选)
📁 项目结构
frontend/
├── public/ # 📖 文档中心
│ └── xxx/ # 标注工作台(可分离部署)
│
├── src/ # 🎨 前端应用
│ ├── apps/ # 多前端应用
│ │ ├── console/ # 数据工作台&运营控制台
│ │ │ ├── next.config.js
│ │ │ ├── package.json
│ │ │ └── src/
│ │ └── annotation-studio/ # 标注工作台(可分离部署)
│ │
│ ├── assets/ # 共享UI组件/SDK
│ │ ├── xxx/ # 数据工作台&运营控制台
│ │ │ ├── next.config.js
│ │ │ └── src/
│ │ │
│ │ │
│ │ └── xxx/ # 数据工作台&运营控制台
│ │ ├── package.json
│ │ └── src/
│ │
│ ├── components/ # 构建与环境配置
│ │ ├── CardView.tsx # 数据工作台&运营控制台
│ │ ├── DetailHeader.tsx # 数据工作台&运营控制台
│ │ ├── RadioCard.tsx # 数据工作台&运营控制台
│ │ ├── SearchControls # 数据工作台&运营控制台
│ │ ├── TagList # 标注工作台(可分离部署)
│ │ └── TaskPopover # 标注工作台(可分离部署)
│ │
│ ├── hooks/ # 构建与环境配置
│ │ ├── console/ # 数据工作台&运营控制台
│ │ ├── next.config.js
│ │ ├── next.config.js
│ │ ├── next.config.js
│ │ ├── next.config.js
│ │ ├── next.config.js
│ │ └── annotation-studio/ # 标注工作台(可分离部署)
│ │
│ ├── mock/ # 构建与环境配置
│ │ ├── console/ # 数据工作台&运营控制台
│ │ ├── next.config.js
│ │ ├── next.config.js
│ │ ├── next.config.js
│ │ ├── next.config.js
│ │ └── annotation-studio/ # 标注工作台(可分离部署)
│ │
│ ├── pages/ # 构建与环境配置
│ │ ├── console/ # 数据工作台&运营控制台
│ │ │ ├── next.config.js
│ │ │ ├── package.json
│ │ │ └── src/
│ │ └── annotation-studio/ # 标注工作台(可分离部署)
│ │
│ ├── providers/ # 构建与环境配置
│ │ ├── console/ # 数据工作台&运营控制台
│ │ │ ├── next.config.js
│ │ │ ├── package.json
│ │ │ └── src/
│ │ └── annotation-studio/ # 标注工作台(可分离部署)
│ │
│ ├── routes/ # 构建与环境配置
│ │ └── next.config.js
│ │
│ ├── types/ # 构建与环境配置
│ │ ├── next.config.js
│ │ ├── next.config.js
│ │ ├── next.config.js
│ │ ├── next.config.js
│ │ └── next.config.js
│ │
│ └── utils/ # 构建与环境配置
│ ├── next.config.js
│ ├── next.config.js
│ └── next.config.js
│
├── eslint.config.js/ # 🔧 后端服务架构
├── index.html/ # 🔧 后端服务架构
├── package.json/ # 🔧 后端服务架构
├── README.md # 项目说明
├── tailwind.config.ts # 更新日志
├── vite.config.ts # 开源协议
└── pom.xml # Maven根配置