Kaynağa Gözat

调整配置和测试代码,为了拉取代码而提交

lijie 3 yıl önce
ebeveyn
işleme
04d15daaeb

+ 6 - 2
.idea/gradle.xml

@@ -4,9 +4,11 @@
   <component name="GradleSettings">
     <option name="linkedExternalProjectsSettings">
       <GradleProjectSettings>
-        <option name="distributionType" value="DEFAULT_WRAPPED" />
+        <option name="delegatedBuild" value="false" />
+        <option name="testRunner" value="PLATFORM" />
+        <option name="distributionType" value="WRAPPED" />
         <option name="externalProjectPath" value="$PROJECT_DIR$" />
-        <option name="gradleJvm" value="#JAVA_HOME" />
+        <option name="gradleJvm" value="1.8" />
         <option name="modules">
           <set>
             <option value="$PROJECT_DIR$" />
@@ -20,6 +22,8 @@
             <option value="$PROJECT_DIR$/scheduler" />
           </set>
         </option>
+        <option name="useAutoImport" value="true" />
+        <option name="useQualifiedModuleNames" value="true" />
       </GradleProjectSettings>
     </option>
   </component>

+ 72 - 6
revit-algorithm/src/main/kotlin/cn/sagacloud/server/algorithm/controllers/TestModelController.kt

@@ -2,6 +2,8 @@ package cn.sagacloud.server.algorithm.controllers
 
 import cn.sagacloud.server.algorithm.backstage.state.ExportPassedState_3
 import cn.sagacloud.server.algorithm.backstage.sync.SyncFloor
+import cn.sagacloud.server.algorithm.backstage.sync.SyncUtil
+import cn.sagacloud.server.algorithm.models.config.MyProperties
 import cn.sagacloud.server.algorithm.models.jsonAnalyzer.AllComponents
 import cn.sagacloud.server.algorithm.models.jsonAnalyzer.BaseObj
 import cn.sagacloud.server.algorithm.models.message.MessageType
@@ -10,8 +12,11 @@ import cn.sagacloud.server.algorithm.models.monitor.MntSaveData
 import cn.sagacloud.server.algorithm.models.monitor.ModelMonitor
 import cn.sagacloud.server.algorithm.services.BaseDataService
 import cn.sagacloud.server.algorithm.services.CommonService
+import cn.sagacloud.server.algorithm.services.endpoint.ModelFileService
 import cn.sagacloud.server.algorithm.services.excel.ExcelService
 import cn.sagacloud.server.algorithm.services.json.JSONAnalyzerService
+import cn.sagacloud.server.algorithm.services.message.MessageService
+import cn.sagacloud.server.algorithm.services.modelCheck.ModelCheckService
 import cn.sagacloud.server.algorithm.services.monitor.ModelMonitorService
 import com.alibaba.fastjson.JSONObject
 import com.fasterxml.jackson.databind.DeserializationFeature
@@ -50,11 +55,30 @@ class TestModelController {
     } // Companion object
 
     @Autowired
+    lateinit var myProperties: MyProperties
+
+    @Autowired
+    lateinit var syncUtil : SyncUtil
+
+    @Autowired
+    lateinit var modelFileService: ModelFileService
+
+    @Autowired
+    lateinit var messageService: MessageService
+
+    @Autowired
+    lateinit var modelCheckService: ModelCheckService
+
+    @Autowired
     lateinit var jsonAnalyzerService: JSONAnalyzerService
-    val dataService = BaseDataService
+
     @Autowired
     lateinit var monitorService: ModelMonitorService
 
+    val dataService = BaseDataService
+
+    var modelList: ArrayList<ModelFile>? = null
+
     /**
      *
      */
@@ -62,9 +86,9 @@ class TestModelController {
     @PostMapping(value = ["/test/data"])
     fun testModelData(floorModelId: String?, id: String?){
         try {
-            val it = ModelFile()
-            it.floorModelId = floorModelId
-            it.id = id
+            val modelFiles = dataService.modelFileService.select(SFilter.eq("id", id!!),
+                    SFilter.eq("removed", false)).exec()
+            val it = modelFiles[0]
 //            if (it.floorModelId == null || it.id == null)
 //                return@forEach
 //            val floorModelArr = dataService.floorModelService.select(SFilter.eq("id", it.floorModelId!!)).exec()
@@ -85,9 +109,51 @@ 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")
+                if (it.floorModelId == null || it.id == null)
+                    return
+                val floorModelArr = dataService.floorModelService.select(SFilter.eq("id", it.floorModelId!!)).exec()
+                if (floorModelArr.size != 1)
+                    return
+                val floor = floorModelArr[0]
+                val folderFloorName = CommonService.getReportPrefix(floor)
+                // 获取模型导出的zip文件
+                val objData = monitorService.analyzeJsonz(it.id!!)
+                // 导入数据进数据库
+                val bimIdPrefix = CommonService.generateBIMIDPrefix(it.projectId!!, floor.folderId!!, floor.floorName!!, true)
+                monitorService.persistenceData(it.id!!, objData!!, bimIdPrefix)
+                // excel报告
+                val excelService = SSpringContextUtil.getBean(ExcelService::class.java) as ExcelService
+                excelService.readBlockingExcel2007()
+                // 多楼层的模型检查
+                var isPassed = monitorService.doMultiFloorCheck(it, excelService, floor.projectId!!, floor.folderId!!, floor.floorName)
+                // 如果标高和轴网检查没通过, 则删除所有数据, 并回退到上个版本
+                /************************************************** 轴网计算 处理标志 *********************************************************************/
+                if(!isPassed){
+                    modelFileService.removeSingle(it, myProperties, isForce = true, isMarkDelete = false)
+                    //发送标高和轴网检查没通过的消息
+                    val message = messageService.buildMultiModelCheckErrorMessage(floor.projectId!!, it.userId?: "",
+                            "${folderFloorName.first}的${folderFloorName.second}未通过模型检查,请修改后重新上传", excelService.getDownloadUrl(it.id!!), folderFloorName)
+                    messageService.sendMessage(message)
+                    return
+                }
+
+                val syncFloor = SSpringContextUtil.getBean(SyncFloor::class.java) as SyncFloor
+                syncFloor.init(floor).prepareDataCenterData()
+                // 开始同步设备, 部件, 元空间
+                syncUtil.syncDataWithBindingFloor(syncFloor, it, floor)
+                // 转状态到4
+                it.status = 4
+                dataService.modelFileService.update(it, arrayListOf("status"))
+                val message = messageService.buildMessageEntityWithoutLink("${folderFloorName.first}的${folderFloorName.second}模型上传成功", MessageType.Success, it.projectId, arrayListOf(it.userId?:""), "")
+                messageService.sendMessage(message)
             } catch (e: Exception) {
+                // 转状态到31
+                try {
+                    it.status = 31
+                    it.syncRetryDate = Date()
+                    it.syncErrorMsg = e.message + CommonService.getStackTrace(e)
+                    dataService.modelFileService.update(it, arrayListOf("status", "syncRetryDate", "syncErrorMsg"))
+                }catch (e : Exception){}
                 e.printStackTrace()
             }
 //            // excel报告

+ 2 - 2
revit-algorithm/src/main/resources-dev/application.yml

@@ -82,8 +82,8 @@ properties:
     # 基本属性
     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://image-service:8080/
-    systemId:                          dataPlatform
-    secret:                            9e0891a7a8c8e885
+    systemId:                          revit
+    secret:                            63afbef6906c342b
     dir:                               model
     baseGraph:                         base
     report:                            report