瀏覽代碼

**********************************wx*************************
表格导入

weixinVSjinlai 4 年之前
父節點
當前提交
c6539cd983

+ 173 - 2
datacenter/src/main/kotlin/com/persagy/server/mappers/IRelationExcelImportMapper.kt

@@ -304,8 +304,8 @@ interface IRelationExcelImportMapper {
      * @param   id2             空间ID
      * @return  excel需要的记录
      */
-    @Insert("INSERT INTO relationship.r_sp2sp(project_id, id1, id2, type, sign) VALUES(#{projectId}, #{id1}, #{id2}, #{type}, 1)")
-    fun sp2sp(projectId: String, type: String, id1: String, id2: String)
+    @Insert("INSERT INTO relationship.r_sp2sp(project_id, id1, id2, type, sign, zone_type) VALUES(#{projectId}, #{id1}, #{id2}, #{type}, 1,#{zoneType})")
+    fun sp2sp(projectId: String, type: String, id1: String, id2: String, zoneType: String)
 
     /**
      * 建筑与竖井关系
@@ -366,4 +366,175 @@ interface IRelationExcelImportMapper {
      */
     @Insert("INSERT INTO relationship.r_tn2sp(project_id, tn_id, sp_id, type, sign) VALUES(#{projectId}, #{id1}, #{id2}, #{type}, 1)")
     fun tn2sp(projectId: String, type: String, id1: String, id2: String)
+
+    /**
+     * 建筑与建筑关系
+     *
+     * @param   projectId       项目ID
+     * @param   type            关系类型
+     * @param   id1             空间ID
+     * @param   id2             空间ID
+     * @return  excel需要的记录
+     */
+    @Insert("INSERT INTO relationship.r_bd2bd(project_id, id1, id2, type, sign) VALUES(#{projectId}, #{id1}, #{id2}, #{type}, 1)")
+    fun bd2bd(projectId: String, type: String, id1: String, id2: String)
+
+    /**
+     * 建筑与楼层关系
+     *
+     * @param   projectId       项目ID
+     * @param   type            关系类型
+     * @param   id1             空间ID
+     * @param   id2             空间ID
+     * @return  excel需要的记录
+     */
+    @Insert("INSERT INTO relationship.r_bd2fl(project_id, id1, id2, type, sign) VALUES(#{projectId}, #{id1}, #{id2}, #{type}, 1)")
+    fun bd2fl(projectId: String, type: String, id1: String, id2: String)
+
+    /**
+     * 建筑与竖井关系
+     *
+     * @param   projectId       项目ID
+     * @param   type            关系类型
+     * @param   id1             空间ID
+     * @param   id2             空间ID
+     * @return  excel需要的记录
+     */
+    @Insert("INSERT INTO relationship.r_bd2sh(project_id, id1, id2, type, sign) VALUES(#{projectId}, #{id1}, #{id2}, #{type}, 1)")
+    fun bd2sh(projectId: String, type: String, id1: String, id2: String)
+
+    /**
+     * 建筑与空间关系
+     *
+     * @param   projectId       项目ID
+     * @param   type            关系类型
+     * @param   id1             空间ID
+     * @param   id2             空间ID
+     * @return  excel需要的记录
+     */
+    @Insert("INSERT INTO relationship.r_bd2sp(project_id, id1, id2, type, sign, zone_type) VALUES(#{projectId}, #{id1}, #{id2}, #{type}, 1,#{zoneType})")
+    fun bd2sp(projectId: String, type: String, id1: String, id2: String, zoneType: String)
+
+    /**
+     * 楼层与空间关系
+     *
+     * @param   projectId       项目ID
+     * @param   type            关系类型
+     * @param   id1             空间ID
+     * @param   id2             空间ID
+     * @return  excel需要的记录
+     */
+    @Insert("INSERT INTO relationship.r_fl2bd(project_id, id1, id2, type, sign, zone_type) VALUES(#{projectId}, #{id1}, #{id2}, #{type}, 1,#{zoneType})")
+    fun fl2bd(projectId: String, type: String, id1: String, id2: String)
+
+    /**
+     * 楼层与竖井关系
+     *
+     * @param   projectId       项目ID
+     * @param   type            关系类型
+     * @param   id1             空间ID
+     * @param   id2             空间ID
+     * @return  excel需要的记录
+     */
+    @Insert("INSERT INTO relationship.r_fl2sh(project_id, id1, id2, type, sign, zone_type) VALUES(#{projectId}, #{id1}, #{id2}, #{type}, 1,#{zoneType})")
+    fun fl2sh(projectId: String, type: String, id1: String, id2: String)
+
+    /**
+     * 楼层与空间关系
+     *
+     * @param   projectId       项目ID
+     * @param   type            关系类型
+     * @param   id1             空间ID
+     * @param   id2             空间ID
+     * @return  excel需要的记录
+     */
+    @Insert("INSERT INTO relationship.r_fl2sp(project_id, id1, id2, type, sign, zone_type) VALUES(#{projectId}, #{id1}, #{id2}, #{type}, 1,#{zoneType})")
+    fun fl2sp(projectId: String, type: String, id1: String, id2: String, zoneType: String)
+
+    /**
+     * 竖井与建筑关系
+     *
+     * @param   projectId       项目ID
+     * @param   type            关系类型
+     * @param   id1             空间ID
+     * @param   id2             空间ID
+     * @return  excel需要的记录
+     */
+    @Insert("INSERT INTO relationship.r_sh2bd(project_id, id1, id2, type, sign) VALUES(#{projectId}, #{id1}, #{id2}, #{type}, 1)")
+    fun sh2bdfor(projectId: String, type: String, id1: String, id2: String)
+
+    /**
+     * 竖井与建筑关系
+     *
+     * @param   projectId       项目ID
+     * @param   type            关系类型
+     * @param   id1             空间ID
+     * @param   id2             空间ID
+     * @return  excel需要的记录
+     */
+    @Insert("INSERT INTO relationship.r_sh2fl(project_id, id1, id2, type, sign) VALUES(#{projectId}, #{id1}, #{id2}, #{type}, 1)")
+    fun sh2flfor(projectId: String, type: String, id1: String, id2: String)
+
+    /**
+     * 竖井与竖井关系
+     *
+     * @param   projectId       项目ID
+     * @param   type            关系类型
+     * @param   id1             空间ID
+     * @param   id2             空间ID
+     * @return  excel需要的记录
+     */
+    @Insert("INSERT INTO relationship.r_sh2sh(project_id, id1, id2, type, sign) VALUES(#{projectId}, #{id1}, #{id2}, #{type}, 1)")
+    fun sh2shfor(projectId: String, type: String, id1: String, id2: String)
+
+    /**
+     * 竖井与空间关系
+     *
+     * @param   projectId       项目ID
+     * @param   type            关系类型
+     * @param   id1             空间ID
+     * @param   id2             空间ID
+     * @return  excel需要的记录
+     */
+    @Insert("INSERT INTO relationship.r_sh2sp(project_id, id1, id2, type, sign, zone_type) VALUES(#{projectId}, #{id1}, #{id2}, #{type}, 1,#{zoneType})")
+    fun sh2sp(projectId: String, type: String, id1: String, id2: String, zoneType: String)
+
+    /**
+     * 空间与建筑关系
+     *
+     * @param   projectId       项目ID
+     * @param   type            关系类型
+     * @param   id1             空间ID
+     * @param   id2             空间ID
+     * @return  excel需要的记录
+     */
+    @Insert("INSERT INTO relationship.r_sp2bd(project_id, id1, id2, type, sign, zone_type) VALUES(#{projectId}, #{id1}, #{id2}, #{type}, 1,#{zoneType})")
+    fun sp2bd(projectId: String, type: String, id1: String, id2: String, zoneType: String)
+
+    /**
+     * 空间与楼层关系
+     *
+     * @param   projectId       项目ID
+     * @param   type            关系类型
+     * @param   id1             空间ID
+     * @param   id2             空间ID
+     * @return  excel需要的记录
+     */
+    @Insert("INSERT INTO relationship.r_sp2fl(project_id, id1, id2, type, sign, zone_type) VALUES(#{projectId}, #{id1}, #{id2}, #{type}, 1,#{zoneType})")
+    fun sp2fl(projectId: String, type: String, id1: String, id2: String, zoneType: String)
+
+    /**
+     * 空间与竖井关系
+     *
+     * @param   projectId       项目ID
+     * @param   type            关系类型
+     * @param   id1             空间ID
+     * @param   id2             空间ID
+     * @return  excel需要的记录
+     */
+    @Insert("INSERT INTO relationship.r_sp2sh(project_id, id1, id2, type, sign, zone_type) VALUES(#{projectId}, #{id1}, #{id2}, #{type}, 1,#{zoneType})")
+    fun sp2sh(projectId: String, type: String, id1: String, id2: String, zoneType: String)
+
+
+
 } // Interface IRelationExcelImportMapper

+ 28 - 6
datacenter/src/main/kotlin/com/persagy/server/services/graphtype/RelationTypeProjectService.kt

@@ -24,6 +24,8 @@
  * *********************************************************************************************************************
  */
 
+@file:Suppress("IMPLICIT_CAST_TO_ANY")
+
 package com.persagy.server.services.graphtype
 
 import com.persagy.base.extensions.toJson
@@ -31,7 +33,9 @@ import com.persagy.database.SFilter
 import com.persagy.mybatis.SMybatisDao
 import com.persagy.server.Opt
 import com.persagy.server.datacenter.models.entities.graphtype.RelationTypeProject
+import com.persagy.server.datacenter.models.entities.graphtype.rel.RelZoneSpace
 import com.persagy.server.datacenter.models.entities.objects.Equipment
+import com.persagy.server.datacenter.models.entities.rel.archforarch.RBd2Bd
 import com.persagy.server.mappers.IRelationExcelExportMapper
 import com.persagy.server.mappers.IRelationExcelImportMapper
 import com.persagy.server.services.base.RService
@@ -46,6 +50,7 @@ import com.persagy.service.utils.SSpringContextUtil
 import org.apache.poi.ss.usermodel.CellType
 import org.apache.poi.xssf.usermodel.XSSFSheet
 import org.apache.poi.xssf.usermodel.XSSFWorkbook
+
 import org.slf4j.LoggerFactory
 import org.springframework.web.multipart.MultipartFile
 import java.io.File
@@ -75,6 +80,8 @@ object RelationTypeProjectService : RService<RelationTypeProject>(SMybatisDao(Re
         SSpringContextUtil.getBean(IRelationExcelImportMapper::class.java) as IRelationExcelImportMapper
     }
 
+    private val spaceService = SObjectService(SMybatisDao(RelZoneSpace::class.java))
+
     private val codeColMap by lazy {
         val map = HashMap<String, String>()
         map["对象ID"] = "id"
@@ -408,10 +415,11 @@ object RelationTypeProjectService : RService<RelationTypeProject>(SMybatisDao(Re
      * @param   sheet           Excel Sheet
      * @param   projectId       项目ID
      * @param   relType         关系类型
-     * @param   zoneType        业务空间类型
+     * @param   zone           业务空间类型
      */
-    private fun readExcelRelation(sheet: XSSFSheet, projectId: String, relType: String, zoneType: String? = null) {
+    private fun readExcelRelation(sheet: XSSFSheet, projectId: String, relType: String, zone: String? = null) {
         try {
+            var zoneType = zone
             val len = relType.indexOf("_")
             val cmd = if (len > 0) {
                 relType.substring(0, len)
@@ -430,11 +438,18 @@ object RelationTypeProjectService : RService<RelationTypeProject>(SMybatisDao(Re
                 excelImport.javaClass.getDeclaredMethod("${relType}In", String::class.java, String::class.java, String::class.java, String::class.java)
             } else if (relType == "eq2fl" || relType == "pe2fl") {
                 excelImport.javaClass.getDeclaredMethod("${relType}In", String::class.java, String::class.java, String::class.java, String::class.java)
-            } else if (relType == ""){
-
-            } else   {
+            } else if (relType == "sh2bd_ArchForArch") {
+                excelImport.javaClass.getDeclaredMethod("sh2bdfor", String::class.java, String::class.java, String::class.java, String::class.java)
+            } else if (relType == "sh2fl_ArchForArch"){
+                excelImport.javaClass.getDeclaredMethod("sh2flfor", String::class.java, String::class.java, String::class.java, String::class.java)
+            }else if (relType == "sh2sh_ArchForArch"){
+                excelImport.javaClass.getDeclaredMethod("sh2shfor", String::class.java, String::class.java, String::class.java, String::class.java)
+            }else if (cmd == "sp2sp"||cmd == "bd2sp"||cmd == "fl2sp"||cmd == "sh2sp"
+                    ||cmd == "sp2bd"||cmd == "sp2fl"||cmd == "sp2sh"){
+                 excelImport.javaClass.getDeclaredMethod(cmd, String::class.java, String::class.java, String::class.java, String::class.java, String::class.java)
+            } else {
                 if(zoneType.isNullOrEmpty()) {
-                    excelImport.javaClass.getDeclaredMethod(cmd, String::class.java, String::class.java, String::class.java, String::class.java)
+                     excelImport.javaClass.getDeclaredMethod(cmd, String::class.java, String::class.java, String::class.java, String::class.java)
                 } else {
                     excelImport.javaClass.getDeclaredMethod(cmd, String::class.java, String::class.java, String::class.java, String::class.java, String::class.java)
                 }
@@ -453,6 +468,13 @@ object RelationTypeProjectService : RService<RelationTypeProject>(SMybatisDao(Re
                 if (id1.isEmpty() || id2.isEmpty()) {
                     return
                 }
+                    if (cmd == "sp2sp"||cmd == "bd2sp"){
+                        val space = spaceService.select(SFilter.eq("id", id2)).entity()
+                        zoneType =  space!!.classCode
+                    }else if (cmd == "sp2bd"||cmd == "sp2fl"||cmd == "sp2sh") {
+                        val space = spaceService.select(SFilter.eq("id", id1)).entity()
+                        zoneType =  space!!.classCode
+                    }
                     if(zoneType.isNullOrEmpty()) {
                         importMethod.invoke(excelImport, projectId, type, id1, id2)
                     } else {