# 草场使用记录 — 功能需求 ## 1. 文档说明 | 项 | 说明 | | --- | --- | | 模块名称 | 草场使用记录 | | 目标 | 登记、查询、维护草场被养殖主体实际占用的时段、面积与放牧信息,形成可追溯的利用台账,支撑监管统计与草场承载分析 | | 关联系统 | 业务后台;依赖「草场管理」「牧场管理(养殖主体)」主数据 | | 修订依据 | 同目录 `草场使用记录功能需求-草稿.md`、界面原型(`Snipaste_2026-05-19_11-19-52.jpg`) | 本文档仅描述**功能需求与业务规则**,不涉及库表结构、接口路径、请求体字段命名、技术栈选型及实现方案。 --- ## 2. 术语与枚举 ### 2.1 关联主数据 | 概念 | 说明 | | --- | --- | | **草场** | 来源于「草场管理」模块中**未删除**的草场台账;本模块通过下拉选择关联,展示「草场名称」 | | **养殖主体** | 来源于「牧场管理」模块中**未删除**的养殖主体(牧场/养殖户)台账;本模块通过下拉选择关联,展示「养殖主体名称」 | 选择草场或养殖主体时,下拉须支持**关键字模糊检索**(与界面「支持模糊搜索输入」一致),仅能选择主数据中存在的有效记录,**不允许**手工输入名称替代选择(除非产品另行约定「临时主体」能力)。 ### 2.2 放牧方式(单选) | 取值 | 含义概要 | | --- | --- | | **轮牧** | 按小区或时段轮换放牧 | | **自由放牧** | 在约定范围内自由采食,无固定轮牧计划 | | **季节性放牧** | 仅在特定季节或窗口内放牧 | ### 2.3 记录说明 - 单条记录表示:**某一养殖主体在某一草场上的一次(段)使用行为**,以开始使用日期、结束使用日期界定时段。 - 同一块草场、同一主体在时间上可存在多条记录(例如不同季节分次使用);是否允许时段**重叠**须在评审时约定(**默认:允许重叠登记,由业务人员自行避免重复统计**;若需系统拦截重叠,单独补充规则)。 - 删除采用**逻辑删除**(与项目其他产业台账一致):删除后默认不在列表与常规统计中展示,数据可保留供审计(恢复能力若需实现须单独约定)。 - 草稿列表检索写「牧场名称」为笔误,统一为**草场名称**(见 **§5.2**)。 ### 2.4 字段含义(摘要) | 字段 | 业务含义 | | --- | --- | | 使用面积 | 本次使用所占草场面积,单位为**亩**;不得超过所选草场的登记总面积 | | 开始使用日期 / 结束使用日期 | 本次使用的起止自然日,格式 **YYYY-MM-DD** | | 实际使用天数 | 由开始使用日期与结束使用日期**系统自动计算**的天数(见 **§2.5**);界面为只读展示,用户不可手工改写以免与日期不一致 | | 放牧数量 | 本次使用涉及的可放牧牲畜数量,单位为**头** | | 预约日期(列表筛选项) | 界面文案;业务含义为记录的**创建日期**(登记入库日期),用于按登记时间区间筛选列表 | --- ### 2.5 实际使用天数计算规则 在满足「开始使用日期 ≤ 结束使用日期」的前提下: - **计算方式(默认):** 按**自然日、含起止两日**计天。 - 公式:`实际使用天数 = 结束使用日期 − 开始使用日期 + 1`(单位:天)。 - 示例:开始 `2025-06-01`、结束 `2025-06-01` → **1** 天;开始 `2025-06-01`、结束 `2025-06-03` → **3** 天。 - 用户在新增/修改表单中变更开始使用日期或结束使用日期时,系统应**即时重算**并刷新「实际使用天数」展示;提交保存时以系统计算值为准写入台账。 - 若县级规范要求「不含结束日」或「仅计工作日」,须在评审通过后修订本节并同步界面提示。 --- ## 3. 功能范围 **本期实现:** - 使用记录的新增、修改、逻辑删除、分页列表查询、详情查看 - 关联草场、关联养殖主体的选择与校验 - 使用面积、使用时段、放牧数量、放牧方式的录入与校验 - 实际使用天数自动计算 - 按草场名称关键字、创建日期区间的列表筛选 - 列表操作:查看、编辑、删除 **本期不实现:** - 草场/养殖主体主数据的新增与维护(分别在「草场管理」「牧场管理」完成) - 与畜群个体、防疫、补贴等下游业务的自动联动 - 地图轨迹、GPS 围栏、现场拍照取证 - 审批流、预约占位冲突自动仲裁(仅登记既成事实) --- ## 4. 业务流程概览 ```mermaid flowchart LR A[选择草场与主体] --> B[填写使用与放牧信息] B --> C[系统计算使用天数] C --> D[保存记录] D --> E[列表查询/筛选] E --> F[查看详情] E --> G[修改记录] E --> H[逻辑删除] G --> E H --> E ``` 1. **登记**:从主数据选择草场、养殖主体 → 填写使用面积、起止日期、放牧数量与方式 → 系统计算实际使用天数 → 保存。 2. **查询**:按草场名称关键字、创建日期区间筛选,分页浏览。 3. **维护**:修改时重新选择或调整各字段;日期变更后重新计算使用天数;须重新满足 **§5.1** 校验。 4. **查阅**:查看单条记录全部业务字段及登记人、登记时间等审计信息(若系统提供)。 5. **删除**:逻辑删除;删除前宜二次确认。 --- ## 5. 详细功能需求 ### 5.1 新增草场使用记录 | 字段 | 规则 | | --- | --- | | 草场名称 | **必填**;自「草场管理」有效台账中**单选**;下拉支持名称模糊搜索;选定后宜展示或引用该草场登记总面积供填写「使用面积」时参考 | | 使用面积 | **必填**;**正数**;单位为**亩**;须 **> 0** 且 **≤ 所选草场登记总面积**(总面积以草场主数据为准;若主数据面积后续被调小,已存在记录是否回溯校验须单独约定) | | 养殖主体名称 | **必填**;自「牧场管理」有效台账中**单选**;下拉支持名称模糊搜索 | | 开始使用日期 | **必填**;**YYYY-MM-DD** | | 结束使用日期 | **必填**;**YYYY-MM-DD**;**不得早于**开始使用日期 | | 实际使用天数 | **系统自动计算**(**§2.5**);保存时写入;界面只读,不要求用户填写 | | 放牧数量 | **必填**;**正整数**(≥ 1);单位为**头** | | 放牧方式 | **必填**;**单选**,取值见 **§2.2**(轮牧 / 自由放牧 / 季节性放牧) | **必填字段汇总:** 草场、养殖主体、使用面积、开始使用日期、结束使用日期、放牧数量、放牧方式;实际使用天数由系统生成。 **联动与校验:** - 未选择草场时不允许提交;未选择养殖主体时不允许提交。 - 变更开始使用日期或结束使用日期时,实时重算实际使用天数。 - 使用面积超过所选草场总面积时,须明确提示(如「使用面积不能大于草场总面积 xx 亩」)并阻止提交。 - 所选草场或主体若在保存瞬间已被主数据逻辑删除,须提示「主数据不存在或已失效」并阻止提交。 - 各字段校验失败时须给出**可区分**的错误提示。 --- ### 5.2 查询草场使用记录列表 - **关键字:** 对关联的「**草场名称**」进行**模糊**匹配;关键字为空时不按名称过滤。 - 说明:草稿写「牧场名称」为笔误;本模块不以养殖主体名称作为该关键字(主体名称筛选若需支持,评审后单独增加)。 - **预约日期(创建日期):** 按记录**创建日期**闭区间筛选;提供开始日、结束日(与界面「预约日期」起止一致);仅填一端时,按项目日期筛选惯例处理(如「≥ 开始日」「≤ 结束日」);开始日晚于结束日时,查询前须提示错误或自动纠正。 - **逻辑删除:** 默认**不展示**已逻辑删除记录。 - **分页:** 默认 **每页 20 条**;单页条数上限与项目列表通用规范一致。 - **排序:** 默认按 **创建时间倒序**(最新登记在前);相同时间下次要排序键与项目列表规范一致(若有)。 - **重置:** 支持一键清空查询条件并恢复默认列表。 **列表宜展示:** 草场名称、使用面积(亩)、养殖主体名称、开始使用日期、结束使用日期、实际使用天数(天)、放牧数量(头)、放牧方式、操作列(查看 / 编辑 / 删除)。 --- ### 5.3 修改草场使用记录 - **可修改项:** 草场、养殖主体、使用面积、开始使用日期、结束使用日期、放牧数量、放牧方式(**全部业务字段**均可修改)。 - **不可由用户直接改:** 实际使用天数(随日期自动重算)。 - **保存约束:** 须重新满足 **§5.1**;更换草场后须重新校验使用面积不超过新草场总面积。 - **主数据变更:** 若修改时更换草场或养殖主体,须重新从下拉选择有效主数据项。 --- ### 5.4 删除草场使用记录(逻辑删除) - **允许删除:** 具备删除权限的用户可对单条或多条记录执行删除(是否支持批量删除与项目列表惯例一致)。 - **删除方式:** **逻辑删除**;删除后记录在默认列表与常规统计中不可见。 - **确认:** 删除前宜弹出确认提示,避免误删。 - **恢复:** 是否提供「恢复已删除」管理功能,本期不强制。 --- ### 5.5 查看草场使用记录详情 - **展示内容:** 草场名称、使用面积、养殖主体名称、开始使用日期、结束使用日期、实际使用天数、放牧数量、放牧方式;宜展示创建人、创建时间、最后修改人、最后修改时间。 - **展示格式:** 日期 **YYYY-MM-DD**;数值带单位(亩、天、头)。 - **交互:** 具备编辑权限的用户可从详情进入编辑(见 **§5.3**);只读账号仅可查看。 --- ## 6. 操作权限矩阵(汇总) 在**已授权**前提下: | 操作 | 说明 | | --- | --- | | 查看 | 具备查询权限即可 | | 新增 | 具备新增权限即可 | | 修改 | 具备修改权限即可 | | 删除 | 具备删除权限即可;逻辑删除前确认 | 菜单与按钮级权限(查询、新增、修改、删除、导出等)按项目角色配置,具体标识在权限配置文档中定义(本文档不展开)。 --- ## 7. 错误与提示约定 - 业务与校验错误宜采用项目统一的提示方式呈现,便于用户理解与前端统一处理;**不约定**具体 HTTP 状态码或接口字段名。 - 常见提示宜可区分,例如: - 草场或养殖主体未选择、主数据已失效; - 使用面积为空、非正数或超过草场总面积; - 开始使用日期晚于结束使用日期; - 放牧数量非正整数; - 放牧方式未选择; - 创建日期区间非法; - 删除确认取消与删除失败原因。 --- ## 8. 非功能需求(建议) | 类别 | 建议 | | --- | --- | | 权限 | 菜单与按钮:查询、新增、修改、删除;是否限制跨乡镇数据 | | 审计 | 新增、修改、逻辑删除记操作日志 | | 性能 | 下拉远程搜索草场/主体名称响应及时;列表按名称与日期筛选满足通用体验 | | 数据质量 | 主数据删除后,历史使用记录仍可查详情但不宜再被复制为新记录模板 | | 双语 | 字段标签与提示符合项目 i18n 规范(汉语 + 藏文) | | 扩展 | 时段重叠校验、按养殖主体/放牧方式统计、导出、与承载量预警联动 | --- ## 9. 修订说明(相对草稿) | 草稿问题 | 优化处理 | | --- | --- | | 条目编号跳跃(1~5 后直接 10~12) | 重整为 **§5** 分节与连续叙述 | | 混入技术栈、接口响应格式 | 技术栈移除;提示约定保留于 **§7** | | 列表关键字写「牧场名称」 | 统一为**草场名称**(**§5.2**) | | 「预约日期」含义不清 | 明确为记录**创建日期**筛选(**§2.4、§5.2**) | | 实际使用天数由用户填 | 改为**系统按 §2.5 自动计算**、界面只读 | | 使用面积无上限 | 增加 **≤ 所选草场登记总面积**(**§5.1**) | | 删除方式未说明 | 明确**逻辑删除**(**§2.3、§5.4**) | | 草场/主体来源未写 | 新增 **§2.1** 主数据关联与下拉规则 | | 列表缺排序、重置、展示列 | **§5.2** 补充 | --- ## 10. 功能需求追溯(自查) | 能力 | 对应章节 | | --- | --- | | 新增与主数据选择、字段校验 | §5.1、§2.1、§2.5 | | 使用天数自动计算 | §2.5、§5.1、§5.3 | | 列表查询与筛选 | §5.2 | | 修改 | §5.3 | | 逻辑删除 | §5.4 | | 详情查看 | §5.5 | | 权限与错误提示 | §6、§7 |