|
@@ -1,11 +1,12 @@
|
|
package com.persagy.proxy.calculation.service.impl;
|
|
package com.persagy.proxy.calculation.service.impl;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
-import java.util.Set;
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
+import com.persagy.dmp.basic.model.QueryCriteria;
|
|
|
|
+import com.persagy.dmp.common.constant.CommonConstant;
|
|
import com.persagy.dmp.common.helper.SpringHelper;
|
|
import com.persagy.dmp.common.helper.SpringHelper;
|
|
|
|
+import com.persagy.dmp.digital.client.DigitalObjectFacade;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
@@ -107,6 +108,44 @@ public class AdmManualRelCalServiceImpl implements AdmManualRelCalService {
|
|
return AdmCreateResponse.failure(request.getMainContent()+":从对象不能重复","2");
|
|
return AdmCreateResponse.failure(request.getMainContent()+":从对象不能重复","2");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ // 判断主内容重复
|
|
|
|
+ CommonResult<List<ObjectNode>> mainResult = queryMainContent(request.getType(),request.getMainContent(),relationTypeEnum.getMasterObjType());
|
|
|
|
+ if (!CommonConstant.QUERY_SUCCESS.equals(mainResult.getResult())){
|
|
|
|
+ return AdmCreateResponse.failure(mainResult.getMessage());
|
|
|
|
+ }
|
|
|
|
+ List<ObjectNode> mainResultData = mainResult.getData();
|
|
|
|
+ if (CollUtil.isEmpty(mainResultData)){
|
|
|
|
+ return AdmCreateResponse.failure(request.getMainContent()+":不存在","1");
|
|
|
|
+ }
|
|
|
|
+ if (mainResultData.size()>1){
|
|
|
|
+ return AdmCreateResponse.failure(request.getMainContent()+":存在多个实例","1");
|
|
|
|
+ }
|
|
|
|
+ // 判断从内容重复
|
|
|
|
+ CommonResult<List<ObjectNode>> fromResult = queryFromContent(request.getType(),request.getFromContent(),relationTypeEnum.getSlaveObjType());
|
|
|
|
+ if (!CommonConstant.QUERY_SUCCESS.equals(fromResult.getResult())){
|
|
|
|
+ return AdmCreateResponse.failure(fromResult.getMessage());
|
|
|
|
+ }
|
|
|
|
+ List<ObjectNode> fromResultData = fromResult.getData();
|
|
|
|
+ if (CollUtil.isEmpty(fromResultData)){
|
|
|
|
+ return AdmCreateResponse.failure(String.join(",", request.getFromContent()) +":不存在","2");
|
|
|
|
+ }
|
|
|
|
+ Map<String,List<ObjectNode>> fromMap = new HashMap<>();
|
|
|
|
+ for (ObjectNode node : fromResultData) {
|
|
|
|
+ List<ObjectNode> subList = fromMap.getOrDefault(node
|
|
|
|
+ .get(AdmObjectInfoConstant.CADID.equals(request.getType())?AdmObjectInfoConstant.CADID_INFO:request.getType()).asText(), new ArrayList<>());
|
|
|
|
+ subList.add(node);
|
|
|
|
+ fromMap.put(node
|
|
|
|
+ .get(AdmObjectInfoConstant.CADID.equals(request.getType())?AdmObjectInfoConstant.CADID_INFO:request.getType()).asText(),subList);
|
|
|
|
+ }
|
|
|
|
+ for (String fromContent : request.getFromContent()) {
|
|
|
|
+ if (!fromMap.containsKey(fromContent) || CollUtil.isEmpty(fromMap.get(fromContent))){
|
|
|
|
+ return AdmCreateResponse.failure(fromContent +":不存在","2");
|
|
|
|
+ }
|
|
|
|
+ if (fromMap.get(fromContent).size()>1){
|
|
|
|
+ return AdmCreateResponse.failure(fromContent +":存在多个实例","2");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
RequestData requestData = RequestData.builder()
|
|
RequestData requestData = RequestData.builder()
|
|
.graphCode(relationTypeEnum.getGraphCode())
|
|
.graphCode(relationTypeEnum.getGraphCode())
|
|
.relCode(relationTypeEnum.getRelCode())
|
|
.relCode(relationTypeEnum.getRelCode())
|
|
@@ -289,6 +328,50 @@ public class AdmManualRelCalServiceImpl implements AdmManualRelCalService {
|
|
|
|
|
|
}
|
|
}
|
|
/***
|
|
/***
|
|
|
|
+ * Description: 查询从内容
|
|
|
|
+ * @param type : 字段类型
|
|
|
|
+ * @param fromContent : 从内容
|
|
|
|
+ * @return : com.persagy.dmp.common.model.response.CommonResult<com.persagy.dmp.digital.entity.ObjectDigital>
|
|
|
|
+ * @author : lijie
|
|
|
|
+ * @date :2021/11/26 15:02
|
|
|
|
+ * Update By lijie 2021/11/26 15:02
|
|
|
|
+ */
|
|
|
|
+ private CommonResult<List<ObjectNode>> queryFromContent(String type, Set<String> fromContent,String objType) {
|
|
|
|
+ QueryCriteria queryCriteria = new QueryCriteria();
|
|
|
|
+ ObjectMapper objectMapper = SpringHelper.getBean(ObjectMapper.class);
|
|
|
|
+ ObjectNode objectNode = objectMapper.createObjectNode();
|
|
|
|
+ objectNode.put(ObjectDigital.PROP_VALID,Boolean.TRUE);
|
|
|
|
+ objectNode.putPOJO(AdmObjectInfoConstant.CADID.equals(type)?AdmObjectInfoConstant.CADID_INFO:type,fromContent);
|
|
|
|
+ objectNode.put(ObjectDigital.OBJ_TYPE_HUM,objType);
|
|
|
|
+ queryCriteria.setCriteria(objectNode);
|
|
|
|
+ return DigitalObjectFacade.queryPrototype(AppContext.getContext().getGroupCode(),
|
|
|
|
+ AppContext.getContext().getProjectId(),AppContext.getContext().getAppId(),
|
|
|
|
+ AppContext.getContext().getAccountId(),queryCriteria);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /***
|
|
|
|
+ * Description: 查询主内容
|
|
|
|
+ * @param type : 字段类型
|
|
|
|
+ * @param mainContent : 主内容
|
|
|
|
+ * @return : com.persagy.dmp.common.model.response.CommonResult<com.persagy.dmp.digital.entity.ObjectDigital>
|
|
|
|
+ * @author : lijie
|
|
|
|
+ * @date :2021/11/26 15:02
|
|
|
|
+ * Update By lijie 2021/11/26 15:02
|
|
|
|
+ */
|
|
|
|
+ private CommonResult<List<ObjectNode>> queryMainContent(String type, String mainContent,String objType) {
|
|
|
|
+ QueryCriteria queryCriteria = new QueryCriteria();
|
|
|
|
+ ObjectMapper objectMapper = SpringHelper.getBean(ObjectMapper.class);
|
|
|
|
+ ObjectNode objectNode = objectMapper.createObjectNode();
|
|
|
|
+ objectNode.put(ObjectDigital.PROP_VALID,Boolean.TRUE);
|
|
|
|
+ objectNode.put(AdmObjectInfoConstant.CADID.equals(type)?AdmObjectInfoConstant.CADID_INFO:type,mainContent);
|
|
|
|
+ objectNode.put(ObjectDigital.OBJ_TYPE_HUM,objType);
|
|
|
|
+ queryCriteria.setCriteria(objectNode);
|
|
|
|
+ return DigitalObjectFacade.queryPrototype(AppContext.getContext().getGroupCode(),
|
|
|
|
+ AppContext.getContext().getProjectId(),AppContext.getContext().getAppId(),
|
|
|
|
+ AppContext.getContext().getAccountId(),queryCriteria);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /***
|
|
* Description: 删除关系
|
|
* Description: 删除关系
|
|
* @param admManualRelationCalcDel : 请求参数
|
|
* @param admManualRelationCalcDel : 请求参数
|
|
* @return : com.persagy.proxy.adm.request.AdmCreateResponse
|
|
* @return : com.persagy.proxy.adm.request.AdmCreateResponse
|