Browse Source

Merge remote-tracking branch 'origin/develop' into develop

linhuili 3 years ago
parent
commit
82e3a6ccc0

+ 5 - 4
revit-algorithm/src/main/kotlin/cn/sagacloud/server/algorithm/controllers/TestModelController.kt

@@ -73,11 +73,11 @@ class TestModelController {
 //            val floor = floorModelArr[0]
 //            val folderFloorName = CommonService.getReportPrefix(floor)
 //            val fileInputStream = FileInputStream(File("D:\\testModel\\b52612021546a9431eb1a38ca02d3b1b.rvt_20210917181820.json"))
-            var file = FileInputStream("D:\\testModel\\b91a63278a322ca15f138d25133c9b94.rvt_20211018100336.json")
-            var byteArr = file.readBytes()
+            //var file = FileInputStream("D:\\testModel\\b91a63278a322ca15f138d25133c9b94.rvt_20211018100336.json")
+            //var byteArr = file.readBytes()
 
-            val str = String(byteArr, charset("utf-8"))
-            val objData =  handleSingleJSON(JSONObject.parseObject(str)) //JSONObject(str)
+            //val str = String(byteArr, charset("utf-8"))
+            //val objData =  handleSingleJSON(JSONObject.parseObject(str)) //JSONObject(str)
 
 //            logger.debug("model = ${obj.toJson()}")
 
@@ -85,6 +85,7 @@ class TestModelController {
               // 导入数据进数据库
 //            val bimIdPrefix = CommonService.generateBIMIDPrefix(it.projectId!!, floor.folderId!!, floor.floorName!!, true)
             try {
+               val objData = monitorService.analyzeJsonz(it.id!!)
                persistenceData(it.id!!, objData!!, "123456")
             } catch (e: Exception) {
                 e.printStackTrace()

+ 1 - 1
revit-algorithm/src/main/kotlin/cn/sagacloud/server/algorithm/models/jsonAnalyzer/Parameter.kt

@@ -18,5 +18,5 @@ class Parameter {
 
     @JSONField(name = "Value")
     @JsonProperty("Value")
-    val value : String? = null
+    var value : String? = null
 }

+ 9 - 1
revit-algorithm/src/main/kotlin/cn/sagacloud/server/algorithm/services/json/EquipmentAnalyzer.kt

@@ -8,6 +8,8 @@ import com.sybotan.database.SFilter
 import com.sybotan.service.SObjectService
 import com.sybotan.service.models.enums.SResponseType
 import com.sybotan.service.models.requests.SCreateRequest
+import org.apache.commons.lang3.StringUtils
+import org.apache.commons.text.StringEscapeUtils
 import java.util.*
 import kotlin.collections.ArrayList
 import kotlin.collections.HashMap
@@ -20,7 +22,12 @@ import kotlin.collections.HashMap
 object EquipmentAnalyzer {
 
 
-    fun analyze(equipmentService: SObjectService<Equipment>, baseObj: BaseObj<AllComponents>, equipments: ArrayList<Equipment>?, bimIdPrefix: String, equipMap: HashMap<String, BaseComponent>, flag: Boolean, equipCompService: SObjectService<EquipComp>, infoPointCompService: SObjectService<InfoPointComp>,unrecognizedEquipService: SObjectService<UnrecognizedEquip>): Boolean {
+    fun analyze(equipmentService: SObjectService<Equipment>, baseObj: BaseObj<AllComponents>,
+                equipments: ArrayList<Equipment>?, bimIdPrefix: String,
+                equipMap: HashMap<String, BaseComponent>,
+                flag: Boolean, equipCompService: SObjectService<EquipComp>,
+                infoPointCompService: SObjectService<InfoPointComp>,
+                unrecognizedEquipService: SObjectService<UnrecognizedEquip>): Boolean {
 
         if(!flag){
             return analyze1(equipmentService,baseObj,equipments,bimIdPrefix,equipMap)
@@ -60,6 +67,7 @@ object EquipmentAnalyzer {
                 var infos = HashMap<String, String>()
 
                 for (param in obj.parameters!!) {
+                    param.value = StringUtils.remove(param.value,"'")
                     if (param.name.equals("设备本地名称")) {
                         obj.localName = param.value
                     } else if (param.name.equals("设备本地编码")) {

+ 17 - 11
revit-algorithm/src/main/kotlin/cn/sagacloud/server/algorithm/services/json/JSONAnalyzerService.kt

@@ -29,14 +29,17 @@ import cn.sagacloud.server.algorithm.services.CommonService
 import cn.sagacloud.server.algorithm.services.endpoint.UploadService
 import com.alibaba.fastjson.JSONObject
 import com.alibaba.fastjson.util.ParameterizedTypeImpl
+import com.fasterxml.jackson.core.JsonParser
 import com.fasterxml.jackson.databind.DeserializationFeature
 import com.fasterxml.jackson.databind.ObjectMapper
 import com.persagy.revit.services.json.EquipmentAnalyzer
 import com.sybotan.database.SFilter
-import com.sybotan.mybatis.SMybatisDao
 import com.sybotan.service.SObjectService
 import com.sybotan.service.models.enums.SResponseType
 import com.sybotan.service.models.responses.SBaseResponse
+import org.apache.commons.lang3.ObjectUtils
+import org.apache.commons.lang3.StringUtils
+import org.apache.commons.text.StringEscapeUtils
 import org.springframework.stereotype.Component
 import java.io.InputStream
 import java.lang.reflect.Type
@@ -92,7 +95,10 @@ open class JSONAnalyzerService {
     fun handleSingleJSON(json: JSONObject): BaseObj<AllComponents>? {
         val mapper = ObjectMapper()
         mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
-        val baseObj = mapper.readValue<BaseObj<AllComponents>>(json.toString(), mapper.typeFactory.constructParametricType(BaseObj::class.java, AllComponents::class.java))
+        // mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES,true)
+        //val baseObj = mapper.readValue<BaseObj<AllComponents>>(json.toString(), mapper.typeFactory.constructParametricType(BaseObj::class.java, AllComponents::class.java))
+        val baseObj = mapper.readValue<BaseObj<AllComponents>>(mapper.writeValueAsString(json),
+                mapper.typeFactory.constructParametricType(BaseObj::class.java, AllComponents::class.java))
         return baseObj
     }
 
@@ -295,15 +301,15 @@ open class JSONAnalyzerService {
             return "处理joinObject异常"
         }
         // 处理equipment
-//        result = result and EquipmentAnalyzer.analyze(
-//                dataService.equipmentService,
-//                baseObj,
-//                baseObj.elements!!.equipments,
-//                bimIdPrefix, revitIdMap,
-//                checkProject(baseObj.mbiName),
-//                dataService.dictCompService,
-//                dataService.infoPointCompService
-//        )
+////        result = result and EquipmentAnalyzer.analyze(
+////                dataService.equipmentService,
+////                baseObj,
+////                baseObj.elements!!.equipments,
+////                bimIdPrefix, revitIdMap,
+////                checkProject(baseObj.mbiName),
+////                dataService.dictCompService,
+////                dataService.infoPointCompService
+////        )
         result = result and EquipmentAnalyzer.analyze(
                 dataService.equipmentService,
                 baseObj,

+ 1 - 1
revit-algorithm/src/main/kotlin/cn/sagacloud/server/algorithm/services/json/RoomAnalyzer.kt

@@ -32,7 +32,7 @@ object RoomAnalyzer {
                         }else
                             obj.localName = param.value
                     }else if(param.name.equals("编号") && param.value != null){
-                        code = param.value
+                        code = param.value!!
                     }else if(param.name.equals("2.空间标准类型编码")){
                         obj.wDRoomFuncID = param.value
                     }else if(param.name.equals("3.空间标准类型")){

+ 1 - 1
revit-algorithm/src/main/kotlin/cn/sagacloud/server/algorithm/services/json/Space2Analyzer.kt

@@ -36,7 +36,7 @@ object Space2Analyzer {
                         }else
                             obj.localName = param.value
                     }else if(param.name.equals("编号") && param.value != null){
-                        code = param.value
+                        code = param.value!!
                     }else if(param.name.equals("2.空间标准类型编码")){
                         obj.wDRoomFuncID = param.value
                     }else if(param.name.equals("3.空间标准类型")){

+ 1 - 1
revit-algorithm/src/main/kotlin/cn/sagacloud/server/algorithm/services/json/SpaceAnalyzer.kt

@@ -36,7 +36,7 @@ object SpaceAnalyzer {
                         }else
                             obj.localName = param.value
                     }else if(param.name.equals("编号") && param.value != null){
-                        code = param.value
+                        code = param.value!!
                     }else if(param.name.equals("2.空间标准类型编码")){
                         obj.wDRoomFuncID = param.value
                     }else if(param.name.equals("3.空间标准类型")){

+ 149 - 0
revit-algorithm/src/main/resources-dev/bak-application.yml

@@ -0,0 +1,149 @@
+###############################################################################################################
+server:
+  port: 8080
+  tomcat:
+    basedir:                            /mnt/harddisk/saga/tomcatTemp
+
+spring:
+  application:
+    name:                               revit-algorithm
+  mvc:
+    favicon:
+      enabled:                          true
+
+  jmx:
+    default-domain:                     revit-algorithm
+
+  datasource:
+    name:                               revit-algorithm
+    type:                               com.alibaba.druid.pool.DruidDataSource
+    driver-class-name:                  com.mysql.cj.jdbc.Driver
+    url:                                jdbc:mysql://rm-2ze20ntn5y9ljsx147o.mysql.rds.aliyuncs.com:3306/revit?allowMultiQueries=true&serverTimezone=UTC&useUnicode=true&useSSL=false&characterEncoding=UTF-8
+    username:                           root
+    password:                           zVmW58LaAtjIKbb
+
+  second_datasource:
+    name:                               revit-algorithm
+    type:                               com.alibaba.druid.pool.DruidDataSource
+    driver-class-name:                  com.mysql.cj.jdbc.Driver
+    url:                                jdbc:mysql://rm-2ze20ntn5y9ljsx147o.mysql.rds.aliyuncs.com:3306/revit_calc?allowMultiQueries=true&serverTimezone=UTC&useUnicode=true&useSSL=false&characterEncoding=UTF-8
+    username:                           root
+    password:                           zVmW58LaAtjIKbb
+
+  jackson:
+    date-format:                        yyyy-MM-dd HH:mm:ss
+    time-zone:                          Asia/Shanghai
+    default-property-inclusion:         non_null
+    # 首字母大写
+    property-naming-strategy:           com.fasterxml.jackson.databind.PropertyNamingStrategy.PascalCaseStrategy
+    # 以下划线分隔全小写的单词
+    #property-naming-strategy:           com.fasterxml.jackson.databind.PropertyNamingStrategy.LowerCaseWithUnderscoresStrategy
+    mapper:
+      # 属性按字母顺序输出
+      sort_properties_alphabetically:   true
+
+  jms:
+    pub-sub-domain: true
+    template:
+      delivery-mode: non_persistent
+      receive-timeout: 1000
+      time-to-live: 36000
+      qos-enabled: true
+      default-destination: model.manage
+  servlet:
+    multipart:
+      max-request-size:                90MB        # 限制上传的多个文件的总大小
+      max-file-size:                   90MB        # 限制单个文件的最大值
+  activemq:
+    broker-url: failover:(tcp://192.168.64.15:61616)
+    in-memory: true
+    pool:
+      enabled: false
+    user: admin
+    password: admin
+    non-blocking-redelivery: true
+mybatis:
+  typeAliasesPackage:                  cn.sagacloud.server.algorithm.models
+
+#logging:
+#  pattern:
+#    console: "%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{10}) - %cyan(%msg%n)"
+#  level:
+#    - ".=info"
+#    - "cn.sagacloud=debug"
+#    - "org.springframework=info"
+#    - "com.sybotan=debug"
+#    - "org.apache.activemq=debug"
+
+
+properties:
+  #文件服务器配置
+  fileService:
+    # 基本属性
+    #url:                               http://api.sagacloud.cn/dp-auxiliary/image-service/ # http://47.93.33.207:28888/image-service/ #http://adm.sagacloud.cn/image-service/
+    url:                               http://39.105.112.36/image-service/
+    systemId:                          revit
+    secret:                            63afbef6906c342b
+    dir:                               model
+    baseGraph:                         base
+    report:                            report
+    export:                            export
+    # 配置文件引用的属性
+    suffixWithSecret:                  ?systemId=${properties.fileService.systemId}&secret=${properties.fileService.secret}
+    suffix:                            ?systemId=${properties.fileService.systemId}
+    # 程序中会用到的
+    uploadPath:                        ${properties.fileService.url}common/file_upload${properties.fileService.suffixWithSecret}&overwrite=true&key=${properties.fileService.dir}/
+    baseGraphPath:                     ${properties.fileService.url}common/file_upload${properties.fileService.suffixWithSecret}&overwrite=true&key=${properties.fileService.baseGraph}/
+    reportPath:                        ${properties.fileService.url}common/file_upload${properties.fileService.suffixWithSecret}&overwrite=true&key=${properties.fileService.report}/
+    exportPath:                        ${properties.fileService.url}common/file_upload${properties.fileService.suffixWithSecret}&overwrite=true&key=${properties.fileService.export}/
+    downloadPath:                      ${properties.fileService.url}common/file_get${properties.fileService.suffix}&key=${properties.fileService.dir}/
+    reportDownloadPath:                ${properties.fileService.url}common/file_get${properties.fileService.suffix}&key=${properties.fileService.report}/
+    exportDownloadPath:                ${properties.fileService.url}common/file_get${properties.fileService.suffix}&key=${properties.fileService.export}/
+    renamePath:                        ${properties.fileService.url}common/file_key_change${properties.fileService.suffixWithSecret}
+    deletePath:                        ${properties.fileService.url}common/files_delete${properties.fileService.suffixWithSecret}
+    registerMultipartUpload:           ${properties.fileService.url}common/register_multipart_upload${properties.fileService.suffixWithSecret}&overwrite=true&key=${properties.fileService.dir}/
+    mergeMultipartUpload:              ${properties.fileService.url}common/merge_multipart${properties.fileService.suffixWithSecret}&uploadId=
+
+  scheduler:
+    url:                               http://39.105.112.36/scheduler/
+    createTask:                        ${properties.scheduler.url}task/create
+    queryTask:                         ${properties.scheduler.url}task/query
+    queryTaskResult:                   ${properties.scheduler.url}result/query
+    createDownload:                    ${properties.scheduler.url}download/create
+
+
+  datacenter:
+    url:                               http://39.105.112.36/datacenter/
+    # 设备相关接口
+    equipCreate: ${properties.datacenter.url}object/equip/create
+    equipDelete: ${properties.datacenter.url}object/equip/delete
+    equipQuery: ${properties.datacenter.url}object/equip/query
+    equipUpdate: ${properties.datacenter.url}object/equip/update
+    # 元空间相关接口
+    ispaceCreate: ${properties.datacenter.url}object/ispace/create
+    ispaceDelete: ${properties.datacenter.url}object/ispace/delete
+    ispaceQuery: ${properties.datacenter.url}object/ispace/query
+    ispaceUpdate: ${properties.datacenter.url}object/ispace/update
+    # 部件相关接口
+    componentCreate: ${properties.datacenter.url}object/component/create
+    componentDelete: ${properties.datacenter.url}object/component/delete
+    componentQuery: ${properties.datacenter.url}object/component/query
+    componentUpdate: ${properties.datacenter.url}object/component/update
+    # 楼层相关接口
+    floorQuery: ${properties.datacenter.url}object/floor/query
+    floorUpdate: ${properties.datacenter.url}object/floor/update
+    floorCreate: ${properties.datacenter.url}object/floor/create
+    # 绑定楼层接口
+    floorBind: ${properties.datacenter.url}rel/update/equip-ispace
+#    # 资产接口
+#    propertyQuery: ${properties.datacenter.url}object/property/query
+#    propertyUpdate: ${properties.datacenter.url}object/property/update
+    # 同步构件接口
+    windowCreate: ${properties.datacenter.url}window/create_ignore
+    vwallCreate: ${properties.datacenter.url}vwall/create_ignore
+    doorCreate: ${properties.datacenter.url}door/create_ignore
+
+  #message:
+    #url: http://192.168.64.17:28888/message-center/
+    # 发送消息接口
+    #createPath: ${properties.message.url}message/create