# 牧场管理 — 功能需求

## 1. 文档说明

| 项 | 说明 |
| --- | --- |
| 模块名称 | 牧场管理 |
| 目标 | 对养殖主体（牧场/养殖户）基础信息进行登记、查询、维护与查阅，支撑产业数据体系中的主体台账与后续业务关联 |
| 关联系统 | 业务后台 |
| 修订依据 | 同目录 `牧场管理功能需求-草稿.md`、界面原型（`Snipaste_2026-05-19_09-27-45.jpg`） |

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

---

## 2. 术语与枚举

### 2.1 牧场性质（单选）

| 取值 | 含义概要 |
| --- | --- |
| **个体** | 以个人身份经营的养殖主体 |
| **企业** | 以企业法人身份经营的养殖主体 |

### 2.2 经营状态（单选）

| 取值 | 含义概要 |
| --- | --- |
| **正常** | 在营，可参与常规业务（默认） |
| **停业** | 暂停经营，主体档案保留 |
| **注销** | 终止经营，主体档案保留但宜在业务上视为失效 |

### 2.3 证件类型与「身份证号」字段含义

界面字段标签可统一为「身份证号」，其**业务含义随牧场性质变化**：

| 牧场性质 | 字段实际含义 | 校验要求（摘要） |
| --- | --- | --- |
| 个体 | 居民身份证号码 | 18 位居民身份证格式及校验位（末位可为 `X`/`x`），与项目全局身份证规则一致 |
| 企业 | 主体识别号（如统一社会信用代码） | 符合企业主体识别号格式（建议 18 位字母数字组合；具体规则与项目全局「企业证照号」规范一致） |

保存或提交时，系统须按当前所选**牧场性质**切换校验规则，错误提示宜区分「身份证格式错误」与「主体识别号格式错误」。

### 2.4 所属区域

- **层级：** 省、市、县（区）**三级**行政区划级联选择。  
- **要求：** 须选至**县级**（含）为止，不可仅选省或市即提交（除非产品另行约定「允许只选到市级」）。

### 2.5 记录说明

- 本模块为**主体台账**，单条记录表示一个养殖主体（牧场）。  
- 删除采用**逻辑删除**：删除后默认不在列表与常规统计中展示，数据可保留供审计或恢复策略（恢复能力若需实现须单独约定）。  
- **地图标点**功能本期**不实现**（见 **§3**、**§8**）。

---

## 3. 功能范围

**本期实现：**

- 牧场的新增、修改、逻辑删除、分页列表查询、详情查看  
- 主体信息、所属区域、负责人与联系方式、经营状态、照片的录入与校验  
- 按牧场名称关键字、牧场性质的列表筛选  
- 列表操作：查看、编辑、删除；**不含**地图标点  

**本期不实现：**

- 地图标点、经纬度采集与地图展示  
- 与畜群、存栏、防疫等下游业务的关联维护（若需关联，另出需求）  

---

## 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～10** 个字符（与界面「限 10 字」一致；字符计数与项目全局一致） |
| 牧场性质 | **必填**；单选，取值 **§2.1**（个体 / 企业） |
| 身份证号 | **必填**；含义与校验见 **§2.3**；须与当前「牧场性质」一致 |
| 所属区域 | **必填**；省、市、县三级级联，须选至县级 |
| 详细地址 | **选填**；若有内容，长度不超过 **50** 个字符 |
| 负责人 | **选填**；若有内容，长度不超过 **10** 个字符 |
| 联系方式 | **必填**；须为**中国大陆手机号**格式（如 11 位、号段规则与项目全局一致） |
| 经营状态 | **必填**；单选，取值 **§2.2**；新建时默认 **正常** |
| 照片 | **选填**；**单张**图片；允许后缀 `jpg`、`jpeg`、`png`（可扩展 `webp` 须评审）；单文件 ≤ **10 MB** |

**必填字段汇总：** 牧场名称、牧场性质、身份证号（按性质校验）、所属区域（至县级）、联系方式、经营状态。

**联动与校验：**

- 切换「牧场性质」时，宜清空或重新校验「身份证号」输入，避免个体证件误用于企业。  
- 各字段校验失败时须给出**可区分**的错误提示。  
- 若业务要求「牧场名称」在管辖范围内唯一，须在评审时单独约定并写入本节。

---

### 5.2 查询牧场列表

- **关键字：** 对「牧场名称」进行**模糊**匹配；关键字为空时不按名称过滤。  
- **牧场性质：** **精确**匹配筛选；未选择时不按性质过滤。  
- **经营状态：** 本期草稿未要求列表筛选项；若界面提供「经营状态」筛选，则为精确匹配，规则与 **§2.2** 一致（实现前与产品确认）。  
- **逻辑删除：** 默认**不展示**已逻辑删除记录；是否提供「含已删除」查看能力须单独约定。  
- **分页：** 默认 **每页 20 条**，首页为第一页；单页条数上限与项目列表通用规范一致。  
- **排序：** 默认按 **创建时间倒序**（最新登记在前）；相同时间下次要排序键与项目列表规范一致（若有）。  
- **重置：** 支持一键清空查询条件并恢复默认列表（与界面「重置」一致）。

**列表宜展示：** 牧场名称、牧场性质、身份证号（可按脱敏规则展示）、所在区域（省市区拼接）、详细地址、负责人、联系方式（可脱敏）、经营状态、操作列（查看 / 编辑 / 删除）；**地图标点**入口本期不展示或置灰并提示「暂未开放」。

---

### 5.3 修改牧场

- **可修改项：** 牧场名称、牧场性质、身份证号、所属区域、详细地址、负责人、联系方式、经营状态、照片（**全部业务字段**均可修改）。  
- **保存约束：** 须重新满足 **§5.1** 全部校验；必填项不得为空。  
- **性质变更：** 若修改「牧场性质」，须按新性质重新校验「身份证号」；不允许保留与性质不匹配的证件号。  
- **照片替换：** 上传新照片并保存成功后，旧照片文件宜从存储中删除，避免残留（与项目附件管理惯例一致）。  
- **经营状态变更：** 允许在 **正常 / 停业 / 注销** 之间变更；是否限制「注销后不可改回正常」须在评审时约定（**默认：允许改回**，便于纠错）。

---

### 5.4 删除牧场（逻辑删除）

- **允许删除：** 具备删除权限的用户可对单条或多条记录执行删除（是否支持批量删除与项目列表惯例一致）。  
- **删除方式：** **逻辑删除**，非物理抹库；删除后该主体在默认列表与常规统计中不可见。  
- **删除后果：**  
  - 已逻辑删除记录**不宜**被下游业务当作有效主体引用（若存在关联，须在关联模块约定校验）。  
  - 照片文件是否立即删除或保留至归档策略，实现阶段与运维约定；需求层要求删除操作**可审计**（谁、何时删除）。  
- **确认：** 删除前宜弹出确认提示，避免误删。  
- **恢复：** 是否提供「恢复已删除」管理功能，本期不强制；若需要须单独需求。

---

### 5.5 查看牧场详情

- **展示内容：** 牧场名称、牧场性质、身份证号、所属区域（省 / 市 / 县）、详细地址、负责人、联系方式、经营状态、照片（可预览）；宜展示创建人、创建时间、最后修改人、最后修改时间（若系统有审计字段）。  
- **敏感信息：** 身份证号、手机号在列表/详情是否脱敏，按项目安全规范与角色权限约定。  
- **交互：** 具备编辑权限的用户可从详情进入编辑（见 **§5.3**）；只读账号仅可查看。

---

### 5.6 地图标点（本期不实现）

- 列表操作列原型含「地图标点」；**本期不实现**点位采集、地图展示与坐标存储。  
- 若后续实现，须单独修订本文档，约定：坐标字段、与地址关系、权限及是否在「注销」主体上禁止标点等。

---

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

在**已授权**前提下：

| 操作 | 说明 |
| --- | --- |
| 查看 | 具备查询权限即可 |
| 新增 | 具备新增权限即可 |
| 修改 | 具备修改权限即可 |
| 删除 | 具备删除权限即可；逻辑删除前确认 |
| 地图标点 | 本期无 |

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

---

## 7. 错误与提示约定

- 业务与校验错误宜采用项目统一的 **`code`、`msg`、`data`** 结构呈现，便于前端统一处理。  
- 常见提示宜可区分，例如：  
  - 必填项缺失、字段超长或格式不符；  
  - 个体身份证与企业主体识别号校验失败；  
  - 所属区域未选至县级；  
  - 照片格式或大小不符；  
  - 删除确认取消与删除失败原因。  

---

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

| 类别 | 建议 |
| --- | --- |
| 权限 | 菜单与按钮：查询、新增、修改、删除；敏感字段完整查看是否分角色 |
| 审计 | 新增、修改、逻辑删除记操作日志 |
| 安全 | 上传照片类型与大小校验；预览与下载鉴权 |
| 性能 | 列表按名称、性质筛选满足后台通用体验 |
| 数据质量 | 行政区划数据与国家标准或项目区划库一致，避免「市辖区」等异常选项 |
| 双语 | 字段标签与提示符合项目 i18n 规范（汉语 + 藏文） |
| 扩展 | 地图标点、主体与产业业务关联、名称唯一性、已删除恢复 |

---

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

| 草稿问题 | 优化处理 |
| --- | --- |
| 条目编号跳跃（1～5 后直接 10～12） | 重整为 **§5** 分节与连续叙述 |
| 混入技术栈、接口响应格式 | 技术栈移除；错误结构保留于 **§7**（不涉及接口设计） |
| 「身份证号」未区分个体/企业 | 新增 **§2.3** 联动校验说明 |
| 所属区域、详细地址、负责人必填性不清 | 区域必填至县；地址、负责人选填；与界面必填项对齐并注明差异 |
| 逻辑删除后果未写清 | **§2.5、§5.2、§5.4** 补充默认不可见、关联与审计建议 |
| 地图标点写在需求条目中 | 明确 **§3、§5.6** 本期不实现 |
| 列表缺重置、排序、展示列 | **§5.2** 补充 |
| 经营状态仅枚举未说明默认 | **§2.2** 默认「正常」及变更策略 |
| 界面称「养殖户」、文档称「牧场」 | **§1** 统一为养殖主体（牧场），允许界面文案沿用「养殖户」 |

---

## 10. 功能需求追溯（自查）

| 能力 | 对应章节 |
| --- | --- |
| 新增与字段校验 | §5.1、§2.3 |
| 列表查询与筛选 | §5.2 |
| 修改与照片替换 | §5.3 |
| 逻辑删除 | §5.4 |
| 详情查看 | §5.5 |
| 地图标点（不做） | §3、§5.6 |
| 权限与错误提示 | §6、§7 |
