# 数据查询
# 搜索
注意:2023-09-21后创建的数据,会自动创建一个snowflakeId字段,该字段可作为这条数据的唯一标志,值是一个Long类型的数字,这个字段支持搜索。示例:
{
"filter": {
"snowflakeId": 1704430780158513152,
// 或
"snowflakeId": [1704430780158513152, 1704430822172856320]
}
}
# URL
POST /api/metadata-app/v2/data/query/search
# 请求参数
参数名称 | 格式 | 说明 | 默认值 | 取值范围 |
---|---|---|---|---|
start | Integer | 分页参数,起始页码 | 0 | |
length | Integer | 分页参数,页长 | 1000 | 1 ~ 1000 |
sorts | List<Object> | 排序参数 | ID倒序 | |
templateApiName | String | 表单ApiName | ||
filter | Map<String, Object> | 过滤条件 | ||
condition | ConditionColumn | 过滤条件 | ||
fields | Set<String> | 字段集合,为空时查所有字段 | ||
dataIds | Set<String> | 数据ID集合 | ||
fuzzy | Boolean | 是否使用模糊查询 | false | true, false |
raw | Boolean | 是否查询原始数据。原始数据不包含关联对象字段填充的数据。 | false | true, false |
Boolean | 是否支持打印,开启后数据会以打印的格式返回 | false | true, false | |
authority | Object | 权限查询条件,为空时默认开启权限验证,且无权限时抛出异常 | ||
conditionalFilter | Object | ConditionBO条件查询参数 ,可为空 | ||
workflow | Object | 审核流查询条件,可为空 | ||
parent | Object | 父级数据查询条件,可为空 | ||
join | Object | 连表查询参数,可为空 | ||
associate | Object | 关联列表查询 | ||
defaultSort | Object | 默认排序参数。可为空,为空时关闭默认排序功能。 |
# 请求示例
{
"body": {
"start": 0,
"length": 20,
"sorts": [{
"property": "code", // 排序字段apiName
"direction": "DESC", // 排序方式,DESC或ASC
"scope": "VALUE" // 排序字段的作用域,目前仅支持VALUE
}
],
"templateApiName": "template_lwyhT",
"filter": {
"field_RCoX9__c": 100,
"field_ICxU8__c": "abc" // 如果多条件精确匹配,该字段可以传数组,例如:["abc","edg","xyz"]
},
"condition": {
"columnType": "VALUE", // 列类型
"dataApiName": "object_SRvLd__c", // 实体ApiName
"fieldApiName": "field_RCoX9__c", // 实体字段ApiName
"dataType": "NUM", // 字段类型
"keyword": "EQ", // 关键字
"params": [100], // 条件值
},
"fields": ["code", "field_RCoX9__c", "field_ICxU8__c"],
"dataIds": ["6391c806b463873cf8f068cb", "6391bab134ca192519668f4a"],
"fuzzy": false, // 是否模糊匹配,默认false
"raw": false, // 是否查原始数据,默认false
"print": false, // 是否以打印格式返回,默认false
"authority": {
"enabled": true, // 是否启用权限条件,默认为true
"returnType": "EXCEPTION" // 无权限时返回类型,默认为抛出异常,也可用EMPTY返回空集合
},
"conditionalFilter": { // ConditionBO过滤条件
"filter": { // 表单字段过滤条件
"template_lwyhT": {
"field_RCoX9__c": 100
}
},
"conditionDefinition": {
"nodes": [{
"dataSourceType": "VARIABLE",
"leftFieldTemplateId": 41535,
"leftFieldTemplateName": "一一",
"leftFieldTemplateApiName": "template_xrQj9",
"leftFieldId": 284529,
"leftFieldApiName": "field_bYXeY__c",
"leftFieldName": "日期",
"conditionType": "EQ",
"rightShowInfo": "今日",
"rightConstant": "TODAY",
"leftParentheses": "(",
"rightParentheses": ")"
}, {
"dataSourceType": "CONSTANT",
"leftFieldTemplateId": 41535,
"leftFieldTemplateName": "一一",
"leftFieldTemplateApiName": "template_xrQj9",
"leftFieldId": 284530,
"leftFieldApiName": "field_Nf6D9__c",
"leftFieldName": "单选",
"conditionType": "IS_NOT_NULL",
"rightShowInfo": "",
"leftParentheses": "(",
"rightParentheses": ")"
}
],
"logics": ["OR", "OR"],
"joinTable": { // 连表查询参数,非必须
"joinTemplateApiName": "template_sApnS",
"joinTemplateFieldApiName": "field_zxACW__c"
}
},
"fuzzy": false // 是否模糊匹配,默认false
},
"workflow": { // 流程参数,目前给Web端用,查看指定TAB数据
"tab": "ALL",
"staffId": 10040412
},
"parent": {
"templateApiName": "template_JHEHl", // 父表单ApiName
"parentIds": ["6391b560c5b14224b45be375"] // 父数据ID
},
"join": {
"joinTables": { // 连表信息
"template_Z6F5g": { // 表单ApiName
"filter": { // 过滤条件
"code": "00000001",
},
"fields": ["code", "field_xxxx"], // 查询字段,可为空,默认查所有字段
"sorts": [ // 排序,可为空,为空按照子表id降序排列
{
"property": "code", // 排序字段apiName
"direction": "DESC", // 排序方式,DESC或ASC
"scope": "VALUE" // 排序字段的作用域,目前仅支持VALUE
}
]
},
"template_O70cG": {
"filter": {
"code": ["00000001", "00000002"]
},
"fields": []
},
},
"flat": false, // 数据是否平铺,默认不平铺
},
"associate": { // 关联列表查询参数
"templateApiName": "template_JHEHl", // 表单ApiName
"dataIds": ["00000000000"] // 数据id
},
"defaultSort": {
"enabled": false, // 是否开启,默认关闭。
"view": "ALL" // 视图名称,与工作流参数tab一致
}
}
}
# 响应参数
参数名称 | 格式 | 说明 |
---|---|---|
code | Integer | 状态码 |
message | String | 响应信息 |
data | Object | 响应内容 |
list | Array | 响应数据 |
start | Integer | 起始页码,与请求参数一致 |
length | Integer | 每页大小,与请求参数一致 |
recordsTotal | Integer | 总条数 |
# 响应示例
{
"code": 200,
"message": "OK",
"data": {
"list": [
{
"updatedTime": 1674974854766,
"code": "00000001",
"updatedBy": {
"id": "10040412"
},
"field_775CR__c": "A",
"auditor": {
"id": "10040412"
},
"field_F9m8B__c": {
"parentDepartmentId": "147",
"code": "415",
"parentDepartment": {
"id": "147"
},
"level": 3,
"updateTime": 1673525215000,
"levelIndex": 19,
"charges": [],
"createTime": 1672920896000,
"children": [],
"name": "测试lrj",
"id": "415",
"staffs": []
},
"audit_status": "已审核",
"version": 7,
"field_QdwxN__c": 1,
"audit_time": 1674974854727,
"createdBy": {
"id": "10040412"
},
"createdTime": 1674891462292,
"id": "63d4d0c6ff21340987985f0f",
// 富文本,@See https://www.wangeditor.com/
"field_UVWsy__c": "[{\"type\":\"paragraph\",\"children\":[{\"text\":\"客户有600+笔工艺路线,麻烦在后台将所有工艺路线所有工序的‘在制品入库’批量启用。\"}]}]",
"joinData": { // 连表(子表)数据
"template_Z6F5g": [ // 表单ApiName,对应的数据列表
{
"version": 3,
"code": "00000001",
"id": "63d4d0c6ff21340987985f11"
},
{
"version": 3,
"code": "00000002",
"id": "63d4d0c6ff21340987985f13"
}
],
"template_O70cG": [
{
"version": 2,
"code": "00000001",
"id": "63d4f557ff21340987985f31"
},
{
"version": 1,
"code": "00000002",
"id": "63d4f5c1ff21340987985f3b"
},
{
"version": 1,
"code": "00000003",
"id": "63d4f5c1ff21340987985f3d"
}
]
}
}
],
"start": 0,
"length": 10,
"recordsTotal": 3
}
}
# 查数量
类似于search_count
功能,很遗憾目前并未提供专用的接口用于查数量,不过你可以巧妙利用搜索接口实现你想要的功能。
- 与数据搜索一样,根据你设置的条件查总数量。返回结果中recordsTotal的值为查询的总条数。
- 参数调整:除了指定的搜索条件外,设置以下参数可以提高接口查询性能(可选)。
- 设置start = 0,length = 1,这样就会只查一条数据,减少不必要的数据返回。
- 设置raw = true,查原始数据,关联对象属性值不填充,加快查询速度。
# 详情
该接口目前提供web端和移动端使用,默认查询单条数据详情时附带权限,无权限时返回空对象。如果该场景下需要查询数据详情,可以使用该接口,否则,请使用搜索接口。
# URL
POST /api/metadata-app/v2/data/query/details
# 请求参数
参数名称 | 格式 | 说明 | 默认值 | 取值范围 |
---|---|---|---|---|
templateApiName | String | 表单ApiName | ||
dataIds | String | 数据ID | ||
join | Object | 子表信息 |
# 请求示例
{
"body": {
"templateApiName": "template_lwyhT", // 表单ApiName
"dataIds": ["63fddbfc132a4c3e88b973cf"], // 数据ID
"join": {
"joinTables": { // 子表,有多少子表就放多少个ApiName
"template_Z6F5g": {},
"template_AbCdE": {},
"template_aBcDe": {}
},
"flat": "false" // 子表数据是否展开,查详情这个场景下,固定填false
}
}
}
# 响应参数
参数名称 | 格式 | 说明 |
---|---|---|
code | Integer | 状态码 |
message | String | 响应信息 |
data | Object | 响应内容 |
isAuthority | Boolean | 是否命中权限,true表示命中权限,false表示未命中 |
data | Object | 数据详情 |
# 响应示例
{
"code": 200,
"message": "ok",
"data": {
"isAuthority": true,
"data": {
"updatedTime": 1677581308980,
"code": "2023022818482800031759",
"updatedBy": {
"id": "10044388"
},
"field_BHCTX__c": "做了一些事情",
"auditor": {
"id": "10044388"
},
"audit_status": "已审核",
"version": 1,
"audit_time": 1677581308953,
"createdBy": {
"code": "N258",
"gender": "保密",
"emergencyContactNumber": "",
"workingCondition": "在职",
"active": "开启",
"employeeId": "N258",
"emergencyContactPerson": "",
"staffQrLink": "https://c2.xinheyun.com/qr?p=2&m=6&staffId=10044388",
"phone": "18521092048",
"name": "刘伟",
"comment": "",
"id": "10044388",
"position": "后端",
"departments": [{
"id": "0"
}
],
"department": "",
"employedDate": 1647964800000,
"invitationCode": "94696148",
"homeAddress": "家庭地址"
},
"createdTime": 1677581308651,
"id": "63fddbfc132a4c3e88b973cf",
"field_qUxw2__c": "准备做一些事情",
"field_PXgDc__c": [{
"code": "N258",
"gender": "保密",
"emergencyContactNumber": "",
"workingCondition": "在职",
"active": "开启",
"employeeId": "N258",
"emergencyContactPerson": "",
"staffQrLink": "https://c2.xinheyun.com/qr?p=2&m=6&staffId=10044388",
"phone": "18521092048",
"name": "刘伟",
"comment": "",
"id": "10044388",
"position": "后端",
"departments": [{
"id": "0"
}
],
"department": "",
"employedDate": 1647964800000,
"invitationCode": "94696148",
"homeAddress": "家庭地址"
}
]
}
}
}