|
@@ -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报告
|