|
@@ -18,8 +18,10 @@ import com.persagy.dmp.common.model.entity.BaseEntity;
|
|
import com.persagy.dmp.common.model.response.CommonResult;
|
|
import com.persagy.dmp.common.model.response.CommonResult;
|
|
import com.persagy.dmp.common.utils.ResultHelper;
|
|
import com.persagy.dmp.common.utils.ResultHelper;
|
|
import com.persagy.dmp.define.entity.ObjectInfoDefine;
|
|
import com.persagy.dmp.define.entity.ObjectInfoDefine;
|
|
|
|
+import com.persagy.dmp.define.entity.ObjectTypeDefine;
|
|
import com.persagy.dmp.digital.entity.ObjectDigital;
|
|
import com.persagy.dmp.digital.entity.ObjectDigital;
|
|
import com.persagy.dmp.rwd.basic.constant.DigitalMessageConstant;
|
|
import com.persagy.dmp.rwd.basic.constant.DigitalMessageConstant;
|
|
|
|
+import com.persagy.dmp.rwd.basic.constant.DigitalObjectType;
|
|
import com.persagy.dmp.rwd.basic.constant.DigitalRelCode;
|
|
import com.persagy.dmp.rwd.basic.constant.DigitalRelCode;
|
|
import com.persagy.dmp.rwd.basic.dto.RequestData;
|
|
import com.persagy.dmp.rwd.basic.dto.RequestData;
|
|
import com.persagy.dmp.rwd.basic.utils.DigitalCommonUtils;
|
|
import com.persagy.dmp.rwd.basic.utils.DigitalCommonUtils;
|
|
@@ -27,6 +29,7 @@ import com.persagy.dmp.rwd.basic.utils.DigitalMessageHelper;
|
|
import com.persagy.dmp.rwd.define.service.IObjectInfoService;
|
|
import com.persagy.dmp.rwd.define.service.IObjectInfoService;
|
|
import com.persagy.dmp.rwd.define.service.IObjectTypeService;
|
|
import com.persagy.dmp.rwd.define.service.IObjectTypeService;
|
|
import com.persagy.dmp.rwd.digital.dao.ObjectDigitalMapper;
|
|
import com.persagy.dmp.rwd.digital.dao.ObjectDigitalMapper;
|
|
|
|
+import com.persagy.dmp.rwd.digital.dao.ObjectRelationMapper;
|
|
import com.persagy.dmp.rwd.digital.service.IObjectDigitalService;
|
|
import com.persagy.dmp.rwd.digital.service.IObjectDigitalService;
|
|
import com.persagy.dmp.rwd.parser.service.InfoDataFactory;
|
|
import com.persagy.dmp.rwd.parser.service.InfoDataFactory;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
@@ -37,6 +40,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 对象数据 实现类
|
|
* 对象数据 实现类
|
|
@@ -53,6 +57,7 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
private final IObjectInfoService infoService;
|
|
private final IObjectInfoService infoService;
|
|
private final IObjectTypeService typeService;
|
|
private final IObjectTypeService typeService;
|
|
private final ObjectDigitalMapper objectDigitalMapper;
|
|
private final ObjectDigitalMapper objectDigitalMapper;
|
|
|
|
+ private final ObjectRelationMapper objectRelationMapper;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public ObjectDigital load(String id) {
|
|
public ObjectDigital load(String id) {
|
|
@@ -278,8 +283,40 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
}
|
|
}
|
|
// 2.过滤信息点
|
|
// 2.过滤信息点
|
|
retainObjInfos(pageResult,requestData.getReturnInfos());
|
|
retainObjInfos(pageResult,requestData.getReturnInfos());
|
|
|
|
+ // 3.处理Fl2Sp的关系,将对应的空间对象的楼层id扔进去
|
|
|
|
+ fillFloorIdIntoSpaceObjFromIds(pageResult);
|
|
return ResultHelper.multi(pageResult,totalCount.get(0).getTotalCount());
|
|
return ResultHelper.multi(pageResult,totalCount.get(0).getTotalCount());
|
|
}
|
|
}
|
|
|
|
+ /***
|
|
|
|
+ * Description: 填充关系id
|
|
|
|
+ * @param objectDigitals : 查询结果集
|
|
|
|
+ * @return : void
|
|
|
|
+ * @author : lijie
|
|
|
|
+ * @date :2021/8/26 12:00
|
|
|
|
+ * Update By lijie 2021/8/26 12:00
|
|
|
|
+ */
|
|
|
|
+ private void fillFloorIdIntoSpaceObjFromIds(List<ObjectDigital> objectDigitals) {
|
|
|
|
+ // 1.获得空间id
|
|
|
|
+ Set<String> spaceIds = objectDigitals.stream()
|
|
|
|
+ .filter(objectDigital -> DigitalObjectType.SPACE.getIndex().equals(objectDigital.getObjType()))
|
|
|
|
+ .map(ObjectDigital::getId)
|
|
|
|
+ .collect(Collectors.toSet());
|
|
|
|
+ if (CollUtil.isEmpty(spaceIds)){
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ List<ObjectDigital> relResult = objectRelationMapper.selectRelCodesByObjToIdsAndRelCode(spaceIds,DigitalRelCode.FL_2_SP.getIndex());
|
|
|
|
+ if (CollUtil.isEmpty(relResult)){
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ Map<String, Set<String>> setMap = relResult
|
|
|
|
+ .stream()
|
|
|
|
+ .collect(Collectors.toMap(ObjectDigital::getId, ObjectDigital::getObjFromIds, (k1, k2) -> k1));
|
|
|
|
+ for (ObjectDigital objectDigital : objectDigitals) {
|
|
|
|
+ Set<String> objFromIds = CollUtil.defaultIfEmpty(objectDigital.getObjFromIds(),new HashSet<>());
|
|
|
|
+ objFromIds.addAll(setMap.getOrDefault(objectDigital.getId(),new HashSet<>()));
|
|
|
|
+ objectDigital.setObjFromIds(objFromIds);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
/***
|
|
/***
|
|
* Description: 过滤掉不需要的信息点
|
|
* Description: 过滤掉不需要的信息点
|