瀏覽代碼

资产查询bug修复

linhuili 3 年之前
父節點
當前提交
664b4cb450

+ 2 - 2
scanbuilding/src/main/kotlin/com/persagy/server/controller/task/PropertyScanTaskController.kt

@@ -77,8 +77,8 @@ open class PropertyScanTaskController {
     fun pageQuery(@RequestBody request: SQueryRequest): SQueryResponse<PropertyScanTask> {
         logger.debug("propertyScanTaskQuery =${request.toJson()}")
         val withFilterList = ArrayList<SFilter>()
-        withFilterList.add(SFilter.eq("projectId", SPageContext.getHeader("projectId").toString()))
-        return PropertyScanTaskService.pageQuery(request,withFilterList);
+       // withFilterList.add(SFilter.eq("projectId", SPageContext.getHeader("projectId").toString()))
+        return PropertyScanTaskService.pageQuerys(request);
     } // Function pageQuery()
 
     /**

+ 12 - 0
scanbuilding/src/main/kotlin/com/persagy/server/services/task/EquipScanTaskQueryService.kt

@@ -78,6 +78,18 @@ object EquipScanTaskQueryService : SObjectService<EquipScanTaskQuery>(SMybatisDa
             val equipScanTaskList = pageQuery.content
             var cascadeQueryAdmEquip = arrayListOf<Equipment>()
             if (equipScanTaskList != null) {
+
+                val cascades = ArrayList<SCascadeQuery>()
+                //级联查询建筑
+                val buildCacade = SCascadeQuery()
+                buildCacade.name = "building"
+                cascades.add(buildCacade)
+                //级联查询楼层
+                val floorCacade = SCascadeQuery()
+                floorCacade.name="floor"
+                cascades.add(floorCacade)
+                request.cascade= cascades
+
                 cascadeQueryAdmEquip = cascadeQueryAdmEquip(equipScanTaskList, request) as ArrayList<Equipment>
             }
             val equipMap = cascadeQueryAdmEquip?.stream()?.collect(Collectors.groupingBy { item: Equipment -> item.id })

+ 110 - 2
scanbuilding/src/main/kotlin/com/persagy/server/services/task/PropertyScanTaskService.kt

@@ -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,11 +34,15 @@ 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.functions.SLength
 import com.persagy.mybatis.SMybatisDao
 import com.persagy.server.Opts
 import com.persagy.server.datacenter.models.entities.assistant.TaskPic
 import com.persagy.server.datacenter.models.entities.dict.EquipFamilyCategory
+import com.persagy.server.datacenter.models.entities.dictnew.DefClass
+import com.persagy.server.datacenter.models.entities.objects.Equipment
 import com.persagy.server.datacenter.models.entities.objects.Property
+import com.persagy.server.datacenter.models.entities.task.EquipScanTaskQuery
 import com.persagy.server.datacenter.models.entities.task.PropertyScanTask
 import com.persagy.server.datacenter.models.entities.task.SchemeUtils
 import com.persagy.server.scanbuilding.UserLog
@@ -49,11 +54,15 @@ import com.persagy.server.util.IdUtils
 import com.persagy.service.SBaseService
 import com.persagy.service.SObjectService
 import com.persagy.service.SPageContext
+import com.persagy.service.models.SCascadeQuery
 import com.persagy.service.models.requests.SCreateRequest
+import com.persagy.service.models.requests.SQueryRequest
+import com.persagy.service.models.responses.SQueryResponse
 import org.slf4j.LoggerFactory
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.web.bind.annotation.RequestBody
 import java.util.*
+import java.util.stream.Collectors
 import kotlin.collections.ArrayList
 
 /**
@@ -80,6 +89,103 @@ object PropertyScanTaskService : RService<PropertyScanTask>(SMybatisDao(Property
     @Autowired
     private val dmpBaseService: DmpBaseService? = DmpBaseService()
 
+
+    fun pageQuerys(request: SQueryRequest): SQueryResponse<PropertyScanTask> {
+        //查询设备台账任务
+        val projectId = SPageContext.getHeader("projectId").toString()
+        val withFilterList = ArrayList<SFilter>()
+        withFilterList.add(SFilter.eq("projectId", SPageContext.getHeader("projectId").toString()))
+        //withFilterList.add(SFilter.lt(SLength("classCode"), 7))
+        val pageQuery = PropertyScanTaskService.pageQuery(request, withFilterList)
+        if (!pageQuery.content.isNullOrEmpty()&&pageQuery.content!!.size>0){
+
+            //级联查询设备相关信息:建筑,楼层,空间等
+            val equipScanTaskList = pageQuery.content
+            var cascadeQueryAdmEquip = arrayListOf<Property>()
+            if (equipScanTaskList != null) {
+
+                val cascades = ArrayList<SCascadeQuery>()
+                //级联查询建筑
+                val buildCacade = SCascadeQuery()
+                buildCacade.name = "building"
+                cascades.add(buildCacade)
+                //级联查询楼层
+                val floorCacade = SCascadeQuery()
+                floorCacade.name="floor"
+                cascades.add(floorCacade)
+
+                val cascade = request.cascade
+                if (cascade != null) {
+                    cascade.addAll(cascades)
+                    request.cascade= cascade
+                }else{
+                    request.cascade= cascades
+                }
+                cascadeQueryAdmEquip = cascadeQueryAdmProperty(equipScanTaskList, request) as ArrayList<Property>
+            }
+            val equipMap = cascadeQueryAdmEquip?.stream()?.collect(Collectors.groupingBy { item: Property -> item.id })
+            for (content in pageQuery.content!!){
+                //设置级联查询结果
+                val caseNodes = equipMap.get(content.equipId)
+                if(CollUtil.isNotEmpty(caseNodes)){
+                    val equip = caseNodes?.get(0)
+                    if (equip != null) {
+                        content.building = equip.building
+                        content.floor = equip.floor
+                        /*val component = equip.component
+                        val toAdmMultiEntity = AdmEntityTransferUtil.toAdmMultiEntity(component, null, EquipScanTaskQuery::class.java)
+                        content.component = toAdmMultiEntity*/
+                    }
+                }
+
+                //查询组件
+               /* val exec = EquipScanTaskQueryService.select(SFilter.eq("parentId", content.equipId!!), SFilter.eq("taskParentId", content.id!!)).exec()
+                if (exec.size>0){
+                    content.component = exec
+                }*/
+                //查询中台类型数据,2021.10.25日中心中台整合调整
+                val param = JSONObject()
+                val criteria = JSONObject()
+                criteria["code"] = content.classCode!!
+                param["criteria"] = criteria
+                val dictTypes = dmpBaseService?.queryDictType(param)
+                val entity = AdmEntityTransferUtil.toAdmMultiEntity(dictTypes, null, EquipFamilyCategory::class.java)?.get(0)
+                if (entity!=null) {
+                    content.equipFamily = entity
+                }
+            }
+        }
+        return pageQuery
+    } // Fun
+
+    /**
+     * 级联查询资产相关信息:建筑,楼层,空间等
+     */
+    fun cascadeQueryAdmProperty(equipScanTaskList: List<PropertyScanTask>?, request: SQueryRequest): List<Property>? {
+        //级联查询设备相关信息:建筑,楼层,空间等
+        if(CollUtil.isEmpty(equipScanTaskList)){
+            return ArrayList<Property>()
+        }
+        val equipIds = equipScanTaskList?.stream()?.map(PropertyScanTask::equipId)?.collect(Collectors.toList<String>())
+        var equipRequest = SQueryRequest()
+        equipRequest.filters = "id in "+"(\'" + java.lang.String.join("\',\'", equipIds) + "\')"
+
+        val requestCascade = request.cascade
+        //查询级联关系
+        val cascadeList = arrayListOf<SCascadeQuery>()
+        if (requestCascade != null) {
+            for(cascade in requestCascade){
+                if("scanScheme".equals(cascade.name)){
+                    continue
+                }
+                cascadeList.add(cascade)
+            }
+            equipRequest.cascade = cascadeList;
+            return admBaseService?.queryProperty(equipRequest)
+        }
+        return ArrayList<Property>()
+    }
+
     /**
      * 插入之前先过滤已经存在未验证任务的对象,返回新列表
      */
@@ -351,7 +457,7 @@ object PropertyScanTaskService : RService<PropertyScanTask>(SMybatisDao(Property
     } // Fun onUpdateSuccess
 
     override fun onQuerySuccess(pageInfo: SPageQueryInfo<PropertyScanTask>) {
-        if (!pageInfo.content.isNullOrEmpty()){
+       /* if (!pageInfo.content.isNullOrEmpty()){
             for (content in pageInfo.content!!){
               //  val entity = equipFamilyCategoryService.select(SFilter.eq("family", content.classCode!!)).entity()
                 //查询中台类型数据,2021.10.25日中心中台整合调整
@@ -367,8 +473,10 @@ object PropertyScanTaskService : RService<PropertyScanTask>(SMybatisDao(Property
 
                 }
             }
-        }
+        }*/
         super.onQuerySuccess(pageInfo)
     }
 
+
+
 } // Class PropertyScanTaskService