# 调度系统与盘点系统开发文档 ## 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小时