{
"Cascade": [
{
"Cascade": [
null
],
"Distinct": true,
"Filters": "string",
"Group": {
"AvgList": [
"string"
],
"Count": true,
"MaxList": [
"string"
],
"MinList": [
"string"
],
"NameList": [
"string"
],
"SumList": [
"string"
]
},
"Name": "string",
"Orders": "name asc, createTime desc",
"Projection": [
"string"
]
}
],
"Distinct": true,
"Filters": "string",
"Group": {
"AvgList": [
"string"
],
"Count": true,
"MaxList": [
"string"
],
"MinList": [
"string"
],
"NameList": [
"string"
],
"SumList": [
"string"
]
},
"Orders": "name asc, createTime desc",
"PageNumber": 1,
"PageSize": 50,
"Projection": [
"string"
]
}
:::
::: details 查看代码 ```metadata json {
"Content":[
{
"EquipID":"Eq3702020002f9052971335b417b896c73bdcd832f2d",
"EquipLocalId":"CCTV-15F-06-05",
"BimId":"Pj37020200023d180a0a876a11eaad60abc9d54aea48F20:8240980",
"BimLocation":"-106089.73,64853.35,92300.0"
}
],
"Message":"接口失败会返回原因",
"PageNumber":1,
"PageSize":50,
"Result":"success",
"Total":1
}
:::
## 分页
PageNumber 请求页码 Int 值 默认 1
PageSize 请求条数 Int 值 默认 50 条
通用接口中 PageSize 请求条数最大为 1000,为了避免大量的数据请求占用过多的资源,减少带宽
## 过滤条件
Filters 中编写过滤条件 例如:
```metadata json ${2}
{
"Filters": "ProjectId = 'Pj3702020002'; Category = 'FSSN' ",
"PageNumber": 1,
"PageSize": 50
}
分号(;代表 and )还可以使用 and 来查询,例如: ```metadata json ${2} { "Filters": "ProjectId = 'Pj3702020002' and Category = 'FSSN' ", "PageNumber": 1, "PageSize": 50 }
更多详细查询条件以及操作符使用参考 [ “过滤条件” 操作符介绍](./filters)
## 排序
Orders 排序,默认升序 asc 可以多字段排序,升序 asc 降序 desc,例如:
```metadata json ${5}
{
"Filters": "ProjectId = 'Pj3702020002' and Category = 'FSSN' ",
"PageNumber": 1,
"PageSize": 50,
"Orders": "EquipName, CreateTime desc"
}
多字段排序从前往后依次按照 Orders 中的条件排序返回结果。
Projection 指定后返回的属性,有些时候并不想把某些对象所有信息点都查出来,只是用几个属性,提高数据交互质量可以指定需要的属性,例如: ```metadata json ${5-7} { "Filters": "ProjectId = 'Pj3702020002' and Category = 'FSSN' ", "PageNumber": 1, "PageSize": 50, "Projection": [
"EquipID","EquipName","EquipLocalId","EquipLocalName","Category"
]
}
如上面的请求体就会返回 Projection 中指定的属性
## 去重
数据统计的时候会用到这个功能,比如统计某一个楼层下有多少种设备类型
``` json ${2}
{
"Distinct": true,
"Filters": "ProjectId = 'Pj4101020002';FloorId = 'Fl410102000212f498f8128147a7bfdb853e80bd5596'",
"PageNumber": 1,
"PageSize": 50,
"Projection": [
"Category"
]
}
返回结果 ```metadata json { "Content": [
{
"Category": "AEOV"
},
{
"Category": "ATFC"
}
], "Message": "", "PageNumber": 1, "PageSize": 2, "Result": "success", "Total": 20 }
去重是不根据 Projection 指定返回的属性去重的,如果返回的字段中包含id,是无法去重的,因为id通常是唯一的,去重是根据指定返回的字段为一个从整体去重的。
## 级联查询
级联查询:在查询某一个对象的时候想要知道和这个对象有关系的有哪些对象,可以通过级联查询来操作,例如查询设备,以及所在的业务空间:
请求体
```json ${2-6}
{
"Cascade": [
{
"Name": "zoneSpaceInBase"
}
],
"Filters": "ProjectId = 'Pj1101020002' and EquipID = 'Eq11010200020321acc7e6f311e88ca4e5a21975b346' ",
"PageNumber": 1,
"PageSize": 50
}
返回结果 ```metadata json { "Content": [
{
"BuildingId": "Bd110102000223fbec0accfb11e8a471b5d1be3b6dfe",
"Category": "ATFU",
"CreateTime": "2019-06-19 12:57:11",
"EquipID": "Eq11010200020321acc7e6f311e88ca4e5a21975b346",
"EquipLocalID": "ATFU-TOP-N",
"EquipLocalName": "楼顶北新风机组",
"EquipName": "新风机组-E5L73",
"EquipQRCode": "9ca5b7b0daab49999d602ac4ccdcf105",
"LastUpdate": "2020-08-18 15:20:57",
"ProjectId": "Pj1101020002",
"ZoneSpaceBaseIn": [
{
"BuildingId": "Bd110102000223fbec0accfb11e8a471b5d1be3b6dfe",
"FloorId": "Fl1101020002fbdcd07ed5cb11e88bee4dbb551fd992",
"LastUpdate": "2020-07-17 17:17:19",
"ObjectType": "GeneralZone",
"ProjectId": "Pj1101020002",
"RoomFuncType": "311",
"RoomID": "Sp11010200024fdbd800e0aa11e88bee13864ca4ba47",
"RoomLocalID": "7F-A801-1",
"RoomLocalName": "A-801总裁室",
"RoomName": "空间-ISRWU",
"RoomQRCode": "2012bb68-2c9a-4bcc-a9a4-e0128634bf65"
}
]
}
], "Message": "", "PageNumber": 1, "PageSize": 50, "Result": "success", "Total": 1 }
ZoneSpaceBaseIn 中的数据就是当前设备所在的业务空间
级联的关系数据也支持 Filters 条件查询 Orders 排序 Projection 指定返回的字段,去重 Distinct ,级联出来的空间对象内部还可以继续级联
{ "Cascade": [
{
"Cascade": [
"Name": "generalSystem"
],
"Name": "zoneSpaceInBase"
}
], "Filters": "ProjectId = 'Pj1101020002' and EquipID = 'Eq11010200020321acc7e6f311e88ca4e5a21975b346' ", "PageNumber": 1, "PageSize": 50 }
上面的例子是查询设备 ,设备坐在的业务空间,业务空间和系统的关系,返回结构和上面的类似,在空间的数据中会出现系统的实例数据
## 综合示例
查询某一楼层下的低压开关柜设备,使用创建时间加设备 ID 排序升序,指定返回字段为 EquipID EquipName Category EquipLocalID EquipLocalName
返回数量为100条 ,顺便查出来设备所在的默认业务空间,设备下的部件,设备关联的资产,设备和竖井的关系实例,竖井指定返回id和名称,示例如下:
```metadata json
{
"Cascade": [
{
"Filters": "ObjectType = 'GeneralZone'",
"Name": "zoneSpaceInBase"
},
{
"Name": "component"
},
{
"Name": "property"
},
{
"Name": "shaft",
"Projection": [
"ShaftID", "ShaftName"
]
}
],
"Filters": "ProjectId = 'Pj4101020002';FloorId = 'Fl410102000212f498f8128147a7bfdb853e80bd5596'; Category = 'TDLS'",
"Orders": "CreateTime asc,EquipID asc",
"PageNumber": 1,
"PageSize": 50,
"Projection": [
"EquipID", "EquipName", "Category", "EquipLocalID", "EquipLocalName"
]
}
返回结果
```metadata json {
"Content":[
{
"Category":"TDLS",
"EquipID":"Eq11010200020321acc7e6f311e88ca4e5a21975b346",
"EquipLocalID":"ATFU-TOP-N",
"EquipLocalName":"楼顶北低压开关柜",
"EquipName":"低压开关柜-E5L73",
"ZoneSpaceBaseIn":[
{
"BuildingId":"Bd110102000223fbec0accfb11e8a471b5d1be3b6dfe",
"FloorId":"Fl1101020002fbdcd07ed5cb11e88bee4dbb551fd992",
"ObjectType":"GeneralZone",
"ProjectId":"Pj1101020002",
"RoomFuncType":"311",
"RoomID":"Sp11010200024fdbd800e0aa11e88bee13864ca4ba47",
"RoomLocalID":"7F-A801-1",
"RoomLocalName":"A-801室",
"RoomName":"空间-ISRWU",
}
],
"component":[
{
"Category":"TDLSDW",
"EquipID":"Ec11010200020321acc7e6f311e88ca4e5a21975b303",
"EquipLocalID":"ATFU-TOP-N-0",
"EquipLocalName":"楼顶北低压开关柜抽屉"
}
],
"property":{
"Category":"LSA",
"EquipID":"Pe11010200020321acc7e6f311e88ca4e5a21975b340",
"EquipLocalID":"ATFU-TOP-N",
"EquipLocalName":"楼顶北低压开关柜"
},
"shaftList":[
{
"ShaftID":"Sh11010200020321acc7e6f311e88ca4e5a21975b349",
"ShaftName":"楼梯间"
}
]
}
],
"Message":"",
"PageNumber":1,
"PageSize":50,
"Result":"success",
"Total":1
} ```