VWED_server/VWED任务模块接口文档/VWED任务管理接口文档.md
2025-04-30 16:57:46 +08:00

358 lines
8.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### 1. 获取天风任务列表
#### 接口描述
获取系统中所有任务的列表信息,支持分页查询、条件筛选和排序。
#### 请求方式
- **HTTP方法**: GET
- **接口路径**: `/api/vwed-task/list`
#### 请求参数
| 参数名 | 类型 | 必填 | 描述 |
|-------|------|-----|------|
| pageNum | Integer | 否 | 页码默认为1 |
| pageSize | Integer | 否 | 每页记录数默认为10 |
| keyword | String | 否 | 关键字搜索(任务名称) |
| status | Integer | 否 | 任务状态筛选 |
| sortField | String | 否 | 排序字段 |
| sortOrder | String | 否 | 排序方式asc升序、desc降序 |
#### 响应参数
```json
{
"code": 200,
"message": "操作成功",
"data": {
"total": 3,
"list": [
{
"id": "193f8412-fa0d-4b6d-9648-70bceacd6629",
"label": "test1",
"version": 19,
"templateName": "userTemplate",
"periodicTask": false,
"ifEnable": 0,
"status": 0,
"createDate": "2023-05-10 14:30:22",
"remark": "备注信息"
},
{
"id": "734749d1-0fdf-4a06-9fb7-8f991953d5e5",
"label": "test",
"version": 3,
"templateName": "userTemplate",
"periodicTask": true,
"ifEnable": 1,
"status": 0,
"createDate": "2023-05-15 09:45:18",
"remark": "定时任务"
},
{
"id": "7c6aac36-652b-4314-9433-f5788e9e7adb",
"label": "test1-备份",
"version": 1,
"templateName": "userTemplate",
"periodicTask": false,
"ifEnable": 0,
"status": 0,
"createDate": "2023-05-16 11:22:36",
"remark": "备份1"
}
],
"pageNum": 1,
"pageSize": 10,
"totalPages": 1
}
}
```
### 2. 创建任务
#### 接口描述
创建一个新任务,设置任务的基本信息。创建任务时只需提供任务名称和任务类型两个必填项。系统会自动将新建任务与当前已激活的模板进行关联,系统中有且只有一个处于激活状态的模板。
#### 请求方式
- **HTTP方法**: POST
- **接口路径**: `/api/vwed-task/create`
#### 请求参数
| 参数名 | 类型 | 必填 | 描述 |
|-------|------|-----|------|
| label | String | 是 | 任务名称 |
| taskType | Integer | 是 | 任务类型1-普通任务2-定时任务 |
| mapId | Integer | 是 | 相关地图ID|
| remark | String | 否 | 任务备注 |
| period | Integer | 否 | 周期时间(毫秒) |
| delay | Integer | 否 | 延迟时间毫秒默认3000 |
| releaseSites | Boolean | 否 | 是否释放站点默认true |
| token | String | 否 | 用户token值用于认证 |
| tenantId | String | 否 | 租户ID用于多租户隔离默认为"default" |
#### 请求示例
```json
{
"label": "新任务",
"taskType": 1,
"remark": "测试用任务",
"token": "user_authentication_token",
"tenantId": "tenant1"
}
```
#### 响应参数
```json
{
"code": 200,
"message": "操作成功",
"data": {
"id": "193f8412-fa0d-4b6d-9648-70bceacd6629",
"label": "新任务",
"version": 1,
"templateName": "userTemplate",
"periodicTask": false,
"status": 0,
"createDate": "2023-05-10 14:30:22"
}
}
### 3. 删除任务
#### 接口描述
删除指定的一个或多个任务。
#### 请求方式
- **HTTP方法**: DELETE
- **接口路径**: `/api/vwed-task/delete`
#### 请求参数
| 参数名 | 类型 | 必填 | 描述 |
|-------|------|-----|------|
| ids | Array | | 要删除的任务ID数组 |
#### 请求示例
```json
{
"ids": ["193f8412-fa0d-4b6d-9648-70bceacd6629", "734749d1-0fdf-4a06-9fb7-8f991953d5e5"]
}
```
#### 响应参数
```json
{
"code": 200,
"message": "删除成功",
"data": null
}
```
### 5. 批量导出任务
#### 接口描述
导出多个指定任务的配置,返回加密的专有格式文件(.vtex)。导出时会自动去除ID、创建时间、更新时间、版本和删除标记等系统相关字段仅保留任务的功能性配置数据。
#### 请求方式
- **HTTP方法**: POST
- **接口路径**: `/api/vwed-task/export-batch`
#### 请求参数
| 参数名 | 类型 | 必填 | 描述 |
|-------|------|-----|------|
| ids | Array | 是 | 要导出的任务ID数组 |
#### 请求示例
```json
{
"ids": ["193f8412-fa0d-4b6d-9648-70bceacd6629", "734749d1-0fdf-4a06-9fb7-8f991953d5e5"]
}
```
#### 响应参数
文件下载响应Content-Type为application/octet-stream文件为加密的二进制格式(.vtex),包含以下自动去除系统相关字段的任务定义信息:
- 已移除id, created_at, updated_at, version, deleted 等系统字段
- 保留label(任务名称), detail(任务详情), period(周期时间), delay(延迟时间)等功能性字段
#### 响应头信息
```
Content-Disposition: attachment; filename=tasks_export_2.vtex
Content-Type: application/octet-stream
X-Content-Type-Options: nosniff
```
### 7. 导入任务
#### 接口描述
通过导入任务配置文件(.vtex)创建新任务。支持批量导入多个任务,系统会自动为每个任务生成唯一的名称以避免冲突。
#### 请求方式
- **HTTP方法**: POST
- **接口路径**: `/api/vwed-task/import`
- **Content-Type**: multipart/form-data
#### 请求参数
| 参数名 | 类型 | 必填 | 描述 |
|-------|------|-----|------|
| file | File | 是 | 任务配置文件,加密的专有格式(.vtex) |
| token | String | 否 | 用户token值用于认证 |
| tenantId | String | 否 | 租户ID用于多租户隔离默认为"default" |
#### 响应参数
```json
{
"code": 200,
"message": "成功导入 2 个任务",
"data": {
"success_count": 2,
"failed_count": 0,
"failed_tasks": [],
"imported_tasks": [
{
"id": "193f8412-fa0d-4b6d-9648-70bceacd6631",
"name": "任务1-备份-16487239871234",
"original_name": "任务1"
},
{
"id": "734749d1-0fdf-4a06-9fb7-8f991953d5e6",
"name": "任务2-备份-16487239875678",
"original_name": "任务2"
}
]
}
}
```
#### 部分导入成功响应示例
```json
{
"code": 200,
"message": "部分导入成功: 成功 1 个, 失败 1 个",
"data": {
"success_count": 1,
"failed_count": 1,
"failed_tasks": [
{
"index": 1,
"name": "任务2",
"reason": "任务数据不完整"
}
],
"imported_tasks": [
{
"id": "193f8412-fa0d-4b6d-9648-70bceacd6631",
"name": "任务1-备份-16487239871234",
"original_name": "任务1"
}
]
}
}
```
#### 导入失败响应示例
```json
{
"code": 400,
"message": "解析任务数据失败: 文件格式无效或已损坏",
"data": null
}
```
### 8. 获取单个任务详情
#### 接口描述
获取指定任务的详细信息,包括任务的基本信息、配置参数和详细定义。
#### 请求方式
- **HTTP方法**: GET
- **接口路径**: `/api/vwed-task/{task_id}`
#### 请求参数
| 参数名 | 类型 | 必填 | 描述 |
|-------|------|-----|------|
| task_id | String | 是 | 任务ID路径参数 |
#### 响应参数
```json
{
"code": 200,
"message": "操作成功",
"data": {
"id": "193f8412-fa0d-4b6d-9648-70bceacd6629",
"label": "test1",
"version": 19,
"detail": {
"inputParams": [
{
"name": "from",
"type": "String",
"label": "起点",
"required": false,
"defaultValue": "",
"remark": "起始位置"
},
{
"name": "to",
"type": "String",
"label": "终点",
"required": true,
"defaultValue": "",
"remark": "目标位置"
}
],
"outputParams": [],
"rootBlock": {
"id": -1,
"name": "-1",
"blockType": "RootBp",
"inputParams": {},
"children": {}
}
},
"templateName": "userTemplate",
"period": 3000,
"periodicTask": false,
"status": 0,
"ifEnable": 0,
"delay": 3000,
"releaseSites": true,
"createDate": "2023-05-10 14:30:22",
"remark": "测试任务"
}
}
```
#### 错误响应
```json
{
"code": 404,
"message": "任务不存在",
"data": null
}
```
```json
{
"code": 500,
"message": "获取任务详情失败: 内部服务器错误",
"data": null
}
```