# 按用户查询工时（多项目） - ListProjectWorkHours
#### 功能介绍
按用户查询工时（多项目）
#### 调用方法
请参见[如何调用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:list | List | -           | - codeartsreq:Model   - codeartsreq:ProjectId    | -  | -      |
   
#### URI
POST /v4/projects/work-hours
#### 请求参数
表1请求Body参数 
| 参数               | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| begin_time       | 否    | String           | **参数解释：** 工时开始日期，日期格式：YYYY-MM-DD **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| end_time         | 否    | String           | **参数解释：** 工时结束日期，日期格式：YYYY-MM-DD **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| limit            | 否    | Integer          | **参数解释：** 每页显示数量，每页最多显示500条 **约束限制：** 不涉及 **取值范围：** 1-500。 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| offset           | 否    | Integer          | **参数解释：** 分页偏移量，表示查询结果集的起始偏移位置，采用零基索引机制。其取值必须为 limit 参数值的整数倍，以确保分页结果集的正确对齐与连续性。 **约束限制：** 不涉及 **取值范围：** 0\~10000。 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| project_ids      | 否    | Array of strings | **参数解释**： 项目的32位UUID，项目唯一标识，通过[查询项目列表接口](https://support.huaweicloud.com/api-projectman/ListProjectsV4.html)获取，响应消息体中的**project_id**字段的值就是项目ID。 **约束限制**： 32个字符，由英文字母和数字组成 **取值范围：** 不涉及 **默认取值**： 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| user_ids         | 否    | Array of strings | **参数解释**： 查询的用户id列表，通过获取当前用户信息接口获取，响应消息体中的**user_id**字段的值就是用户id **约束限制**： 32个字符，由小写字母和数字组成 **取值范围**： 不涉及 **默认取值**： 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| work_hours_dates | 否    | String           | **参数解释：** 工时日期，日期格式：YYYY-MM-DD，以英文逗号分隔 样例：2020-05-02,2020-03-02,2021-09-01 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| work_hours_types | 否    | String           | **参数解释：** 工时类型，以逗号分隔，样例：21，22，23 **约束限制：** 不涉及 **取值范围：** - 21（研发设计）   - 22（后端开发）   - 23（前端开发Web）   - 24（前端开发小程序）   - 25（前端开发App）   - 26（测试验证）   - 27（缺陷修复）   - 28（UI设计）   - 29（会议）   - 30（公共事务）   - 31（培训）   - 32（研究）   - 33（其它）   - 34（调休请假）   - 自定义工时类型，通过接口/v4/projects/{project_id}/work-hours-type获取    **默认取值：** 不涉及 |
   
#### 响应参数
**状态码：200**
表2响应Body参数 
| 参数         | 参数类型                                                                      | 描述                                                                                                                                                   |
|:---|:---|:---|
| total      | Integer                                                                   | **参数解释：** 总数。 **取值范围：** 不涉及。 |
| work_hours | Array of [work_hours] objects | **参数解释：** 工时列表。                                                                                              |
   
 表3work_hours 
| 参数                      | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| closed_time             | String  | **参数解释：** 工作项结束时间。 **取值范围：** 不涉及。                                                                                                                                                                                                           |
| created_time            | String  | **参数解释：** 工作项创建时间。 **取值范围：** 不涉及。                                                                                                                                                                                                           |
| issue_id                | Integer | **参数解释：** 工作项ID。 **取值范围：** 不涉及。                                                                                                                                                                                                             |
| issue_type              | String  | **参数解释：** 工作项类型。 **取值范围：** 2（任务/Task） 3（缺陷/Bug） 5（Epic） 6（Feature） 7（Story） |
| nick_name               | String  | **参数解释：** 用户昵称。 **取值范围：** 不涉及。                                                                                                                                                                                                              |
| project_name            | String  | **参数解释：** 项目名称。 **取值范围：** 不涉及。                                                                                                                                                                                                              |
| subject                 | String  | **参数解释：** 工作项标题。 **取值范围：** 不涉及。                                                                                                                                                                                                             |
| summary                 | String  | **参数解释：** 工时内容。 **取值范围：** 不涉及。                                                                                                                                                                                                              |
| user_id                 | String  | **参数解释：** 用户ID。 **取值范围：** 不涉及。                                                                                                                                                                                                              |
| user_name               | String  | **参数解释：** 用户名。 **取值范围：** 不涉及。                                                                                                                                                                                                               |
| work_date               | String  | **参数解释：** 工时日期。 **取值范围：** 不涉及。                                                                                                                                                                                                              |
| work_hours_created_time | String  | **参数解释：** 工时创建时间。 **取值范围：** 不涉及。                                                                                                                                                                                                            |
| work_hours_num          | String  | **参数解释：** 工时花费。 **取值范围：** 不涉及。                                                                                                                                                                                                              |
| work_hours_type_name    | String  | **参数解释：** 工时类型。 **取值范围：** 不涉及。                                                                                                                                                                                                              |
| work_hours_updated_time | String  | **参数解释：** 工时更新时间。 **取值范围：** 不涉及。                                                                                                                                                                                                            |
   
**状态码：400**
表4响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                                     |
|:---|:---|:---|
| error_code | String | **参数解释**： 错误码。 **取值范围**： 不涉及。  |
| error_msg  | String | **参数解释**： 错误描述。 **取值范围**： 不涉及。 |
   
**状态码：401**
表5响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                                             |
|:---|:---|:---|
| error_code | String | **参数解释**： 错误码。 **取值范围**： 不涉及。          |
| error_msg  | String | **参数解释**： 错误描述。 **取值范围**： 不涉及。         |
| request_id | String | **参数解释**： 请求的ID，系统自动生成。 **取值范围**： 不涉及。 |
   
#### 请求示例
```
POST https://{endpoint}/v4/projects/work-hours
{
  "end_time" : "2020-08-14",
  "limit" : 1,
  "offset" : 0,
  "project_ids" : [ "e2da96a5d2c845e284f0ad47f8ca8cb2", "a2da96a5d2c845e284f0ad47f8ca8cef" ]
}
```
#### 响应示例
**状态码：200**
```
{
  "work_hours" : [ {
    "project_name" : "项目名称",
    "nick_name" : "用户昵称",
    "user_id" : "09d75cdd9a00d44d2f17c01875483f26",
    "user_name" : "用户名",
    "work_date" : "2020-02-19",
    "work_hours_num" : "2.0",
    "summary" : "做了XXXXX",
    "work_hours_type_name" : "后端开发",
    "issue_id" : 123456,
    "issue_type" : "Story",
    "subject" : "工作项标题",
    "created_time" : "2019-12-17",
    "closed_time" : "2019-12-20",
    "work_hours_created_time" : "2019-12-17 09:00:00",
    "work_hours_updated_time" : "2019-12-20 15:00:00"
  } ],
  "total" : 1
}
```
#### SDK代码示例
SDK代码示例如下。
#### Java
```
package com.huaweicloud.sdk.test;
import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.projectman.v4.region.ProjectManRegion;
import com.huaweicloud.sdk.projectman.v4.*;
import com.huaweicloud.sdk.projectman.v4.model.*;
import java.util.List;
import java.util.ArrayList;
public class ListProjectWorkHoursSolution {
    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");
        ICredential auth = new BasicCredentials()
                .withAk(ak)
                .withSk(sk);
        ProjectManClient client = ProjectManClient.newBuilder()
                .withCredential(auth)
                .withRegion(ProjectManRegion.valueOf("<YOUR REGION>"))
                .build();
        ListProjectWorkHoursRequest request = new ListProjectWorkHoursRequest();
        ListProjectWorkHoursRequestBody body = new ListProjectWorkHoursRequestBody();
        List<String> listbodyProjectIds = new ArrayList<>();
        listbodyProjectIds.add("e2da96a5d2c845e284f0ad47f8ca8cb2");
        listbodyProjectIds.add("a2da96a5d2c845e284f0ad47f8ca8cef");
        body.withLimit(1);
        body.withOffset(0);
        body.withEndTime("2020-08-14");
        body.withProjectIds(listbodyProjectIds);
        request.withBody(body);
        try {
            ListProjectWorkHoursResponse response = client.listProjectWorkHours(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}
```
#### Python
```
# coding: utf-8
import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkprojectman.v4.region.projectman_region import ProjectManRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkprojectman.v4 import *
if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    credentials = BasicCredentials(ak, sk)
    client = ProjectManClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(ProjectManRegion.value_of("<YOUR REGION>")) \
        .build()
    try:
        request = ListProjectWorkHoursRequest()
        listProjectIdsbody = [
            "e2da96a5d2c845e284f0ad47f8ca8cb2",
            "a2da96a5d2c845e284f0ad47f8ca8cef"
        ]
        request.body = ListProjectWorkHoursRequestBody(
            limit=1,
            offset=0,
            end_time="2020-08-14",
            project_ids=listProjectIdsbody
        )
        response = client.list_project_work_hours(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)
```
#### Go
```
package main
import (
"fmt"
"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    projectman "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/projectman/v4"
"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/projectman/v4/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/projectman/v4/region"
)
func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")
    auth, err := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        SafeBuild()
    if err != nil {
        fmt.Println(err)
        return
    }
    hcClient, err := projectman.ProjectManClientBuilder().
         WithRegion(region.ValueOf("<YOUR REGION>")).
         WithCredential(auth).
         SafeBuild()
    if err != nil {
        fmt.Println(err)
        return
    }
    client := projectman.NewProjectManClient(hcClient)
    request := &model.ListProjectWorkHoursRequest{}
var listProjectIdsbody = []string{
        "e2da96a5d2c845e284f0ad47f8ca8cb2",
    "a2da96a5d2c845e284f0ad47f8ca8cef",
    }
endTimeListProjectWorkHoursRequestBody:= "2020-08-14"
request.Body = &model.ListProjectWorkHoursRequestBody{
Limit: int32(1),
Offset: int32(0),
EndTime: &endTimeListProjectWorkHoursRequestBody,
ProjectIds: &listProjectIdsbody,
}
response, err := client.ListProjectWorkHours(request)
if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}
```
#### 更多
更多编程语言的SDK代码示例，请参见[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/ProjectMan/sdk?api=ListProjectWorkHours)的代码示例页签，可生成自动对应的SDK代码示例。
#### 状态码
| 状态码 | 描述           |
|:---|:---|
| 200 | ok           |
| 400 | Bad Request  |
| 401 | Unauthorized |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-projectman/ErrorCode.html)。
