|
@@ -208,7 +208,7 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
|
// 3.1 获取关系code列表
|
|
|
fillSubordinateRelCode(requestData);
|
|
|
// 3.2 调用查询语句查询相关内容
|
|
|
- return analysisQueryResultList(objectDigitalMapper.queryObjectListBySuperiorId(requestData),requestData);
|
|
|
+ return analysisQueryResultList(objectDigitalMapper.queryObjectListBySuperiorId(requestData),requestData,false);
|
|
|
}
|
|
|
/***
|
|
|
* Description: 根据对象id获取下级关系code数组
|
|
@@ -222,6 +222,7 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
|
if (StrUtil.isNotBlank(requestData.getEquipmentId())){
|
|
|
// 设备下的部件
|
|
|
requestData.setRelCodes(CollUtil.newHashSet(DigitalRelCode.EQ_2_EC.getIndex()));
|
|
|
+ requestData.setFilterObjId(requestData.getEquipmentId());
|
|
|
return;
|
|
|
}
|
|
|
if (StrUtil.isNotBlank(requestData.getFloorId())){
|
|
@@ -231,6 +232,7 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
|
// 设置设备查询部件
|
|
|
requestData.setQueryEcFlag(true);
|
|
|
requestData.setEcRelCodes(CollUtil.newHashSet(DigitalRelCode.EQ_2_EC.getIndex()));
|
|
|
+ requestData.setFilterObjId(requestData.getFloorId());
|
|
|
return;
|
|
|
}
|
|
|
if (StrUtil.isNotBlank(requestData.getBuildingId())){
|
|
@@ -241,6 +243,7 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
|
// 设置设备查询部件
|
|
|
requestData.setQueryEcFlag(true);
|
|
|
requestData.setEcRelCodes(CollUtil.newHashSet(DigitalRelCode.EQ_2_EC.getIndex()));
|
|
|
+ requestData.setFilterObjId(requestData.getBuildingId());
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -256,8 +259,7 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
|
// 1.查询结果集
|
|
|
List<List<ObjectDigital>> resultList =
|
|
|
objectDigitalMapper.queryObjectDigitalsByProjectId(requestData,requestData.getSkip(),requestData.getSize());
|
|
|
- return analysisQueryResultList(resultList,requestData);
|
|
|
-
|
|
|
+ return analysisQueryResultList(resultList,requestData,true);
|
|
|
}
|
|
|
/***
|
|
|
* Description: 解析结果集
|
|
@@ -268,7 +270,9 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
|
* @date :2021/8/25 13:16
|
|
|
* Update By lijie 2021/8/25 13:16
|
|
|
*/
|
|
|
- private CommonResult<List<ObjectDigital>> analysisQueryResultList(List<List<ObjectDigital>> resultList,RequestData requestData) {
|
|
|
+ private CommonResult<List<ObjectDigital>> analysisQueryResultList(List<List<ObjectDigital>> resultList,
|
|
|
+ RequestData requestData,
|
|
|
+ Boolean fillRelFlag) {
|
|
|
if (CollUtil.isEmpty(resultList)){
|
|
|
return ResultHelper.multi(new ArrayList<>(),0);
|
|
|
}
|
|
@@ -281,12 +285,45 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
|
// 只返回数
|
|
|
return ResultHelper.multi(new ArrayList<>(),totalCount.get(0).getTotalCount());
|
|
|
}
|
|
|
+ fillRelIds(pageResult,fillRelFlag);
|
|
|
// 2.过滤信息点
|
|
|
retainObjInfos(pageResult,requestData.getReturnInfos());
|
|
|
// 3.处理Fl2Sp的关系,将对应的空间对象的楼层id扔进去
|
|
|
fillFloorIdIntoSpaceObjFromIds(pageResult);
|
|
|
return ResultHelper.multi(pageResult,totalCount.get(0).getTotalCount());
|
|
|
}
|
|
|
+
|
|
|
+ private void fillRelIds(List<ObjectDigital> pageResult,
|
|
|
+ Boolean fillRelFlag) {
|
|
|
+ if (null==fillRelFlag || !fillRelFlag){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 注入关系
|
|
|
+ // 2.1 根据楼层id查询建筑id
|
|
|
+ // 2.2 根据空间id查询建筑id
|
|
|
+ // 2.3 根据设备id查询建筑id
|
|
|
+ // 2.4 根据系统id查询建筑id
|
|
|
+ Set<String> objIds = pageResult.stream().map(ObjectDigital::getId).collect(Collectors.toSet());
|
|
|
+ List<ObjectDigital> objectDigitals = objectRelationMapper.selectRelCodesByObjIdsAndRelCodes(objIds, CollUtil
|
|
|
+ .newHashSet(DigitalRelCode.EQ_2_EC.getIndex(), DigitalRelCode.BD_2_FL.getIndex(),
|
|
|
+ DigitalRelCode.BD_2_SP.getIndex(), DigitalRelCode.SY_2_BD.getIndex(),
|
|
|
+ DigitalRelCode.EQ_2_BD.getIndex()));
|
|
|
+ if (CollUtil.isEmpty(objectDigitals)){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Map<String, ObjectDigital> digitalMap = objectDigitals.stream()
|
|
|
+ .collect(Collectors.toMap(ObjectDigital::getId, objectDigital -> objectDigital, (k1, k2) -> k1));
|
|
|
+ for (ObjectDigital objectDigital : pageResult) {
|
|
|
+ if (!digitalMap.containsKey(objectDigital.getId())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ objectDigital.setObjToIds(CollUtil
|
|
|
+ .defaultIfEmpty(digitalMap.get(objectDigital.getId()).getObjToIds(),new HashSet<>()));
|
|
|
+ objectDigital.setObjFromIds(CollUtil
|
|
|
+ .defaultIfEmpty(digitalMap.get(objectDigital.getId()).getObjFromIds(),new HashSet<>()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/***
|
|
|
* Description: 填充关系id
|
|
|
* @param objectDigitals : 查询结果集
|