|
@@ -1,17 +1,19 @@
|
|
package cn.sagacloud.server.algorithm.controllers
|
|
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.SyncFloor
|
|
import cn.sagacloud.server.algorithm.backstage.sync.SyncUtil
|
|
import cn.sagacloud.server.algorithm.backstage.sync.SyncUtil
|
|
|
|
+import cn.sagacloud.server.algorithm.common.utils.SpaceAffectUtil
|
|
import cn.sagacloud.server.algorithm.models.config.MyProperties
|
|
import cn.sagacloud.server.algorithm.models.config.MyProperties
|
|
import cn.sagacloud.server.algorithm.models.jsonAnalyzer.AllComponents
|
|
import cn.sagacloud.server.algorithm.models.jsonAnalyzer.AllComponents
|
|
import cn.sagacloud.server.algorithm.models.jsonAnalyzer.BaseObj
|
|
import cn.sagacloud.server.algorithm.models.jsonAnalyzer.BaseObj
|
|
import cn.sagacloud.server.algorithm.models.message.MessageType
|
|
import cn.sagacloud.server.algorithm.models.message.MessageType
|
|
import cn.sagacloud.server.algorithm.models.modelFile.ModelFile
|
|
import cn.sagacloud.server.algorithm.models.modelFile.ModelFile
|
|
|
|
+import cn.sagacloud.server.algorithm.models.modelFile.StatusInfo
|
|
import cn.sagacloud.server.algorithm.models.monitor.MntSaveData
|
|
import cn.sagacloud.server.algorithm.models.monitor.MntSaveData
|
|
import cn.sagacloud.server.algorithm.models.monitor.ModelMonitor
|
|
import cn.sagacloud.server.algorithm.models.monitor.ModelMonitor
|
|
import cn.sagacloud.server.algorithm.services.BaseDataService
|
|
import cn.sagacloud.server.algorithm.services.BaseDataService
|
|
import cn.sagacloud.server.algorithm.services.CommonService
|
|
import cn.sagacloud.server.algorithm.services.CommonService
|
|
|
|
+import cn.sagacloud.server.algorithm.services.datacenter.DataCenterService
|
|
import cn.sagacloud.server.algorithm.services.endpoint.ModelFileService
|
|
import cn.sagacloud.server.algorithm.services.endpoint.ModelFileService
|
|
import cn.sagacloud.server.algorithm.services.excel.ExcelService
|
|
import cn.sagacloud.server.algorithm.services.excel.ExcelService
|
|
import cn.sagacloud.server.algorithm.services.json.JSONAnalyzerService
|
|
import cn.sagacloud.server.algorithm.services.json.JSONAnalyzerService
|
|
@@ -21,10 +23,10 @@ import cn.sagacloud.server.algorithm.services.monitor.ModelMonitorService
|
|
import com.alibaba.fastjson.JSONObject
|
|
import com.alibaba.fastjson.JSONObject
|
|
import com.fasterxml.jackson.databind.DeserializationFeature
|
|
import com.fasterxml.jackson.databind.DeserializationFeature
|
|
import com.fasterxml.jackson.databind.ObjectMapper
|
|
import com.fasterxml.jackson.databind.ObjectMapper
|
|
-import com.sybotan.base.extensions.toJson
|
|
|
|
import com.sybotan.database.SFilter
|
|
import com.sybotan.database.SFilter
|
|
|
|
+import com.sybotan.database.enums.SDirection
|
|
import com.sybotan.service.models.enums.SResponseType
|
|
import com.sybotan.service.models.enums.SResponseType
|
|
-import com.sybotan.service.utils.SJsonUtil
|
|
|
|
|
|
+import com.sybotan.service.models.requests.SUpdateRequest
|
|
import com.sybotan.service.utils.SSpringContextUtil
|
|
import com.sybotan.service.utils.SSpringContextUtil
|
|
import io.swagger.annotations.Api
|
|
import io.swagger.annotations.Api
|
|
import io.swagger.annotations.ApiOperation
|
|
import io.swagger.annotations.ApiOperation
|
|
@@ -33,9 +35,6 @@ import org.springframework.beans.factory.annotation.Autowired
|
|
import org.springframework.web.bind.annotation.PostMapping
|
|
import org.springframework.web.bind.annotation.PostMapping
|
|
import org.springframework.web.bind.annotation.RequestMapping
|
|
import org.springframework.web.bind.annotation.RequestMapping
|
|
import org.springframework.web.bind.annotation.RestController
|
|
import org.springframework.web.bind.annotation.RestController
|
|
-import java.io.File
|
|
|
|
-import java.io.FileInputStream
|
|
|
|
-import java.io.FileReader
|
|
|
|
import java.util.*
|
|
import java.util.*
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -75,6 +74,12 @@ class TestModelController {
|
|
@Autowired
|
|
@Autowired
|
|
lateinit var monitorService: ModelMonitorService
|
|
lateinit var monitorService: ModelMonitorService
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ lateinit var dataCenterService: DataCenterService
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ lateinit var spaceAffectUtil: SpaceAffectUtil
|
|
|
|
+
|
|
val dataService = BaseDataService
|
|
val dataService = BaseDataService
|
|
|
|
|
|
var modelList: ArrayList<ModelFile>? = null
|
|
var modelList: ArrayList<ModelFile>? = null
|
|
@@ -196,6 +201,78 @@ class TestModelController {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @ApiOperation(value = "检查模型解析文件", notes = "")
|
|
|
|
+ @PostMapping(value = ["/test/finishState"])
|
|
|
|
+ fun finishState(floorModelId: String?, id: String?){
|
|
|
|
+ try {
|
|
|
|
+ val modelList = dataService.modelFileService.select(SFilter.eq("id", id!!),
|
|
|
|
+ SFilter.eq("removed", false)).exec()
|
|
|
|
+ if (modelList.isNullOrEmpty()) {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ val it = modelList[0]
|
|
|
|
+ // 先给模型文件版本号和接收时间
|
|
|
|
+ addVersionChangeName(modelList!!)
|
|
|
|
+ modelList!!.forEach {
|
|
|
|
+ try {
|
|
|
|
+ // 获取模型的statusInfo的affectedSpace是否是true
|
|
|
|
+ // 如果不是true
|
|
|
|
+ if (it.statusInfo == null || it.statusInfo!!.affectedSpace != true) {
|
|
|
|
+ if (it.floorModelId == null) {
|
|
|
|
+ return@forEach
|
|
|
|
+ }
|
|
|
|
+ val floorModel = dataService.floorModelService.select(SFilter.and(SFilter.eq("currentModelId", it.id!!), SFilter.eq("id", it.floorModelId!!))).entity()
|
|
|
|
+ ?: return@forEach
|
|
|
|
+ // 判断数据中心是否有楼层绑定了该模型
|
|
|
|
+ val floors = dataCenterService.getFloorWithModelId(it.floorModelId!!, it.projectId!!)
|
|
|
|
+ // 如果有绑定, 则执行受影响的业务空间函数
|
|
|
|
+ if (!floors.isNullOrEmpty()) {
|
|
|
|
+ val calcAffected = spaceAffectUtil.affectedSpace(it.projectId!!, it.floorModelId!!)
|
|
|
|
+// floorMapper.calcAffected(it.floorModelId!!)
|
|
|
|
+ // 如果返回true, 更新模型的statusInfo信息点
|
|
|
|
+ if (calcAffected == true) {
|
|
|
|
+ it.statusInfo = StatusInfo()
|
|
|
|
+ it.statusInfo!!.affectedSpace = true
|
|
|
|
+ dataService.modelFileService.update(it, arrayListOf("statusInfo"))
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }catch (ex : java.lang.Exception){
|
|
|
|
+ ex.printStackTrace()
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } catch (e: Exception) {
|
|
|
|
+ // 转状态到31
|
|
|
|
+ try {
|
|
|
|
+ }catch (e : Exception){}
|
|
|
|
+ e.printStackTrace()
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private val projection = arrayListOf("version", "acceptTime")
|
|
|
|
+ private fun addVersionChangeName(modelList: java.util.ArrayList<ModelFile>) {
|
|
|
|
+ modelList.forEach {
|
|
|
|
+ // 检验数据合法性
|
|
|
|
+ if(it.floorModelId == null || it.floorModelId!!.isEmpty())
|
|
|
|
+ return@forEach
|
|
|
|
+ if(it.version != null) // 已经改过的忽略掉
|
|
|
|
+ return@forEach
|
|
|
|
+ val largestVersion = dataService.modelFileService.select(SFilter.and(SFilter.eq("floorModelId", it.floorModelId!!), SFilter.not(SFilter.isNull("version")), SFilter.eq("removed", false))).order("version", SDirection.DESC).limit(1).entity()
|
|
|
|
+ if(largestVersion == null){
|
|
|
|
+ it.version = 1
|
|
|
|
+ }else {
|
|
|
|
+ it.version = largestVersion.version!! + 1
|
|
|
|
+ }
|
|
|
|
+ it.acceptTime = Date()
|
|
|
|
+ val request = SUpdateRequest<ModelFile>()
|
|
|
|
+ request.content = arrayListOf(it)
|
|
|
|
+ request.projection = projection
|
|
|
|
+ dataService.modelFileService.updateList(request)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
fun handleSingleJSON(json: JSONObject): BaseObj<AllComponents>? {
|
|
fun handleSingleJSON(json: JSONObject): BaseObj<AllComponents>? {
|
|
val mapper = ObjectMapper()
|
|
val mapper = ObjectMapper()
|
|
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
|
|
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
|