# M7 工时与资源管理 — FSD（功能设计说明书）

| 项 | 值 |
|---|---|
| 模块 | M7 工时与资源管理 |
| 文档类型 | FSD（功能设计说明书） |
| 对应 PRD | [requirements/M7](../requirements/M7-工时与资源管理.md) |
| 对应 LDD | [ldd/M7](../ldd/M7-工时与资源管理-设计.md) · [数据字典](../ldd/数据字典.md) |
| 配套 | [业务流程图-M7.txt](业务流程图-M7.txt) · [测试用例-M7.md](测试用例-M7.md) |
| 上级 | [需求分析总纲](../需求分析总纲.md) · [FSD 模板](FSD-模板.md) |

> 逐功能规格；TimeEntry 数据结构、工时→人天换算、消耗汇总/EAC、burn、Workload/利用率口径见 ldd/M7，字段定义见数据字典，**引用不复制**。类型为逻辑类型，物理类型留待 SDD。工时/Time 子系统按 NFR-11 解耦为独立 App/Plugin（类比 Tempo）。

## 1. 概述与范围
活动化工时、额度消耗与人力资源管理：把 PS 交付投入转为可计量、可汇总、可预警、可调度的标准工时数据。承载工时录入、修改审批、活动类型分流、额度消耗、超支预警、利用率/产能/Workload、burn、技能派单与需求预测。

**PRD 覆盖追溯（FR → 功能）**

| FR | 功能 |
|---|---|
| FR-RES-01 | §4.1 活动化工时录入与周填报 |
| D-P8 | §4.2 工时修改与超期审批 |
| FR-RES-10 | §4.3 活动类型分流与交付型立项引导 |
| FR-RES-02 | §4.4 工时汇总与额度消耗 |
| FR-RES-03 | §4.5 额度视图与超支软预警 |
| FR-RES-08/09 | §4.6 内部非项目时间（non-billable） |
| FR-RES-04/08 | §4.7 产能 / 利用率 / Workload |
| FR-RES-05 | §4.8 项目 burn 跟踪 |
| FR-RES-06 | §4.9 技能画像与按技能派单 |
| FR-RES-07 | §4.10 需求与排期预测 |

**不在本模块**：立项准入与 triage 判定（M6 D-P14/FR-PROJ-23）、合同 Quota 建池（M1）、审批链结构与 Automations 引擎（M9）、利用率/burn 的报表呈现（M10）、健康度算法（M4）。

## 2. 角色与权限点（角色 × 操作，接 M2）

| 操作 \ 角色 | PSE（记录人） | 项目 PM | PS Leader | 归属 TAM | Sales | Admin |
|---|---|---|---|---|---|---|
| 录入/自助改自己工时（24h 内） | ✓自己 | ✓自己 | ✓自己 | ✓自己 | — | ✓ |
| 审批超期工时修改 | — | ✓本项目 | ✓本域 | — | — | ✓ |
| 选活动类型/挂项目 | ✓自己 | ✓ | ✓ | ✓经营工时 | — | ✓ |
| 查看项目额度消耗/burn | ✓本项目 | ✓本项目 | ✓本域 | ✓本客户 | ✓关联客户 | ✓ |
| 收超支分级预警 | — | ✓ | ✓ | ✓ | ✓ | ✓ |
| 维护技能画像 | ✓自评 | — | ✓确认 | — | — | ✓ |
| 按技能派单 | — | ✓ | ✓ | — | — | ✓ |
| 查看利用率/Workload/预测 | ✓自己 | ✓团队 | ✓本域 | — | — | ✓ |
| 通用桶异常告警复核 | — | — | ✓兜底 | — | — | ✓ |

> 数据范围由 M2 ABAC 计算；`used`/汇总类字段全局只读（单向汇总，不可手改，源自 TimeEntry）。

## 3. 状态流转与业务流程图
> 图见 [业务流程图-M7.txt](业务流程图-M7.txt)。含：① TimeEntry 草稿→提交→已改→锁定 状态流转；② 工时录入 + 类型分流 + 交付型必挂项目校验 泳道；③ 超 24h 修改审批 泳道；④ 额度消耗汇总与超支分级预警 流程。

## 4. 功能规格

### 4.1 活动化工时录入与周填报

**4.1.1 功能说明**　按 D-P7 活动化录入：一条 TimeEntry 对应一次真实活动（0.5h 步长 + 自由文本内容），**可挂 Task 亦可直挂 Project**；提供周填报视图与缺报提醒，保障工时齐全。

**4.1.2 业务流程**　见 [业务流程图-M7.txt](业务流程图-M7.txt) §二。要点：选归属（Task/Project）→ 选活动类型（分流校验，§4.3）→ 填 0.5h 步长工时 + 内容 → 提交 → 起算 24h 可改窗口 → 周截止前对缺报人提醒。

**4.1.3 界面设计**
- **录入弹窗/行内**：活动日期、归属选择器（先选 Project，再可选其下 Task 或直挂 Project）、活动类型、工时（0.5h 步进器）、内容（自由文本）。
- **周填报视图**：本周 7 日网格，按项目/任务分行，单元格快速补录；顶部显示本周已报合计与应报差额。
- **缺报提醒**：低于应报标准者在周截止前收提醒（飞书 INT-05）；应报标准目标值待业务确认。
- 空态："本周暂无工时，点此按活动录入"。

**4.1.4 字段定义**

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| owner | 引用 | 系统 | =当前用户 | 系统 | 只读 | 记录人 |
| project_id | 引用 | 是 | 项目存在且可参与 | 输入 | 提交前可改 | 直挂或经 Task 带出 |
| task_id | 引用 | 否 | 属于 project_id | 输入 | 提交前可改 | 可空（直挂 Project） |
| hours | 数值 | 是 | >0 且为 0.5 的整数倍 | 输入 | 24h 内可改 | 0.5h 步长 |
| content | 文本 | 是 | 非空 | 输入 | 24h 内可改 | 活动内容自由文本 |
| activity_date | 日期 | 是 | 非未来日 | 输入 | 24h 内可改 | 活动实际日期 |
| activity_type | 枚举 | 视场景 | 见 §4.3 | 输入 | 提交前可改 | retainer/Dedicated 下必选 |
| billable | 布尔 | 系统 | 项目/经营=true、内部=false | 派生 | 不可手改 | 计入客户投入 |

**4.1.5 业务规则**
- 活动化：一条记录=一次真实活动（D-P7）；工时步长 0.5h，非 0.5 倍数拒绝。
- 挂 Task 与直挂 Project 两种方式均支持（D-P7）；挂 Task 时其 Project 自动带出。
- 缺报判定按应报标准（目标值待业务确认），提醒率目标 100%（FR-RES-01）。

**4.1.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| 工时非 0.5h 倍数 | "工时须为 0.5 小时的整数倍" | 阻断保存 |
| 未选归属项目 | "请先选择所属项目或任务" | 阻断保存 |
| 活动日期为未来 | "活动日期不能晚于今天" | 阻断保存 |
| 缺报到期 | "本周工时未报满，请及时补录" | 提醒（不阻断），记提醒事件 |

**4.1.7 权限控制**　PSE/PM/PS Leader/TAM 录入自己的工时；他人工时不可代录（Admin 例外，留审计）；外部账号无工时入口。

### 4.2 工时修改与超期审批

**4.2.1 功能说明**　按 D-P8：提交后 **24h 内可自助修改**，超 24h 修改须走 PM 审批（M9），全程审计（NFR-04）。

**4.2.2 业务流程**　见 [业务流程图-M7.txt](业务流程图-M7.txt) §三。要点：改动请求 → 判 `now ≤ editable_until`（=submitted_at+24h）→ 是则自助改并记审计 → 否则发起修改 Request 至 PM 审批（M9）→ 批准后更新并留痕，驳回则维持原值。

**4.2.3 界面设计**
- 工时行「编辑」按钮：窗口内直接编辑；窗口外点击弹出"超 24h，需提交修改审批"，转审批表单（原值/新值/修改事由）。
- 审批进度条（引用 M9）；已锁定记录显示锁标与最近一次变更审计入口。

**4.2.4 字段定义**

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| submitted_at | 日期时间 | 系统 | — | 系统 | 只读 | 提交时间 |
| editable_until | 日期时间 | 系统 | =submitted_at+24h | 派生 | 只读 | 可改窗口截止（换算见设计） |
| 修改事由 | 文本 | 超期改必填 | 非空 | 输入 | — | 进审计与审批包 |
| 变更前值/后值 | 结构 | 系统 | — | 审计 | 只读 | 全量留痕 |

**4.2.5 业务规则**
- 24h 窗口口径见 ldd/M7；窗口内自助改、窗口外必经 PM 审批（D-P8）。
- 所有修改（自助/审批）100% 留审计，审计缺失数=0（验收）。
- 审批链、待办、加急走 M9（FR-APR-01/02/03），本模块只发起与消费结果。

**4.2.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| 超 24h 直接改 | "已超 24 小时，修改需提交 PM 审批" | 转审批表单 |
| 超期改未填事由 | "请填写修改事由" | 阻断提交 |
| 修改已锁定/已汇总记录 | "该工时已锁定，如需更正请走审批" | 走审批路径 |
| 审批被驳回 | "修改申请被驳回，工时维持原值" | 保持原值 + 通知 |

**4.2.7 权限控制**　记录人可发起自助改/超期改申请；审批人为项目 PM（Admin 可代批，留审计）；他人不可越权改。

### 4.3 活动类型分流与交付型立项引导

**4.3.1 功能说明**　按 FR-RES-10 防持续型工时"赖通用桶"：retainer/Dedicated 下录入须选**活动类型**——**运维型**（答疑/on-call/巡检等 reactive 小颗粒）可挂通用支持桶；**交付型**（Migration/Upgrade/Tuning/POC 等有目标工作）**必须挂到具体 Service Package 项目**；选交付型却未关联项目则引导立项（M6 D-P14/FR-PROJ-23）。

**4.3.2 业务流程**　见 [业务流程图-M7.txt](业务流程图-M7.txt) §二。要点：录入判归属客户模式 →（retainer/Dedicated）要求选活动类型 → 运维型→允许挂通用桶 → 交付型→校验是否挂具体项目 → 未挂则引导发起 Engagement Request 立项（M6）→ 通用桶异常占比/关键词由 Automations 告警 PS Leader 兜底。

**4.3.3 界面设计**
- 活动类型单选（运维型 / 交付型），选交付型时归属选择器收窄为"具体 Service Package 项目"。
- 交付型未挂项目：内联引导卡"该工作应立项跟踪，去发起 Engagement Request"（跳 M6 立项入口）。
- PS Leader 兜底看板：通用桶占比、命中关键词的记录清单、复核操作（详见 M10 呈现）。

**4.3.4 字段定义**

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| activity_type | 枚举 | retainer/Dedicated 下必填 | 运维型/交付型 | 输入 | 提交前可改 | 分流依据 |
| 归属桶/项目 | 引用 | 是 | 运维型→通用桶；交付型→具体项目 | 输入 | 提交前可改 | 交付型必挂项目 |
| 通用桶异常标记 | 枚举 | 系统 | 占比/关键词命中 | Automations(M9) | 只读 | 供 PS Leader 复核 |

**4.3.5 业务规则**
- 交付型（有目标/有计划/跨多次/有交付物）必挂具体项目，未挂被引导立项（FR-RES-10、M6 D-P14/FR-PROJ-23）。
- 运维型仅限 reactive 小颗粒，可挂通用支持桶。
- 立项判定不由执行工程师掌握，走 TAM/PS Leader triage（M6，本模块只做录入侧分流与引导）。
- 通用桶异常占比阈值/关键词集合可配（目标值待业务确认）；命中告警 PS Leader 复核率目标 100%。

**4.3.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| retainer 下未选活动类型 | "请选择活动类型（运维型/交付型）" | 阻断保存 |
| 交付型未挂具体项目 | "交付型工作须挂到具体项目，是否去立项？" | 引导发起 Engagement Request（M6） |
| 通用桶占比/关键词异常 | "通用桶工时异常，请 PS Leader 复核" | Automations 告警，人工兜底 |

**4.3.7 权限控制**　录入人选类型/挂归属；立项由 TAM/PS Leader triage（M6）；通用桶异常复核限 PS Leader/Admin。

### 4.4 工时汇总与额度消耗

**4.4.1 功能说明**　按 FR-RES-02：挂载=**项目**的工时按 Project 汇总换算人天 → 累加到该项目 **Quota** 的 `used`：`finite`（付费或 **Sponsored=免费赠送 Man-days**）跟踪 used/remaining + 超支预警，**`unlimited`（Dedicated 持续型项目）照记 used、remaining=∞、不预警超支**；**经营 / 内部不 draw-down**（消耗汇总/换算见 ldd/M7）。

**4.4.2 业务流程**　挂载=项目的 TimeEntry → 按 Project 汇总工时 → 换算人天（默认 1 人天=8h，可配）→ 累计 Project.actual_mandays → **回填其绑定 Quota `used`（项目↔Quota=M:N、绑多份按 seq 依次扣；finite=付费/Sponsored 跟踪 remaining + 预警；unlimited=Dedicated 照记 used、remaining=∞、不预警；经营/内部不回填）** → 作为 M6 EAC/ETC 输入。

**4.4.3 界面设计**　项目「工时/消耗」区：已消耗人天、按人/任务的消耗明细、汇总口径说明；消耗为只读派生，附"由工时汇总，不可手改"提示。

**4.4.4 字段定义**

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| billable | 布尔 | 系统 | 项目/经营=true、内部=false | 派生 | 不可手改 | 计入客户投入 |
| actual_mandays | 数值 | 系统 | =Σ 项目工时/换算 | 派生 | 不可手改 | 项目实际人天（数据字典 M6） |
| 换算基准 | 数值 | 配置 | 默认 8h/人天 | 配置 | Admin 可配 | 按 CRM Time Zone（设计） |
| Quota.used | 数值 | 系统 | =Σ（绑本池项目）工时；**每个项目均有池，unlimited 池照记 used、remaining=∞** | 派生 | 不可手改 | 回填 M1，单向汇总 |

**4.4.5 业务规则**
- 挂载=项目的工时汇总回填其绑定 Quota `used` 率=100%（finite 跟踪 remaining + 预警；unlimited=Dedicated 照记 used、remaining=∞、不预警）；**经营/内部 扣额度=0**（FR-RES-02 验收）。
- 换算默认 1 人天=8h、可配（设计已敲定），口径唯一可对账（NFR-07）。
- 消耗仅来自交付项目 TimeEntry、单向汇总不可手改（M1 D-C8 一致）。
- **持续型=Dedicated 项目有 Quota（source=Dedicated、amount=unlimited）**（M6 FR-PROJ-18）：工时照常 draw-down 到该 unlimited 池——照记 used、remaining=∞、不耗尽、不预警超支。

**4.4.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| 手改消耗/actual_mandays | "额度消耗由工时汇总，不可手改" | 拒绝 |
| 项目无绑定额度来源 | "该项目未绑定额度/授权来源" | 消耗不落地（准入在 M6 阻断） |
| 汇总口径漂移 | "工时汇总与额度不一致" | 按 NFR-07 对账，人工核 |

**4.4.7 权限控制**　消耗/汇总全局只读；无人可手改 used/actual_mandays；查看范围按 §2 与 ABAC。

### 4.5 额度视图与超支软预警

**4.5.1 功能说明**　按 FR-RES-03：接近/超过额度时**分级预警并标红**、触达 PM/Sales/TAM；**超支后仍可继续记工时（软预警、不阻断）**；定期向 Sales 推送消耗（超支判定见 ldd/M7）。

**4.5.2 业务流程**　见 [业务流程图-M7.txt](业务流程图-M7.txt) §四。要点：每次汇总后判 remaining/used 占比 → 命中分级阈值 → 标红 + 分级触达（飞书 INT-05）→ 超支照记不阻断 → 定期向 Sales 推送消耗汇总。

**4.5.3 界面设计**　额度卡片（总量/已用/剩余进度条，接近阈值转橙、超支标红）；分级预警条（当前级别 + 触达对象）；消耗趋势与定期推送订阅入口。

**4.5.4 字段定义**

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| used / remaining | 数值 | 系统 | remaining=total−used | 派生 | 只读 | 来自 §4.4 汇总 |
| 预警级别 | 枚举 | 系统 | 接近/超支（分级） | 派生 | 只读 | 阈值可配，目标值待业务确认 |
| 触达对象 | 引用[多] | 系统 | PM/Sales/TAM | 配置 | 只读 | 分级触达 |
| 超支标记 | 布尔 | 系统 | used>total | 派生 | 只读 | 标红、不阻断 |

**4.5.5 业务规则**
- 超支软预警：超支后录入阻断率=0（不阻断），分级预警触达 PM/Sales/TAM 率目标 100%（FR-RES-03 验收）。
- 分级阈值（接近/超支各级）可配，目标值待业务确认。
- 定期向 Sales 推送消耗（周期可配）。

**4.5.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| 接近额度 | "额度已用 {x}%，接近上限" | 橙色预警 + 分级触达 |
| 已超支 | "额度已超支 {x} 人天（仍可记工时）" | 标红 + 触达，**不阻断录入** |
| 触达通道失败 | "预警通知发送失败，已重试并告警" | 重试 + 告警（NFR-06） |

**4.5.7 权限控制**　PM/Sales/TAM/PS Leader/Admin 可见预警；阈值/触达对象配置限 Admin；无人可手改消耗。

### 4.6 内部非项目时间（non-billable）

**4.6.1 功能说明**　按 FR-RES-09/08：学习/培训/内部事务等内部非项目时间纳入工时系统，标记为**非项目/non-billable**，不消耗客户额度；计入利用率分母。

**4.6.2 业务流程**　选内部类别录入 → billable=false → 不进 Man-days 消耗 → 计入利用率分母（§4.7）。

**4.6.3 界面设计**　录入时归属可选"内部/非项目"，带内部类别（学习/培训/内部事务…）；此类记录在项目消耗中不出现，仅在个人工时与利用率中体现。

**4.6.4 字段定义**

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| 内部类别 | 枚举 | 内部时间必填 | 学习/培训/内部事务/…（可配） | 输入 | 24h 内可改 | 非项目归属 |
| billable | 布尔 | 系统 | =false | 派生 | 不可手改 | 内部=non-billable |
| 计入利用率分母 | 布尔 | 系统 | =true | 派生 | 只读 | realization 口径 |

**4.6.5 业务规则**
- non-billable 不消耗客户额度率=100%（额度漂移=0，FR-RES-09 验收）。
- 计入利用率分母率=100%（§4.7 realization 口径）。
- 经营工时（TAM/CSM，EngagementActivity）同样记工时不耗额度（总纲经营/交付口径）。

**4.6.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| 内部时间挂到客户额度 | "非项目时间不消耗客户额度" | 强制 billable=false、不 draw-down |
| 未选内部类别 | "请选择内部时间类别" | 阻断保存 |

**4.6.7 权限控制**　各角色录入自己的内部时间；类别集合配置限 Admin。

### 4.7 产能 / 利用率 / Workload

**4.7.1 功能说明**　按 FR-RES-04/08：提供产能、利用率与 Workload 负载视图；**产能基准可配默认**（如 5 人天/周，可按人/团队调；本期不扣请假）；利用率口径见 ldd/M7。

**4.7.2 业务流程**　按 PSE 汇总 billable 工时与可用工时（含 non-billable 分母）→ 计利用率/realization → 汇总在办工时/任务呈现 Workload 负载。

**4.7.3 界面设计**　利用率视图（个人/团队，billable/产能占比）；Workload 负载视图（按 PSE 的在办工时/任务热度）；产能基准配置入口。呈现层看板在 M10。

**4.7.4 字段定义**

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| 产能基准 | 数值 | 配置 | 默认 5 人天/周（目标值待业务确认） | 配置 | 可按人/团队配 | 本期不扣请假 |
| 利用率 | 数值 | 系统 | =billable 工时/产能 | 派生 | 只读 | 口径见设计 |
| realization | 数值 | 系统 | 含 non-billable 分母 | 派生 | 只读 | Utilization/realization |
| Workload | 结构 | 系统 | 按 PSE 汇总在办 | 派生 | 只读 | 负载视图 |

**4.7.5 业务规则**
- 利用率=billable 工时/产能（分子口径可配、产能默认如 5 人天/周，目标值待业务确认）。
- non-billable 计入利用率分母率=100%（FR-RES-08/09）。
- 本期 = 利用率 + 产能 + Workload 负载视图；完整排期与请假暂不做（后续）。

**4.7.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| 产能基准未配 | "使用默认产能基准（待业务确认）" | 用默认值 + 提示 |
| 某人无工时数据 | "暂无工时数据" | 空态，不计入 |

**4.7.7 权限控制**　PSE 看自己、PM 看团队、PS Leader 看本域；产能基准配置限 PS Leader/Admin。

### 4.8 项目 burn 跟踪

**4.8.1 功能说明**　按 FR-RES-05：以计划 vs 实际人天呈现燃尽/进度，供 M6 监控与变更控制（FR-PROJ-12）与 M10 看板消费（机制见 ldd/M7）。

**4.8.2 业务流程**　以项目估算人天为计划、项目工时汇总人天为实际 → 生成燃尽/进度曲线 → 供 M6/M10 消费；已消耗人天作为 EAC 输入（§4.4）。

**4.8.3 界面设计**　项目 burn 图（计划线 vs 实际累计人天、燃尽曲线）；进度对比与偏差标记。呈现整合在 M10 看板与 M6 项目监控。

**4.8.4 字段定义**

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| 计划人天 | 数值 | 系统 | =项目/任务估算 est_mandays | M6 | 只读 | 计划基线 |
| 实际人天 | 数值 | 系统 | =Σ 项目工时/换算 | 派生 | 不可手改 | actual_mandays |
| burn/燃尽 | 结构 | 系统 | 计划 vs 实际 | 派生 | 只读 | 供 M6/M10 |

**4.8.5 业务规则**
- burn 数据可被 M6 变更控制与 M10 看板消费（对接可用性可验证，FR-RES-05 验收）。
- 实际人天口径与 §4.4 一致、单一事实源（NFR-07）。

**4.8.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| 无估算人天 | "项目缺计划人天，燃尽仅显示实际" | 降级为实际累计 |
| 下游对接不可用 | "burn 数据暂不可用" | 降级占位 |

**4.8.7 权限控制**　按 §2 项目/域范围可见；实际人天只读。

### 4.9 技能画像与按技能派单

**4.9.1 功能说明**　按 FR-RES-06：PSE 技能/胜任力画像**在 CSP 内维护（自评 + PS Leader 确认）**；派单按 Service Package 所需技能匹配。

**4.9.2 业务流程**　PSE 自评技能 → PS Leader 确认 → 形成技能画像 → 派单时按 Service Package 所需技能匹配候选人（结合 §4.7 Workload 负载）。

**4.9.3 界面设计**　技能画像页（技能项/等级/自评/确认态）；派单面板（所需技能 vs 候选人匹配度 + 当前负载）。

**4.9.4 字段定义**

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| 技能项/等级 | 枚举/数值 | 是 | 技能字典（可配） | 输入 | PSE 自评 | — |
| 确认态 | 枚举 | 系统 | 待确认/已确认 | PS Leader | Leader 可改 | 自评+Leader 确认 |
| 所需技能 | 引用[多] | 派单时 | 来自 Service Package | M6 | 只读 | 匹配依据 |
| 匹配度 | 数值 | 系统 | 技能∩负载派生 | 派生 | 只读 | 辅助派单 |

**4.9.5 业务规则**
- 技能画像 CSP 内维护、自评 + PS Leader 确认（FR-RES-06 已敲定）。
- 派单按 Service Package 所需技能匹配，结合负载（§4.7）。
- 技能字典/等级集合可配（细粒度字段进详设）。

**4.9.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| 自评未经确认即用于派单 | "该技能待 PS Leader 确认" | 标注未确认，仍可参考 |
| 无匹配候选人 | "暂无匹配技能的可用人力" | 空态 + 提示扩池/预测（§4.10） |

**4.9.7 权限控制**　PSE 维护自评；PS Leader 确认与派单；Admin 维护技能字典。

### 4.10 需求与排期预测

**4.10.1 功能说明**　按 FR-RES-07：人力供需预测，**需求来源 = Sales 商机/pipeline + M6 立项 backlog**，支撑提前配置。

**4.10.2 业务流程**　汇集需求（Sales pipeline + M6 backlog）→ 对比现有产能/Workload（§4.7）→ 输出供需缺口与排期建议 → 支撑提前配置人力。

**4.10.3 界面设计**　供需预测视图（未来周期需求 vs 产能）；缺口高亮与提前配置建议。呈现可整合 M10。

**4.10.4 字段定义**

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| 需求来源 | 枚举 | 系统 | Sales pipeline / M6 backlog | 集成 | 只读 | pipeline 来源待对齐（见 §7） |
| 预测需求（人天） | 数值 | 系统 | 派生 | 派生 | 只读 | 未来周期 |
| 供需缺口 | 数值 | 系统 | =需求−产能 | 派生 | 只读 | 缺口高亮 |

**4.10.5 业务规则**
- 需求来源 = Sales 商机/pipeline + M6 立项 backlog（FR-RES-07 已敲定）。
- 产能口径复用 §4.7；本期做预测视图，不做完整排期。

**4.10.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| pipeline 数据源不可用 | "商机数据暂不可用，仅按 backlog 预测" | 降级为 backlog-only |
| 无需求数据 | "暂无预测需求" | 空态 |

**4.10.7 权限控制**　PS Leader/Admin 查看与使用预测；PSE/PM 按范围只读。

## 5. 接口与集成

| 接口 | 方向 | 触发/频率 | 字段映射 | 失败处理 |
|---|---|---|---|---|
| M1 合同/Quota | 写（回填汇总） | 每次汇总（延迟<1 天，NFR-01） | 项目工时汇总 → 项目 Man-days used | 对账兜底（NFR-07） |
| M6 项目/任务 | 读+写 | 录入/汇总 | Task/Project、est/actual_mandays、EAC 输入、burn | 归属校验失败阻断录入 |
| M9 审批与 Automations | 写（发起）+读 | 超期改/通用桶告警 | 修改 Request、异常告警动作 | 依赖 M9 待办/加急（FR-APR-03） |
| M10 报表 | 读（被消费） | 周期 | 利用率/产能/Workload/burn | 降级占位 |
| Sales 商机/pipeline | 读 | 周期 | opportunity → 预测需求 | 来源待对齐（OQ），降级 backlog-only |
| 飞书（INT-05） | 写 | 事件/周期 | 缺报/超支/审批通知与加急 | 通知失败重试 + 告警（NFR-06） |

## 6. 测试用例
> 见 [测试用例-M7.md](测试用例-M7.md)。覆盖工时录入/修改审批/类型分流/额度消耗/超支预警/内部时间/利用率/burn/派单/预测的正常/边界/异常；硬约束（0.5h 步长、消耗率=100%、内部/经营耗额度=0、超支阻断率=0、超期改 100% 走审批且审计缺失=0）100% 覆盖。

## 7. 风险与依赖

| 风险/依赖 | 影响 | 缓解 | 责任方 |
|---|---|---|---|
| Sales 商机/pipeline 数据源未定（Nexus 是否提供 opportunity） | 需求预测无法落地 | 详设对齐；先 backlog-only 降级 | PM/后端 |
| 缺报标准/分级预警阈值/产能基准数值待业务确认 | 提醒与预警触发口径待定 | 配置化先行，业务确认后填值 | PM/业务 |
| 工时子系统解耦为独立 App/Plugin（NFR-11） | 与 M6/M1 边界与同步一致性 | 接口/事件协作、口径单一可对账（NFR-07） | 架构/后端 |
| 通用桶异常判定（占比/关键词）依赖 Automations（M9） | 兜底告警落地待 M9 | 与 M9 联调 Automations 触发→动作 | PM/后端 |

## 8. 遗留 / 待详设（TBD）
- **数据源**：Sales 商机/pipeline 是否经 Nexus 提供 opportunity（需求预测依赖，待对齐）。
- **待业务确认数值**：缺报应报标准、超支分级阈值（接近/超支各级）、产能基准（默认如 5 人天/周）、换算默认（默认 1 人天=8h，可配）、Sales 消耗推送周期、通用桶异常占比/关键词。
- 技能字典/等级集合、内部时间类别集合等细粒度字段进详设；各页面线框/视觉稿（UX）。
