Files
smart_management_dev/调度系统与盘点系统开发文档.md

362 lines
12 KiB
Markdown
Raw Permalink Normal View History

# 调度系统与盘点系统开发文档
## 1. 项目概述
### 1.1 项目背景
调度系统是用于实现仓库自动化作业的核心系统通过与WCS仓库控制系统和AGV自动导引车系统的协作实现货物的自动化入库、出库、移库等操作。
盘点系统是用于实现仓库库存自动盘点的系统通过RFID设备自动采集货品信息并与系统库存数据进行比对以实现库存的精确管理。
### 1.2 项目目标
- 实现调度系统与WCS、AGV系统间的无缝对接
- 实现盘点系统与RFID设备的高效协作
- 提供标准化接口,确保各系统间稳定运行
- 实现出入库、盘点等核心业务流程
## 2. 调度系统
### 2.1 系统架构
调度系统作为中间层负责协调WMS、WCS、AGV三个系统间的任务流转和状态同步。
### 2.2 业务流程描述
#### 2.2.1 入库/上架流程
1. **任务创建**WMS系统创建入库任务
2. **任务分发**调度系统将任务分发给WCS系统
3. **设备执行**WCS系统控制立体库设备执行上架操作
4. **状态反馈**WCS系统实时反馈任务执行状态
5. **完成确认**:任务完成后更新状态
#### 2.2.2 出库/下架流程
1. **任务创建**WMS系统创建出库任务
2. **任务分发**调度系统将任务分发给WCS系统
3. **设备执行**WCS系统控制立体库设备执行下架操作
4. **AGV配合**根据需要调度AGV进行货物搬运
5. **状态反馈**WCS/AGV系统实时反馈任务执行状态
6. **完成确认**:任务完成后更新状态
#### 2.2.3 移库流程
1. **任务创建**WMS系统创建移库任务
2. **AGV调度**调度系统先调度AGV搬运货物
3. **WCS配合**根据需要调度WCS进行货物存放
4. **状态监控**:实时监控任务执行状态
5. **完成确认**:任务完成后更新状态
### 2.3 核心功能
#### 2.3.1 入库/上架功能
- 接收WMS系统的入库任务
- 控制立体库设备执行上架操作
- 实时反馈任务执行状态给WMS系统
#### 2.3.2 出库/下架功能
- 接收WMS系统的出库任务
- 控制立体库设备执行下架操作
- 实时反馈任务执行状态给WMS系统
#### 2.3.3 任务调度功能
- 任务队列管理
- 任务优先级调度
- 设备资源分配
### 2.4 业务流程图
```mermaid
graph TD
A[WMS创建任务] --> B{判断任务类型}
B -->|入库/上架| C[WMS调用WCS /API/Ruku接口]
B -->|出库/下架| D[WMS调用WCS /API/Chuku接口]
C --> E[WCS接收任务请求]
D --> E
E --> F[WCS验证任务参数]
F --> G{参数验证结果}
G -->|验证失败| H[WCS返回错误信息给WMS]
G -->|验证成功| I[WCS创建内部任务]
I --> J[WCS控制立体库设备执行任务]
J --> K[设备执行中...]
K --> L{任务执行结果}
L -->|执行成功| M[WCS更新任务状态]
L -->|执行失败| N[WCS记录异常并重试]
M --> O[WCS回调WMS状态更新]
N --> P{重试次数达到上限}
P -->|是| Q[WCS回调WMS失败状态]
P -->|否| J
O --> R[WMS接收状态更新]
Q --> R
H --> R
R --> S{是否需要AGV配合}
S -->|是| T[WMS调度AGV]
S -->|否| U[任务完成]
T --> U
```
### 2.5 接口规范
#### 2.5.1 入库接口(/API/Ruku
- **功能说明**WMS系统调用此接口创建入库/上架任务
- **请求方式**POST
- **我方服务地址**http://[IP_ADDR]:[PORT]/API/Ruku
- **第三方调用**WCS系统需实现此接口并接受调用
#### 2.5.2 出库接口(/API/Chuku
- **功能说明**WMS系统调用此接口创建出库/下架任务
- **请求方式**POST
- **我方服务地址**http://[IP_ADDR]:[PORT]/API/Chuku
- **第三方调用**WCS系统需实现此接口并接受调用
#### 2.5.3 任务状态回调接口
- **功能说明**WCS/AGV系统回调任务执行状态
- **请求方式**POST
- **我方服务地址**http://[IP_ADDR]:[PORT]/wisdom/wcs/callback
- **第三方调用**WCS/AGV系统需调用此接口反馈状态
### 2.6 对接流程
#### 2.6.1 WCS系统对接流程
1. **接口实现**WCS系统需实现入库/出库接口
2. **数据格式**:按约定格式接收任务数据
3. **状态反馈**:通过回调接口实时反馈任务状态
4. **异常处理**:处理任务执行中的异常情况
#### 2.6.2 AGV系统对接流程
1. **接口实现**AGV系统需实现搬运任务接口
2. **数据格式**:按约定格式接收任务数据
3. **状态反馈**:实时反馈任务执行状态
4. **任务协调**与WCS系统任务进行协调执行
### 2.7 配置信息
#### 2.7.1 WCS系统配置
```yaml
wcs:
job:
create-url: http://[WCS_IP_ADDR]:[WCS_PORT]/API/Ruku # WCS上架任务接口
chuku-url: http://[WCS_IP_ADDR]:[WCS_PORT]/API/Chuku # WCS出库任务接口
```
#### 2.7.2 AGV系统配置
```yaml
agv:
job:
create-url: http://[AGV_IP_ADDR]:[AGV_PORT]/api/job/create
```
## 3. 盘点系统
### 3.1 系统架构
盘点系统通过RFID设备采集数据与库存数据进行比对生成盘点报告。
### 3.2 业务流程描述
#### 3.2.1 盘点任务创建流程
1. **任务规划阶段**
- 确定盘点范围(指定仓库、库区、货位等)
- 确定盘点类型
- 确定盘点时间安排
- 分配盘点人员
2. **基础数据准备**
- 获取指定范围内的库存数据作为基准
- 验证库存数据完整性
- 生成任务清单
3. **任务创建阶段**
- 在系统中创建盘点任务记录
- 设置任务基本信息(名称、仓库、时间等)
- 绑定盘点设备
- 分配执行人员
4. **任务下发阶段**
- 将任务信息同步到相关设备或人员
- 准备盘点所需的辅助数据
- 启动任务状态监控
#### 3.2.2 盘点执行流程
1. **设备连接**RFID设备连接到系统
2. **任务获取**:设备获取盘点任务信息
3. **标签扫描**RFID设备在指定区域扫描标签
4. **数据传输**:将扫描数据实时传输回系统
5. **状态监控**:监控设备工作状态和任务进度
#### 3.2.3 数据处理流程
1. **数据收集**收集从RFID设备传回的标签数据
2. **数据验证**:验证数据完整性和准确性
3. **数据比对**:将采集数据与库存数据进行比对
4. **差异分析**:分析盘点差异
5. **结果生成**:生成盘点结果报告
### 3.3 核心功能
#### 3.3.1 盘点任务管理
- 创建盘点任务设置任务名称、仓库ID、场景ID、执行人、完成时间等
- 任务类型手持盘点0和自动盘点1
- 任务状态待执行0、已完成1、已超时2
#### 3.3.2 自动盘点功能
- 设备连接管理通过RFID设备IP和端口建立TCP连接
- 标签扫描启动RFID设备进行标签扫描
- 数据传输通过WebSocket将扫描到的EPC标签数据发送给前端
- 扫描控制:支持开始、停止、断开连接等操作
#### 3.3.3 数据匹配功能
- 将扫描数据与系统库存数据进行匹配
- 生成匹配结果(正常、未扫到、误扫)
- 统计盘点结果并生成图表
#### 3.3.4 报告管理功能
- 生成盘点统计图表
- 导出盘点报告
- 提供历史盘点记录查询
### 3.4 业务流程图
```mermaid
graph TD
A[创建盘点任务] --> B[RFID设备连接]
B --> C[下发盘点任务到设备]
C --> D[设备开始标签扫描]
D --> E[实时收集标签数据]
E --> F{是否完成扫描?}
F -->|是| G[停止扫描]
F -->|否| D
G --> H[数据比对分析]
H --> I[生成盘点结果]
I --> J[输出盘点报告]
J --> K[任务完成]
```
### 3.5 接口规范
#### 3.5.1 设备连接接口(/AutoInventory/connect
- **功能说明**建立RFID设备连接
- **请求方式**POST
- **我方服务地址**http://[IP_ADDR]:[PORT]/AutoInventory/connect
- **第三方调用**RFID设备需调用此接口建立连接
#### 3.5.2 开始盘点接口(/AutoInventory/scan
- **功能说明**启动RFID设备进行标签扫描
- **请求方式**GET
- **我方服务地址**http://[IP_ADDR]:[PORT]/AutoInventory/scan
- **第三方调用**RFID设备需调用此接口开始扫描
#### 3.5.3 停止盘点接口(/AutoInventory/stop
- **功能说明**停止RFID设备扫描
- **请求方式**GET
- **我方服务地址**http://[IP_ADDR]:[PORT]/AutoInventory/stop
- **第三方调用**RFID设备需调用此接口停止扫描
#### 3.5.4 断开连接接口(/AutoInventory/disconnect
- **功能说明**断开RFID设备连接
- **请求方式**GET
- **我方服务地址**http://[IP_ADDR]:[PORT]/AutoInventory/disconnect
- **第三方调用**RFID设备需调用此接口断开连接
#### 3.5.5 设备状态查询接口(/AutoInventory/status
- **功能说明**查询RFID设备连接状态
- **请求方式**GET
- **我方服务地址**http://[IP_ADDR]:[PORT]/AutoInventory/status
- **第三方调用**RFID设备需调用此接口查询状态
#### 3.5.6 开始匹配接口(/AutoInventory/match
- **功能说明**:将扫描数据与系统库存数据进行匹配
- **请求方式**POST
- **我方服务地址**http://[IP_ADDR]:[PORT]/AutoInventory/match
- **第三方调用**:系统内部调用
#### 3.5.7 盘点任务管理接口(/Inventory/task
- **功能说明**:管理盘点任务的增删改查
- **请求方式**POST/GET/PUT/DELETE
- **我方服务地址**http://[IP_ADDR]:[PORT]/Inventory/task
- **第三方调用**:系统内部调用
### 3.6 对接流程
#### 3.6.1 RFID设备对接流程
1. **连接建立**设备通过TCP/IP连接到我方系统
2. **设备注册**设备向我方系统注册获取设备ID
3. **任务获取**:设备从我方系统获取当前盘点任务
4. **数据采集**:设备开始扫描,实时传输标签数据
5. **状态同步**:设备定期同步工作状态
6. **任务完成**:设备完成任务后报告完成状态
#### 3.6.2 WebSocket通信
- **连接地址**ws://[IP_ADDR]:[PORT]/websocket
- **数据格式**JSON格式的标签数据
- **心跳机制**:定期发送心跳包保持连接
### 3.7 配置信息
#### 3.7.1 RFID设备配置
```yaml
rfid:
device:
conn-id: [RFID_IP_ADDR]:[RFID_PORT]
```
## 4. 部署说明
### 4.1 环境要求
- Java 8 或更高版本
- Maven 3.6.0 或更高版本
- MySQL 5.7 或更高版本
- Redis 5.0 或更高版本
### 4.2 部署步骤
1. 配置数据库连接信息
2. 配置第三方系统接口地址
3. 启动应用服务
4. 验证接口连通性
### 4.3 配置文件
- application.yml主配置文件
- application-druid.yml数据库配置文件
## 5. 我方开发工作汇总
### 5.1 调度系统开发工作
#### 5.1.1 接口开发
- **入库/上架接口开发**实现与WCS系统的入库任务下发预计16小时
- **出库/下架接口开发**实现与WCS系统的出库任务下发预计16小时
- **任务状态回调接口开发**实现任务状态反馈机制预计24小时
#### 5.1.2 业务逻辑开发
- **货物上架逻辑实现**实现完整的货物上架业务流程预计32小时
- **货物下架逻辑实现**实现完整的货物下架业务流程预计32小时
- **任务调度与排队机制**实现多任务排队调度算法预计24小时
#### 5.1.3 系统集成开发
- **与WMS系统接口对接**确保调度系统与WMS系统稳定通信预计20小时
- **与AGV系统协调机制**实现调度系统与AGV系统的任务协调预计16小时
**调度系统总计180小时**
### 5.2 盘点系统开发工作
#### 5.2.1 设备接口开发
- **RFID设备连接接口开发**开发RFID设备连接、断开、状态查询接口预计24小时
- **盘点控制接口开发**开发开始盘点、停止盘点等控制接口预计16小时
#### 5.2.2 数据处理开发
- **扫描数据处理开发**处理RFID设备扫描的标签数据预计28小时
- **数据匹配算法开发**开发扫描数据与库存数据的匹配算法预计32小时
#### 5.2.3 任务管理开发
- **盘点任务管理开发**开发盘点任务的增删改查功能预计24小时
- **报告生成开发**开发盘点报告生成和统计功能预计20小时
#### 5.2.4 系统集成开发
- **WebSocket通信开发**实现实时数据传输功能预计20小时
**盘点系统总计164小时**
### 5.3 项目总计
- **调度系统开发**180小时
- **盘点系统开发**164小时
- **项目总计**344小时