airlabs-manage/AirLabs Project PRD.md
seaislee1209 90707005ed
All checks were successful
Build and Deploy Backend / build-and-deploy (push) Successful in 1m27s
Build and Deploy Web / build-and-deploy (push) Successful in 54s
feat: V2功能增强 — 里程碑系统+圆环进度图+损耗修复+AI服务+报告系统
- 项目详情页三阶段里程碑管理(前期/制作/后期)
- 制作卡片改用180px ECharts圆环进度图+右侧数据列表
- 修复损耗率双重计算bug(测试秒数不再重复计入超产)
- 新增飞书推送服务、豆包AI风险分析、APScheduler定时报告
- 项目列表页增强(筛选/排序/批量操作/废弃功能)
- 成员详情页产出时间轴+效率对比
- 成本页固定开支管理

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 18:36:44 +08:00

643 lines
18 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 内容组 · 项目制周期 / 成本 / 产出管理系统
## AirLabs · Project
### V1 产品需求文档PRD
---
## 1. 产品背景与使用场景
本系统服务于一家**以 AI 动画 / 视觉内容为核心产出的内容团队**(团队规模 30 人以内)。
### 团队真实工作方式
- 团队以**项目制**运作
- 项目类型包括:
- 原创动画项目(季播 / 单季)
- 客户项目TVC / 定制广告 / 内容委托)
- 每个项目在开始时即可明确:
- 单集成片时长
- 集数
- 最终目标总时长
- 制作过程中:
- 大量使用 AI 工具(动画、图像、视频)
- 单日可能产出大量动画片段
- 最终在剪辑软件中拼接为完整成片
- 项目过程中普遍存在:
- 测试 / 试错
- 重做
- 内部制作 + 外包混合
### 内容组阶段分工
内容组按制作阶段分为三个小组,各组产出物与计量方式不同:
| 阶段组 | 主要产出物 | 能否用秒数衡量 |
|--------|-----------|:---:|
| 前期组 | 剧本、策划方案、角色/场景设定图 | ❌ |
| 制作组(中期) | 动画片段、部分图片 | ✅ |
| 后期组 | 剪辑成片、补拍修改镜头≤10% | 部分可以 |
---
## 2. 当前管理问题
现有日报 / 表格方式无法解决以下问题:
- 一个项目**到底投入了多少成本**
- 实际产出是否匹配项目目标
- 测试与损耗占比情况
- 项目是否超期
- 项目结束后是否盈利
---
## 3. 产品目标
构建一个:
> **以项目为核心,
> 以内容提交为最小记录单位,
> 自动汇总产出、进度、成本与损耗,
> 支持项目完成后统一结算的内部系统。**
---
## 4. 使用范围V1
### 覆盖范围
- 内容组
- 内容类项目
- 动画 / 视觉内容生产
- PC 端 Web 应用预留响应式结构V2 适配移动端)
### 不包含
- 产品研发周期管理
- 精细工时系统
- 人事绩效考核
- 审批 / 验收流程(保持提交轻量化)
- 移动端专属适配V2
---
## 5. 核心设计原则
1. 项目是最高层级单位
2. 内容提交是真实发生的工作记录
3. 员工只填"发生了什么",计算交给系统
4. **提交过程尽量简单**,不给制作人员增加负担
5. 项目完成前不展示财务结果
6. 项目完成后统一结算
---
## 6. 核心对象与逻辑结构
---
### 6.1 项目Project
项目在创建时即明确目标,用于后续一切对照与计算。
**项目字段:**
- 项目名称
- 项目类型
- 客户正式项目(已签约,有合同金额)
- 客户测试项目(为甲方做测试/提案,未签约,无回款)
- 内部原创项目(自主立项的内容作品)
- 内部测试项目(技术测试、风格探索等)
- 项目状态
- 制作中
- 已完成(结算)
- 项目负责人
- 项目阶段结构
- 前期 / 制作 / 后期
- 项目目标产出
- 单集正片时长(分钟)
- 集数
- 系统自动计算目标总时长 = 单集时长 × 集数(换算为秒)
- 项目预估完成时间(日期)
- 由管理层基于前期测试后填写
- 客户回款金额(仅客户正式项目)
- 项目创建时即填写
- 其他类型项目此字段不显示
- 项目创建日期(系统自动记录)
---
### 6.2 用户User
- 姓名
- 所属团队(内容组)
- 所属阶段组
- 前期 / 制作 / 后期
- 用于后台按组筛选和统计
- 不影响成本分摊逻辑(分摊由提交内容自动决定)
- 角色权限
- 成员 / 组长 / 主管 / Owner
- 月度人力成本(工资)
- 日成本(系统自动计算)
- **日成本 = 月薪 ÷ 22 个工作日**
---
### 6.3 内容提交Submission【系统核心】
**一条内容提交 = 一次真实发生的内容交付或试错**
> 设计原则:成员只需如实填写"做了什么、产出多少",系统自动完成分类与计算。
> MVP 阶段不设审批流程,提交即生效。
#### 提交字段:
- 提交人(自动关联当前用户)
- 所属项目(下拉选择当前参与的项目)
- 项目阶段
- 前期 / 制作 / 后期
- 工作类型
- 制作 / 测试 / 方案
- 内容制作类型
- 内容制作
- 设定 / 策划
- 剪辑 / 后期
- 其他
- 产出时长输入
- 分钟(可选)
- 秒(可选)
- 系统自动换算为总秒数
- 若无产出可填 0
- 投入时长(可选)
- 单位:小时
- 非必填,鼓励填写
- 用于后续效率分析
- 提交对象
- 组长 / 制片 / 内部 / 外部
- 制作描述(简要说明)
- 提交日期(默认当天,可修改为过去日期补填)
---
## 7. 成本结构设计
---
### 7.1 人力成本(自动计算)
#### 基础规则
- 日成本 = 月薪 ÷ 22
- 项目人力成本 = 参与该项目的所有人员日成本按分摊规则累计
#### 分摊核心规则
> **系统根据提交的产出秒数自动判定分摊方式,成员无需额外操作。**
**规则一:有产出秒数 → 按秒数比例分摊**
适用于:制作组动画产出、后期组补拍镜头等有秒数的提交
**示例:**
小王(制作组)日成本 909 元,某天提交情况:
- A 项目:产出 60 秒
- B 项目:产出 30 秒
分摊结果:
- A 项目承担909 × (60/90) = 606 元
- B 项目承担909 × (30/90) = 303 元
**规则二:无产出秒数(秒数为 0 → 按提交条数比例分摊**
适用于:前期组策划/剧本/设定、后期组剪辑等无秒数产出的提交
**示例:**
小李(前期组)日成本 682 元,某天提交情况:
- A 项目:提交 2 条(剧本 + 角色设定)
- B 项目:提交 1 条(策划方案)
分摊结果:
- A 项目承担682 × (2/3) = 455 元
- B 项目承担682 × (1/3) = 227 元
**规则三:混合情况(同一天既有有秒数的提交,又有无秒数的提交)**
- 有秒数的提交按秒数参与分摊
- 无秒数的提交按 1 条 = 该日平均每秒对应的成本折算
- 简化处理:全部按提交条数比例分摊
**其他规则:**
- 若某天仅为一个项目提交 → 全部日成本归该项目
- 管理员可在后台**手动修改**任意一天的分摊结果
#### 各阶段组成本分摊方式汇总
| 阶段组 | 典型提交 | 产出秒数 | 分摊方式 |
|--------|---------|:--------:|---------|
| 前期组 | 剧本、策划、设定图 | 0 | 按提交条数比例 |
| 制作组 | 动画片段 | 有 | 按产出秒数比例 |
| 后期组 — 剪辑 | 剪辑成片 | 0 | 按提交条数比例 |
| 后期组 — 补拍 | 修改镜头≤10% | 有 | 按产出秒数比例 |
---
### 7.2 AI 工具成本(订阅类,可扩展)
#### 设计要求
- 后台支持**自定义添加 AI 工具**
- 工具种类可随时扩展
- 由主管或组长录入,每月录入一次或每次购买时录入
#### 字段:
- 工具名称(自定义)
- 订阅周期(月 / 年)
- 费用金额
- 录入日期
- 录入人
- 成本归属方式
- 指定项目100% 归属某项目)
- 内容组整体(按当月各项目产出秒数比例自动分摊)
- 手动分摊比例(自定义各项目占比)
---
### 7.3 外包成本(项目级)
#### 字段:
- 所属项目
- 外包类型
- 动画 / 剪辑 / 整集
- 外包范围
- 第 XY 集
- 外包金额
- 录入人
- 录入日期
---
### 7.4 内制 + 外包混合项目处理逻辑
- 项目目标仍按全集数计算
- 外包部分:
- 直接计入外包成本
- 不产生内部内容提交
- 内制部分:
- 通过内容提交产生动画时长
- 计入人力成本
---
## 8. 损耗与亏损(核心概念区分)
---
### 8.0 概念定义
> **损耗Waste** 和 **亏损Loss** 是两个独立指标,必须区分。
| 概念 | 定义 | 性质 | 何时产生 |
|------|------|------|---------|
| **损耗** | 生产过程中的浪费(测试试错 + 超产废片) | 生产效率指标 | 制作过程中持续产生,盈利项目也有 |
| **亏损** | 项目总成本超过回款金额 | 财务结果指标 | 仅客户正式项目结算后才计算 |
**关系**:损耗大 → 成本上升 → 可能导致亏损。但盈利的项目也会有损耗。
---
### 8.1 损耗的两个来源
#### 来源一:测试损耗
- 工作类型为"测试"的提交 → 全部属于测试损耗
- 测试产出的秒数即为测试损耗秒数
- 前期测试、风格测试、技术测试均属此类
#### 来源二:超产损耗
- 项目累计提交秒数超过目标秒数的部分
- **超产损耗 = 累计提交总秒数 项目目标总秒数**
- 仅当累计提交 > 目标时长时产生
- 仅统计有产出秒数的提交(制作组动画 + 后期组补拍)
#### 项目总损耗
> **项目总损耗(秒) = 测试损耗秒数 + 超产损耗秒数**
> **项目损耗率 = 项目总损耗秒数 ÷ 项目目标总秒数 × 100%**
**注意**:损耗仅统计生产层面的秒数浪费,**不含 AI 工具成本**(工具成本计入项目总成本,但不单独算作损耗)。
**示例:**
项目目标13 集 × 5 分钟 = 3,900 秒
测试阶段提交500 秒(测试损耗)
制作 + 后期补拍提交4,800 秒
超产损耗4,800 3,900 = 900 秒
项目总损耗500 + 900 = 1,400 秒
损耗率1,400 ÷ 3,900 = 35.9%
---
### 8.2 亏损的计算(仅客户正式项目)
> **亏损 = 项目总成本 回款金额**(仅当总成本 > 回款时)
- 仅客户正式项目有回款,因此仅客户正式项目计算盈亏
- 原创项目:只看成本和损耗,不算盈亏(未来回款未知)
- 客户测试项目 / 内部测试项目:无回款,全部成本视为经营投入
---
### 8.3 各项目类型的损耗与亏损适用性
| 项目类型 | 计算损耗 | 计算盈亏 | 说明 |
|----------|:---:|:---:|------|
| 客户正式项目 | ✅ | ✅ | 损耗看效率,盈亏看财务结果 |
| 客户测试项目 | ✅ | ❌ | 无回款,损耗 = 全部产出(本身就是试错) |
| 内部原创项目 | ✅ | ❌ | 只看成本和损耗,未来回款未知 |
| 内部测试项目 | ✅ | ❌ | 无回款,损耗 = 全部产出 |
---
### 8.4 团队效率追踪V1 粗暴方案)
> 核心问题:同样的工作量分下去,谁的废片率高?
V1 不做逐条通过率标记(太复杂),采用**人均基准对比法**
#### 计算逻辑
- **人均基准** = 项目目标总秒数 ÷ 参与制作的人数
- **超出基准** = 个人提交总秒数 人均基准
- **超出比例** = 超出基准 ÷ 人均基准 × 100%
- 超出多的人 → 产出的废片多 → 效率相对低
#### 示例
项目目标 3,900 秒4 人参与制作:
| 成员 | 提交总秒数 | 人均基准 | 超出基准 | 超出比例 |
|------|----------:|--------:|--------:|--------:|
| 小王 | 1,300 | 975 | +325 | +33% |
| 小李 | 1,100 | 975 | +125 | +13% |
| 小张 | 950 | 975 | 25 | 3% |
| 小赵 | 850 | 975 | 125 | 13% |
| **合计** | **4,200** | **3,900** | **+300** | — |
> 此方案基于"工作量基本均分"的前提,无需额外标记,纯靠提交数据自动计算。
---
### 8.5 各阶段组损耗说明
| 阶段组 | 是否计算秒数损耗 | 说明 |
|--------|:---:|------|
| 前期组 | ❌ | 方案推翻重做属于正常创作流程,不按秒数计损耗 |
| 制作组 | ✅ | 核心损耗来源,超出目标秒数的部分即为损耗 |
| 后期组 — 剪辑 | ❌ | 剪辑为组装工作,无新增秒数 |
| 后期组 — 补拍 | ✅ | 补拍秒数计入损耗(属于返工) |
---
## 9. 项目进度与时间管理
---
### 9.1 进度计算逻辑
- 完成百分比 = 当前累计提交秒数(有秒数的提交)÷ 项目目标总秒数 × 100%
- 仅统计有产出秒数的提交(制作组 + 后期补拍)
- 前期组和后期剪辑的工作不影响进度百分比(但其成本计入项目总成本)
- 进度上限不封顶(可超过 100%,超出部分即为损耗)
> **说明**:前期全部完成但制作未开始时,进度仍为 0%。
> 这是合理的——进度条反映的是"内容产出进度",不是"项目整体工作量进度"。
---
### 9.2 进度条可视化
- 显示项目进度条
- 预估完成时间作为基准
- 当前时间位置实时标注
#### 颜色规则
- 预估周期内:绿色
- 超出预估周期:红色延展
---
### 9.3 预估 vs 实际完成
- 项目完成后记录:
- 实际完成日期
- 与预估完成日期的偏差(天)
---
## 10. 项目完成与结算机制
### 规则
- 项目是否完成:
- 仅由 Owner 或指定高权限角色**手动确认**
- 系统可提示但不自动结算:
- 已达到目标产出
- 已超过预估完成时间
- 在手动确认前:
- 项目始终处于制作阶段
- 不触发任何结算逻辑
---
## 11. 项目结算(仅项目完成后)
### 结算内容(仅 Owner 可见)
#### 所有项目类型均展示:
- 项目总人力成本
- 项目 AI 工具成本
- 项目外包成本
- **项目总成本 = 人力 + AI 工具 + 外包**
- 项目总损耗(秒数 + 损耗率)
- 团队效率排行(人均基准对比)
#### 仅客户正式项目额外展示:
- 项目回款金额(创建时已填写)
- **项目盈亏 = 回款金额 项目总成本**
- 盈利 → 绿色标注
- 亏损 → 红色标注
#### 其他项目类型:
- 客户测试项目:展示总成本 + 损耗,无盈亏
- 内部原创项目:展示总成本 + 损耗,无盈亏
- 内部测试项目:展示总成本 + 损耗,无盈亏
> 项目进行中不展示任何盈利或亏损信息。
---
## 12. 仪表盘Dashboard
### 全局总览Owner 可见)
提供公司级一目了然的运营视图:
#### 项目概览
- 当前进行中项目数量(按类型分类统计)
- 各项目进度条一览
- 超期项目高亮提醒
#### 成本视角
- 本月总人力成本
- 本月 AI 工具总成本
- 各项目成本排行
- 按项目类型汇总成本分布
#### 产出与效率视角
- 本月总产出秒数
- 各项目产出对比
- 团队人均日产出秒数
#### 损耗视角
- 各项目损耗率排行(测试损耗 + 超产损耗)
- 损耗趋势图(按周/月)
- 损耗不含工具成本,仅反映生产效率
#### 盈亏视角(仅客户正式项目)
- 已结算客户项目盈亏列表
- 客户项目盈亏汇总
- 亏损项目高亮标红
---
## 13. 权限与历史记录
### 权限层级
| 角色 | 可见范围 | 可操作 |
|------|----------|--------|
| Owner | 全量数据 + 结算 + 仪表盘 | 一切操作、确认结算、修改历史 |
| 主管 / 制片 | 所有项目进度与产出数据 | 录入 AI 工具成本、外包成本 |
| 组长 | 所负责项目 + 组内成员提交 | 查看组员提交、录入成本 |
| 成员 | 本人提交记录 + 所属项目公开信息 | 提交内容、查看项目进度 |
---
### 历史修改规则
- 普通成员不可修改已提交的历史记录
- 高权限角色(组长及以上)修改时:
- 必须填写修改原因
- 系统自动生成版本记录
- Owner 接收修改通知
- 页面默认显示最新版本
- 支持查看历史版本对比
---
## 14. 技术架构V1
### 技术栈
| 层级 | 技术选型 | 说明 |
|------|----------|------|
| 前端 | Vue 3 + Element Plus | 成熟的后台管理 UI 组件库 |
| 后端 | Python FastAPI | 高性能 API 框架 |
| 数据库 | SQLiteMVP | 30 人以内完全够用,零配置 |
| 图表 | ECharts | 仪表盘可视化 |
| 认证 | JWT Token | 登录鉴权与权限控制 |
### 部署方式
- 阿里云轻量服务器
- 前端静态文件 + 后端 API 服务
- SQLite 数据库文件定期备份
### 后续扩展路径
- V2移动端响应式适配
- V2数据库升级至 PostgreSQL如用户量增长
- V2数据导出Excel / PDF
---
## 15. MVP 开发优先级
| 优先级 | 模块 | 内容 |
|--------|------|------|
| P0 | 登录与权限 | 4 级角色登录、鉴权、权限控制 |
| P0 | 项目管理 | 项目创建 / 编辑 / 状态管理 / 目标设定 |
| P0 | 内容提交 | 成员提交表单(核心功能) |
| P0 | 项目详情 | 进度条、提交记录列表、损耗统计 |
| P1 | 成本管理 | 人力成本自动计算、AI 工具成本录入、外包成本录入 |
| P1 | 仪表盘 | 全局总览:项目进度、成本、损耗、收益 |
| P1 | 项目结算 | Owner 手动结算、盈亏计算 |
| P2 | 历史修改记录 | 版本追溯、修改原因、通知 |
| P2 | 用户管理 | 新增 / 编辑成员、薪资设定 |
---
## 16. 系统最终产出价值
通过该系统,管理层可以清晰看到:
- 项目是否超期
- 项目节奏是否失控
- 各项目实际成本与损耗
- 内容组真实生产能力
- 客户项目是否盈利
- 项目结束后是否值得继续投入
---
## 17. AI 能力V2
### 17.1 概述
V2 接入 AI 大模型能力,为管理层提供自动化报告和智能分析:
- **AI 模型**豆包Doubao— 字节跳动大语言模型,火山引擎 ARK 平台
- **报告推送**:飞书自建应用,私聊推送给指定管理人员
- **定时调度**APScheduler 集成
### 17.2 自动报告
| 报告类型 | 推送时间 | 数据范围 |
|----------|----------|----------|
| 日报 | 每天 20:00 | 当天数据 |
| 周报 | 每周五 20:00 | 本周一至周五 |
| 月报 | 每月1日 10:00 | 上月完整数据 |
报告内容由系统汇总数据 + AI 生成自然语言摘要与建议。
### 17.3 项目风险预警
基于规则引擎自动识别风险项目,在仪表盘展示预警:
| 风险维度 | 判定规则 |
|----------|----------|
| 超期风险 | 距截止 ≤7天且进度 <80% |
| 进度风险 | 实际进度严重落后于时间线 |
| 损耗风险 | 损耗率 >50% |
| 产出停滞 | 近7天无提交 |
### 17.4 后续迭代V3
- AI 智能问答助手(自然语言查询系统数据)
- 按权限分级推送(不同角色看到不同内容)
- 团队效率 AI 深度分析
---
## 18. 飞书集成
### 接入方式
- 飞书自建应用(非 Webhook 群机器人)
- 私聊发送消息给指定管理人员
### 所需权限
- `im:message:send_as_bot` — 以应用身份发消息
- `contact:user.id:readonly` — 通过手机号获取用户 ID
### 消息格式
- 飞书交互式卡片Interactive Card
- 内容为 markdown 格式
---
## 最终定义
> **这是一个让内容生产过程保持自由,
> 但让项目进度、成本与结果无法模糊的系统。**