فهرست منبع

jsonz上传版本

caiaf 4 سال پیش
والد
کامیت
41f1050732

+ 43 - 4
revit-algorithm/src/main/kotlin/cn/sagacloud/server/algorithm/controllers/modelFile/ModelFileController.kt

@@ -223,6 +223,9 @@ class ModelFileController {
     @ApiOperation(value = "准备分片上传模型文件接口", notes = "")
     fun multipartUpload(@RequestBody request: UploadModelRequest): SBaseResponse {
         try {
+            var model: ModelFile
+
+
             modelFileService.checkUploadInputValid(request)
             var floor = dataService.floorModelService.select(SFilter.eq("projectId", request.projectId!!),
                     SFilter.eq("floorName", request.floorName!!), SFilter.eq("folderId", request.folderId!!)).entity()
@@ -233,11 +236,31 @@ class ModelFileController {
             // 检查是否可以上传新模型
             modelFileService.checkUpdatable(floor, request)
 
-            // 创建模型记录
-            var model = modelFileService.addRecord(request, floor, properties)
-
             // 注册uploadId
-            val uploadId = modelFileService.registerMultipartUpload(model, properties)
+            var url: String
+            //是否jsonz文件
+            if(request.jsonz == true){
+                url = properties.fileService.exportPath
+            }else {
+                url = properties.fileService.registerMultipartUpload
+            }
+
+
+            if(request.modelId.isNullOrEmpty()){
+
+
+                // 创建模型记录
+                model = modelFileService.addRecord(request, floor, properties)
+
+
+
+            }else{
+
+                model = dataService.modelFileService.select(SFilter.eq("id",request.modelId!!)).entity()!!
+            }
+
+
+            val uploadId = modelFileService.registerMultipartUpload(model, properties,url)
             var uploadModelResponse = UploadModelResponse()
             uploadModelResponse.result = SResponseType.success
             uploadModelResponse.uploadId = uploadId
@@ -270,10 +293,26 @@ class ModelFileController {
                 return SBaseResponse(SResponseType.failure, "状态${model.status}, 不能合并")
             // 合并上传的分片文件
             val mergeResult = modelFileService.mergeMultipart(request.uploadId!!, properties)
+            if(request.uploadModel  == true){
+                if (mergeResult) {
+                    model.jsonStatus = 2
+                    model.md5 = request.md5
+                    dataService.modelFileService.update(model, arrayListOf("status", "md5"))
+                    monitorService.endUpload(request.modelId!!)
+                    return SCreateResponse(arrayListOf(model))
+                }else{
+                    return SBaseResponse(SResponseType.failure, "上传出错, 请稍后重新上传")
+                }
+            }
             if (mergeResult) {
                 // 修改模型文件状态到已上传(1)
                 model.status = 1
                 model.md5 = request.md5
+                //jsonz状态改变
+                if(request.jsonz == true){
+                    model.jsonStatus = 1
+                    model.status = 3
+                }
                 dataService.modelFileService.update(model, arrayListOf("status", "md5"))
                 monitorService.endUpload(request.modelId!!)
                 return SCreateResponse(arrayListOf(model))

+ 16 - 0
revit-algorithm/src/main/kotlin/cn/sagacloud/server/algorithm/models/jsonAnalyzer/BaseObj.kt

@@ -32,4 +32,20 @@ class BaseObj<T> {
     @JSONField(name = "ModelId")
     @JsonProperty("ModelId")
     var modelId : String? = null
+
+    @JSONField(name = "RevitFileName")
+    @JsonProperty("RevitFileName")
+    var revitFileName : String? = null
+
+    @JSONField(name = "RevitMD5")
+    @JsonProperty("RevitMD5")
+    var revitMD5 : String? = null
+
+    @JSONField(name = "SimplifyFileName")
+    @JsonProperty("SimplifyFileName")
+    var simplifyFileName : String? = null
+
+    @JSONField(name = "SimplifyMD5")
+    @JsonProperty("SimplifyMD5")
+    var simplifyMD5 : String? = null
 }

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

@@ -200,4 +200,29 @@ class ModelFile : SBaseEntity() {
     @ApiModelProperty(value = "调度器信息")
     @Column(name = "status_info")
     var statusInfo: StatusInfo? = null
+
+    /** revit文件名 */
+    @ApiModelProperty(value = "revit文件名")
+    @Column(name = "revit_file_name")
+    var revitFileName: String? = null
+
+    /** revitMd5 */
+    @ApiModelProperty(value = "模型文件检查结果中非阻塞性检查是否有错误")
+    @Column(name = "revit_md5")
+    var revitMd5: String? = null
+
+    /** 轻量化名称 */
+    @ApiModelProperty(value = "轻量化名称")
+    @Column(name = "simplify_file_name")
+    var simplifyFileName: String? = null
+
+    /** 轻量化Md5 */
+    @ApiModelProperty(value = "轻量化Md5")
+    @Column(name = "simplify_md5")
+    var simplifyMd5: String? = null
+
+    /** jsonz状态 */
+    @ApiModelProperty(value = "jsonz状态")
+    @Column(name = "json_status")
+    var jsonStatus: Int? = null
 }

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

@@ -17,4 +17,10 @@ class MergeMultipartRequest {
 
     @ApiModelProperty(value = "文件的MD5值")
     var md5: String? = null
+
+    @ApiModelProperty(value = "是否jsonz文件")
+    var jsonz: Boolean? = null
+
+    @ApiModelProperty(value = "是否只上传模型")
+    var uploadModel: Boolean? = null
 }

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

@@ -38,4 +38,10 @@ class UploadModelRequest {
     @ApiModelProperty(value = "模型的revit版本")
     var revitVersion: String? = null
 
+    @ApiModelProperty(value = "是否jsonz文件")
+    var jsonz: Boolean? = null
+
+
+    @ApiModelProperty(value = "模型Id")
+    var modelId: String? = null
 }

+ 7 - 2
revit-algorithm/src/main/kotlin/cn/sagacloud/server/algorithm/services/endpoint/ModelFileService.kt

@@ -424,8 +424,9 @@ class ModelFileService {
             throw Exception("有其他人正在上传模型")
     }
 
-    fun registerMultipartUpload(model: ModelFile, properties: MyProperties): String {
-        val result = HttpService.sendPost(properties.fileService.registerMultipartUpload + model.fileKey, "")
+    fun registerMultipartUpload(model: ModelFile, properties: MyProperties,url: String): String {
+//        val result = HttpService.sendPost(properties.fileService.registerMultipartUpload + model.fileKey, "")
+        val result = HttpService.sendPost(url + model.fileKey, "")
         val resultObj = JSON.parseObject(result)
         val uploadId = resultObj.getString("UploadId")
         if(uploadId.isNullOrEmpty())
@@ -500,6 +501,10 @@ class ModelFileService {
             syncUtil.syncDataWithBindingFloor(syncFloor, modelFile, floor)
             // 转状态到4
             modelFile.status = 4
+            modelFile.revitFileName = objData.revitFileName
+            modelFile.revitMd5 = objData.revitMD5
+            modelFile.simplifyFileName = objData.simplifyFileName
+            modelFile.simplifyMd5 = objData.simplifyMD5
             dataService.modelFileService.update(modelFile, arrayListOf("status"))
             val message = messageService.buildMessageEntityWithoutLink("${folderFloorName.first}的${folderFloorName.second}模型上传成功", MessageType.Success, modelFile.projectId, arrayListOf(modelFile.userId?:""), "")
             messageService.sendMessage(message)

+ 6 - 0
revit-algorithm/src/main/kotlin/cn/sagacloud/server/algorithm/services/json/ModelAnalyzer.kt

@@ -24,6 +24,12 @@ object ModelAnalyzer {
             modelFile.units = unit
         }
         modelFile.baseLevel = baseObj.baseLevel
+
+        //更新jsonz解析字段
+        modelFile.revitFileName = baseObj.revitFileName
+        modelFile.revitMd5 = baseObj.revitMD5
+        modelFile.simplifyFileName = baseObj.simplifyFileName
+        modelFile.simplifyMd5 = baseObj.simplifyMD5
         return modelService.update(modelFile)
     }