# 创建工时 - CreateWorkHourOpenApi
#### 功能介绍
创建工时
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-projectman/projectman_api_1002.html)。
#### 授权信息
账号根用户具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备如下身份策略权限，更多的权限说明请参见[权限和授权项](https://support.huaweicloud.com/api-projectman/projectman_03_Permission.html)。
| 授权项                         | 访问级别  | 资源类型（\*为必须） | 条件键                                                                                                                                                                                                                                                                                                                                                                                                                        | 别名 | 依赖的授权项 |
|:---|:---|:---|:---|:---|:---|
| codeartsreq:workhour:create | Write | -           | - codeartsreq:Model   - codeartsreq:ProjectId    | -  | -      |
   
#### URI
POST /v1/ipdprojectservice/projects/{project_id}/work-items/{workitem_id}/work-hour
表1路径参数 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| project_id  | 是    | String | **参数解释**： 项目32位ID，项目唯一标识。通过[查询IPD项目列表](https://support.huaweicloud.com/api-projectman/ShowIpdProjectList.html)获取，响应消息体中的**id**字段的值就是项目ID。 **约束限制**： 不涉及。 **取值范围**： 32个字符，由英文字母和数字组成。 **默认取值**： 不涉及。 |
| workitem_id | 是    | String | 工作项ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   
#### 请求参数
表2请求Body参数 
| 参数                 | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| work_hour_category | 否    | String  | **参数解释**： 工时类型。页面展示取display_value字段值，接口传参使用value字段值。 **约束限制**： 不涉及。 **取值范围**： 0\~512个字符。具体可选值可以通过[查询工时类型](https://support.huaweicloud.com/api-projectman/ShowWorkHourCategory.html)接口获取。 **默认取值**： 不涉及                                                                                                                                                                                                                                                                                                                              |
| work_date_begin    | 是    | String  | **参数解释**： 工时开始日期。 **约束限制**： 开始日期需小于或等于结束日期（work_date_end）。 **取值范围**： 格式为yyyy/MM/dd。 **默认取值**： 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| work_date_end      | 是    | String  | **参数解释**： 工时结束日期。 **约束限制**： 结束日期需大于或等于开始日期（work_date_begin）。 **取值范围**： 格式为yyyy/MM/dd。 **默认取值**： 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| work_hours         | 是    | String  | **参数解释**： 工时总数。 **约束限制**： 需为非负数字字符串。当work_hour_type为1时，表示开始日期到结束日期期间的工时总人/天数；当work_hour_type为2时，表示每天的工时人/天数。 **取值范围**： 0\~100000。 **默认取值**： 不涉及                                                                                                                                                                                                                                                                                                                                                                                     |
| work_hour_type     | 是    | String  | **参数解释**： 工时计算类型，定义work_hours字段的含义。 **约束限制**： 不涉及。 **取值范围**： - 1：总数（work_hours表示开始日期到结束日期期间的工时总计）   - 2：每天（work_hours表示开始日期到结束日期每天的工时）    **默认取值**： 不涉及 |
| include_weekend    | 是    | Boolean | **参数解释**： 是否在工时计算中包含周末。 **约束限制**： 不涉及。 **取值范围**： - true：包含周末   - false：不包含周末    **默认取值**： false                                                         |
| description        | 否    | String  | **参数解释**： 工时内容描述。 **约束限制**： 不涉及。 **取值范围**： 0\~10000个字符。 **默认取值**： 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   
#### 响应参数
**状态码：200**
表3响应Body参数 
| 参数      | 参数类型                                                                       | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|
| status  | String                                                                     | **参数解释**： 响应状态。 **取值范围**： - success：创建工时成功   - error：创建工时失败    |
| message | String                                                                     | **参数解释**： 响应消息。当请求失败时返回失败原因。 **取值范围**： 0\~1000个字符。                                                                                                                                                                                                                                                                                                                                                                                         |
| result  | [WorkHourTotalVO] object | **参数解释**： 工时信息列表及工时总数。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                      |
   
 表4WorkHourTotalVO 
| 参数               | 参数类型                                                                       | 描述     |
|:---|:---|:---|
| data             | Array of [WorkHourVO] objects | 工时信息列表 |
| work_hours_total | String                                                                     | 实际工时总数 |
   
 表5WorkHourVO 
| 参数                 | 参数类型                                                             | 描述                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|
| id                 | String                                                           | **参数解释**： 工时记录ID。 **取值范围**： 18\~19个字符的数字字符串。                                                                                                                                                                                                           |
| title              | String                                                           | **参数解释**： 工时名称。 **取值范围**： 不涉及。                                                                                                                                                                                                                         |
| operation_id       | String                                                           | **参数解释**： 操作ID，用于标识具体的操作记录。 **取值范围**： 不涉及。                                                                                                                                                                                                             |
| description        | String                                                           | **参数解释**： 工时工作内容描述。 **取值范围**： 最大10000个字符。                                                                                                                                                                                                              |
| workitem_id        | String                                                           | **参数解释**： 工时关联的工作项ID。可以通过[查询工作项列表](https://support.huaweicloud.com/api-projectman/ListIpdProjectIssues.html)或者[查询树状工作项](https://support.huaweicloud.com/api-projectman/ShowIpdIssueTree.html)接口获取，响应消息体中的**id**字段的值就是工作项ID。 **取值范围**： 18\~19个字符的数字字符串。 |
| work_date          | String                                                           | **参数解释**： 工时日期时间戳，单位：毫秒。 **取值范围**： 不涉及。                                                                                                                                                                                                                |
| created_by         | [UserEntity] object | **参数解释**： 工时记录创建人信息。                                                                                                                                                                                                                                                                                                                     |
| modified_by        | [UserEntity] object | **参数解释**： 工时记录最后修改人信息。                                                                                                                                                                                                                                                                                                                   |
| work_hour_category | String                                                           | **参数解释**： 工时类型。页面展示取值为display_value，唯一标识取值为value。 **取值范围**： 不涉及。                                                                                                                                                                                       |
| work_hours         | Double                                                           | **参数解释**： 花费工时，单位为"人天"。 **取值范围**： 不涉及。                                                                                                                                                                                                                 |
   
 表6UserEntity 
| 参数        | 参数类型   | 描述                                                                                                                                                                                                                                                                        |
|:---|:---|:---|
| id        | String | **参数解释**： 用户ID，可通过[查询项目成员列表](https://support.huaweicloud.com/api-projectman/ListProjectUsers.html)接口获取，响应消息体中的**id**字段的值就是用户ID。 **取值范围**： 不涉及。 |
| name      | String | **参数解释**： 用户名称。 **取值范围**： 2\~64个字符。                                                                                                            |
| nick_name | String | **参数解释**： 用户昵称。 **取值范围**： 2\~30个字符。                                                                                                            |
   
**状态码：400**
表7响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                                                         |
|:---|:---|:---|
| error_code | String | **参数解释**： 错误码。 **取值范围**： 不涉及。                   |
| error_msg  | String | **参数解释**： 错误描述，对error_code的补充解释。 **取值范围**： 不涉及。 |
   
#### 请求示例
创建工时总数为100人/天，开始时间从2024/02/01至2024/02/06，工时类型为研发设计，包含周末的工时数据。
```
POST https://{endpoint}/v1/ipdprojectservice/projects/05c7d8bcf3db4829bc841e4ba93aaea5/work-items/976857692367659008/work-hour?_=1708329665577
{
  "work_hour_category" : "研发设计",
  "work_date_begin" : "2024/02/01",
  "work_date_end" : "2024/02/02",
  "work_hours" : "12",
  "work_hour_type" : 1,
  "include_weekend" : true,
  "description" : "工作内容工作内容工作内容"
}
```
#### 响应示例
**状态码：200**
```
{
  "status" : "success",
  "message" : null,
  "result" : {
    "data" : [ {
      "work_date" : "1745337600000",
      "modified_by" : "testuser",
      "work_hour_category" : {
        "id" : "1",
        "display_value" : "后端开发",
        "value" : "后端开发",
        "value_py" : "hdkf",
        "sequence" : 2,
        "level" : 1,
        "domain_id" : "1",
        "created_by" : "testuser",
        "created_date" : 1744750470000,
        "modified_by" : "testuser",
        "modified_date" : 1744750470000,
        "belong_definition_type" : "5"
      },
      "description" : null,
      "operation_id" : "1",
      "id" : "1",
      "work_hours" : 0.5,
      "title" : null,
      "created_by" : "testuser"
    } ],
    "work_hours_total" : 1
  }
}
```
#### 状态码
| 状态码 | 描述      |
|:---|:---|
| 200 | 创建工时返回体 |
| 400 | 失败返回体   |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-projectman/ErrorCode.html)。
