caiaf 4 years ago
parent
commit
b2e0dd80c3

+ 2 - 2
data-core/src/main/kotlin/com/persagy/server/datacenter/datacenter/models/entities/assistant/EquipmentProSy.kt

@@ -198,8 +198,8 @@ open class EquipmentProSy : BaseInfo() {
 
     /** 别编码 */
     @Schema(description = "别编码")
-    @Column(name = "alias_code")
-    var aliasCode: String? = null
+    @Column(name = "wd_code")
+    var wdCode: String? = null
 
     /** 别名称 */
     @Schema(description = "别名称")

+ 2 - 2
data-core/src/main/kotlin/com/persagy/server/datacenter/wanda/obj/Equipment.kt

@@ -252,8 +252,8 @@ open class Equipment : BaseInfo() {
 
     /** 别编码 */
     @Schema(description = "别编码")
-    @Column(name = "alias_code")
-    var aliasCode: String? = null
+    @Column(name = "wd_code")
+    var wdCode: String? = null
 
     /** 别名称 */
     @Schema(description = "别名称")

+ 2 - 2
data-core/src/main/kotlin/com/persagy/server/datacenter/wanda/rel/EquipmentBase.kt

@@ -123,8 +123,8 @@ open class EquipmentBase : BaseInfo() {
 
     /** 别编码 */
     @Schema(description = "别编码")
-    @Column(name = "alias_code")
-    var aliasCode: String? = null
+    @Column(name = "wd_code")
+    var wdCode: String? = null
 
     /** 别名称 */
     @Schema(description = "别名称")

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

@@ -9,6 +9,7 @@ import com.persagy.server.datacenter.models.response.ManualRelationCalcSCreateRe
 import com.persagy.server.datacenter.services.objects.BuildingService
 import com.persagy.server.datacenter.services.objects.EquipmentService
 import com.persagy.server.datacenter.services.objects.GeneralSystemService
+import com.persagy.server.datacenter.wanda.rel.REq2Eq
 import com.persagy.server.datacenter.wanda.rel.REq2Sp
 import com.persagy.server.datacenter.wanda.rel.REq2Sy
 import com.persagy.server.datacenter.wanda.rel.RSp2Sp
@@ -38,6 +39,9 @@ class ManualRelationCalcAddService {
     private val rEq2SyService = SObjectService(SMybatisDao(REq2Sy::class.java))
     /** 设备和空间关系 */
     private val rEq2SpService = SObjectService(SMybatisDao(REq2Sp::class.java))
+    /** 阀门限制设备关系 */
+    private val rEq2EqService = SObjectService(SMybatisDao(REq2Eq::class.java))
+
 
     /**
      * 添加关系
@@ -327,7 +331,75 @@ class ManualRelationCalcAddService {
             sCreateResponse.result = SResponseType.success
             sCreateResponse.message = "添加成功"
             return sCreateResponse
-        } else if (relationAddRequest.graphicType == "ArchForArch" && relationAddRequest.relType == "Sp2Sp") {
+        }
+        /** 阀门限制设备 */
+        else if (relationAddRequest.graphicType == "ValveRelationship" && relationAddRequest.relType == "Vv2Eq") {
+            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 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 (equipment in equipList) {
+
+                val rEq2Eq = REq2Eq()
+                rEq2Eq.id1 = equipmentList[0].id
+                rEq2Eq.id2 = equipment.id
+                rEq2Eq.graphCode = relationAddRequest.graphicType
+                rEq2Eq.type = relationAddRequest.relType
+                rEq2Eq.sign = 1
+                rEq2Eq.projectId = projectId
+                rEq2EqService.replace(rEq2Eq)
+            }
+            sCreateResponse.result = SResponseType.success
+            sCreateResponse.message = "添加成功"
+            return sCreateResponse
+        }
+        else if (relationAddRequest.graphicType == "ArchForArch" && relationAddRequest.relType == "Sp2Sp") {
 
             if (!relationAddRequest.type.isNullOrEmpty() && relationAddRequest.type == "cadId") {
                 /** 从对象不存在cadId编码 */

+ 113 - 0
datacenter/src/main/kotlin/com/persagy/server/datacenter/services/relation_calc/ManualRelationCalcService.kt

@@ -191,6 +191,8 @@ open class ManualRelationCalcService {
             return queryEq2Sp(manualRelationCalcRequest)
             }else if (manualRelationCalcRequest.graphicType == "MechForArch" && manualRelationCalcRequest.relType == "Eq2Sp"){
             return queryEq2SpFor(manualRelationCalcRequest)
+            }else if (manualRelationCalcRequest.graphicType == "ValveRelationship" && manualRelationCalcRequest.relType == "Vv2Eq"){
+                return queryVv2Eq(manualRelationCalcRequest)
             }
         return ManualRelationCalcResponse()
 
@@ -1148,6 +1150,114 @@ open class ManualRelationCalcService {
         return  manualRelationCalcResponse
     }
 
+    /**
+     * @Description: 阀门限制设备
+     * @Param:
+     * @Return:
+     */
+    fun queryVv2Eq(manualRelationCalcRequest: ManualRelationCalcRequest): ManualRelationCalcResponse{
+        val sQueryRequest = SQueryRequest()
+        if(manualRelationCalcRequest.pageNumber>0&&manualRelationCalcRequest.pageSize>0){
+            SQueryRequest.maxRow = 400000
+            sQueryRequest.pageSize= manualRelationCalcRequest.pageSize
+            sQueryRequest.pageNumber = manualRelationCalcRequest.pageNumber
+        }else{
+            /** 控制条数 */
+            SQueryRequest.maxRow = 100000
+            sQueryRequest.pageSize= 100000
+        }
+
+        val sCascadeQueryList = ArrayList<SCascadeQuery>()
+        /** 级联资产 */
+        val sCascadeQuery = SCascadeQuery()
+        sCascadeQuery.name = "objectInfo"
+        sCascadeQuery.filters = "classCode = '${manualRelationCalcRequest.zoneType!!}'"
+        sCascadeQueryList.add(sCascadeQuery)
+        sQueryRequest.cascade = sCascadeQueryList
+
+        val manualRelationCalcResponse = ManualRelationCalcResponse()
+        manualRelationCalcResponse.direction = "Left"
+        val list = ArrayList<SFilter>()
+        list.add(SFilter.eq("projectId",Opt.projectId!!))
+        val rEq2EqList = rEq2EqService.select(SFilter.eq("projectId", Opt.projectId!!), SFilter.eq("graphCode", manualRelationCalcRequest.graphicType!!), SFilter.eq("type", manualRelationCalcRequest.relType!!)).exec()
+        val equipIds  = ArrayList<String>()
+        if (rEq2EqList.size>0) {
+            equipIds.addAll(rEq2EqList.map { r -> r.id1!! })
+            if (manualRelationCalcRequest.objectType == "1") {
+                //限制结果为存在关联关系的数据
+                list.add(SFilter.inList("id",equipIds))
+                if (!manualRelationCalcRequest.categoryFrom.isNullOrEmpty()){
+                    list.add(SFilter.eq("classCode",manualRelationCalcRequest.categoryFrom!!))
+                }
+                if (!manualRelationCalcRequest.vagueFrom.isNullOrEmpty()) {
+                    list.add(SFilter.or(SFilter.contain("codeName",manualRelationCalcRequest.vagueFrom!!),SFilter.contain("localId1",manualRelationCalcRequest.vagueFrom!!)
+                            ,SFilter.contain("bimTypeId",manualRelationCalcRequest.vagueFrom!!),SFilter.contain("systemCategotry",manualRelationCalcRequest.vagueFrom!!)))
+                }
+                val pageQuery = relEq2SpForEquipService.pageQuery(sQueryRequest, list)
+                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 if (manualRelationCalcRequest.objectType == "2" ||manualRelationCalcRequest.objectType == "3"){
+                if (!manualRelationCalcRequest.categoryFrom.isNullOrEmpty()){
+                    list.add(SFilter.eq("classCode",manualRelationCalcRequest.categoryFrom!!))
+                }
+                if (!manualRelationCalcRequest.vagueFrom.isNullOrEmpty()) {
+                    list.add(SFilter.or(SFilter.contain("codeName",manualRelationCalcRequest.vagueTo!!),SFilter.contain("localId1",manualRelationCalcRequest.vagueTo!!)
+                            ,SFilter.contain("bimTypeId",manualRelationCalcRequest.vagueTo!!),SFilter.contain("systemCategotry",manualRelationCalcRequest.vagueTo!!)))
+                }
+
+                if (!manualRelationCalcRequest.vagueTo.isNullOrEmpty()){
+                    list.add(SFilter.or(SFilter.contain("localName2",manualRelationCalcRequest.vagueTo!!),SFilter.contain("localId2",manualRelationCalcRequest.vagueTo!!)))
+                }
+                if (!manualRelationCalcRequest.zoneType.isNullOrEmpty()){
+                    list.add(SFilter.eq("zoneType",manualRelationCalcRequest.zoneType!!))
+                }
+                val rEq2SpTwoList = rEq2SpTwoService.select(list).exec()
+                if (rEq2SpTwoList.size>0){
+                    for (rEq2SpTwo in rEq2SpTwoList){
+
+                    }
+
+                    val listId1 = ArrayList<String>()
+                    val listId2 = ArrayList<String>()
+                    for (rEq2SpTwo in rEq2SpTwoList){
+                        listId1.add(rEq2SpTwo.id1!!)
+                        listId2.add(rEq2SpTwo.id2!!)
+                    }
+
+                    val listSF = ArrayList<SFilter>()
+                    sCascadeQuery.filters = "id in ${listId2.toJson()}"
+                    listSF.add(SFilter.inList("id",listId1.toList()))
+                    listSF.add(SFilter.eq("projectId",Opt.projectId!!))
+                    val pageQuery = relEq2SpForEquipService.pageQuery(sQueryRequest, listSF)
+                    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.content = ArrayList()
+                    manualRelationCalcResponse.result = SResponseType.success
+                }
+
+            } else {
+                manualRelationCalcResponse.content = ArrayList()
+                manualRelationCalcResponse.result = SResponseType.success
+            }
+
+        }else {
+            manualRelationCalcResponse.content = ArrayList()
+            manualRelationCalcResponse.result = SResponseType.success
+        }
+        return  manualRelationCalcResponse
+
+    }
+
 
     /**
      * 设备服务空间
@@ -1307,6 +1417,9 @@ open class ManualRelationCalcService {
                 } else if (manualRelationCalcDel.graphicType == "MechForArch" && manualRelationCalcDel.relType == "Eq2Sp") {
                     delete = rSp2SpService.delete(SFilter.eq("id1",manualRelationCalcDel.fromId!!),SFilter.eq("id2",manualRelationCalcDel.toId!!),
                             SFilter.eq("graphCode",manualRelationCalcDel.graphicType!!),SFilter.eq("type",manualRelationCalcDel.relType!!))
+                } else if (manualRelationCalcDel.graphicType == "ValveRelationship" && manualRelationCalcDel.relType == "Vv2Eq") {
+                    delete = rEq2EqService.delete(SFilter.eq("id1",manualRelationCalcDel.fromId!!),SFilter.eq("id2",manualRelationCalcDel.toId!!),
+                            SFilter.eq("graphCode",manualRelationCalcDel.graphicType!!),SFilter.eq("type",manualRelationCalcDel.relType!!))
                 }
                 if (delete){
                     /** 发送消息 */