- 项目详情页三阶段里程碑管理(前期/制作/后期) - 制作卡片改用180px ECharts圆环进度图+右侧数据列表 - 修复损耗率双重计算bug(测试秒数不再重复计入超产) - 新增飞书推送服务、豆包AI风险分析、APScheduler定时报告 - 项目列表页增强(筛选/排序/批量操作/废弃功能) - 成员详情页产出时间轴+效率对比 - 成本页固定开支管理 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
18 KiB
内容组 · 项目制周期 / 成本 / 产出管理系统
AirLabs · Project
V1 产品需求文档(PRD)
1. 产品背景与使用场景
本系统服务于一家以 AI 动画 / 视觉内容为核心产出的内容团队(团队规模 30 人以内)。
团队真实工作方式
- 团队以项目制运作
- 项目类型包括:
- 原创动画项目(季播 / 单季)
- 客户项目(TVC / 定制广告 / 内容委托)
- 每个项目在开始时即可明确:
- 单集成片时长
- 集数
- 最终目标总时长
- 制作过程中:
- 大量使用 AI 工具(动画、图像、视频)
- 单日可能产出大量动画片段
- 最终在剪辑软件中拼接为完整成片
- 项目过程中普遍存在:
- 测试 / 试错
- 重做
- 内部制作 + 外包混合
内容组阶段分工
内容组按制作阶段分为三个小组,各组产出物与计量方式不同:
| 阶段组 | 主要产出物 | 能否用秒数衡量 |
|---|---|---|
| 前期组 | 剧本、策划方案、角色/场景设定图 | ❌ |
| 制作组(中期) | 动画片段、部分图片 | ✅ |
| 后期组 | 剪辑成片、补拍修改镜头(≤10%) | 部分可以 |
2. 当前管理问题
现有日报 / 表格方式无法解决以下问题:
- 一个项目到底投入了多少成本
- 实际产出是否匹配项目目标
- 测试与损耗占比情况
- 项目是否超期
- 项目结束后是否盈利
3. 产品目标
构建一个:
以项目为核心,
以内容提交为最小记录单位,
自动汇总产出、进度、成本与损耗,
支持项目完成后统一结算的内部系统。
4. 使用范围(V1)
覆盖范围
- 内容组
- 内容类项目
- 动画 / 视觉内容生产
- PC 端 Web 应用(预留响应式结构,V2 适配移动端)
不包含
- 产品研发周期管理
- 精细工时系统
- 人事绩效考核
- 审批 / 验收流程(保持提交轻量化)
- 移动端专属适配(V2)
5. 核心设计原则
- 项目是最高层级单位
- 内容提交是真实发生的工作记录
- 员工只填"发生了什么",计算交给系统
- 提交过程尽量简单,不给制作人员增加负担
- 项目完成前不展示财务结果
- 项目完成后统一结算
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 外包成本(项目级)
字段:
- 所属项目
- 外包类型
- 动画 / 剪辑 / 整集
- 外包范围
- 第 X–Y 集
- 外包金额
- 录入人
- 录入日期
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 框架 |
| 数据库 | SQLite(MVP) | 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 格式
最终定义
这是一个让内容生产过程保持自由, 但让项目进度、成本与结果无法模糊的系统。