VWED_server/VWED任务模块接口文档/任务记录接口文档.md

36 KiB
Raw Blame History

VWED任务记录接口文档

本文档描述了VWED系统任务运行记录相关的API接口主要用于查询任务执行过程中的块运行情况和详情。

基础信息

  • 基础路径:/api/vwed-task-record
  • 接口标签:VWED任务运行记录

接口清单

序号 接口名称 接口路径 请求方式 接口描述
1 获取任务块运行记录 /blocks/{task_record_id} GET 获取指定任务记录下的所有块运行情况
2 获取块记录详情 /block/{block_record_id} GET 获取指定块记录的详细信息
3 终止任务 /stop/{task_record_id} POST 停止指定任务记录下的所有运行任务实例
4 获取任务执行结果 /execution/block/results/{task_record_id} GET 获取指定任务记录的执行结果
5 获取任务记录详情 /detail/{task_record_id} GET 获取指定任务记录的详细信息
6 重发失败任务 /retry/{task_record_id} POST 重新执行失败状态的任务记录
15 设置任务错误状态 /set-error/{task_record_id} POST 将指定任务记录及其相关任务块状态设置为错误状态

接口详情

1. 获取任务块运行记录

接口说明

获取指定任务记录下的所有块运行情况,包括每个块的运行状态、执行时间、输入输出参数等信息。

请求路径

GET /api/vwed-task-record/blocks/{task_record_id}

路径参数

参数名 类型 是否必须 描述
task_record_id string 任务记录ID由run_task接口返回的taskRecordId

响应结果

成功响应:

{
    "code": 200,
    "message": "成功获取任务记录 {task_record_id} 的块运行情况",
    "data": [
        {
            "id": "块记录ID",
            "block_name": "块名称",
            "block_id": "块ID",
            "status": 块执行状态码,
            "started_on": "开始时间",
            "ended_on": "结束时间",
            "ended_reason": "结束原因",
            "block_execute_name": "块执行名称",
            "block_input_params_value": {
                "参数名": "参数值"
            },
            "block_out_params_value": {
                "参数名": "参数值"
            },
            "remark": "备注"
        }
    ]
}

失败响应:

{
    "code": 500,
    "message": "获取任务块运行情况失败: {错误信息}"
}

响应字段说明

字段名 类型 描述
id string 块记录ID
block_name string 块名称
block_id string 块ID
status integer 块执行状态1000:执行成功1001:执行中1002:未执行2000:执行失败2002:取消
started_on string 开始时间ISO 8601格式
ended_on string 结束时间ISO 8601格式
ended_reason string 结束原因
block_execute_name string 块执行名称
block_input_params_value object 块输入参数值
block_out_params_value object 块输出参数值
remark string 备注

示例

请求示例:

GET /api/vwed-task-record/blocks/7b84fd4d-e947-4ec7-8535-05ede5f8aa9d

响应示例:

{
    "code": 200,
    "message": "成功获取任务记录 7b84fd4d-e947-4ec7-8535-05ede5f8aa9d 的块运行情况",
    "data": [
        {
            "id": "b5410c81-99b3-4d61-bb79-e54292d012d4",
            "block_name": "-1",
            "block_id": "-1",
            "status": 1000,
            "started_on": "2025-04-30T17:28:19.105648",
            "ended_on": "2025-04-30T17:28:19.601597",
            "ended_reason": "执行成功",
            "block_execute_name": "RootBp",
            "block_input_params_value": {},
            "block_out_params_value": null,
            "remark": "执行成功"
        },
        {
            "id": "ee29eccd-11e8-490b-ac24-81f243771dda",
            "block_name": "b1",
            "block_id": "1",
            "status": 1000,
            "started_on": "2025-04-30T17:28:19.149185",
            "ended_on": "2025-04-30T17:28:19.576944",
            "ended_reason": "执行成功",
            "block_execute_name": "IterateListBp",
            "block_input_params_value": {
                "list": "[1,2,3,4,5]"
            },
            "block_out_params_value": {
                "index": 4,
                "item": 5
            },
            "remark": "执行成功"
        },
        {
            "id": "c944c7df-329c-468e-90ed-9e064ddccdbc",
            "block_name": "b2",
            "block_id": "2",
            "status": 1000,
            "started_on": "2025-04-30T17:28:19.457166",
            "ended_on": "2025-04-30T17:28:19.488009",
            "ended_reason": "执行成功",
            "block_execute_name": "PrintBp",
            "block_input_params_value": {
                "message": "blocks.b1.item"
            },
            "block_out_params_value": null,
            "remark": "执行成功"
        }
    ]
}

2. 获取块记录详情

接口说明

获取指定块记录的详细信息,包括完整的输入输出参数、内部变量等数据。

请求路径

GET /api/vwed-task-record/block/{block_record_id}

路径参数

参数名 类型 是否必须 描述
block_record_id string 块记录ID

响应结果

成功响应:

{
    "code": 200,
    "message": "成功获取块记录详情",
    "data": {
        "id": "块记录ID",
        "block_name": "块名称",
        "block_id": "块ID",
        "block_config_id": "块配置ID",
        "block_input_params": {
            "参数名": {
                "type": "参数类型",
                "value": "参数默认值",
                "required": true/false
            }
        },
        "block_input_params_value": {
            "参数名": "参数值"
        },
        "block_out_params_value": {
            "参数名": "参数值"
        },
        "block_internal_variables": {
            "变量名": "变量值"
        },
        "block_execute_name": "块执行名称",
        "task_id": "任务定义ID",
        "task_record_id": "任务记录ID",
        "started_on": "开始时间",
        "ended_on": "结束时间",
        "ended_reason": "结束原因",
        "status": 块执行状态码,
        "ctrl_status": 控制状态码,
        "input_params": {
            "参数名": {
                "type": "参数类型",
                "value": "参数默认值",
                "required": true/false
            }
        },
        "internal_variables": {
            "变量名": "变量值"
        },
        "output_params": {
            "参数名": "参数值"
        },
        "version": 版本号,
        "remark": "备注"
    }
}

失败响应:

{
    "code": 404,
    "message": "未找到ID为 {block_record_id} 的块记录"
}

响应字段说明

字段名 类型 描述
id string 块记录ID
block_name string 块名称
block_id string 块ID
block_config_id string 块配置ID
block_input_params object 块输入参数定义
block_input_params_value object 块输入参数值
block_out_params_value object 块输出参数值
block_internal_variables object 块内部变量
block_execute_name string 块执行名称
task_id string 任务定义ID
task_record_id string 任务记录ID
started_on string 开始时间ISO 8601格式
ended_on string 结束时间ISO 8601格式
ended_reason string 结束原因
status integer 块执行状态1000:执行成功1001:执行中1002:未执行2000:执行失败2002:取消
ctrl_status integer 控制状态
input_params object 输入参数
internal_variables object 内部变量
output_params object 输出参数
version integer 版本号
remark string 备注

示例

请求示例:

GET /api/vwed-task-record/block/00b7dc0d-7c23-4dce-ae95-3618f2cad202

响应示例:

{
    "code": 200,
    "message": "成功获取块记录详情",
    "data": {
        "id": "00b7dc0d-7c23-4dce-ae95-3618f2cad202",
        "block_name": "b1",
        "block_id": "1",
        "block_config_id": "",
        "block_input_params": {
            "keyRoute": {
                "type": "Simple",
                "value": "TK01",
                "required": true
            }
        },
        "block_input_params_value": {
            "keyRoute": "TK01"
        },
        "block_out_params_value": null,
        "block_internal_variables": {},
        "block_execute_name": "CSelectAgvBp",
        "task_id": "3273c7cb-b4bb-47df-9d47-17f96bc401fc",
        "task_record_id": "5ce20794-2b45-4031-8de0-9df922f91bd1",
        "started_on": "2025-04-30T08:36:37.847431",
        "ended_on": "2025-04-30T08:36:37.959064",
        "ended_reason": "选择执行机器人失败: 执行数据库异常,违反了完整性例如:违反惟一约束、违反非空限制、字段内容超出长度等",
        "status": 2000,
        "ctrl_status": null,
        "input_params": {
            "keyRoute": {
                "type": "Simple",
                "value": "TK01",
                "required": true
            }
        },
        "internal_variables": {},
        "output_params": {
            "blocks": {
                "b1": null
            }
        },
        "version": 1,
        "remark": "选择执行机器人失败: 执行数据库异常,违反了完整性例如:违反惟一约束、违反非空限制、字段内容超出长度等"
    }
}

3. 终止任务

接口说明

停止指定任务记录下的所有运行任务实例,同时禁用定时任务。

请求路径

POST /api/vwed-task-record/stop/{task_record_id}

路径参数

参数名 类型 是否必须 描述
task_record_id string 任务记录ID

响应结果

成功响应:

{
    "code": 200,
    "message": "任务终止成功",
    "data": {
        "task_record_id": "任务记录ID",
        "status": 任务状态码,
        "ended_on": "结束时间",
        "ended_reason": "结束原因"
    }
}

失败响应:

{
    "code": 400,
    "message": "任务终止失败: {错误信息}"
}

{
    "code": 500,
    "message": "任务记录终止失败: {错误信息}"
}

响应字段说明

字段名 类型 描述
task_record_id string 任务记录ID
status integer 任务状态码
ended_on string 结束时间ISO 8601格式
ended_reason string 结束原因

示例

请求示例:

POST /api/vwed-task-record/stop/7b84fd4d-e947-4ec7-8535-05ede5f8aa9d

响应示例:

{
    "code": 200,
    "message": "任务终止成功",
    "data": {
        "task_record_id": "7b84fd4d-e947-4ec7-8535-05ede5f8aa9d",
        "status": 2002,
        "ended_on": "2025-04-30T17:35:42.105648",
        "ended_reason": "任务终止"
    }
}

4. 获取任务执行结果

接口说明

获取指定任务记录的执行结果,按照任务定义的嵌套结构组织,包括已执行和未执行的任务块信息。该接口会解析任务定义中的层级关系,展现真实的任务执行流程。

重要更新 (v2.0):新版本支持基于数据库层级关系字段的查询,循环块(如IterateListBp、WhileBp等)的迭代日志和子块执行日志将按迭代次数自然嵌套在一起,便于前端展示。

请求路径

GET /api/vwed-task-record/execution/block/results/{task_record_id}

路径参数

参数名 类型 是否必须 描述
task_record_id string 任务记录ID

查询参数

参数名 类型 是否必须 默认值 描述
use_new_version boolean true 是否使用新版本查询(基于层级关系字段)默认true

响应结果

成功响应(嵌套结构):

{
    "code": 200,
    "message": "成功获取任务记录嵌套执行结果",
    "data": {
        "blockId": "-1",
        "blockName": "-1",
        "blockType": "RootBp",
        "blockTypeName": "根节点",
        "level": 0,
        "inputParams": {},
        "executionStatus": 1000,
        "executionRecord": {
            "recordId": "记录ID",
            "status": 1000,
            "startedOn": "2025-09-29T17:32:13.393204",
            "endedOn": "2025-09-29T17:32:55.880506",
            "endedReason": "执行成功",
            "inputParamsValue": {},
            "outputParamsValue": null,
            "remark": "执行成功"
        },
        "logs": [
            {
                "logId": "日志ID",
                "level": 1,
                "createdAt": "2025-09-29T17:32:55.873390",
                "message": "分支 default 的所有子块执行完成",
                "output": {
                    "executed": true,
                    "branch": "default",
                    "results": []
                }
            }
        ],
        "children": [
            {
                "blockId": "9",
                "blockName": "b5",
                "blockType": "CSelectAgvBp",
                "blockTypeName": "选择执行机器人块",
                "level": 1,
                "inputParams": {
                    "keyRoute": {
                        "type": "Simple",
                        "value": "AP1",
                        "required": true
                    }
                },
                "executionStatus": 1000,
                "executionRecord": {
                    "recordId": "记录ID",
                    "status": 1000,
                    "startedOn": "2025-09-29T17:32:13.413588",
                    "endedOn": "2025-09-29T17:32:55.867389",
                    "endedReason": "执行成功",
                    "inputParamsValue": {
                        "keyRoute": "AP1"
                    },
                    "outputParamsValue": {
                        "selectedAgvId": "Fake-03"
                    },
                    "remark": "执行成功"
                },
                "logs": [
                    {
                        "logId": "日志ID",
                        "level": 1,
                        "createdAt": "2025-09-29T17:32:55.708163",
                        "message": "选择机器人块成功, 块idb5",
                        "output": {
                            "selectedAgvId": "Fake-03"
                        }
                    }
                ],
                "children": [
                    {
                        "blockId": "10",
                        "blockName": "b6",
                        "blockType": "PrintBp",
                        "blockTypeName": "打印块",
                        "level": 2,
                        "inputParams": {
                            "message": {
                                "type": "Simple",
                                "value": "test message",
                                "required": false
                            }
                        },
                        "executionStatus": 1006,
                        "executionRecord": {
                            "recordId": null,
                            "status": 1006,
                            "startedOn": null,
                            "endedOn": null,
                            "endedReason": "任务块尚未执行",
                            "inputParamsValue": null,
                            "outputParamsValue": null,
                            "remark": "任务块尚未执行"
                        },
                        "logs": [],
                        "children": []
                    }
                ]
            }
        ]
    }
}

失败响应:

{
    "code": 404,
    "message": "未找到任务记录 {task_record_id}"
}

{
    "code": 500,
    "message": "获取任务记录执行结果失败: {错误信息}"
}

响应字段说明

普通块字段

字段名 类型 描述
blockId string 任务定义中的块ID
blockName string 块名称(在执行记录中用于标识)
blockType string 块类型如CSelectAgvBp、PrintBp、IterateListBp等
blockTypeName string 块类型中文名称
level integer 嵌套层级根节点为0子块递增
inputParams object 任务定义中配置的输入参数
executionStatus integer 执行状态1000-执行成功1001-执行中1006-未执行2000-执行失败2001-取消
executionRecord object 执行记录详情
executionRecord.recordId string 执行记录ID未执行时为null
executionRecord.status integer 执行状态码
executionRecord.startedOn string 开始时间ISO 8601格式未执行时为null
executionRecord.endedOn string 结束时间ISO 8601格式未执行时为null
executionRecord.endedReason string 结束原因
executionRecord.inputParamsValue object 实际输入参数值
executionRecord.outputParamsValue object 输出参数值
executionRecord.remark string 备注
logs array 执行日志列表
logs[].logId string 日志ID
logs[].level integer 日志级别(1: 信息, 3: 错误)
logs[].createdAt string 日志创建时间ISO 8601格式
logs[].message string 日志消息
logs[].output object/string 日志输出内容
logs[].logType string 日志类型(iteration_start/iteration_end/block_execution/branch_execution)
logs[].iterationIndex integer 迭代索引(循环中的第几次从0开始)
children array 子任务块列表,递归结构

循环块特有字段 (当blockType为IterateListBp、WhileBp、RepeatNumBp时):

字段名 类型 描述
children[].iterationIndex integer 迭代索引(第几次循环从0开始)
children[].success boolean 该次迭代是否成功
children[].iterationLogs array 该次迭代的循环日志(如"第1次循环, item=1")
children[].children array 该次迭代中执行的子块列表

功能特性

  1. 嵌套结构展示:按照任务定义的层级关系组织执行结果
  2. 完整性展示:显示已执行和未执行的任务块
  3. 状态区分
    • 1000执行成功
    • 1001执行中
    • 1006未执行在任务定义中存在但尚未执行到
    • 2000执行失败
    • 2001取消
  4. 详细信息:每个块包含执行记录、日志和子块信息
  5. 循环嵌套优化(v2.0新增)
    • 循环块(IterateListBp等)按迭代次数组织子块
    • 每次迭代包含循环日志和该次迭代的所有子块执行记录
    • 支持多层嵌套循环
  6. 回退兼容:当无法解析任务定义时,自动回退到平铺模式

示例

示例2: 循环嵌套结构 (v2.0新增)

请求示例:

GET /api/vwed-task-record/execution/block/results/402196b4-1afc-413b-a56f-c69d95c408e9

响应示例(包含循环块):

{
    "code": 200,
    "message": "成功获取任务记录嵌套执行结果",
    "data": {
        "blockId": "-1",
        "blockName": "-1",
        "blockType": "RootBp",
        "blockTypeName": "根节点",
        "level": 0,
        "executionStatus": 1000,
        "executionRecord": {
            "recordId": "402196b4-1afc-413b-a56f-c69d95c408e9",
            "status": 1000,
            "startedOn": "2025-10-10T10:09:45.161986",
            "endedOn": "2025-10-10T10:09:45.436580",
            "endedReason": "执行成功",
            "inputParamsValue": {},
            "outputParamsValue": null,
            "remark": "执行成功"
        },
        "logs": [],
        "children": [
            {
                "blockId": "5",
                "blockName": "b3",
                "blockType": "IterateListBp",
                "blockTypeName": "迭代列表块",
                "level": 1,
                "executionStatus": 1000,
                "executionRecord": {
                    "recordId": "f2c68ef4-f4ac-4ae1-9a50-b438ce133019",
                    "status": 1000,
                    "startedOn": "2025-10-10T10:09:45.182785",
                    "endedOn": "2025-10-10T10:09:45.385973",
                    "endedReason": "执行成功",
                    "inputParamsValue": {
                        "list": "[1, 2, 3, 4]"
                    },
                    "outputParamsValue": {
                        "index": 3,
                        "item": 4
                    },
                    "remark": "执行成功"
                },
                "logs": [],
                "children": [
                    {
                        "iterationIndex": 0,
                        "success": true,
                        "iterationLogs": [
                            {
                                "logId": "log-iter-0",
                                "level": 1,
                                "createdAt": "2025-10-10T10:09:45.231789",
                                "message": "第1次循环, item=1",
                                "output": "",
                                "logType": "iteration_start",
                                "iterationIndex": 0
                            }
                        ],
                        "children": [
                            {
                                "blockId": "5",
                                "blockName": "b4",
                                "blockType": "PrintBp",
                                "blockTypeName": "打印块",
                                "level": 2,
                                "iterationIndex": 0,
                                "executionStatus": 1000,
                                "executionRecord": {
                                    "recordId": "79fe7502-1cd5-4b23-a4ff-8d746a30e149",
                                    "status": 1000,
                                    "startedOn": "2025-10-10T10:09:45.325139",
                                    "endedOn": "2025-10-10T10:09:45.354310",
                                    "endedReason": "执行成功",
                                    "inputParamsValue": {
                                        "message": "blocks.b3.index"
                                    },
                                    "outputParamsValue": null,
                                    "remark": "执行成功"
                                },
                                "logs": [
                                    {
                                        "logId": "log-print-0",
                                        "level": 1,
                                        "createdAt": "2025-10-10T10:09:45.354310",
                                        "message": "打印块执行成功",
                                        "output": {
                                            "message": 0
                                        },
                                        "logType": "block_execution",
                                        "iterationIndex": 0
                                    }
                                ],
                                "children": []
                            }
                        ]
                    },
                    {
                        "iterationIndex": 1,
                        "success": true,
                        "iterationLogs": [
                            {
                                "logId": "log-iter-1",
                                "level": 1,
                                "createdAt": "2025-10-10T10:09:45.273859",
                                "message": "第2次循环, item=2",
                                "output": "",
                                "logType": "iteration_start",
                                "iterationIndex": 1
                            }
                        ],
                        "children": [
                            {
                                "blockId": "5",
                                "blockName": "b4",
                                "blockType": "PrintBp",
                                "blockTypeName": "打印块",
                                "level": 2,
                                "iterationIndex": 1,
                                "executionStatus": 1000,
                                "executionRecord": {
                                    "recordId": "79fe7502-1cd5-4b23-a4ff-8d746a30e149",
                                    "status": 1000,
                                    "startedOn": "2025-10-10T10:09:45.325139",
                                    "endedOn": "2025-10-10T10:09:45.354310",
                                    "endedReason": "执行成功",
                                    "inputParamsValue": {
                                        "message": "blocks.b3.index"
                                    },
                                    "outputParamsValue": null,
                                    "remark": "执行成功"
                                },
                                "logs": [
                                    {
                                        "logId": "log-print-1",
                                        "level": 1,
                                        "createdAt": "2025-10-10T10:09:45.354310",
                                        "message": "打印块执行成功",
                                        "output": {
                                            "message": 1
                                        },
                                        "logType": "block_execution",
                                        "iterationIndex": 1
                                    }
                                ],
                                "children": []
                            }
                        ]
                    }
                ]
            }
        ]
    }
}

循环嵌套结构说明

  1. 循环块(IterateListBp)的 children 数组包含多个迭代项
  2. 每个迭代项包含:
    • iterationIndex: 迭代索引(从0开始)
    • success: 该次迭代是否成功
    • iterationLogs: 该次迭代的循环日志(如"第1次循环")
    • children: 该次迭代中执行的所有子块
  3. 子块的 logs 包含该次迭代中该块的执行日志
  4. 所有日志都带有 logTypeiterationIndex 字段用于标识

5. 获取任务记录详情

接口说明

获取指定任务记录的详细信息,包括任务的基本信息、执行状态、开始结束时间等。

请求路径

GET /api/vwed-task-record/detail/{task_record_id}

路径参数

参数名 类型 是否必须 描述
task_record_id string 任务记录ID

响应结果

成功响应:

{
    "code": 200,
    "message": "成功获取任务记录详情",
    "data": {
        "id": "任务记录ID",
        "task_id": "任务定义ID",
        "task_name": "任务名称",
        "task_version": 任务版本,
        "status": 任务状态码,
        "input_params": {
            "参数名": "参数值"
        },
        "started_on": "开始时间",
        "ended_on": "结束时间",
        "ended_reason": "结束原因",
        "execution_time": 执行时长(毫秒),
        "created_at": "创建时间",
        "updated_at": "更新时间",
        "agv_id": "执行任务的AGV设备ID",
        "parent_task_record_id": "父任务记录ID",
        "root_task_record_id": "根任务记录ID",
        "state_description": "状态描述",
        "if_have_child_task": 是否有子任务,
        "periodic_task": 是否为周期任务,
        "priority": 优先级,
        "work_stations": "工作站",
        "work_types": "工作类型",
        "variables": {
            "变量名": "变量值"
        },
        "source_type": 任务来源类型,
        "source_system": "来源系统标识",
        "source_user": "下达任务的用户ID或账号",
        "source_device": "下达任务的硬件设备标识",
        "source_ip": "下达任务的IP地址",
        "source_time": "任务下达时间",
        "source_client_info": "客户端设备信息",
        "source_remarks": "任务来源备注信息"
    }
}

失败响应:

{
    "code": 404,
    "message": "未找到ID为 {task_record_id} 的任务记录"
}

{
    "code": 500,
    "message": "获取任务记录详情失败: {错误信息}"
}

响应字段说明

字段名 类型 描述
id string 任务记录ID
task_id string 任务定义ID对应def_id字段
task_name string 任务名称对应def_label字段
task_version integer 任务定义版本对应def_version字段
status integer 任务状态码1000:执行成功1001:执行中1002:队列中2000:失败2001:取消2002:暂停
input_params object 输入参数JSON格式
started_on string 开始时间对应first_executor_time字段ISO 8601格式
ended_on string 结束时间ISO 8601格式
ended_reason string 结束原因
execution_time integer 执行时长(毫秒)根据开始和结束时间计算或executor_time字段值
created_at string 创建时间ISO 8601格式
updated_at string 更新时间ISO 8601格式
agv_id string 执行任务的AGV设备ID
parent_task_record_id string 父任务记录ID
root_task_record_id string 根任务记录ID
state_description string 状态描述
if_have_child_task boolean 是否有子任务
periodic_task integer 是否为周期任务0:否1:是
priority integer 优先级,数值越大优先级越高
work_stations string 工作站
work_types string 工作类型
variables object 变量信息JSON格式
source_type integer 任务来源类型1:系统调度2:呼叫机3:第三方系统4:手持电脑)
source_system string 来源系统标识WMS、MES等系统编号
source_user string 下达任务的用户ID或账号
source_device string 下达任务的硬件设备标识设备ID、MAC地址等
source_ip string 下达任务的IP地址
source_time string 任务下达时间ISO 8601格式
source_client_info string 客户端设备信息(用户代理、浏览器、操作系统等)
source_remarks string 任务来源备注信息

示例

请求示例:

GET /api/vwed-task-record/detail/7b84fd4d-e947-4ec7-8535-05ede5f8aa9d

响应示例:

{
    "code": 200,
    "message": "成功获取任务记录详情",
    "data": {
        "id": "7b84fd4d-e947-4ec7-8535-05ede5f8aa9d",
        "task_id": "3273c7cb-b4bb-47df-9d47-17f96bc401fc",
        "task_name": "示例任务",
        "task_version": 2,
        "status": 1000,
        "input_params": {
            "from": "A",
            "to": "B"
        },
        "started_on": "2025-04-30T17:28:19.105648",
        "ended_on": "2025-04-30T17:28:20.601597",
        "ended_reason": "执行成功",
        "execution_time": 1496,
        "created_at": "2025-04-30T17:28:19.100000",
        "updated_at": "2025-04-30T17:28:20.610000",
        "agv_id": "AGV001",
        "parent_task_record_id": null,
        "root_task_record_id": "7b84fd4d-e947-4ec7-8535-05ede5f8aa9d",
        "state_description": "任务已完成",
        "if_have_child_task": false,
        "periodic_task": 0,
        "priority": 1,
        "work_stations": "WS001",
        "work_types": "运输任务",
        "variables": {
            "position": {"x": 100, "y": 200}
        },
        "source_type": 1,
        "source_system": "WMS",
        "source_user": "admin",
        "source_device": "PC-001",
        "source_ip": "192.168.1.100",
        "source_time": "2025-04-30T17:28:18.000000",
        "source_client_info": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
        "source_remarks": "测试任务"
    }
}

6. 重发失败任务

接口说明

重新执行失败状态的任务记录。该接口用于重新执行状态为失败(status=2000)的任务记录,系统会使用原任务的输入参数重新启动任务。

请求路径

POST /api/vwed-task-record/retry/{task_record_id}

路径参数

参数名 类型 是否必须 描述
task_record_id string 失败的任务记录ID

响应结果

成功响应:

{
    "code": 200,
    "message": "任务重发成功",
    "data": {
        "original_task_record_id": "原任务记录ID",
        "new_task_record_id": "新任务记录ID", 
        "new_task_id": "任务定义ID",
        "retry_time": "重发时间",
        "original_task_name": "原任务名称",
        "original_input_params": {
            "参数名": "参数值"
        }
    }
}

失败响应:

{
    "code": 404,
    "message": "未找到任务记录 {task_record_id}"
}

{
    "code": 400,
    "message": "任务状态为 {status},只能重发失败状态(2000)的任务"
}

{
    "code": 500,
    "message": "重发任务失败: {错误信息}"
}

响应字段说明

字段名 类型 描述
original_task_record_id string 原始失败的任务记录ID
new_task_record_id string 重发后生成的新任务记录ID
new_task_id string 任务定义ID
retry_time string 重发时间ISO 8601格式
original_task_name string 原始任务名称
original_input_params object 原始任务的输入参数

功能说明

  1. 检查任务记录是否存在
  2. 验证任务状态必须为失败状态(2000)
  3. 使用原任务的输入参数重新启动任务
  4. 保持原有的来源系统信息
  5. 在备注中标记为重发任务
  6. 返回新生成的任务记录信息

注意事项

  • 只能重发失败状态(status=2000)的任务
  • 重发时会使用原任务的所有输入参数
  • 重发后会生成新的任务记录ID
  • 原任务记录状态不会改变
  • 如果任务定义不存在,重发会失败

示例

请求示例:

POST /api/vwed-task-record/retry/7b84fd4d-e947-4ec7-8535-05ede5f8aa9d

响应示例:

{
    "code": 200,
    "message": "任务重发成功",
    "data": {
        "original_task_record_id": "7b84fd4d-e947-4ec7-8535-05ede5f8aa9d",
        "new_task_record_id": "8c95ge5e-f058-5fd8-9646-16fef6g9bb0e",
        "new_task_id": "3273c7cb-b4bb-47df-9d47-17f96bc401fc",
        "retry_time": "2025-09-19T10:30:15.123456",
        "original_task_name": "示例任务",
        "original_input_params": {
            "from": "A",
            "to": "B"
        }
    }
}

15. 设置任务错误状态

接口说明

将指定任务记录及其相关任务块状态设置为错误状态

请求信息

  • URL: /api/vwed-task-record/set-error/{task_record_id}
  • Method: POST
  • Content-Type: application/json

路径参数

参数名 类型 必填 说明
task_record_id string 任务记录ID

请求体参数

参数名 类型 必填 说明 示例
error_reason string 错误原因 "系统异常导致任务失败"

请求示例

{
  "error_reason": "系统异常导致任务失败"
}

响应示例

{
  "success": true,
  "message": "任务状态设置为错误成功",
  "data": {
    "task_record_id": "123456",
    "task_status": 2000,
    "error_reason": "系统异常导致任务失败",
    "ended_on": "2024-01-01T12:00:00",
    "updated_blocks_count": 5,
    "updated_blocks": [
      {
        "block_id": "block_001",
        "block_name": "数据处理",
        "status": 2000
      }
    ]
  }
}

状态码说明

  • 200: 成功
  • 400: 请求参数错误
  • 404: 任务记录不存在
  • 500: 服务器内部错误

功能说明

  1. 如果任务正在运行,会先尝试取消任务
  2. 将任务状态设置为失败状态2000
  3. 将所有未完成的任务块状态设置为失败状态2000
  4. 记录错误原因和结束时间
  5. 返回更新的任务块数量和详细信息

注意事项

  • 只有未完成的任务块(非成功或失败状态)才会被更新
  • 已经完成或失败的任务块不会被重复更新
  • 如果任务记录不存在会返回404错误