# 数据查询

# 搜索

注意: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
print 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功能,很遗憾目前并未提供专用的接口用于查数量,不过你可以巧妙利用搜索接口实现你想要的功能。

  1. 与数据搜索一样,根据你设置的条件查总数量。返回结果中recordsTotal的值为查询的总条数。
  2. 参数调整:除了指定的搜索条件外,设置以下参数可以提高接口查询性能(可选)。
    • 设置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": "家庭地址"
                }
            ]
        }
    }
}