# 补贴发放记录 — 功能需求

## 1. 文档说明

| 项 | 说明 |
| --- | --- |
| 模块名称 | 补贴发放记录 |
| 目标 | 对补贴发放信息进行登记、查询、维护与查阅，支撑补贴发放台账管理与统计核对 |
| 关联系统 | 业务后台 |
| 修订依据 | 同目录 `补贴发放记录功能需求-草稿.md` |

本文档仅描述**功能需求与业务规则**，不涉及库表结构、接口路径、请求体字段命名及技术栈选型。

---

## 2. 术语与枚举

### 2.1 补贴类型（单选）

- **农业生产**
- **住房基建**
- **民生保障**

### 2.2 记录说明

本模块为**台账类数据**，单条记录表示一笔补贴发放事实；**不设**发布/下架等上架状态。新建成功后即可被查询、修改、删除（在权限允许前提下）。

---

## 3. 功能范围

- 补贴发放记录的新增、修改、删除、分页列表查询、详情查看
- 受补贴人身份信息、联系方式、账户及发放金额、发放日期的录入与校验
- 按姓名、补贴类型、发放日期范围的组合查询
- 面向使用方的业务错误与校验提示（见第 7 章）

---

## 4. 业务流程概览

```mermaid
flowchart LR
    A[新增记录] --> B[列表查询/筛选]
    B --> C[查看详情]
    B --> D[修改记录]
    B --> E[删除记录]
    D --> B
    E --> B
```

1. **登记**：录入补贴项目、类型、受补贴人及发放信息 → 形成一条发放记录。  
2. **查询**：按姓名、类型、发放日期范围筛选，分页浏览台账。  
3. **维护**：对已有记录进行修改（全字段可改，校验规则与新增一致）。  
4. **查阅**：查看单条记录全部字段；列表支持进入详情。  
5. **删除**：删除整条记录（无附件联动；若后续扩展凭证附件须单独约定）。

---

## 5. 详细功能需求

### 5.1 新增补贴发放记录

| 字段 | 规则 |
| --- | --- |
| 补贴项目名称 | **必填**；长度 **1～20** 个字符（字符计数规则与项目全局一致） |
| 补贴类型 | **必填**；单选，取值限定为第 **2.1** 节 |
| 受补贴人姓名 | **必填**；长度 **1～10** 个字符 |
| 身份证号 | **必填**；须通过**居民身份证**格式与校验位规则校验（18 位；末位可为数字或 `X`/`x`，校验规则与项目全局一致） |
| 联系电话 | **必填**；须通过**中国大陆手机号**格式校验（如 11 位、号段规则与项目全局一致） |
| 银行账户 | **必填**；长度与字符规则与项目全局一致（建议：仅数字，长度 **16～19** 位；若支持对公账号扩展须在评审时写明） |
| 补贴金额 | **必填**；须为**大于 0** 的数值；小数位数与项目金额规范一致（建议最多 **2** 位小数）；上限若业务需要单独约定 |
| 发放日期 | **必填**；格式 **YYYY-MM-DD**；默认**不得为未来日期**（表示已发生或当日发放；若允许预登记未来发放日须单独评审） |

**必填字段汇总：** 补贴项目名称、补贴类型、受补贴人姓名、身份证号、联系电话、银行账户、补贴金额、发放日期。

**校验：**

- 各字段校验失败时须给出**可区分**的错误提示（如身份证格式错误、手机号格式错误、金额非法等）。
- 若业务要求同一身份证号在同一补贴项目、同一发放日期下不可重复登记，应在评审时单独约定并写入本节。

---

### 5.2 查询补贴发放记录列表

- **受补贴人姓名：** 对「受补贴人姓名」进行**模糊**匹配；姓名为空时不按姓名过滤。  
- **补贴类型：** **精确**匹配筛选；未选择时不按类型过滤。  
- **发放日期范围：** 支持 **开始日期（startDate）**、**结束日期（endDate）** 区间筛选（闭区间，含起止日）；仅填开始或仅填结束时，按「≥ 开始」「≤ 结束」处理；均未填时不按日期过滤。  
  - **区间合法性：** 若同时填写开始与结束，开始日期不得晚于结束日期；否则提示错误且不执行查询。  
- **分页：** 支持分页；默认 **每页 20 条**，默认首页为第一页；单页条数上限与项目列表通用规范一致（若有）。  
- **排序：** 默认按 **发放日期倒序**（最近发放在前）；发放日期相同时按 **创建时间倒序**（若有）；次要排序键与项目列表规范一致（若有）。

**列表宜展示：** 补贴项目名称、补贴类型、受补贴人姓名、补贴金额、发放日期、联系电话（可按脱敏规则展示，如中间四位 `*`）、创建时间，以及查看 / 编辑 / 删除等操作入口。

---

### 5.3 修改补贴发放记录

- **可修改项：** 补贴项目名称、补贴类型、受补贴人姓名、身份证号、联系电话、银行账户、补贴金额、发放日期（**全部字段**均可修改）。  
- **保存约束：** 修改提交时须重新满足 **5.1** 中全部校验规则；**必填字段**不得为空。  
- **说明：** 本模块无「已锁定不可改」状态；若后续引入审批流或归档只读，须单独修订本文档。

---

### 5.4 删除补贴发放记录

- **允许删除：** 具备删除权限的用户可对单条或多条记录执行删除（是否支持批量删除与项目列表惯例一致）。  
- **删除后果：** 删除后该条记录不再出现在列表与统计中；**无**关联文件清理要求（当前需求无附件字段）。  
- **确认：** 删除前宜弹出确认提示，避免误删。

---

### 5.5 查看补贴发放记录详情

- **展示内容：** 补贴项目名称、补贴类型、受补贴人姓名、身份证号、联系电话、银行账户、补贴金额、发放日期；宜展示创建人、创建时间、最后修改人、最后修改时间（若系统有审计字段）。  
- **敏感信息展示：** 列表与详情中身份证号、手机号、银行账户是否脱敏展示，按项目安全规范与角色权限约定（如仅完整展示给特定角色）。  
- **交互：** 具备编辑权限的用户可从详情进入编辑流程（见 **5.3**）。

---

## 6. 操作权限矩阵（汇总）

本模块无发布状态约束；在**已授权**前提下：

| 操作 | 说明 |
| --- | --- |
| 查看 | 具备查询权限即可 |
| 新增 | 具备新增权限即可 |
| 修改 | 具备修改权限即可；无记录状态限制 |
| 删除 | 具备删除权限即可；删除前确认 |

菜单与按钮级权限（新增、修改、删除、导出等）按项目角色配置，具体标识在技术方案或权限配置文档中定义。

---

## 7. 错误与提示约定

- 业务与校验错误宜采用项目统一的 **`code`、`msg`、`data`** 结构呈现，便于前端统一处理（不涉及具体协议与路径设计）。  
- 常见提示宜可区分，例如：  
  - 必填项缺失、字段超长或格式不符；  
  - 身份证号、手机号、银行账户、补贴金额、发放日期不合法；  
  - 发放日期区间 startDate 晚于 endDate；  
  - 删除确认取消与删除失败原因。

---

## 8. 非功能需求（建议）

| 类别 | 建议 |
| --- | --- |
| 权限 | 菜单与按钮级权限：查询、新增、修改、删除；敏感字段完整查看是否分角色 |
| 审计 | 新增、修改、删除记操作日志；关键字段变更可追溯 |
| 安全 | 身份证、手机号、银行账户在传输与展示层脱敏；导出 Excel 权限控制 |
| 性能 | 列表按发放日期、类型等条件查询满足后台通用体验；数据量大时考虑索引策略（实现阶段） |
| 双语 | 后台字段标签与提示与项目 i18n 规范一致（汉语 + 藏文） |

---

## 9. 修订说明（相对草稿）

| 草稿问题 | 优化处理 |
| --- | --- |
| 「修改/删除/查看补贴发放记录**宣传**」 | 更正为 **补贴发放记录** |
| 补贴项目名称仅写「不超过 20 字」 | 明确为 **1～20** 字符；受补贴人姓名为 **1～10** 字符 |
| 补贴金额、银行账户规则未写清 | 补充金额须大于 0、小数位建议；银行账户长度建议 |
| 发放日期是否可为未来 | 默认**不可为未来日期**；预登记场景须评审 |
| 查询日期区间边界与合法性 | 补充闭区间、起止合法性校验 |
| 无流程与操作说明 | 增补 **§4 流程图**、**§6 操作矩阵** |
| 第 6、7 条接口与技术栈 | 错误结构保留于 **§7**；技术栈移至技术方案文档 |
| 无列表排序、脱敏、删除确认 | 在 **§5.2、§5.5、§5.4** 补充建议 |
