Browse Source

添加服务依赖支持文档

zhangweixin 4 years ago
parent
commit
6fb8954d95
1 changed files with 173 additions and 3 deletions
  1. 173 3
      docs/dev/lib/web/query.md

+ 173 - 3
docs/dev/lib/web/query.md

@@ -129,8 +129,6 @@ Orders 排序,默认升序 asc 可以多字段排序,升序 asc  降序 desc
 }
 ```
 多字段排序从前往后依次按照 Orders 中的条件排序返回结果。
-## 去重
-
 
 ## 指定应答属性
 Projection 指定后返回的属性,有些时候并不想把某些对象所有信息点都查出来,只是用几个属性,提高数据交互质量可以指定需要的属性,例如:
@@ -146,10 +144,182 @@ Projection 指定后返回的属性,有些时候并不想把某些对象所有
 ```
 如上面的请求体就会返回 Projection 中指定的属性
 
+## 去重
+数据统计的时候会用到这个功能,比如统计某一个楼层下有多少种设备类型
+``` 
+{
+  "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通常是唯一的,去重是根据指定返回的字段为一个从整体去重的。
+
 ## 级联查询 (根据条件筛选、关系类型筛选级联) 
+级联查询:在查询某一个对象的时候想要知道和这个对象有关系的有哪些对象,可以通过级联查询来操作,例如查询设备,以及所在的业务空间:
+请求体
+```
+{
+  "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": [
+         "EquipID", "EquipName", "Category", "EquipLocalID", "EquipLocalName"
+         ]   
+     }
+  ],
+  "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",
+          "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"
+        }
+      ],
+       "component"
+    }
+  ],
+  "Message": "",
+  "PageNumber": 1,
+  "PageSize": 50,
+  "Result": "success",
+  "Total": 1
+}
+```
 
 
 
-## 综合示例 (多条件组合案例)