# 疫情上报 — 功能需求 ## 1. 文档说明 | 项 | 说明 | | --- | --- | | 模块名称 | 疫情上报 | | 目标 | 登记、查询、维护畜禽疫情上报信息,支持按传播途径与风险等级筛选,并对已处置疫情执行「解除」闭环 | | 关联系统 | 业务后台;与「疾病检测与上报」体系其它模块的衔接由产品统一规划 | | 修订依据 | 同目录 `疫情上报-草稿.md` | 本文档仅描述**功能需求与业务规则**,不涉及库表结构、接口路径、请求体字段命名及技术栈选型。 --- ## 2. 术语与枚举 ### 2.1 传播途径(单选) 表示疫情**如何传入或扩散**,新增/修改时必选其一: | 取值 | 说明 | | --- | --- | | 调运传入 | 由调运、引种等带入 | | 本地扩散 | 在本地畜群间传播、扩散(草稿「扩撒」统一为「扩散」) | | 环境感染 | 与环境、媒介等相关的感染途径 | | 其他未知 | 途径尚不明确 | ### 2.2 疫病类型(单选) 表示疫病**病原或类别**,与「传播途径」不同,新增/修改时必选其一: | 取值 | 说明 | | --- | --- | | 病毒性疫病 | — | | 细菌性疫病 | — | | 寄生虫疫病 | — | | 其他类疫病 | — | ### 2.3 风险等级(单选) | 取值 | 说明 | | --- | --- | | 高危 | 传播或损失风险高,处置优先级高 | | 中危 | — | | 低危 | — | ### 2.4 处置状态(业务态,非独立录入项) 由是否填写 **解除日期** 推导,用于列表展示与按钮控制: | 状态 | 条件 | 含义 | | --- | --- | --- | | **未解除** | 解除日期为空 | 疫情上报仍视为进行中,可编辑、可执行「解除」 | | **已解除** | 解除日期已填写 | 疫情已结案,**不可再编辑**、**不可再次解除**;仅可查看、删除 | > 草稿中「没有解除日期 / 有解除日期」对应上表两种状态。 --- ## 3. 功能范围 - 疫情上报的新增、修改、删除、分页列表查询、详情查看 - **解除**(填写解除日期,将记录置为已解除) - 传播途径、风险等级等字段的录入与校验 - 按传播途径、风险等级的列表筛选 - 面向使用方的业务错误与校验提示(见第 **8** 章) **不在本模块范围(除非后续单独立项):** 疫情地图轨迹绘制、自动预警推送、与实验室检测单自动关联等。 --- ## 4. 业务流程概览 ```mermaid flowchart TD A[新增疫情上报] --> B[列表查询/筛选] B --> C[查看详情] B --> D{未解除?} D -->|是| E[修改] D -->|是| F[解除并填写解除日期] D -->|是| G[删除] D -->|否| H[仅查看或删除] E --> B F --> I[已解除] I --> B G --> B H --> B ``` 1. **上报**:录入上报日期、传播途径、涉疫点位/轨迹、疫病类型、疫病名称、风险等级 → 形成一条**未解除**记录。 2. **查询**:按传播途径、风险等级筛选,分页浏览;默认可按上报日期或创建时间倒序。 3. **维护(未解除)**:对未解除记录修改全部业务字段。 4. **解除**:对未解除记录填写解除日期并确认 → 变为**已解除**,停止编辑与再次解除。 5. **删除**:未解除、已解除均可删除(需权限与确认);删除后不再参与列表与统计。 6. **查阅**:任意状态可查看详情;已解除详情为只读(无编辑入口)。 --- ## 5. 详细功能需求 ### 5.1 新增疫情上报 | 字段 | 规则 | | --- | --- | | 上报日期 | **必填**;格式 **YYYY-MM-DD**;表示本条疫情信息的上报日 | | 传播途径 | **必填**;单选,取值限定为 **§2.1** | | 涉疫点位/轨迹 | **必填**;文字描述涉疫地点、范围或活动轨迹等;长度上限与项目全局一致(建议 **1~500** 个字符,含标点计数方式与全局一致) | | 疫病类型 | **必填**;单选,取值限定为 **§2.2**(草稿中误写为第二项「传播途径」的,按疫病类型理解) | | 疫病名称 | **必填**;具体疫病名称;长度建议 **1~50** 个字符 | | 风险等级 | **必填**;单选,取值限定为 **§2.3** | | 解除日期 | **不填**;新增时不得填写;由「解除」操作单独写入 | **必填字段汇总:** 上报日期、传播途径、涉疫点位/轨迹、疫病类型、疫病名称、风险等级。 **校验:** - 上报日期格式非法时拒绝保存。 - 解除日期在新增界面**不可见或不可编辑**(避免与「解除」流程混淆)。 - 各枚举须为约定取值之一,非法值拒绝保存。 **保存结果:** 记录处置状态为 **未解除**;可被列表查询、修改、解除、删除。 --- ### 5.2 查询疫情上报列表 - **传播途径:** **精确**匹配筛选;未选择时不过滤。 - **风险等级:** **精确**匹配筛选;未选择时不过滤。 - **分页:** 支持分页;默认 **每页 20 条**,默认首页为第一页;单页条数上限与项目列表通用规范一致(若有)。 - **排序:** 默认按 **上报日期倒序**(最近上报在前);相同时按 **创建时间倒序**(若有)。 **列表宜展示:** 上报日期、传播途径、疫病类型、疫病名称、风险等级、涉疫点位/轨迹(可截断展示)、处置状态(未解除/已解除)、解除日期(已解除时)、创建时间,以及操作列。 **操作列与处置状态(与 §6 矩阵一致):** | 处置状态 | 操作 | | --- | --- | | 未解除 | 查看、编辑、解除、删除 | | 已解除 | 查看、删除 | --- ### 5.3 修改疫情上报 - **状态约束:** **仅未解除** 记录允许修改;**已解除** 记录**不允许修改**(列表/详情不提供编辑入口;若调用修改类能力须返回明确业务错误)。 - **可修改项:** 上报日期、传播途径、涉疫点位/轨迹、疫病类型、疫病名称、风险等级(**不含**解除日期;解除日期仅能通过 **§5.6** 写入)。 - **保存约束:** 提交时须重新满足 **§5.1** 全部校验;必填字段不得为空。 - **说明:** 已解除记录若需更正业务内容,产品策略为:删除后重新上报,或另立「纠错/作废」流程(当前需求未包含,须单独评审)。 --- ### 5.4 删除疫情上报 - **允许删除:** **未解除**、**已解除** 记录在具备删除权限时均可删除(是否支持批量删除与项目列表惯例一致)。 - **删除后果:** 删除后该条不再出现在列表与统计中;**无**附件联动要求(当前字段均为文本,无上传附件)。 - **确认:** 删除前宜弹出确认提示;已解除记录删除时宜在文案中区分「删除已解除记录」(仍建议二次确认)。 --- ### 5.5 查看疫情上报详情 - **展示内容:** 上报日期、传播途径、涉疫点位/轨迹、疫病类型、疫病名称、风险等级、处置状态、解除日期(未解除时展示为「—」或空)、创建人/创建时间、修改人/修改时间(若系统有审计字段)。 - **交互:** **未解除** 且具备编辑权限时,可从详情进入编辑;**已解除** 为只读。 - **解除入口:** 仅 **未解除** 详情或列表提供「解除」按钮。 --- ### 5.6 解除疫情上报 - **适用:** 仅 **未解除** 记录可执行「解除」。**已解除** 记录不得再次解除。 - **录入:** 须填写 **解除日期**,格式 **YYYY-MM-DD**,**必填**。 - **日期关系:** 解除日期**不得早于**上报日期;若违反须拒绝并提示(如「解除日期不能早于上报日期」)。 - **默认:** 解除日期选择器默认可选**当天**;是否允许未来解除日期由产品约定(默认**不允许未来日期**,表示已实际解除)。 - **确认:** 执行解除前宜二次确认(如「确认解除该疫情上报?」)。 - **结果:** 保存解除日期后,处置状态变为 **已解除**;该记录**不可再编辑**、**不可再次解除**;操作列仅保留查看、删除。 - **与删除区别:** 「解除」为业务结案,保留历史用于统计与追溯;「删除」为物理/逻辑移除整条记录。 --- ## 6. 操作权限矩阵(汇总) 在**已授权**前提下(菜单与按钮级权限按项目角色配置): | 处置状态 | 查看 | 新增 | 修改 | 解除 | 删除 | | --- | --- | --- | --- | --- | --- | | 未解除 | ✓ | ✓(独立新增入口) | ✓ | ✓ | ✓ | | 已解除 | ✓ | — | ✗ | ✗ | ✓ | **说明:** - 「新增」为列表页/global 按钮,不依赖行状态。 - 矩阵与草稿第 7 条一致:**无解除日期** → 查看、解除、编辑、删除;**有解除日期** → 查看、删除。 --- ## 7. 列表筛选与业务约束补充 | 约束 | 说明 | | --- | --- | | 枚举存储与展示 | 传播途径、疫病类型、风险等级在列表/详情中展示为中文标签,与 **§2** 一致 | | 涉疫点位/轨迹 | 允许多行文本;列表可用省略号展示,详情全文展示 | | 统计口径 | 若大屏或报表统计「在途疫情」,仅计 **未解除** 记录;「已解除」计入历史结案量 | | 并发 | 同一记录解除操作宜防重复提交(前端禁用按钮或后端幂等,实现阶段约定) | --- ## 8. 错误与提示约定 - 业务与校验错误宜采用项目统一的 **`code`、`msg`、`data`** 结构呈现(不涉及具体协议与路径设计)。 - 常见提示宜可区分,例如: - 必填项缺失、日期格式错误; - 解除日期早于上报日期; - 已解除记录不可修改、不可再次解除; - 删除/解除确认取消与操作失败原因。 --- ## 9. 非功能需求(建议) | 类别 | 建议 | | --- | --- | | 权限 | 查询、新增、修改、删除、解除等是否分角色(如仅管理员可删除已解除记录) | | 审计 | 新增、修改、解除、删除记操作日志;解除日期变更可追溯 | | 安全 | 涉疫点位/轨迹可能含敏感地址,按角色控制导出范围(若后续有导出) | | 双语 | 后台字段标签与提示与项目 i18n 规范一致(汉语 + 藏文,若适用) | --- ## 10. 修订说明(相对草稿) | 草稿问题 | 优化处理 | | --- | --- | | 第 5 行两项「传播途径」 | 第二项更正为 **疫病类型**(§2.2),与传播途径(§2.1)区分 | | 「扩撒」 | 统一为 **本地扩散** | | 解除规则仅列操作 | 增补 **§2.4 处置状态**、**§5.6 解除**、日期先后约束 | | 修改「所有均可修改」 | 明确 **仅未解除** 可改;已解除不可改 | | 第 8、9 条接口与技术栈 | 技术栈移出本文档;错误结构保留于 **§8**(不写接口) | | 无流程与矩阵 | 增补 **§4 流程图**、**§6 操作矩阵** | | 列表字段与排序未写 | **§5.2** 补充展示列、排序、筛选规则 | | 删除与解除语义混用 | **§5.4** 与 **§5.6** 分别定义 | --- ## 11. 与相关文档关系 | 文档 | 关系 | | --- | --- | | `疫情上报-草稿.md` | 初稿功能列表 | | 《疫情上报技术方案》(待编) | 库表、接口、权限标识 | | 《疫情上报管理测试用例》(待编) | 用例与本文档章节对应 |