|
@@ -42,6 +42,7 @@ import org.apache.commons.lang.StringUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.io.IOException;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -187,7 +188,7 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
|
* Update By lijie 2021/8/24 16:37
|
|
|
*/
|
|
|
@Override
|
|
|
- public CommonResult<List<ObjectDigital>> queryObjectListSuperiorId(RequestData requestData) {
|
|
|
+ public CommonResult<List<ObjectDigital>> queryObjectListSuperiorId(RequestData requestData){
|
|
|
// 1.计算分页参数
|
|
|
Long page = requestData.getPage();
|
|
|
Long size = requestData.getSize();
|
|
@@ -210,7 +211,7 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
|
// 3.1 获取关系code列表
|
|
|
fillSubordinateRelCode(requestData);
|
|
|
// 3.2 调用查询语句查询相关内容
|
|
|
- return analysisQueryResultList(objectDigitalMapper.queryObjectListBySuperiorId(requestData),requestData,false);
|
|
|
+ return analysisQueryResultList(objectDigitalMapper.queryObjectListBySuperiorId(requestData),requestData,false,true);
|
|
|
}
|
|
|
/***
|
|
|
* Description: 查询指定楼层下所有指定空间类型的空间
|
|
@@ -329,6 +330,22 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
|
}
|
|
|
|
|
|
/***
|
|
|
+ * Description: 根据图类型编码及关系类型编码查询对象及其关联对象
|
|
|
+ * @param requestData : 请求参数
|
|
|
+ * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
|
|
|
+ * @author : lijie
|
|
|
+ * @date :2021/8/30 9:41
|
|
|
+ * Update By lijie 2021/8/30 9:41
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public CommonResult<List<ObjectDigital>> queryObjectListByGraphCodeAndRelCode(RequestData requestData) {
|
|
|
+ // 1.计算分页参数
|
|
|
+ computePageParam(requestData);
|
|
|
+ List<List<ObjectDigital>> objList = objectDigitalMapper.queryObjectListByGraphCodeAndRelCode(requestData);
|
|
|
+ return analysisQueryResultList(objList,requestData,false,false);
|
|
|
+ }
|
|
|
+
|
|
|
+ /***
|
|
|
* Description: 通用处理分页数据方法
|
|
|
* @param dataResult : 分页数据
|
|
|
* @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>>
|
|
@@ -415,7 +432,7 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
|
// 1.查询结果集
|
|
|
List<List<ObjectDigital>> resultList =
|
|
|
objectDigitalMapper.queryObjectDigitalsByProjectId(requestData,requestData.getSkip(),requestData.getSize());
|
|
|
- return analysisQueryResultList(resultList,requestData,true);
|
|
|
+ return analysisQueryResultList(resultList,requestData,true,true);
|
|
|
}
|
|
|
/***
|
|
|
* Description: 解析结果集
|
|
@@ -428,7 +445,8 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
|
*/
|
|
|
private CommonResult<List<ObjectDigital>> analysisQueryResultList(List<List<ObjectDigital>> resultList,
|
|
|
RequestData requestData,
|
|
|
- Boolean fillRelFlag) {
|
|
|
+ Boolean fillRelFlag,
|
|
|
+ Boolean fillSpaceFlag) {
|
|
|
if (CollUtil.isEmpty(resultList)){
|
|
|
return ResultHelper.multi(new ArrayList<>(),0);
|
|
|
}
|
|
@@ -445,10 +463,19 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
|
// 2.过滤信息点
|
|
|
retainObjInfos(pageResult,requestData.getReturnInfos());
|
|
|
// 3.处理Fl2Sp的关系,将对应的空间对象的楼层id扔进去
|
|
|
- fillFloorIdIntoSpaceObjFromIds(pageResult);
|
|
|
+ fillFloorIdIntoSpaceObjFromIds(pageResult,fillSpaceFlag);
|
|
|
return ResultHelper.multi(pageResult,totalCount.get(0).getTotalCount());
|
|
|
}
|
|
|
|
|
|
+ /***
|
|
|
+ * Description: 当只有项目时需要填充关系id
|
|
|
+ * @param pageResult : 查询的结果集
|
|
|
+ * @param fillRelFlag : 0-不注入关系数据,1-注入关系数据
|
|
|
+ * @return : void
|
|
|
+ * @author : lijie
|
|
|
+ * @date :2021/9/4 22:39
|
|
|
+ * Update By lijie 2021/9/4 22:39
|
|
|
+ */
|
|
|
private void fillRelIds(List<ObjectDigital> pageResult,
|
|
|
Boolean fillRelFlag) {
|
|
|
if (null==fillRelFlag || !fillRelFlag){
|
|
@@ -495,7 +522,10 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
|
|
|
* @date :2021/8/26 12:00
|
|
|
* Update By lijie 2021/8/26 12:00
|
|
|
*/
|
|
|
- private void fillFloorIdIntoSpaceObjFromIds(List<ObjectDigital> objectDigitals) {
|
|
|
+ private void fillFloorIdIntoSpaceObjFromIds(List<ObjectDigital> objectDigitals,Boolean fillSpaceFlag) {
|
|
|
+ if (null==fillSpaceFlag || !fillSpaceFlag){
|
|
|
+ return;
|
|
|
+ }
|
|
|
// 1.获得空间id
|
|
|
Set<String> spaceIds = objectDigitals.stream()
|
|
|
.filter(objectDigital -> DigitalObjectType.SPACE.getIndex().equals(objectDigital.getObjType()))
|