# 临时额度管理需求卡

## 目录

- [REQ-TEMPLIM-001 菜单入口](#req-templim-001-菜单入口)
- [REQ-TEMPLIM-002 列表与分页](#req-templim-002-列表与分页)
- [REQ-TEMPLIM-003 条件查询与重置](#req-templim-003-条件查询与重置)
- [REQ-TEMPLIM-004 列表状态与操作](#req-templim-004-列表状态与操作)
- [REQ-TEMPLIM-005 新增临时额度申请](#req-templim-005-新增临时额度申请)
- [REQ-TEMPLIM-006 项目选择与自动回填](#req-templim-006-项目选择与自动回填)
- [REQ-TEMPLIM-007 额度字段规则](#req-templim-007-额度字段规则)
- [REQ-TEMPLIM-008 有效期与备注规则](#req-templim-008-有效期与备注规则)
- [REQ-TEMPLIM-009 附件上传](#req-templim-009-附件上传)
- [REQ-TEMPLIM-010 保存草稿](#req-templim-010-保存草稿)
- [REQ-TEMPLIM-011 编辑临时额度申请](#req-templim-011-编辑临时额度申请)
- [REQ-TEMPLIM-012 提交审批](#req-templim-012-提交审批)
- [REQ-TEMPLIM-013 撤回审批](#req-templim-013-撤回审批)
- [REQ-TEMPLIM-014 审批通过](#req-templim-014-审批通过)
- [REQ-TEMPLIM-015 审批驳回](#req-templim-015-审批驳回)
- [REQ-TEMPLIM-016 临时额度生效与失效](#req-templim-016-临时额度生效与失效)
- [REQ-TEMPLIM-017 查看与流程](#req-templim-017-查看与流程)
- [REQ-TEMPLIM-018 删除草稿单据](#req-templim-018-删除草稿单据)
- [REQ-TEMPLIM-019 导出列表](#req-templim-019-导出列表)
- [REQ-TEMPLIM-020 权限与审计](#req-templim-020-权限与审计)
- [通用规则](#通用规则)

---

### REQ-TEMPLIM-001 菜单入口

- 功能点：
  - 临时额度管理模块归属于“项目管理”主菜单。
  - 在“项目管理”菜单下提供“临时额度管理”入口。
  - 用户进入临时额度管理页面后，可进行查询、新增、编辑、提交、查看、流程查看、撤回、删除、导出等操作。

- 异常与边界：
  - 无菜单权限时不展示“临时额度管理”入口。
  - 有菜单权限但无按钮权限时，仅展示允许访问的页面和操作。
  - 菜单或页面加载失败时提示失败原因，不影响其他模块访问。

- 反例：
  - 不允许把临时额度管理挂到非项目管理主菜单下。
  - 不允许无权限用户通过 URL 直接进入模块。
  - 不允许菜单入口存在但页面无法访问。

---

### REQ-TEMPLIM-002 列表与分页

- 功能点：
  - 默认展示当前用户权限范围内的临时额度申请单。
  - 列表展示序号、申请单号、项目名称、申请额度、有效截至时间、申请部门、申请人、审批状态、当前节点、当前处理人、操作等字段。
  - 申请额度单位为万元，保留2位小数。
  - 有效截至时间展示到日期，格式为 yyyy-MM-dd。
  - 审批状态和操作列固定在右侧，不随横向滚动条滑动。
  - 默认按创建时间或申请时间降序展示。
  - 支持分页展示，默认10条/页，支持20/50/100条/页。

- 异常与边界：
  - 查询无数据时展示空状态。
  - 当前页数据因保存、提交、撤回、审批、删除等操作发生变化后，应刷新列表并保持分页逻辑正确。
  - 列表加载失败时保留当前查询条件和分页条件，提示用户重新查询。

- 反例：
  - 不允许审批状态或操作列被横向滚动隐藏。
  - 不允许列表展示申请人、当前处理人的用户 ID。
  - 不允许分页切换后丢失当前查询条件。

---

### REQ-TEMPLIM-003 条件查询与重置

- 功能点：
  - 支持按申请单号、项目名称、申请人、申请部门、状态等条件组合查询。
  - 申请单号和项目名称使用输入框，支持模糊查询。
  - 申请人使用下拉选择或搜索选择控件，默认全部。
  - 申请部门使用下拉选择或部门选择控件，默认全部。
  - 状态使用下拉单选控件，默认全部。
  - 点击查询后按当前条件刷新列表。
  - 点击重置后清空查询条件，恢复默认列表。

- 异常与边界：
  - 查询条件为空时点击查询，按默认规则展示全部权限范围内数据。
  - 查询结果为空时展示空状态，不清空用户已输入条件。
  - 重置后页码恢复第一页，并重新加载列表。

- 反例：
  - 不允许重置后仍保留隐藏查询条件。
  - 不允许只按单个条件查询而忽略其他已选择条件。
  - 不允许查询后改变列表字段或操作范围。

---

### REQ-TEMPLIM-004 列表状态与操作

- 功能点：
  - 审批状态包含草稿、审批中、已撤回、审批通过、审核不通过等状态。
  - 草稿状态展示编辑、提交、删除操作。
  - 审批中状态展示查看、流程操作。
  - 已撤回状态展示编辑、流程操作。
  - 审核不通过状态展示编辑、流程操作。
  - 审批通过状态展示查看、流程操作。
  - 操作按钮展示受单据状态和用户权限共同控制。

- 异常与边界：
  - 操作执行前需重新校验单据最新状态，避免列表状态过期导致误操作。
  - 状态为空或未知时限制编辑、提交、删除等高风险操作。
  - 状态变更成功后刷新列表，展示最新状态和可执行操作。

- 反例：
  - 不允许审批中单据继续编辑或删除。
  - 不允许审批通过单据再次提交审批。
  - 不允许仅根据前端状态跳过后端状态校验。

---

### REQ-TEMPLIM-005 新增临时额度申请

- 功能点：
  - 点击列表顶部“新增”按钮后打开新增申请弹窗。
  - 新增弹窗展示临时额度申请信息和附件上传区域。
  - 新增字段包含项目名称、项目编号、承办部门、项目资金使用额度、已使用项目资金额度、剩余项目资金使用额度、申请临时额度、申请有效期至、备注等。
  - 项目名称、申请临时额度、申请有效期至为必填字段，并展示“*”标识。
  - 新增弹窗底部展示保存、提交、取消按钮。
  - 申请单号由系统保存后自动生成，全局唯一，只读不可编辑。

- 异常与边界：
  - 新增弹窗打开失败时提示失败原因，不改变列表数据。
  - 必填字段为空时阻止提交审批并提示。
  - 保存或提交过程中重复点击按钮时应防止重复生成申请单。

- 反例：
  - 不允许用户手工填写申请单号。
  - 不允许未选择项目直接提交临时额度申请。
  - 不允许缺少申请临时额度或有效期后提交审批。

---

### REQ-TEMPLIM-006 项目选择与自动回填

- 功能点：
  - 项目名称使用弹窗搜索选择框，从项目管理中选择项目。
  - 可选项目范围为已审批通过且生效类型为正式的立项项目。
  - 选择项目后，系统自动带出项目编号、承办部门、项目资金使用额度、已使用项目资金额度、剩余项目资金使用额度。
  - 项目编号、承办部门、项目资金使用额度、已使用项目资金额度、剩余项目资金使用额度为只读字段，不允许手工修改。
  - 承办部门用于数据权限过滤和审批流程匹配。

- 异常与边界：
  - 项目未审批通过、生效类型非正式或已作废时，不允许选择。
  - 项目额度信息加载失败时，阻止提交并提示重新选择项目。
  - 重新选择项目后，应清空并重新回填项目相关只读字段。

- 反例：
  - 不允许手工输入项目名称代替项目管理选择。
  - 不允许选择草稿、临时生效或已作废项目。
  - 不允许修改自动回填的项目编号和额度字段。

---

### REQ-TEMPLIM-007 额度字段规则

- 功能点：
  - 项目资金使用额度为只读数字字段，单位万元，来源于项目立项原始审批总资金额度。
  - 已使用项目资金额度为只读数字字段，单位万元，来源于系统实时计算的业务单据占用额度。
  - 剩余项目资金使用额度为只读数字字段，单位万元，由项目资金使用额度减去已使用额度自动计算回填。
  - 申请临时额度为必填数字字段，单位万元，表示本次申请追加的临时资金额度。
  - 申请临时额度必须大于0，并保留2位小数。

- 异常与边界：
  - 申请临时额度为空、小于等于0或小数位超过2位时阻止提交并提示。
  - 项目资金使用额度、已使用额度、剩余额度出现负数或无法计算时，应提示数据异常并阻止提交。
  - 已使用额度需实时计算业务单据占用，不能仅取静态项目档案值。

- 反例：
  - 不允许申请临时额度填写0、负数或非数字。
  - 不允许用户手动修改剩余项目资金使用额度。
  - 不允许额度数据异常时仍提交审批。

---

### REQ-TEMPLIM-008 有效期与备注规则

- 功能点：
  - 申请有效期至为必填日期字段，用于表示临时额度失效截止日期。
  - 申请有效期至格式为 yyyy-MM-dd。
  - 申请有效期至必须晚于当前系统日期。
  - 备注使用大文本域，用于填写临时额度申请原因和业务补充说明。
  - 备注非必填，最多500字。

- 异常与边界：
  - 申请有效期至为空时阻止提交并提示。
  - 申请有效期至早于或等于当前系统日期时阻止提交并提示。
  - 备注超过500字时阻止保存或提交并提示。

- 反例：
  - 不允许选择今天或历史日期作为有效期截止日期。
  - 不允许备注超过500字后提交。
  - 不允许无有效期的临时额度审批通过。

---

### REQ-TEMPLIM-009 附件上传

- 功能点：
  - 新增和编辑弹窗支持上传附件。
  - 附件列表展示序号、文件名、附件描述、文件大小、上传人、上传时间、操作等字段。
  - 附件上传成功后自动新增附件行，并展示完整文件信息。
  - 上传后需填写附件描述。
  - 支持删除未提交或允许编辑状态下的附件。
  - 支持批量下载已上传附件。
  - 单个附件大小限制50M。

- 异常与边界：
  - 单个文件超过50M时阻止上传并提示。
  - 上传失败时保留当前附件列表，并提示失败原因。
  - 提交审批时如业务要求附件必传，应校验附件已上传且描述完整。
  - 删除附件前需二次确认，确认后同步删除附件记录和服务器文件。

- 反例：
  - 不允许上传超过50M的附件。
  - 不允许上传成功后附件列表不展示文件信息。
  - 不允许只删除前端附件行而保留有效服务器引用。

---

### REQ-TEMPLIM-010 保存草稿

- 功能点：
  - 新增或编辑弹窗底部支持点击保存。
  - 保存用于临时保存当前填写内容，单据状态标记为草稿，不触发审批流程。
  - 保存草稿无需完整填写全部必填项。
  - 保存成功后弹出成功提示，关闭弹窗后列表可重新编辑该草稿单据。

- 异常与边界：
  - 保存草稿时至少需满足可生成单据的基本数据要求。
  - 保存失败时保留用户已填写内容，方便修正后重新保存。
  - 草稿已被删除或状态已变化时，不允许继续保存。

- 反例：
  - 不允许保存草稿触发审批流程。
  - 不允许保存失败后清空用户已填写内容。
  - 不允许同一点击重复生成多条草稿。

---

### REQ-TEMPLIM-011 编辑临时额度申请

- 功能点：
  - 草稿、审核不通过状态的临时额度申请单支持编辑。
  - 点击编辑后弹窗回显该单据全部历史填写内容。
  - 编辑时可修改项目名称、申请临时额度、申请有效期至、备注和附件等可编辑字段。
  - 项目相关只读字段仍由项目选择自动带出，不允许手工修改。
  - 编辑保存后单据保持草稿或原可编辑状态，提交后进入审批中。

- 异常与边界：
  - 编辑前需校验当前单据状态仍允许编辑。
  - 编辑的数据已不存在时提示数据不存在，并刷新列表。
  - 修改项目后需重新回填额度信息，并重新校验申请临时额度。
  - 保存或提交失败时保留用户修改内容。

- 反例：
  - 不允许审批中或审批通过单据继续编辑。
  - 不允许编辑时修改申请单号。
  - 不允许编辑后绕过项目选择和额度校验。

---

### REQ-TEMPLIM-012 提交审批

- 功能点：
  - 草稿、已撤回、审核不通过状态的单据支持提交审批。
  - 提交审批前校验项目名称、申请临时额度、申请有效期至等必填字段。
  - 提交审批前校验有效期日期、额度格式和附件要求。
  - 提交成功后单据审批状态更新为审批中。
  - 提交成功后推送审批待办消息给当前审批人。

- 异常与边界：
  - 必填字段缺失、日期不合法、额度不合法或附件不满足要求时阻止提交。
  - 审批流程发起失败时保持原状态，并保留用户输入内容。
  - 重复点击提交时应防止重复发起审批。

- 反例：
  - 不允许资料不完整的申请单进入审批中。
  - 不允许提交失败后仍把状态改为审批中。
  - 不允许同一申请单重复发起多个审批流程。

---

### REQ-TEMPLIM-013 撤回审批

- 功能点：
  - 申请人可对审批中单据执行撤回。
  - 撤回后单据退回草稿状态。
  - 撤回后清空审批流程待办节点。
  - 撤回成功后刷新列表，并展示最新单据状态。

- 异常与边界：
  - 非申请人不允许撤回审批单据。
  - 单据已审批通过或已驳回时不允许撤回。
  - 撤回失败时保持原审批状态，并提示失败原因。

- 反例：
  - 不允许审批通过后继续撤回。
  - 不允许非申请人撤回他人申请单。
  - 不允许撤回后审批待办仍停留在审批人列表。

---

### REQ-TEMPLIM-014 审批通过

- 功能点：
  - 当前审批节点处理人可对审批中单据执行审批通过。
  - 审批通过后单据状态更新为审批通过。
  - 审批通过后临时额度立即生效，系统更新项目可用资金上限。
  - 审批通过后系统设置自动到期失效任务。
  - 审批通过成功后页面弹出成功提示，并刷新列表。

- 异常与边界：
  - 非当前审批节点处理人不允许审批通过。
  - 审批通过时如项目已作废或非正式生效，应阻止通过并提示。
  - 更新项目可用资金上限失败时，应保证审批状态和额度生效状态一致。
  - 自动到期任务设置失败时需提示并保留可补偿处理记录。

- 反例：
  - 不允许未审批通过的临时额度生效。
  - 不允许项目已作废时仍让临时额度生效。
  - 不允许审批状态成功但项目可用额度未同步且无补偿记录。

---

### REQ-TEMPLIM-015 审批驳回

- 功能点：
  - 当前审批节点处理人可对审批中单据执行审批驳回。
  - 驳回后单据状态更新为审核不通过。
  - 驳回后将驳回意见反馈给申请人。
  - 审核不通过单据允许编辑后重新提交审批。

- 异常与边界：
  - 非当前审批节点处理人不允许审批驳回。
  - 驳回失败时保持原审批状态，并提示失败原因。
  - 重新提交审批时需按最新内容重新校验字段和附件。

- 反例：
  - 不允许驳回时丢失驳回意见。
  - 不允许审核不通过单据直接生效。
  - 不允许非审批处理人执行驳回。

---

### REQ-TEMPLIM-016 临时额度生效与失效

- 功能点：
  - 审批通过后，申请临时额度叠加到项目可用资金上限。
  - 临时额度有效期截止日前，项目资金占用计算需包含有效临时额度。
  - 到达申请有效期至后，系统自动将该临时额度标记为失效。
  - 临时额度失效后，项目可用资金上限需扣减该笔临时额度。
  - 已失效临时额度不影响历史已产生业务单据。

- 异常与边界：
  - 到期任务执行失败时，应支持后台补偿处理，避免额度长期错误生效。
  - 多笔临时额度同时生效时，应分别按有效期计算，不得互相覆盖。
  - 失效扣减后项目已使用额度超过新可用额度时，应保留历史占用并在后续额度校验中提示超额风险。

- 反例：
  - 不允许临时额度过期后仍参与新业务额度校验。
  - 不允许多笔临时额度只保留最后一笔。
  - 不允许失效额度影响历史已完成业务数据。

---

### REQ-TEMPLIM-017 查看与流程

- 功能点：
  - 支持通过列表行操作查看临时额度申请详情。
  - 查看详情时展示申请基础信息、项目额度信息、附件和审批信息。
  - 查看状态下所有字段只读。
  - 支持点击流程查看审批流程节点、处理人、处理时间和审批意见。

- 异常与边界：
  - 数据已删除或无权限查看时提示无法查看。
  - 附件加载失败时不影响基础信息展示。
  - 流程信息加载失败时提示失败原因，不改变单据状态。

- 反例：
  - 不允许在查看状态下保存修改。
  - 不允许查看流程时展示其他申请单的审批记录。
  - 不允许流程节点信息缺失却展示审批已完整流转。

---

### REQ-TEMPLIM-018 删除草稿单据

- 功能点：
  - 草稿状态的临时额度申请单支持删除。
  - 点击删除后弹出二次确认弹窗。
  - 删除前校验该临时额度未审批通过、未生效且无业务单据占用。
  - 删除成功后刷新列表。

- 异常与边界：
  - 非草稿状态不允许删除。
  - 存在业务占用临时额度时不允许删除，并提示无法删除。
  - 删除时状态已变化为审批中或审批通过时，应阻止删除并刷新列表。

- 反例：
  - 不允许删除审批中或审批通过单据。
  - 不允许存在业务占用时删除临时额度申请。
  - 不允许跳过二次确认直接删除。

---

### REQ-TEMPLIM-019 导出列表

- 功能点：
  - 列表顶部支持导出临时额度申请列表。
  - 点击导出后，导出当前筛选条件下所有申请单基础信息和附件清单至 Excel 文件。
  - 导出字段与列表和详情展示字段保持一致。
  - 数据量较大时页面展示加载或导出中提示。

- 异常与边界：
  - 当前查询条件下无数据时允许导出空文件或提示无可导出数据。
  - 导出失败时提示失败原因，不改变当前列表状态。
  - 无导出权限时不展示导出按钮。

- 反例：
  - 不允许无权限用户导出临时额度数据。
  - 不允许导出时忽略当前查询条件。
  - 不允许导出文件展示用户 ID 代替姓名。

---

### REQ-TEMPLIM-020 权限与审计

- 功能点：
  - 根据用户权限控制查询、新增、编辑、提交、撤回、审批、查看、流程、删除、导出、附件上传和附件下载等操作入口。
  - 列表、详情、导出、审批流中用户可见字段优先展示姓名，不直接展示用户 ID。
  - 新增、编辑、保存、提交、撤回、审批通过、审批驳回、删除、额度生效、额度失效、导出等关键操作需记录操作日志。
  - 审计信息应包含操作人、操作时间、操作类型、申请单号、项目编号和关键额度变化。

- 异常与边界：
  - 无按钮权限时不展示对应按钮，通过 URL 或接口绕过时也应拒绝。
  - 操作日志记录失败时不得影响用户已成功的业务操作，但需保留可排查信息。
  - 数据权限限制下，用户只能查看和操作授权范围内项目相关临时额度申请。

- 反例：
  - 不允许无权限用户审批、删除或导出临时额度申请。
  - 不允许列表展示申请人、审批人等用户 ID。
  - 不允许额度生效或失效没有审计记录。

---

## 通用规则

- 临时额度管理用于对正式项目申请临时增加项目资金可用额度，归属于“项目管理”主菜单。
- 项目名称必须从项目管理中选择，且仅允许选择审批通过、生效类型为正式、未作废的项目。
- 选择项目后自动带出项目编号、承办部门、项目资金使用额度、已使用项目资金额度、剩余项目资金使用额度，自动带出字段只读不可编辑。
- 申请单号由系统自动生成，全局唯一，只读不可编辑。
- 申请临时额度必须大于0，单位万元，保留2位小数。
- 申请有效期至必须晚于当前系统日期，格式为 yyyy-MM-dd。
- 备注最多500字。
- 单个附件大小限制50M，上传后需填写附件描述。
- 草稿状态不触发审批流程，审批通过前临时额度不得生效。
- 审批通过后临时额度立即生效，系统更新项目可用资金上限，并设置自动到期失效任务。
- 临时额度到期失效后，应从项目可用资金上限中扣减，不影响历史已产生业务单据。
- 草稿状态支持编辑、提交、删除；审批中仅支持查看和流程；审核不通过和已撤回支持编辑后重新提交；审批通过仅支持查看和流程。
- 删除前需校验单据未生效且无业务单据占用临时额度。
- 列表、详情、导出、审批等用户可见场景优先展示姓名字段，不直接展示用户 ID。
- 新增、编辑、保存、提交、撤回、审批、删除、导出、额度生效、额度失效后均需刷新相关列表或详情状态。
