# 牦牛疾病预警 — 功能需求 ## 1. 文档说明 | 项 | 说明 | | --- | --- | | 模块名称 | 牦牛疾病预警 | | 目标 | 汇聚、查询与展示物联监测或第三方平台产生的牦牛健康异常预警,支撑牧场巡护与产业侧风险发现,并为「养殖产业数据」等看板的「预警牦牛数量」等指标提供数据基础 | | 关联系统 | 业务后台(列表、详情、同步);移动端(「健康预警」列表查阅) | | 修订依据 | 同目录 `牦牛疾病预警功能需求-草稿.md`;界面原型(`Snipaste_2026-05-19_12-32-20.jpg` 后台列表;`Snipaste_2026-05-21_15-06-50.jpg` 移动端列表) | 本文档仅描述**功能需求与业务规则**,不涉及库表结构、接口路径、请求参数字段命名、技术栈选型及实现方案。 --- ## 2. 术语与枚举 ### 2.1 预警记录 - 以**单次异常事件**为粒度的一条记录:某头牦牛在某一时刻因监测指标越界或规则命中而产生的预警。 - 同一牦牛可存在**多条**历史预警;列表按条展示,**不合并**为一条(若第三方重复推送,同步层宜去重,见 **§5.3**)。 - 本模块以**查询、同步、只读详情**为主;**不提供**界面内手工新建、修改、删除预警。 ### 2.2 字段含义 | 字段 | 说明 | | --- | --- | | 牦牛编号 | 与「牦牛资产档案管理」、第三方生产管理系统一致,用于关联单头牦牛 | | 预警时间 | 事件时间,展示到**秒**(`YYYY-MM-DD HH:mm:ss`),时区与项目统一(默认 **Asia/Shanghai**) | | 所属牧场 | 预警发生时牦牛归属牧场名称;宜与「牧场管理」或第三方映射名称一致 | | 预警信息 | 面向用户的**自然语言说明**(见 **§2.3**) | 详情页须展示上述**全部业务字段**;若第三方同步扩展字段(如预警类型、实测值、参考范围),宜在详情中一并只读展示,列表可不全部展开。 ### 2.3 预警信息(内容要求) 预警信息为**只读文案**,由第三方或规则引擎生成,不在本模块编辑。宜包含可理解的要素: | 要素 | 示例 | | --- | --- | | 实测值 | 当前实测体温 39.8℃ | | 参照标准 | 正常体温参考范围 | | 触发结论 | 超出参考范围,触发**体温异常预警** | 原型示例:「当前实测体温39.8℃,超出正常体温参考范围,触发体温异常预警。」 **预警类型**(示例,全集以对接为准): | 类型 | 含义概要 | | --- | --- | | 体温异常 | 体温超出阈值或参考区间(物联监测,若第三方提供) | | 运动量异常 | 运动量显著偏离常态(若第三方提供) | | 检疫集中预警 | 某自然日、某地区检疫结果异常或阳性记录集中(≥3 条) | | 诊疗集中预警 | 某自然日、某地区发病/诊疗记录集中(≥3 条) | | 其他 | 第三方扩展指标,文案由数据源给出 | 本期列表**可不单独增加「预警类型」列**,类型含义宜体现在「预警信息」中;若产品要求列表筛选「预警类型」,须评审后增补。 ### 2.4 数据来源 | 来源 | 说明 | | --- | --- | | 第三方生产管理系统 | **主要来源**;用户触发**同步**时依次拉取**检疫记录**、**诊疗记录**、**养殖过程记录**三类 OpenAPI 列表,落库后由本系统规则集中分析生成预警(与牦牛资产、牧场同源 `third-party.farming`) | | 物联监测(可选) | 若第三方仍推送体温/运动量类单条预警,可经分析或直写 `biz_yak_disease_warning`;本期以检疫/诊疗集中规则为主 | | 本系统规则引擎 | 对本地健康源表未分析记录执行集中判断;分析后置 **已分析**,同一条源记录不再重复判断 | ### 2.5 与主数据、他模块 - **牦牛编号**宜能在「牦牛资产档案」中查到;档案缺失时仍展示预警,并可提示「档案未同步」。 - **所属牧场**宜对应「牧场管理」养殖主体;名称不一致时以预警数据展示名为准。 - 预警为**监测风险提示**,不自动发起疫病诊疗、AI 诊断、兽医接诊等流程。 --- ## 3. 功能范围 **本期实现:** | 能力 | 说明 | | --- | --- | | 预警列表(后台) | 预警日期范围、所属牧场筛选;分页;列见 **§5.1** | | 查看详情(后台) | 只读展示本条预警全部字段,见 **§5.4** | | 数据同步 | 从第三方拉取/更新,见 **§5.3** | | 健康预警列表(移动端) | 只读列表,见 **§5.5** | | 工具栏 | 搜索、重置、同步(后台) | **本期不实现:** - 预警手工录入、编辑、删除、批量「已处理」 - 处置闭环(派单、回访、关闭)及处置记录 - 预警规则/阈值配置界面 - 消息推送、短信、强提醒(仅列表/详情查阅) - 地图、轨迹、实时物联大屏 - 导出、打印(另立需求) --- ## 4. 业务流程 ### 4.1 总体 ```mermaid flowchart TB T[第三方生产管理系统] T -->|OpenAPI 检疫/诊疗/养殖过程| S[本地健康源数据] S -->|规则分析| W[疾病预警] W --> L[后台:预警列表] L -->|查看| D[后台:预警详情] W --> M[移动端:健康预警列表] W --> O[养殖产业数据等指标] ``` ### 4.2 后台使用路径 ```mermaid flowchart LR A[进入模块] --> B[设置筛选条件] B --> C[搜索] C --> L[浏览列表] L --> V[查看详情] L --> Y[同步] Y --> C B --> R[重置] R --> A ``` **顺序说明:** 1. 授权用户**同步**第三方预警(可选定时,见 **§8**)。 2. 按**预警日期**、**所属牧场**筛选,**分页**浏览列表。 3. 对单条记录**查看详情**,只读核对全部字段。 4. 移动端用户查阅**健康预警**列表(同一数据集的不同终端呈现)。 5. 「养殖产业数据」等模块引用预警数据做「预警牦牛数量」等统计,**不在本模块维护统计界面**(口径见 **§5.6**)。 --- ## 5. 详细功能需求 ### 5.1 查询预警列表(业务后台) #### 筛选条件 | 条件 | 规则 | | --- | --- | | 预警日期 | 日期范围:开始日期、结束日期;按「预警时间」的**日历日**过滤(含起止日当天 00:00:00~23:59:59) | | 所属牧场 | **精确**匹配;下拉来自用户可见牧场;**未选**则不过滤牧场 | | 逻辑 | 条件之间为 **且** | **日期边界:** | 情形 | 规则(默认约定) | | --- | --- | | 起止均空 | 不按日期过滤 | | 仅开始日期 | 开始日及之后,至**当前日期**止 | | 仅结束日期 | 结束日及之前 | | 开始晚于结束 | 提示「开始日期不能晚于结束日期」,不查询 | #### 列表展示 | 列 | 说明 | | --- | --- | | 预警时间 | §2.2 | | 牦牛编号 | §2.2 | | 所属牧场 | §2.2 | | 预警信息 | §2.3;过长时换行或悬停展示全文 | | 操作 | **查看**(进入 **§5.4**) | #### 列表规则 - 分页:默认每页 **20** 条。 - 排序:默认 **预警时间倒序**(最新在前);相同时刻宜有稳定次序(如按记录标识)。 - **搜索**:按当前条件查询;**重置**:清空条件并恢复默认列表。 - **数据权限**:仅展示用户**权限范围内牧场**的预警;牧场下拉与结果一致。 #### 空态 | 情形 | 提示方向 | | --- | --- | | 无任何预警 | 暂无预警数据 | | 有筛选无结果 | 未找到符合条件的预警 | --- ### 5.2 列表工具栏 | 按钮 | 行为 | | --- | --- | | 搜索 | 按 **§5.1** 条件刷新列表 | | 重置 | 清空筛选并恢复默认列表 | | 同步 | 执行 **§5.3**;进行中宜防重复点击 | --- ### 5.3 第三方同步 | 项 | 要求 | | --- | --- | | 触发 | 用户点击「同步」;定时任务是否启用另定(**§8**) | | 权限 | 仅具备同步权限的角色可执行 | | 拉取范围 | 分页拉取三类 OpenAPI:**检疫记录**、**诊疗记录**、**养殖过程记录**(与 Apifox 文档一致);按 `external_id` 合并写入本地健康源表 | | 分析生成 | 同步完成后,对 `analyzed_flag=0` 的源记录执行集中判断:**检疫**同地区同日异常/阳性 ≥3 条 → 健康预警;**诊疗**同地区同日 ≥3 条 → 健康预警;**养殖过程**本期仅标记已分析、不产预警 | | 已分析标记 | 参与判断的源记录在分析后置 **已分析**,下次同步不再重复判断 | | 预警去重 | 源记录分析后置 **已分析**,同一条健康源不再重复触发;预警表无第三方 ID,按分析批次插入 | | 成功反馈 | 提示完成及摘要(源记录新增/更新条数、预警生成计入新增摘要);列表宜可刷新 | | 失败反馈 | 明确原因(超时、鉴权失败等);**不删除**已有本地数据 | | 部分成功 | 宜区分成功/失败条数(单条源记录映射失败记 `failCount`) | | 时区 | 入库与展示统一为项目约定时区(Asia/Shanghai) | | 与档案同步 | 本模块「同步」**仅**健康源 + 分析预警;不强制连带「牦牛资产档案」同步 | 同步成功后,列表/详情展示最近一次成功结果;可选展示「数据截至:{最近同步时间}」。 --- ### 5.4 查看预警详情(业务后台) | 项 | 要求 | | --- | --- | | 入口 | 列表操作「查看」 | | 权限 | 具备查询权限即可;须校验该条预警属于用户可见牧场 | | 模式 | **只读**;无保存、编辑、删除按钮 | **展示内容(至少包含):** - 牦牛编号、预警时间、所属牧场、预警信息(**§2.2 全部字段**)。 - 若同步数据含扩展项(如预警类型、实测值、参考阈值、设备编号、采集时间等),**详情页全部展示**;列表未出现的字段仅在详情呈现。 - 可选展示:最近同步时间、数据来源说明(第三方名称)。 **交互建议:** - 点击牦牛编号可跳转「牦牛资产档案」详情(只读);档案不存在时提示「档案未找到,请先同步档案」。本期**不强制**,未实现不影响预警详情验收。 - 提供返回列表。 --- ### 5.5 健康预警列表(移动端) > 界面标题「健康预警」,与后台为同一预警数据集。 | 项 | 要求 | | --- | --- | | 用户 | 已登录移动端用户(牧民、牧场管理员等) | | 范围 | 与后台一致的**数据权限**:仅可见关联牧场下预警 | | 条目内容 | 牦牛编号(或展示名)、预警时间、预警信息全文(原型在列表直接展示说明,**本期可无独立详情页**;若文案过长须支持展开或详情页,评审确认) | | 头像 | 有则展示,无则占位图 | | 排序 | 预警时间倒序 | | 加载 | 分页或上拉加载更多,符合移动端通用规范 | | 能力 | **只读**;无删除、编辑、标记已读(除非另立需求) | | 空态 | 暂无健康预警 | **说明:** 移动端原型未体现日期、牧场筛选;本期可不提供筛选;若需与后台一致,作为扩展(**§8**)。 --- ### 5.6 与其他模块及统计口径 | 模块 | 关系 | | --- | --- | | 牧场管理 | 牧场下拉、所属牧场展示名与养殖主体主数据一致 | | 牦牛资产档案管理 | 共用牦牛编号与第三方;详情可跳转档案 | | 养殖产业数据 | 「预警牦牛数量」:当前自然年 1 月 1 日 0:00 至看板**统计日** 23:59:59 内,至少 1 条未删除预警的**去重牦牛编号**头数;牦牛须满足「养殖产业数据」**§2.9** 纳入范围;**本模块不提供统计配置界面** | | 牧业疫病诊疗服务 | 预警不自动生成诊疗单或接诊会话 | --- ## 6. 操作权限矩阵 | 操作 | 后台 | 移动端 | | --- | --- | --- | | 查询列表 | ✓ | ✓ | | 查看详情 | ✓ | —(列表直显全文时可为 —) | | 同步 | ✓ | — | | 新增/修改/删除 | — | — | 菜单与按钮权限(查询、同步等)按项目角色配置;牧场数据权限同 **§5.1**。 --- ## 7. 错误与提示约定 采用项目统一业务错误呈现(如含 `code`、`msg`、`data`),**不定义接口形态**。 | 场景 | 提示方向(示例) | | --- | --- | | 日期范围非法 | 开始日期不能晚于结束日期 | | 同步进行中 | 正在同步,请稍候 | | 同步失败 | 同步失败:{原因摘要} | | 无权查看 | 无权查看该预警 | | 记录不存在 | 预警记录不存在或已失效 | | 列表无数据 | 暂无预警数据 / 未找到符合条件的预警 | --- ## 8. 非功能需求(建议) | 类别 | 建议 | | --- | --- | | 权限 | 查询、同步分权;牧场隔离 | | 审计 | 同步记操作日志(操作人、时间、结果摘要) | | 性能 | 默认宜引导或隐含「近 30 天」等时间范围,避免一次加载全量历史 | | 定时同步 | 逻辑与手动同步一致,频率可配置 | | 双语 | 标签与固定文案符合 i18n(汉语 + 藏文) | | 扩展 | 预警类型筛选、已处理状态、推送、导出、移动端筛选、跳转档案 | --- ## 9. 修订说明(相对草稿) | 草稿条目 | 优化处理 | | --- | --- | | 列表筛选 `startDate/endDate` | 改为业务表述「预警日期范围」及边界规则(**§5.1**) | | 列表字段 | 明确列顺序、操作「查看」、分页排序(**§5.1**) | | 查看所有字段 | 独立 **§5.4** 详情只读及扩展字段展示 | | 第三方拉取 | 扩展为 **§5.3** 同步、去重、失败策略 | | `code/msg/data`、技术栈 | 技术栈删除;统一错误呈现仅保留 **§7**(不涉及接口设计) | | 未写移动端 | 依据原型补充 **§5.5** | | 未写他模块关系 | **§5.6** 与产业数据统计口径 | --- ## 10. 功能追溯 | 草稿/原型能力 | 章节 | | --- | --- | | 预警列表 + 日期 + 牧场 + 分页 | §5.1 | | 牦牛编号、预警时间、所属牧场、预警信息 | §2.2、§5.1 | | 查看预警(全部字段) | §5.4 | | 第三方数据 | §5.3 | | 后台列表原型 | §5.1、§5.2 | | 移动端健康预警 | §5.5 | --- ## 11. 修订记录 | 版本 | 日期 | 说明 | | --- | --- | --- | | 1.0 | 2026-05-21 | 初版:草稿 + 双端原型整理,仅功能需求 | | 1.1 | 2026-05-20 | 对齐草稿:三类健康源 OpenAPI 同步 + 集中分析规则;预警类型 3/4 |