|
@@ -26,17 +26,25 @@
|
|
|
|
|
|
package com.persagy.server.services.task
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil
|
|
|
+import com.alibaba.fastjson.JSONObject
|
|
|
import com.persagy.database.SFilter
|
|
|
import com.persagy.database.functions.SLength
|
|
|
import com.persagy.mybatis.SMybatisDao
|
|
|
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.task.EquipScanTaskQuery
|
|
|
-import com.persagy.service.SBaseService
|
|
|
+import com.persagy.server.services.AdmBaseService
|
|
|
+import com.persagy.server.services.DmpBaseService
|
|
|
+import com.persagy.server.util.AdmEntityTransferUtil
|
|
|
import com.persagy.service.SObjectService
|
|
|
import com.persagy.service.SPageContext
|
|
|
+import com.persagy.service.models.SCascadeQuery
|
|
|
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 java.util.stream.Collectors
|
|
|
|
|
|
/**
|
|
|
* 设备台账任务
|
|
@@ -46,27 +54,63 @@ import org.slf4j.LoggerFactory
|
|
|
object EquipScanTaskQueryService : SObjectService<EquipScanTaskQuery>(SMybatisDao(EquipScanTaskQuery::class.java)) {
|
|
|
|
|
|
/** 字典平台对象类型 */
|
|
|
- private val defClassService = SBaseService(SMybatisDao(DefClass::class.java))
|
|
|
+ // private val defClassService = SBaseService(SMybatisDao(DefClass::class.java))
|
|
|
// 日志
|
|
|
private val logger = LoggerFactory.getLogger(EquipScanTaskQueryService::class.java)
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private val dmpBaseService: DmpBaseService? = DmpBaseService()
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private val admBaseService: AdmBaseService? = AdmBaseService()
|
|
|
+
|
|
|
|
|
|
fun pageQuerys(request: SQueryRequest): SQueryResponse<EquipScanTaskQuery> {
|
|
|
+ //查询设备台账任务
|
|
|
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 = pageQuery(request, withFilterList)
|
|
|
if (!pageQuery.content.isNullOrEmpty()&&pageQuery.content!!.size>0){
|
|
|
+
|
|
|
+ //级联查询设备相关信息:建筑,楼层,空间等
|
|
|
+ val equipScanTaskList = pageQuery.content
|
|
|
+ var cascadeQueryAdmEquip = arrayListOf<Equipment>()
|
|
|
+ if (equipScanTaskList != null) {
|
|
|
+ cascadeQueryAdmEquip = cascadeQueryAdmEquip(equipScanTaskList, request) as ArrayList<Equipment>
|
|
|
+ }
|
|
|
+ val equipMap = cascadeQueryAdmEquip?.stream()?.collect(Collectors.groupingBy { item: Equipment -> 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 = select(SFilter.eq("parentId", content.equipId!!),SFilter.eq("taskParentId", content.id!!)).exec()
|
|
|
if (exec.size>0){
|
|
|
content.component = exec
|
|
|
}
|
|
|
- val defClass =
|
|
|
- defClassService.select(SFilter.eq("code", content.classCode!!)).entity()
|
|
|
- if (defClass!=null) {
|
|
|
- content.equipCategory = defClass
|
|
|
+ //查询中台类型数据,2021.10.25日中心中台整合调整
|
|
|
+ val param = JSONObject()
|
|
|
+ val criteria = JSONObject()
|
|
|
+ criteria["code"] = content.classCode!!
|
|
|
+ param["criteria"] = criteria
|
|
|
+ val dictTypes =dmpBaseService!!.queryDictType(param)
|
|
|
+ val defClass = AdmEntityTransferUtil.toAdmMultiEntity(dictTypes, null, DefClass::class.java)
|
|
|
+ /* val defClass =
|
|
|
+ defClassService.select(SFilter.eq("projectId", projectId), SFilter.eq("code", content.classCode!!)).entity()*/
|
|
|
+ if (defClass!=null && defClass.size>0) {
|
|
|
+ content.equipCategory = defClass.get(0)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -79,15 +123,42 @@ object EquipScanTaskQueryService : SObjectService<EquipScanTaskQuery>(SMybatisDa
|
|
|
withFilterList.add(SFilter.eq("projectId", SPageContext.getHeader("projectId").toString()))
|
|
|
val pageQuery = pageQuery(request, withFilterList)
|
|
|
if (!pageQuery.content.isNullOrEmpty()&&pageQuery.content!!.size>0){
|
|
|
+ //级联查询设备相关信息:建筑,楼层,空间等
|
|
|
+ val equipScanTaskList = pageQuery.content
|
|
|
+ var cascadeQueryAdmEquip = arrayListOf<Equipment>()
|
|
|
+ if (equipScanTaskList != null) {
|
|
|
+ cascadeQueryAdmEquip = cascadeQueryAdmEquip(equipScanTaskList, request) as ArrayList<Equipment>
|
|
|
+ }
|
|
|
+ val equipMap = cascadeQueryAdmEquip?.stream()?.collect(Collectors.groupingBy { item: Equipment -> 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 = select(SFilter.eq("parentId", content.equipId!!),SFilter.eq("taskParentId", content.id!!)).exec()
|
|
|
if (exec.size>0){
|
|
|
content.component = exec
|
|
|
}
|
|
|
- val defClass =
|
|
|
- defClassService.select( SFilter.eq("code", content.classCode!!)).entity()
|
|
|
- if (defClass!=null) {
|
|
|
- content.equipCategory = defClass
|
|
|
+ //查询中台类型数据,2021.10.25日中心中台整合调整
|
|
|
+ val param = JSONObject()
|
|
|
+ val criteria = JSONObject()
|
|
|
+ criteria["code"] = content.classCode!!
|
|
|
+ param["criteria"] = criteria
|
|
|
+ val dictTypes =dmpBaseService!!.queryDictType(param)
|
|
|
+ val defClass = AdmEntityTransferUtil.toAdmMultiEntity(dictTypes, null, DefClass::class.java)
|
|
|
+ /* val defClass =
|
|
|
+ defClassService.select(SFilter.eq("projectId", projectId), SFilter.eq("code", content.classCode!!)).entity()*/
|
|
|
+ if (defClass!=null && defClass.size>0) {
|
|
|
+ content.equipCategory = defClass.get(0)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -95,6 +166,33 @@ object EquipScanTaskQueryService : SObjectService<EquipScanTaskQuery>(SMybatisDa
|
|
|
} // Fun
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
+ * 级联查询设备相关信息:建筑,楼层,空间等
|
|
|
+ */
|
|
|
+ fun cascadeQueryAdmEquip(equipScanTaskList: List<EquipScanTaskQuery>,request: SQueryRequest): List<Equipment>? {
|
|
|
+ //级联查询设备相关信息:建筑,楼层,空间等
|
|
|
+ if(CollUtil.isEmpty(equipScanTaskList)){
|
|
|
+ return ArrayList<Equipment>()
|
|
|
+ }
|
|
|
+ val equipIds = equipScanTaskList?.stream()?.map(EquipScanTaskQuery::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?.queryEquip(equipRequest)
|
|
|
+ }
|
|
|
+ return ArrayList<Equipment>()
|
|
|
+ }
|
|
|
|
|
|
|
|
|
} // Class EquipScanTaskService
|