Browse Source

**************************************万达adm**********************************************
首次提交

zhangweixin 4 năm trước cách đây
mục cha
commit
4d5fce1ad2

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

@@ -28,6 +28,7 @@ package com.persagy.server.datacenter.models.requests
 
 import io.swagger.v3.oas.annotations.media.Schema
 import java.io.Serializable
+import javax.validation.constraints.NotNull
 
 /**
  * 查询手动计算数据
@@ -42,9 +43,16 @@ class ManualRelationCalcRequest : Serializable {
     @Schema(description = "关系类型")
     var relType: String? = null
 
+    @Schema(description = "图配型")
+    @NotNull(message = "图类型不可以为空")
+    var graphicType: String? = null
+
     @Schema(description = "分类类型")
     var category: String? = null
 
+    @Schema(description = "空间类型")
+    var zoneType: String? = null
+
     @Schema(description = "楼层id,未明确楼层传(isNull)")
     var floorId: String? = null
 

+ 11 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/datacenter/wanda/rel/RelZoneSpaceBd.kt

@@ -0,0 +1,11 @@
+package com.persagy.server.datacenter.datacenter.wanda.rel
+
+/**
+ * 空间和建筑
+ * @author wx  <zhangweixin@sagacloud.com>
+ * @date  2021/2/18 11:47
+ */
+class RelZoneSpaceBd : SpaceBaseZone() {
+
+
+}

+ 87 - 0
data-core/src/main/kotlin/com/persagy/server/datacenter/datacenter/wanda/rel/SpaceBaseZone.kt

@@ -0,0 +1,87 @@
+/*
+ * *********************************************************************************************************************
+ *
+ *          !!
+ *        .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.datacenter.wanda.rel
+
+import com.persagy.server.datacenter.models.entities.base.BaseInfo
+import io.swagger.v3.oas.annotations.media.Schema
+import java.io.Serializable
+import javax.persistence.Column
+import javax.persistence.Id
+
+/**
+ *
+ * @author wx  <zhangweixin@sagacloud.com>
+ * @date  2020/12/11 12:03
+ */
+open class SpaceBaseZone : Serializable, 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
+
+    /** 项目id */
+    @Schema(description = "项目id")
+    @Column(name = "project_id")
+    var projectId: String? = null
+
+    /** 建筑id */
+    @Schema(description = "建筑id")
+    @Column(name = "building_id")
+    var buildingId: String? = null
+
+    /** 楼层id */
+    @Schema(description = "楼层id")
+    @Column(name = "floor_id")
+    var floorId: String? = null
+
+    /** BIM模型中编码 */
+    @Schema(description = "BIM模型中编码")
+    @Column(name = "bim_id")
+    var bimId: String? = null
+
+    /** 类型 */
+    @Schema(description = "类型")
+    @Column(name = "object_type")
+    var classCode: String? = null
+}

+ 606 - 0
datacenter/src/main/kotlin/com/persagy/server/datacenter/services/relation_calc/ManualRelationCalcAddService.kt

@@ -0,0 +1,606 @@
+package com.persagy.server.datacenter.services.relation_calc
+
+import com.persagy.database.SFilter
+import com.persagy.mybatis.SMybatisDao
+import com.persagy.server.datacenter.datacenter.models.entities.graphtype.block.RelationAddRequest
+import com.persagy.server.datacenter.datacenter.models.entities.graphtype.rel.RelZoneSpace
+import com.persagy.server.datacenter.datacenter.models.entities.rel.REq2Sp
+import com.persagy.server.datacenter.datacenter.models.entities.rel.REq2Sy
+import com.persagy.server.datacenter.datacenter.models.entities.rel.RSp2Sp
+import com.persagy.server.datacenter.models.entities.graphtype.RelationTypeProject
+import com.persagy.server.datacenter.models.response.ManualRelationCalcSCreateResponse
+import com.persagy.server.services.objects.BuildingService
+import com.persagy.server.services.objects.EquipmentService
+import com.persagy.server.services.objects.FloorService
+import com.persagy.server.services.objects.GeneralSystemService
+import com.persagy.service.SObjectService
+import com.persagy.service.SPageContext
+import com.persagy.service.models.enums.SResponseType
+import org.springframework.stereotype.Service
+import java.text.SimpleDateFormat
+import java.util.*
+
+/**
+ * 手动添加关系
+ *
+ * @author wx  <zhangweixin@sagacloud.com>
+ * @date  2021/2/18 9:40
+ */
+@Service
+class ManualRelationCalcAddService {
+
+    /** 空间 */
+    private val relZoneSpaceService = SObjectService(SMybatisDao(RelZoneSpace::class.java))
+    /** 空间和空间的关系 */
+    private val rSp2SpService = SObjectService(SMybatisDao(RSp2Sp::class.java))
+    /** 设备和系统关系 */
+    private val rEq2SyService = SObjectService(SMybatisDao(REq2Sy::class.java))
+    /** 设备和空间关系 */
+    private val rEq2SpService = SObjectService(SMybatisDao(REq2Sp::class.java))
+
+    /**
+     * 添加关系
+     */
+    fun addRel(relationAddRequest: RelationAddRequest): ManualRelationCalcSCreateResponse {
+        /** 项目id */
+        val projectId = SPageContext.getHeader("projectId")
+
+        val sCreateResponse = ManualRelationCalcSCreateResponse()
+
+        if (relationAddRequest.relType.isNullOrEmpty()) {
+            /** 关系类型不能为空 */
+            sCreateResponse.result = SResponseType.failure
+            sCreateResponse.message = "关系类型不能为空"
+            return sCreateResponse
+        }
+        if (relationAddRequest.type.isNullOrEmpty()) {
+            /** 编码类型不能为空 */
+            sCreateResponse.result = SResponseType.failure
+            sCreateResponse.message = "识别编码不能为空"
+            return sCreateResponse
+        }
+        if (relationAddRequest.mainContent.isNullOrEmpty()) {
+            /** 主对象内容不能为空 */
+            sCreateResponse.result = SResponseType.failure
+            sCreateResponse.message = "主对象编码不能为空"
+            sCreateResponse.errorType = "1"
+            return sCreateResponse
+        }
+        if (relationAddRequest.fromContent.isNullOrEmpty()) {
+            /** 从对象内容不能为空 */
+            sCreateResponse.result = SResponseType.failure
+            sCreateResponse.message = "从对象编码不能为空"
+            sCreateResponse.errorType = "2"
+            return sCreateResponse
+        }
+        if (!relationAddRequest.fromContent.isNullOrEmpty() && relationAddRequest.fromContent!!.size < 1) {
+            /** 从对象内容不能为空 */
+            sCreateResponse.result = SResponseType.failure
+            sCreateResponse.message = "从对象编码不能为空"
+            sCreateResponse.errorType = "2"
+            return sCreateResponse
+        }
+        
+        try {
+            val relationTypeProjectService = SObjectService(SMybatisDao(RelationTypeProject::class.java))
+            val relationType = relationTypeProjectService.select(SFilter.eq("projectId", projectId!!), SFilter.eq("graphicType", relationAddRequest.graphicType!!), SFilter.eq("relationType", relationAddRequest.relType!!)).entity()
+            if (relationType != null) {
+                relationType.computingTime = time()
+                relationTypeProjectService.update(relationType)
+            }
+        } catch (e: Exception) {
+            e.printStackTrace()
+        }
+
+
+        if (relationAddRequest.graphicType == "ArchSubset" && relationAddRequest.relType == "Bd2Sp") {
+
+            if (!relationAddRequest.type.isNullOrEmpty() && relationAddRequest.type == "cadId") {
+                /** 从对象不存在cadId编码 */
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = "主从对象不存在CADID编码"
+                sCreateResponse.errorType = "1"
+                return sCreateResponse
+            }
+            val buildingList = BuildingService.select(SFilter.eq("projectId", projectId!!), SFilter.eq(relationAddRequest.type!!, relationAddRequest.mainContent!!)).exec()
+            if (buildingList.size < 1) {
+                /** 主对象不存在 */
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = relationAddRequest.mainContent + ":不存在"
+                sCreateResponse.errorType = "1"
+                return sCreateResponse
+            }
+            if (buildingList.size > 1) {
+                /** 主对象编码识别到多个实例 */
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = relationAddRequest.mainContent + ":存在多个实例"
+                sCreateResponse.errorType = "1"
+                return sCreateResponse
+            }
+            for (fromContent in relationAddRequest.fromContent!!) {
+                val relZoneSpaceList = relZoneSpaceService.select(SFilter.eq("projectId", projectId), SFilter.eq(relationAddRequest.type!!, fromContent!!)).exec()
+                if (relZoneSpaceList.size < 1) {
+                    /** 从对象不存在 */
+                    sCreateResponse.result = SResponseType.failure
+                    sCreateResponse.message = fromContent + ":不存在"
+                    sCreateResponse.errorType = "2"
+                    return sCreateResponse
+                }
+                if (relZoneSpaceList.size > 1) {
+                    /** 从对象编码识别到多个实例 */
+                    sCreateResponse.result = SResponseType.failure
+                    sCreateResponse.message = fromContent + ":存在多个实例"
+                    sCreateResponse.errorType = "2"
+                    return sCreateResponse
+                }
+            }
+
+            /** 处理关系 */
+            val setCode = HashSet<String>()
+            for (fromContent in relationAddRequest.fromContent!!) {
+                setCode.add(fromContent)
+            }
+            /** 查询空间 */
+            val relZoneSpaceList = relZoneSpaceService.select(SFilter.eq("projectId", projectId), SFilter.inList(relationAddRequest.type!!, setCode.toList())).exec()
+            /** 遍历 */
+            for (relZoneSpace in relZoneSpaceList) {
+                relZoneSpace.buildingId = buildingList[0].id
+                relZoneSpaceService.update(relZoneSpace)
+            }
+            sCreateResponse.result = SResponseType.success
+            sCreateResponse.message = "添加成功"
+            return sCreateResponse
+        } else if (relationAddRequest.graphicType == "ArchSubset" && relationAddRequest.relType == "Fl2Sp") {
+            if (!relationAddRequest.type.isNullOrEmpty() && relationAddRequest.type == "cadId") {
+                /** 从对象不存在cadId编码 */
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = "主从对象不存在CADID编码"
+                sCreateResponse.errorType = "1"
+                return sCreateResponse
+            }
+            val floorList = FloorService.select(SFilter.eq("projectId", projectId!!), SFilter.eq(relationAddRequest.type!!, relationAddRequest.mainContent!!)).exec()
+            if (floorList.size < 1) {
+                /** 主对象不存在 */
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = relationAddRequest.mainContent + ":不存在"
+                sCreateResponse.errorType = "1"
+                return sCreateResponse
+            }
+            if (floorList.size > 1) {
+                /** 主对象编码识别到多个实例 */
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = relationAddRequest.mainContent + ":存在多个实例"
+                sCreateResponse.errorType = "1"
+                return sCreateResponse
+            }
+            for (fromContent in relationAddRequest.fromContent!!) {
+                val relZoneSpaceList = relZoneSpaceService.select(SFilter.eq("projectId", projectId), SFilter.eq(relationAddRequest.type!!, fromContent!!)).exec()
+                if (relZoneSpaceList.size < 1) {
+                    /** 从对象不存在 */
+                    sCreateResponse.result = SResponseType.failure
+                    sCreateResponse.message = fromContent + ":不存在"
+                    sCreateResponse.errorType = "2"
+                    return sCreateResponse
+                }
+                if (relZoneSpaceList.size > 1) {
+                    /** 从对象编码识别到多个实例 */
+                    sCreateResponse.result = SResponseType.failure
+                    sCreateResponse.message = fromContent + ":存在多个实例"
+                    sCreateResponse.errorType = "2"
+                    return sCreateResponse
+                }
+            }
+
+            /** 处理关系 */
+            val setCode = HashSet<String>()
+            for (fromContent in relationAddRequest.fromContent!!) {
+                setCode.add(fromContent)
+            }
+            /** 查询空间 */
+            val relZoneSpaceList = relZoneSpaceService.select(SFilter.eq("projectId", projectId), SFilter.inList(relationAddRequest.type!!, setCode.toList())).exec()
+            /** 遍历 */
+            for (relZoneSpace in relZoneSpaceList) {
+                relZoneSpace.floorId = floorList[0].id
+                relZoneSpace.buildingId = floorList[0].buildingId
+                relZoneSpaceService.update(relZoneSpace)
+            }
+            sCreateResponse.result = SResponseType.success
+            sCreateResponse.message = "添加成功"
+            return sCreateResponse
+
+        } else if (relationAddRequest.graphicType == "MechInArch" && relationAddRequest.relType == "Eq2Bd") {
+            if (!relationAddRequest.type.isNullOrEmpty() && relationAddRequest.type == "cadId") {
+                /** 从对象不存在cadId编码 */
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = "从对象不存在CADID编码"
+                sCreateResponse.errorType = "2"
+                return sCreateResponse
+            }
+
+            val equipmentList = EquipmentService.select(SFilter.eq("projectId", projectId!!), SFilter.eq(relationAddRequest.type!!, relationAddRequest.mainContent!!)).exec()
+            if (equipmentList.size < 1) {
+                /** 主对象不存在 */
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = relationAddRequest.mainContent + ":不存在"
+                sCreateResponse.errorType = "1"
+                return sCreateResponse
+            }
+            if (equipmentList.size > 1) {
+                /** 主对象编码识别到多个实例 */
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = relationAddRequest.mainContent + ":存在多个实例"
+                sCreateResponse.errorType = "1"
+                return sCreateResponse
+            }
+            for (fromContent in relationAddRequest.fromContent!!) {
+                val buildingList = BuildingService.select(SFilter.eq("projectId", projectId), SFilter.eq(relationAddRequest.type!!, fromContent!!)).exec()
+                if (buildingList.size < 1) {
+                    /** 从对象不存在 */
+                    sCreateResponse.result = SResponseType.failure
+                    sCreateResponse.message = fromContent + ":不存在"
+                    sCreateResponse.errorType = "2"
+                    return sCreateResponse
+                }
+                if (buildingList.size > 1) {
+                    /** 从对象编码识别到多个实例 */
+                    sCreateResponse.result = SResponseType.failure
+                    sCreateResponse.message = fromContent + ":存在多个实例"
+                    sCreateResponse.errorType = "2"
+                    return sCreateResponse
+                }
+            }
+            /** 处理关系 */
+            val setCode = HashSet<String>()
+            for (fromContent in relationAddRequest.fromContent!!) {
+                setCode.add(fromContent)
+            }
+
+            /** 查询空间 */
+            val buildingList = BuildingService.select(SFilter.eq("projectId", projectId), SFilter.inList(relationAddRequest.type!!, setCode.toList())).exec()
+            /** 遍历 */
+            for (building in buildingList) {
+                val equipment = equipmentList[0]
+                equipment.buildingId = building.id
+                EquipmentService.update(equipment)
+            }
+            sCreateResponse.result = SResponseType.success
+            sCreateResponse.message = "添加成功"
+            return sCreateResponse
+        } else if (relationAddRequest.graphicType == "MechInArch" && relationAddRequest.relType == "Eq2Fl") {
+            if (!relationAddRequest.type.isNullOrEmpty() && relationAddRequest.type == "cadId") {
+                /** 从对象不存在cadId编码 */
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = "从对象不存在CADID编码"
+                sCreateResponse.errorType = "2"
+                return sCreateResponse
+            }
+
+            val equipmentList = EquipmentService.select(SFilter.eq("projectId", projectId!!), SFilter.eq(relationAddRequest.type!!, relationAddRequest.mainContent!!)).exec()
+            if (equipmentList.size < 1) {
+                /** 主对象不存在 */
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = relationAddRequest.mainContent + ":不存在"
+                sCreateResponse.errorType = "1"
+                return sCreateResponse
+            }
+            if (equipmentList.size > 1) {
+                /** 主对象编码识别到多个实例 */
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = relationAddRequest.mainContent + ":存在多个实例"
+                sCreateResponse.errorType = "1"
+                return sCreateResponse
+            }
+            for (fromContent in relationAddRequest.fromContent!!) {
+                val floorList = FloorService.select(SFilter.eq("projectId", projectId), SFilter.eq(relationAddRequest.type!!, fromContent!!)).exec()
+                if (floorList.size < 1) {
+                    /** 从对象不存在 */
+                    sCreateResponse.result = SResponseType.failure
+                    sCreateResponse.message = fromContent + ":不存在"
+                    sCreateResponse.errorType = "2"
+                    return sCreateResponse
+                }
+                if (floorList.size > 1) {
+                    /** 从对象编码识别到多个实例 */
+                    sCreateResponse.result = SResponseType.failure
+                    sCreateResponse.message = fromContent + ":存在多个实例"
+                    sCreateResponse.errorType = "2"
+                    return sCreateResponse
+                }
+            }
+            /** 处理关系 */
+            val setCode = HashSet<String>()
+            for (fromContent in relationAddRequest.fromContent!!) {
+                setCode.add(fromContent)
+            }
+
+            /** 查询空间 */
+            val floorList = FloorService.select(SFilter.eq("projectId", projectId), SFilter.inList(relationAddRequest.type!!, setCode.toList())).exec()
+
+            /** 遍历 */
+            for (floor in floorList) {
+                val equipment = equipmentList[0]
+                equipment.buildingId = floor.buildingId
+                equipment.floorId = floor.id
+                EquipmentService.update(equipment)
+            }
+            sCreateResponse.result = SResponseType.success
+            sCreateResponse.message = "添加成功"
+            return sCreateResponse
+        } else if (relationAddRequest.graphicType == "ArchForArch" && relationAddRequest.relType == "Sp2Sp") {
+
+            if (!relationAddRequest.type.isNullOrEmpty() && relationAddRequest.type == "cadId") {
+                /** 从对象不存在cadId编码 */
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = "主从对象不存在CADID编码"
+                sCreateResponse.errorType = "1"
+                return sCreateResponse
+            }
+            val relZoneSpaceOneList = relZoneSpaceService.select(SFilter.eq("projectId", projectId!!), SFilter.eq(relationAddRequest.type!!, relationAddRequest.mainContent!!)).exec()
+            if (relZoneSpaceOneList.size < 1) {
+                /** 主对象不存在 */
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = relationAddRequest.mainContent + ":不存在"
+                sCreateResponse.errorType = "1"
+                return sCreateResponse
+            }
+            if (relZoneSpaceOneList.size > 1) {
+                /** 主对象编码识别到多个实例 */
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = relationAddRequest.mainContent + ":存在多个实例"
+                sCreateResponse.errorType = "1"
+                return sCreateResponse
+            }
+            for (fromContent in relationAddRequest.fromContent!!) {
+                val relZoneSpaceList = relZoneSpaceService.select(SFilter.eq("projectId", projectId), SFilter.eq(relationAddRequest.type!!, fromContent!!)).exec()
+                if (relZoneSpaceList.size < 1) {
+                    /** 从对象不存在 */
+                    sCreateResponse.result = SResponseType.failure
+                    sCreateResponse.message = fromContent + ":不存在"
+                    sCreateResponse.errorType = "2"
+                    return sCreateResponse
+                }
+                if (relZoneSpaceList.size > 1) {
+                    /** 从对象编码识别到多个实例 */
+                    sCreateResponse.result = SResponseType.failure
+                    sCreateResponse.message = fromContent + ":存在多个实例"
+                    sCreateResponse.errorType = "2"
+                    return sCreateResponse
+                }
+            }
+
+            /** 处理关系 */
+            val setCode = HashSet<String>()
+            for (fromContent in relationAddRequest.fromContent!!) {
+                setCode.add(fromContent)
+            }
+            /** 查询空间 */
+            val relZoneSpaceList = relZoneSpaceService.select(SFilter.eq("projectId", projectId), SFilter.inList(relationAddRequest.type!!, setCode.toList())).exec()
+            /** 遍历 */
+            for (relZoneSpace in relZoneSpaceList) {
+                val rSp2Sp = RSp2Sp()
+                rSp2Sp.id1 = relZoneSpaceOneList[0].id
+                rSp2Sp.id2 = relZoneSpace.id
+                rSp2Sp.graphCode = relationAddRequest.graphicType
+                rSp2Sp.type = relationAddRequest.relType
+                rSp2Sp.projectId = projectId
+                rSp2Sp.zoneType = relZoneSpace.classCode
+                rSp2Sp.sign = 1
+                rSp2SpService.replace(rSp2Sp)
+            }
+            sCreateResponse.result = SResponseType.success
+            sCreateResponse.message = "添加成功"
+            return sCreateResponse
+        } else if (relationAddRequest.graphicType == "MechSubset" && relationAddRequest.relType == "Sy2Eq") {
+
+            val systemList = GeneralSystemService.select(SFilter.eq("projectId", projectId!!), SFilter.eq(relationAddRequest.type!!, relationAddRequest.mainContent!!)).exec()
+            if (systemList.size < 1) {
+                /** 主对象不存在 */
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = relationAddRequest.mainContent + ":不存在"
+                sCreateResponse.errorType = "1"
+                return sCreateResponse
+            }
+            if (systemList.size > 1) {
+                /** 主对象编码识别到多个实例 */
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = relationAddRequest.mainContent + ":存在多个实例"
+                sCreateResponse.errorType = "1"
+                return sCreateResponse
+            }
+            for (fromContent in relationAddRequest.fromContent!!) {
+                val equipList = EquipmentService.select(SFilter.eq("projectId", projectId), SFilter.eq(relationAddRequest.type!!, fromContent!!)).exec()
+                if (equipList.size < 1) {
+                    /** 从对象不存在 */
+                    sCreateResponse.result = SResponseType.failure
+                    sCreateResponse.message = fromContent + ":不存在"
+                    sCreateResponse.errorType = "2"
+                    return sCreateResponse
+                }
+                if (equipList.size > 1) {
+                    /** 从对象编码识别到多个实例 */
+                    sCreateResponse.result = SResponseType.failure
+                    sCreateResponse.message = fromContent + ":存在多个实例"
+                    sCreateResponse.errorType = "2"
+                    return sCreateResponse
+                }
+            }
+            /** 处理关系 */
+            val setCode = HashSet<String>()
+            for (fromContent in relationAddRequest.fromContent!!) {
+                setCode.add(fromContent)
+            }
+            /** 查询设备 */
+            val equipList = EquipmentService.select(SFilter.eq("projectId", projectId), SFilter.inList(relationAddRequest.type!!, setCode.toList())).exec()
+            /** 遍历 */
+            for (equip in equipList) {
+                val rEq2Sy = REq2Sy()
+                rEq2Sy.id1 = systemList[0].id
+                rEq2Sy.id2 = equip.id
+                rEq2Sy.graphCode = relationAddRequest.graphicType
+                rEq2Sy.type = relationAddRequest.relType
+                rEq2Sy.sign = 1
+                rEq2Sy.projectId = projectId
+                rEq2SyService.replace(rEq2Sy)
+            }
+            sCreateResponse.result = SResponseType.success
+            sCreateResponse.message = "添加成功"
+            return sCreateResponse
+
+        } else if (relationAddRequest.graphicType == "MechInArch" && relationAddRequest.relType == "Eq2Sp") {
+            if (!relationAddRequest.type.isNullOrEmpty() && relationAddRequest.type == "cadId") {
+                /** 从对象不存在cadId编码 */
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = "主从对象不存在CADID编码"
+                sCreateResponse.errorType = "1"
+                return sCreateResponse
+            }
+            if (relationAddRequest.zoneType.isNullOrEmpty()){
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = "空间类型不能为空"
+                sCreateResponse.errorType = "2"
+                return sCreateResponse
+            }
+
+            val equipmentList = EquipmentService.select(SFilter.eq("projectId", projectId!!), SFilter.eq(relationAddRequest.type!!, relationAddRequest.mainContent!!)).exec()
+            if (equipmentList.size < 1) {
+                /** 主对象不存在 */
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = relationAddRequest.mainContent + ":不存在"
+                sCreateResponse.errorType = "1"
+                return sCreateResponse
+            }
+            if (equipmentList.size > 1) {
+                /** 主对象编码识别到多个实例 */
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = relationAddRequest.mainContent + ":存在多个实例"
+                sCreateResponse.errorType = "1"
+                return sCreateResponse
+            }
+
+            for (fromContent in relationAddRequest.fromContent!!) {
+                val relZoneSpaceList = relZoneSpaceService.select(SFilter.eq("projectId", projectId), SFilter.eq(relationAddRequest.type!!, fromContent!!), SFilter.eq("classCode", relationAddRequest.zoneType!!)).exec()
+                if (relZoneSpaceList.size < 1) {
+                    /** 从对象不存在 */
+                    sCreateResponse.result = SResponseType.failure
+                    sCreateResponse.message = fromContent + ":不存在"
+                    sCreateResponse.errorType = "2"
+                    return sCreateResponse
+                }
+                if (relZoneSpaceList.size > 1) {
+                    /** 从对象编码识别到多个实例 */
+                    sCreateResponse.result = SResponseType.failure
+                    sCreateResponse.message = fromContent + ":存在多个实例"
+                    sCreateResponse.errorType = "2"
+                    return sCreateResponse
+                }
+            }
+
+            /** 处理关系 */
+            val setCode = HashSet<String>()
+            for (fromContent in relationAddRequest.fromContent!!) {
+                setCode.add(fromContent)
+            }
+            /** 查询空间 */
+            val relZoneSpaceList = relZoneSpaceService.select(SFilter.eq("projectId", projectId!!), SFilter.eq(relationAddRequest.type!!, relationAddRequest.mainContent!!),
+                    SFilter.eq("classCode", relationAddRequest.zoneType!!)).exec()
+            /** 遍历 */
+            for (zoneSpace in relZoneSpaceList) {
+                val rEq2Sp = REq2Sp()
+                rEq2Sp.id1 = equipmentList[0].id
+                rEq2Sp.id2 = zoneSpace.id
+                rEq2Sp.graphCode = relationAddRequest.graphicType
+                rEq2Sp.type = relationAddRequest.relType
+                rEq2Sp.sign = 1
+                rEq2Sp.projectId = projectId
+                rEq2Sp.zoneType = zoneSpace.classCode
+                rEq2SpService.replace(rEq2Sp)
+            }
+            sCreateResponse.result = SResponseType.success
+            sCreateResponse.message = "添加成功"
+            return sCreateResponse
+
+        } else if (relationAddRequest.graphicType == "MechForArch" && relationAddRequest.relType == "Eq2Sp") {
+            if (!relationAddRequest.type.isNullOrEmpty() && relationAddRequest.type == "cadId") {
+                /** 从对象不存在cadId编码 */
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = "主从对象不存在CADID编码"
+                sCreateResponse.errorType = "1"
+                return sCreateResponse
+            }
+            if (relationAddRequest.zoneType.isNullOrEmpty()){
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = "空间类型不能为空"
+                sCreateResponse.errorType = "2"
+                return sCreateResponse
+            }
+
+            val equipmentList = EquipmentService.select(SFilter.eq("projectId", projectId!!), SFilter.eq(relationAddRequest.type!!, relationAddRequest.mainContent!!)).exec()
+            if (equipmentList.size < 1) {
+                /** 主对象不存在 */
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = relationAddRequest.mainContent + ":不存在"
+                sCreateResponse.errorType = "1"
+                return sCreateResponse
+            }
+            if (equipmentList.size > 1) {
+                /** 主对象编码识别到多个实例 */
+                sCreateResponse.result = SResponseType.failure
+                sCreateResponse.message = relationAddRequest.mainContent + ":存在多个实例"
+                sCreateResponse.errorType = "1"
+                return sCreateResponse
+            }
+
+            for (fromContent in relationAddRequest.fromContent!!) {
+                val relZoneSpaceList = relZoneSpaceService.select(SFilter.eq("projectId", projectId), SFilter.eq(relationAddRequest.type!!, fromContent!!), SFilter.eq("classCode", relationAddRequest.zoneType!!)).exec()
+                if (relZoneSpaceList.size < 1) {
+                    /** 从对象不存在 */
+                    sCreateResponse.result = SResponseType.failure
+                    sCreateResponse.message = fromContent + ":不存在"
+                    sCreateResponse.errorType = "2"
+                    return sCreateResponse
+                }
+                if (relZoneSpaceList.size > 1) {
+                    /** 从对象编码识别到多个实例 */
+                    sCreateResponse.result = SResponseType.failure
+                    sCreateResponse.message = fromContent + ":存在多个实例"
+                    sCreateResponse.errorType = "2"
+                    return sCreateResponse
+                }
+            }
+
+            /** 处理关系 */
+            val setCode = HashSet<String>()
+            for (fromContent in relationAddRequest.fromContent!!) {
+                setCode.add(fromContent)
+            }
+            /** 查询空间 */
+            val relZoneSpaceList = relZoneSpaceService.select(SFilter.eq("projectId", projectId!!), SFilter.eq(relationAddRequest.type!!, relationAddRequest.mainContent!!),
+                    SFilter.eq("classCode", relationAddRequest.zoneType!!)).exec()
+            /** 遍历 */
+            for (zoneSpace in relZoneSpaceList) {
+                val rEq2Sp = REq2Sp()
+                rEq2Sp.id1 = equipmentList[0].id
+                rEq2Sp.id2 = zoneSpace.id
+                rEq2Sp.graphCode = relationAddRequest.graphicType
+                rEq2Sp.type = relationAddRequest.relType
+                rEq2Sp.sign = 1
+                rEq2Sp.projectId = projectId
+                rEq2Sp.zoneType = zoneSpace.classCode
+                rEq2SpService.replace(rEq2Sp)
+            }
+            sCreateResponse.result = SResponseType.success
+            sCreateResponse.message = "添加成功"
+            return sCreateResponse
+        }else{
+            sCreateResponse.result = SResponseType.success
+            sCreateResponse.message = "添加成功"
+            return sCreateResponse
+        }
+    }
+
+    fun time():String {
+        val df = SimpleDateFormat("yyyy-MM-dd HH:mm:ss") //设置日期格式
+        println(df.format(Date())) // new Date()为获取当前系统时间
+        return df.format(Date())
+    }
+}

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 82 - 1109
datacenter/src/main/kotlin/com/persagy/server/datacenter/services/relation_calc/ManualRelationCalcService.kt


+ 8 - 5
datacenter/src/main/kotlin/com/persagy/server/datacenter/services/relation_calc/tools/ManualRelationTools.kt

@@ -24,7 +24,7 @@
  * *********************************************************************************************************************
  */
 
-package com.persagy.server.services.relation_calc.tools
+package com.persagy.server.datacenter.services.relation_calc.tools
 
 import com.persagy.mybatis.SMybatisDao
 import com.persagy.server.datacenter.models.entities.graphtype.rel.RelProperty
@@ -34,6 +34,8 @@ import com.persagy.server.datacenter.models.entities.rel.RPe2Sp
 import com.persagy.server.datacenter.models.entities.rel.RPeInSh
 import com.persagy.service.SObjectService
 import org.springframework.stereotype.Service
+import java.text.SimpleDateFormat
+import java.util.*
 
 /**
  * 关系工具类
@@ -288,9 +290,10 @@ class ManualRelationTools {
 
 
 
-
-
-
-
+    fun time():String {
+        val df = SimpleDateFormat("yyyy-MM-dd HH:mm:ss") //设置日期格式
+        println(df.format(Date())) // new Date()为获取当前系统时间
+        return df.format(Date())
+    }
 
 }

+ 11 - 6
datacenter/src/main/kotlin/com/persagy/server/datacenter/wanda/controllers/relation/ManualRelationCalcController.kt

@@ -31,6 +31,7 @@ import com.persagy.server.datacenter.models.requests.ManualRelationCalcDel
 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.datacenter.services.relation_calc.ManualRelationCalcAddService
 import com.persagy.server.datacenter.services.relation_calc.ManualRelationCalcService
 import com.persagy.service.models.responses.SBaseResponse
 import io.swagger.v3.oas.annotations.Operation
@@ -57,14 +58,18 @@ class ManualRelationCalcController {
     @Autowired
     lateinit var service: ManualRelationCalcService
 
+    @Autowired
+    lateinit var addService: ManualRelationCalcAddService
+
+
     /**
      * 查询关系数据
      */
-    @Operation(summary = "查询关系数据", description = "")
-    @PostMapping(value = ["/query"])
-    fun query(@RequestBody manualRelationCalcRequest: ManualRelationCalcRequest): ManualRelationCalcResponse {
-        return service.query(manualRelationCalcRequest)
-    }
+//    @Operation(summary = "查询关系数据", description = "")
+//    @PostMapping(value = ["/query"])
+//    fun query(@RequestBody manualRelationCalcRequest: ManualRelationCalcRequest): ManualRelationCalcResponse {
+//        return service.query(manualRelationCalcRequest)
+//    }
 
     /**
      * 添加关系
@@ -72,7 +77,7 @@ class ManualRelationCalcController {
     @Operation(summary = "添加关系", description = "")
     @PostMapping(value = ["/add"])
     fun addRels(@RequestBody relationAddRequest: RelationAddRequest): ManualRelationCalcSCreateResponse {
-        return service.addRel(relationAddRequest)
+        return addService.addRel(relationAddRequest)
     }
 
     /**