文档首页/ 需求管理 CodeArts Req/ API参考/ API/ IPD工作项管理/ 查询工作项列表 - ListIpdProjectIssues
更新时间:2025-12-11 GMT+08:00
分享

查询工作项列表 - ListIpdProjectIssues

功能介绍

需要获取IPD项目下的原始需求列表、系统特性列表、研发需求列表、缺陷列表时,可调用此接口,用户可以根据不同的过滤条件筛选出需要的工作项信息。

调用方法

请参见如何调用API

URI

POST /v1/ipdprojectservice/projects/{project_id}/issues/query

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数解释

项目的32位uuid,项目唯一标识,通过查询项目列表接口获取,响应消息体中的project_id字段的值就是项目ID。

约束限制

不涉及。

取值范围

不涉及。

默认取值

不涉及。

表2 Query参数

参数

是否必选

参数类型

描述

issue_type

String

参数解释:

工作项类型,区分大小写,传入错误的工作项类型时不返回数据,系统设备类和独立软件类型的项目当issue_type传入没有父子关系的工作项时,仅返回第一个工作项类型数据

约束限制:

支持多种工作项类型,使用英文逗号分隔

取值范围:

  • RR/SF/IR/SR/AR/Task/Bug:系统设备类项目可选值

  • RR/SF/IR/US/Task/Bug:独立软件类项目可选值

  • RR/Epic/FE/US/Task/Bug:云服务类项目可选值

默认取值:

不涉及

请求参数

表3 请求Body参数

参数

是否必选

参数类型

描述

filter

Array of Map<String,ConditionVO> objects

参数解释:

查询过滤器的数组,每个数组元素就是一个查询条件,数组元素为Map<String, ConditionVO>类型,Map中的key表示查询的列,ConditionVO表示查询条件的值,值的来源根据key动态选择。

示例filter元素 {"descendants.plan_pi":{"values":["956200745322848257"],"operator":"||"}} ,表示查询项目下发布为956200745322848257的工作项。可以将这个查询条件翻译为SQL,select ... where plan_pi in ("956200745322848257"). plan_pi作为key ("descendants."表示在树形结构中搜索符合条件的子工作项,非必要条件。一般场景下,plan作为key即可),发布的id作为查询条件的值。如果要查询多个发布下的工作项,values数组中放入多个发布的id作为数组元素即可。

约束限制:

最大长度200。

取值范围:

不涉及。

默认取值:

不涉及。

filter_mode

String

参数解释:

过滤模式

约束限制:

最大长度512。

取值范围:

  • OR_AND:多条filter之间是或的关系,同一个filter的key,value是且的关系。

  • AND_OR:多条filter之间是且的关系,同一个filter的key,value是或的关系。

默认取值:

AND_OR

page

PageInfoVO object

参数解释:

分页信息。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

sort

Array of SortInfo objects

参数解释:

排序条件。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

表4 ConditionVO

参数

是否必选

参数类型

描述

values

Array of strings

参数解释:

查询条件的值。

取值范围:

根据查询条件的key确定。如key为plan_pi,值则为发布的id;如果key为assignee等人员类型字段,值为用户id;若key为created_date等日期时间类型字段,一般为[1760284800000,1760371199999]这种起止时间戳,精确到毫秒。

约束限制:

最大长度200

operator

String

参数解释:

操作符

约束限制:

不涉及

取值范围:

"||":表示查询目标和values之间的关系为或;

"!":表示查询目标和values之间的关系为非;

"=":表示查询目标和values之间的关系为等于,通常values中只有一个元素时使用;

"<>"、"<"、">":表示查询目标和values之间的关系为区间、小于、大于,通常用于日期时间、整数类型的过滤,包含边界值。

默认取值:

"||"

表5 PageInfoVO

参数

是否必选

参数类型

描述

page_no

Integer

参数解释:

分页索引

约束限制:

不涉及

取值范围:

最小值1,最大值10000

默认取值:

1

page_size

Integer

参数解释:

分页大小

约束限制:

不涉及

取值范围:

最小值5,最大值200

默认取值:

200

表6 SortInfo

参数

是否必选

参数类型

描述

field

String

参数解释:

排序字段code

约束限制:

不涉及

取值范围: 对应字段的唯一code,可选值可以通过查询字段模板列表接口获取,响应体中的code就是字段唯一标识。

默认取值:

不涉及

asc

Boolean

参数解释:

是否升序

约束限制:

不涉及

取值范围:

true(是)

false(否)

默认取值:

不涉及

响应参数

状态码:200

表7 响应Body参数

参数

参数类型

描述

status

String

参数解释:

返回状态。

取值范围:

success:响应成功

error:响应失败

message

String

参数解释:

信息

取值范围:

不涉及

result

IssueListResult object

参数解释:

结果数据

表8 IssueListResult

参数

参数类型

描述

issues

Array of IssueVO objects

参数解释:

工作项列表。

取值范围:

不涉及。

total

Integer

参数解释:

符合过滤条件的工作项总数。

取值范围:

不涉及。

表9 IssueVO

参数

参数类型

描述

sys_analysis_conclusion

String

参数解释:

分析结论,通常在接纳RR时填写。

取值范围:

不涉及。

sys_remark

String

参数解释:

备注。通常在提交验收RR时填写。

取值范围:

不涉及。

promised

OptionVO object

参数解释:

是否承诺。通常在接纳RR时填写。

取值范围:

不涉及。

type

String

参数解释:

工作项的分类。

取值范围:

  • requirement

  • raw requirement

  • bug

  • task

  • feature

belong_inside

String

参数解释:

标识工作项是否跨项目提交。

取值范围:

  • 1:跨项目提交工作项。

  • 0:非跨项目提交工作项。

src_domain

DomainVO object

参数解释:

工作项提出项目。

取值范围:

不涉及。

domain_id

DomainVO object

参数解释:

工作项归属项目。

取值范围:

不涉及。

send_from

String

参数解释:

原始需求的协同上游需求Id。

取值范围:

不涉及。

number

String

参数解释:

工作项编号,由工作项类型+年月日+6位随机数组成。

取值范围:

不涉及。

send_to

String

参数解释:

原始需求的协同下游需求Id。

取值范围:

不涉及。

path

String

参数解释:

工作项父子挂载路径关系。

取值范围:

不涉及。

workload_man_day

String

参数解释:

工作项计划工时。

取值范围:

不涉及。

sys_check_conclusion

String

参数解释:

验收结论。通常是验收RR时填写。

取值范围:

不涉及。

id

String

参数解释:

工作项唯一Id。

取值范围:

不涉及。

state

String

参数解释:

工作项生命周期。

取值范围:

  • 正在工作:可正常操作的工作项;

  • 作废:软删除后的工作项,可在回收站恢复;

  • 删除:彻底删除后的工作项,无法恢复。

stay_days

Integer

参数解释:

工作项在当前状态的停留天数。

取值范围:

不涉及。

assigned_cc

Array of UserVO objects

参数解释:

抄送人。

取值范围:

不涉及。

submit_time

String

参数解释:

工作项提交时间,指工作项进入工作流的时间,而不是创建时间。

取值范围:

不涉及。

workitem2label

Array of WorkItemLabelVO objects

参数解释:

工作项标签。

取值范围:

不涉及。

sys_return_conclusion

String

参数解释:

退回原因。通常为退回RR/Bug时填写。

取值范围:

不涉及。

close_time

String

参数解释:

工作项完成时间。

取值范围:

不涉及。

priority

OptionVO object

参数解释:

优先级。

取值范围:

不涉及。

modified_date

String

参数解释:

工作项最新修改时间。

取值范围:

不涉及。

created_by

UserVO object

参数解释:

工作项创建人。

取值范围:

不涉及。

break_status

OptionVO object

参数解释:

分解状态。

取值范围:

不涉及。

status_modified_date

String

参数解释:

工作项上一次流转状态的时间,可用于计算停留天数。unix时间戳,单位为毫秒。

取值范围:

不涉及。

expect_delivery_time

String

参数解释:

期望完成时间。Unix时间戳,单位为毫秒。

取值范围:

不涉及。

parent_id

String

参数解释:

工作项的父工作项Id。

取值范围:

不涉及。

assignee

UserVO object

参数解释:

责任人。

取值范围:

不涉及。

region

String

参数解释:

工作项所属租户的域。

取值范围:

不涉及。

status

AlmStatus object

参数解释:

工作项状态。

取值范围:

不涉及。

tenant_id

String

参数解释:

工作项所属租户Id。

取值范围:

不涉及。

plan_pi

PlanVO object

参数解释:

工作项所属发布。

取值范围:

不涉及。

link

String

参数解释:

关联工作项的关系字段。多值使用英文逗号分隔。

取值范围:

不涉及。

description

String

参数解释:

工作项描述,最多支持50w字符。

取值范围:

不涉及。

is_suspended

OptionVO object

参数解释:

是否挂起。

取值范围:

不涉及。

change_status

OptionVO object

参数解释:

工作项变更评审状态。

取值范围:

不涉及。

title

String

参数解释:

工作项标题。

取值范围:

不涉及。

sum_workload_man_day

String

参数解释:

工作项实际工时。

取值范围:

不涉及。

sys_close_reason

String

参数解释:

工作项关闭原因。

取值范围:

不涉及。

sys_resubmit_reason

String

参数解释:

重新提交原因,通常用于RR/Bug退回后重新提交。

取值范围:

不涉及。

plan_end_date

String

参数解释:

工作项计划完成时间。

取值范围:

不涉及。

rr2ir

String

参数解释:

RR的子IR的id。多值使用英文逗号分隔。

取值范围:

不涉及。

category_layer_id

String

参数解释:

工作项类型层级id。

取值范围:

不涉及。

submitted_by

Array of UserVO objects

参数解释:

工作项提交人。

取值范围:

不涉及。

rr2us

String

参数解释:

RR的子US的id,多值使用英文逗号分隔。

取值范围:

不涉及。

sys_no_develop_reason

String

参数解释:

工作项无需开发原因。

取值范围:

不涉及。

plan_iteration

PlanVO object

参数解释:

工作项所属迭代。

取值范围:

不涉及。

sys_return_reason

String

参数解释:

退回原因。通常用于RR/bug退回。

取值范围:

不涉及。

cascade_delete

String

参数解释:

是否级联删除标记。

取值范围:

不涉及。

recipient

Array of UserVO objects

参数解释:

承接人。通常用于RR。

取值范围:

不涉及。

modified_by

Array of UserVO objects

参数解释:

工作项最近修改人。

取值范围:

不涉及。

created_date

String

参数解释:

工作项创建时间。

取值范围:

不涉及。

category

String

参数解释:

工作项类型。

取值范围:

  • 系统设备类项目:RR/SF/IR/SR/AR/Task/Bug。

  • 独立软件类项目:RR/SF/IR/US/Task/Bug。

  • 云服务类项目:RR/Epic/FE/US/Task/Bug。

collaborative_status

String

参数解释:

研发需求协同需求状态。

取值范围:

不涉及。

project

DomainVO object

参数解释:

工作项所属的项目信息。

取值范围:

不涉及。

child_issues

Map<String,IssueVO>

参数解释:

子工作项列表。

取值范围:

不涉及。

activate_times

Integer

参数解释:

激活次数。Bug激活时自动赋值。

取值范围:

不涉及。

baseline

OptionVO object

参数解释:

工作项基线状态。

取值范围:

不涉及。

business_domain

OptionVO object

参数解释:

工作项领域。

取值范围:

不涉及。

children

String

参数解释:

子工作项Id,多值使用英文逗号分隔。

取值范围:

不涉及。

collaborative_history

String

参数解释:

协同需求的状态变化历史记录,内容为Json字符串。

取值范围:

不涉及。

collaboratives

String

参数解释:

协同需求中的记录Id。

取值范围:

不涉及。

convolution_actual_hours

String

参数解释:

卷积实际工时。父工作项中将子工作项/协同工作项的实际工时卷积得到。

取值范围:

不涉及。

convolution_plan_hours

String

参数解释:

卷积计划工时。父工作项中将子工作项/协同工作项的计划工时卷积得到。

取值范围:

不涉及。

develop_owner

String

参数解释:

开发责任人。通常用于“开发”状态节点责任人。

取值范围:

不涉及。

done_ratio

OptionVO object

参数解释:

完成度。

取值范围:

不涉及。

expected_repair_date

String

参数解释:

期望修复时间。

取值范围:

不涉及。

feature2ir

String

参数解释:

SF的子IR的id。多值使用英文逗号分隔。

取值范围:

不涉及。

feature_set

OptionVO object

参数解释:

SF的所属特性集。

取值范围:

不涉及。

found_env

OptionVO object

参数解释:

发现环境。

取值范围:

不涉及。

found_iteration

PlanVO object

参数解释:

发现迭代。

取值范围:

不涉及。

found_pi

PlanVO object

参数解释:

发现发布。

取值范围:

不涉及。

function_scene

String

参数解释:

功能场景。

取值范围:

不涉及。

ir2feature

String

参数解释:

IR关联的SF的Id,一个IR仅能关联一个SF。

取值范围:

不涉及。

ir2rr

String

参数解释:

IR关联父RR的Id,多值使用英文逗号分隔。

取值范围:

不涉及。

issue_opinion_id

String

参数解释:

工作项关联的决策意见Id。

取值范围:

不涉及。

issue_review_id

String

参数解释:

工作项关联的评审意见Id。

取值范围:

不涉及。

module

OptionVO object

参数解释:

模块。

取值范围:

不涉及。

need_break

OptionVO object

参数解释:

是否需要分解子工作项。

取值范围:

不涉及。

need_develop

OptionVO object

参数解释:

是否需要开发。

取值范围:

不涉及。

no_break_reason

String

参数解释:

无需分解原因。

取值范围:

不涉及。

no_develop_reason

String

参数解释:

无需开发原因。

取值范围:

不涉及。

order

Integer

参数解释:

优先级顺序。

取值范围:

1~100。

plan_dev_end_date

String

参数解释:

计划开发结束时间。通常用于“开发”状态节点,Unix时间戳,单位为毫秒。

取值范围:

不涉及。

plan_processing_end_date

String

参数解释:

计划处理中结束时间。通常用于“处理中”状态节点,Unix时间戳,单位为毫秒。

取值范围:

不涉及。

plan_researchanddevelop_end_date

String

参数解释:

计划研发结束时间。通常用于“研发”状态节点,Unix时间戳,单位为毫秒。

取值范围:

不涉及。

plan_test_end_date

String

参数解释:

计划测试结束时间。通常用于“测试”状态节点,Unix时间戳,单位为毫秒。

取值范围:

不涉及。

position_float

String

参数解释:

标识工作项在列表中初始排序位置。

取值范围:

不涉及。

processing_owner

String

参数解释:

处理中责任人。通常用于“处理中”状态节点。

取值范围:

不涉及。

reason_analysis

String

参数解释:

分析原因。

取值范围:

不涉及。

regression_failure_number

Integer

参数解释:

回归不通过次数。缺陷测试不通过时自动赋值。

取值范围:

不涉及。

related_network_security

OptionVO object

参数解释:

是否涉及网络安全。

取值范围:

不涉及。

repair_solution

String

参数解释:

修复方案。常用于修复缺陷时。

取值范围:

不涉及。

researchanddevelop_owner

String

参数解释:

研发责任人。通常用于“研发”状态节点。

取值范围:

不涉及。

severity

OptionVO object

参数解释:

严重程度。

取值范围:

不涉及。

sys_activation_reason

String

参数解释:

严重程度。

取值范围:

不涉及。

sys_no_repair_reason

String

参数解释:

无需修复原因。通常用于在缺陷无需修复时。

取值范围:

不涉及。

test_failures_times

Integer

参数解释:

测试不通过次数。

取值范围:

不涉及。

test_owner

String

参数解释:

测试责任人。通常用于“测试”状态节点。

取值范围:

不涉及。

test_report

String

参数解释:

测试报告。

取值范围:

不涉及。

val_feature

OptionVO object

参数解释:

价值特性。

取值范围:

不涉及。

workitem2ganttchart

String

参数解释:

工作项关联的甘特图Id。

取值范围:

不涉及。

workitem2mindmap

String

参数解释:

工作项关联的思维导图Id。

取值范围:

不涉及。

表10 WorkItemLabelVO

参数

参数类型

描述

id

String

参数解释:

标签Id。

约束限制:

最小长度:18,最大长度:19。

取值范围:

不涉及。

category

String

参数解释:

对象类型。

约束限制:

固定为Label,表示当前对象类型为标签。

取值范围:

不涉及。

label_type

String

参数解释:

标签所属工作项类型,对应工作项的type字段,枚举类型。

约束限制:

不涉及。

取值范围:

  • raw requirement:原始需求

  • feature:系统特性

  • requirement:研发需求

  • task:任务

  • bug:缺陷

color

String

参数解释:

标签颜色的RGB值。

取值范围:

  • #86CAFF

  • #6DDEBB

  • #A6DD82

  • #FAC20A

  • #FA9841

  • #F66F6A

  • #F3689A

  • #A97AF8

  • #71757F

  • #5E7CE0

  • #207AB3

  • #169E6C

  • #6CA83B

  • #B58200

  • #B54E04

  • #B02121

  • #AD215B

  • #572DB3

  • #4F4F4F

  • #3C51A6

title

String

参数解释:

标签标题。

约束限制:

最小长度:1,最大长度:30。

type

String

参数解释:

表示当前对象数据类型为标签。

约束限制:

固定为label。

取值范围:

label。

state

String

参数解释:

标签的生命周期。

取值范围:

  • 正在工作

  • 作废

  • 删除

modified_by

String

参数解释:

最近修改人。

约束限制:

不涉及。

表11 UserVO

参数

参数类型

描述

user_id

String

参数解释:

用户Id。

取值范围:

不涉及。

user_num_id

Integer

参数解释:

用户短Id。

取值范围:

不涉及。

user_name

String

参数解释:

用户名称。

取值范围:

不涉及。

domain_id

String

参数解释:

用户所属域Id。

取值范围:

不涉及。

domain_name

String

参数解释:

租户名称。

取值范围:

不涉及。

nick_name

String

参数解释:

用户昵称。

取值范围:

不涉及。

role_id

String

参数解释:

角色Id,用户在项目中具有多个角色时用英文逗号分隔。

取值范围:

不涉及。

role_name

String

参数解释:

用户角色名称,多个角色用英文逗号分隔。

取值范围:

不涉及。

表12 AlmStatus

参数

参数类型

描述

id

String

参数解释:

状态Id。

取值范围:

不涉及。

belonging

String

参数解释:

工作项的状态属性。

取值范围:

  • START

  • IN_PROGRESS

  • END

space_id

String

参数解释:

状态所属的项目空间id。

取值范围:

不涉及。

name

String

参数解释:

状态名称。

取值范围:

不涉及。

code

String

参数解释:

状态code值。

取值范围:

不涉及。

definition_type

String

参数解释:

状态定义级别,1,2,3为系统级,4为租户自定义,5为项目自定义。

取值范围:

不涉及。

belong_definition_type

Integer

参数解释:

状态归属定义级别,1,2,3为系统级,4为租户自定义,5为项目自定义。区别于definition_type。如果为系统级和租户自定义级,在项目中会复制一份元数据,归属于项目空间。

取值范围:

不涉及。

display_value

String

参数解释:

状态名称,和name值相同。

取值范围:

不涉及。

position

Integer

参数解释:

位置顺序。

取值范围:

不涉及。

displayable

Integer

参数解释:

是否显示。

取值范围:

不涉及。

editable

Integer

参数解释:

是否可编辑。

取值范围:

不涉及。

deletable

Integer

参数解释:

是否可删除。

取值范围:

不涉及。

mutable

Integer

参数解释:

是否可变,即是否为固定值。

取值范围:

不涉及。

title_py

String

参数解释:

标题的拼音首字母。

取值范围:

不涉及。

created_by

String

参数解释:

创建人用户Id。

取值范围:

不涉及。

created_date

Integer

参数解释:

创建时间。Unix时间戳,精度为毫秒。

取值范围:

不涉及。

modified_date

Integer

参数解释:

最近修改时间。Unix时间戳,精度为毫秒。

取值范围:

不涉及。

modified_by

String

参数解释:

最近修改人用户Id。

取值范围:

不涉及。

linkage_node_fields

Boolean

参数解释:

工作流配置中用于标识是否新增“节点责任人/节点结束时间”。

取值范围:

不涉及。

表13 DomainVO

参数

参数类型

描述

id

String

参数解释:

项目空间的唯一Id。

取值范围:

不涉及。

name

String

参数解释:

项目空间名称。

取值范围:

不涉及。

title

String

参数解释:

项目空间名称。

取值范围:

不涉及。

project_id

String

参数解释:

项目空间对应的32位UUId。

取值范围:

不涉及。

parent_id

String

参数解释:

项目空间的父项目空间Id,仅在项目群中使用。

取值范围:

不涉及。

category

String

参数解释:

项目空间类型。

取值范围:

  • Project:项目

  • Group:项目群

created_by

String

参数解释:

项目空间创建人Id。

取值范围:

不涉及。

model_id

String

参数解释:

项目空间对应的模型Id。

取值范围:

不涉及。

  • 10001:系统设备类

  • 10002:独立软件类

  • 10003:自营软件/云服务类

表14 PlanVO

参数

参数类型

描述

id

String

参数解释:

id(发布、迭代、里程碑的id)

取值范围:

不涉及

title

String

参数解释:

标题

取值范围:

不涉及

category

String

参数解释:

分类,枚举类型

取值范围:

  • PI:发布

  • Iteration:迭代

  • PlanMilestone:里程碑

description

String

参数解释:

描述

取值范围:

不涉及

state

String

参数解释:

作废标识,枚举类型。

取值范围:

  • 正在工作:可正常操作的发布

  • 作废:软删除后的发布,可在回收站恢复

  • 删除:彻底删除后的发布,无法恢复

status

String

参数解释:

发布/迭代的状态,枚举类型。

取值范围:

  • planned:发布/计划未开始

  • going:发布/计划进行中

  • ended:发布/计划已结束

children

Array of PlanVO objects

参数解释:

子项目迭代信息

created_by

String

参数解释:

创建人Id

取值范围:

不涉及

modified_by

String

参数解释:

最近更新人Id

取值范围:

不涉及

plan_start_date

String

参数解释:

计划开始时间,"yyyy-MM-dd"格式

取值范围:

不涉及

plan_end_date

String

参数解释:

计划完成时间,"yyyy-MM-dd"格式

取值范围:

不涉及

created_date

Long

参数解释:

创建时间,unix时间戳,单位:毫秒

取值范围:

不涉及

parent_id

String

参数解释:

父工作项id

取值范围:

不涉及

baseline

String

参数解释:

基线状态,枚举类型

取值范围:

  • baselined:已基线

  • unbaseline:未基线

  • baseline-reviewing:基线评审中

workload

String

参数解释:

预估工作量

取值范围:

不涉及

owner

String

参数解释:

责任人ID

取值范围:

不涉及

表15 OptionVO

参数

参数类型

描述

id

String

参数解释:

选项Id。

取值范围:

不涉及。

display_value

String

参数解释:

选项名称。

取值范围:

不涉及。

value

String

参数解释:

选项的唯一标识,自定义的选项id和value相同。

取值范围:

不涉及。

code

String

参数解释:

选项code。

取值范围:

不涉及。

value_py

String

参数解释:

选项名称的中文拼音首字母。

取值范围:

不涉及。

sequence

Integer

参数解释:

选项在选项列表中的排序。

取值范围:

不涉及。

level

Integer

参数解释:

层级选项的分层标识,单选列表和多选列表值都为1,层级字段按照层级依次为1,2,3,4。

取值范围:

不涉及。

domain_id

String

参数解释:

选项所在的项目空间Id。

取值范围:

不涉及。

belong_definition_type

String

参数解释:

选项归属的定义级别。1,2,3为系统级,4为租户自定义,5为项目自定义。

取值范围:

不涉及。

状态码:400

表16 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:

错误码。

取值范围:

不涉及。

error_msg

String

参数解释:

错误描述,对error_code的补充解释。

取值范围:

不涉及。

请求示例

如果要查询某个独立软件类型项目下指定发布迭代、指定责任人且优先级为中的初始态研发需求。可以参考如下示例:

Post https://{endpoint}/v1/ipdprojectservice/projects/{project_id}/issues/query?issue_type=IR,US

{
  "filter" : [ {
    "descendants.plan_pi" : {
      "values" : [ "956200745322848257" ],
      "operator" : "||"
    },
    "descendants.plan_iteration" : {
      "values" : [ "956200745322848257-child" ],
      "operator" : "||"
    }
  }, {
    "descendants.priority" : {
      "values" : [ "中" ],
      "operator" : "||"
    }
  }, {
    "descendants.assignee" : {
      "values" : [ "a360371833bf4c558f796fd707b44daf" ],
      "operator" : "||"
    }
  }, {
    "descendants.status" : {
      "values" : [ "Start" ],
      "operator" : "||"
    }
  }, {
    "parent_id" : {
      "values" : [ "" ],
      "operator" : "||"
    }
  } ],
  "page" : {
    "page_no" : 1,
    "page_size" : 20
  }
}

响应示例

状态码:200

查询工作项列表接口成功的响应。

{
  "status" : "success",
  "message" : null,
  "result" : {
    "total" : 1,
    "issues" : [ {
      "promised" : null,
      "type" : "raw requirement",
      "src_domain" : {
        "id" : "965714701520515072",
        "name" : "IPD-系统设备类-0217",
        "title" : "IPD-系统设备类-0217",
        "project_id" : "e4b0424709934bd1a54753e70336564d",
        "parent_id" : null,
        "category" : "Project",
        "created_by" : "a360371833bf4c558f796fd707b44daf",
        "model_id" : "10001"
      },
      "domain_id" : {
        "id" : "965714701520515072",
        "name" : "IPD-系统设备类-0217",
        "title" : "IPD-系统设备类-0217",
        "project_id" : "e4b0424709934bd1a54753e70336564d",
        "parent_id" : null,
        "category" : "Project",
        "created_by" : "a360371833bf4c558f796fd707b44daf",
        "model_id" : "10001"
      },
      "send_from" : "",
      "number" : "RR20240402742063",
      "send_to" : "",
      "convolution_actual_hours" : null,
      "workload_man_day" : null,
      "id" : "981935538274476033",
      "state" : "正在工作",
      "stay_days" : 1,
      "assigned_cc" : null,
      "submit_time" : "1712041275000",
      "workitem2label" : null,
      "close_time" : null,
      "priority" : {
        "id" : "965714705672876036",
        "display_value" : "中",
        "value" : "中",
        "code" : "中",
        "value_py" : "2",
        "sequence" : 2,
        "level" : 1,
        "domain_id" : "965714701520515072",
        "belong_definition_type" : "5"
      },
      "modified_date" : "1712041276000",
      "created_by" : {
        "watcher" : null,
        "user_id" : "a360371833bf4c558f796fd707b44daf",
        "user_num_id" : 4091,
        "user_name" : "devcloud_devcloud_01",
        "domain_id" : "4e919d73499648e3b0292cd3cbef806a",
        "domain_name" : "devcloud_devcloud_01",
        "nick_name" : "测试账号",
        "role_id" : "8dc2cd191a104148a77f937681f9a5d6,6af50476ba89492698d237fb6fa456d6",
        "role_name" : "项目管理员,项目经理",
        "role_code" : "project_admin,Project manager",
        "image_id" : null,
        "region" : null,
        "has_removed" : null
      },
      "break_status" : {
        "id" : "965714705672876041",
        "display_value" : "未分解",
        "value" : "undecomposed",
        "code" : "undecomposed",
        "value_py" : "undecomposed",
        "sequence" : 2,
        "level" : 1,
        "domain_id" : "965714701520515072",
        "belong_definition_type" : "5"
      },
      "status_modified_date" : "1712041276000",
      "canceled" : null,
      "expect_delivery_time" : null,
      "parent_id" : null,
      "assignee" : {
        "watcher" : null,
        "user_id" : "a360371833bf4c558f796fd707b44daf",
        "user_num_id" : 4091,
        "user_name" : "devcloud_devcloud_01",
        "domain_id" : "4e919d73499648e3b0292cd3cbef806a",
        "domain_name" : "devcloud_devcloud_01",
        "nick_name" : "测试账号",
        "role_id" : "8dc2cd191a104148a77f937681f9a5d6,6af50476ba89492698d237fb6fa456d6",
        "role_name" : "项目管理员,项目经理",
        "role_code" : "project_admin,Project manager",
        "image_id" : null,
        "region" : null,
        "has_removed" : null
      },
      "region" : "region01",
      "status" : {
        "id" : "965714705815482388",
        "belonging" : "START",
        "space_id" : "965714701520515072",
        "name" : "分析",
        "status_category" : null,
        "code" : "Analyse",
        "definition_type" : "5",
        "belong_definition_type" : 3,
        "belong_scope" : null,
        "display_value" : "分析",
        "position" : 2,
        "displayable" : 1,
        "editable" : 1,
        "deletable" : 1,
        "mutable" : 1,
        "title_py" : "fx",
        "builtin" : null,
        "label" : null,
        "description" : null,
        "created_by" : "a360371833bf4c558f796fd707b44daf",
        "created_userinfo" : null,
        "created_on" : null,
        "created_date" : 1708202727000,
        "modified_date" : 1708202727000,
        "modified_by" : "a360371833bf4c558f796fd707b44daf",
        "category_code" : null,
        "editing_fields" : null,
        "associate" : null,
        "linkage_node_fields" : false
      },
      "tenant_id" : "4e919d73499648e3b0292cd3cbef806a",
      "link" : "",
      "is_suspended" : null,
      "change_status" : null,
      "title" : "RR-01",
      "sum_workload_man_day" : null,
      "plan_end_date" : null,
      "rr2ir" : "",
      "convolution_plan_hours" : null,
      "submitted_by" : [ {
        "watcher" : null,
        "user_id" : "a360371833bf4c558f796fd707b44daf",
        "user_num_id" : 4091,
        "user_name" : "devcloud_devcloud_01",
        "domain_id" : "4e919d73499648e3b0292cd3cbef806a",
        "domain_name" : "devcloud_devcloud_01",
        "nick_name" : "测试账号",
        "role_id" : "8dc2cd191a104148a77f937681f9a5d6,6af50476ba89492698d237fb6fa456d6",
        "role_name" : "项目管理员,项目经理",
        "role_code" : "project_admin,Project manager",
        "image_id" : null,
        "region" : null,
        "has_removed" : null
      } ],
      "rr2us" : "",
      "cascade_delete" : "none",
      "recipient" : [ {
        "watcher" : null,
        "user_id" : "a360371833bf4c558f796fd707b44daf",
        "user_num_id" : 4091,
        "user_name" : "devcloud_devcloud_01",
        "domain_id" : "4e919d73499648e3b0292cd3cbef806a",
        "domain_name" : "devcloud_devcloud_01",
        "nick_name" : "测试账号",
        "role_id" : "8dc2cd191a104148a77f937681f9a5d6,6af50476ba89492698d237fb6fa456d6",
        "role_name" : "项目管理员,项目经理",
        "role_code" : "project_admin,Project manager",
        "image_id" : null,
        "region" : null,
        "has_removed" : null
      } ],
      "modified_by" : {
        "watcher" : null,
        "user_id" : "a360371833bf4c558f796fd707b44daf",
        "user_num_id" : 4091,
        "user_name" : "devcloud_devcloud_01",
        "domain_id" : "4e919d73499648e3b0292cd3cbef806a",
        "domain_name" : "devcloud_devcloud_01",
        "nick_name" : "测试账号",
        "role_id" : "8dc2cd191a104148a77f937681f9a5d6,6af50476ba89492698d237fb6fa456d6",
        "role_name" : "项目管理员,项目经理",
        "role_code" : "project_admin,Project manager",
        "image_id" : null,
        "region" : null,
        "has_removed" : null
      },
      "created_date" : "1712041275000",
      "closed_flag" : null,
      "category" : "RR",
      "collaborative_status" : [ ],
      "setup" : true,
      "parent_status" : "no"
    } ]
  }
}

SDK代码示例

SDK代码示例如下。

Java

如果要查询某个独立软件类型项目下指定发布迭代、指定责任人且优先级为中的初始态研发需求。可以参考如下示例:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
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;
import java.util.Map;
import java.util.HashMap;

public class ListIpdProjectIssuesSolution {

    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();
        ListIpdProjectIssuesRequest request = new ListIpdProjectIssuesRequest();
        request.withProjectId("{project_id}");
        SearchIpdIssuesRequestBody body = new SearchIpdIssuesRequestBody();
        PageInfoVO pagebody = new PageInfoVO();
        pagebody.withPageNo(1)
            .withPageSize(20);
        List<String> listFilterValues = new ArrayList<>();
        listFilterValues.add("");
        ConditionVO filterFilter = new ConditionVO();
        filterFilter.withOperator("||")
            .withValues(listFilterValues);
        Map<String, ConditionVO> listFilterFilter1 = new HashMap<>();
        listFilterFilter1.put("parent_id", filterFilter);
        List<String> listFilterValues1 = new ArrayList<>();
        listFilterValues1.add("Start");
        ConditionVO filterFilter2 = new ConditionVO();
        filterFilter2.withOperator("||")
            .withValues(listFilterValues1);
        Map<String, ConditionVO> listFilterFilter3 = new HashMap<>();
        listFilterFilter3.put("descendants.status", filterFilter2);
        List<String> listFilterValues2 = new ArrayList<>();
        listFilterValues2.add("a360371833bf4c558f796fd707b44daf");
        ConditionVO filterFilter4 = new ConditionVO();
        filterFilter4.withOperator("||")
            .withValues(listFilterValues2);
        Map<String, ConditionVO> listFilterFilter5 = new HashMap<>();
        listFilterFilter5.put("descendants.assignee", filterFilter4);
        List<String> listFilterValues3 = new ArrayList<>();
        listFilterValues3.add("中");
        ConditionVO filterFilter6 = new ConditionVO();
        filterFilter6.withOperator("||")
            .withValues(listFilterValues3);
        Map<String, ConditionVO> listFilterFilter7 = new HashMap<>();
        listFilterFilter7.put("descendants.priority", filterFilter6);
        List<String> listFilterValues4 = new ArrayList<>();
        listFilterValues4.add("956200745322848257-child");
        ConditionVO filterFilter8 = new ConditionVO();
        filterFilter8.withOperator("||")
            .withValues(listFilterValues4);
        List<String> listFilterValues5 = new ArrayList<>();
        listFilterValues5.add("956200745322848257");
        ConditionVO filterFilter9 = new ConditionVO();
        filterFilter9.withOperator("||")
            .withValues(listFilterValues5);
        Map<String, ConditionVO> listFilterFilter10 = new HashMap<>();
        listFilterFilter10.put("descendants.plan_pi", filterFilter9);
        listFilterFilter10.put("descendants.plan_iteration", filterFilter8);
        List<Map<String, ConditionVO>> listbodyFilter = new ArrayList<>();
        listbodyFilter.add(listFilterFilter1);
        listbodyFilter.add(listFilterFilter3);
        listbodyFilter.add(listFilterFilter5);
        listbodyFilter.add(listFilterFilter7);
        listbodyFilter.add(listFilterFilter10);
        body.withPage(pagebody);
        body.withFilter(listbodyFilter);
        request.withBody(body);
        try {
            ListIpdProjectIssuesResponse response = client.listIpdProjectIssues(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

如果要查询某个独立软件类型项目下指定发布迭代、指定责任人且优先级为中的初始态研发需求。可以参考如下示例:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
# 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 = ListIpdProjectIssuesRequest()
        request.project_id = "{project_id}"
        pagebody = PageInfoVO(
            page_no=1,
            page_size=20
        )
        listValuesFilter = [
            ""
        ]
        filterFilter = ConditionVO(
            operator="||",
            values=listValuesFilter
        )
        listFilterFilter1 = {
            "parent_id": filterFilter
        }
        listValuesFilter1 = [
            "Start"
        ]
        filterFilter2 = ConditionVO(
            operator="||",
            values=listValuesFilter1
        )
        listFilterFilter3 = {
            "descendants.status": filterFilter2
        }
        listValuesFilter2 = [
            "a360371833bf4c558f796fd707b44daf"
        ]
        filterFilter4 = ConditionVO(
            operator="||",
            values=listValuesFilter2
        )
        listFilterFilter5 = {
            "descendants.assignee": filterFilter4
        }
        listValuesFilter3 = [
            "中"
        ]
        filterFilter6 = ConditionVO(
            operator="||",
            values=listValuesFilter3
        )
        listFilterFilter7 = {
            "descendants.priority": filterFilter6
        }
        listValuesFilter4 = [
            "956200745322848257-child"
        ]
        filterFilter8 = ConditionVO(
            operator="||",
            values=listValuesFilter4
        )
        listValuesFilter5 = [
            "956200745322848257"
        ]
        filterFilter9 = ConditionVO(
            operator="||",
            values=listValuesFilter5
        )
        listFilterFilter10 = {
            "descendants.plan_pi": filterFilter9,
            "descendants.plan_iteration": filterFilter8
        }
        listFilterbody = [
            listFilterFilter1,
            listFilterFilter3,
            listFilterFilter5,
            listFilterFilter7,
            listFilterFilter10
        ]
        request.body = SearchIpdIssuesRequestBody(
            page=pagebody,
            filter=listFilterbody
        )
        response = client.list_ipd_project_issues(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

如果要查询某个独立软件类型项目下指定发布迭代、指定责任人且优先级为中的初始态研发需求。可以参考如下示例:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
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 := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        Build()

    client := projectman.NewProjectManClient(
        projectman.ProjectManClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.ListIpdProjectIssuesRequest{}
	request.ProjectId = "{project_id}"
	pageNoPage:= int32(1)
	pageSizePage:= int32(20)
	pagebody := &model.PageInfoVo{
		PageNo: &pageNoPage,
		PageSize: &pageSizePage,
	}
	var listValuesFilter = []string{
        "",
    }
	operatorFilter:= "||"
	filterFilter := model.ConditionVo{
		Operator: &operatorFilter,
		Values: &listValuesFilter,
	}
	var listFilterFilter1 = map[string](model.ConditionVo){
        "parent_id": filterFilter,
    }
	var listValuesFilter1 = []string{
        "Start",
    }
	operatorFilter1:= "||"
	filterFilter3 := model.ConditionVo{
		Operator: &operatorFilter1,
		Values: &listValuesFilter1,
	}
	var listFilterFilter4 = map[string](model.ConditionVo){
        "descendants.status": filterFilter3,
    }
	var listValuesFilter2 = []string{
        "a360371833bf4c558f796fd707b44daf",
    }
	operatorFilter2:= "||"
	filterFilter6 := model.ConditionVo{
		Operator: &operatorFilter2,
		Values: &listValuesFilter2,
	}
	var listFilterFilter7 = map[string](model.ConditionVo){
        "descendants.assignee": filterFilter6,
    }
	var listValuesFilter3 = []string{
        "中",
    }
	operatorFilter3:= "||"
	filterFilter9 := model.ConditionVo{
		Operator: &operatorFilter3,
		Values: &listValuesFilter3,
	}
	var listFilterFilter10 = map[string](model.ConditionVo){
        "descendants.priority": filterFilter9,
    }
	var listValuesFilter4 = []string{
        "956200745322848257-child",
    }
	operatorFilter4:= "||"
	filterFilter12 := model.ConditionVo{
		Operator: &operatorFilter4,
		Values: &listValuesFilter4,
	}
	var listValuesFilter5 = []string{
        "956200745322848257",
    }
	operatorFilter5:= "||"
	filterFilter13 := model.ConditionVo{
		Operator: &operatorFilter5,
		Values: &listValuesFilter5,
	}
	var listFilterFilter14 = map[string](model.ConditionVo){
        "descendants.plan_pi": filterFilter13,
        "descendants.plan_iteration": filterFilter12,
    }
	var listFilterbody = []map[string](model.ConditionVo){
        listFilterFilter1,
        listFilterFilter4,
        listFilterFilter7,
        listFilterFilter10,
        listFilterFilter14,
    }
	request.Body = &model.SearchIpdIssuesRequestBody{
		Page: pagebody,
		Filter: &listFilterbody,
	}
	response, err := client.ListIpdProjectIssues(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

更多

更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。

状态码

状态码

描述

200

查询工作项列表接口成功的响应。

400

错误信息

错误码

请参见错误码

相关文档