Files
nxxmdata/docs/requirements/PRD.md

741 lines
21 KiB
Markdown
Raw Normal View History

2025-09-19 23:46:15 +08:00
# 宁夏智慧养殖监管平台产品需求文档
## 版本历史
| 版本 | 日期 | 作者 | 描述 |
|------|------|------|------|
| 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 为决策提供数据支持
**验收标准:**
```gherkin
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 及时采取防控措施
**验收标准:**
```gherkin
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 确保监控系统正常运行
**验收标准:**
```gherkin
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 掌握整体监管情况
**验收标准:**
```gherkin
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 核心实体关系
```mermaid
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 响应格式规范
**成功响应格式:**
```json
{
"code": 200,
"message": "success",
"data": {
// 具体数据内容
},
"timestamp": "2025-01-19T10:00:00Z"
}
```
**错误响应格式:**
```json
{
"code": 400,
"message": "参数错误",
"error": {
"type": "VALIDATION_ERROR",
"details": [
{
"field": "name",
"message": "名称不能为空"
}
]
},
"timestamp": "2025-01-19T10:00:00Z"
}
```
**分页响应格式:**
```json
{
"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*
*维护人员:产品经理*