- 仪表盘双色进度条(超100%蓝红分段)、工时损耗展示、chart tooltip增强 - 修复 Submissions.vue 延期原因字段始终显示的Bug - 修复 SPA catch-all 路由拦截 API 请求(去尾部斜杠) - seed_demo.py 重写:5项目/4类型/32里程碑/124提交,真实时间线 - 三阶段损耗计算(前期工时/制作秒数/后期工时) - ContentType 扩展为11种,里程碑增强(预估天数/开始日期/超期检测) - 更新 PRD 和项目总结文档 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
712 lines
22 KiB
Markdown
712 lines
22 KiB
Markdown
# 内容组 · 项目制周期 / 成本 / 产出管理系统
|
||
## 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 阶段不设审批流程,提交即生效。
|
||
|
||
#### 提交字段:
|
||
|
||
- 提交人(自动关联当前用户)
|
||
- 所属项目(下拉选择当前参与的项目)
|
||
- 项目阶段
|
||
- 前期 / 制作 / 后期
|
||
- 工作类型
|
||
- 制作 / 测试 / 方案
|
||
- 内容制作类型(按阶段分组,共 11 种)
|
||
- 前期:策划案 / 剧本 / 分镜 / 人设图 / 场景图
|
||
- 制作:动画制作
|
||
- 后期:配音 / 音效 / 修补镜头 / 剪辑
|
||
- 其他
|
||
- 选择内容类型时系统自动设置对应的项目阶段
|
||
- 产出时长输入
|
||
- 分钟(可选)
|
||
- 秒(可选)
|
||
- 系统自动换算为总秒数
|
||
- 若无产出可填 0
|
||
- 投入时长(可选)
|
||
- 单位:小时
|
||
- 非必填,鼓励填写
|
||
- 用于后续效率分析
|
||
- 提交对象
|
||
- 组长 / 制片 / 内部 / 外部
|
||
- 制作描述(简要说明)
|
||
- 提交日期(默认当天,可修改为过去日期补填)
|
||
- 里程碑关联(系统自动)
|
||
- 根据内容类型自动匹配同名里程碑
|
||
- 如"策划案"提交自动关联"策划案"里程碑
|
||
- 延期原因
|
||
- 当关联的里程碑已超期时,必须填写延期原因
|
||
- 用于后续 AI 分析和管理复盘
|
||
|
||
---
|
||
|
||
### 6.4 项目里程碑(ProjectMilestone)
|
||
|
||
每个项目创建时自动生成一套默认里程碑,对应各阶段的工作环节。
|
||
|
||
**里程碑字段:**
|
||
|
||
- 所属项目
|
||
- 名称(如:策划案、剧本、分镜、配音等)
|
||
- 所属阶段(前期 / 后期)
|
||
- 是否完成(勾选)
|
||
- 完成日期(系统自动记录)
|
||
- 预估工作日(管理员填写)
|
||
- 开始日期(管理员填写)
|
||
- 实际工作日(系统自动计算 = 开始日期到完成日期的工作日数,排除周末)
|
||
- 是否超期(计算值 = 实际工作日 > 预估工作日)
|
||
|
||
**默认里程碑:**
|
||
|
||
| 阶段 | 里程碑 |
|
||
|------|--------|
|
||
| 前期 | 策划案、剧本、分镜、人设图、场景图 |
|
||
| 后期 | 配音、音效、修补镜头、剪辑、杂项 |
|
||
|
||
> 制作阶段不使用里程碑,以秒数进度为度量。
|
||
|
||
**操作:**
|
||
- 管理员可添加/删除里程碑
|
||
- 管理员可设置预估工作日和开始日期
|
||
- 勾选完成后系统记录完成日期
|
||
|
||
---
|
||
|
||
## 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 三阶段损耗计算体系
|
||
|
||
不同阶段的工作性质不同,采用不同的损耗衡量方式:
|
||
|
||
| 阶段 | 计算方式 | 损耗指标 | 度量单位 |
|
||
|------|----------|----------|----------|
|
||
| **前期** | 工时制 | 里程碑超期工时 | 小时(h) |
|
||
| **制作** | 秒数制 | 测试损耗 + 超产损耗 | 秒(s) |
|
||
| **后期** | 工时制 | 里程碑超期工时 | 小时(h) |
|
||
|
||
#### 前期损耗(工时制)
|
||
|
||
前期工作(策划案、剧本、分镜、人设图、场景图)无法用秒数衡量,改为按里程碑工期计算:
|
||
|
||
- 遍历前期里程碑,对有 `预估工作日` 且已完成的里程碑
|
||
- **实际工作日** = `完成日期 − 开始日期` 的工作日数(排除周末)
|
||
- **超出天数** = max(0, 实际工作日 − 预估工作日)
|
||
- **损耗工时** = 超出天数 × 8 小时
|
||
- 未完成但已超期的里程碑也计入(用当前日期代替完成日期)
|
||
|
||
#### 制作损耗(秒数制,保持现有逻辑)
|
||
|
||
- **测试损耗** = 工作类型为"测试"且项目阶段为"制作"的提交总秒数
|
||
- **制作产出** = 项目阶段为"制作"的非测试总秒数 + 内容类型为"修补镜头"的总秒数
|
||
- **超产损耗** = max(0, 制作产出 − 目标秒数)
|
||
- **制作总损耗** = 测试损耗 + 超产损耗
|
||
- **秒数损耗率** = 制作总损耗 ÷ 目标秒数 × 100%
|
||
|
||
#### 后期损耗(工时制)
|
||
|
||
后期里程碑中:
|
||
- **剪辑**等有预估工期的里程碑:与前期同理,按工时计算超期损耗
|
||
- **修补镜头**:秒数已计入制作损耗(与目标对比)
|
||
- **配音 / 音效**:外包或 AI 生成,不计损耗
|
||
|
||
#### 项目总损耗
|
||
|
||
> **秒数类总损耗** = 测试损耗 + 超产损耗
|
||
> **工时类总损耗** = 前期超期工时 + 后期超期工时
|
||
> **秒数损耗率** = 秒数类总损耗 ÷ 目标秒数 × 100%
|
||
|
||
**注意**:损耗仅统计生产层面的浪费,**不含 AI 工具成本**。
|
||
|
||
**示例:**
|
||
项目目标:13 集 × 5 分钟 = 3,900 秒
|
||
前期:策划案预估 5 天 / 实际 8 天 → 超 3 天 = 24h 损耗
|
||
制作:测试 500 秒 + 制作产出 4,800 秒 → 超产 900 秒 → 秒数损耗 1,400 秒
|
||
后期:剪辑预估 3 天 / 实际 3 天 → 无超期
|
||
秒数损耗率:1,400 ÷ 3,900 = 35.9%
|
||
工时损耗:24h
|
||
|
||
---
|
||
|
||
### 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 各阶段组损耗说明
|
||
|
||
| 阶段组 | 损耗方式 | 说明 |
|
||
|--------|----------|------|
|
||
| 前期组 | **工时制** | 按里程碑预估 vs 实际天数,超期部分 × 8h 计为损耗 |
|
||
| 制作组 | **秒数制** | 核心损耗来源:测试损耗 + 超出目标秒数的超产损耗 |
|
||
| 后期组 — 剪辑 | **工时制** | 按里程碑预估 vs 实际天数 |
|
||
| 后期组 — 补拍 | **秒数制** | 补拍秒数计入制作损耗(与目标对比) |
|
||
| 后期组 — 配音/音效 | ❌ | 外包或 AI 生成,不计损耗 |
|
||
|
||
---
|
||
|
||
## 9. 项目进度与时间管理
|
||
|
||
---
|
||
|
||
### 9.1 进度计算逻辑
|
||
|
||
- 完成百分比 = 当前累计提交秒数(有秒数的提交)÷ 项目目标总秒数 × 100%
|
||
- 仅统计有产出秒数的提交(制作组 + 后期补拍)
|
||
- 前期组和后期剪辑的工作不影响进度百分比(但其成本计入项目总成本)
|
||
- 进度上限不封顶(可超过 100%,超出部分即为损耗)
|
||
|
||
> **说明**:前期全部完成但制作未开始时,进度仍为 0%。
|
||
> 这是合理的——进度条反映的是"内容产出进度",不是"项目整体工作量进度"。
|
||
|
||
---
|
||
|
||
### 9.2 进度条可视化
|
||
|
||
- 显示项目进度条
|
||
- 预估完成时间作为基准
|
||
- 当前时间位置实时标注
|
||
|
||
#### 颜色规则
|
||
- 进度 ≤100%:蓝色进度条
|
||
- 进度 >100%:**双色进度条** — 蓝色表示目标内占比,红色表示超出占比(如 258% 时蓝色占 38.8%,红色占 61.2%)
|
||
- 百分比数字超过 100% 时变为红色
|
||
|
||
---
|
||
|
||
### 9.3 预估 vs 实际完成
|
||
|
||
- 项目完成后记录:
|
||
- 实际完成日期
|
||
- 与预估完成日期的偏差(天)
|
||
|
||
---
|
||
|
||
## 10. 项目完成与结算机制
|
||
|
||
### 规则
|
||
|
||
- 项目是否完成:
|
||
- 仅由 Owner 或指定高权限角色**手动确认**
|
||
- 系统可提示但不自动结算:
|
||
- 已达到目标产出
|
||
- 已超过预估完成时间
|
||
- 在手动确认前:
|
||
- 项目始终处于制作阶段
|
||
- 不触发任何结算逻辑
|
||
|
||
---
|
||
|
||
## 11. 项目结算(仅项目完成后)
|
||
|
||
### 结算内容(仅 Owner 可见)
|
||
|
||
#### 所有项目类型均展示:
|
||
- 项目总人力成本
|
||
- 项目 AI 工具成本
|
||
- 项目外包成本
|
||
- **项目总成本 = 人力 + AI 工具 + 外包**
|
||
- 项目总损耗(秒数 + 损耗率)
|
||
- 团队效率排行(人均基准对比)
|
||
|
||
#### 仅客户正式项目额外展示:
|
||
- 项目回款金额(创建时已填写)
|
||
- **项目盈亏 = 回款金额 − 项目总成本**
|
||
- 盈利 → 绿色标注
|
||
- 亏损 → 红色标注
|
||
|
||
#### 其他项目类型:
|
||
- 客户测试项目:展示总成本 + 损耗,无盈亏
|
||
- 内部原创项目:展示总成本 + 损耗,无盈亏
|
||
- 内部测试项目:展示总成本 + 损耗,无盈亏
|
||
|
||
> 项目进行中不展示任何盈利或亏损信息。
|
||
|
||
---
|
||
|
||
## 12. 仪表盘(Dashboard)
|
||
|
||
### 全局总览(Owner 可见)
|
||
|
||
提供公司级一目了然的运营视图:
|
||
|
||
#### 项目概览
|
||
- 当前进行中项目数量(按类型分类统计)
|
||
- 各项目进度条一览
|
||
- 超期项目高亮提醒
|
||
|
||
#### 成本视角
|
||
- 本月总人力成本
|
||
- 本月 AI 工具总成本
|
||
- 各项目成本排行
|
||
- 按项目类型汇总成本分布
|
||
|
||
#### 产出与效率视角
|
||
- 本月总产出秒数
|
||
- 各项目产出对比
|
||
- 团队人均日产出秒数
|
||
|
||
#### 损耗视角
|
||
- 总损耗率 + 总工时损耗卡片
|
||
- 各项目进度条下方显示损耗率与工时损耗
|
||
- 各项目损耗率排行(柱状图,tooltip 显示秒数损耗 + 工时损耗)
|
||
- 损耗不含工具成本,仅反映生产效率
|
||
|
||
#### 盈亏视角(仅客户正式项目)
|
||
- 已结算客户项目盈亏列表
|
||
- 客户项目盈亏汇总
|
||
- 亏损项目高亮标红
|
||
|
||
---
|
||
|
||
## 13. 权限与历史记录
|
||
|
||
### 权限层级
|
||
|
||
| 角色 | 可见范围 | 可操作 |
|
||
|------|----------|--------|
|
||
| Owner | 全量数据 + 结算 + 仪表盘 | 一切操作、确认结算、修改历史 |
|
||
| 主管 / 制片 | 所有项目进度与产出数据 | 录入 AI 工具成本、外包成本 |
|
||
| 组长 | 所负责项目 + 组内成员提交 | 查看组员提交、录入成本 |
|
||
| 成员 | 本人提交记录 + 所属项目公开信息 | 提交内容、查看项目进度 |
|
||
|
||
---
|
||
|
||
### 历史修改规则
|
||
|
||
- 普通成员不可修改已提交的历史记录
|
||
- 高权限角色(组长及以上)修改时:
|
||
- 必须填写修改原因
|
||
- 系统自动生成版本记录
|
||
- Owner 接收修改通知
|
||
- 页面默认显示最新版本
|
||
- 支持查看历史版本对比
|
||
|
||
---
|
||
|
||
## 14. 技术架构(V1)
|
||
|
||
### 技术栈
|
||
|
||
| 层级 | 技术选型 | 说明 |
|
||
|------|----------|------|
|
||
| 前端 | Vue 3 + Element Plus + Vite | 成熟的后台管理 UI 组件库 |
|
||
| 后端 | Python FastAPI | 高性能 API 框架 |
|
||
| 数据库 | MySQL 8.0(阿里云 RDS) | 生产环境;本地开发可回退 SQLite |
|
||
| 图表 | ECharts | 仪表盘可视化 |
|
||
| 认证 | JWT Token | 登录鉴权与权限控制 |
|
||
| AI 模型 | 豆包(火山引擎 ARK) | 报告摘要生成 |
|
||
| 消息推送 | 飞书自建应用 | 报告卡片消息 |
|
||
| 定时任务 | APScheduler | 日报/周报/月报定时触发 |
|
||
|
||
### 部署方式
|
||
|
||
- **CI/CD**:Gitea Actions 自动构建,推代码即部署
|
||
- **镜像**:Docker 构建,推送到华为云 SWR
|
||
- **运行**:K3s 集群,通过 Ingress 暴露服务
|
||
- **前端**:静态构建后由后端统一托管(`/` 路径返回 index.html)
|
||
- **数据库**:阿里云 RDS MySQL,通过环境变量配置连接
|
||
|
||
### 后续扩展路径
|
||
- V3:移动端响应式适配
|
||
- V3:数据导出(Excel / PDF)
|
||
- V3:AI 智能问答助手(自然语言查询系统数据)
|
||
|
||
---
|
||
|
||
## 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 格式
|
||
|
||
---
|
||
|
||
## 最终定义
|
||
|
||
> **这是一个让内容生产过程保持自由,
|
||
> 但让项目进度、成本与结果无法模糊的系统。**
|