Browse Source

***********************WX*****************************
测试建筑 创建修改删除可以同步到物理世界

张维新 4 years ago
parent
commit
37d55d9d84

+ 2 - 0
datacenter/src/main/kotlin/com/persagy/server/jms/TopicReceiver.kt

@@ -26,6 +26,8 @@
 
 package com.persagy.server.jms
 
+import org.springframework.amqp.rabbit.annotation.RabbitHandler
+import org.springframework.amqp.rabbit.annotation.RabbitListener
 import org.springframework.stereotype.Component
 
 /**

+ 1 - 0
datacenter/src/main/kotlin/com/persagy/server/services/objects/BuildingService.kt

@@ -143,6 +143,7 @@ object BuildingService : Service<Building>(SMybatisDao(Building::class.java)) {
             val account = SPageContext.getHeader("account")
             for (building in entityList) {
                 try {
+                    building.projectId = Opt.projectId
                     ObjInfoService.createInfo(building,false,"Bd","Building")
                 } catch (e: Exception) {
                     e.printStackTrace()

+ 0 - 8
datacenter/src/main/resources/application-dev.yml

@@ -53,14 +53,6 @@ spring:
     #虚拟host 可以不设置,使用server默认host
     virtual-host: /test
 
-#  rabbitmq:
-#    host: 192.168.0.190
-#    port: 5672
-#    username: admin
-#    password: admin
-#    #虚拟host 可以不设置,使用server默认host
-#    virtual-host: /
-
 mqtopid: # 消息
   exchange:                           exchange-dmp
   routingKey:                         routingKey-center-adm

+ 21 - 17
datasyn/src/main/kotlin/com/persagy/server/syn/jms/MessageProcessing.kt

@@ -99,24 +99,28 @@ class MessageProcessing {
 //                }
 //            }
 //        }
-        /** 不等于 0 时候执行同步 */
-        if (messageTypeDataCerten!=0){
-            /** 设置为 0  防止重复执行 */
-            messageTypeDataCerten =0
-            /** 查询待处理的消息 */
-            val messageList =
-                synchronousMessageObjService.select(SFilter.not(SFilter.eq("sign", 0))).order("createTime").exec()
-            if (messageList.size>0) {
-                /** 处理消息 */
-                dataCenterSync.dataSync(messageList)
-                /** 开启执行 */
-                messageTypeDataCerten = 1
-                /** 查询是否有待处理的消息 */
-                syncDataCenter()
-            } else {
-                /** 开启下次执行 */
-                messageTypeDataCerten = 1
+        try {
+            /** 不等于 0 时候执行同步 */
+            if (messageTypeDataCerten!=0){
+                /** 设置为 0  防止重复执行 */
+                messageTypeDataCerten =0
+                /** 查询待处理的消息 */
+                val messageList =
+                    synchronousMessageObjService.select(SFilter.not(SFilter.eq("sign", 0))).order("createTime").exec()
+                if (messageList.size>0) {
+                    /** 处理消息 */
+                    dataCenterSync.dataSync(messageList)
+                    /** 开启执行 */
+                    messageTypeDataCerten = 1
+                    /** 查询是否有待处理的消息 */
+                    syncDataCenter()
+                } else {
+                    /** 开启下次执行 */
+                    messageTypeDataCerten = 1
+                }
             }
+        } catch (e: Exception) {
+            e.printStackTrace()
         }
     }
 

+ 10 - 0
datasyn/src/main/kotlin/com/persagy/server/syn/models/api/obj/BuildingApi.kt

@@ -27,12 +27,15 @@
 package com.persagy.server.syn.models.api.obj
 
 import com.alibaba.fastjson.JSONObject
+import com.persagy.base.extensions.toJson
 import com.persagy.base.utils.SHttpUtil
 import com.persagy.server.datacenter.models.entities.objects.Building
 import com.persagy.server.syn.Opts
+import com.persagy.server.syn.controllers.obj.ObjectToFromController
 import com.persagy.server.syn.models.obj.MiddleGroundDataRespose
 import com.persagy.server.syn.models.tools.BuildingUtil
 import com.persagy.service.utils.SSpringContextUtil
+import org.slf4j.LoggerFactory
 
 /**
  * 建筑 api 中台至数据中心
@@ -42,6 +45,10 @@ import com.persagy.service.utils.SSpringContextUtil
  */
 object BuildingApi {
 
+        /** 日志 */
+        private val logger = LoggerFactory.getLogger(BuildingApi::class.java)
+
+
     /** 配置实例 */
     private val opts: Opts by lazy {
         SSpringContextUtil.getBean(Opts::class.java) as Opts
@@ -77,8 +84,11 @@ object BuildingApi {
      */
     fun  createObj(groupCode: String,projectId: String, building:Building): Boolean {
         val url = "${opts.dataPlatform}/rwd/instance/object/create?groupCode=$groupCode&projectId=${projectId}&appId=datacenter"
+        logger.debug("url= ${url} ************************************")
         val buildingTools = BuildingUtil.buildingTools(projectId, building)
+        logger.debug("boby= ${buildingTools.toJson()} ************************************")
         val postObject = SHttpUtil.postObject<MiddleGroundDataRespose>(url, buildingTools)
+        logger.debug("建筑创建结果= ${postObject.toJson()} ************************************")
         if (postObject.result == "success") {
             return true
         }

+ 1 - 0
datasyn/src/main/kotlin/com/persagy/server/syn/models/tools/BuildingUtil.kt

@@ -477,6 +477,7 @@ object BuildingUtil {
         hashMap["id"] = building.id
         hashMap["name"] = building.name
         hashMap["projectId"] = projectId
+        hashMap["classCode"] = "building"
 //        hashMap["objType"] = "building"
 //        hashMap["classCode"] = "building"
         if (!building.localName.isNullOrEmpty()){

+ 9 - 1
datasyn/src/main/kotlin/com/persagy/server/syn/services/jms/DataCenterBuilding.kt

@@ -26,15 +26,18 @@
 
 package com.persagy.server.syn.services.jms
 
+import com.persagy.base.extensions.toJson
 import com.persagy.database.SFilter
 import com.persagy.mybatis.SMybatisDao
 import com.persagy.server.datacenter.models.entities.dictnew.DictProject
 import com.persagy.server.datacenter.models.entities.objects.Building
 import com.persagy.server.datacenter.models.jms.SynchronousMessage
 import com.persagy.server.syn.Configure
+import com.persagy.server.syn.controllers.obj.ObjectToFromController
 import com.persagy.server.syn.models.api.obj.BuildingApi
 import com.persagy.service.SBaseService
 import com.persagy.service.SObjectService
+import org.slf4j.LoggerFactory
 import org.springframework.stereotype.Service
 
 /**
@@ -45,7 +48,10 @@ import org.springframework.stereotype.Service
  */
 @Service
 class DataCenterBuilding {
-
+    companion object {
+        /** 日志 */
+        private val logger = LoggerFactory.getLogger(DataCenterBuilding::class.java)
+    } // Companion object
     /** 建筑服务 */
     private val buildingService = SBaseService(SMybatisDao(Building::class.java))
     /** 缓存对象数据服务 - 数据中心到数据中台  */
@@ -57,6 +63,7 @@ class DataCenterBuilding {
      */
     fun buildingType(message: SynchronousMessage) {
         val dictProject = dictProjectService.select(SFilter.eq("id", message.projectId!!)).entity()
+        logger.debug(" 处理建筑***********************************")
         when (message.type) {
             Configure.CREATE -> {
                 /**查询建筑信息 */
@@ -64,6 +71,7 @@ class DataCenterBuilding {
                     SFilter.eq("projectId", message.projectId!!),
                     SFilter.eq("id", message.objId!!)
                 ).entity()
+                logger.debug(" 处理建筑对象${building?.toJson()}***********************************")
                 /** 建筑不为空 */
                 if (building!=null) {
                     val sign = BuildingApi.createObj(dictProject!!.groupCode!!,message.projectId!!, building)

+ 4 - 3
datasyn/src/main/kotlin/com/persagy/server/syn/task/SchedulerTask.kt

@@ -33,7 +33,7 @@ import org.springframework.scheduling.annotation.Scheduled
 import org.springframework.stereotype.Service
 
 /**
- * 任务
+ * 任务 数据中心到数据中台
  *
  * @author wx  <zhangweixin@sagacloud.com>
  * @date  2020/11/4 11:39
@@ -51,9 +51,10 @@ class SchedulerTask {
     lateinit var messageProcessing: MessageProcessing
 
     //cron表达式:每隔5秒执行一次
-    @Scheduled(cron = "0 */3 * * * ?")
+//    @Scheduled(cron = "0 */3 * * * ?")
+    @Scheduled(cron="0/5 * *  * * ? ")   //每5秒执行一次
     fun scheduled() {
-        logger.info("同步数据中心任务开始")
+        logger.info("同步数据中心任务开始至数据中台")
         messageProcessing.syncDataCenter()
     }
 }

+ 1 - 1
datasyn/src/main/kotlin/com/persagy/server/syn/task/SchedulerTaskTwo.kt

@@ -33,7 +33,7 @@ import org.springframework.scheduling.annotation.Scheduled
 import org.springframework.stereotype.Service
 
 /**
- * 任务
+ * 任务 数据中台到数据中心
  *
  * @author wx  <zhangweixin@sagacloud.com>
  * @date  2020/11/4 11:39

+ 2 - 2
datasyn/src/main/resources/application-dev.yml

@@ -3,10 +3,10 @@ server:
 
 spring:
   datasource:
-#    url:                                jdbc:postgresql://60.205.177.43:5432/datacenterlabsl
+    url:                                jdbc:postgresql://60.205.177.43:5432/datacenterlabsl?serverTimezone=UTC
 #    username:                           postgres
 #    password:                           123qwe!@#
-    url:                                jdbc:postgresql://39.102.40.239:5432/datacenter
+#    url:                                jdbc:postgresql://39.102.40.239:5432/datacenter
     username:                           postgres
 #    password:                           persagy_2020qwe!@#
     password:                           cGVyc2FneV8yMDIwcXdlIUAj