Files
nxxmdata/docs/requirements/PRD.md
2025-09-19 23:46:15 +08:00

21 KiB
Raw Blame History

宁夏智慧养殖监管平台产品需求文档

版本历史

版本 日期 作者 描述
v1.0 2025-01-18 产品经理 初始版本
v2.0 2025-01-19 产品经理 全面重构,增加多端支持

1. 项目概述

1.1 项目背景

宁夏回族自治区作为中国重要的畜牧业基地,养殖业在区域经济发展中占据重要地位。随着现代信息技术的快速发展和国家对食品安全、环境保护要求的不断提高,传统养殖业正面临数字化转型的迫切需求。

行业痛点:

  • 养殖过程缺乏有效监管,食品安全风险较高
  • 传统管理方式效率低下,数据记录不完整
  • 缺乏统一的信息化平台,各部门信息孤岛严重
  • 应急响应能力不足,疫情防控压力大
  • 金融保险服务与养殖业结合不够紧密

1.2 项目目标

总体目标: 构建一个现代化、智能化的养殖监管平台,实现养殖全过程数字化管理,提升监管效率,保障食品安全,促进产业升级。

具体目标:

  • 建立统一的养殖信息管理体系
  • 实现养殖环境实时监控和预警
  • 提供全程可追溯的养殖档案管理
  • 构建多部门协同的监管机制
  • 集成金融保险服务,支持产业发展

1.3 成功标准

业务指标:

  • 养殖场数字化覆盖率达到90%以上
  • 异常事件响应时间缩短至5分钟内
  • 养殖档案完整性达到95%以上
  • 用户满意度达到85%以上

技术指标:

  • 系统可用性达到99.9%
  • 接口响应时间小于500ms
  • 支持1000+并发用户访问
  • 数据准确性达到99.5%以上

1.4 范围界定

本版本包含:

  • 核心养殖监管平台Web端
  • 数据可视化大屏系统
  • 银行端小程序(金融服务)
  • 政府端小程序(监管服务)
  • 保险端小程序(保险服务)
  • 官方网站(信息展示)

本版本不包含:

  • 移动端原生APP后续版本规划
  • 人工智能预测分析(三期规划)
  • 区块链溯源功能(四期规划)
  • 国际化多语言支持(后续版本)

2. 用户角色与用例

2.1 用户角色定义

角色 描述 主要职责 权限范围
系统管理员 平台技术管理员 系统维护、用户管理、权限配置 全系统权限
监管部门用户 政府监管人员 监管政策制定、数据审核、异常处理 监管数据查看、政策发布
养殖场管理员 养殖场负责人 养殖场日常管理、数据录入、设备维护 本场数据管理权限
养殖场员工 一线养殖人员 日常养殖操作、数据记录、设备操作 基础操作权限
银行业务员 金融服务人员 贷款审批、风险评估、客户服务 金融数据查看权限
保险专员 保险服务人员 保险承保、理赔处理、风险评估 保险相关数据权限
技术支持 平台技术支持 系统维护、故障处理、用户培训 系统维护权限

2.2 核心用例场景

2.2.1 养殖场管理场景

用例: 新建养殖场档案

  • 参与者: 养殖场管理员
  • 前置条件: 用户已登录系统,具有养殖场管理权限
  • 主要流程:
    1. 进入养殖场管理模块
    2. 填写基本信息(名称、地址、规模等)
    3. 上传相关证件和图片
    4. 设置地理围栏
    5. 配置设备信息
    6. 提交审核
  • 后置条件: 养殖场档案创建成功,等待审核

2.2.2 设备监控场景

用例: 实时监控设备状态

  • 参与者: 养殖场管理员、员工
  • 前置条件: 设备已正常连接,用户有监控权限
  • 主要流程:
    1. 进入设备监控界面
    2. 查看设备实时状态
    3. 接收异常告警
    4. 处理异常情况
    5. 记录处理结果
  • 后置条件: 设备状态正常,异常已处理

2.2.3 金融服务场景

用例: 申请养殖贷款

  • 参与者: 养殖场管理员、银行业务员
  • 前置条件: 养殖场已认证,具备贷款条件
  • 主要流程:
    1. 在银行小程序提交贷款申请
    2. 上传相关材料
    3. 系统自动评估风险
    4. 银行业务员审核
    5. 放款或拒绝
  • 后置条件: 贷款申请处理完成

3. 功能需求

3.1 核心业务功能

3.1.1 养殖场管理模块

功能描述: 提供养殖场全生命周期管理功能

用户故事:

  • As a 养殖场管理员, I want to 创建和管理养殖场档案, so that 可以规范化管理养殖场信息
  • As a 监管人员, I want to 查看和审核养殖场信息, so that 确保养殖场符合监管要求
  • As a 系统管理员, I want to 统计养殖场数据, so that 为决策提供数据支持

验收标准:

Given 用户是养殖场管理员
When 用户填写完整的养殖场信息并提交
Then 系统应该创建养殖场档案并生成唯一编号
And 系统应该发送审核通知给监管人员
And 养殖场状态应该设置为"待审核"

详细功能点:

  • 养殖场基本信息管理(名称、地址、规模、类型等)
  • 证件管理(营业执照、养殖许可证等)
  • 地理位置标注和电子围栏设置
  • 圈舍信息管理(数量、面积、容量等)
  • 养殖场图片和视频管理
  • 审核流程管理(提交、审核、通过、拒绝)

3.1.2 动物健康管理模块

功能描述: 提供动物全生命周期健康管理

用户故事:

  • As a 养殖场员工, I want to 记录动物健康信息, so that 及时发现和处理健康问题
  • As a 兽医, I want to 查看动物健康历史, so that 制定合适的治疗方案
  • As a 监管人员, I want to 监控疫情风险, so that 及时采取防控措施

验收标准:

Given 用户是养殖场员工
When 用户录入动物健康检查数据
Then 系统应该保存健康记录
And 如果发现异常指标,系统应该自动生成告警
And 系统应该更新动物健康状态

详细功能点:

  • 动物档案管理(品种、年龄、来源、标识等)
  • 健康检查记录(体温、体重、食欲等)
  • 疫苗接种管理(疫苗类型、接种时间、有效期等)
  • 疾病诊疗记录(症状、诊断、治疗方案等)
  • 批次管理(进场、转移、出场记录)
  • 死亡和淘汰记录管理

3.1.3 IoT设备监控模块

功能描述: 实时监控养殖环境和设备状态

用户故事:

  • As a 养殖场管理员, I want to 实时查看环境数据, so that 及时调整养殖环境
  • As a 设备维护员, I want to 监控设备运行状态, so that 预防设备故障
  • As a 系统管理员, I want to 管理设备配置, so that 确保监控系统正常运行

验收标准:

Given 设备已正常连接到系统
When 设备传感器检测到异常数据
Then 系统应该立即生成告警
And 系统应该通知相关责任人
And 系统应该记录异常事件

详细功能点:

  • 环境监测(温度、湿度、氨气、二氧化碳等)
  • 设备状态监控(在线状态、运行参数、故障信息)
  • 实时数据展示(图表、仪表盘、趋势分析)
  • 告警管理(阈值设置、告警规则、通知方式)
  • 历史数据查询和分析
  • 设备远程控制(开关、参数调节等)

3.1.4 数据可视化模块

功能描述: 提供丰富的数据分析和可视化功能

用户故事:

  • As a 管理者, I want to 查看数据统计报表, so that 了解养殖场运营状况
  • As a 决策者, I want to 分析趋势数据, so that 制定科学的管理策略
  • As a 监管人员, I want to 监控区域数据, so that 掌握整体监管情况

验收标准:

Given 用户有数据查看权限
When 用户选择查看统计报表
Then 系统应该展示相应的图表和数据
And 数据应该实时更新
And 用户应该能够导出报表

详细功能点:

  • 实时数据大屏展示
  • 统计报表生成(日报、周报、月报)
  • 趋势分析图表(折线图、柱状图、饼图等)
  • 地图可视化(养殖场分布、区域统计)
  • 数据导出功能Excel、PDF、图片
  • 自定义报表配置

3.2 多端应用功能

3.2.1 银行端小程序

功能描述: 为银行提供养殖业金融服务支持

核心功能:

  • 客户信息管理和风险评估
  • 贷款申请和审批流程
  • 还款管理和逾期提醒
  • 养殖数据查看和分析
  • 金融产品推荐

用户故事:

  • As a 银行业务员, I want to 查看客户养殖数据, so that 评估贷款风险
  • As a 养殖场主, I want to 在线申请贷款, so that 快速获得资金支持

3.2.2 政府端小程序

功能描述: 为政府监管部门提供移动监管工具

核心功能:

  • 养殖场监管和检查记录
  • 政策发布和通知推送
  • 应急事件处理和上报
  • 统计数据查看和分析
  • 证件审批和管理

用户故事:

  • As a 监管人员, I want to 移动端查看监管数据, so that 随时掌握监管情况
  • As a 政策制定者, I want to 发布政策通知, so that 及时传达政策信息

3.2.3 保险端小程序

功能描述: 为保险公司提供养殖保险服务支持

核心功能:

  • 保险产品展示和销售
  • 投保申请和承保管理
  • 理赔申请和处理流程
  • 风险评估和定价
  • 客户服务和咨询

用户故事:

  • As a 保险专员, I want to 评估养殖风险, so that 制定合理的保险方案
  • As a 养殖场主, I want to 在线申请理赔, so that 快速获得理赔服务

4. 非功能需求

4.1 性能需求

响应时间要求:

  • 页面加载时间:≤ 3秒
  • API接口响应时间≤ 500ms
  • 数据库查询时间:≤ 200ms
  • 大屏数据刷新间隔:≤ 5秒

并发性能要求:

  • 支持1000+并发用户访问
  • 支持10000+设备同时在线
  • 支持100万+历史数据查询
  • 峰值QPS1000+

吞吐量要求:

  • 数据处理能力10000条/秒
  • 文件上传速度:≥ 1MB/s
  • 数据导出速度:≥ 500KB/s

4.2 可靠性需求

可用性要求:

  • 系统可用性99.9%
  • 计划内停机时间:≤ 4小时/月
  • 故障恢复时间:≤ 30分钟
  • 数据备份频率:每日备份

容错性要求:

  • 支持服务降级和熔断
  • 支持数据库主从切换
  • 支持负载均衡和故障转移
  • 支持异常情况下的数据恢复

4.3 安全性需求

身份认证:

  • 支持多因子认证MFA
  • 密码复杂度要求
  • 登录失败锁定机制
  • 会话超时管理

数据安全:

  • 敏感数据加密存储
  • 数据传输加密HTTPS/TLS
  • 数据访问权限控制
  • 数据脱敏和匿名化

系统安全:

  • SQL注入防护
  • XSS攻击防护
  • CSRF攻击防护
  • API访问频率限制

4.4 可扩展性需求

水平扩展:

  • 支持微服务架构改造
  • 支持容器化部署
  • 支持云原生架构
  • 支持多数据中心部署

功能扩展:

  • 支持插件化架构
  • 支持第三方系统集成
  • 支持多租户模式
  • 支持国际化扩展

5. 技术约束

5.1 技术栈要求

后端技术栈:

  • 运行环境Node.js 16.20.2+
  • Web框架Express.js 4.18+
  • 数据库MySQL 8.0+
  • ORM框架Sequelize 6.0+
  • 缓存Redis 6.0+

前端技术栈:

  • 框架Vue 3.4+ + Vite
  • UI组件库Ant Design Vue 4.0+
  • 状态管理Pinia 2.1+
  • 图表库ECharts 5.4+
  • 地图服务百度地图API

小程序技术栈:

  • 框架uni-app 3.0+
  • UI组件库uni-ui
  • 状态管理Pinia
  • HTTP客户端uni.request

5.2 部署环境要求

硬件要求:

  • CPU8核心以上
  • 内存16GB以上
  • 存储500GB SSD以上
  • 网络:千兆网络

软件环境:

  • 操作系统Ubuntu 20.04 LTS / CentOS 8
  • 容器Docker 20.10+
  • 反向代理Nginx 1.20+
  • 进程管理PM2 5.0+

5.3 第三方服务依赖

地图服务:

  • 百度地图API主要
  • 高德地图API备用

消息推送:

  • 微信公众号推送
  • 短信服务(阿里云)
  • 邮件服务(腾讯企业邮)

文件存储:

  • 阿里云OSS主要
  • 腾讯云COS备用

6. 数据模型设计

6.1 核心实体关系

erDiagram
    Farm ||--o{ Animal : contains
    Farm ||--o{ Device : has
    Farm ||--o{ Pen : includes
    Farm ||--o{ User : manages
    Animal }o--|| CattleType : belongs_to
    Animal }o--|| CattleBatch : belongs_to
    Device ||--o{ SensorData : generates
    Device ||--o{ Alert : triggers
    User }o--|| Role : has
    Order ||--o{ OrderItem : contains
    Product ||--o{ OrderItem : includes

6.2 主要数据表

6.2.1 养殖场表 (farms)

字段名 类型 长度 必填 说明
id INT - 主键ID
name VARCHAR 100 养殖场名称
address VARCHAR 200 详细地址
latitude DECIMAL 10,8 纬度
longitude DECIMAL 11,8 经度
scale ENUM - 规模(小型/中型/大型)
type VARCHAR 50 养殖类型
status ENUM - 状态(正常/停用/审核中)
created_at TIMESTAMP - 创建时间
updated_at TIMESTAMP - 更新时间

6.2.2 动物表 (animals)

字段名 类型 长度 必填 说明
id INT - 主键ID
farm_id INT - 养殖场ID
ear_tag VARCHAR 50 耳标号
breed VARCHAR 50 品种
gender ENUM - 性别
birth_date DATE - 出生日期
weight DECIMAL 8,2 体重(kg)
health_status ENUM - 健康状态
created_at TIMESTAMP - 创建时间
updated_at TIMESTAMP - 更新时间

6.2.3 设备表 (devices)

字段名 类型 长度 必填 说明
id INT - 主键ID
farm_id INT - 养殖场ID
device_id VARCHAR 100 设备编号
device_name VARCHAR 100 设备名称
device_type VARCHAR 50 设备类型
location VARCHAR 100 安装位置
status ENUM - 设备状态
last_online TIMESTAMP - 最后在线时间
created_at TIMESTAMP - 创建时间
updated_at TIMESTAMP - 更新时间

7. API设计规范

7.1 API设计原则

RESTful设计

  • 使用标准HTTP方法GET、POST、PUT、DELETE
  • 资源导向的URL设计
  • 统一的响应格式
  • 合理的HTTP状态码使用

版本控制:

  • URL路径版本控制/api/v1/
  • 向后兼容性保证
  • 版本废弃通知机制

安全性:

  • JWT Token认证
  • API访问频率限制
  • 请求参数验证
  • 响应数据脱敏

7.2 核心API接口

7.2.1 认证相关API

POST /api/v1/auth/login          # 用户登录
POST /api/v1/auth/logout         # 用户登出
POST /api/v1/auth/refresh        # 刷新Token
GET  /api/v1/auth/profile        # 获取用户信息
PUT  /api/v1/auth/profile        # 更新用户信息
POST /api/v1/auth/change-password # 修改密码

7.2.2 养殖场管理API

GET    /api/v1/farms             # 获取养殖场列表
GET    /api/v1/farms/{id}        # 获取养殖场详情
POST   /api/v1/farms             # 创建养殖场
PUT    /api/v1/farms/{id}        # 更新养殖场信息
DELETE /api/v1/farms/{id}        # 删除养殖场
GET    /api/v1/farms/{id}/stats  # 获取养殖场统计数据

7.2.3 动物管理API

GET    /api/v1/animals           # 获取动物列表
GET    /api/v1/animals/{id}      # 获取动物详情
POST   /api/v1/animals           # 添加动物
PUT    /api/v1/animals/{id}      # 更新动物信息
DELETE /api/v1/animals/{id}      # 删除动物记录
GET    /api/v1/animals/{id}/health # 获取健康记录
POST   /api/v1/animals/{id}/health # 添加健康记录

7.2.4 设备监控API

GET    /api/v1/devices           # 获取设备列表
GET    /api/v1/devices/{id}      # 获取设备详情
POST   /api/v1/devices           # 添加设备
PUT    /api/v1/devices/{id}      # 更新设备信息
DELETE /api/v1/devices/{id}      # 删除设备
GET    /api/v1/devices/{id}/data # 获取设备数据
POST   /api/v1/devices/{id}/control # 设备控制

7.3 响应格式规范

成功响应格式:

{
  "code": 200,
  "message": "success",
  "data": {
    // 具体数据内容
  },
  "timestamp": "2025-01-19T10:00:00Z"
}

错误响应格式:

{
  "code": 400,
  "message": "参数错误",
  "error": {
    "type": "VALIDATION_ERROR",
    "details": [
      {
        "field": "name",
        "message": "名称不能为空"
      }
    ]
  },
  "timestamp": "2025-01-19T10:00:00Z"
}

分页响应格式:

{
  "code": 200,
  "message": "success",
  "data": {
    "items": [],
    "pagination": {
      "page": 1,
      "pageSize": 20,
      "total": 100,
      "totalPages": 5
    }
  },
  "timestamp": "2025-01-19T10:00:00Z"
}

8. 用户界面设计要求

8.1 设计原则

用户体验原则:

  • 简洁直观的界面设计
  • 一致的交互体验
  • 快速响应的操作反馈
  • 友好的错误提示

可访问性原则:

  • 支持键盘导航
  • 合理的颜色对比度
  • 清晰的文字大小
  • 响应式设计适配

8.2 界面布局要求

管理后台布局:

  • 左侧导航菜单
  • 顶部用户信息栏
  • 主内容区域
  • 底部状态栏

数据大屏布局:

  • 全屏显示模式
  • 多区域数据展示
  • 实时数据更新
  • 自适应屏幕尺寸

小程序界面:

  • 底部Tab导航
  • 顶部标题栏
  • 主内容滚动区域
  • 浮动操作按钮

8.3 交互设计要求

操作反馈:

  • 加载状态提示
  • 操作成功/失败提示
  • 确认对话框
  • 进度条显示

数据展示:

  • 表格分页和排序
  • 图表交互和筛选
  • 搜索和过滤功能
  • 数据导出功能

9. 测试要求

9.1 测试策略

测试类型:

  • 单元测试覆盖率≥80%
  • 集成测试API接口测试
  • 系统测试:端到端功能测试
  • 性能测试:负载和压力测试
  • 安全测试:漏洞扫描和渗透测试

测试环境:

  • 开发环境:开发人员自测
  • 测试环境QA团队测试
  • 预生产环境:用户验收测试
  • 生产环境:监控和回归测试

9.2 测试用例要求

功能测试用例:

  • 正常流程测试
  • 异常流程测试
  • 边界值测试
  • 兼容性测试

性能测试用例:

  • 响应时间测试
  • 并发用户测试
  • 数据量测试
  • 资源使用测试

10. 部署和运维要求

10.1 部署架构

生产环境架构:

  • 负载均衡器Nginx
  • 应用服务器Node.js集群
  • 数据库MySQL主从架构
  • 缓存Redis集群
  • 文件存储:云存储服务

容器化部署:

  • Docker容器化
  • Docker Compose编排
  • Kubernetes集群管理可选

10.2 监控和运维

系统监控:

  • 服务器资源监控
  • 应用性能监控
  • 数据库性能监控
  • 网络状态监控

日志管理:

  • 应用日志收集
  • 错误日志告警
  • 访问日志分析
  • 审计日志记录

备份策略:

  • 数据库定时备份
  • 文件定时备份
  • 配置文件备份
  • 灾难恢复预案

11. 项目里程碑

11.1 开发计划

阶段 时间节点 交付物 负责人
需求确认 2025-01-25 需求规格说明书 产品经理
架构设计 2025-02-05 技术架构文档 架构师
数据库设计 2025-02-10 数据库设计文档 数据库工程师
后端开发 2025-03-15 后端API服务 后端团队
前端开发 2025-03-20 前端管理界面 前端团队
小程序开发 2025-03-25 三端小程序 小程序团队
集成测试 2025-04-05 测试报告 测试团队
用户验收 2025-04-15 验收报告 产品经理
上线部署 2025-04-20 生产环境 运维团队

11.2 风险管控

技术风险:

  • 第三方API服务不稳定
  • 数据库性能瓶颈
  • 前端兼容性问题
  • 小程序审核风险

业务风险:

  • 需求变更频繁
  • 用户接受度不高
  • 竞品冲击
  • 政策法规变化

项目风险:

  • 人员流动
  • 进度延期
  • 质量问题
  • 预算超支

应对措施:

  • 制定详细的风险应对预案
  • 建立风险监控机制
  • 定期进行风险评估
  • 及时调整项目计划

文档维护说明:

  • 本文档将根据项目进展定期更新
  • 所有变更需经过评审和批准
  • 文档版本控制采用Git管理
  • 相关干系人需及时同步文档变更

最后更新时间2025-01-19 文档版本v2.0 维护人员:产品经理