# CPTE WMS 仓储管理系统接口文档 **版本**: V3.8.3 **编写单位**: 中邮科技股份有限公司 **文档日期**: 2026-03-19 --- ## 目录 1. [文档说明](#1-文档说明) 2. [认证方式](#2-认证方式) 3. [通用响应格式](#3-通用响应格式) 4. [系统管理模块](#4-系统管理模块) 5. [WMS基础数据模块](#5-wms基础数据模块) 6. [WMS入库管理模块](#6-wms入库管理模块) 7. [WMS出库管理模块](#7-wms出库管理模块) 8. [WMS库存管理模块](#8-wms库存管理模块) 9. [WMS盘点管理模块](#9-wms盘点管理模块) 10. [AGV任务管理模块](#10-agv任务管理模块) 11. [设备对接接口](#11-设备对接接口) 12. [定时任务管理模块](#12-定时任务管理模块) 13. [消息通知模块](#13-消息通知模块) 14. [OpenAPI开放接口](#14-openapi开放接口) --- ## 1. 文档说明 ### 1.1 接口基础地址 | 环境 | 地址 | |------|------| | 开发环境 | http://localhost:8080/jeecg-boot | | 测试环境 | http://test.cpte.com/jeecg-boot | | 生产环境 | https://wms.cpte.com/jeecg-boot | ### 1.2 请求方式 - GET: 查询操作 - POST: 新增操作 - PUT: 更新操作 - DELETE: 删除操作 ### 1.3 字符编码 所有请求和响应均采用 UTF-8 编码。 --- ## 2. 认证方式 ### 2.1 Token认证 系统采用JWT Token认证方式,所有业务接口(除登录接口外)均需要在请求头中携带Token。 **请求头参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | X-Access-Token | String | 是 | 用户登录后获取的Token | ### 2.2 登录接口 **接口地址**: `POST /sys/login` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | username | String | 是 | 用户名 | | password | String | 是 | 密码 | | captcha | String | 否 | 验证码 | | checkKey | String | 否 | 验证码Key | **响应示例**: ```json { "success": true, "message": "登录成功", "code": 200, "result": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "userInfo": { "id": "1", "username": "admin", "realname": "管理员" } }, "timestamp": 1710000000000 } ``` ### 2.3 退出登录 **接口地址**: `POST /sys/logout` **请求头**: 需要携带Token **响应示例**: ```json { "success": true, "message": "退出登录成功", "code": 200 } ``` --- ## 3. 通用响应格式 ### 3.1 标准响应结构 | 字段名 | 类型 | 说明 | |--------|------|------| | success | Boolean | 请求是否成功 | | message | String | 响应消息 | | code | Integer | 响应状态码 | | result | Object | 响应数据 | | timestamp | Long | 时间戳 | ### 3.2 分页响应结构 | 字段名 | 类型 | 说明 | |--------|------|------| | records | Array | 数据列表 | | total | Long | 总记录数 | | size | Long | 每页大小 | | current | Long | 当前页码 | | pages | Long | 总页数 | ### 3.3 状态码说明 | 状态码 | 说明 | |--------|------| | 200 | 操作成功 | | 400 | 请求参数错误 | | 401 | 未授权/Token失效 | | 403 | 无权限访问 | | 404 | 资源不存在 | | 500 | 服务器内部错误 | --- ## 4. 系统管理模块 ### 4.1 用户管理 #### 4.1.1 用户列表查询 **接口地址**: `GET /sys/user/list` **权限标识**: `system:user:list` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | pageNo | Integer | 否 | 页码,默认1 | | pageSize | Integer | 否 | 每页条数,默认10 | | username | String | 否 | 用户名(模糊查询) | | realname | String | 否 | 真实姓名(模糊查询) | | phone | String | 否 | 手机号 | | status | Integer | 否 | 状态(1:正常 2:冻结) | **响应示例**: ```json { "success": true, "result": { "records": [ { "id": "1", "username": "admin", "realname": "管理员", "phone": "13800138000", "email": "admin@cpte.com", "status": 1, "createTime": "2025-01-01 00:00:00" } ], "total": 100, "size": 10, "current": 1 } } ``` #### 4.1.2 添加用户 **接口地址**: `POST /sys/user/add` **权限标识**: `system:user:add` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | username | String | 是 | 用户名 | | realname | String | 是 | 真实姓名 | | password | String | 是 | 密码 | | phone | String | 否 | 手机号 | | email | String | 否 | 邮箱 | | selectedroles | String | 否 | 角色ID(多个逗号分隔) | | selecteddeparts | String | 否 | 部门ID(多个逗号分隔) | #### 4.1.3 编辑用户 **接口地址**: `PUT /sys/user/edit` **权限标识**: `system:user:edit` **请求参数**: 同添加用户,需额外传递id字段 #### 4.1.4 删除用户 **接口地址**: `DELETE /sys/user/delete` **权限标识**: `system:user:delete` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | id | String | 是 | 用户ID | #### 4.1.5 批量删除用户 **接口地址**: `DELETE /sys/user/deleteBatch` **权限标识**: `system:user:deleteBatch` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | ids | String | 是 | 用户ID(多个逗号分隔) | #### 4.1.6 重置密码 **接口地址**: `PUT /sys/user/changePassword` **权限标识**: `system:user:changepwd` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | id | String | 是 | 用户ID | | password | String | 是 | 新密码 | | confirmPassword | String | 是 | 确认密码 | #### 4.1.7 冻结/解冻用户 **接口地址**: `PUT /sys/user/frozenBatch` **权限标识**: `system:user:frozen` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | ids | String | 是 | 用户ID(多个逗号分隔) | | status | Integer | 是 | 状态(1:解冻 2:冻结) | --- ### 4.2 角色管理 #### 4.2.1 角色列表查询 **接口地址**: `GET /sys/role/list` **权限标识**: `system:role:list` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | pageNo | Integer | 否 | 页码,默认1 | | pageSize | Integer | 否 | 每页条数,默认10 | | roleName | String | 否 | 角色名称 | | roleCode | String | 否 | 角色编码 | #### 4.2.2 添加角色 **接口地址**: `POST /sys/role/add` **权限标识**: `system:role:add` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | roleName | String | 是 | 角色名称 | | roleCode | String | 是 | 角色编码 | | description | String | 否 | 描述 | #### 4.2.3 编辑角色 **接口地址**: `PUT /sys/role/edit` **权限标识**: `system:role:edit` #### 4.2.4 删除角色 **接口地址**: `DELETE /sys/role/delete` **权限标识**: `system:role:delete` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | id | String | 是 | 角色ID | #### 4.2.5 查询角色权限树 **接口地址**: `GET /sys/role/queryTreeList` **响应示例**: ```json { "success": true, "result": { "treeList": [ { "key": "1", "title": "系统管理", "children": [ { "key": "2", "title": "用户管理" } ] } ], "ids": ["1", "2"] } } ``` #### 4.2.6 保存角色权限 **接口地址**: `POST /sys/permission/saveRolePermission` **权限标识**: `system:permission:saveRole` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | roleId | String | 是 | 角色ID | | permissionIds | String | 是 | 权限ID(多个逗号分隔) | | lastpermissionIds | String | 否 | 上次权限ID(用于比对) | --- ### 4.3 菜单权限管理 #### 4.3.1 菜单列表查询 **接口地址**: `GET /sys/permission/list` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | name | String | 否 | 菜单名称(模糊查询) | #### 4.3.2 添加菜单 **接口地址**: `POST /sys/permission/add` **权限标识**: `system:permission:add` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | name | String | 是 | 菜单名称 | | url | String | 否 | 菜单路径 | | component | String | 否 | 前端组件路径 | | parentId | String | 否 | 父菜单ID | | menuType | Integer | 是 | 类型(0:一级菜单 1:子菜单 2:按钮) | | perms | String | 否 | 权限标识 | | sortNo | Double | 否 | 排序号 | | icon | String | 否 | 图标 | #### 4.3.3 编辑菜单 **接口地址**: `PUT /sys/permission/edit` **权限标识**: `system:permission:edit` #### 4.3.4 删除菜单 **接口地址**: `DELETE /sys/permission/delete` **权限标识**: `system:permission:delete` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | id | String | 是 | 菜单ID | #### 4.3.5 获取用户权限 **接口地址**: `GET /sys/permission/getUserPermissionByToken` **响应示例**: ```json { "success": true, "result": { "menu": [], "auth": [], "codeList": ["system:user:list", "system:user:add"], "allAuth": [], "sysSafeMode": false } } ``` --- ### 4.4 部门管理 #### 4.4.1 部门树查询 **接口地址**: `GET /sys/sysDepart/queryTreeList` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | ids | String | 否 | 部门ID(多个逗号分隔) | **响应示例**: ```json { "success": true, "result": [ { "id": "1", "parentId": "", "departName": "总公司", "orgCode": "A01", "children": [ { "id": "2", "parentId": "1", "departName": "研发部", "orgCode": "A01A01" } ] } ] } ``` #### 4.4.2 添加部门 **接口地址**: `POST /sys/sysDepart/add` **权限标识**: `system:depart:add` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | departName | String | 是 | 部门名称 | | parentId | String | 否 | 父部门ID | | orgCode | String | 是 | 机构编码 | | orgCategory | String | 否 | 机构类型 | | mobile | String | 否 | 手机号 | | fax | String | 否 | 传真 | | address | String | 否 | 地址 | #### 4.4.3 编辑部门 **接口地址**: `PUT /sys/sysDepart/edit` **权限标识**: `system:depart:edit` #### 4.4.4 删除部门 **接口地址**: `DELETE /sys/sysDepart/delete` **权限标识**: `system:depart:delete` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | id | String | 是 | 部门ID | #### 4.4.5 根据部门获取用户 **接口地址**: `GET /sys/sysDepart/getUsersByDepartId` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | id | String | 是 | 部门ID | --- ### 4.5 数据字典管理 #### 4.5.1 字典列表查询 **接口地址**: `GET /sys/dict/list` **权限标识**: `system:dict:list` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | pageNo | Integer | 否 | 页码 | | pageSize | Integer | 否 | 每页条数 | | dictName | String | 否 | 字典名称 | | dictCode | String | 否 | 字典编码 | #### 4.5.2 根据字典编码获取字典项 **接口地址**: `GET /sys/dict/getDictItems` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | dictCode | String | 是 | 字典编码 | **响应示例**: ```json { "success": true, "result": [ { "value": "1", "text": "正常", "title": "正常" }, { "value": "2", "text": "冻结", "title": "冻结" } ] } ``` #### 4.5.3 添加字典 **接口地址**: `POST /sys/dict/add` **权限标识**: `system:dict:add` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | dictName | String | 是 | 字典名称 | | dictCode | String | 是 | 字典编码 | | description | String | 否 | 描述 | --- ### 4.6 日志管理 #### 4.6.1 操作日志列表 **接口地址**: `GET /sys/log/list` **权限标识**: `system:log:list` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | pageNo | Integer | 否 | 页码 | | pageSize | Integer | 否 | 每页条数 | | keyWord | String | 否 | 搜索关键词 | | logType | Integer | 否 | 日志类型(1:登录日志 2:操作日志) | | createTime_begin | String | 否 | 开始时间 | | createTime_end | String | 否 | 结束时间 | --- ### 4.7 租户管理 #### 4.7.1 租户列表查询 **接口地址**: `GET /sys/tenant/list` **权限标识**: `system:tenant:list` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | pageNo | Integer | 否 | 页码 | | pageSize | Integer | 否 | 每页条数 | | name | String | 否 | 租户名称 | --- ## 5. WMS基础数据模块 ### 5.1 物料管理 #### 5.1.1 物料列表查询 **接口地址**: `GET /base/item/list` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | pageNo | Integer | 否 | 页码,默认1 | | pageSize | Integer | 否 | 每页条数,默认10 | | keyword | String | 否 | 关键词(物料编码/名称) | | itemCode | String | 否 | 物料编码 | **响应示例**: ```json { "success": true, "result": { "records": [ { "id": 1, "itemCode": "ITEM001", "itemName": "物料A", "itemType": "1", "unit": "个", "spec": "100*100", "status": 1, "createTime": "2025-01-01 00:00:00" } ], "total": 100 } } ``` #### 5.1.2 添加物料 **接口地址**: `POST /base/item/add` **权限标识**: `base:base_item:add` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | itemCode | String | 是 | 物料编码 | | itemName | String | 是 | 物料名称 | | itemType | String | 否 | 物料类型 | | unit | String | 否 | 单位 | | spec | String | 否 | 规格 | | status | Integer | 否 | 状态(1:启用 0:禁用) | #### 5.1.3 编辑物料 **接口地址**: `PUT /base/item/edit` **权限标识**: `base:base_item:edit` #### 5.1.4 删除物料 **接口地址**: `DELETE /base/item/delete` **权限标识**: `base:base_item:delete` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | id | Long | 是 | 物料ID | #### 5.1.5 批量删除物料 **接口地址**: `DELETE /base/item/deleteBatch` **权限标识**: `base:base_item:deleteBatch` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | ids | String | 是 | 物料ID(多个逗号分隔) | #### 5.1.6 导出物料Excel **接口地址**: `GET /base/item/exportXls` **权限标识**: `base:base_item:exportXls` #### 5.1.7 导入物料Excel **接口地址**: `POST /base/item/importExcel` **权限标识**: `base:base_item:importExcel` **请求参数**: multipart/form-data,file字段为Excel文件 --- ### 5.2 库区管理 #### 5.2.1 库区列表查询 **接口地址**: `GET /base/area/list` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | pageNo | Integer | 否 | 页码,默认1 | | pageSize | Integer | 否 | 每页条数,默认10 | | keyword | String | 否 | 关键词(库区编码/名称) | | areaCode | String | 否 | 库区编码(多个逗号分隔) | **响应示例**: ```json { "success": true, "result": { "records": [ { "id": 1, "areaCode": "A01", "areaName": "成品存储区", "areaType": "1", "status": 1, "createTime": "2025-01-01 00:00:00" } ], "total": 50 } } ``` #### 5.2.2 添加库区 **接口地址**: `POST /base/area/add` **权限标识**: `base:base_area:add` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | areaCode | String | 是 | 库区编码 | | areaName | String | 是 | 库区名称 | | areaType | String | 否 | 库区类型 | | status | Integer | 否 | 状态(1:启用 0:禁用) | #### 5.2.3 编辑库区 **接口地址**: `PUT /base/area/edit` **权限标识**: `base:base_area:edit` #### 5.2.4 删除库区 **接口地址**: `DELETE /base/area/delete` **权限标识**: `base:base_area:delete` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | id | Long | 是 | 库区ID | --- ### 5.3 库位管理 #### 5.3.1 库位列表查询 **接口地址**: `GET /base/point/list` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | pageNo | Integer | 否 | 页码,默认1 | | pageSize | Integer | 否 | 每页条数,默认10 | | keyword | String | 否 | 关键词(库位编码) | | areaCode | String | 否 | 库区编码(多个逗号分隔) | **响应示例**: ```json { "success": true, "result": { "records": [ { "id": 1, "pointCode": "A01-01-01", "areaId": 1, "areaId_dictText": "成品存储区", "pointType": "1", "status": 1, "createTime": "2025-01-01 00:00:00" } ], "total": 500 } } ``` #### 5.3.2 添加库位 **接口地址**: `POST /base/point/add` **权限标识**: `base:base_point:add` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | pointCode | String | 是 | 库位编码 | | areaId | Long | 是 | 库区ID | | pointType | String | 否 | 库位类型 | | status | Integer | 否 | 状态 | #### 5.3.3 编辑库位 **接口地址**: `PUT /base/point/edit` **权限标识**: `base:base_point:edit` #### 5.3.4 删除库位 **接口地址**: `DELETE /base/point/delete` **权限标识**: `base:base_point:delete` #### 5.3.5 查询出库工作站 **接口地址**: `GET /base/point/queryOutWorkStation` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | areaId_dictText | String | 是 | 库区名称 | **响应示例**: ```json { "success": true, "result": ["WS001", "WS002", "WS003"] } ``` --- ### 5.4 容器管理 #### 5.4.1 容器列表查询 **接口地址**: `GET /base/stock/list` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | pageNo | Integer | 否 | 页码,默认1 | | pageSize | Integer | 否 | 每页条数,默认10 | | keyword | String | 否 | 关键词(容器编码) | | izScan | Boolean | 否 | 是否扫描(查询空闲容器) | **响应示例**: ```json { "success": true, "result": { "records": [ { "id": 1, "stockCode": "TP001", "stockType": "1", "status": 1, "createTime": "2025-01-01 00:00:00" } ], "total": 200 } } ``` #### 5.4.2 添加容器 **接口地址**: `POST /base/stock/add` **权限标识**: `base:base_stock:add` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | stockCode | String | 是 | 容器编码 | | stockType | String | 否 | 容器类型 | | status | Integer | 否 | 状态 | #### 5.4.3 编辑容器 **接口地址**: `PUT /base/stock/edit` **权限标识**: `base:base_stock:edit` #### 5.4.4 删除容器 **接口地址**: `DELETE /base/stock/delete` **权限标识**: `base:base_stock:delete` --- ## 6. WMS入库管理模块 ### 6.1 入库单管理(ASN) #### 6.1.1 入库单列表查询 **接口地址**: `GET /receive/asn/list` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | pageNo | Integer | 否 | 页码,默认1 | | pageSize | Integer | 否 | 每页条数,默认10 | | asnNo | String | 否 | 入库单号 | | status | Integer | 否 | 状态 | | createTime_begin | String | 否 | 创建开始时间 | | createTime_end | String | 否 | 创建结束时间 | **响应示例**: ```json { "success": true, "result": { "records": [ { "id": 1, "asnNo": "ASN202503190001", "asnType": "1", "status": 1, "totalQty": 100, "receivedQty": 0, "createTime": "2025-03-19 10:00:00" } ], "total": 50 } } ``` #### 6.1.2 添加入库单 **接口地址**: `POST /receive/asn/add` **权限标识**: `receive:data_asn:add` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | asnNo | String | 是 | 入库单号 | | asnType | String | 是 | 入库类型 | | detailList | Array | 否 | 入库明细列表 | **明细参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | itemCode | String | 是 | 物料编码 | | itemName | String | 否 | 物料名称 | | qty | BigDecimal | 是 | 数量 | | unit | String | 否 | 单位 | #### 6.1.3 编辑入库单 **接口地址**: `PUT /receive/asn/edit` **权限标识**: `receive:data_asn:edit` #### 6.1.4 删除入库单 **接口地址**: `DELETE /receive/asn/delete` **权限标识**: `receive:data_asn:delete` #### 6.1.5 入库单明细查询 **接口地址**: `GET /receive/asn/queryDetailByMainId` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | id | Long | 是 | 入库单ID | --- ## 7. WMS出库管理模块 ### 7.1 拣货任务管理 #### 7.1.1 拣货任务列表查询 **接口地址**: `GET /shipping/pick/list` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | pageNo | Integer | 否 | 页码 | | pageSize | Integer | 否 | 每页条数 | | taskNo | String | 否 | 任务号 | | status | Integer | 否 | 状态 | **响应示例**: ```json { "success": true, "result": { "records": [ { "id": 1, "taskNo": "PICK202503190001", "taskType": "1", "status": 1, "qty": 10, "pickedQty": 0, "createTime": "2025-03-19 10:00:00" } ], "total": 30 } } ``` #### 7.1.2 添加拣货任务 **接口地址**: `POST /shipping/pick/add` **权限标识**: `shipping:data_pick:add` #### 7.1.3 编辑拣货任务 **接口地址**: `PUT /shipping/pick/edit` **权限标识**: `shipping:data_pick:edit` #### 7.1.4 删除拣货任务 **接口地址**: `DELETE /shipping/pick/delete` **权限标识**: `shipping:data_pick:delete` --- ## 8. WMS库存管理模块 ### 8.1 库存查询 #### 8.1.1 库存列表查询 **接口地址**: `GET /inventory/inventory/list` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | pageNo | Integer | 否 | 页码 | | pageSize | Integer | 否 | 每页条数 | | itemCode | String | 否 | 物料编码 | | pointCode | String | 否 | 库位编码 | | stockCode | String | 否 | 容器编码 | **响应示例**: ```json { "success": true, "result": { "records": [ { "id": 1, "itemCode": "ITEM001", "itemName": "物料A", "pointCode": "A01-01-01", "stockCode": "TP001", "qty": 100, "createTime": "2025-03-19 10:00:00" } ], "total": 1000 } } ``` ### 8.2 库存流水查询 #### 8.2.1 库存流水列表 **接口地址**: `GET /inventoryLog/list` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | pageNo | Integer | 否 | 页码 | | pageSize | Integer | 否 | 每页条数 | | itemCode | String | 否 | 物料编码 | | bizType | String | 否 | 业务类型 | | createTime_begin | String | 否 | 开始时间 | | createTime_end | String | 否 | 结束时间 | --- ## 9. WMS盘点管理模块 ### 9.1 盘点计划管理 #### 9.1.1 盘点计划列表查询 **接口地址**: `GET /count/countPlan/list` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | pageNo | Integer | 否 | 页码 | | pageSize | Integer | 否 | 每页条数 | | planNo | String | 否 | 盘点单号 | | status | Integer | 否 | 状态 | **响应示例**: ```json { "success": true, "result": { "records": [ { "id": 1, "planNo": "COUNT202503190001", "planName": "月度盘点", "status": 1, "createTime": "2025-03-19 10:00:00" } ], "total": 20 } } ``` #### 9.1.2 添加盘点计划 **接口地址**: `POST /count/countPlan/add` **权限标识**: `count:data_count_plan:add` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | planNo | String | 是 | 盘点单号 | | planName | String | 是 | 盘点名称 | | countDetailList | Array | 是 | 盘点明细列表 | **明细参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | itemId | Long | 是 | 物料ID | | pointId | Long | 是 | 库位ID | | stockId | Long | 是 | 容器ID | | systemQty | BigDecimal | 是 | 系统数量 | #### 9.1.3 编辑盘点计划 **接口地址**: `PUT /count/countPlan/edit` **权限标识**: `count:data_count_plan:edit` #### 9.1.4 删除盘点计划 **接口地址**: `DELETE /count/countPlan/delete` **权限标识**: `count:data_count_plan:delete` #### 9.1.5 盘点任务下发 **接口地址**: `GET /count/countPlan/countIssueTask` **权限标识**: `count:data_count_plan:countIssueTask` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | workStations | List | 是 | 工作站列表 | --- ## 10. AGV任务管理模块 ### 10.1 AGV任务管理 #### 10.1.1 AGV任务列表查询 **接口地址**: `GET /agvTask/list` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | pageNo | Integer | 否 | 页码 | | pageSize | Integer | 否 | 每页条数 | | id | Long | 否 | 任务号 | | status | Integer | 否 | 状态 | **响应示例**: ```json { "success": true, "result": { "records": [ { "id": 1, "tesId": "TES001", "conNo": "CON001", "type": "1", "startCode": "A01-01-01", "endCode": "WS001", "status": 1, "createTime": "2025-03-19 10:00:00", "startTime": null, "endTime": null } ], "total": 100 } } ``` #### 10.1.2 添加AGV任务 **接口地址**: `POST /agvTask/add` **权限标识**: `agvTask:data_agv_task:add` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | conNo | String | 否 | 柜号 | | type | String | 是 | 业务类型 | | startCode | String | 是 | 起点编码 | | endCode | String | 是 | 终点编码 | | carrierCode | String | 否 | 容器编码 | #### 10.1.3 编辑AGV任务 **接口地址**: `PUT /agvTask/edit` **权限标识**: `agvTask:data_agv_task:edit` #### 10.1.4 删除AGV任务 **接口地址**: `DELETE /agvTask/delete` **权限标识**: `agvTask:data_agv_task:delete` #### 10.1.5 导出AGV任务Excel **接口地址**: `GET /agvTask/exportXls` **权限标识**: `agvTask:data_agv_task:exportXls` **导出字段**: | 字段名 | 说明 | |--------|------| | TES任务号 | TES系统任务号 | | 任务号 | 系统内部任务号 | | 柜号 | 柜号 | | 物料 | 物料编码 | | 容器 | 容器编码 | | 业务类型 | 入库/出库/移库等 | | 起点 | 起点库位 | | 终点 | 终点库位 | | 创建时间 | 任务创建时间 | | 下发时间 | 任务下发时间 | | 完成时间 | 任务完成时间 | | 完成耗时 | 任务完成耗时(秒) | | 顶升时间 | AGV顶升时间 | | 顶升耗时 | AGV顶升耗时(秒) | --- ## 11. 设备对接接口 ### 11.1 海康AGV接口 #### 11.1.1 任务下发 **接口地址**: `POST /api/robot/controller/task/submit` **认证方式**: 无需认证(IgnoreAuth) **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | robotTaskCode | String | 是 | 机器人任务编码 | | taskType | String | 是 | 任务类型 | | podCode | String | 否 | 货架编码 | | podDir | Integer | 否 | 货架方向 | | startCode | String | 是 | 起点编码 | | endCode | String | 是 | 终点编码 | **响应示例**: ```json { "code": 0, "message": "success", "data": { "robotTaskCode": "TASK001" } } ``` #### 11.1.2 任务上报 **接口地址**: `POST /api/robot/reporter/task` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | robotTaskCode | String | 是 | 机器人任务编码 | | taskStatus | Integer | 是 | 任务状态 | | taskTime | Long | 否 | 任务时间 | | errorCode | String | 否 | 错误码 | | errorMsg | String | 否 | 错误信息 | #### 11.1.3 任务取消 **接口地址**: `POST /api/robot/cancelAgv` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | robotTaskCode | String | 是 | 机器人任务编码 | #### 11.1.4 重送任务 **接口地址**: `POST /api/robot/resendAgv` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | id | Long | 是 | AGV任务ID | --- ### 11.2 输送线接口 #### 11.2.1 扫描托盘 **接口地址**: `POST /conveyorLine/scanTray` **认证方式**: 无需认证(IgnoreAuth) **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | content | Object | 是 | 扫描内容 | | └─ signal | Object | 是 | 信号对象 | |     └─ trayCode | String | 是 | 托盘编码 | |     └─ errorReason | Array | 否 | 错误原因列表 | **响应示例**: ```json { "code": 0, "message": "success" } ``` --- ### 11.3 TES AGV接口 #### 11.3.1 TES任务接口 **接口地址**: `POST /api/tesAgv/*` **认证方式**: 无需认证 **说明**: 用于对接TES系统的AGV调度接口 --- ## 12. 定时任务管理模块 ### 12.1 定时任务管理 #### 12.1.1 定时任务列表查询 **接口地址**: `GET /sys/quartzJob/list` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | pageNo | Integer | 否 | 页码 | | pageSize | Integer | 否 | 每页条数 | | jobClassName | String | 否 | 任务类名 | | status | Integer | 否 | 状态 | **响应示例**: ```json { "success": true, "result": { "records": [ { "id": "1", "jobClassName": "org.jeecg.modules.quartz.job.SyncDataJob", "cronExpression": "0 0 2 * * ?", "parameter": "", "description": "数据同步任务", "status": 0, "createTime": "2025-01-01 00:00:00" } ], "total": 10 } } ``` #### 12.1.2 添加定时任务 **接口地址**: `POST /sys/quartzJob/add` **权限标识**: `system:quartzJob:add` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | jobClassName | String | 是 | 任务类名(完整类路径) | | cronExpression | String | 是 | Cron表达式 | | parameter | String | 否 | 参数 | | description | String | 否 | 描述 | #### 12.1.3 编辑定时任务 **接口地址**: `PUT /sys/quartzJob/edit` **权限标识**: `system:quartzJob:edit` #### 12.1.4 删除定时任务 **接口地址**: `DELETE /sys/quartzJob/delete` **权限标识**: `system:quartzJob:delete` #### 12.1.5 暂停定时任务 **接口地址**: `GET /sys/quartzJob/pause` **权限标识**: `system:quartzJob:pause` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | id | String | 是 | 任务ID | #### 12.1.6 启动定时任务 **接口地址**: `GET /sys/quartzJob/resume` **权限标识**: `system:quartzJob:resume` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | id | String | 是 | 任务ID | #### 12.1.7 立即执行 **接口地址**: `GET /sys/quartzJob/execute` **权限标识**: `system:quartzJob:execute` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | id | String | 是 | 任务ID | --- ## 13. 消息通知模块 ### 13.1 系统公告管理 #### 13.1.1 公告列表查询 **接口地址**: `GET /sys/annountCement/list` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | pageNo | Integer | 否 | 页码 | | pageSize | Integer | 否 | 每页条数 | | titile | String | 否 | 标题 | | sendStatus | String | 否 | 发布状态 | **响应示例**: ```json { "success": true, "result": { "records": [ { "id": "1", "titile": "系统维护通知", "msgContent": "系统将于今晚进行维护...", "sendStatus": "1", "sendTime": "2025-03-19 10:00:00", "sender": "admin" } ], "total": 20 } } ``` #### 13.1.2 添加公告 **接口地址**: `POST /sys/annountCement/add` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | titile | String | 是 | 标题 | | msgContent | String | 是 | 内容 | | msgType | String | 是 | 消息类型(ALL:全部 USER:指定用户) | | userIds | String | 否 | 用户ID(msgType=USER时必填) | #### 13.1.3 编辑公告 **接口地址**: `PUT /sys/annountCement/edit` #### 13.1.4 删除公告 **接口地址**: `DELETE /sys/annountCement/delete` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | id | String | 是 | 公告ID | #### 13.1.5 发布公告 **接口地址**: `GET /sys/annountCement/doReleaseData` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | id | String | 是 | 公告ID | #### 13.1.6 撤销公告 **接口地址**: `GET /sys/annountCement/doReovkeData` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | id | String | 是 | 公告ID | ### 13.2 消息通知 #### 13.2.1 获取用户消息列表 **接口地址**: `GET /sys/annountCement/listByUser` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | pageSize | Integer | 否 | 每页条数,默认5 | **响应示例**: ```json { "success": true, "result": { "anntMsgList": [], "anntMsgTotal": 0, "sysMsgList": [], "sysMsgTotal": 0 } } ``` #### 13.2.2 获取未读消息数量 **接口地址**: `GET /sys/annountCement/getUnreadMessageCount` **响应示例**: ```json { "success": true, "result": { "systemCount": 5, "flowCount": 2, "fileCount": 1, "planCount": 0, "count": 8 } } ``` #### 13.2.3 清除所有未读消息 **接口地址**: `POST /sys/annountCement/clearAllUnReadMessage` --- ## 14. OpenAPI开放接口 ### 14.1 OpenAPI管理 #### 14.1.1 接口列表查询 **接口地址**: `GET /openapi/list` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | pageNo | Integer | 否 | 页码 | | pageSize | Integer | 否 | 每页条数 | | name | String | 否 | 接口名称 | #### 14.1.2 添加接口 **接口地址**: `POST /openapi/add` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | name | String | 是 | 接口名称 | | originUrl | String | 是 | 原始URL | | requestMethod | String | 是 | 请求方法 | | requestUrl | String | 是 | 请求路径标识 | | headersJson | String | 否 | 请求头配置(JSON) | | paramsJson | String | 否 | 请求参数配置(JSON) | | body | String | 否 | 请求体配置(JSON) | #### 14.1.3 编辑接口 **接口地址**: `PUT /openapi/edit` #### 14.1.4 删除接口 **接口地址**: `DELETE /openapi/delete` **请求参数**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | id | String | 是 | 接口ID | #### 14.1.5 调用接口 **接口地址**: `POST /openapi/call/{path}` **认证方式**: Header中传递appkey **请求头**: | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | appkey | String | 是 | 应用Key | **请求体**: 根据接口配置的请求体格式传递 #### 14.1.6 生成接口路径 **接口地址**: `GET /openapi/genPath` **响应示例**: ```json { "success": true, "result": "wCB0lcSa" } ``` #### 14.1.7 获取Swagger文档 **接口地址**: `GET /openapi/json` **响应**: Swagger 2.0 格式的API文档 --- ## 附录 ### A. 业务类型枚举 | 值 | 说明 | |----|------| | 1 | 入库 | | 2 | 出库 | | 3 | 移库 | | 4 | 盘点 | ### B. AGV任务状态枚举 | 值 | 说明 | |----|------| | 0 | 已创建 | | 1 | 已下发 | | 2 | 执行中 | | 3 | 已完成 | | 4 | 已取消 | | 5 | 异常 | ### C. 库区类型枚举 | 值 | 说明 | |----|------| | CPCCQ | 成品存储区 | | MJCK | 民建仓库 | | CK_DOCK | 出库月台 | | MJCK_DOCK | 民建出库月台 | ### D. 公共状态枚举 | 值 | 说明 | |----|------| | 1 | 启用/正常 | | 0 | 禁用/冻结 | ### E. 错误码说明 | 错误码 | 说明 | |--------|------| | 200 | 操作成功 | | 400 | 请求参数错误 | | 401 | 未授权/Token失效 | | 403 | 无权限访问 | | 404 | 资源不存在 | | 500 | 服务器内部错误 | | 10001 | 业务异常 | | 10002 | 数据校验失败 | | 10003 | 数据不存在 | | 10004 | 数据已存在 | --- **文档版本历史**: | 版本 | 日期 | 修改人 | 修改内容 | |------|------|--------|----------| | V1.0 | 2026-03-19 | 系统 | 初始版本 | --- *本文档由系统自动生成,如有疑问请联系技术支持*