Browse Source

**********************************wx*************************
查询关系,统计关系一级二级分类,模糊查询卡片

weixinVSjinlai 4 years ago
parent
commit
c30d62c56c
41 changed files with 3555 additions and 126 deletions
  1. 0 30
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/RelBuilding.kt
  2. 1 58
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/RelFloor.kt
  3. 45 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelBuildingForBd.kt
  4. 46 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelBuildingForFl.kt
  5. 47 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelBuildingForSh.kt
  6. 46 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelBuildingForSp.kt
  7. 51 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelFloorForBd.kt
  8. 50 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelFloorForFl.kt
  9. 50 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelFloorForSh.kt
  10. 49 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelFloorForSp.kt
  11. 75 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelShaftFor.kt
  12. 52 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelShaftForBd.kt
  13. 53 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelShaftForFl.kt
  14. 48 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelShaftForSh.kt
  15. 48 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelShaftForSp.kt
  16. 49 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelZoneSpaceFor.kt
  17. 49 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelZoneSpaceForBd.kt
  18. 49 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelZoneSpaceForFl.kt
  19. 49 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelZoneSpaceForSh.kt
  20. 98 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RBd2BdTwo.kt
  21. 98 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RBd2FlTwo.kt
  22. 98 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RBd2ShTwo.kt
  23. 104 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RBd2SpTwo.kt
  24. 98 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RFl2BdTwo.kt
  25. 98 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RFl2FlTwo.kt
  26. 98 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RFl2ShTwo.kt
  27. 104 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RFl2SpTwo.kt
  28. 98 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RSh2BdTwo.kt
  29. 98 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RSh2FlTwo.kt
  30. 98 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RSh2ShTwo.kt
  31. 104 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RSh2SpTwo.kt
  32. 104 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RSp2BdTwo.kt
  33. 104 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RSp2FlTwo.kt
  34. 104 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RSp2ShTwo.kt
  35. 104 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RSp2SpTwo.kt
  36. 3 0
      data-core/src/main/kotlin/com/persagy/server/datacenter/models/requests/ManualRelationCalcRequest.kt
  37. 13 4
      datacenter/src/main/kotlin/com/persagy/server/controllers/graphtype/GraphicTypeController.kt
  38. 125 0
      datacenter/src/main/kotlin/com/persagy/server/services/base/CommonServices.kt
  39. 100 24
      datacenter/src/main/kotlin/com/persagy/server/services/graphtype/GraphicTypeService.kt
  40. 1 1
      datacenter/src/main/kotlin/com/persagy/server/services/relation_calc/ManualRelationAddService.kt
  41. 846 9
      datacenter/src/main/kotlin/com/persagy/server/services/relation_calc/ManualRelationCalcService.kt

+ 0 - 30
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/RelBuilding.kt

@@ -70,36 +70,6 @@ open class RelBuilding : BaseInfo() {
     @Column(name = "bim_id")
     var bimId: String? = null
 
-    /** 建筑信息 */
-    @Schema(description = "建筑信息")
-    @Column(name = "building_info")
-    var buildingInfo: HashMap<String,Any?>? = null
-
-    /** 工作历 */
-    @Schema(description = "工作历")
-    @Column(name = "schedule")
-    var schedule: HashMap<String,Any?>? = null
-
-    /** 人员信息 */
-    @Schema(description = "人员信息")
-    @Column(name = "people_info")
-    var peopleInfo: HashMap<String,Any?>? = null
-
-    /** 能耗信息 */
-    @Schema(description = "能耗信息")
-    @Column(name = "consumption_info")
-    var consumptionInfo: HashMap<String,Any?>? = null
-
-    /** 自定义 */
-    @Schema(description = "自定义")
-    @Column(name = "custom_param")
-    var customParam: HashMap<String,Any?>? = null
-
-    /** 建筑文档 */
-    @Schema(description = "建筑文档")
-    @Column(name = "building_doc")
-    var buildingDoc: HashMap<String,Any?>? = null
-
     /** 对象类型 */
     @Schema(description = "对象类型")
     @Column(name = "object_type")

+ 1 - 58
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/RelFloor.kt

@@ -87,66 +87,9 @@ open class RelFloor : BaseInfo() {
     @Column(name = "sequence_id")
     var sequenceId: Int? = null
 
-    /** 结构信息 */
-    @Schema(description = "结构信息")
-    @Column(name = "structure_info")
-    var structureInfo: HashMap<String,Any?>? = null
-
-    /** 人员信息 */
-    @Schema(description = "结构信息")
-    @Column(name = "people_info")
-    var peopleInfo: HashMap<String,Any?>? = null
-
-    /** 自定义 */
-    @Schema(description = "自定义")
-    @Column(name = "custom_param")
-    var customParam: HashMap<String,Any?>? = null
-
     /** 对象类型 */
     @Schema(description = "对象类型")
     @Column(name = "object_type")
     override var objectType: String? = "Floor"
 
-    /** 工作历信息 */
-    @Schema(description = "工作历信息")
-    @Column(name = "work_calendar")
-    var workCalendar: HashMap<String,Any?>? = null
-
-//    /** 建筑   table  对应关系表   idColumn 对应 本类的关系id    childIdColumn 级联对象的关系id */
-//    @Schema(description = "级联-楼层")
-//    @SCascade(table="floor", idColumn="id", childIdColumn="building_id")
-//    @JSONField(name = "Building")
-//    var building: Building? = null
-//
-//    /** 项目 */
-//    @Schema(description = "级联-项目")
-//    @SCascade(table="floor", idColumn="id", childIdColumn="project_id")
-//    @JSONField(name = "Project")
-//    var project: Project? = null
-//
-//    /** 贯通关系   self = true  同样的对象查询时 id可以互相调换查询   */
-//    @Schema(description = "级联-贯通关系")
-//    @SCascade(table="r_fl_through_fl", idColumn="floor_id", childIdColumn="floor_other_id", self = true)
-//    @JSONField(name = "FloorThroughList")
-//    var floorThroughList: ArrayList<RelFloor>? = null
-
-//    /** 项目 */
-//    @Schema(description = "级联-项目")
-//    @SCascade(table="floor", idColumn="id", childIdColumn="project_id")
-//    @JSONField(name = "Equipment")
-//    var Equipment: ArrayList<Equipment>? = null
-
-//    /** 模型文件id */
-//    @Schema(description = "模型文件id")
-//    @Column(name = "model_id")
-//    @JSONField(name = "ModelId")
-//    var modelId: String? = null
-//
-//    /** 轮廓线 */
-//    @Schema(description = "轮廓线")
-//    @Column(name = "outline")
-//    @JSONField(name = "Outline")
-//    var outline: ArrayList<PointPosition>? = null
-
-
-} // Class RelFloor
+}

+ 45 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelBuildingForBd.kt

@@ -0,0 +1,45 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+import com.persagy.service.models.annotations.SCascade
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Table
+
+/**
+ * 建筑信息实体类
+ *
+ * @author  张维新
+ */
+@Schema(description = "建筑信息实体类")
+@Table(name = "building")
+open class RelBuildingForBd : RelBuilding() {
+
+    /** 级联-空间 */
+    @Schema(description = "级联-建筑")
+    @SCascade(table="relationship.r_bd2bd", idColumn="id1", childIdColumn="id2",self = false,filter = "type = 'bd2bd_ArchForArch'" )
+    var objectInfo: ArrayList<RelBuilding>? = null
+
+}

+ 46 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelBuildingForFl.kt

@@ -0,0 +1,46 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelFloor
+import com.persagy.service.models.annotations.SCascade
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Table
+
+/**
+ * 建筑信息实体类
+ *
+ * @author  张维新
+ */
+@Schema(description = "建筑信息实体类")
+@Table(name = "building")
+open class RelBuildingForFl : RelBuilding() {
+
+    /** 级联-空间 */
+    @Schema(description = "级联-建筑")
+    @SCascade(table="relationship.r_bd2fl", idColumn="id1", childIdColumn="id2",self = false,filter = "type = 'bd2fl_ArchForArch'" )
+    var objectInfo: ArrayList<RelFloor>? = null
+
+}

+ 47 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelBuildingForSh.kt

@@ -0,0 +1,47 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelFloor
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelShaft
+import com.persagy.service.models.annotations.SCascade
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Table
+
+/**
+ * 建筑信息实体类
+ *
+ * @author  张维新
+ */
+@Schema(description = "建筑信息实体类")
+@Table(name = "building")
+open class RelBuildingForSh : RelBuilding() {
+
+    /** 级联-空间 */
+    @Schema(description = "级联-建筑")
+    @SCascade(table="relationship.r_bd2sh", idColumn="id1", childIdColumn="id2",self = false,filter = "type = 'bd2sh_ArchForArch'" )
+    var objectInfo: ArrayList<RelShaft>? = null
+
+}

+ 46 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelBuildingForSp.kt

@@ -0,0 +1,46 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelZoneSpace
+import com.persagy.service.models.annotations.SCascade
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Table
+
+/**
+ * 建筑信息实体类
+ *
+ * @author  张维新
+ */
+@Schema(description = "建筑信息实体类")
+@Table(name = "building")
+open class RelBuildingForSp : RelBuilding() {
+
+    /** 级联-空间 */
+    @Schema(description = "级联-建筑")
+    @SCascade(table="relationship.r_bd2sp", idColumn="id1", childIdColumn="id2",self = false,filter = "type = 'bd2sp_ArchForArch'" )
+    var objectInfo: ArrayList<RelZoneSpace>? = null
+
+}

+ 51 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelFloorForBd.kt

@@ -0,0 +1,51 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.graphtype.rel.fors
+
+import RelBuilding
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelFloor
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelShaft
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelZoneSpace
+import com.persagy.service.models.annotations.SCascade
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Table
+
+/**
+ * 楼层信息实体类
+ *
+ * @author  张维新
+ */
+@Schema(description = "楼层信息实体类")
+@Table(name = "floor")
+open class RelFloorForBd : RelFloor() {
+
+    /** 级联-空间 */
+    @Schema(description = "级联-建筑")
+    @SCascade(table="relationship.r_fl2bd", idColumn="id1", childIdColumn="id2",self = true,filter = "type = 'fl2bd_ArchForArch'" )
+    var objectInfo: ArrayList<RelBuilding>? = null
+
+}

+ 50 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelFloorForFl.kt

@@ -0,0 +1,50 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.graphtype.rel.fors
+
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelFloor
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelShaft
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelZoneSpace
+import com.persagy.service.models.annotations.SCascade
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Table
+
+/**
+ * 楼层信息实体类
+ *
+ * @author  张维新
+ */
+@Schema(description = "楼层信息实体类")
+@Table(name = "floor")
+open class RelFloorForFl : RelFloor() {
+
+    /** 级联-空间 */
+    @Schema(description = "级联-空间")
+    @SCascade(table="relationship.r_fl2fl", idColumn="id1", childIdColumn="id2",self = true,filter = "type = 'fl2fl_ArchForArch'" )
+    var objectInfo: ArrayList<RelFloor>? = null
+
+}

+ 50 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelFloorForSh.kt

@@ -0,0 +1,50 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.graphtype.rel.fors
+
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelFloor
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelShaft
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelZoneSpace
+import com.persagy.service.models.annotations.SCascade
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Table
+
+/**
+ * 楼层信息实体类
+ *
+ * @author  张维新
+ */
+@Schema(description = "楼层信息实体类")
+@Table(name = "floor")
+open class RelFloorForSh : RelFloor() {
+
+    /** 级联-空间 */
+    @Schema(description = "级联-空间")
+    @SCascade(table="relationship.r_fl2sh", idColumn="id1", childIdColumn="id2",self = true,filter = "type = 'fl2sh_ArchForArch'" )
+    var objectInfo: ArrayList<RelShaft>? = null
+
+}

+ 49 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelFloorForSp.kt

@@ -0,0 +1,49 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.graphtype.rel.fors
+
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelFloor
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelZoneSpace
+import com.persagy.service.models.annotations.SCascade
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Table
+
+/**
+ * 楼层信息实体类
+ *
+ * @author  张维新
+ */
+@Schema(description = "楼层信息实体类")
+@Table(name = "floor")
+open class RelFloorForSp : RelFloor() {
+
+    /** 级联-空间 */
+    @Schema(description = "级联-空间")
+    @SCascade(table="relationship.r_fl2sp", idColumn="id1", childIdColumn="id2",self = true,filter = "type = 'fl2sp_ArchForArch'" )
+    var objectInfo: ArrayList<RelZoneSpace>? = null
+
+}

+ 75 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelShaftFor.kt

@@ -0,0 +1,75 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.graphtype.rel.fors
+
+import com.persagy.server.datacenter.models.entities.base.BaseInfo
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Column
+import javax.persistence.Id
+import javax.persistence.Table
+
+/**
+ * 竖井信息实体类
+ *
+ * @author  张维新
+ */
+@Schema(description = "竖井信息实体类")
+@Table(name = "shaft")
+open class RelShaftFor : BaseInfo() {
+
+    /** 竖井id */
+    @Schema(description = "竖井id")
+    @Id
+    @Column(name = "id")
+    var id: String? = null
+
+    /** 竖井名称 */
+    @Schema(description = "竖井名称")
+    @Column(name = "name")
+    var name: String? = null
+
+    /** 竖井本地编码 */
+    @Schema(description = "竖井本地编码")
+    @Column(name = "local_id")
+    var localId: String? = null
+
+    /** 竖井本地名称 */
+    @Schema(description = "竖井本地名称")
+    @Column(name = "local_name")
+    var localName: String? = null
+
+    /** BIM模型中编码 */
+    @Schema(description = "BIM模型中编码")
+    @Column(name = "bim_id")
+    var bimId: String? = null
+
+    /** 项目id */
+    @Schema(description = "项目id")
+    @Column(name = "project_id")
+    var projectId: String? = null
+
+}

+ 52 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelShaftForBd.kt

@@ -0,0 +1,52 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.graphtype.rel.fors
+
+import RelBuilding
+import com.persagy.server.datacenter.models.entities.base.BaseInfo
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelZoneSpace
+import com.persagy.service.models.annotations.SCascade
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Column
+import javax.persistence.Id
+import javax.persistence.Table
+
+/**
+ * 竖井信息实体类
+ *
+ * @author  张维新
+ */
+@Schema(description = "竖井信息实体类")
+@Table(name = "shaft")
+class RelShaftForBd : RelShaftFor() {
+
+    /** 级联-空间 */
+    @Schema(description = "级联-空间")
+    @SCascade(table="relationship.r_sh2bd", idColumn="id1", childIdColumn="id2",self = true,filter = "type = 'sh2bd_ArchForArch'" )
+    var objectInfo: ArrayList<RelBuilding>? = null
+
+}

+ 53 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelShaftForFl.kt

@@ -0,0 +1,53 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.graphtype.rel.fors
+
+import RelBuilding
+import com.persagy.server.datacenter.models.entities.base.BaseInfo
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelFloor
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelZoneSpace
+import com.persagy.service.models.annotations.SCascade
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Column
+import javax.persistence.Id
+import javax.persistence.Table
+
+/**
+ * 竖井信息实体类
+ *
+ * @author  张维新
+ */
+@Schema(description = "竖井信息实体类")
+@Table(name = "shaft")
+class RelShaftForFl : RelShaftFor() {
+
+    /** 级联-空间 */
+    @Schema(description = "级联-空间")
+    @SCascade(table="relationship.r_sh2fl", idColumn="id1", childIdColumn="id2",self = true,filter = "type = 'sh2fl_ArchForArch'" )
+    var objectInfo: ArrayList<RelFloor>? = null
+
+}

+ 48 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelShaftForSh.kt

@@ -0,0 +1,48 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.graphtype.rel.fors
+
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelShaft
+import com.persagy.service.models.annotations.SCascade
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Table
+
+/**
+ * 竖井信息实体类
+ *
+ * @author  张维新
+ */
+@Schema(description = "竖井信息实体类")
+@Table(name = "shaft")
+class RelShaftForSh : RelShaftFor() {
+
+    /** 级联-空间 */
+    @Schema(description = "级联-空间")
+    @SCascade(table="relationship.r_sh2sh", idColumn="id1", childIdColumn="id2",self = true,filter = "type = 'sh2sh_ArchForArch'" )
+    var objectInfo: ArrayList<RelShaft>? = null
+
+}

+ 48 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelShaftForSp.kt

@@ -0,0 +1,48 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.graphtype.rel.fors
+
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelZoneSpace
+import com.persagy.service.models.annotations.SCascade
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Table
+
+/**
+ * 竖井信息实体类
+ *
+ * @author  张维新
+ */
+@Schema(description = "竖井信息实体类")
+@Table(name = "shaft")
+class RelShaftForSp : RelShaftFor() {
+
+    /** 级联-空间 */
+    @Schema(description = "级联-空间")
+    @SCascade(table="relationship.r_sh2sp", idColumn="id1", childIdColumn="id2",self = true,filter = "type = 'sh2sp_ArchForArch'" )
+    var objectInfo: ArrayList<RelZoneSpace>? = null
+
+}

+ 49 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelZoneSpaceFor.kt

@@ -0,0 +1,49 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.graphtype.rel.fors
+
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelZoneSpace
+import com.persagy.server.datacenter.models.entities.graphtype.rel.SpaceBaseZone
+import com.persagy.service.models.annotations.SCascade
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Table
+
+/**
+ * 业务空间
+ *
+ * @author  张维新
+ */
+@Schema(description = "空间实体类")
+@Table(name = "zone_space_base")
+open class RelZoneSpaceFor: SpaceBaseZone() {
+
+    /** 级联-空间 */
+    @Schema(description = "级联-空间")
+    @SCascade(table="relationship.r_sp2sp", idColumn="id1", childIdColumn="id2",self = true,filter = "type = 'sp2sp_ArchForArch'" )
+    var objectInfo: ArrayList<RelZoneSpace>? = null
+
+}

+ 49 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelZoneSpaceForBd.kt

@@ -0,0 +1,49 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.graphtype.rel.fors
+
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelZoneSpace
+import com.persagy.server.datacenter.models.entities.graphtype.rel.SpaceBaseZone
+import com.persagy.service.models.annotations.SCascade
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Table
+
+/**
+ * 业务空间
+ *
+ * @author  张维新
+ */
+@Schema(description = "空间实体类")
+@Table(name = "zone_space_base")
+open class RelZoneSpaceForBd: SpaceBaseZone() {
+
+    /** 级联-空间 */
+    @Schema(description = "级联-空间")
+    @SCascade(table="relationship.r_sp2bd", idColumn="id1", childIdColumn="id2",self = true,filter = "type = 'sp2bd_ArchForArch'" )
+    var objectInfo: ArrayList<RelZoneSpace>? = null
+
+}

+ 49 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelZoneSpaceForFl.kt

@@ -0,0 +1,49 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.graphtype.rel.fors
+
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelZoneSpace
+import com.persagy.server.datacenter.models.entities.graphtype.rel.SpaceBaseZone
+import com.persagy.service.models.annotations.SCascade
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Table
+
+/**
+ * 业务空间
+ *
+ * @author  张维新
+ */
+@Schema(description = "空间实体类")
+@Table(name = "zone_space_base")
+open class RelZoneSpaceForFl: SpaceBaseZone() {
+
+    /** 级联-空间 */
+    @Schema(description = "级联-空间")
+    @SCascade(table="relationship.r_sp2fl", idColumn="id1", childIdColumn="id2",self = true,filter = "type = 'sp2fl_ArchForArch'" )
+    var objectInfo: ArrayList<RelZoneSpace>? = null
+
+}

+ 49 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/graphtype/rel/fors/RelZoneSpaceForSh.kt

@@ -0,0 +1,49 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.graphtype.rel.fors
+
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelZoneSpace
+import com.persagy.server.datacenter.models.entities.graphtype.rel.SpaceBaseZone
+import com.persagy.service.models.annotations.SCascade
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Table
+
+/**
+ * 业务空间
+ *
+ * @author  张维新
+ */
+@Schema(description = "空间实体类")
+@Table(name = "zone_space_base")
+open class RelZoneSpaceForSh: SpaceBaseZone() {
+
+    /** 级联-空间 */
+    @Schema(description = "级联-空间")
+    @SCascade(table="relationship.r_sp2sh", idColumn="id1", childIdColumn="id2",self = true,filter = "type = 'sp2sh_ArchForArch'" )
+    var objectInfo: ArrayList<RelZoneSpace>? = null
+
+}

+ 98 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RBd2BdTwo.kt

@@ -0,0 +1,98 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.rel.archforarch
+
+import com.persagy.server.datacenter.models.entities.base.RBaseInfo
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Column
+import javax.persistence.Id
+import javax.persistence.Table
+
+/**
+ * 空间和空间关系
+ *
+ * @author 张维新
+ */
+@Schema(description = "建筑和建筑关系")
+@Table(name = "relationship.r_bd2bd")
+class RBd2BdTwo : RBaseInfo(){
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id1")
+    var id1: String? = null
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id2")
+    var id2: String? = null
+
+    /** 项目Id */
+    @Schema(description = "项目Id")
+    @Id
+    @Column(name = "project_id")
+    var projectId: String? = null
+
+    /** 类型 */
+    @Schema(description = "类型 " )
+    @Id
+    @Column(name = "type")
+    var type: String? = null
+
+    /** 图类型 */
+    @Schema(description = "图类型 " )
+    @Column(name = "graph_code")
+    var graphCode: String? = null
+
+    /** 计算标记 1 为手动 2为自动 */
+    @Schema(description = "计算标记 1 为手动 2为自动 ")
+    @Column(name = "sign")
+    var sign: Int? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id1")
+    var localId1: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name1")
+    var localName1: String? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id2")
+    var localId2: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name2")
+    var localName2: String? = null
+
+}

+ 98 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RBd2FlTwo.kt

@@ -0,0 +1,98 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.rel.archforarch
+
+import com.persagy.server.datacenter.models.entities.base.RBaseInfo
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Column
+import javax.persistence.Id
+import javax.persistence.Table
+
+/**
+ * 空间和空间关系
+ *
+ * @author 张维新
+ */
+@Schema(description = "建筑和楼层关系")
+@Table(name = "relationship.r_bd2fl")
+class RBd2FlTwo : RBaseInfo(){
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id1")
+    var id1: String? = null
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id2")
+    var id2: String? = null
+
+    /** 项目Id */
+    @Schema(description = "项目Id")
+    @Id
+    @Column(name = "project_id")
+    var projectId: String? = null
+
+    /** 类型 */
+    @Schema(description = "类型 " )
+    @Id
+    @Column(name = "type")
+    var type: String? = null
+
+    /** 图类型 */
+    @Schema(description = "图类型 " )
+    @Column(name = "graph_code")
+    var graphCode: String? = null
+
+    /** 计算标记 1 为手动 2为自动 */
+    @Schema(description = "计算标记 1 为手动 2为自动 ")
+    @Column(name = "sign")
+    var sign: Int? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id1")
+    var localId1: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name1")
+    var localName1: String? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id2")
+    var localId2: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name2")
+    var localName2: String? = null
+
+}

+ 98 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RBd2ShTwo.kt

@@ -0,0 +1,98 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.rel.archforarch
+
+import com.persagy.server.datacenter.models.entities.base.RBaseInfo
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Column
+import javax.persistence.Id
+import javax.persistence.Table
+
+/**
+ * 空间和空间关系
+ *
+ * @author 张维新
+ */
+@Schema(description = "建筑和竖井关系")
+@Table(name = "relationship.r_bd2sh")
+class RBd2ShTwo : RBaseInfo(){
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id1")
+    var id1: String? = null
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id2")
+    var id2: String? = null
+
+    /** 项目Id */
+    @Schema(description = "项目Id")
+    @Id
+    @Column(name = "project_id")
+    var projectId: String? = null
+
+    /** 类型 */
+    @Schema(description = "类型 " )
+    @Id
+    @Column(name = "type")
+    var type: String? = null
+
+    /** 图类型 */
+    @Schema(description = "图类型 " )
+    @Column(name = "graph_code")
+    var graphCode: String? = null
+
+    /** 计算标记 1 为手动 2为自动 */
+    @Schema(description = "计算标记 1 为手动 2为自动 ")
+    @Column(name = "sign")
+    var sign: Int? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id1")
+    var localId1: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name1")
+    var localName1: String? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id2")
+    var localId2: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name2")
+    var localName2: String? = null
+
+}

+ 104 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RBd2SpTwo.kt

@@ -0,0 +1,104 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.rel.archforarch
+
+import com.persagy.server.datacenter.models.entities.base.RBaseInfo
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Column
+import javax.persistence.Id
+import javax.persistence.Table
+
+/**
+ * 空间和空间关系
+ *
+ * @author 张维新
+ */
+@Schema(description = "建筑和空间关系")
+@Table(name = "relationship.r_bd2sp")
+class RBd2SpTwo : RBaseInfo(){
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id1")
+    var id1: String? = null
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id2")
+    var id2: String? = null
+
+    /** 项目Id */
+    @Schema(description = "项目Id")
+    @Id
+    @Column(name = "project_id")
+    var projectId: String? = null
+
+    /** 类型 */
+    @Schema(description = "类型 " )
+    @Id
+    @Column(name = "type")
+    var type: String? = null
+
+    /** 图类型 */
+    @Schema(description = "图类型 " )
+    @Column(name = "graph_code")
+    var graphCode: String? = null
+
+    /** 空间类型 */
+    @Schema(description = "空间类型 " )
+    @Id
+    @Column(name = "zone_type")
+    var zoneType: String? = null
+
+    /** 计算标记 1 为手动 2为自动 */
+    @Schema(description = "计算标记 1 为手动 2为自动 ")
+    @Column(name = "sign")
+    var sign: Int? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id1")
+    var localId1: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name1")
+    var localName1: String? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id2")
+    var localId2: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name2")
+    var localName2: String? = null
+
+}

+ 98 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RFl2BdTwo.kt

@@ -0,0 +1,98 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.rel.archforarch
+
+import com.persagy.server.datacenter.models.entities.base.RBaseInfo
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Column
+import javax.persistence.Id
+import javax.persistence.Table
+
+/**
+ * 空间和空间关系
+ *
+ * @author 张维新
+ */
+@Schema(description = "楼层和楼层关系")
+@Table(name = "relationship.r_fl2bd")
+class RFl2BdTwo : RBaseInfo(){
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id1")
+    var id1: String? = null
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id2")
+    var id2: String? = null
+
+    /** 项目Id */
+    @Schema(description = "项目Id")
+    @Id
+    @Column(name = "project_id")
+    var projectId: String? = null
+
+    /** 类型 */
+    @Schema(description = "类型 " )
+    @Id
+    @Column(name = "type")
+    var type: String? = null
+
+    /** 图类型 */
+    @Schema(description = "图类型 " )
+    @Column(name = "graph_code")
+    var graphCode: String? = null
+
+    /** 计算标记 1 为手动 2为自动 */
+    @Schema(description = "计算标记 1 为手动 2为自动 ")
+    @Column(name = "sign")
+    var sign: Int? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id1")
+    var localId1: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name1")
+    var localName1: String? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id2")
+    var localId2: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name2")
+    var localName2: String? = null
+
+}

+ 98 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RFl2FlTwo.kt

@@ -0,0 +1,98 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.rel.archforarch
+
+import com.persagy.server.datacenter.models.entities.base.RBaseInfo
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Column
+import javax.persistence.Id
+import javax.persistence.Table
+
+/**
+ * 空间和空间关系
+ *
+ * @author 张维新
+ */
+@Schema(description = "楼层和楼层关系")
+@Table(name = "relationship.r_fl2fl")
+class RFl2FlTwo : RBaseInfo(){
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id1")
+    var id1: String? = null
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id2")
+    var id2: String? = null
+
+    /** 项目Id */
+    @Schema(description = "项目Id")
+    @Id
+    @Column(name = "project_id")
+    var projectId: String? = null
+
+    /** 类型 */
+    @Schema(description = "类型 " )
+    @Id
+    @Column(name = "type")
+    var type: String? = null
+
+    /** 图类型 */
+    @Schema(description = "图类型 " )
+    @Column(name = "graph_code")
+    var graphCode: String? = null
+
+    /** 计算标记 1 为手动 2为自动 */
+    @Schema(description = "计算标记 1 为手动 2为自动 ")
+    @Column(name = "sign")
+    var sign: Int? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id1")
+    var localId1: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name1")
+    var localName1: String? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id2")
+    var localId2: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name2")
+    var localName2: String? = null
+
+}

+ 98 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RFl2ShTwo.kt

@@ -0,0 +1,98 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.rel.archforarch
+
+import com.persagy.server.datacenter.models.entities.base.RBaseInfo
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Column
+import javax.persistence.Id
+import javax.persistence.Table
+
+/**
+ * 空间和空间关系
+ *
+ * @author 张维新
+ */
+@Schema(description = "楼层和竖井关系")
+@Table(name = "relationship.r_fl2sh")
+class RFl2ShTwo : RBaseInfo(){
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id1")
+    var id1: String? = null
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id2")
+    var id2: String? = null
+
+    /** 项目Id */
+    @Schema(description = "项目Id")
+    @Id
+    @Column(name = "project_id")
+    var projectId: String? = null
+
+    /** 类型 */
+    @Schema(description = "类型 " )
+    @Id
+    @Column(name = "type")
+    var type: String? = null
+
+    /** 图类型 */
+    @Schema(description = "图类型 " )
+    @Column(name = "graph_code")
+    var graphCode: String? = null
+
+    /** 计算标记 1 为手动 2为自动 */
+    @Schema(description = "计算标记 1 为手动 2为自动 ")
+    @Column(name = "sign")
+    var sign: Int? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id1")
+    var localId1: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name1")
+    var localName1: String? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id2")
+    var localId2: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name2")
+    var localName2: String? = null
+
+}

+ 104 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RFl2SpTwo.kt

@@ -0,0 +1,104 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.rel.archforarch
+
+import com.persagy.server.datacenter.models.entities.base.RBaseInfo
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Column
+import javax.persistence.Id
+import javax.persistence.Table
+
+/**
+ * 空间和空间关系
+ *
+ * @author 张维新
+ */
+@Schema(description = "竖井和空间关系")
+@Table(name = "relationship.r_fl2sp")
+class RFl2SpTwo : RBaseInfo(){
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id1")
+    var id1: String? = null
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id2")
+    var id2: String? = null
+
+    /** 项目Id */
+    @Schema(description = "项目Id")
+    @Id
+    @Column(name = "project_id")
+    var projectId: String? = null
+
+    /** 类型 */
+    @Schema(description = "类型 " )
+    @Id
+    @Column(name = "type")
+    var type: String? = null
+
+    /** 图类型 */
+    @Schema(description = "图类型 " )
+    @Column(name = "graph_code")
+    var graphCode: String? = null
+
+    /** 空间类型 */
+    @Schema(description = "空间类型 " )
+    @Id
+    @Column(name = "zone_type")
+    var zoneType: String? = null
+
+    /** 计算标记 1 为手动 2为自动 */
+    @Schema(description = "计算标记 1 为手动 2为自动 ")
+    @Column(name = "sign")
+    var sign: Int? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id1")
+    var localId1: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name1")
+    var localName1: String? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id2")
+    var localId2: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name2")
+    var localName2: String? = null
+
+}

+ 98 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RSh2BdTwo.kt

@@ -0,0 +1,98 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.rel.archforarch
+
+import com.persagy.server.datacenter.models.entities.base.RBaseInfo
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Column
+import javax.persistence.Id
+import javax.persistence.Table
+
+/**
+ * 空间和空间关系
+ *
+ * @author 张维新
+ */
+@Schema(description = "竖井和空间关系")
+@Table(name = "relationship.r_sh2bd")
+class RSh2BdTwo : RBaseInfo(){
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id1")
+    var id1: String? = null
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id2")
+    var id2: String? = null
+
+    /** 项目Id */
+    @Schema(description = "项目Id")
+    @Id
+    @Column(name = "project_id")
+    var projectId: String? = null
+
+    /** 类型 */
+    @Schema(description = "类型 " )
+    @Id
+    @Column(name = "type")
+    var type: String? = null
+
+    /** 图类型 */
+    @Schema(description = "图类型 " )
+    @Column(name = "graph_code")
+    var graphCode: String? = null
+
+    /** 计算标记 1 为手动 2为自动 */
+    @Schema(description = "计算标记 1 为手动 2为自动 ")
+    @Column(name = "sign")
+    var sign: Int? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id1")
+    var localId1: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name1")
+    var localName1: String? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id2")
+    var localId2: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name2")
+    var localName2: String? = null
+
+}

+ 98 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RSh2FlTwo.kt

@@ -0,0 +1,98 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.rel.archforarch
+
+import com.persagy.server.datacenter.models.entities.base.RBaseInfo
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Column
+import javax.persistence.Id
+import javax.persistence.Table
+
+/**
+ * 空间和空间关系
+ *
+ * @author 张维新
+ */
+@Schema(description = "竖井和空间关系")
+@Table(name = "relationship.r_sh2fl")
+class RSh2FlTwo : RBaseInfo(){
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id1")
+    var id1: String? = null
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id2")
+    var id2: String? = null
+
+    /** 项目Id */
+    @Schema(description = "项目Id")
+    @Id
+    @Column(name = "project_id")
+    var projectId: String? = null
+
+    /** 类型 */
+    @Schema(description = "类型 " )
+    @Id
+    @Column(name = "type")
+    var type: String? = null
+
+    /** 图类型 */
+    @Schema(description = "图类型 " )
+    @Column(name = "graph_code")
+    var graphCode: String? = null
+
+    /** 计算标记 1 为手动 2为自动 */
+    @Schema(description = "计算标记 1 为手动 2为自动 ")
+    @Column(name = "sign")
+    var sign: Int? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id1")
+    var localId1: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name1")
+    var localName1: String? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id2")
+    var localId2: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name2")
+    var localName2: String? = null
+
+}

+ 98 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RSh2ShTwo.kt

@@ -0,0 +1,98 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.rel.archforarch
+
+import com.persagy.server.datacenter.models.entities.base.RBaseInfo
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Column
+import javax.persistence.Id
+import javax.persistence.Table
+
+/**
+ * 空间和空间关系
+ *
+ * @author 张维新
+ */
+@Schema(description = "竖井和空间关系")
+@Table(name = "relationship.r_sh2sh")
+class RSh2ShTwo : RBaseInfo(){
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id1")
+    var id1: String? = null
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id2")
+    var id2: String? = null
+
+    /** 项目Id */
+    @Schema(description = "项目Id")
+    @Id
+    @Column(name = "project_id")
+    var projectId: String? = null
+
+    /** 类型 */
+    @Schema(description = "类型 " )
+    @Id
+    @Column(name = "type")
+    var type: String? = null
+
+    /** 图类型 */
+    @Schema(description = "图类型 " )
+    @Column(name = "graph_code")
+    var graphCode: String? = null
+
+    /** 计算标记 1 为手动 2为自动 */
+    @Schema(description = "计算标记 1 为手动 2为自动 ")
+    @Column(name = "sign")
+    var sign: Int? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id1")
+    var localId1: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name1")
+    var localName1: String? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id2")
+    var localId2: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name2")
+    var localName2: String? = null
+
+}

+ 104 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RSh2SpTwo.kt

@@ -0,0 +1,104 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.rel.archforarch
+
+import com.persagy.server.datacenter.models.entities.base.RBaseInfo
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Column
+import javax.persistence.Id
+import javax.persistence.Table
+
+/**
+ * 空间和空间关系
+ *
+ * @author 张维新
+ */
+@Schema(description = "竖井和空间关系")
+@Table(name = "relationship.r_sh2sp")
+class RSh2SpTwo : RBaseInfo(){
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id1")
+    var id1: String? = null
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id2")
+    var id2: String? = null
+
+    /** 项目Id */
+    @Schema(description = "项目Id")
+    @Id
+    @Column(name = "project_id")
+    var projectId: String? = null
+
+    /** 类型 */
+    @Schema(description = "类型 " )
+    @Id
+    @Column(name = "type")
+    var type: String? = null
+
+    /** 图类型 */
+    @Schema(description = "图类型 " )
+    @Column(name = "graph_code")
+    var graphCode: String? = null
+
+    /** 空间类型 */
+    @Schema(description = "空间类型 " )
+    @Id
+    @Column(name = "zone_type")
+    var zoneType: String? = null
+
+    /** 计算标记 1 为手动 2为自动 */
+    @Schema(description = "计算标记 1 为手动 2为自动 ")
+    @Column(name = "sign")
+    var sign: Int? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id1")
+    var localId1: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name1")
+    var localName1: String? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id2")
+    var localId2: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name2")
+    var localName2: String? = null
+
+}

+ 104 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RSp2BdTwo.kt

@@ -0,0 +1,104 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.rel.archforarch
+
+import com.persagy.server.datacenter.models.entities.base.RBaseInfo
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Column
+import javax.persistence.Id
+import javax.persistence.Table
+
+/**
+ * 空间和空间关系
+ *
+ * @author 张维新
+ */
+@Schema(description = "空间和建筑关系")
+@Table(name = "relationship.r_sp2bd")
+class RSp2BdTwo : RBaseInfo(){
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id1")
+    var id1: String? = null
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id2")
+    var id2: String? = null
+
+    /** 项目Id */
+    @Schema(description = "项目Id")
+    @Id
+    @Column(name = "project_id")
+    var projectId: String? = null
+
+    /** 类型 */
+    @Schema(description = "类型 " )
+    @Id
+    @Column(name = "type")
+    var type: String? = null
+
+    /** 图类型 */
+    @Schema(description = "图类型 " )
+    @Column(name = "graph_code")
+    var graphCode: String? = null
+
+    /** 空间类型 */
+    @Schema(description = "空间类型 " )
+    @Id
+    @Column(name = "zone_type")
+    var zoneType: String? = null
+
+    /** 计算标记 1 为手动 2为自动 */
+    @Schema(description = "计算标记 1 为手动 2为自动 ")
+    @Column(name = "sign")
+    var sign: Int? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id1")
+    var localId1: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name1")
+    var localName1: String? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id2")
+    var localId2: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name2")
+    var localName2: String? = null
+
+}

+ 104 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RSp2FlTwo.kt

@@ -0,0 +1,104 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.rel.archforarch
+
+import com.persagy.server.datacenter.models.entities.base.RBaseInfo
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Column
+import javax.persistence.Id
+import javax.persistence.Table
+
+/**
+ * 空间和空间关系
+ *
+ * @author 张维新
+ */
+@Schema(description = "空间和楼层关系")
+@Table(name = "relationship.r_sp2fl")
+class RSp2FlTwo : RBaseInfo(){
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id1")
+    var id1: String? = null
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id2")
+    var id2: String? = null
+
+    /** 项目Id */
+    @Schema(description = "项目Id")
+    @Id
+    @Column(name = "project_id")
+    var projectId: String? = null
+
+    /** 类型 */
+    @Schema(description = "类型 " )
+    @Id
+    @Column(name = "type")
+    var type: String? = null
+
+    /** 图类型 */
+    @Schema(description = "图类型 " )
+    @Column(name = "graph_code")
+    var graphCode: String? = null
+
+    /** 空间类型 */
+    @Schema(description = "空间类型 " )
+    @Id
+    @Column(name = "zone_type")
+    var zoneType: String? = null
+
+    /** 计算标记 1 为手动 2为自动 */
+    @Schema(description = "计算标记 1 为手动 2为自动 ")
+    @Column(name = "sign")
+    var sign: Int? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id1")
+    var localId1: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name1")
+    var localName1: String? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id2")
+    var localId2: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name2")
+    var localName2: String? = null
+
+}

+ 104 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RSp2ShTwo.kt

@@ -0,0 +1,104 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.rel.archforarch
+
+import com.persagy.server.datacenter.models.entities.base.RBaseInfo
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Column
+import javax.persistence.Id
+import javax.persistence.Table
+
+/**
+ * 空间和空间关系
+ *
+ * @author 张维新
+ */
+@Schema(description = "空间和竖井关系")
+@Table(name = "relationship.r_sp2sh")
+class RSp2ShTwo : RBaseInfo(){
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id1")
+    var id1: String? = null
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id2")
+    var id2: String? = null
+
+    /** 项目Id */
+    @Schema(description = "项目Id")
+    @Id
+    @Column(name = "project_id")
+    var projectId: String? = null
+
+    /** 类型 */
+    @Schema(description = "类型 " )
+    @Id
+    @Column(name = "type")
+    var type: String? = null
+
+    /** 图类型 */
+    @Schema(description = "图类型 " )
+    @Column(name = "graph_code")
+    var graphCode: String? = null
+
+    /** 空间类型 */
+    @Schema(description = "空间类型 " )
+    @Id
+    @Column(name = "zone_type")
+    var zoneType: String? = null
+
+    /** 计算标记 1 为手动 2为自动 */
+    @Schema(description = "计算标记 1 为手动 2为自动 ")
+    @Column(name = "sign")
+    var sign: Int? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id1")
+    var localId1: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name1")
+    var localName1: String? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id2")
+    var localId2: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name2")
+    var localName2: String? = null
+
+}

+ 104 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/entities/rel/archforarch/RSp2SpTwo.kt

@@ -0,0 +1,104 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .F88X
+ *        X8888Y
+ *      .}888888N;
+ *        i888888N;        .:!              .I$WI:
+ *          R888888I      .'N88~            i8}+8Y&8"l8i$8>8W~'>W8}8]KW+8IIN"8&
+ *          .R888888I    .;N8888~          .X8'  "8I.!,/8"  !%NY8`"8I8~~8>,88I
+ *            +888888N;  .8888888Y                                  "&&8Y.}8,
+ *            ./888888N;  .R888888Y        .'}~    .>}'.`+>  i}!    "i'  +/'  .'i~  !11,.:">,  .~]!  .i}i
+ *              ~888888%:  .I888888l      .]88~`1/iY88Ii+1'.R$8$8]"888888888>  Y8$  W8E  X8E  W8888'188Il}Y88$*
+ *              18888888    E8888881    .]W%8$`R8X'&8%++N8i,8N%N8+l8%`  .}8N:.R$RE%N88N%N$K$R  188,FE$8%~Y88I
+ *            .E888888I  .i8888888'      .:$8I;88+`E8R:/8N,.>881.`$8E/1/]N8X.Y8N`"KF&&FK!'88*."88K./$88%RN888+~
+ *            8888888I  .,N888888~        ~88i"8W,!N8*.I88.}888%F,i$88"F88"  888:E8X.>88!i88>`888*.}Fl1]*}1YKi'
+ *          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
+ *        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
+ *      .:R888888I
+ *      .&888888I                                          Copyright (c) 2009-2020.  博锐尚格科技股份有限公司
+ *        ~8888'
+ *        .!88~                                                                     All rights reserved.
+ *
+ * *********************************************************************************************************************
+ */
+
+package com.persagy.server.datacenter.models.entities.rel.archforarch
+
+import com.persagy.server.datacenter.models.entities.base.RBaseInfo
+import io.swagger.v3.oas.annotations.media.Schema
+import javax.persistence.Column
+import javax.persistence.Id
+import javax.persistence.Table
+
+/**
+ * 空间和空间关系
+ *
+ * @author 张维新
+ */
+@Schema(description = "空间和空间关系")
+@Table(name = "relationship.r_sp2sp")
+class RSp2SpTwo : RBaseInfo(){
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id1")
+    var id1: String? = null
+
+    /** 空间Id */
+    @Schema(description = "空间Id")
+    @Id
+    @Column(name = "id2")
+    var id2: String? = null
+
+    /** 项目Id */
+    @Schema(description = "项目Id")
+    @Id
+    @Column(name = "project_id")
+    var projectId: String? = null
+
+    /** 类型 */
+    @Schema(description = "类型 " )
+    @Id
+    @Column(name = "type")
+    var type: String? = null
+
+    /** 图类型 */
+    @Schema(description = "图类型 " )
+    @Column(name = "graph_code")
+    var graphCode: String? = null
+
+    /** 空间类型 */
+    @Schema(description = "空间类型 " )
+    @Id
+    @Column(name = "zone_type")
+    var zoneType: String? = null
+
+    /** 计算标记 1 为手动 2为自动 */
+    @Schema(description = "计算标记 1 为手动 2为自动 ")
+    @Column(name = "sign")
+    var sign: Int? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id1")
+    var localId1: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name1")
+    var localName1: String? = null
+
+    /** 设备本地编码 */
+    @Schema(description = "设备本地编码")
+    @Column(name = "local_id2")
+    var localId2: String? = null
+
+    /** 设备本地名称 */
+    @Schema(description = "设备本地名称")
+    @Column(name = "local_name2")
+    var localName2: String? = null
+
+}

+ 3 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/models/requests/ManualRelationCalcRequest.kt

@@ -54,6 +54,9 @@ class ManualRelationCalcRequest : Serializable {
     @Schema(description = "模糊查询 关键词")
     var vague: String? = null
 
+    @Schema(description = "模糊查询 关键词")
+    var vagueTo: String? = null
+
     /** 第几页 */
     @Schema(description = "第几页(从1开始)", example = "1")
     var pageNumber: Int = 0

+ 13 - 4
datacenter/src/main/kotlin/com/persagy/server/controllers/graphtype/GraphicTypeController.kt

@@ -65,11 +65,20 @@ open class GraphicTypeController {
     /**
      * 查询关系总览
      */
-    @Operation(summary = "查询关系总览")
+    @Operation(summary = "查询关系总览",description = "content 模糊查询卡片名称")
     @PostMapping(value = ["/overview"])
-    fun overview(): SQueryResponse<GraphicType> {
-        return GraphicTypeService.overview()
-    } // Function tree()
+    fun overview( @RequestParam content: String?): SQueryResponse<GraphicType> {
+        return GraphicTypeService.overview(content)
+    }
+
+    /**
+     * 查询一级二级列表树结构
+     */
+    @Operation(summary = "查询一级二级列表树结构")
+    @PostMapping(value = ["/level"])
+    fun queryLevel(): SQueryResponse<GraphicType> {
+        return GraphicTypeService.queryLevel()
+    }
 
     /**
      * 查询数量

+ 125 - 0
datacenter/src/main/kotlin/com/persagy/server/services/base/CommonServices.kt

@@ -0,0 +1,125 @@
+package com.persagy.server.services.base
+
+import RelBuildingForBd
+import RelBuildingForFl
+import RelBuildingForSh
+import RelBuildingForSp
+import com.persagy.mybatis.SMybatisDao
+import com.persagy.server.datacenter.models.entities.graphtype.rel.fors.*
+import com.persagy.server.datacenter.models.entities.rel.RSp2Sp
+import com.persagy.server.datacenter.models.entities.rel.archforarch.*
+import com.persagy.service.SObjectService
+
+/**
+ * 公共服务
+ */
+object CommonServices {
+
+    /** 区域服务-建筑和建筑 */
+     val rBd2BdService = SObjectService(SMybatisDao(RBd2Bd::class.java))
+    /** 建筑和楼层 */
+     val rBd2FlService = SObjectService(SMybatisDao(RBd2Fl::class.java))
+    /** 建筑和竖井 */
+     val rBd2ShService = SObjectService(SMybatisDao(RBd2Sh::class.java))
+    /** 建筑和空间 */
+     val rBd2SpService = SObjectService(SMybatisDao(RBd2Sp::class.java))
+    /** 区域服务-楼层和建筑 */
+     val rFl2BdService = SObjectService(SMybatisDao(RFl2Bd::class.java))
+    /** 楼层和楼层 */
+     val rFl2FlService = SObjectService(SMybatisDao(RFl2Fl::class.java))
+    /** 楼层和竖井 */
+     val rFl2ShService = SObjectService(SMybatisDao(RFl2Sh::class.java))
+    /** 楼层和空间 */
+     val rFl2SpService = SObjectService(SMybatisDao(RFl2Sp::class.java))
+    /** 区域服务-竖井和建筑 */
+     val rSh2BdService = SObjectService(SMybatisDao(RSh2Bd::class.java))
+    /** 竖井和楼层 */
+     val rSh2FlService = SObjectService(SMybatisDao(RSh2Fl::class.java))
+    /** 竖井和竖井 */
+     val rSh2ShService = SObjectService(SMybatisDao(RSh2Sh::class.java))
+    /** 竖井和空间 */
+     val rSh2SpService = SObjectService(SMybatisDao(RSh2Sp::class.java))
+    /** 区域服务-空间和建筑 */
+     val rSp2BdService = SObjectService(SMybatisDao(RSp2Bd::class.java))
+    /** 空间和楼层 */
+     val rSp2FlService = SObjectService(SMybatisDao(RSp2Fl::class.java))
+    /** 空间和竖井 */
+     val rSp2ShService = SObjectService(SMybatisDao(RSp2Sh::class.java))
+    /** 空间和空间的关系 */
+     val rSp2SpService = SObjectService(SMybatisDao(RSp2Sp::class.java))
+
+    /** 空间和空间的关系 */
+    val rSp2SpTwoService = SObjectService(SMybatisDao(RSp2SpTwo::class.java))
+    /** 空间和竖井 */
+    val rSp2ShTwoService = SObjectService(SMybatisDao(RSp2ShTwo::class.java))
+    /** 空间和楼层 */
+    val rSp2FlTwoService = SObjectService(SMybatisDao(RSp2FlTwo::class.java))
+    /** 空间和建筑 */
+    val rSp2BdTwoService = SObjectService(SMybatisDao(RSp2BdTwo::class.java))
+
+    /** 竖井和建筑 */
+    val rSh2BdTwoService = SObjectService(SMybatisDao(RSh2BdTwo::class.java))
+    /** 竖井和楼层 */
+    val rSh2FlTwoService = SObjectService(SMybatisDao(RSh2FlTwo::class.java))
+    /** 竖井和竖井 */
+    val rSh2ShTwoService = SObjectService(SMybatisDao(RSh2ShTwo::class.java))
+    /** 竖井和空间 */
+    val rSh2SpTwoService = SObjectService(SMybatisDao(RSh2SpTwo::class.java))
+
+    /** 楼层和建筑 */
+    val rFl2BdTwoService = SObjectService(SMybatisDao(RFl2BdTwo::class.java))
+    /** 楼层和楼层 */
+    val rFl2FlTwoService = SObjectService(SMybatisDao(RFl2FlTwo::class.java))
+    /** 楼层和竖井 */
+    val rFl2ShTwoService = SObjectService(SMybatisDao(RFl2ShTwo::class.java))
+    /** 楼层和空间 */
+    val rFl2SpTwoService = SObjectService(SMybatisDao(RFl2SpTwo::class.java))
+
+    /** 建筑和建筑 */
+    val rBd2BdTwoService = SObjectService(SMybatisDao(RBd2BdTwo::class.java))
+    /** 建筑和楼层 */
+    val rBd2FlTwoService = SObjectService(SMybatisDao(RBd2FlTwo::class.java))
+    /** 建筑和竖井 */
+    val rBd2ShTwoService = SObjectService(SMybatisDao(RBd2ShTwo::class.java))
+    /** 建筑和空间 */
+    val rBd2SpTwoService = SObjectService(SMybatisDao(RBd2SpTwo::class.java))
+
+
+
+
+    /** 空间对象 */
+    val relZoneSpaceForService = SObjectService(SMybatisDao(RelZoneSpaceFor::class.java))
+    /** 空间和竖井 */
+    val relZoneSpaceForShService = SObjectService(SMybatisDao(RelZoneSpaceForSh::class.java))
+    /** 空间和楼层 */
+    val relZoneSpaceForFlService = SObjectService(SMybatisDao(RelZoneSpaceForFl::class.java))
+    /** 空间和建筑 */
+    val relZoneSpaceForBdService = SObjectService(SMybatisDao(RelZoneSpaceForBd::class.java))
+
+    /** 竖井对象空间 */
+    val relShaftForSpService = SObjectService(SMybatisDao(RelShaftForSp::class.java))
+    /** 竖井对象竖井 */
+    val relShaftForShService = SObjectService(SMybatisDao(RelShaftForSh::class.java))
+    /** 竖井对象楼层 */
+    val relShaftForFlService = SObjectService(SMybatisDao(RelShaftForFl::class.java))
+    /** 竖井对象建筑 */
+    val relShaftForBdService = SObjectService(SMybatisDao(RelShaftForBd::class.java))
+
+    /** 楼层对象空间 */
+    val relFloorForSpService = SObjectService(SMybatisDao(RelFloorForSp::class.java))
+    /** 楼层对象竖井 */
+    val relFloorForShService = SObjectService(SMybatisDao(RelFloorForSh::class.java))
+    /** 楼层对象楼层 */
+    val relFloorForFlService = SObjectService(SMybatisDao(RelFloorForFl::class.java))
+    /** 楼层对象建筑 */
+    val relFloorForBdService = SObjectService(SMybatisDao(RelFloorForBd::class.java))
+
+    /** 建筑对象空间 */
+    val relBuildingForSpService = SObjectService(SMybatisDao(RelBuildingForSp::class.java))
+    /** 建筑对象竖井 */
+    val relBuildingForShService = SObjectService(SMybatisDao(RelBuildingForSh::class.java))
+    /** 建筑对象楼层 */
+    val relBuildingForFlService = SObjectService(SMybatisDao(RelBuildingForFl::class.java))
+    /** 建筑对象建筑 */
+    val relBuildingForBdService = SObjectService(SMybatisDao(RelBuildingForBd::class.java))
+}

+ 100 - 24
datacenter/src/main/kotlin/com/persagy/server/services/graphtype/GraphicTypeService.kt

@@ -28,6 +28,7 @@ package com.persagy.server.services.graphtype
 
 import com.persagy.database.SFilter
 import com.persagy.mybatis.SMybatisDao
+import com.persagy.server.Opt
 import com.persagy.server.datacenter.models.entities.graphtype.GraphicType
 import com.persagy.server.datacenter.models.entities.graphtype.RelationType
 import com.persagy.server.datacenter.models.entities.graphtype.RelationTypeProject
@@ -41,6 +42,7 @@ import com.persagy.service.models.responses.SQueryResponse
 import org.slf4j.LoggerFactory
 import java.util.*
 import kotlin.collections.ArrayList
+import kotlin.collections.HashSet
 
 /**
  * 查询总览
@@ -57,49 +59,123 @@ object GraphicTypeService : RService<GraphicType>(SMybatisDao(GraphicType::class
     /**
      * 查询关系总览
      */
-    fun overview(): SQueryResponse<GraphicType> {
+    fun overview(content: String?): SQueryResponse<GraphicType> {
         return try {
             val projectId = SPageContext.getHeader("projectId")
-            val request = SQueryRequest()
-            request.pageSize = 1000
-            request.orders = "sort"
-            request.filters = "parentId isnull"
-            request.cascade = ArrayList<SCascadeQuery>()
+            if (content.isNullOrEmpty()){
+                val request = SQueryRequest()
+                request.pageSize = 1000
+                request.orders = "sort"
+                request.filters = "parentId isnull"
+                request.cascade = ArrayList<SCascadeQuery>()
 
-            val childType = SCascadeQuery()
-            childType.name = "childGraphicTypeList"
-            childType.cascade = ArrayList<SCascadeQuery>()
-            childType.orders = "sort,GraphTypeCode"
-            request.cascade!!.add(childType)
+                val childType = SCascadeQuery()
+                childType.name = "childGraphicTypeList"
+                childType.cascade = ArrayList<SCascadeQuery>()
+                childType.orders = "sort,GraphTypeCode"
+                request.cascade!!.add(childType)
 
 //            val relationType = SCascadeQuery()
 //            relationType.name = "relationTypeProjectList"
 //            relationType.filters = "projectId = '$projectId'"
 //            childType.cascade!!.add(relationType)
+                copyRelationType(projectId!!)
 
-            copyRelationType(projectId!!)
-
-            val pageQuery = GraphicTypeService.pageQuery(request)
-            if (!pageQuery.content.isNullOrEmpty()){
-                for ( content in pageQuery.content!!){
-                    if (!content.childGraphicTypeList.isNullOrEmpty()){
-                        val childGraphicTypeList = content.childGraphicTypeList
-                        for (childGraphicType in childGraphicTypeList!!){
-                            val relationTypeProjectList = service.select(SFilter.eq("projectId", projectId), SFilter.eq("graphicId", childGraphicType.graphTypeId!!)).order("RelationTypeCode").exec()
-                            if (relationTypeProjectList.size>0){
-                                childGraphicType.relationTypeProjectList = relationTypeProjectList
+                val pageQuery = GraphicTypeService.pageQuery(request)
+                if (!pageQuery.content.isNullOrEmpty()){
+                    for ( content in pageQuery.content!!){
+                        if (!content.childGraphicTypeList.isNullOrEmpty()){
+                            val childGraphicTypeList = content.childGraphicTypeList
+                            for (childGraphicType in childGraphicTypeList!!){
+                                val relationTypeProjectList = service.select(SFilter.eq("projectId", projectId), SFilter.eq("graphicId", childGraphicType.graphTypeId!!)).order("relationTypeCode").exec()
+                                if (relationTypeProjectList.size>0){
+                                    childGraphicType.relationTypeProjectList = relationTypeProjectList
+                                }
                             }
                         }
                     }
                 }
+
+                pageQuery
+            }else {
+                val relationTypeProjectList = service.select(SFilter.eq("projectId", Opt.projectId!!), SFilter.contain("name",content)).order("relationTypeCode").exec()
+                if (relationTypeProjectList.size>0) {
+                    val twoIds = HashSet<String>()
+                    for (relationTypeProject in relationTypeProjectList) {
+                        twoIds.add(relationTypeProject.graphicId!!)
+                    }
+                    val graphicTypeTwoList = GraphicTypeService.select(SFilter.inList("id", twoIds.toList())).order("sort").exec()
+                    val oneIds = HashSet<String>()
+                    for (graphicType in graphicTypeTwoList) {
+                        oneIds.add(graphicType.parentId!!)
+                        for (relationTypeProject in relationTypeProjectList) {
+                            if (relationTypeProject.graphicId == graphicType.graphTypeId ){
+                                if (graphicType.relationTypeProjectList.isNullOrEmpty()) {
+                                    graphicType.relationTypeProjectList = ArrayList()
+                                }else {
+                                    graphicType.relationTypeProjectList!!.add(relationTypeProject)
+                                }
+                            }
+                        }
+
+                    }
+                    val graphicTypeList = GraphicTypeService.select(SFilter.inList("id", oneIds.toList())).exec()
+                    for (graphicType in graphicTypeList){
+                        for (graphicTypeTwo in graphicTypeTwoList) {
+                            if (graphicTypeTwo.parentId == graphicType.graphTypeId){
+                                if (graphicType.childGraphicTypeList.isNullOrEmpty()) {
+                                    graphicType.childGraphicTypeList = ArrayList()
+                                }else {
+                                    graphicType.childGraphicTypeList!!.add(graphicTypeTwo)
+                                }
+                            }
+                        }
+                    }
+
+                    val sQueryResponse = SQueryResponse<GraphicType>(SResponseType.success)
+                    sQueryResponse.content = graphicTypeList
+                    sQueryResponse.total = graphicTypeList.size.toLong()
+                    sQueryResponse
+                }else {
+                    val sQueryResponse = SQueryResponse<GraphicType>(SResponseType.success)
+                    sQueryResponse.content = ArrayList()
+                    sQueryResponse
+                }
             }
 
-            pageQuery
         } catch (e: Exception) {
             e.printStackTrace()
             SQueryResponse(SResponseType.failure, e.message!!)
         }
-    } // Function overview()
+    }
+
+    /**
+     * 查询一级二级标签
+     *
+     * @return 图形一级二级列表
+     */
+    fun queryLevel(): SQueryResponse<GraphicType> {
+        return try {
+            val request = SQueryRequest()
+            request.pageSize = 1000
+            request.orders = "sort"
+            request.filters = "parentId isnull"
+            request.cascade = ArrayList<SCascadeQuery>()
+
+            val childType = SCascadeQuery()
+            childType.name = "childGraphicTypeList"
+            childType.cascade = ArrayList<SCascadeQuery>()
+            childType.orders = "sort,GraphTypeCode"
+            request.cascade!!.add(childType)
+
+            return GraphicTypeService.pageQuery(request)
+        } catch (e: Exception) {
+            e.printStackTrace()
+            SQueryResponse(SResponseType.failure, e.message!!)
+        }
+    }
+
+
 
     /**
      * 复制关系类型表

+ 1 - 1
datacenter/src/main/kotlin/com/persagy/server/services/relation_calc/ManualRelationAddService.kt

@@ -2606,7 +2606,7 @@ class ManualRelationAddService {
                         rSp2Fl.zoneType = zoneSpaceList[0].classCode
                         rSp2FlService.replace(rSp2Fl)
                     }
-                }else if (relationAddRequest.relType == "ArchForArch_Sp2Sh") {
+                }else if (relationAddRequest.relType == "sp2sh_ArchForArch") {
                     for (fromContent in relationAddRequest.fromContent!!){
                         /** 去除主对象空间id */
                         val shaftToList = ShaftService.select(SFilter.eq("projectId", projectId), SFilter.eq(relationAddRequest.type!!, fromContent)).exec()

+ 846 - 9
datacenter/src/main/kotlin/com/persagy/server/services/relation_calc/ManualRelationCalcService.kt

@@ -29,6 +29,7 @@ package com.persagy.server.services.relation_calc
 import com.persagy.base.extensions.toJson
 import com.persagy.database.SFilter
 import com.persagy.mybatis.SMybatisDao
+import com.persagy.server.Opt
 import com.persagy.server.datacenter.models.entities.dictnew.DefClass
 import com.persagy.server.datacenter.models.entities.graphtype.RelationTypeProject
 import com.persagy.server.datacenter.models.entities.graphtype.block.RelationAddRequest
@@ -43,6 +44,7 @@ import com.persagy.server.datacenter.models.requests.ManualRelationCalcRequest
 import com.persagy.server.datacenter.models.response.ManualRelationCalcResponse
 import com.persagy.server.datacenter.models.response.ManualRelationCalcSCreateResponse
 import com.persagy.server.jms.RabbitMqService
+import com.persagy.server.services.base.CommonServices
 import com.persagy.server.services.objects.*
 import com.persagy.server.services.rel.*
 import com.persagy.service.SObjectService
@@ -226,7 +228,39 @@ open class ManualRelationCalcService {
                 return ss2sps(projectId,list,sQueryRequest,manualRelationCalcRequest)
             }else if (manualRelationCalcRequest.relType == "eq2sp_x"){
                 return  eq2spsOther(projectId,list,sQueryRequest,manualRelationCalcRequest)
-            }else{
+            }else if (manualRelationCalcRequest.relType == "bd2bd_ArchForArch"){
+                return queryBd2Bd(projectId,list,sQueryRequest,manualRelationCalcRequest)
+            }else if(manualRelationCalcRequest.relType == "bd2fl_ArchForArch"){
+                return queryBd2Fl(projectId,list,sQueryRequest,manualRelationCalcRequest)
+            }else if(manualRelationCalcRequest.relType == "bd2sh_ArchForArch"){
+                return queryBd2Sh(projectId,list,sQueryRequest,manualRelationCalcRequest)
+            }else if(manualRelationCalcRequest.relType == "bd2sp_ArchForArch"){
+                return queryBd2Sp(projectId,list,sQueryRequest,manualRelationCalcRequest)
+            }else if(manualRelationCalcRequest.relType == "fl2bd_ArchForArch"){
+                return queryFl2Bd(projectId,list,sQueryRequest,manualRelationCalcRequest)
+            }else if(manualRelationCalcRequest.relType == "fl2fl_ArchForArch"){
+                return queryFl2Fl(projectId,list,sQueryRequest,manualRelationCalcRequest)
+            }else if(manualRelationCalcRequest.relType == "fl2sh_ArchForArch"){
+                return queryFl2Sh(projectId,list,sQueryRequest,manualRelationCalcRequest)
+            }else if(manualRelationCalcRequest.relType == "fl2sp_ArchForArch"){
+                return queryFl2Sp(projectId,list,sQueryRequest,manualRelationCalcRequest)
+            }else if(manualRelationCalcRequest.relType == "sh2bd_ArchForArch"){
+                rreturn querySh2Bd(projectId,list,sQueryRequest,manualRelationCalcRequest)eturn ManualRelationCalcResponse()
+            }else if(manualRelationCalcRequest.relType == "sh2fl_ArchForArch"){
+                return querySh2Fl(projectId,list,sQueryRequest,manualRelationCalcRequest)
+            }else if(manualRelationCalcRequest.relType == "sh2sh_ArchForArch"){
+                return querySh2Sh(projectId,list,sQueryRequest,manualRelationCalcRequest)
+            }else if(manualRelationCalcRequest.relType == "sh2sp_ArchForArch"){
+                return querySh2Sp(projectId,list,sQueryRequest,manualRelationCalcRequest)
+            }else if(manualRelationCalcRequest.relType == "sp2bd_ArchForArch"){
+                return querySp2Bd(projectId,list,sQueryRequest,manualRelationCalcRequest)
+            }else if(manualRelationCalcRequest.relType == "sp2fl_ArchForArch"){
+                return querySp2Fl(projectId,list,sQueryRequest,manualRelationCalcRequest)
+            }else if(manualRelationCalcRequest.relType == "sp2sh_ArchForArch"){
+                return querySp2Sh(projectId,list,sQueryRequest,manualRelationCalcRequest)
+            }else if(manualRelationCalcRequest.relType == "sp2sp_ArchForArch"){
+                return querySp2Sp(projectId,list,sQueryRequest,manualRelationCalcRequest)
+            }else {
                 /** 暂无数据 */
                 val manualRelationCalcResponse = ManualRelationCalcResponse()
                 manualRelationCalcResponse.result = SResponseType.success
@@ -267,7 +301,6 @@ open class ManualRelationCalcService {
                     e.printStackTrace()
                 }
 
-
                 var delete: Boolean = false
                 if (manualRelationCalcDel.relType == "pe2sp"){ /** 资产所在的业务空间 */
                     delete = rPeInSpBaseService.delete(SFilter.eq("projectId", projectId!!),
@@ -517,13 +550,54 @@ open class ManualRelationCalcService {
                 }else if (manualRelationCalcDel.relType ==  "eq2sp_x"){
                     delete = rEq2SpService.delete(SFilter.eq("projectId", projectId!!),
                         SFilter.eq("id1", manualRelationCalcDel.fromId!!), SFilter.eq("id2", manualRelationCalcDel.toId!!),SFilter.eq("type", manualRelationCalcDel.relType!!))
-                }else if (relationAddRequest.relType == "bd2bd_ArchForArch"||relationAddRequest.relType == "bd2fl_ArchForArch"||relationAddRequest.relType == "bd2sh_ArchForArch"
-                        ||relationAddRequest.relType == "bd2sp_ArchForArch"||relationAddRequest.relType == "fl2bd_ArchForArch"||relationAddRequest.relType == "fl2fl_ArchForArch"
-                        ||relationAddRequest.relType == "fl2sh_ArchForArch"||relationAddRequest.relType == "fl2sp_ArchForArch"||relationAddRequest.relType == "sh2bd_ArchForArch"
-                        || relationAddRequest.relType == "sh2fl_ArchForArch"||relationAddRequest.relType == "sh2sh_ArchForArch"||relationAddRequest.relType == "sh2sp_ArchForArch"
-                        || relationAddRequest.relType == "sp2bd_ArchForArch" ||relationAddRequest.relType == "sp2fl_ArchForArch"||relationAddRequest.relType == "sp2sh_ArchForArch"
-                        ||relationAddRequest.relType == "sp2sp_ArchForArch"){
-
+                }else if (manualRelationCalcDel.relType == "bd2bd_ArchForArch"){
+                    delete = CommonServices.rBd2BdService.delete(SFilter.eq("projectId", projectId!!),
+                            SFilter.eq("id1", manualRelationCalcDel.fromId!!), SFilter.eq("id2", manualRelationCalcDel.toId!!),SFilter.eq("type", manualRelationCalcDel.relType!!))
+                }else if(manualRelationCalcDel.relType == "bd2fl_ArchForArch"){
+                    delete = CommonServices.rBd2FlService.delete(SFilter.eq("projectId", projectId!!),
+                            SFilter.eq("id1", manualRelationCalcDel.fromId!!), SFilter.eq("id2", manualRelationCalcDel.toId!!),SFilter.eq("type", manualRelationCalcDel.relType!!))
+                }else if(manualRelationCalcDel.relType == "bd2sh_ArchForArch"){
+                    delete = CommonServices.rBd2ShService.delete(SFilter.eq("projectId", projectId!!),
+                            SFilter.eq("id1", manualRelationCalcDel.fromId!!), SFilter.eq("id2", manualRelationCalcDel.toId!!),SFilter.eq("type", manualRelationCalcDel.relType!!))
+                }else if(manualRelationCalcDel.relType == "bd2sp_ArchForArch"){
+                    delete = CommonServices.rBd2SpService.delete(SFilter.eq("projectId", projectId!!),
+                            SFilter.eq("id1", manualRelationCalcDel.fromId!!), SFilter.eq("id2", manualRelationCalcDel.toId!!),SFilter.eq("type", manualRelationCalcDel.relType!!))
+                }else if(manualRelationCalcDel.relType == "fl2bd_ArchForArch"){
+                    delete = CommonServices.rFl2BdService.delete(SFilter.eq("projectId", projectId!!),
+                            SFilter.eq("id1", manualRelationCalcDel.fromId!!), SFilter.eq("id2", manualRelationCalcDel.toId!!),SFilter.eq("type", manualRelationCalcDel.relType!!))
+                }else if(manualRelationCalcDel.relType == "fl2fl_ArchForArch"){
+                    delete = CommonServices.rFl2FlService.delete(SFilter.eq("projectId", projectId!!),
+                            SFilter.eq("id1", manualRelationCalcDel.fromId!!), SFilter.eq("id2", manualRelationCalcDel.toId!!),SFilter.eq("type", manualRelationCalcDel.relType!!))
+                }else if(manualRelationCalcDel.relType == "fl2sh_ArchForArch"){
+                    delete = CommonServices.rFl2ShService.delete(SFilter.eq("projectId", projectId!!),
+                            SFilter.eq("id1", manualRelationCalcDel.fromId!!), SFilter.eq("id2", manualRelationCalcDel.toId!!),SFilter.eq("type", manualRelationCalcDel.relType!!))
+                }else if(manualRelationCalcDel.relType == "fl2sp_ArchForArch"){
+                    delete = CommonServices.rFl2SpService.delete(SFilter.eq("projectId", projectId!!),
+                            SFilter.eq("id1", manualRelationCalcDel.fromId!!), SFilter.eq("id2", manualRelationCalcDel.toId!!),SFilter.eq("type", manualRelationCalcDel.relType!!))
+                }else if(manualRelationCalcDel.relType == "sh2bd_ArchForArch"){
+                    delete = CommonServices.rSh2BdService.delete(SFilter.eq("projectId", projectId!!),
+                            SFilter.eq("id1", manualRelationCalcDel.fromId!!), SFilter.eq("id2", manualRelationCalcDel.toId!!),SFilter.eq("type", manualRelationCalcDel.relType!!))
+                }else if(manualRelationCalcDel.relType == "sh2fl_ArchForArch"){
+                    delete = CommonServices.rSh2FlService.delete(SFilter.eq("projectId", projectId!!),
+                            SFilter.eq("id1", manualRelationCalcDel.fromId!!), SFilter.eq("id2", manualRelationCalcDel.toId!!),SFilter.eq("type", manualRelationCalcDel.relType!!))
+                }else if(manualRelationCalcDel.relType == "sh2sh_ArchForArch"){
+                    delete = CommonServices.rSh2ShService.delete(SFilter.eq("projectId", projectId!!),
+                            SFilter.eq("id1", manualRelationCalcDel.fromId!!), SFilter.eq("id2", manualRelationCalcDel.toId!!),SFilter.eq("type", manualRelationCalcDel.relType!!))
+                }else if(manualRelationCalcDel.relType == "sh2sp_ArchForArch"){
+                    delete = CommonServices.rSh2SpService.delete(SFilter.eq("projectId", projectId!!),
+                            SFilter.eq("id1", manualRelationCalcDel.fromId!!), SFilter.eq("id2", manualRelationCalcDel.toId!!),SFilter.eq("type", manualRelationCalcDel.relType!!))
+                }else if(manualRelationCalcDel.relType == "sp2bd_ArchForArch"){
+                    delete = CommonServices.rSp2BdService.delete(SFilter.eq("projectId", projectId!!),
+                            SFilter.eq("id1", manualRelationCalcDel.fromId!!), SFilter.eq("id2", manualRelationCalcDel.toId!!),SFilter.eq("type", manualRelationCalcDel.relType!!))
+                }else if(manualRelationCalcDel.relType == "sp2fl_ArchForArch"){
+                    delete = CommonServices.rSp2FlService.delete(SFilter.eq("projectId", projectId!!),
+                            SFilter.eq("id1", manualRelationCalcDel.fromId!!), SFilter.eq("id2", manualRelationCalcDel.toId!!),SFilter.eq("type", manualRelationCalcDel.relType!!))
+                }else if(manualRelationCalcDel.relType == "sp2sh_ArchForArch"){
+                    delete = CommonServices.rSp2ShService.delete(SFilter.eq("projectId", projectId!!),
+                            SFilter.eq("id1", manualRelationCalcDel.fromId!!), SFilter.eq("id2", manualRelationCalcDel.toId!!),SFilter.eq("type", manualRelationCalcDel.relType!!))
+                }else if(manualRelationCalcDel.relType == "sp2sp_ArchForArch"){
+                    delete = CommonServices.rSp2SpService.delete(SFilter.eq("projectId", projectId!!),
+                            SFilter.eq("id1", manualRelationCalcDel.fromId!!), SFilter.eq("id2", manualRelationCalcDel.toId!!),SFilter.eq("type", manualRelationCalcDel.relType!!))
                 }
 
                 if (delete){
@@ -3727,7 +3801,770 @@ open class ManualRelationCalcService {
         return manualRelationCalcResponse
     } // Fun
 
+    /**
+     * 空间和空间
+     */
+    fun querySp2Sp(projectId: String,list: ArrayList<SFilter>,sQueryRequest: SQueryRequest,manualRelationCalcRequest: ManualRelationCalcRequest): ManualRelationCalcResponse {
+
+        val rSp2SpList = CommonServices.rSp2SpService.select(SFilter.eq("projectId", projectId), SFilter.eq("type", manualRelationCalcRequest.relType!!)).exec()
+
+        val manualRelationCalcResponse = ManualRelationCalcResponse()
+        if (rSp2SpList.size>0) {
+            if (!manualRelationCalcRequest.vague.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId1",manualRelationCalcRequest.vague!!),SFilter.contain("localName1",manualRelationCalcRequest.vague!!)))
+            }
+            if (!manualRelationCalcRequest.vagueTo.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId2",manualRelationCalcRequest.vagueTo!!),SFilter.contain("localName2",manualRelationCalcRequest.vagueTo!!)))
+            }
+            val rSp2SpTwoList = CommonServices.rSp2SpTwoService.select(list).exec()
+            if (rSp2SpTwoList.size>0) {
+
+                val listId1 = ArrayList<String>()
+                val listId2 = ArrayList<String>()
+                for (rSp2SpTwo in rSp2SpTwoList){
+                    listId1.add(rSp2SpTwo.id1!!)
+                    listId2.add(rSp2SpTwo.id2!!)
+                }
+                val sCascadeQuery = sQueryRequest.cascade!!.get(0)
+                val listSF = ArrayList<SFilter>()
+                sCascadeQuery.filters = "id in ${listId2.toJson()}"
+                listSF.add(SFilter.inList("id",listId1.toList()))
+                listSF.add(SFilter.eq("projectId", projectId))
+                val pageQuery = CommonServices.relZoneSpaceForService.pageQuery(sQueryRequest, listSF)
+                manualRelationCalcResponse.direction = "Left"
+                manualRelationCalcResponse.content = pageQuery.content
+                manualRelationCalcResponse.message = pageQuery.message
+                manualRelationCalcResponse.pageNumber = pageQuery.pageNumber
+                manualRelationCalcResponse.pageSize = pageQuery.pageSize
+                manualRelationCalcResponse.result = pageQuery.result
+                manualRelationCalcResponse.total = pageQuery.total
+            }else {
+                manualRelationCalcResponse.result = SResponseType.success
+                manualRelationCalcResponse.content = ArrayList<RelProperty>()
+            }
+        }else {
+            manualRelationCalcResponse.result = SResponseType.success
+            manualRelationCalcResponse.content = ArrayList<RelProperty>()
+        }
+        return manualRelationCalcResponse
+    }
+
+    /**
+     * 空间和竖井
+     */
+    fun querySp2Sh(projectId: String,list: ArrayList<SFilter>,sQueryRequest: SQueryRequest,manualRelationCalcRequest: ManualRelationCalcRequest): ManualRelationCalcResponse {
+
+        val rSp2SpList = CommonServices.rSp2ShService.select(SFilter.eq("projectId", projectId), SFilter.eq("type", manualRelationCalcRequest.relType!!)).exec()
+        val manualRelationCalcResponse = ManualRelationCalcResponse()
+        if (rSp2SpList.size>0) {
+            if (!manualRelationCalcRequest.vague.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId1",manualRelationCalcRequest.vague!!),SFilter.contain("localName1",manualRelationCalcRequest.vague!!)))
+            }
+            if (!manualRelationCalcRequest.vagueTo.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId2",manualRelationCalcRequest.vagueTo!!),SFilter.contain("localName2",manualRelationCalcRequest.vagueTo!!)))
+            }
+            val rSp2SpTwoList = CommonServices.rSp2ShTwoService.select(list).exec()
+            if (rSp2SpTwoList.size>0) {
+
+                val listId1 = ArrayList<String>()
+                val listId2 = ArrayList<String>()
+                for (rSp2SpTwo in rSp2SpTwoList){
+                    listId1.add(rSp2SpTwo.id1!!)
+                    listId2.add(rSp2SpTwo.id2!!)
+                }
+                val sCascadeQuery = sQueryRequest.cascade!!.get(0)
+                val listSF = ArrayList<SFilter>()
+                sCascadeQuery.filters = "id in ${listId2.toJson()}"
+                listSF.add(SFilter.inList("id",listId1.toList()))
+                listSF.add(SFilter.eq("projectId", projectId))
+                val pageQuery = CommonServices.relZoneSpaceForShService.pageQuery(sQueryRequest, listSF)
+                manualRelationCalcResponse.direction = "Left"
+                manualRelationCalcResponse.content = pageQuery.content
+                manualRelationCalcResponse.message = pageQuery.message
+                manualRelationCalcResponse.pageNumber = pageQuery.pageNumber
+                manualRelationCalcResponse.pageSize = pageQuery.pageSize
+                manualRelationCalcResponse.result = pageQuery.result
+                manualRelationCalcResponse.total = pageQuery.total
+            }else {
+                manualRelationCalcResponse.result = SResponseType.success
+                manualRelationCalcResponse.content = ArrayList<RelProperty>()
+            }
+        }else {
+            manualRelationCalcResponse.result = SResponseType.success
+            manualRelationCalcResponse.content = ArrayList<RelProperty>()
+        }
+        return manualRelationCalcResponse
+    }
+
+    /**
+     * 空间和楼层
+     */
+    fun querySp2Fl(projectId: String,list: ArrayList<SFilter>,sQueryRequest: SQueryRequest,manualRelationCalcRequest: ManualRelationCalcRequest): ManualRelationCalcResponse {
+
+        val rSp2SpList = CommonServices.rSp2FlService.select(SFilter.eq("projectId", projectId), SFilter.eq("type", manualRelationCalcRequest.relType!!)).exec()
+        val manualRelationCalcResponse = ManualRelationCalcResponse()
+        if (rSp2SpList.size>0) {
+            if (!manualRelationCalcRequest.vague.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId1",manualRelationCalcRequest.vague!!),SFilter.contain("localName1",manualRelationCalcRequest.vague!!)))
+            }
+            if (!manualRelationCalcRequest.vagueTo.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId2",manualRelationCalcRequest.vagueTo!!),SFilter.contain("localName2",manualRelationCalcRequest.vagueTo!!)))
+            }
+            val rSp2SpTwoList = CommonServices.rSp2FlTwoService.select(list).exec()
+            if (rSp2SpTwoList.size>0) {
+
+                val listId1 = ArrayList<String>()
+                val listId2 = ArrayList<String>()
+                for (rSp2SpTwo in rSp2SpTwoList){
+                    listId1.add(rSp2SpTwo.id1!!)
+                    listId2.add(rSp2SpTwo.id2!!)
+                }
+                val sCascadeQuery = sQueryRequest.cascade!!.get(0)
+                val listSF = ArrayList<SFilter>()
+                sCascadeQuery.filters = "id in ${listId2.toJson()}"
+                listSF.add(SFilter.inList("id",listId1.toList()))
+                listSF.add(SFilter.eq("projectId", projectId))
+                val pageQuery = CommonServices.relZoneSpaceForFlService.pageQuery(sQueryRequest, listSF)
+                manualRelationCalcResponse.direction = "Left"
+                manualRelationCalcResponse.content = pageQuery.content
+                manualRelationCalcResponse.message = pageQuery.message
+                manualRelationCalcResponse.pageNumber = pageQuery.pageNumber
+                manualRelationCalcResponse.pageSize = pageQuery.pageSize
+                manualRelationCalcResponse.result = pageQuery.result
+                manualRelationCalcResponse.total = pageQuery.total
+            }else {
+                manualRelationCalcResponse.result = SResponseType.success
+                manualRelationCalcResponse.content = ArrayList<RelProperty>()
+            }
+        }else {
+            manualRelationCalcResponse.result = SResponseType.success
+            manualRelationCalcResponse.content = ArrayList<RelProperty>()
+        }
+        return manualRelationCalcResponse
+    }
+
+    /**
+     * 空间和建筑
+     */
+    fun querySp2Bd(projectId: String,list: ArrayList<SFilter>,sQueryRequest: SQueryRequest,manualRelationCalcRequest: ManualRelationCalcRequest): ManualRelationCalcResponse {
+
+        val rSp2SpList = CommonServices.rSp2BdService.select(SFilter.eq("projectId", projectId), SFilter.eq("type", manualRelationCalcRequest.relType!!)).exec()
+        val manualRelationCalcResponse = ManualRelationCalcResponse()
+        if (rSp2SpList.size>0) {
+            if (!manualRelationCalcRequest.vague.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId1",manualRelationCalcRequest.vague!!),SFilter.contain("localName1",manualRelationCalcRequest.vague!!)))
+            }
+            if (!manualRelationCalcRequest.vagueTo.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId2",manualRelationCalcRequest.vagueTo!!),SFilter.contain("localName2",manualRelationCalcRequest.vagueTo!!)))
+            }
+            val rSp2SpTwoList = CommonServices.rSp2BdTwoService.select(list).exec()
+            if (rSp2SpTwoList.size>0) {
+
+                val listId1 = ArrayList<String>()
+                val listId2 = ArrayList<String>()
+                for (rSp2SpTwo in rSp2SpTwoList){
+                    listId1.add(rSp2SpTwo.id1!!)
+                    listId2.add(rSp2SpTwo.id2!!)
+                }
+                val sCascadeQuery = sQueryRequest.cascade!!.get(0)
+                val listSF = ArrayList<SFilter>()
+                sCascadeQuery.filters = "id in ${listId2.toJson()}"
+                listSF.add(SFilter.inList("id",listId1.toList()))
+                listSF.add(SFilter.eq("projectId", projectId))
+                val pageQuery = CommonServices.relZoneSpaceForBdService.pageQuery(sQueryRequest, listSF)
+                manualRelationCalcResponse.direction = "Left"
+                manualRelationCalcResponse.content = pageQuery.content
+                manualRelationCalcResponse.message = pageQuery.message
+                manualRelationCalcResponse.pageNumber = pageQuery.pageNumber
+                manualRelationCalcResponse.pageSize = pageQuery.pageSize
+                manualRelationCalcResponse.result = pageQuery.result
+                manualRelationCalcResponse.total = pageQuery.total
+            }else {
+                manualRelationCalcResponse.result = SResponseType.success
+                manualRelationCalcResponse.content = ArrayList<RelProperty>()
+            }
+        }else {
+            manualRelationCalcResponse.result = SResponseType.success
+            manualRelationCalcResponse.content = ArrayList<RelProperty>()
+        }
+        return manualRelationCalcResponse
+    }
+
+    /**
+     * 竖井和空间
+     */
+    fun querySh2Sp(projectId: String,list: ArrayList<SFilter>,sQueryRequest: SQueryRequest,manualRelationCalcRequest: ManualRelationCalcRequest): ManualRelationCalcResponse {
+
+        val rSh2SpList = CommonServices.rSh2SpService.select(SFilter.eq("projectId", projectId), SFilter.eq("type", manualRelationCalcRequest.relType!!)).exec()
+
+        val manualRelationCalcResponse = ManualRelationCalcResponse()
+        if (rSh2SpList.size>0) {
+            if (!manualRelationCalcRequest.vague.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId1",manualRelationCalcRequest.vague!!),SFilter.contain("localName1",manualRelationCalcRequest.vague!!)))
+            }
+            if (!manualRelationCalcRequest.vagueTo.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId2",manualRelationCalcRequest.vagueTo!!),SFilter.contain("localName2",manualRelationCalcRequest.vagueTo!!)))
+            }
+            val rSp2SpTwoList = CommonServices.rSh2SpTwoService.select(list).exec()
+            if (rSp2SpTwoList.size>0) {
+
+                val listId1 = ArrayList<String>()
+                val listId2 = ArrayList<String>()
+                for (rSp2SpTwo in rSp2SpTwoList){
+                    listId1.add(rSp2SpTwo.id1!!)
+                    listId2.add(rSp2SpTwo.id2!!)
+                }
+                val sCascadeQuery = sQueryRequest.cascade!!.get(0)
+                val listSF = ArrayList<SFilter>()
+                sCascadeQuery.filters = "id in ${listId2.toJson()}"
+                listSF.add(SFilter.inList("id",listId1.toList()))
+                listSF.add(SFilter.eq("projectId", projectId))
+                val pageQuery = CommonServices.relShaftForSpService.pageQuery(sQueryRequest, listSF)
+                manualRelationCalcResponse.direction = "Left"
+                manualRelationCalcResponse.content = pageQuery.content
+                manualRelationCalcResponse.message = pageQuery.message
+                manualRelationCalcResponse.pageNumber = pageQuery.pageNumber
+                manualRelationCalcResponse.pageSize = pageQuery.pageSize
+                manualRelationCalcResponse.result = pageQuery.result
+                manualRelationCalcResponse.total = pageQuery.total
+            }else {
+                manualRelationCalcResponse.result = SResponseType.success
+                manualRelationCalcResponse.content = ArrayList<RelProperty>()
+            }
+        }else {
+            manualRelationCalcResponse.result = SResponseType.success
+            manualRelationCalcResponse.content = ArrayList<RelProperty>()
+        }
+        return manualRelationCalcResponse
+    }
+
+    /**
+     * 竖井和竖井
+     */
+    fun querySh2Sh(projectId: String,list: ArrayList<SFilter>,sQueryRequest: SQueryRequest,manualRelationCalcRequest: ManualRelationCalcRequest): ManualRelationCalcResponse {
+
+        val rSh2ShList = CommonServices.rSh2ShService.select(SFilter.eq("projectId", projectId), SFilter.eq("type", manualRelationCalcRequest.relType!!)).exec()
+
+        val manualRelationCalcResponse = ManualRelationCalcResponse()
+        if (rSh2ShList.size>0) {
+            if (!manualRelationCalcRequest.vague.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId1",manualRelationCalcRequest.vague!!),SFilter.contain("localName1",manualRelationCalcRequest.vague!!)))
+            }
+            if (!manualRelationCalcRequest.vagueTo.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId2",manualRelationCalcRequest.vagueTo!!),SFilter.contain("localName2",manualRelationCalcRequest.vagueTo!!)))
+            }
+            val rSp2SpTwoList = CommonServices.rSh2ShTwoService.select(list).exec()
+            if (rSp2SpTwoList.size>0) {
+
+                val listId1 = ArrayList<String>()
+                val listId2 = ArrayList<String>()
+                for (rSp2SpTwo in rSp2SpTwoList){
+                    listId1.add(rSp2SpTwo.id1!!)
+                    listId2.add(rSp2SpTwo.id2!!)
+                }
+                val sCascadeQuery = sQueryRequest.cascade!!.get(0)
+                val listSF = ArrayList<SFilter>()
+                sCascadeQuery.filters = "id in ${listId2.toJson()}"
+                listSF.add(SFilter.inList("id",listId1.toList()))
+                listSF.add(SFilter.eq("projectId", projectId))
+                val pageQuery = CommonServices.relShaftForShService.pageQuery(sQueryRequest, listSF)
+                manualRelationCalcResponse.direction = "Left"
+                manualRelationCalcResponse.content = pageQuery.content
+                manualRelationCalcResponse.message = pageQuery.message
+                manualRelationCalcResponse.pageNumber = pageQuery.pageNumber
+                manualRelationCalcResponse.pageSize = pageQuery.pageSize
+                manualRelationCalcResponse.result = pageQuery.result
+                manualRelationCalcResponse.total = pageQuery.total
+            }else {
+                manualRelationCalcResponse.result = SResponseType.success
+                manualRelationCalcResponse.content = ArrayList<RelProperty>()
+            }
+        }else {
+            manualRelationCalcResponse.result = SResponseType.success
+            manualRelationCalcResponse.content = ArrayList<RelProperty>()
+        }
+        return manualRelationCalcResponse
+    }
+
+    /**
+     * 竖井和楼层
+     */
+    fun querySh2Fl(projectId: String,list: ArrayList<SFilter>,sQueryRequest: SQueryRequest,manualRelationCalcRequest: ManualRelationCalcRequest): ManualRelationCalcResponse {
+
+        val rSh2FlList = CommonServices.rSh2FlService.select(SFilter.eq("projectId", projectId), SFilter.eq("type", manualRelationCalcRequest.relType!!)).exec()
+
+        val manualRelationCalcResponse = ManualRelationCalcResponse()
+        if (rSh2FlList.size>0) {
+            if (!manualRelationCalcRequest.vague.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId1",manualRelationCalcRequest.vague!!),SFilter.contain("localName1",manualRelationCalcRequest.vague!!)))
+            }
+            if (!manualRelationCalcRequest.vagueTo.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId2",manualRelationCalcRequest.vagueTo!!),SFilter.contain("localName2",manualRelationCalcRequest.vagueTo!!)))
+            }
+            val rSp2SpTwoList = CommonServices.rSh2FlTwoService.select(list).exec()
+            if (rSp2SpTwoList.size>0) {
+
+                val listId1 = ArrayList<String>()
+                val listId2 = ArrayList<String>()
+                for (rSp2SpTwo in rSp2SpTwoList){
+                    listId1.add(rSp2SpTwo.id1!!)
+                    listId2.add(rSp2SpTwo.id2!!)
+                }
+                val sCascadeQuery = sQueryRequest.cascade!!.get(0)
+                val listSF = ArrayList<SFilter>()
+                sCascadeQuery.filters = "id in ${listId2.toJson()}"
+                listSF.add(SFilter.inList("id",listId1.toList()))
+                listSF.add(SFilter.eq("projectId", projectId))
+                val pageQuery = CommonServices.relShaftForFlService.pageQuery(sQueryRequest, listSF)
+                manualRelationCalcResponse.direction = "Left"
+                manualRelationCalcResponse.content = pageQuery.content
+                manualRelationCalcResponse.message = pageQuery.message
+                manualRelationCalcResponse.pageNumber = pageQuery.pageNumber
+                manualRelationCalcResponse.pageSize = pageQuery.pageSize
+                manualRelationCalcResponse.result = pageQuery.result
+                manualRelationCalcResponse.total = pageQuery.total
+            }else {
+                manualRelationCalcResponse.result = SResponseType.success
+                manualRelationCalcResponse.content = ArrayList<RelProperty>()
+            }
+        }else {
+            manualRelationCalcResponse.result = SResponseType.success
+            manualRelationCalcResponse.content = ArrayList<RelProperty>()
+        }
+        return manualRelationCalcResponse
+    }
+
+    /**
+     * 竖井和建筑
+     */
+    fun querySh2Bd(projectId: String,list: ArrayList<SFilter>,sQueryRequest: SQueryRequest,manualRelationCalcRequest: ManualRelationCalcRequest): ManualRelationCalcResponse {
+
+        val rSh2BdList = CommonServices.rSh2BdService.select(SFilter.eq("projectId", projectId), SFilter.eq("type", manualRelationCalcRequest.relType!!)).exec()
+
+        val manualRelationCalcResponse = ManualRelationCalcResponse()
+        if (rSh2BdList.size>0) {
+            if (!manualRelationCalcRequest.vague.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId1",manualRelationCalcRequest.vague!!),SFilter.contain("localName1",manualRelationCalcRequest.vague!!)))
+            }
+            if (!manualRelationCalcRequest.vagueTo.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId2",manualRelationCalcRequest.vagueTo!!),SFilter.contain("localName2",manualRelationCalcRequest.vagueTo!!)))
+            }
+            val rSp2SpTwoList = CommonServices.rSh2BdTwoService.select(list).exec()
+            if (rSp2SpTwoList.size>0) {
+
+                val listId1 = ArrayList<String>()
+                val listId2 = ArrayList<String>()
+                for (rSp2SpTwo in rSp2SpTwoList){
+                    listId1.add(rSp2SpTwo.id1!!)
+                    listId2.add(rSp2SpTwo.id2!!)
+                }
+                val sCascadeQuery = sQueryRequest.cascade!!.get(0)
+                val listSF = ArrayList<SFilter>()
+                sCascadeQuery.filters = "id in ${listId2.toJson()}"
+                listSF.add(SFilter.inList("id",listId1.toList()))
+                listSF.add(SFilter.eq("projectId", projectId))
+                val pageQuery = CommonServices.relShaftForBdService.pageQuery(sQueryRequest, listSF)
+                manualRelationCalcResponse.direction = "Left"
+                manualRelationCalcResponse.content = pageQuery.content
+                manualRelationCalcResponse.message = pageQuery.message
+                manualRelationCalcResponse.pageNumber = pageQuery.pageNumber
+                manualRelationCalcResponse.pageSize = pageQuery.pageSize
+                manualRelationCalcResponse.result = pageQuery.result
+                manualRelationCalcResponse.total = pageQuery.total
+            }else {
+                manualRelationCalcResponse.result = SResponseType.success
+                manualRelationCalcResponse.content = ArrayList<RelProperty>()
+            }
+        }else {
+            manualRelationCalcResponse.result = SResponseType.success
+            manualRelationCalcResponse.content = ArrayList<RelProperty>()
+        }
+        return manualRelationCalcResponse
+    }
+
+    /**
+     * 楼层和空间
+     */
+    fun queryFl2Sp(projectId: String,list: ArrayList<SFilter>,sQueryRequest: SQueryRequest,manualRelationCalcRequest: ManualRelationCalcRequest): ManualRelationCalcResponse {
+
+        val rFl2SpList = CommonServices.rFl2SpService.select(SFilter.eq("projectId", projectId), SFilter.eq("type", manualRelationCalcRequest.relType!!)).exec()
+
+        val manualRelationCalcResponse = ManualRelationCalcResponse()
+        if (rFl2SpList.size>0) {
+            if (!manualRelationCalcRequest.vague.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId1",manualRelationCalcRequest.vague!!),SFilter.contain("localName1",manualRelationCalcRequest.vague!!)))
+            }
+            if (!manualRelationCalcRequest.vagueTo.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId2",manualRelationCalcRequest.vagueTo!!),SFilter.contain("localName2",manualRelationCalcRequest.vagueTo!!)))
+            }
+            val rSp2SpTwoList = CommonServices.rFl2SpTwoService.select(list).exec()
+            if (rSp2SpTwoList.size>0) {
+
+                val listId1 = ArrayList<String>()
+                val listId2 = ArrayList<String>()
+                for (rSp2SpTwo in rSp2SpTwoList){
+                    listId1.add(rSp2SpTwo.id1!!)
+                    listId2.add(rSp2SpTwo.id2!!)
+                }
+                val sCascadeQuery = sQueryRequest.cascade!!.get(0)
+                val listSF = ArrayList<SFilter>()
+                sCascadeQuery.filters = "id in ${listId2.toJson()}"
+                listSF.add(SFilter.inList("id",listId1.toList()))
+                listSF.add(SFilter.eq("projectId", projectId))
+                val pageQuery = CommonServices.relFloorForSpService.pageQuery(sQueryRequest, listSF)
+                manualRelationCalcResponse.direction = "Left"
+                manualRelationCalcResponse.content = pageQuery.content
+                manualRelationCalcResponse.message = pageQuery.message
+                manualRelationCalcResponse.pageNumber = pageQuery.pageNumber
+                manualRelationCalcResponse.pageSize = pageQuery.pageSize
+                manualRelationCalcResponse.result = pageQuery.result
+                manualRelationCalcResponse.total = pageQuery.total
+            }else {
+                manualRelationCalcResponse.result = SResponseType.success
+                manualRelationCalcResponse.content = ArrayList<RelProperty>()
+            }
+        }else {
+            manualRelationCalcResponse.result = SResponseType.success
+            manualRelationCalcResponse.content = ArrayList<RelProperty>()
+        }
+        return manualRelationCalcResponse
+    }
+
+    /**
+     * 楼层和竖井
+     */
+    fun queryFl2Sh(projectId: String,list: ArrayList<SFilter>,sQueryRequest: SQueryRequest,manualRelationCalcRequest: ManualRelationCalcRequest): ManualRelationCalcResponse {
+
+        val rFl2ShList = CommonServices.rFl2ShService.select(SFilter.eq("projectId", projectId), SFilter.eq("type", manualRelationCalcRequest.relType!!)).exec()
+
+        val manualRelationCalcResponse = ManualRelationCalcResponse()
+        if (rFl2ShList.size>0) {
+            if (!manualRelationCalcRequest.vague.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId1",manualRelationCalcRequest.vague!!),SFilter.contain("localName1",manualRelationCalcRequest.vague!!)))
+            }
+            if (!manualRelationCalcRequest.vagueTo.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId2",manualRelationCalcRequest.vagueTo!!),SFilter.contain("localName2",manualRelationCalcRequest.vagueTo!!)))
+            }
+            val rSp2SpTwoList = CommonServices.rFl2ShTwoService.select(list).exec()
+            if (rSp2SpTwoList.size>0) {
+
+                val listId1 = ArrayList<String>()
+                val listId2 = ArrayList<String>()
+                for (rSp2SpTwo in rSp2SpTwoList){
+                    listId1.add(rSp2SpTwo.id1!!)
+                    listId2.add(rSp2SpTwo.id2!!)
+                }
+                val sCascadeQuery = sQueryRequest.cascade!!.get(0)
+                val listSF = ArrayList<SFilter>()
+                sCascadeQuery.filters = "id in ${listId2.toJson()}"
+                listSF.add(SFilter.inList("id",listId1.toList()))
+                listSF.add(SFilter.eq("projectId", projectId))
+                val pageQuery = CommonServices.relFloorForShService.pageQuery(sQueryRequest, listSF)
+                manualRelationCalcResponse.direction = "Left"
+                manualRelationCalcResponse.content = pageQuery.content
+                manualRelationCalcResponse.message = pageQuery.message
+                manualRelationCalcResponse.pageNumber = pageQuery.pageNumber
+                manualRelationCalcResponse.pageSize = pageQuery.pageSize
+                manualRelationCalcResponse.result = pageQuery.result
+                manualRelationCalcResponse.total = pageQuery.total
+            }else {
+                manualRelationCalcResponse.result = SResponseType.success
+                manualRelationCalcResponse.content = ArrayList<RelProperty>()
+            }
+        }else {
+            manualRelationCalcResponse.result = SResponseType.success
+            manualRelationCalcResponse.content = ArrayList<RelProperty>()
+        }
+        return manualRelationCalcResponse
+    }
+
+    /**
+     * 楼层和楼层
+     */
+    fun queryFl2Fl(projectId: String,list: ArrayList<SFilter>,sQueryRequest: SQueryRequest,manualRelationCalcRequest: ManualRelationCalcRequest): ManualRelationCalcResponse {
+
+        val rFl2ShList = CommonServices.rFl2FlService.select(SFilter.eq("projectId", projectId), SFilter.eq("type", manualRelationCalcRequest.relType!!)).exec()
+
+        val manualRelationCalcResponse = ManualRelationCalcResponse()
+        if (rFl2ShList.size>0) {
+            if (!manualRelationCalcRequest.vague.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId1",manualRelationCalcRequest.vague!!),SFilter.contain("localName1",manualRelationCalcRequest.vague!!)))
+            }
+            if (!manualRelationCalcRequest.vagueTo.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId2",manualRelationCalcRequest.vagueTo!!),SFilter.contain("localName2",manualRelationCalcRequest.vagueTo!!)))
+            }
+            val rSp2SpTwoList = CommonServices.rFl2FlTwoService.select(list).exec()
+            if (rSp2SpTwoList.size>0) {
+
+                val listId1 = ArrayList<String>()
+                val listId2 = ArrayList<String>()
+                for (rSp2SpTwo in rSp2SpTwoList){
+                    listId1.add(rSp2SpTwo.id1!!)
+                    listId2.add(rSp2SpTwo.id2!!)
+                }
+                val sCascadeQuery = sQueryRequest.cascade!!.get(0)
+                val listSF = ArrayList<SFilter>()
+                sCascadeQuery.filters = "id in ${listId2.toJson()}"
+                listSF.add(SFilter.inList("id",listId1.toList()))
+                listSF.add(SFilter.eq("projectId", projectId))
+                val pageQuery = CommonServices.relFloorForFlService.pageQuery(sQueryRequest, listSF)
+                manualRelationCalcResponse.direction = "Left"
+                manualRelationCalcResponse.content = pageQuery.content
+                manualRelationCalcResponse.message = pageQuery.message
+                manualRelationCalcResponse.pageNumber = pageQuery.pageNumber
+                manualRelationCalcResponse.pageSize = pageQuery.pageSize
+                manualRelationCalcResponse.result = pageQuery.result
+                manualRelationCalcResponse.total = pageQuery.total
+            }else {
+                manualRelationCalcResponse.result = SResponseType.success
+                manualRelationCalcResponse.content = ArrayList<RelProperty>()
+            }
+        }else {
+            manualRelationCalcResponse.result = SResponseType.success
+            manualRelationCalcResponse.content = ArrayList<RelProperty>()
+        }
+        return manualRelationCalcResponse
+    }
+
+    /**
+     * 楼层和建筑
+     */
+    fun queryFl2Bd(projectId: String,list: ArrayList<SFilter>,sQueryRequest: SQueryRequest,manualRelationCalcRequest: ManualRelationCalcRequest): ManualRelationCalcResponse {
+
+        val rFl2ShList = CommonServices.rFl2BdService.select(SFilter.eq("projectId", projectId), SFilter.eq("type", manualRelationCalcRequest.relType!!)).exec()
+
+        val manualRelationCalcResponse = ManualRelationCalcResponse()
+        if (rFl2ShList.size>0) {
+            if (!manualRelationCalcRequest.vague.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId1",manualRelationCalcRequest.vague!!),SFilter.contain("localName1",manualRelationCalcRequest.vague!!)))
+            }
+            if (!manualRelationCalcRequest.vagueTo.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId2",manualRelationCalcRequest.vagueTo!!),SFilter.contain("localName2",manualRelationCalcRequest.vagueTo!!)))
+            }
+            val rSp2SpTwoList = CommonServices.rFl2BdTwoService.select(list).exec()
+            if (rSp2SpTwoList.size>0) {
+
+                val listId1 = ArrayList<String>()
+                val listId2 = ArrayList<String>()
+                for (rSp2SpTwo in rSp2SpTwoList){
+                    listId1.add(rSp2SpTwo.id1!!)
+                    listId2.add(rSp2SpTwo.id2!!)
+                }
+                val sCascadeQuery = sQueryRequest.cascade!!.get(0)
+                val listSF = ArrayList<SFilter>()
+                sCascadeQuery.filters = "id in ${listId2.toJson()}"
+                listSF.add(SFilter.inList("id",listId1.toList()))
+                listSF.add(SFilter.eq("projectId", projectId))
+                val pageQuery = CommonServices.relFloorForBdService.pageQuery(sQueryRequest, listSF)
+                manualRelationCalcResponse.direction = "Left"
+                manualRelationCalcResponse.content = pageQuery.content
+                manualRelationCalcResponse.message = pageQuery.message
+                manualRelationCalcResponse.pageNumber = pageQuery.pageNumber
+                manualRelationCalcResponse.pageSize = pageQuery.pageSize
+                manualRelationCalcResponse.result = pageQuery.result
+                manualRelationCalcResponse.total = pageQuery.total
+            }else {
+                manualRelationCalcResponse.result = SResponseType.success
+                manualRelationCalcResponse.content = ArrayList<RelProperty>()
+            }
+        }else {
+            manualRelationCalcResponse.result = SResponseType.success
+            manualRelationCalcResponse.content = ArrayList<RelProperty>()
+        }
+        return manualRelationCalcResponse
+    }
 
+    /**
+     * 建筑和空间
+     */
+    fun queryBd2Sp(projectId: String,list: ArrayList<SFilter>,sQueryRequest: SQueryRequest,manualRelationCalcRequest: ManualRelationCalcRequest): ManualRelationCalcResponse {
+
+        val rBd2SpList = CommonServices.rBd2SpService.select(SFilter.eq("projectId", projectId), SFilter.eq("type", manualRelationCalcRequest.relType!!)).exec()
+
+        val manualRelationCalcResponse = ManualRelationCalcResponse()
+        if (rBd2SpList.size>0) {
+            if (!manualRelationCalcRequest.vague.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId1",manualRelationCalcRequest.vague!!),SFilter.contain("localName1",manualRelationCalcRequest.vague!!)))
+            }
+            if (!manualRelationCalcRequest.vagueTo.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId2",manualRelationCalcRequest.vagueTo!!),SFilter.contain("localName2",manualRelationCalcRequest.vagueTo!!)))
+            }
+            val rSp2SpTwoList = CommonServices.rBd2SpTwoService.select(list).exec()
+            if (rSp2SpTwoList.size>0) {
+
+                val listId1 = ArrayList<String>()
+                val listId2 = ArrayList<String>()
+                for (rSp2SpTwo in rSp2SpTwoList){
+                    listId1.add(rSp2SpTwo.id1!!)
+                    listId2.add(rSp2SpTwo.id2!!)
+                }
+                val sCascadeQuery = sQueryRequest.cascade!!.get(0)
+                val listSF = ArrayList<SFilter>()
+                sCascadeQuery.filters = "id in ${listId2.toJson()}"
+                listSF.add(SFilter.inList("id",listId1.toList()))
+                listSF.add(SFilter.eq("projectId", projectId))
+                val pageQuery = CommonServices.relBuildingForSpService.pageQuery(sQueryRequest, listSF)
+                manualRelationCalcResponse.direction = "Left"
+                manualRelationCalcResponse.content = pageQuery.content
+                manualRelationCalcResponse.message = pageQuery.message
+                manualRelationCalcResponse.pageNumber = pageQuery.pageNumber
+                manualRelationCalcResponse.pageSize = pageQuery.pageSize
+                manualRelationCalcResponse.result = pageQuery.result
+                manualRelationCalcResponse.total = pageQuery.total
+            }else {
+                manualRelationCalcResponse.result = SResponseType.success
+                manualRelationCalcResponse.content = ArrayList<RelProperty>()
+            }
+        }else {
+            manualRelationCalcResponse.result = SResponseType.success
+            manualRelationCalcResponse.content = ArrayList<RelProperty>()
+        }
+        return manualRelationCalcResponse
+    }
+
+    /**
+     * 建筑和竖井
+     */
+    fun queryBd2Sh(projectId: String,list: ArrayList<SFilter>,sQueryRequest: SQueryRequest,manualRelationCalcRequest: ManualRelationCalcRequest): ManualRelationCalcResponse {
+
+        val rBd2ShList = CommonServices.rBd2ShService.select(SFilter.eq("projectId", projectId), SFilter.eq("type", manualRelationCalcRequest.relType!!)).exec()
+
+        val manualRelationCalcResponse = ManualRelationCalcResponse()
+        if (rBd2ShList.size>0) {
+            if (!manualRelationCalcRequest.vague.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId1",manualRelationCalcRequest.vague!!),SFilter.contain("localName1",manualRelationCalcRequest.vague!!)))
+            }
+            if (!manualRelationCalcRequest.vagueTo.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId2",manualRelationCalcRequest.vagueTo!!),SFilter.contain("localName2",manualRelationCalcRequest.vagueTo!!)))
+            }
+            val rSp2SpTwoList = CommonServices.rBd2ShTwoService.select(list).exec()
+            if (rSp2SpTwoList.size>0) {
+
+                val listId1 = ArrayList<String>()
+                val listId2 = ArrayList<String>()
+                for (rSp2SpTwo in rSp2SpTwoList){
+                    listId1.add(rSp2SpTwo.id1!!)
+                    listId2.add(rSp2SpTwo.id2!!)
+                }
+                val sCascadeQuery = sQueryRequest.cascade!!.get(0)
+                val listSF = ArrayList<SFilter>()
+                sCascadeQuery.filters = "id in ${listId2.toJson()}"
+                listSF.add(SFilter.inList("id",listId1.toList()))
+                listSF.add(SFilter.eq("projectId", projectId))
+                val pageQuery = CommonServices.relBuildingForShService.pageQuery(sQueryRequest, listSF)
+                manualRelationCalcResponse.direction = "Left"
+                manualRelationCalcResponse.content = pageQuery.content
+                manualRelationCalcResponse.message = pageQuery.message
+                manualRelationCalcResponse.pageNumber = pageQuery.pageNumber
+                manualRelationCalcResponse.pageSize = pageQuery.pageSize
+                manualRelationCalcResponse.result = pageQuery.result
+                manualRelationCalcResponse.total = pageQuery.total
+            }else {
+                manualRelationCalcResponse.result = SResponseType.success
+                manualRelationCalcResponse.content = ArrayList<RelProperty>()
+            }
+        }else {
+            manualRelationCalcResponse.result = SResponseType.success
+            manualRelationCalcResponse.content = ArrayList<RelProperty>()
+        }
+        return manualRelationCalcResponse
+    }
+
+    /**
+     * 建筑和楼层
+     */
+    fun queryBd2Fl(projectId: String,list: ArrayList<SFilter>,sQueryRequest: SQueryRequest,manualRelationCalcRequest: ManualRelationCalcRequest): ManualRelationCalcResponse {
+
+        val rBd2FlList = CommonServices.rBd2FlService.select(SFilter.eq("projectId", projectId), SFilter.eq("type", manualRelationCalcRequest.relType!!)).exec()
+
+        val manualRelationCalcResponse = ManualRelationCalcResponse()
+        if (rBd2ShList.size>0) {
+            if (!manualRelationCalcRequest.vague.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId1",manualRelationCalcRequest.vague!!),SFilter.contain("localName1",manualRelationCalcRequest.vague!!)))
+            }
+            if (!manualRelationCalcRequest.vagueTo.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId2",manualRelationCalcRequest.vagueTo!!),SFilter.contain("localName2",manualRelationCalcRequest.vagueTo!!)))
+            }
+            val rSp2SpTwoList = CommonServices.rBd2FlTwoService.select(list).exec()
+            if (rSp2SpTwoList.size>0) {
+
+                val listId1 = ArrayList<String>()
+                val listId2 = ArrayList<String>()
+                for (rSp2SpTwo in rSp2SpTwoList){
+                    listId1.add(rSp2SpTwo.id1!!)
+                    listId2.add(rSp2SpTwo.id2!!)
+                }
+                val sCascadeQuery = sQueryRequest.cascade!!.get(0)
+                val listSF = ArrayList<SFilter>()
+                sCascadeQuery.filters = "id in ${listId2.toJson()}"
+                listSF.add(SFilter.inList("id",listId1.toList()))
+                listSF.add(SFilter.eq("projectId", projectId))
+                val pageQuery = CommonServices.relBuildingForFlService.pageQuery(sQueryRequest, listSF)
+                manualRelationCalcResponse.direction = "Left"
+                manualRelationCalcResponse.content = pageQuery.content
+                manualRelationCalcResponse.message = pageQuery.message
+                manualRelationCalcResponse.pageNumber = pageQuery.pageNumber
+                manualRelationCalcResponse.pageSize = pageQuery.pageSize
+                manualRelationCalcResponse.result = pageQuery.result
+                manualRelationCalcResponse.total = pageQuery.total
+            }else {
+                manualRelationCalcResponse.result = SResponseType.success
+                manualRelationCalcResponse.content = ArrayList<RelProperty>()
+            }
+        }else {
+            manualRelationCalcResponse.result = SResponseType.success
+            manualRelationCalcResponse.content = ArrayList<RelProperty>()
+        }
+        return manualRelationCalcResponse
+    }
+
+    /**
+     * 建筑和建筑
+     */
+    fun queryBd2Bd(projectId: String,list: ArrayList<SFilter>,sQueryRequest: SQueryRequest,manualRelationCalcRequest: ManualRelationCalcRequest): ManualRelationCalcResponse {
+
+        val rBd2BdList = CommonServices.rBd2BdService.select(SFilter.eq("projectId", projectId), SFilter.eq("type", manualRelationCalcRequest.relType!!)).exec()
+
+        val manualRelationCalcResponse = ManualRelationCalcResponse()
+        if (rBd2BdList.size>0) {
+            if (!manualRelationCalcRequest.vague.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId1",manualRelationCalcRequest.vague!!),SFilter.contain("localName1",manualRelationCalcRequest.vague!!)))
+            }
+            if (!manualRelationCalcRequest.vagueTo.isNullOrEmpty()){
+                list.add(SFilter.or(SFilter.contain("localId2",manualRelationCalcRequest.vagueTo!!),SFilter.contain("localName2",manualRelationCalcRequest.vagueTo!!)))
+            }
+            val rSp2SpTwoList = CommonServices.rBd2BdTwoService.select(list).exec()
+            if (rSp2SpTwoList.size>0) {
+
+                val listId1 = ArrayList<String>()
+                val listId2 = ArrayList<String>()
+                for (rSp2SpTwo in rSp2SpTwoList){
+                    listId1.add(rSp2SpTwo.id1!!)
+                    listId2.add(rSp2SpTwo.id2!!)
+                }
+                val sCascadeQuery = sQueryRequest.cascade!!.get(0)
+                val listSF = ArrayList<SFilter>()
+                sCascadeQuery.filters = "id in ${listId2.toJson()}"
+                listSF.add(SFilter.inList("id",listId1.toList()))
+                listSF.add(SFilter.eq("projectId", projectId))
+                val pageQuery = CommonServices.relBuildingForBdService.pageQuery(sQueryRequest, listSF)
+                manualRelationCalcResponse.direction = "Left"
+                manualRelationCalcResponse.content = pageQuery.content
+                manualRelationCalcResponse.message = pageQuery.message
+                manualRelationCalcResponse.pageNumber = pageQuery.pageNumber
+                manualRelationCalcResponse.pageSize = pageQuery.pageSize
+                manualRelationCalcResponse.result = pageQuery.result
+                manualRelationCalcResponse.total = pageQuery.total
+            }else {
+                manualRelationCalcResponse.result = SResponseType.success
+                manualRelationCalcResponse.content = ArrayList<RelProperty>()
+            }
+        }else {
+            manualRelationCalcResponse.result = SResponseType.success
+            manualRelationCalcResponse.content = ArrayList<RelProperty>()
+        }
+        return manualRelationCalcResponse
+    }
 
 
     fun time():String {