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

查询工作项列表 - ListIpdProjectIssues

功能介绍

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

调用方法

请参见如何调用API

授权信息

账号根用户具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备如下身份策略权限,更多的权限说明请参见权限和授权项

授权项

访问级别

资源类型(*为必须)

条件键

别名

依赖的授权项

codeartsreq:workitem:list

List

-

  • codeartsreq:Model

  • codeartsreq:ProjectId

-

-

URI

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

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数解释

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

约束限制

不涉及。

取值范围

32个字符,由英文字母和数字组成。

默认取值

不涉及。

表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就是字段唯一标识。

默认取值

不涉及

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

参数解释

工作项提出项目空间ID。

取值范围

不涉及。

domain_id

DomainVO object

参数解释

工作项归属项目空间ID。

取值范围

不涉及。

send_from

String

参数解释

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

取值范围

不涉及。

number

String

参数解释

工作项编号,由工作项类型+年月日+6位随机数组成。例如2025年9月30日创建的IR工作项,可能的编号为RR20250930982833。

取值范围

不涉及。

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

参数解释

工作项领域。

取值范围

  • software

  • soft-hardware

  • hardware

  • 性能

  • 功能

  • 运维

  • 运营

  • 用户体验

  • 隐私保护

  • 合规

  • 韧性(可靠性/可用性)

  • 韧性(危险检测与相应恢复)

  • 透明

  • 无害

  • 安全

  • API

  • 成本

  • 可维护性

  • 其他DFX

  • 可用性

  • others

children

String

参数解释

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

取值范围

不涉及。

collaborative_history

String

参数解释

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

取值范围

不涉及。

collaboratives

String

参数解释

研发需求协同信息,协同任务ID,可通过查询树状工作项接口获取,响应消息体中的collaboratives字段的值就是研发需求协同信息,协同任务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

参数解释

是否需要分解子工作项。

取值范围

  • yes:需要分解

  • no:不需要分解

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

参数解释

是否涉及网络安全。

取值范围

  • yes:涉及网络安全。

  • no:不涉及网络安全。

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:标签。

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

参数解释

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

取值范围

不涉及。

role_code

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

参数解释

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

取值范围

  • true:可用于状态流节点新增“节点责任人/节点结束时间”。

  • false:不可用于状态流节点新增“节点责任人/节点结束时间”。

表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

取值范围:

不涉及

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格式,如2024-01-01。

取值范围:

不涉及

plan_end_date

String

参数解释:

计划完成时间,yyyy-MM-dd格式,如2024-01-01。

取值范围:

不涉及

created_date

Long

参数解释:

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

取值范围:

不涉及

parent_id

String

参数解释

父工作项ID,当计划类型为迭代(Iteration)时,用于指定所属的发布计划。

取值范围

不涉及。

baseline

String

参数解释

基线状态,枚举类型,标识计划是否已纳入基线管理。

取值范围

  • baselined:已基线

  • unbaseline:未基线

  • "":未基线

workload

String

参数解释

预估工作量,用于标识计划所需的人力或时间投入,单位人/天。

取值范围

最大长度11个字符。

owner

String

参数解释

责任人ID,标识计划的负责人。

取值范围

长度为32位的字符串。

表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。

取值范围

  • 1:层级字段的首层选项,单选列表和多选列表的选项均属于首层。

  • 2:层级字段的第二层选项。

  • 3:层级字段的第三层选项。

  • 4:层级字段的第四层选项。

domain_id

String

参数解释

选项所在的项目空间ID。

取值范围

不涉及。

belong_definition_type

String

参数解释

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

取值范围

  • 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"
    } ]
  }
}

状态码:400

请求失败的响应。例如无操作权限、项目不存在。

{
  "error_code" : "PM.02174103",
  "error_msg" : "无操作权限"
}

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
118
119
120
121
122
123
124
125
126
127
128
129
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.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

请求失败的响应。例如无操作权限、项目不存在。

错误码

请参见错误码

相关文档