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

1825 lines
37 KiB
Markdown
Raw Normal View History

2026-03-20 17:07:12 +08:00
# 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 | 系统 | 初始版本 |
---
*本文档由系统自动生成,如有疑问请联系技术支持*