|
@@ -41,6 +41,7 @@ import com.persagy.dmp.rwd.parser.service.InfoDataFactory;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
@@ -534,6 +535,20 @@ public class ObjectDigitalServiceImpl extends ServiceImpl<ObjectDigitalMapper, O
|
|
* Update By lijie 2021/8/24 21:20
|
|
* Update By lijie 2021/8/24 21:20
|
|
*/
|
|
*/
|
|
private void fillSubordinateRelCode(RequestData requestData) {
|
|
private void fillSubordinateRelCode(RequestData requestData) {
|
|
|
|
+ Set<String> validRelCodes = new HashSet<>();
|
|
|
|
+ if (CollUtil.isNotEmpty(requestData.getObjTypes())){
|
|
|
|
+ // 如果objTypes不为空,则根据objTypes进行关系设置
|
|
|
|
+ List<DigitalRelCode> list = DigitalRelCode.getDigitalRelCodeList();
|
|
|
|
+ Set<String> objTypes = requestData.getObjTypes();
|
|
|
|
+ for (String objType : objTypes) {
|
|
|
|
+ for (DigitalRelCode code:list){
|
|
|
|
+ if (code.getFromType().equals(objType)
|
|
|
|
+ || code.getToType().equals(objType)){
|
|
|
|
+ validRelCodes.add(code.getIndex());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
if (StrUtil.isNotBlank(requestData.getEquipmentId())){
|
|
if (StrUtil.isNotBlank(requestData.getEquipmentId())){
|
|
// 设备下的部件
|
|
// 设备下的部件
|
|
requestData.setRelCodes(CollUtil.newHashSet(DigitalRelCode.EQ_2_EC.getIndex()));
|
|
requestData.setRelCodes(CollUtil.newHashSet(DigitalRelCode.EQ_2_EC.getIndex()));
|
|
@@ -542,24 +557,40 @@ public class ObjectDigitalServiceImpl extends ServiceImpl<ObjectDigitalMapper, O
|
|
}
|
|
}
|
|
if (StrUtil.isNotBlank(requestData.getFloorId())){
|
|
if (StrUtil.isNotBlank(requestData.getFloorId())){
|
|
// 楼层下的空间,设备,系统
|
|
// 楼层下的空间,设备,系统
|
|
- requestData.setRelCodes(CollUtil.newHashSet(DigitalRelCode.FL_2_SP.getIndex(),
|
|
|
|
- DigitalRelCode.EQ_2_FL.getIndex(),DigitalRelCode.SY_2_FL.getIndex()));
|
|
|
|
- // 设置设备查询部件
|
|
|
|
- requestData.setQueryEcFlag(true);
|
|
|
|
- requestData.setEcRelCodes(CollUtil.newHashSet(DigitalRelCode.EQ_2_EC.getIndex()));
|
|
|
|
- requestData.setFilterObjId(requestData.getFloorId());
|
|
|
|
|
|
+ Set<String> queryRels = CollUtil.newHashSet(DigitalRelCode.FL_2_SP.getIndex(),
|
|
|
|
+ DigitalRelCode.EQ_2_FL.getIndex(), DigitalRelCode.SY_2_FL.getIndex());
|
|
|
|
+ commonFillRelCode(requestData,queryRels,validRelCodes,requestData.getFloorId());
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
if (StrUtil.isNotBlank(requestData.getBuildingId())){
|
|
if (StrUtil.isNotBlank(requestData.getBuildingId())){
|
|
- // 建筑下的楼层,空间,设备,系统
|
|
|
|
- requestData.setRelCodes(CollUtil.newHashSet(DigitalRelCode.BD_2_FL.getIndex(),
|
|
|
|
- DigitalRelCode.BD_2_SP.getIndex(),DigitalRelCode.SY_2_BD.getIndex(),
|
|
|
|
- DigitalRelCode.EQ_2_BD.getIndex(),DigitalRelCode.BD_2_SH.getIndex()));
|
|
|
|
- // 设置设备查询部件
|
|
|
|
- requestData.setQueryEcFlag(true);
|
|
|
|
- requestData.setEcRelCodes(CollUtil.newHashSet(DigitalRelCode.EQ_2_EC.getIndex()));
|
|
|
|
- requestData.setFilterObjId(requestData.getBuildingId());
|
|
|
|
|
|
+ Set<String> queryRels = CollUtil.newHashSet(DigitalRelCode.BD_2_FL.getIndex(),
|
|
|
|
+ DigitalRelCode.BD_2_SP.getIndex(), DigitalRelCode.SY_2_BD.getIndex(),
|
|
|
|
+ DigitalRelCode.EQ_2_BD.getIndex(), DigitalRelCode.BD_2_SH.getIndex());
|
|
|
|
+ commonFillRelCode(requestData,queryRels,validRelCodes,requestData.getBuildingId());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ /**
|
|
|
|
+ * 公共注入关系的方法
|
|
|
|
+ * @param requestData : 请求参数
|
|
|
|
+ * @param queryRels : 查询关系
|
|
|
|
+ * @param validRelCodes : 校验关系列表
|
|
|
|
+ * return : void
|
|
|
|
+ * @author : lijie
|
|
|
|
+ * Update By 2022/1/10 14:43
|
|
|
|
+ */
|
|
|
|
+ private void commonFillRelCode(RequestData requestData, Set<String> queryRels,Set<String> validRelCodes,String filterObjId) {
|
|
|
|
+ if (CollUtil.isNotEmpty(validRelCodes)){
|
|
|
|
+ queryRels = CollUtil.intersectionDistinct(queryRels,validRelCodes);
|
|
|
|
+ }
|
|
|
|
+ requestData.setRelCodes(queryRels);
|
|
|
|
+ requestData.setFilterObjId(filterObjId);
|
|
|
|
+ if (CollUtil.isNotEmpty(validRelCodes)
|
|
|
|
+ && !validRelCodes.contains(DigitalRelCode.EQ_2_EC.getIndex())){
|
|
|
|
+ return;
|
|
}
|
|
}
|
|
|
|
+ // 设置设备查询部件
|
|
|
|
+ requestData.setQueryEcFlag(true);
|
|
|
|
+ requestData.setEcRelCodes(CollUtil.newHashSet(DigitalRelCode.EQ_2_EC.getIndex()));
|
|
}
|
|
}
|
|
|
|
|
|
/***
|
|
/***
|