# 综合牧业知识库 — 功能需求 ## 1. 文档说明 | 项 | 说明 | | --- | --- | | 模块名称 | 综合牧业知识库(牧业养殖科技服务) | | 目标 | 在业务后台维护**牧业综合知识条目**(标题、主题、简介、正文附件),支持检索与**入库/移出**外部知识库,为智能问答、检索等下游能力提供知识素材 | | 关联系统 | 业务后台;**外部知识库服务**(同步、移出、删除通知) | | 修订依据 | 同目录 `综合牧业知识库管理功能需求-草稿.md`、界面原型(列表、新增表单) | 本文档**仅描述功能需求与业务规则**,不涉及数据库表结构、接口路径、请求体字段命名、HTTP 报文、权限标识命名及技术栈选型。 > **与「养殖标准」等模块的差异:** 本模块**不涉及**「发布 / 下架」对外展示生命周期;仅以**入库状态**(是否已写入外部知识库)控制可编辑性与操作按钮。 --- ## 2. 术语与业务对象 ### 2.1 知识条目(一条台账记录) - 表示一条可独立检索、可同步至外部知识库的**牧业领域知识**。 - 由授权用户在后台**手工维护**;批量导入、自动采集可在实施阶段扩展,**本期默认手工登记为主**。 - 每条记录包含:展示用元数据(标题、主题、简介)及**知识内容**(非结构化文档附件,如 PDF、Office、Markdown 等)。 ### 2.2 知识主题(固定五类,单选) | 主题名称 | 说明 | | --- | --- | | **饲养管理** | 饲喂、营养、日常管理等 | | **疫病管理** | 防疫、诊疗、生物安全等 | | **设备选型** | 养殖与牧业相关设备 | | **牧场设计** | 场区规划、设施布局等 | | **政策解读** | 产业政策、法规要点等 | 用户**不可**自定义第六类或修改上述主题含义(扩展须单独立项)。列表筛选与表单均为**单选**。 ### 2.3 入库状态(与外部知识库的关系) 用**入库状态**表示该条业务记录是否已在外部知识库中建立有效对应条目(界面可与「知识库同步状态」同义展示)。 | 状态 | 含义 | 外部知识库 | 后台维护(摘要) | | --- | --- | --- | --- | | **未入库** | 仅保存在业务后台 | 无对应有效条目(或已移出) | 可查看、**编辑**、**删除**、**同步知识库** | | **已入库** | 已写入外部知识库 | 存在对应条目 | **仅可查看**、**移出知识库**;**不可编辑、不可删除** | **允许的状态迁移:** ```mermaid stateDiagram-v2 [*] --> 未入库: 新增保存 未入库 --> 已入库: 同步知识库 已入库 --> 未入库: 移出知识库 未入库 --> [*]: 删除 ``` > **已入库**期间:任何修改、删除操作均应拒绝,并提示须先「移出知识库」后再维护。 ### 2.4 删除与可见性 - 采用**逻辑删除**:删除后默认不在列表展示,数据保留供审计;**本期无**回收站。 - **已入库**须先**移出知识库**变为 **未入库** 后,方可删除。 - 删除 **未入库** 记录时,若外部知识库侧本无对应条目,则仅清理本地及附件;若对接要求仍发删除通知,以实现为准。 - **已入库** 删除(拒绝):不得绕过移出直接删本地。 ### 2.5 列表筛选 | 筛选项 | 规则 | | --- | --- | | 关键词 | 选填;对**知识标题**、**知识简介** **模糊**匹配(二者为 **或** 关系,命中其一即可) | | 知识主题 | 选填;**精确**匹配;空则不过滤 | | 入库状态 | 选填;**未入库 / 已入库** 精确筛选;空则不过滤 | --- ## 3. 功能范围 ### 3.1 本期实现 | 能力 | 说明 | | --- | --- | | 分页列表 | 关键词、主题、入库状态筛选;**§5.1** | | 新增 | 保存为 **未入库**;**§5.2** | | 修改 | 仅 **未入库**;**§5.3** | | 查看 | 全状态只读;**§5.4** | | 逻辑删除 | 仅 **未入库**;**§5.5** | | 同步知识库 | 将条目**首次**写入外部知识库;**§5.6** | | 移出知识库 | 从外部知识库移除对应条目;**§5.7** | | 知识内容附件 | 单文件上传;**§5.2** | ### 3.2 本期不实现 - **发布 / 下架**(本模块无对外发布态,与养殖标准、科技资源等模块不同) - 知识内容在线预览(PDF 内嵌预览等,可后续迭代) - 批量导入导出、知识主题自定义 - 版本历史、多人协同编辑、知识条目审批流 --- ## 4. 业务流程 ### 4.1 模块总览 ```mermaid flowchart TD A[进入模块] --> B[列表查询] B --> C{操作} C --> D[新增 → 未入库] C --> E[查看] C --> F[编辑] C --> G[删除] C --> H[同步知识库] C --> I[移出知识库] F --> J{未入库?} J -->|否| K[拒绝] J -->|是| L[保存] G --> M{未入库?} M -->|否| N[拒绝] M -->|是| O[逻辑删除] H --> P[已入库] I --> Q[未入库] ``` ### 4.2 典型运营顺序 1. **新增**知识条目并上传正文附件 → **未入库**。 2. 校对无误后 **同步知识库** → **已入库**(可供下游问答/检索使用)。 3. 内容需大改 → **移出知识库** → **编辑** → 再次 **同步知识库**。 4. 废弃条目 → 若 **已入库** 先 **移出** → **删除**。 ### 4.3 与外部知识库的一致性原则 | 场景 | 业务侧 | 外部知识库 | | --- | --- | --- | | 新增保存 | 落库 **未入库** | 不自动写入 | | 未入库下修改保存 | 仅更新本地 | 不自动写入 | | 同步成功 | **已入库** | 创建/挂载对应条目 | | 已入库 | 不可改本地业务字段 | 保持条目存在 | | 移出成功 | **未入库** | 删除或下线对应条目 | | 未入库删除 | 逻辑删除 + 清理附件 | 无条目或发删除通知(以实现为准) | > **本期不做「已入库后保存即自动推库」**:与养殖标准不同;已入库后须先移出再改。 --- ## 5. 详细功能需求 ### 5.1 列表与查询 | 项 | 规则 | | --- | --- | | 分页 | 默认每页 **20** 条 | | 排序 | 默认 **创建时间倒序** | | 展示列 | 知识标题、知识主题、知识简介(可截断)、知识文件(名称或下载入口)、**入库状态**、操作 | | 工具栏 | **搜索**、**重置**、**新增** | | 操作列 | 见 **§6**;各状态均宜有 **查看** | --- ### 5.2 新增 | 字段 | 规则 | | --- | --- | | 知识标题 | **必填**;**1~20** 字 | | 知识主题 | **必填**;**单选**;取值 **§2.2** 五类之一 | | 知识简介 | **选填**;**≤50** 字 | | 知识内容 | **必填**;**单文件**上传;允许后缀:**pdf、md、doc、docx、xls、xlsx、pptx**;**≤30MB** | | 初始状态 | **未入库** | **通用校验:** - 文本按**字符**计;提交前 trim;空字符串视为未填。 - 后缀、大小在服务端二次校验;超限或非法格式返回明确提示。 - 须先完成上传再提交保存(业务表存访问地址与存储路径及**原始文件名**展示,具体落库方式由实现确定)。 --- ### 5.3 修改 | 项 | 规则 | | --- | --- | | 允许 | **未入库** | | 拒绝 | **已入库** → 「已入库条目请先移出知识库后再编辑」 | | 范围 | 标题、主题、简介、知识内容附件均可改;校验同 **§5.2** | | 保存后 | 仍为 **未入库**;**不**自动同步外部知识库 | 替换知识内容附件时,旧物理文件宜按平台文件管理惯例清理。 --- ### 5.4 查看 - **任意入库状态**可查看。 - 展示:知识标题、知识主题、知识简介、知识内容(下载或预览入口,若有)、正文**原始文件名**、入库状态、创建/更新等审计信息。 - **已入库**:只读,无编辑入口;**未入库**:具备权限时可「编辑」。 --- ### 5.5 逻辑删除 | 项 | 规则 | | --- | --- | | 允许 | **未入库** | | 拒绝 | **已入库** → 「已入库条目请先移出知识库后再删除」 | | 方式 | **本期单条**;二次确认;确认文案展示知识标题 | | 副作用 | 逻辑删除标记;删除知识内容物理文件;按对接约定**通知外部知识库删除**(若库侧本无条目则跳过或幂等处理) | --- ### 5.6 同步知识库 | 项 | 规则 | | --- | --- | | 前置 | **未入库**;标题、主题、知识内容等校验通过 | | 操作 | 用户点击「同步知识库」;宜二次确认 | | 结果 | 外部知识库创建或挂载对应条目;业务侧变为 **已入库** | | 失败 | 返回明确原因(网络、鉴权、知识库业务错误等);**不**记为已入库,可重试 | | 重复 | **已入库** 再次点击应拒绝:「该条目已入库」 | 同步字段范围(与对接约定一致,通常含):标题、主题、简介、正文附件及元数据。 --- ### 5.7 移出知识库 | 项 | 规则 | | --- | --- | | 前置 | **已入库** | | 拒绝 | **未入库** → 「仅已入库条目可移出知识库」 | | 操作 | 用户点击「移出知识库」;宜二次确认 | | 结果 | 外部知识库删除或下线对应条目;业务侧变为 **未入库** | | 失败 | 返回明确原因;**不**改变入库状态,可重试 | | 移出后 | 可 **编辑**、**删除** 或再次 **同步知识库** | --- ## 6. 操作与权限矩阵 | 操作 | 未入库 | 已入库 | | --- | --- | --- | | 查看 | ✓ | ✓ | | 编辑 | ✓ | — | | 删除 | ✓ | — | | 同步知识库 | ✓ | — | | 移出知识库 | — | ✓ | 列表级 **新增**、**搜索**、**重置** 需对应权限。无权限时按钮不展示或禁用。 --- ## 7. 与下游衔接 | 下游 | 本模块提供 | | --- | --- | | 外部知识库 / 智能问答 | **已入库** 条目的正文与元数据,供索引、检索、问答引用 | | 运营审计 | 逻辑删除保留记录;同步/移出/删除宜记操作日志 | --- ## 8. 提示约定(示例) | 场景 | 示例文案 | | --- | --- | | 必填/超长 | 「请填写【知识标题】」「【知识简介】不能超过 50 字」 | | 附件 | 「请上传知识内容」「仅支持 pdf/md/doc/docx/xls/xlsx/pptx,且不超过 30MB」 | | 入库态 | 「已入库条目请先移出知识库后再操作」「该条目已入库」「仅已入库条目可移出知识库」 | | 同步/移出失败 | 「同步知识库失败:{原因}」「移出知识库失败:{原因}」 | --- ## 9. 非功能建议 - 按按钮粒度控制操作权限。 - 同步知识库、移出知识库、删除记审计日志。 - 列表在常规数据量下分页响应可接受。 - 用语与原型、外部知识库对接文档一致;界面支持 i18n。 --- ## 10. 修订记录 | 版本 | 说明 | | --- | --- | | 2.0 | 依据草稿与原型重写:入库状态机、操作矩阵、流程图;明确无发布/下架;未入库可编删、已入库仅查看与移出;剔除技术栈与接口表述 | | 2.1 | **2026-05-20**:知识内容正文白名单调整为 `pdf`、`md`、`doc`、`docx`、`xls`、`xlsx`、`pptx`(不含 `ppt`);与 `LivestockKnowledgeRules` 一致;前端 `contentFileExts` 本次不改 |