741 lines
21 KiB
Markdown
741 lines
21 KiB
Markdown
|
|
# 宁夏智慧养殖监管平台产品需求文档
|
|||
|
|
|
|||
|
|
## 版本历史
|
|||
|
|
|
|||
|
|
| 版本 | 日期 | 作者 | 描述 |
|
|||
|
|
|------|------|------|------|
|
|||
|
|
| 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万+历史数据查询
|
|||
|
|
- 峰值QPS:1000+
|
|||
|
|
|
|||
|
|
**吞吐量要求:**
|
|||
|
|
- 数据处理能力: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 部署环境要求
|
|||
|
|
|
|||
|
|
**硬件要求:**
|
|||
|
|
- CPU:8核心以上
|
|||
|
|
- 内存: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*
|
|||
|
|
*维护人员:产品经理*
|