|
@@ -4,13 +4,20 @@ import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.map.MapUtil;
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
-import com.persagy.proxy.adm.constant.AdmDictCategoryEnum;
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
+import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
|
+import com.persagy.dmp.common.constant.CommonConstant;
|
|
|
+import com.persagy.dmp.common.helper.SpringHelper;
|
|
|
+import com.persagy.dmp.digital.client.DigitalRelationFacade;
|
|
|
+import com.persagy.dmp.digital.entity.ObjectRelation;
|
|
|
+import com.persagy.proxy.adm.constant.*;
|
|
|
import com.persagy.proxy.adm.request.AdmCreateRequest;
|
|
|
import com.persagy.proxy.adm.request.AdmCreateResponse;
|
|
|
import com.persagy.proxy.adm.request.AdmQueryCriteria;
|
|
|
import com.persagy.proxy.adm.request.AdmResponse;
|
|
|
import com.persagy.proxy.adm.utils.AdmContextUtil;
|
|
|
import com.persagy.proxy.adm.utils.ObjectNameUtil;
|
|
|
+import com.persagy.proxy.common.entity.InstanceUrlParam;
|
|
|
import com.persagy.proxy.dictionary.model.AdmDict;
|
|
|
import com.persagy.proxy.dictionary.model.AdmObjectType;
|
|
|
import com.persagy.proxy.dictionary.service.IAdmDictService;
|
|
@@ -81,10 +88,13 @@ public class AdmComponentController {
|
|
|
}
|
|
|
// 设备属性调整
|
|
|
List<AdmComponent> filterVOs = new ArrayList<>();
|
|
|
+ List<ObjectNode> relations = new ArrayList<>();
|
|
|
+ ObjectMapper objectMapper = SpringHelper.getBean(ObjectMapper.class);
|
|
|
+ InstanceUrlParam context = AdmContextUtil.toDmpContext();
|
|
|
for(AdmComponent component:vos) {
|
|
|
// 如果不是Eq开头,则重新生成ID
|
|
|
- if(StrUtil.startWith(component.getId(), "Ec")) {
|
|
|
- component.setId("Ec"+ IdUtil.simpleUUID());
|
|
|
+ if(!StrUtil.startWith(component.getId(), "Ec")) {
|
|
|
+ component.setId("Ec"+context.getProjectId().substring(2)+ IdUtil.simpleUUID());
|
|
|
}
|
|
|
// 类型编码适配
|
|
|
String classCode = component.getClassCode();
|
|
@@ -106,11 +116,33 @@ public class AdmComponentController {
|
|
|
String preName = dict == null ? "部件" : dict.getName();
|
|
|
component.setName(ObjectNameUtil.objectName(preName + "-"));
|
|
|
}
|
|
|
+ // 处理设备与部件的关系
|
|
|
+ if (StrUtil.isNotBlank(component.getParentId())
|
|
|
+ && component.getParentId().startsWith("Eq")){
|
|
|
+ ObjectNode node = objectMapper.createObjectNode();
|
|
|
+ node.putPOJO("groupCode",context.getGroupCode());
|
|
|
+ node.putPOJO("projectId",context.getProjectId());
|
|
|
+ node.putPOJO("createApp",AdmCommonConstant.APP_ID);
|
|
|
+ node.putPOJO("creator",context.getUserId());
|
|
|
+ node.putPOJO("updateApp",AdmCommonConstant.APP_ID);
|
|
|
+ node.putPOJO("modifier",context.getUserId());
|
|
|
+ node.putPOJO("graphCode",GraphCodeEnum.MechSubset.name());
|
|
|
+ node.putPOJO("relCode",RelCodeEnum.Eq2Ec.name());
|
|
|
+ node.putPOJO("graphId",StrUtil.format(CommonConstant.DEFAULT_GRAPH_ID_FORMAT,GraphCodeEnum.MechSubset.name()));
|
|
|
+ node.putPOJO("valid",1);
|
|
|
+ node.putPOJO("objFrom",component.getParentId());
|
|
|
+ node.putPOJO("objTo",component.getId());
|
|
|
+ relations.add(node);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
if(CollUtil.isEmpty(filterVOs)){
|
|
|
return AdmCreateResponse.success();
|
|
|
}
|
|
|
- filterVOs = service.doInsert(AdmContextUtil.toDmpContext(), AdmComponent.class, filterVOs);
|
|
|
+ filterVOs = service.doInsert(context, AdmComponent.class, filterVOs);
|
|
|
+ if (CollUtil.isNotEmpty(relations)){
|
|
|
+ DigitalRelationFacade.create(context.getGroupCode(),context.getProjectId(),AdmCommonConstant.APP_ID,context.getUserId(),relations);
|
|
|
+ }
|
|
|
return AdmCreateResponse.success(filterVOs);
|
|
|
}
|
|
|
|