|
@@ -26,6 +26,7 @@
|
|
|
|
|
|
package com.persagy.server.services.task
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil
|
|
|
import cn.sagacloud.server.scanbuilding.User
|
|
|
import com.alibaba.fastjson.JSONObject
|
|
|
import com.google.gson.Gson
|
|
@@ -33,6 +34,7 @@ import com.google.gson.reflect.TypeToken
|
|
|
import com.persagy.base.extensions.toJson
|
|
|
import com.persagy.database.SFilter
|
|
|
import com.persagy.database.SPageQueryInfo
|
|
|
+import com.persagy.database.extensions.keyMap
|
|
|
import com.persagy.mybatis.SMybatisDao
|
|
|
import com.persagy.server.Opts
|
|
|
import com.persagy.server.datacenter.models.entities.assistant.TaskPic
|
|
@@ -56,7 +58,7 @@ import com.persagy.service.utils.SSpringContextUtil
|
|
|
import org.slf4j.LoggerFactory
|
|
|
import org.springframework.web.bind.annotation.RequestBody
|
|
|
import java.util.*
|
|
|
-import kotlin.collections.ArrayList
|
|
|
+import java.util.stream.Collectors
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -419,12 +421,58 @@ object ModelScanTaskService : RService<ModelScanTask>(SMybatisDao(ModelScanTask:
|
|
|
* 查询所有模型文件夹和文件
|
|
|
*/
|
|
|
fun modelFileQuery(): SQueryResponse<ModelFolder> {
|
|
|
- val pageQuery: SPageQueryInfo<ModelFolder>
|
|
|
+ val pageQuery = SPageQueryInfo<ModelFolder>(1, 1000)
|
|
|
val gson = Gson()
|
|
|
return try {
|
|
|
- val projectId = SPageContext.getHeader("projectId")
|
|
|
var request = SQueryRequest()
|
|
|
- val modelFolderService = SBaseService(SMybatisDao(ModelFolder::class.java))
|
|
|
+ request.filters = "ProjectId = '${SPageContext.getHeader("ProjectId")}'";
|
|
|
+ request.distinct = true
|
|
|
+ val response = pageQuery(request, null);
|
|
|
+
|
|
|
+ //文件夹集合
|
|
|
+ val folderMap = HashMap<String,String>()
|
|
|
+ //集合封装:文件夹->模型文件
|
|
|
+ /* val modelFiles = arrayListOf<ModelFile>()*/
|
|
|
+ val folderFileMap = HashMap<String,ArrayList<ModelFile>>()
|
|
|
+ for(folder in response.content!!){
|
|
|
+ folder.folderId?.let { folder.folderName?.let { it1 -> folderMap.put(it, it1) } }
|
|
|
+ //获取文件夹中的所有文件
|
|
|
+ var modelFiles: ArrayList<ModelFile>? = folderFileMap.get(folder.folderId)
|
|
|
+ if (CollUtil.isEmpty(modelFiles)) {
|
|
|
+ modelFiles =ArrayList<ModelFile>()
|
|
|
+ }
|
|
|
+ val modelFile = ModelFile()
|
|
|
+ modelFile.fileId = folder.fileId
|
|
|
+ modelFile.fileName = folder.fileName
|
|
|
+
|
|
|
+ val fileIds = modelFiles?.stream()?.map(ModelFile::fileId)?.collect(Collectors.toList<String>())
|
|
|
+ if (fileIds != null) {
|
|
|
+ if(fileIds.contains(folder.fileId)){
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (modelFiles != null) {
|
|
|
+ modelFiles.add(modelFile)
|
|
|
+ }
|
|
|
+ folder.folderId?.let { folderFileMap.put(it, modelFiles as ArrayList<ModelFile>) }
|
|
|
+ }
|
|
|
+
|
|
|
+ //结果集封装:文件夹->模型文件
|
|
|
+ val modelFolders = arrayListOf<ModelFolder>()
|
|
|
+ for ((folderId, folderName) in folderMap.entries) {
|
|
|
+ val fileList = folderFileMap.get(folderId)
|
|
|
+
|
|
|
+ val modelFolder = ModelFolder()
|
|
|
+ modelFolder.folderId = folderId
|
|
|
+ modelFolder.folderName = folderName
|
|
|
+
|
|
|
+ modelFolder.fileList = fileList
|
|
|
+ modelFolder.fileListStr = null
|
|
|
+ modelFolders.add(modelFolder)
|
|
|
+ }
|
|
|
+
|
|
|
+ //历史逻辑:
|
|
|
+ /*val modelFolderService = SBaseService(SMybatisDao(ModelFolder::class.java))
|
|
|
val modelFolderQueryBuilder = modelFolderService.select(request.filters)
|
|
|
modelFolderQueryBuilder.tableName = "scantask.f_get_modelfile('$projectId')"
|
|
|
pageQuery = modelFolderQueryBuilder.pageQuery(1, 1000)
|
|
@@ -439,7 +487,8 @@ object ModelScanTaskService : RService<ModelScanTask>(SMybatisDao(ModelScanTask:
|
|
|
folder.fileList = siInSpList
|
|
|
folder.fileListStr = null
|
|
|
}
|
|
|
- }
|
|
|
+ }*/
|
|
|
+ pageQuery.content = modelFolders;
|
|
|
SQueryResponse(pageQuery)
|
|
|
} catch (e: Exception) {
|
|
|
e.printStackTrace()
|