Cpte-Boot/docs/API接口文档.md

1825 lines
37 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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-datafile字段为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 | 系统 | 初始版本 |
---
*本文档由系统自动生成,如有疑问请联系技术支持*