# 任务编辑接口文档 ## 三、任务编辑模块接口 ### 1. 获取块数据 #### 接口描述 获取系统中所有可用的块数据,包括各类组件类型及其对应的组件列表,用于任务编辑页面左侧的组件面板显示。 #### 请求方式 - **HTTP方法**: GET - **接口路径**: `/api/vwed-task-edit/block` #### 请求参数 无 #### 响应参数 ```json { "code": 200, "msg": "Success", "data": [ { "label": "脚本", "order": 0, "blocks": [ { "type": "All", "name": "ScriptBp", "label": "运行脚本", "description": "", "inputParams": [ { "name": "functionName", "type": "String", "label": "函数名", "description": "", "required": true, "defaultValue": null, "options": [] }, { "name": "functionArgs", "type": "Any", "label": "函数参数", "description": "", "required": false, "defaultValue": null, "options": [] } ], "extraInputParamsFunc": "", "outputParams": {} }, { "type": "All", "name": "SetTaskVariablesBp", "label": "设置任务变量", "description": "", "inputParams": [ { "name": "script", "type": "String", "label": "脚本代码", "description": "", "required": true, "defaultValue": null, "options": [] } ], "extraInputParamsFunc": "", "outputParams": {} } ] }, { "label": "HTTP请求", "order": 1, "blocks": [ { "type": "All", "name": "HttpGetBp", "label": "HTTP GET请求", "description": "", "inputParams": [ { "name": "url", "type": "String", "label": "请求URL", "description": "", "required": true, "defaultValue": null, "options": [] }, { "name": "headers", "type": "Object", "label": "请求头", "description": "", "required": false, "defaultValue": {}, "options": [] }, { "name": "timeout", "type": "Number", "label": "超时时间(ms)", "description": "", "required": false, "defaultValue": 30000, "options": [] } ], "extraInputParamsFunc": "", "outputParams": {} }, { "type": "All", "name": "HttpPostBp", "label": "HTTP POST请求", "description": "", "inputParams": [ { "name": "url", "type": "String", "label": "请求URL", "description": "", "required": true, "defaultValue": null, "options": [] }, { "name": "data", "type": "Object", "label": "请求数据", "description": "", "required": false, "defaultValue": {}, "options": [] }, { "name": "headers", "type": "Object", "label": "请求头", "description": "", "required": false, "defaultValue": {}, "options": [] }, { "name": "contentType", "type": "String", "label": "内容类型", "description": "", "required": false, "defaultValue": "application/json", "options": [] } ], "extraInputParamsFunc": "", "outputParams": {} } ] }, { "label": "任务", "order": 2, "blocks": [ { "type": "All", "name": "PrintBp", "label": "打印", "description": "", "inputParams": [ { "name": "message", "type": "String", "label": "消息内容", "description": "", "required": true, "defaultValue": null, "options": [] } ], "extraInputParamsFunc": "", "outputParams": {} } ] }, { "label": "流程", "order": 3, "blocks": [ { "type": "All", "name": "IfBp", "label": "条件判断", "description": "", "inputParams": [ { "name": "condition", "type": "Expression", "label": "条件表达式", "description": "", "required": true, "defaultValue": null, "options": [] } ], "extraInputParamsFunc": "", "outputParams": {} }, { "type": "All", "name": "WhileBp", "label": "循环", "description": "", "inputParams": [ { "name": "condition", "type": "Expression", "label": "循环条件", "description": "", "required": true, "defaultValue": null, "options": [] } ], "extraInputParamsFunc": "", "outputParams": {} } ] }, { "label": "基础", "order": 4, "blocks": [ { "type": "All", "name": "WaitBp", "label": "等待", "description": "", "inputParams": [ { "name": "timeout", "type": "Number", "label": "等待时间(ms)", "description": "", "required": true, "defaultValue": 1000, "options": [] } ], "extraInputParamsFunc": "", "outputParams": {} } ] }, { "label": "库位", "order": 5, "blocks": [ { "type": "All", "name": "GetSiteBp", "label": "获取库位信息", "description": "", "inputParams": [ { "name": "siteId", "type": "String", "label": "库位ID", "description": "", "required": true, "defaultValue": null, "options": [] } ], "extraInputParamsFunc": "", "outputParams": {} } ] }, { "label": "仿真", "order": 6, "blocks": [ { "type": "All", "name": "SimulateBp", "label": "仿真操作", "description": "", "inputParams": [ { "name": "action", "type": "String", "label": "仿真动作", "description": "", "required": true, "defaultValue": null, "options": [] } ], "extraInputParamsFunc": "", "outputParams": {} } ] }, { "label": "机器人调度", "order": 7, "blocks": [ { "type": "All", "name": "MoveRobotBp", "label": "移动机器人", "description": "", "inputParams": [ { "name": "robotId", "type": "String", "label": "机器人ID", "description": "", "required": true, "defaultValue": null, "options": [] }, { "name": "targetPosition", "type": "Object", "label": "目标位置", "description": "", "required": true, "defaultValue": null, "options": [] } ], "extraInputParamsFunc": "", "outputParams": {} } ] }, { "label": "设备", "order": 8, "blocks": [ { "type": "All", "name": "ControlDeviceBp", "label": "控制设备", "description": "", "inputParams": [ { "name": "deviceId", "type": "String", "label": "设备ID", "description": "", "required": true, "defaultValue": null, "options": [] }, { "name": "command", "type": "String", "label": "控制命令", "description": "", "required": true, "defaultValue": null, "options": [] } ], "extraInputParamsFunc": "", "outputParams": {} } ] } ] } ``` ### 2. 获取任务源码 #### 接口描述 获取指定任务的源码详情数据,直接返回vwed_taskdef表中的详细定义,用于任务编辑页面加载已有任务的详细配置信息。 #### 请求方式 - **HTTP方法**: GET - **接口路径**: `/api/vwed-task-edit/source/{id}` #### 请求参数 | 参数名 | 类型 | 必填 | 描述 | |-------|------|-----|------| | id | String | 是 | 任务ID,路径参数 | #### 响应参数 ```json { "code": 200, "message": "操作成功", "data": { "id": "193f8412-fa0d-4b6d-9648-70bceacd6629", "label": "test1", "version": 3, "createDate": "2023-05-10 14:30:22", "modifyDate": "2023-05-10 15:30:22", "templateName": "userTemplate", "periodicTask": 0, "ifEnable": 0, "status": 0, "detail": { "inputParams": [ { "name": "from", "type": "String", "label": "起点", "remark": "", "defaultValue": "", "required": false }, { "name": "to", "type": "String", "label": "终点", "remark": "", "defaultValue": "", "required": false } ], "outputParams": [], "rootBlock": { "id": -1, "name": "-1", "blockType": "RootBp", "inputParams": {}, "children": { "default": [ { "id": 5, "name": "b5", "blockType": "IfBp", "children": {}, "inputParams": { "condition": { "type": "Expression", "value": "taskInputs.from", "required": true } }, "refTaskDefId": "", "selected": false, "expanded": true }, { "id": 6, "name": "b6", "blockType": "PrintBp", "children": {}, "inputParams": { "message": { "type": "Simple", "value": "111111" } }, "refTaskDefId": "", "selected": false, "expanded": true } ] }, "selected": false, "refTaskDefId": "", "expanded": true } } } } ``` #### 错误响应 1. 任务不存在时: ```json { "code": 404, "message": "任务不存在" } ``` 2. 系统错误: ```json { "code": 500, "message": "获取任务源码详情失败: [详细错误信息]" } ``` ### 3. 保存任务编辑数据 #### 接口描述 保存任务的编辑数据,包括任务的详细定义、输入参数配置、组件配置和连接关系等。 #### 请求方式 - **HTTP方法**: POST - **接口路径**: `/api/vwed-task-edit/save` #### 请求参数 | 参数名 | 类型 | 必填 | 描述 | |-------|------|-----|------| | id | String | 是 | 任务ID | | detail | Object | 是 | 任务详细定义,包含输入参数、根块配置等 | #### 请求示例 ```json { "id": "193f8412-fa0d-4b6d-9648-70bceacd6629", "label": "test1", "detail": { "inputParams": [ { "name": "from", "type": "String", "label": "起点", "remark": "", "defaultValue": "", "required": false }, { "name": "to", "type": "String", "label": "终点", "remark": "", "defaultValue": "", "required": false } ], "outputParams": [], "rootBlock": { "id": -1, "name": "-1", "blockType": "RootBp", "inputParams": {}, "children": { "default": [ { "id": 5, "name": "b5", "blockType": "IfBp", "children": {}, "inputParams": { "condition": { "type": "Expression", "value": "taskInputs.from", "required": true } }, "refTaskDefId": "", "selected": false, "expanded": true }, { "id": 6, "name": "b6", "blockType": "PrintBp", "children": {}, "inputParams": { "message": { "type": "Simple", "value": "111111" } }, "refTaskDefId": "", "selected": false, "expanded": true } ] }, "selected": false, "refTaskDefId": "", "expanded": true } } } ``` #### 响应参数 ```json { "code": 200, "message": "保存成功", "data": { "id": "193f8412-fa0d-4b6d-9648-70bceacd6629", "version": 3, "updateTime": "2023-05-10 15:30:22" } } ``` ### 4. 备份任务 #### 接口描述 创建指定任务的备份副本。系统会从vwed_taskdef表中复制原任务的所有信息(包括任务定义、详细配置、输入参数等),并在同一张表中生成一个新的任务记录。新任务名称默认为原任务名称加上"-备份"后缀,用户可以修改备份名称和添加备注信息。 #### 请求方式 - **HTTP方法**: POST - **接口路径**: `/api/vwed-task-edit/backup/{id}` #### 请求参数 | 参数名 | 类型 | 必填 | 描述 | |-------|------|-----|------| | id | String | 是 | 要备份的任务ID,路径参数 | | backupName | String | 否 | 备份后的任务名称,不提供则默认为"原任务名-备份" | | remark | String | 否 | 备份任务的备注信息 | #### 请求示例 ```json { "backupName": "test1-备份", "remark": "这是一个备份任务" } ``` #### 响应参数 ```json { "code": 200, "message": "备份成功", "data": { "id": "7c6aac36-652b-4314-9433-f5788e9e7adb", "label": "test1-备份", "version": 1, "templateName": "userTemplate", "periodicTask": 0, "ifEnable": 0, "status": 0, "createDate": "2023-05-16 11:22:36", "sourceTaskId": "193f8412-fa0d-4b6d-9648-70bceacd6629", "remark": "这是一个备份任务" } } ``` ### 5. 获取子任务列表 #### 接口描述 获取可以被引用的子任务列表,用于子任务组件的配置。数据来源是vwed_taskdef表中的现有任务定义,任何定义好的任务都可以作为其他任务的子任务使用(除了任务自身)。 #### 请求方式 - **HTTP方法**: GET - **接口路径**: `/api/vwed-task-edit/subtasks/list` #### 请求参数 | 参数名 | 类型 | 必填 | 描述 | |-------|------|-----|------| | page | Integer | 否 | 页码,默认为1 | | pageSize | Integer | 否 | 每页记录数,默认为100 | | keyword | String | 否 | 搜索关键词,用于筛选子任务 | | excludeId | String | 否 | 要排除的任务ID,通常是当前正在编辑的任务ID | #### 响应参数 ```json { "code": 200, "message": "操作成功", "data": { "total": 10, "list": [ { "id": "231f8412-fa0d-4b6d-9648-70bceacd1111", "label": "test1", "version": 3, "templateName": "userTemplate", "remark": "测试子任务1", "createDate": "2023-05-10 14:30:22", "createdBy": "admin", "status": 0, "inputParams": [ { "name": "from", "type": "String", "label": "起点", "required": false }, { "name": "to", "type": "String", "label": "终点", "required": false } ] }, { "id": "231f8412-fa0d-4b6d-9648-70bceacd2222", "label": "测试_cc", "version": 2, "templateName": "userTemplate", "remark": "测试子任务2", "createDate": "2023-05-12 10:20:15", "createdBy": "admin", "status": 0, "inputParams": [ { "name": "agvId", "type": "String", "label": "机器人ID", "required": true } ] } ] } } ``` ### 8. 运行任务 #### 接口描述 直接执行指定的任务,并传入任务输入参数,用于在任务编辑页面上直接启动任务。与测试执行不同,此接口将真实运行任务并影响系统数据。如果任务输入参数中有必填字段,则必须在请求中提供对应字段,否则会返回400错误。系统还会检查设备是否有正在运行的相同任务,根据配置决定是否允许重新启动。 #### 请求方式 - **HTTP方法**: POST - **接口路径**: `/api/vwed-task-edit/run` #### 请求参数 | 参数名 | 类型 | 必填 | 描述 | |-------|------|-----|------| | taskId | String | 是 | 要运行的任务ID | | params | Array | 否 | 任务运行参数数组,根据任务定义中的inputParams字段确定 | | source_system | String | 否 | 请求来源系统标识(如:WMS、MES等系统编号) | | source_device | String | 否 | 下达任务的硬件设备标识(设备ID、MAC地址等) | | source_type | Integer | 否 | 来源类型(1: 系统调度, 2: 呼叫机, 3: 第三方系统, 4: 手持电脑)| ##### TaskInputParamNew参数结构 | 参数名 | 类型 | 必填 | 描述 | |-------|------|-----|------| | name | String | 是 | 参数名称 | | type | String | 是 | 参数类型(STRING、BOOLEAN、INTEGER、FLOAT、OBJECT、ARRAY) | | label | String | 是 | 参数显示名称 | | required | Boolean | 否 | 是否必填,默认为false | | defaultValue | String | 是 | 默认值 | | remark | String | 否 | 参数说明,默认为空字符串 | #### 请求示例 ```json { "taskId": "193f8412-fa0d-4b6d-9648-70bceacd6629", "params": [ { "name": "from", "type": "String", "label": "起点", "required": false, "defaultValue": "WH-01", "remark": "起始位置" }, { "name": "to", "type": "String", "label": "终点", "required": true, "defaultValue": "PKG-02", "remark": "目标位置" } ], "source_system": "web_editor", "source_device": "device_001", "source_type": 1 } ``` #### 响应参数 ```json { "code": 200, "message": "任务启动成功", "data": { "taskRecordId": "a52c6b91-de78-4fd2-9d18-5f79ba8e7c1d", "status": 1001, "createTime": "2023-05-18 15:20:36" } } ``` #### 错误响应 1. 缺少必填参数时: ```json { "code": 400, "message": "缺少必填参数" } ``` 2. 设备已有相同任务运行且不允许重启时: ```json { "code": 409, "message": "相同设备已有此任务正在运行中,请等待任务完成后再次启动" } ``` 3. 任务不存在时: ```json { "code": 404, "message": "任务不存在" } ``` 4. 其他服务器错误: ```json { "code": 500, "message": "任务启动失败" } ``` ### 9. 获取任务输入参数配置 #### 接口描述 获取指定任务的输入参数配置信息,用于编辑任务时展示当前任务已配置的输入参数。同时返回任务基本信息和可用的参数类型,方便前端一次性获取所需信息。 #### 请求方式 - **HTTP方法**: GET - **接口路径**: `/api/vwed-task-edit/input-params/{id}` #### 请求参数 | 参数名 | 类型 | 必填 | 描述 | |-------|------|-----|------| | id | String | 是 | 任务ID,路径参数 | #### 响应参数 ```json { "code": 200, "message": "操作成功", "data": { "inputParams": [ { "name": "from", "type": "String", "label": "起点", "required": false, "defaultValue": "", "remark": "起始位置" }, { "name": "to", "type": "String", "label": "终点", "required": true, "defaultValue": "", "remark": "目标位置" } ], "taskInfo": { "id": "193f8412-fa0d-4b6d-9648-70bceacd6629", "label": "test1", "version": 3, "remark": "测试任务", "templateName": "userTemplate" }, "paramTypes": [ { "code": "STRING", "label": "字符串", "description": "文本类型数据" }, { "code": "BOOLEAN", "label": "布尔", "description": "布尔类型,值为true或false" }, { "code": "INTEGER", "label": "整数", "description": "整数类型" }, { "code": "FLOAT", "label": "浮点数", "description": "浮点数类型" }, { "code": "OBJECT", "label": "JSON对象", "description": "JSON对象类型,如{\"key\":\"value\"}" }, { "code": "ARRAY", "label": "JSON数组", "description": "JSON数组类型,如[\"item1\",\"item2\"]" } ] } } ``` ### 10. 保存任务输入参数配置 #### 接口描述 保存指定任务的输入参数配置信息。系统支持根据获取可用输入参数类型接口返回的字段动态配置参数。 #### 请求方式 - **HTTP方法**: POST - **接口路径**: `/api/vwed-task-edit/input-params/{id}` #### 请求参数 | 参数名 | 类型 | 必填 | 描述 | |-------|------|-----|------| | id | String | 是 | 任务ID,路径参数 | | inputParams | Array | 是 | 输入参数配置数组 | #### 请求示例 ```json { "inputParams": [ { "name": "test", "type": "Number", "label": "test", "required": false, "defaultValue": "", "remark": "" }, { "name": "from", "type": "String", "label": "起点", "required": false, "defaultValue": "", "remark": "起始位置" }, { "name": "to", "type": "String", "label": "终点", "required": true, "defaultValue": "", "remark": "目标位置" } ] } ``` #### 响应参数 ```json { "code": 200, "message": "保存成功", "data": null } ``` ### 11. 获取任务基本设置 #### 接口描述 获取任务的基本信息设置,包括任务名称、备注、是否在任务异常结束或终止时解锁库位等配置。 #### 请求方式 - **HTTP方法**: GET - **接口路径**: `/api/vwed-task-edit/basic-settings/{id}` #### 请求参数 | 参数名 | 类型 | 必填 | 描述 | |-------|------|-----|------| | id | String | 是 | 任务ID,路径参数 | #### 响应参数 ```json { "code": 200, "message": "操作成功", "data": { "id": "193f8412-fa0d-4b6d-9648-70bceacd6629", "label": "test1", "remark": "测试任务基本设置", "releaseSites": true, "version": 3, "createDate": "2023-05-10 14:30:22" } } ``` ### 12. 保存任务基本设置 #### 接口描述 保存任务的基本信息设置,包括任务名称、备注、是否在任务异常结束或终止时解锁库位等配置。此接口修改的是vwed_taskdef表中的数据。 #### 请求方式 - **HTTP方法**: POST - **接口路径**: `/api/vwed-task-edit/basic-settings/{id}` #### 请求参数 | 参数名 | 类型 | 必填 | 描述 | |-------|------|-----|------| | id | String | 是 | 任务ID,路径参数 | | label | String | 是 | 任务名称 | | remark | String | 否 | 备注信息 | | releaseSites | Boolean | 否 | 任务异常结束/终止时是否解锁库位,默认为true | #### 请求示例 ```json { "label": "test1", "remark": "测试任务基本设置", "releaseSites": true } ``` #### 响应参数 ```json { "code": 200, "message": "保存成功", "data": { "id": "193f8412-fa0d-4b6d-9648-70bceacd6629", "label": "test1", "remark": "测试任务基本设置", "releaseSites": true, "updateTime": "2023-05-10 16:30:22" } } ``` ### 13. 获取常用参数字段 #### 接口描述 获取常用参数的展示字段和字段值类型,用于任务编辑页面中间部分上侧的常用字段展示区域。 #### 请求方式 - **HTTP方法**: GET - **接口路径**: `/api/vwed-task-edit/common-params` #### 请求参数 无 #### 响应参数 ```json { "code": 200, "message": "操作成功", "data": [ { "id": "robotId", "label": "机器人id", "type": "String", "description": "机器人唯一标识", "example": "robot_001", "placeholder": "机器人ID", "order": 1, "values": [ {"id": "robot_001", "name": "AGV-001", "description": "1号AGV机器人"}, {"id": "robot_002", "name": "AGV-002", "description": "2号AGV机器人"}, {"id": "robot_003", "name": "AGV-003", "description": "3号AGV机器人"} ] }, { "id": "robotGroup", "label": "机器人组", "type": "Array", "description": "机器人分组信息", "example": "['group1', 'group2']", "placeholder": "机器人组", "order": 2, "values": [ {"id": "group1", "name": "分拣组", "description": "负责物品分拣的机器人组"}, {"id": "group2", "name": "运输组", "description": "负责物品运输的机器人组"}, {"id": "group3", "name": "装配组", "description": "负责物品装配的机器人组"} ] }, { "id": "robotTag", "label": "机器人标签", "type": "String", "description": "机器人标签信息", "example": "delivery", "placeholder": "机器人标签", "order": 3, "values": [ {"id": "delivery", "name": "配送", "description": "配送类机器人"}, {"id": "picking", "name": "拣货", "description": "拣货类机器人"}, {"id": "cleaning", "name": "清洁", "description": "清洁类机器人"} ] }, { "id": "siteId", "label": "库位id", "type": "String", "description": "库位唯一标识", "example": "site_001", "placeholder": "库位ID", "order": 4, "values": [ {"id": "site_001", "name": "A01", "description": "A区1号库位"}, {"id": "site_002", "name": "A02", "description": "A区2号库位"}, {"id": "site_003", "name": "B01", "description": "B区1号库位"} ] }, { "id": "area", "label": "库区", "type": "String", "description": "库区信息", "example": "A区", "placeholder": "库区", "order": 5, "values": [ {"id": "area_A", "name": "A区", "description": "A区储存区"}, {"id": "area_B", "name": "B区", "description": "B区储存区"}, {"id": "area_C", "name": "C区", "description": "C区装配区"} ] }, { "id": "station", "label": "站点", "type": "String", "description": "站点信息", "example": "station_001", "placeholder": "站点", "order": 6, "values": [ {"id": "station_001", "name": "入库站", "description": "物品入库站点"}, {"id": "station_002", "name": "出库站", "description": "物品出库站点"}, {"id": "station_003", "name": "检验站", "description": "物品质检站点"} ] }, { "id": "binTask", "label": "binTask", "type": "Object", "description": "bin任务相关信息", "example": "{\"id\": \"bin_001\"}", "placeholder": "binTask", "order": 7, "values": [ {"id": "bin_001", "name": "分拣任务", "description": "物品分拣任务"}, {"id": "bin_002", "name": "装箱任务", "description": "物品装箱任务"}, {"id": "bin_003", "name": "码垛任务", "description": "物品码垛任务"} ] }, { "id": "workstation", "label": "工位", "type": "String", "description": "工位信息", "example": "ws_001", "placeholder": "工位", "order": 8, "values": [ {"id": "ws_001", "name": "装配工位1", "description": "1号装配工位"}, {"id": "ws_002", "name": "装配工位2", "description": "2号装配工位"}, {"id": "ws_003", "name": "测试工位", "description": "产品测试工位"} ] }, { "id": "position", "label": "岗位", "type": "String", "description": "岗位信息", "example": "operator", "placeholder": "岗位", "order": 9, "values": [ {"id": "operator", "name": "操作员", "description": "设备操作人员"}, {"id": "inspector", "name": "检验员", "description": "质量检验人员"}, {"id": "manager", "name": "管理员", "description": "区域管理人员"} ] }, { "id": "user", "label": "用户", "type": "Object", "description": "用户信息", "example": "{\"id\": \"user_001\", \"name\": \"张三\"}", "placeholder": "用户", "order": 10, "values": [ {"id": "user_001", "name": "张三", "description": "系统操作员"}, {"id": "user_002", "name": "李四", "description": "系统管理员"}, {"id": "user_003", "name": "王五", "description": "系统维护员"} ] }, { "id": "cache", "label": "缓存", "type": "Object", "description": "缓存数据", "example": "{\"key\": \"value\"}", "placeholder": "缓存", "order": 11, "values": [ {"id": "cache_task", "name": "任务缓存", "description": "任务相关的缓存数据"}, {"id": "cache_user", "name": "用户缓存", "description": "用户相关的缓存数据"}, {"id": "cache_system", "name": "系统缓存", "description": "系统相关的缓存数据"} ] }, { "id": "builtInFunction", "label": "内置函数", "type": "Function", "description": "系统内置函数", "example": "getCurrentTime()", "placeholder": "内置函数", "order": 12, "values": [ {"id": "getCurrentTime", "name": "获取当前时间", "description": "返回系统当前时间", "syntax": "getCurrentTime()"}, {"id": "formatDate", "name": "格式化日期", "description": "将日期格式化为指定格式", "syntax": "formatDate(date, format)"}, {"id": "generateUUID", "name": "生成UUID", "description": "生成唯一标识符", "syntax": "generateUUID()"} ] } ] } ``` ## 四、组件相关数据结构 ### 1. 组件类型说明 任务编辑中的组件类型主要分为以下几类: | 类别ID | 类别名称 | 描述 | |-------|---------|------| | subtask | 子任务 | 用于创建和管理子任务,支持任务的层级结构和模块化 | | script | 脚本 | 支持编写自定义脚本,实现复杂的业务逻辑 | | http | HTTP请求 | 用于与外部系统进行通信,发送HTTP请求并处理响应 | | task | 任务 | 基本任务单元,包含任务的核心属性和行为 | | flow | 流程 | 控制任务执行流程,如条件判断、循环等 | | base | 基础 | 提供基础功能,如变量操作、数据转换等 | | site | 库位 | 与工位或库位相关的组件,用于定位和操作 | | robot | 机器人 | 控制和管理机器人的调度和执行 | | device | 设备 | 与外部设备交互的组件 | ### 2. 任务详情结构说明 任务详情(detail)字段是一个JSON对象,包含以下主要部分: | 属性名 | 类型 | 描述 | |-------|------|------| | inputParams | Array | 任务输入参数定义数组 | | outputParams | Array | 任务输出参数定义数组(可能为空) | | rootBlock | Object | 任务根块配置,包含所有子组件和连接关系 | #### 输入参数对象结构 | 属性名 | 类型 | 描述 | |-------|------|------| | name | String | 参数名称,用于代码中引用 | | type | String | 参数类型(String、Number、Boolean、Object等) | | label | String | 参数显示名称 | | remark | String | 参数说明 | | defaultValue | String | 参数默认值 | | required | Boolean | 是否必填 | #### 根块对象结构 | 属性名 | 类型 | 描述 | |-------|------|------| | id | Number/String | 块ID,根块固定为-1 | | name | String | 块名称 | | blockType | String | 块类型,根块固定为RootBp | | inputParams | Object | 块输入参数配置 | | children | Object | 子块配置,包含default属性下的子块数组 | | selected | Boolean | 是否被选中(编辑状态) | | expanded | Boolean | 是否被展开(编辑状态) | #### 子块对象结构 | 属性名 | 类型 | 描述 | |-------|------|------| | id | Number | 块ID,唯一标识 | | name | String | 块名称 | | blockType | String | 块类型,对应组件类型 | | children | Object | 子块配置,根据块类型不同可能有不同的属性 | | inputParams | Object | 块输入参数配置 | | refTaskDefId | String | 引用的任务定义ID(子任务类型使用) | | selected | Boolean | 是否被选中(编辑状态) | | expanded | Boolean | 是否被展开(编辑状态) | ### 3. 参数值类型 组件参数值支持以下几种类型: | 类型 | 描述 | |-----|------| | Simple | 简单值,直接输入的固定值 | | Expression | 表达式,使用${变量名}语法引用变量 | | JSON | JSON格式,用于复杂数据结构 |