Browse Source

代码同步

caiaf 4 years ago
parent
commit
a93faedb5c

+ 95 - 0
revit-algorithm/src/main/kotlin/cn/sagacloud/server/algorithm/controllers/modelEntity/ProjectController.kt

@@ -0,0 +1,95 @@
+package cn.sagacloud.server.algorithm.controllers.modelEntity
+
+import cn.sagacloud.server.algorithm.models.entities.Project
+import com.sybotan.mybatis.SMybatisDao
+import com.sybotan.service.SObjectService
+import com.sybotan.service.models.requests.SCountRequest
+import com.sybotan.service.models.requests.SCreateRequest
+import com.sybotan.service.models.requests.SQueryRequest
+import com.sybotan.service.models.requests.SUpdateRequest
+import com.sybotan.service.models.responses.SBaseResponse
+import com.sybotan.service.models.responses.SCountResponse
+import com.sybotan.service.models.responses.SCreateResponse
+import com.sybotan.service.models.responses.SQueryResponse
+import io.swagger.annotations.Api
+import io.swagger.annotations.ApiOperation
+import org.slf4j.LoggerFactory
+import org.springframework.web.bind.annotation.PostMapping
+import org.springframework.web.bind.annotation.RequestBody
+import org.springframework.web.bind.annotation.RequestMapping
+import org.springframework.web.bind.annotation.RestController
+
+/**
+ *
+ * @author  Cainga
+ * @date  2021/1/26 16:39
+ */
+@Api(tags = ["项目配置接口"])
+@RestController
+@RequestMapping("/project")
+class ProjectController {
+
+    companion object {
+        // 日志
+        private val logger = LoggerFactory.getLogger(ProjectController::class.java)
+    } // Companion object
+    
+    val projectService = SObjectService(SMybatisDao(Project::class.java))  // 项目
+
+    /**
+     * 创建项目
+     *
+     * @param   entity     项目实体
+     * @return  创建结果应答信息
+     */
+    @ApiOperation(value = "创建项目", notes = "")
+    @PostMapping(value = ["/create"])
+    fun create(@RequestBody entity: SCreateRequest<Project>): SCreateResponse<Project> {
+        return projectService.createList(entity)
+    } // Function create()
+
+    /**
+     * 删除项目
+     *
+     * @param   idList      项目ID列表
+     * @return  删除结果应答信息
+     */
+    @ApiOperation(value = "删除项目", notes = "")
+    @PostMapping(value = ["/delete"])
+    fun delete(@RequestBody idList: ArrayList<Project>): SBaseResponse {
+        return projectService.deleteByKeysList(idList)
+    } // Function delete()
+
+    /**
+     * 更新项目
+     *
+     * @param   request     更新请求
+     * @return  更新结果应答信息
+     */
+    @ApiOperation(value = "更新项目", notes = "")
+    @PostMapping(value = ["/update"])
+    fun update(@RequestBody request: SUpdateRequest<Project>): SBaseResponse {
+        return projectService.updateList(request)
+    } // Function update()
+
+    /**
+     * 查询项目
+     *
+     * @param   request     查询请求
+     * @return  查询结果应答信息
+     */
+    @ApiOperation(value = "查询项目", notes = "")
+    @PostMapping(value = ["/query"])
+    fun query(@RequestBody request: SQueryRequest): SQueryResponse<Project> {
+        return projectService.pageQuery(request)
+    } // Function query()
+
+    /**
+     * 根据条件查询统计数量
+     */
+    @ApiOperation(value = "根据条件查询统计数量", notes = "")
+    @PostMapping(value = ["/count"])
+    fun count(@RequestBody request: SCountRequest): SCountResponse {
+        return projectService.count(request)
+    } // Function count()
+}

+ 6 - 0
revit-algorithm/src/main/kotlin/cn/sagacloud/server/algorithm/models/entities/Project.kt

@@ -1,5 +1,6 @@
 package cn.sagacloud.server.algorithm.models.entities
 
+import cn.sagacloud.server.algorithm.models.modelFile.TaskEntity
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties
 import io.swagger.annotations.ApiModel
 import io.swagger.annotations.ApiModelProperty
@@ -27,4 +28,9 @@ open class Project {
     @Column(name = "name")
     var name: String? = null
 
+    /** 项目配置 */
+    @ApiModelProperty(value = "项目配置")
+    @Column(name = "config_json")
+    var configJson: TaskEntity? = null
+
 }

+ 28 - 0
revit-algorithm/src/main/kotlin/cn/sagacloud/server/algorithm/models/modelFile/TaskEntity.kt

@@ -1,6 +1,7 @@
 package cn.sagacloud.server.algorithm.models.modelFile
 
 import com.alibaba.fastjson.annotation.JSONField
+import com.fasterxml.jackson.annotation.JsonProperty
 import org.springframework.stereotype.Component
 import java.util.*
 
@@ -41,4 +42,31 @@ class TaskEntity {
 
     @JSONField(name = "DownloadFinishTime")
     var downloadFinishTime : Date? = null
+
+    @JSONField(name = "FloorServerUrl")
+    var floorServerUrl:String? = null
+
+    @JSONField(name = "UseablePhaseName")
+    var useablePhaseName:String? = null
+
+    @JSONField(name = "SagaSign")
+    var sagaSign:String? = null
+
+    @JSONField(name = "CheckItems")
+    var checkItems:String? = null
+
+    @JSONField(name = "FacilityParameters")
+    var facilityParameters:String? = null
+
+    @JSONField(name = "SpaceParameters")
+    var spaceParameters:String? = null
+
+    @JSONField(name = "RoomParameters")
+    var roomParameters:String? = null
+
+    @JSONField(name = "MEPCurveParameters")
+    var mEPCurveParameters:String? = null
+
+    @JSONField(name = "EquipComponentCode")
+    var equipComponentCode:String? = null
 }

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

@@ -18,11 +18,22 @@ 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>): Boolean {
+
+        if(flag){
+            return analyze1(equipmentService,baseObj,equipments,bimIdPrefix,equipMap)
+        }else{
+            return analyze2(equipmentService,baseObj,equipments,bimIdPrefix,equipMap,equipCompService,infoPointCompService)
+        }
+    }
+
+
     /**
      * @Description: 第一版设备解析,后面可能会删除
      * 将设备的编码转换为标准编码
      */
-    fun analyze(equipmentService: SObjectService<Equipment>, baseObj: BaseObj<AllComponents>, equipments: ArrayList<Equipment>?, bimIdPrefix: String, equipMap: HashMap<String, BaseComponent>, flag: Boolean, dictCompService: SObjectService<DictComp>, infoPointCompService: SObjectService<InfoPointComp>): Boolean {
+    fun analyze1(equipmentService: SObjectService<Equipment>, baseObj: BaseObj<AllComponents>, equipments: ArrayList<Equipment>?, bimIdPrefix: String, equipMap: HashMap<String, BaseComponent>): Boolean {
         if (equipments == null || equipments.isEmpty())
             return true
         for (obj in equipments) {
@@ -33,17 +44,7 @@ object EquipmentAnalyzer {
             if (!familyName.isNullOrEmpty()) {
                 family = familyName!!.substring(0, familyName.indexOf("-"))
                 //设备编码转换
-                if (flag) {
-                    obj.initFamily = family
-                    val dictComp = dictCompService.select(SFilter.eq("pFamily", family)).entity()
-                    if (dictComp != null) {
-                        obj.family = dictComp.family ?: family
-                    } else {
-                        obj.family = family
-                    }
-                } else {
-                    obj.family = family
-                }
+                obj.family = family
             }
             obj.bimId = "${bimIdPrefix}${obj.sourceId}"
             if (obj.revitId != null && obj.revitId!!.isNotEmpty())
@@ -60,17 +61,11 @@ object EquipmentAnalyzer {
                         obj.propertyId = param.value
                     } else if (param.name.equals("构件分类编码")) {
                         obj.bimTypeID = param.value
-                    } else if (flag && null != family && !param.name.isNullOrEmpty()) {
+                    } else if (null != family && !param.name.isNullOrEmpty()) {
                         //信息点编码转换
-                        val infoPointComp = infoPointCompService.select(SFilter.eq("family", family), SFilter.eq("infoPointCode", param.name!!)).entity()
-                        if (infoPointComp != null) {
-                            infos[infoPointComp.sInfoPointCode!!] = param.value ?: ""
-                        } else {
-                            infos[param.name!!] = param.value ?: ""
-                        }
+                        infos[param.name!!] = param.value ?: ""
                     }
                 }
-
                 obj.infos = infos
             }
         }

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

@@ -186,7 +186,7 @@ open class JSONAnalyzerService {
         }
 
         //修改万达管道名称对应标准管道名称
-        val pdCompService = SObjectService(SMybatisDao(PipeDuctComp::class.java))  // 管道对照
+        val pdCompService = dataService.pdCompService // 管道对照
         val pdComps = pdCompService.selectAll().exec()
         val map = HashMap<String, String>()
         for (pdComp in pdComps) {
@@ -273,11 +273,12 @@ open class JSONAnalyzerService {
 //                dataService.dictCompService,
 //                dataService.infoPointCompService
 //        )
-        result = result and EquipmentAnalyzer.analyze2(
+        result = result and EquipmentAnalyzer.analyze(
                 dataService.equipmentService,
                 baseObj,
                 baseObj.elements!!.equipments,
                 bimIdPrefix, revitIdMap,
+                checkProject(baseObj.mbiName),
                 dataService.equipCompService,
                 dataService.infoPointCompService
         )
@@ -381,7 +382,7 @@ open class JSONAnalyzerService {
         if (projectId.isNullOrEmpty()) {
             return false;
         }
-        return dataService.projectService.select(SFilter.eq("id", projectId)).entity() != null;
+        return dataService.projectService.select(SFilter.eq("id", projectId)).entity() == null;
     }
 
     /**

+ 20 - 0
revit-algorithm/src/main/kotlin/cn/sagacloud/server/algorithm/services/modelCheck/TaskService.kt

@@ -4,12 +4,16 @@ import cn.sagacloud.server.algorithm.backstage.model.CreateRequest
 import cn.sagacloud.server.algorithm.backstage.model.QueryRequest
 import cn.sagacloud.server.algorithm.backstage.request.task.TaskCmd
 import cn.sagacloud.server.algorithm.models.dataCheck.*
+import cn.sagacloud.server.algorithm.models.entities.Project
 import cn.sagacloud.server.algorithm.models.modelFile.*
 import cn.sagacloud.server.algorithm.services.endpoint.ReportService
 import com.alibaba.fastjson.JSON
 import com.alibaba.fastjson.JSONArray
 import com.alibaba.fastjson.JSONObject
 import com.alibaba.fastjson.TypeReference
+import com.sybotan.database.SFilter
+import com.sybotan.mybatis.SMybatisDao
+import com.sybotan.service.SObjectService
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.stereotype.Service
 import java.util.concurrent.CompletableFuture
@@ -31,6 +35,8 @@ class TaskService {
     @Autowired
     private lateinit var reportService: ReportService
 
+    val projectService = SObjectService(SMybatisDao(Project::class.java))  // 项目
+
     /**
      * 查询任务
      */
@@ -127,6 +133,7 @@ class TaskService {
      */
     private fun addTasks(modelFileList: ArrayList<ModelFile>, cmd : TaskCmd) : Map<String, String>{
         val request = CreateRequest<TaskEntity>()
+        var pconfig: Project?
         modelFileList.forEach { modelFile ->
             val task = TaskEntity()
             task.cmd = cmd.name
@@ -135,6 +142,19 @@ class TaskService {
             task.name = modelFile.modelName
             task.param = ""
             task.projectId = modelFile.projectId
+            pconfig = projectService.select(SFilter.eq("id",modelFile.projectId!!)).entity()
+            if(pconfig != null){
+                val configJSON = pconfig!!.configJson!!
+                task.floorServerUrl = configJSON.floorServerUrl
+                task.useablePhaseName = configJSON.useablePhaseName
+                task.sagaSign = configJSON.sagaSign
+                task.checkItems = configJSON.checkItems
+                task.facilityParameters = configJSON.facilityParameters
+                task.spaceParameters = configJSON.spaceParameters
+                task.roomParameters = configJSON.roomParameters
+                task.mEPCurveParameters = configJSON.mEPCurveParameters
+                task.equipComponentCode = configJSON.equipComponentCode
+            }
             if(request.content == null)
                 request.content = ArrayList()
             request.content!!.add(task)

+ 141 - 0
revit-algorithm/src/main/resources-prod/application14.yml

@@ -0,0 +1,141 @@
+###############################################################################################################
+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:                  org.postgresql.Driver
+    url:                                jdbc:postgresql://192.168.64.14:5432/datacenter
+    #    url:                                jdbc:postgresql://192.168.20.250:5432/postgres
+    #    url:                                jdbc:postgresql://47.94.89.44:5432/datacenter
+    username:                           postgres
+    password:                           cGVyc2FneV8yMDIwcXdlIUAj
+
+  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.14: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/
+    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://192.168.64.14:8080/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://192.168.64.14:8080/datacenter/object/
+    # 设备相关接口
+    equipCreate: ${properties.datacenter.url}equip/create
+    equipDelete: ${properties.datacenter.url}equip/delete
+    equipQuery: ${properties.datacenter.url}equip/query
+    equipUpdate: ${properties.datacenter.url}equip/update
+    # 元空间相关接口
+    ispaceCreate: ${properties.datacenter.url}ispace/create
+    ispaceDelete: ${properties.datacenter.url}ispace/delete
+    ispaceQuery: ${properties.datacenter.url}ispace/query
+    ispaceUpdate: ${properties.datacenter.url}ispace/update
+    # 部件相关接口
+    componentCreate: ${properties.datacenter.url}component/create
+    componentDelete: ${properties.datacenter.url}component/delete
+    componentQuery: ${properties.datacenter.url}component/query
+    componentUpdate: ${properties.datacenter.url}component/update
+    # 楼层相关接口
+    floorQuery: ${properties.datacenter.url}floor/query
+    floorUpdate: ${properties.datacenter.url}floor/update
+    # 绑定楼层接口
+    floorBind: ${properties.datacenter.url}update/equip-ispace
+    # 资产接口
+    propertyQuery: ${properties.datacenter.url}property/query
+    propertyUpdate: ${properties.datacenter.url}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.14:8080/message-center/
+    # 发送消息接口
+    createPath: ${properties.message.url}message/create

+ 141 - 0
revit-algorithm/src/main/resources-test/application.yml

@@ -0,0 +1,141 @@
+###############################################################################################################
+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:                  org.postgresql.Driver
+    url:                                jdbc:postgresql://192.168.64.14:5432/datacenter
+    #    url:                                jdbc:postgresql://192.168.20.250:5432/postgres
+    #    url:                                jdbc:postgresql://47.94.89.44:5432/datacenter
+    username:                           postgres
+    password:                           cGVyc2FneV8yMDIwcXdlIUAj
+
+  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.14: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/
+    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://60.205.177.43:8080/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://192.168.64.14:8080/datacenter/object/
+    # 设备相关接口
+    equipCreate: ${properties.datacenter.url}equip/create
+    equipDelete: ${properties.datacenter.url}equip/delete
+    equipQuery: ${properties.datacenter.url}equip/query
+    equipUpdate: ${properties.datacenter.url}equip/update
+    # 元空间相关接口
+    ispaceCreate: ${properties.datacenter.url}ispace/create
+    ispaceDelete: ${properties.datacenter.url}ispace/delete
+    ispaceQuery: ${properties.datacenter.url}ispace/query
+    ispaceUpdate: ${properties.datacenter.url}ispace/update
+    # 部件相关接口
+    componentCreate: ${properties.datacenter.url}component/create
+    componentDelete: ${properties.datacenter.url}component/delete
+    componentQuery: ${properties.datacenter.url}component/query
+    componentUpdate: ${properties.datacenter.url}component/update
+    # 楼层相关接口
+    floorQuery: ${properties.datacenter.url}floor/query
+    floorUpdate: ${properties.datacenter.url}floor/update
+    # 绑定楼层接口
+    floorBind: ${properties.datacenter.url}update/equip-ispace
+    # 资产接口
+    propertyQuery: ${properties.datacenter.url}property/query
+    propertyUpdate: ${properties.datacenter.url}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.14:8080/message-center/
+    # 发送消息接口
+    createPath: ${properties.message.url}message/create

+ 68 - 0
revit-algorithm/src/main/resources-test/logback-spring.xml

@@ -0,0 +1,68 @@
+<!--
+  ~ *********************************************************************************************************************
+  ~
+  ~                      :*$@@%$*:                         ;:                ;;    ;;
+  ~                    :@@%!  :!@@%:                       %!             ;%%@@%$ =@@@@@@@%;     @%@@@%%%%@@@@@
+  ~                   :@%;       :$=                       %%$$$%$$         ;$$  ;$@=   !@$
+  ~                   =@!                                  %!              @ $=;%   !@@@%:      !$$$$$$$$$$$$$$=
+  ~                   =@*                                  %!              @ $= % %@=   =%@!      %=
+  ~              *$%%! @@=        ;=$%%%$*:                %!              @ $= % =%%%%%%@$      *%:         =%
+  ~            %@@!:    !@@@%=$@@@@%!  :*@@$:              %!              @ $= % $*     ;@      @*          :%*
+  ~          ;@@!          ;!!!;:         ;@%:      =======@%========*     @ $$ % $%*****$@     :@$=*********=@$
+  ~          $@*   ;@@@%=!:                *@*
+  ~          =@$    ;;;!=%@@@@=!           =@!
+  ~           %@$:      =@%: :*@@@*       %@=                    Copyright (c) 2016-2019.  北京上格云技术有限公司
+  ~            ;%@@$=$@@%*       *@@@$=%@@%;
+  ~               ::;::             ::;::                                              All rights reserved.
+  ~
+  ~ *********************************************************************************************************************
+  -->
+
+<configuration scan="true" debug="false">
+    <contextName>revit-algorithm</contextName>
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{10}) - %cyan(%msg%n)</pattern>
+        </encoder>
+    </appender>
+
+    <!-- 定义cn.sagacloud包的日志级别 -->
+    <logger name="cn.sagacloud" level="DEBUG" additivity="false">
+        <appender-ref ref="STDOUT"/>
+
+    </logger>
+
+    <!-- 定义com.sybotan包的日志级别 -->
+    <logger name="com.sybotan" level="DEBUG" additivity="false">
+        <appender-ref ref="STDOUT"/>
+    </logger>
+
+    <!-- 定义com.sybotan包的日志级别 -->
+    <logger name="org.apache.activemq" level="WARN" additivity="false">
+        <appender-ref ref="STDOUT"/>
+    </logger>
+
+    <!-- 定义日志级别 -->
+    <root level="ERROR">
+        <appender-ref ref="STDOUT" />
+    </root>
+
+
+    <appender name="FILE"  class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>/mnt/harddisk/saga/apps/tomcat-8080/saga-log/revit-algorithm/runtime.log.%d{yyyy-MM-dd}.log</FileNamePattern>
+<!--            <FileNamePattern>d:/delete/revit-algorithm/runtime.log.%d{yyyy-MM-dd}.log</FileNamePattern>-->
+            <!--日志文件保留天数-->
+            <MaxHistory>50</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <!--日志文件最大的大小-->
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <MaxFileSize>100MB</MaxFileSize>
+        </triggeringPolicy>
+    </appender>
+</configuration>

+ 36 - 0
scheduler/src/main/kotlin/cn/sagacloud/server/scheduler/models/TaskEntity.kt

@@ -108,6 +108,42 @@ open class TaskEntity: SBaseEntity() {
     @JsonProperty(value = "DownloadFinishTime")
     @JSONField(name = "DownloadFinishTime")
     var downloadFinishTime: Date? = null
+
+    @JsonProperty(value = "FloorServerUrl")
+    @JSONField(name = "FloorServerUrl")
+    var floorServerUrl:String? = null
+
+    @JsonProperty(value = "UseablePhaseName")
+    @JSONField(name = "UseablePhaseName")
+    var useablePhaseName:String? = null
+
+    @JsonProperty(value = "SagaSign")
+    @JSONField(name = "SagaSign")
+    var sagaSign:String? = null
+
+    @JsonProperty(value = "CheckItems")
+    @JSONField(name = "CheckItems")
+    var checkItems:String? = null
+
+    @JsonProperty(value = "FacilityParameters")
+    @JSONField(name = "FacilityParameters")
+    var facilityParameters:String? = null
+
+    @JsonProperty(value = "SpaceParameters")
+    @JSONField(name = "SpaceParameters")
+    var spaceParameters:String? = null
+
+    @JsonProperty(value = "RoomParameters")
+    @JSONField(name = "RoomParameters")
+    var roomParameters:String? = null
+
+    @JsonProperty(value = "MEPCurveParameters")
+    @JSONField(name = "MEPCurveParameters")
+    var mEPCurveParameters:String? = null
+
+    @JsonProperty(value = "EquipComponentCode")
+    @JSONField(name = "EquipComponentCode")
+    var equipComponentCode:String? = null
 } // Class AppendixType