
# 新增父子任务（API名称：createSubTask）
#### 功能介绍
用于用户系统创建父任务。
#### 相关接口
| **接口名称**                                                             | **调用说明**                                                     |
|:---|:---|
| [获取Token](https://support.huaweicloud.com/api-isdp/api_01_0019.html) | 调用该接口获取到Token，再调用其他接口时，需要在请求消息头中添加"Authorization"，其值即为Token。 |
| [查询父任务](https://support.huaweicloud.com/api-isdp/api_01_0037.html)   | 新增后可以查询是否新增成功                                                |
   
#### 请求头
| **KEY**       | VALUE                  | 是否必填 | **描述**                                                                                           |
|:---|:---|:---|:---|
| Content-Type  | application/json       | 是    | 无                                                                                                |
| Authorization | bearer ${access_token} | 是    | bearer +" "+[5.2.1](https://support.huaweicloud.com/api-isdp/api_01_0019.html)中获取的access_token的值 |
   
#### URL
| **请求方式** | **HTTPS地址**                                                  | **服务架构** | **消息体类型**        |
|:---|:---|:---|:---|
| POST     | https://***isdp+域名***/openapi/v1/openSceneTask/createSubTask | OpenAPI  | application/json |
   
#### 请求参数
| **参数**                     | **类型**             | **是否必填** | **描述**                                                                                                              |
|:---|:---|:---|:---|
| customerTaskId             | String             | 是        | 客户任务ID                                                                                                              |
| creatorAccount             | String             | 否        | 创建人账号（isdp+中存在的人员账号）                                                                                                |
| taskName                   | String             | 是        | 父任务名称                                                                                                               |
| signSiteName               | String             | 否        | 作业对象名称                                                                                                              |
| sceneName                  | String             | 是        | 场景名称，取最新版本                                                                                                          |
| projectNo                  | String             | 否        | 项目编码                                                                                                                |
| assignedUserType           | Integer            | 是        | 执行人类型：1-执行人；2-群组                                                                                                    |
| assignedUser               | String             | 是        | 执行人（如果是执行人，则传执行人账号，多个用";"隔开；如果是群组，传群组名称，只能单个）                                                                       |
| supplierName               | String             | 否        | 供应商名称                                                                                                               |
| reviewRuleName             | Long               | 否        | 任务申请审批流名称，需要审批时为必填                                                                                                  |
| collectionReviewName       | Long               | 否        | 检查单采集审批流名称，需要审批时为必填（只有挂检查单的场景才有）                                                                                    |
| beginTimestamp             | Long               | 否        | 计划开始时间时间戳                                                                                                           |
| endTimestamp               | Long               | 否        | 计划完成时间时间戳                                                                                                           |
| taskRemark                 | String             | 否        | 任务描述                                                                                                                |
| administrativeDivisionName | String             | 否        | 行政区域 说明： 支持输入多个值，多个值时用分号隔开。 |
| priority                   | String             | 否        | 优先级                                                                                                                 |
| jobDuration                | Integer            | 否        | 标准作业时长                                                                                                              |
| projectDuration            | Integer            | 否        | 工期                                                                                                                  |
| schedulingMode             | String             | 否        | 调度模式                                                                                                                |
| address                    | String             | 否        | 任务地址（最多1000个字符）                                                                                                     |
| requiredStartTime          | Long               | 否        | 要求开始时间                                                                                                              |
| requiredEndTime            | Long               | 否        | 要求结束时间                                                                                                              |
| skill                      | Stirng             | 否        | 技能                                                                                                                  |
| customerName               | String             | 否        | 客户名称                                                                                                                |
| geoType                    | String             | 否        | 父任务经纬度类型（值只能为BD或者为空）                                                                                                |
| longitude                  | String             | 否        | 父任务经度信息                                                                                                             |
| latitude                   | String             | 否        | 父任务纬度信息                                                                                                             |
| geoType                    | String             | 否        | 子任务经纬度类型（值只能为BD或者为空）                                                                                                |
| longitude                  | String             | 否        | 子任务经度信息                                                                                                             |
| latitude                   | String             | 否        | 子任务纬度信息                                                                                                             |
| subTaskList                | List\<Object\>     | 是        | 子任务列表，场景配置了多少子任务，这里就要填写多少个，否则会报错                                                                                    |
| taskExtendList             | List\<Object\>     | 否        | 拓展属性列表                                                                                                              |
| saveDraft                  | String             | 否        | 保存/提交 0：保存草稿 1：提交                                                                                                   |
| isCustomerTaskIdDuplicate  | String             | 否        | 是否允许客户任务ID重复，Y：允许 N:不允许重复为空或默认为N                                                                                    |
| Toolset                    | List\<TaskToolVO\> | 否        | 工具集                                                                                                                 |
   
subTaskList列表入参：
| **参数**                     | **类型**             | **是否必填** | **描述**                                                       |
|:---|:---|:---|:---|
| modeOrder                  | Int                | 是        | 序号，从1开始，对应场景配置的序号                                            |
| taskName                   | String             | 否        | 子任务名称，以入参为准，入参为空则取场景的名称                                      |
| signSiteName               | String             | 否        | 作业对象名称                                                       |
| assignedUserType           | Integer            | 是        | 执行人类型：1-执行人；2-群组                                             |
| assignedUser               | String             | 否        | 执行人（如果是执行人，则传执行人账号，多个用";"隔开；如果是群组，传群组名称，只能单个，如果入参是空，则取场景里的值） |
| collectionReviewName       | String             | 否        | 采集审批流名称，优先取场景里配置的名称，如果没有再取入参的名称                              |
| beginTimestamp             | Long               | 否        | 计划开始时间时间戳                                                    |
| endTimestamp               | Long               | 否        | 计划完成时间时间戳                                                    |
| taskRemark                 | String             | 否        | 任务描述                                                         |
| administrativeDivisionName | String             | 否        | 行政区域                                                         |
| priority                   | String             | 否        | 优先级                                                          |
| jobDuration                | Integer            | 否        | 标准作业时长                                                       |
| projectDuration            | Integer            | 否        | 工期                                                           |
| address                    | String             | 否        | 任务地址（最多1000个字符）                                              |
| requiredStartTime          | Long               | 否        | 要求开始时间                                                       |
| requiredEndTime            | Long               | 否        | 要求结束时间                                                       |
| skill                      | Stirng             | 否        | 技能                                                           |
| taskExtendList             | List\<Object\>     | 否        | 子任务拓展属性列表                                                    |
| procedureList              | List\<Object\>     | 否        | 工序列表，这里只可以给对应的工序配置采集审批流。                                     |
| Toolset                    | List\<TaskToolVO\> | 否        | 工具集                                                          |
   
taskExtendList列表入参（父子任务的入参一样）：
| **参数**      | **类型**  | **是否必填** | **描述**                                         |
|:---|:---|:---|:---|
| fieldName   | String  | 是        | 拓展属性字段名称                                       |
| extendValue | String  | 是        | 拓展属性值（如果是时间和日期，值必须是时间戳）                        |
| stage       | Integer | 否        | 任务扩展属性阶段：1创建阶段 2执行阶段 不填写默认为创建阶段（与场景中的扩展属性阶段匹配） |
   
procedureList列表入参：
| **参数**               | **类型** | **是否必填** | **描述**                           |
|:---|:---|:---|:---|
| modeOrder            | Int    | 是        | 序号，从1开始，对应场景配置的序号                |
| collectionReviewName | Long   | 否        | 检查单采集审批流名称，需要审批时为必填（只有挂检查单的场景才有） |
   
preTaskList子任务前后置关系每个Object字段说明：
| **参数**            | **类型** | **是否必填** | **描述**                                                  |
|:---|:---|:---|:---|
| isEnabledScenePre | String | 否        | 是否继承场景前后置关系 Y：从场景获取，不取接口参数 N ：不从场景获取，只取接口入参为准；默认Y，从场景集成 |
| preTaskName       | String | 是        | 前置任务名称                                                  |
| preTaskLocation   | String | 是        | 前置任务位置信息                                                |
| taskPreName       | String | 是        | 后置任务名称                                                  |
| taskPreLocation   | String | 是        | 后置任务位置                                                  |
| preType           | String | 是        | 前置后置关系                                                  |
   
preTaskLocation参数说明：
| **参数** | **类型** | **是否必填** | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| x      | int    | 是        | 1. 无现成子任务关系，则初始值赋 X=50 Y=50  2. 后置子任务，则在当前子任务基础上赋值：X不变，Y增加250  3. 兄弟子任务，则在当前子任务基础上赋值：X增加150，Y不变   |
| y      | int    | 是        | 1. 无现成子任务关系，则初始值赋 X=50 Y=50  2. 后置子任务，则在当前子任务基础上赋值：X不变，Y增加250  3. 兄弟子任务，则在当前子任务基础上赋值：X增加150，Y不变   |
   
taskPreLocation参数说明：
| **参数** | **类型** | **是否必填** | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| x      | int    | 是        | 1. 无现成子任务关系，则初始值赋 X=50 Y=50  2. 后置子任务，则在当前子任务基础上赋值：X不变，Y增加250  3. 兄弟子任务，则在当前子任务基础上赋值：X增加150，Y不变   |
| y      | int    | 是        | 1. 无现成子任务关系，则初始值赋 X=50 Y=50  2. 后置子任务，则在当前子任务基础上赋值：X不变，Y增加250  3. 兄弟子任务，则在当前子任务基础上赋值：X增加150，Y不变   |
   
toolSet入参
| **参数**        | **类型**                       | **是否必填** | **描述**                  |
|:---|:---|:---|:---|
| id            | Long                         | 否        | 主键id                    |
| parentTaskId  | Long                         | 否        | 父任务id                   |
| toolNo        | String                       | 是        | 工具编号                    |
| toolName      | String                       | 是        | 工具名称                    |
| redirectUrl   | String                       | 否        | 第三方工具跳转url              |
| extensionType | Integer                      | 否        | 扩展属性类型（1：表单；2：json）     |
| toolLocation  | Map\<String, Object\>        | 是        | 工具在画布中的位置json           |
| toolAttrList  | Object                       | 否        | 工具扩展属性配置json            |
| NextToolList  | List\<Map\<String,Object\>\> | 否        | 拓展属性值（如果是时间和日期，值必须是时间戳） |
   
#### 响应参数
| **参数**       | **类型** | **描述**           |
|:---|:---|:---|
| stateCode    | String | 响应状态码：0-成功；其他-失败 |
| errorMessage | String | 响应描述             |
| result       | Object | 响应结果内容data、分页数据  |
   
data出参:
| **参数**         | **类型**  | **描述**         |
|:---|:---|:---|
| customerTaskId | String  | 客户任务ID         |
| taskId         | Long    | 创建成功的任务id      |
| status         | Integer | 返回状态：0-成功;1-失败 |
| message        | String  | 返回的失败消息。       |
   
#### 请求示例
```
{
    "customerTaskId": 1667986035676,
    "taskName": "1667986035676lwc测试",
    "signSiteName": "bzh00201",
    "geoType": "BD",
    "longitude": "123.456",
    "latitude": "23.456",
    "creatorAccount": "17791717398",
    "sceneName": "测试openApi",
    "projectNo": "",
    "assignedUserType": 2,
    "assignedUser": "0326test",
    "ccPersonType": 6,
    "ccPerson": "",
    "ownerType": 7,
    "owner": "",
    "supplierName": "",
    "beginTimestamp": "1655913600000",
    "endTimestamp": "1655913600000",
    "requiredStartTime": "",
    "requiredEndTime": "",
    "jobDuration": "",
    "projectDuration": "",
    "schedulingMode": "",
    "administrativeDivisionName": "",
    "address": "",
    "skill": "",
    "customerName": "",
    "taskExtendList": [],
    "toolSet": [
        {
            "toolNo": "T003",
            "toolName": "子任务2-工序1",
            "toolLocation": {
                "x": 100,
                "y": 200
            }
        }
    ],
    "subTaskList": [
        {
            "taskExtendList": [
                {
                    "fieldName": "",
                    "extendValue": ""
                },
                {
                    "fieldName": "",
                    "extendValue": ""
                }
            ],
            "signSiteName": "",
            "modeOrder": 1,
            "projectNo": "UI项目默认",
            "assignedUserType": 1,
            "assignedUser": "17791717398",
            "ccPersonType": 4,
            "ccPerson": "17791717398",
            "ownerType": 5,
            "owner": "17791717398",
            "supplierName": "",
            "reviewRuleName": "",
            "beginTimestamp": "1652803200000",
            "endTimestamp": "1653055200000",
            "requiredStartTime": "1653062400000",
            "longitude": "123.789",
            "latitude": "45.236",
            "geoType": "BD",
            "requiredEndTime": "1653926400000",
            "taskRemark": "测试任务备注",
            "collectionReviewName": "",
            "priority": "",
            "jobDuration": "",
            "projectDuration": "",
            "schedulingMode": "",
            "administrativeDivisionName": "",
            "address": "",
            "skill": "",
            "customerName": "",
            "procedureList": [],
            "toolSet": [
                {
                    "toolNo": "T003",
                    "toolName": "子任务2-工序1",
                    "toolLocation": {
                        "x": 100,
                        "y": 200
                    }
                }
            ]
        },
        {
            "taskExtendList": [],
            "signSiteName": "",
            "modeOrder": 2,
            "projectNo": "UI项目默认",
            "assignedUserType": 1,
            "assignedUser": "17791717398",
            "ccPersonType": 6,
            "ccPerson": "0326test",
            "ownerType": 7,
            "owner": "0326test",
            "reviewRuleName": "QQ-dan",
            "beginTimestamp": "1652803200000",
            "endTimestamp": "1653055200000",
            "requiredStartTime": "1653062400000",
            "requiredEndTime": "1653926400000",
            "taskRemark": "",
            "collectionReviewName": "",
            "priority": "",
            "jobDuration": "",
            "projectDuration": "",
            "schedulingMode": "",
            "administrativeDivisionName": "",
            "address": "",
            "skill": "证",
            "customerName": "",
            "procedureList": []
        }
    ]
}
```
#### 响应示例
```
{
    "stateCode": "0",
    "errorMessage": null,
    "result": {
        "customerTaskId": "1667985914779",
        "subTaskOrNot": 1,
        "procedureOrNot": 0,
        "ticketId": 0,
        "tenantId": 1463,
        "sceneMode": 4,
        "reviewRuleId": null,
        "isApplyApprove": 0,
        "reviewRuleName": "",
        "licenseSwitch": null,
        "status": 1,
        "deleteFlag": 0,
        "submitBy": 1823,
        "submitName": "superman",
        "submitDate": 1667985936199,
        "creationDate": 1667985936458,
        "creationTimestamp": 1667985936199,
        "createName": "张三",
        "createdBy": 1957,
        "lastUpdateTimestamp": 1667985936199,
        "lastUpdateDate": 1667985936458,
        "lastUpdateName": "张三",
        "lastUpdatedBy": 1957,
        "schedulerTimestamp": 1667985936199,
        "schedulerDate": 1667985936199,
        "operationTimestamp": 1667985936199,
        "signInConfig": null,
        "schedulerName": "OpenApi",
        "schedulerBy": -1,
        "entityName": "SceneTask",
        "sceneTaskId": 5005747,
        "appName": "isdp-task-server",
        "affectedRows": 1,
        "schedulingMode": null
    }
}
```
#### 状态码
状态码请参见[状态码](https://support.huaweicloud.com/api-isdp/api_01_0326.html)。
#### 错误码
错误码请参见[错误码](https://support.huaweicloud.com/api-isdp/api_01_0327.html)。
