|
@@ -9,7 +9,12 @@ import com.alibaba.fastjson.JSONObject;
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
|
import com.persagy.dmp.basic.model.QueryCriteria;
|
|
|
+import com.persagy.dmp.common.constant.CommonConstant;
|
|
|
+import com.persagy.dmp.common.context.AppContext;
|
|
|
import com.persagy.dmp.common.helper.SpringHelper;
|
|
|
+import com.persagy.dmp.common.model.response.CommonResult;
|
|
|
+import com.persagy.dmp.digital.client.DigitalRelationProjectCalFacade;
|
|
|
+import com.persagy.dmp.digital.entity.ObjectRelation;
|
|
|
import com.persagy.proxy.adm.constant.AdmRelationTypeEnum;
|
|
|
import com.persagy.proxy.adm.constant.GraphCodeEnum;
|
|
|
import com.persagy.proxy.adm.constant.RelCodeEnum;
|
|
@@ -21,16 +26,15 @@ import com.persagy.proxy.calculation.service.AdmRelCalService;
|
|
|
import com.persagy.proxy.common.entity.DmpResult;
|
|
|
import com.persagy.proxy.common.entity.InstanceUrlParam;
|
|
|
import com.persagy.proxy.object.model.AdmFloor;
|
|
|
+import com.persagy.proxy.object.model.AdmSpace;
|
|
|
import com.persagy.proxy.object.service.IAdmFloorService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.scheduling.annotation.Async;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* ADM 楼层 实现类
|
|
@@ -99,19 +103,69 @@ public class AdmFloorServiceImpl extends AbstractAdmBaseServiceImpl<AdmFloor> im
|
|
|
listtype.add("pe2bd")
|
|
|
listtype.add("pe2fl")
|
|
|
*/
|
|
|
- admRelCalService.calcRelation(AdmContextUtil.toDmpContext(),
|
|
|
- //暂不支持资产的关系计算
|
|
|
- CollUtil.newArrayList(
|
|
|
- AdmRelationTypeEnum.SH2BD,
|
|
|
- AdmRelationTypeEnum.BD2SP,
|
|
|
- AdmRelationTypeEnum.FL2SP,
|
|
|
- AdmRelationTypeEnum.SYEQ2BD,
|
|
|
- AdmRelationTypeEnum.SY2FL,
|
|
|
- AdmRelationTypeEnum.EQ2FL
|
|
|
- //AdmRelationTypeEnum.PE2BD,
|
|
|
- //AdmRelationTypeEnum.PE2FL
|
|
|
- ),
|
|
|
- null);
|
|
|
+ // 2021年12月15日12:17:10 by lijie
|
|
|
+ // 改为原有逻辑:仅更新计算标记,不需要计算
|
|
|
+ // 1.根据关系枚举查询对应项目的关系计算数据
|
|
|
+ List<AdmRelationTypeEnum> admRelationTypeEnums = CollUtil.newArrayList(AdmRelationTypeEnum.SH2BD,
|
|
|
+ AdmRelationTypeEnum.BD2SP,
|
|
|
+ AdmRelationTypeEnum.FL2SP,
|
|
|
+ AdmRelationTypeEnum.SYEQ2BD,
|
|
|
+ AdmRelationTypeEnum.SY2FL,
|
|
|
+ AdmRelationTypeEnum.EQ2FL,
|
|
|
+ AdmRelationTypeEnum.PE2BD,
|
|
|
+ AdmRelationTypeEnum.PE2FL);
|
|
|
+ Set<String> graphCodes = admRelationTypeEnums.stream()
|
|
|
+ .filter(admRelationTypeEnum -> StrUtil.isNotBlank(admRelationTypeEnum.getGraphCode()))
|
|
|
+ .map(AdmRelationTypeEnum::getGraphCode)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ Set<String> relCodes = admRelationTypeEnums.stream()
|
|
|
+ .filter(admRelationTypeEnum -> StrUtil.isNotBlank(admRelationTypeEnum.getRelCode()))
|
|
|
+ .map(AdmRelationTypeEnum::getRelCode)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ QueryCriteria queryCriteria = new QueryCriteria();
|
|
|
+ ObjectMapper objectMapper = SpringHelper.getBean(ObjectMapper.class);
|
|
|
+ ObjectNode criteria = objectMapper.createObjectNode();
|
|
|
+ criteria.putPOJO(ObjectRelation.GRAPH_CODE_HUM,graphCodes);
|
|
|
+ criteria.putPOJO(ObjectRelation.REL_CODE_HUM,relCodes);
|
|
|
+ criteria.put(ObjectRelation.PROP_VALID,Boolean.TRUE);
|
|
|
+ queryCriteria.setCriteria(criteria);
|
|
|
+ CommonResult<List<ObjectNode>> commonResult = DigitalRelationProjectCalFacade
|
|
|
+ .queryPrototype(AppContext.getContext().getGroupCode(),
|
|
|
+ AppContext.getContext().getProjectId(), AppContext.getContext().getAppId(),
|
|
|
+ AppContext.getContext().getAccountId(), queryCriteria);
|
|
|
+ if (!CommonConstant.QUERY_SUCCESS.equals(commonResult.getResult())
|
|
|
+ || CollUtil.isEmpty(commonResult.getData())){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<ObjectNode> updateDatas = CollUtil.newArrayList();
|
|
|
+ // 2.过滤及处理数据
|
|
|
+ Set<String> graphRelSet = new HashSet<>();
|
|
|
+ for (AdmRelationTypeEnum admRelationTypeEnum : admRelationTypeEnums) {
|
|
|
+ graphRelSet.add(admRelationTypeEnum.getGraphCode()+StrUtil.UNDERLINE+admRelationTypeEnum.getRelCode());
|
|
|
+ }
|
|
|
+ for (ObjectNode objectNode : commonResult.getData()) {
|
|
|
+ if (!objectNode.has(ObjectRelation.GRAPH_CODE_HUM)
|
|
|
+ || !objectNode.get(ObjectRelation.GRAPH_CODE_HUM).isTextual()
|
|
|
+ || StrUtil.isBlank(objectNode.get(ObjectRelation.GRAPH_CODE_HUM).asText())
|
|
|
+ || !objectNode.has(ObjectRelation.REL_CODE_HUM)
|
|
|
+ || !objectNode.get(ObjectRelation.REL_CODE_HUM).isTextual()
|
|
|
+ || StrUtil.isBlank(objectNode.get(ObjectRelation.REL_CODE_HUM).asText())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ String key = objectNode.get(ObjectRelation.GRAPH_CODE_HUM).asText()+StrUtil.UNDERLINE
|
|
|
+ +objectNode.get(ObjectRelation.REL_CODE_HUM).asText();
|
|
|
+ if (!graphRelSet.contains(key)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ objectNode.put("computationalState","2");
|
|
|
+ updateDatas.add(objectNode);
|
|
|
+ }
|
|
|
+ if (CollUtil.isNotEmpty(updateDatas)){
|
|
|
+ // 3.批量更新数据
|
|
|
+ DigitalRelationProjectCalFacade.update(AppContext.getContext().getGroupCode(),
|
|
|
+ AppContext.getContext().getProjectId(), AppContext.getContext().getAppId(),
|
|
|
+ AppContext.getContext().getAccountId(),updateDatas);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/***
|