|
@@ -8,7 +8,6 @@ import cn.hutool.core.util.StrUtil;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
-import com.baomidou.mybatisplus.extension.api.R;
|
|
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
import com.fasterxml.jackson.databind.JsonNode;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
@@ -25,6 +24,7 @@ import com.persagy.dmp.common.constant.GraphCodeEnum;
|
|
import com.persagy.dmp.common.constant.RelCodeEnum;
|
|
import com.persagy.dmp.common.constant.RelCodeEnum;
|
|
import com.persagy.dmp.common.helper.SpringHelper;
|
|
import com.persagy.dmp.common.helper.SpringHelper;
|
|
import com.persagy.dmp.common.model.entity.AuditableEntity;
|
|
import com.persagy.dmp.common.model.entity.AuditableEntity;
|
|
|
|
+import com.persagy.dmp.digital.entity.ObjectDigital;
|
|
import com.persagy.dmp.digital.entity.ObjectRelation;
|
|
import com.persagy.dmp.digital.entity.ObjectRelation;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
@@ -113,7 +113,7 @@ public abstract class AbstractDataHandler implements DataHandlerService {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
// 1.特殊字段特殊处理
|
|
// 1.特殊字段特殊处理
|
|
- ObjectNode objectNode = handleSpecificField(element,objectNodeMap,currentModelFile,objectMapper);
|
|
|
|
|
|
+ ObjectNode objectNode = handleSpecificField(element,objectNodeMap,currentModelFile,objectMapper,relClassCode,relObjectType);
|
|
// 2.移除不需要的字段
|
|
// 2.移除不需要的字段
|
|
removeUnnecessaryField(element);
|
|
removeUnnecessaryField(element);
|
|
// 3.剩余字段的处理
|
|
// 3.剩余字段的处理
|
|
@@ -182,7 +182,7 @@ public abstract class AbstractDataHandler implements DataHandlerService {
|
|
* @author : lijie
|
|
* @author : lijie
|
|
* Update By 2022/1/22 15:56
|
|
* Update By 2022/1/22 15:56
|
|
*/
|
|
*/
|
|
- protected String generateCadid(String localId, String localName){
|
|
|
|
|
|
+ protected String generateCadId(String localId, String localName){
|
|
return Stream.of(localId,localName).filter(ObjectUtil::isNotNull).collect(joining(StrUtil.COLON));
|
|
return Stream.of(localId,localName).filter(ObjectUtil::isNotNull).collect(joining(StrUtil.COLON));
|
|
}
|
|
}
|
|
|
|
|
|
@@ -205,7 +205,7 @@ public abstract class AbstractDataHandler implements DataHandlerService {
|
|
* Update By 2022/1/22 15:54
|
|
* Update By 2022/1/22 15:54
|
|
*/
|
|
*/
|
|
protected String generateBimLocation(Location location){
|
|
protected String generateBimLocation(Location location){
|
|
- if (CollUtil.isEmpty(location.getPoints())){
|
|
|
|
|
|
+ if (null==location || CollUtil.isEmpty(location.getPoints())){
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
Point point = location.getPoints().get(0);
|
|
Point point = location.getPoints().get(0);
|
|
@@ -250,10 +250,13 @@ public abstract class AbstractDataHandler implements DataHandlerService {
|
|
* @author : lijie
|
|
* @author : lijie
|
|
* Update By 2022/1/22 15:14
|
|
* Update By 2022/1/22 15:14
|
|
*/
|
|
*/
|
|
- protected String generateLocalName(JSONArray parameters, String name, JsonNode localName){
|
|
|
|
|
|
+ protected String generateLocalName(JSONArray parameters, String name, JsonNode localName,String sourceId){
|
|
if (null!=localName && localName.isTextual()){
|
|
if (null!=localName && localName.isTextual()){
|
|
return localName.asText();
|
|
return localName.asText();
|
|
}
|
|
}
|
|
|
|
+ if (null==parameters || parameters.size()<=0){
|
|
|
|
+ return Stream.of(name,sourceId).filter(ObjectUtil::isNotNull).collect(joining(StrUtil.DASHED));
|
|
|
|
+ }
|
|
List<Parameter> list = parameters.toJavaList(Parameter.class);
|
|
List<Parameter> list = parameters.toJavaList(Parameter.class);
|
|
Optional<Parameter> nameParam = list.stream().filter(parameter -> NAME_VALUE.equals(parameter.getName())).findFirst();
|
|
Optional<Parameter> nameParam = list.stream().filter(parameter -> NAME_VALUE.equals(parameter.getName())).findFirst();
|
|
Optional<Parameter> codeParam = list.stream().filter(parameter -> CODE_VALUE.equals(parameter.getName())).findFirst();
|
|
Optional<Parameter> codeParam = list.stream().filter(parameter -> CODE_VALUE.equals(parameter.getName())).findFirst();
|
|
@@ -295,28 +298,31 @@ public abstract class AbstractDataHandler implements DataHandlerService {
|
|
* Update By 2022/1/22 18:29
|
|
* Update By 2022/1/22 18:29
|
|
*/
|
|
*/
|
|
private ObjectNode handleSpecificField(JSONObject element, Map<String, ObjectNode> objectNodeMap,
|
|
private ObjectNode handleSpecificField(JSONObject element, Map<String, ObjectNode> objectNodeMap,
|
|
- AdmModelFile currentModelFile, ObjectMapper objectMapper){
|
|
|
|
|
|
+ AdmModelFile currentModelFile, ObjectMapper objectMapper,
|
|
|
|
+ String classCode,String objType){
|
|
String sourceId = element.getString(SOURCE_ID);
|
|
String sourceId = element.getString(SOURCE_ID);
|
|
String bimId = generateBimId(currentModelFile.getProjectId(),currentModelFile.getFloorId(),sourceId);
|
|
String bimId = generateBimId(currentModelFile.getProjectId(),currentModelFile.getFloorId(),sourceId);
|
|
- ObjectNode objectNode = objectNodeMap.getOrDefault(bimId, objectMapper.createObjectNode());
|
|
|
|
|
|
+ ObjectNode objectNode = objectNodeMap.getOrDefault(bimId+StrUtil.UNDERLINE+classCode, objectMapper.createObjectNode());
|
|
JSONArray parameters = element.getJSONArray(PARAMETERS);
|
|
JSONArray parameters = element.getJSONArray(PARAMETERS);
|
|
Location location = element.getObject(LOCATION, Location.class);
|
|
Location location = element.getObject(LOCATION, Location.class);
|
|
JSONArray srcOutline = element.getJSONArray(OUTLINE);
|
|
JSONArray srcOutline = element.getJSONArray(OUTLINE);
|
|
String objName = element.getString(NAME);
|
|
String objName = element.getString(NAME);
|
|
- String localName = generateLocalName(parameters,objName,objectNode.get(AdmServerConstant.LOCAL_NAME));
|
|
|
|
|
|
+ String localName = generateLocalName(parameters,objName,objectNode.get(AdmServerConstant.LOCAL_NAME),sourceId);
|
|
String localId = generateLocalId(sourceId,objectNode.get(AdmServerConstant.LOCAL_ID));
|
|
String localId = generateLocalId(sourceId,objectNode.get(AdmServerConstant.LOCAL_ID));
|
|
String bimLocation = generateBimLocation(location);
|
|
String bimLocation = generateBimLocation(location);
|
|
JSONArray outline = generateOutline(srcOutline);
|
|
JSONArray outline = generateOutline(srcOutline);
|
|
- String cadId = generateCadid(localId,localName);
|
|
|
|
|
|
+ String cadId = generateCadId(localId,localName);
|
|
objectNode.put(AdmServerConstant.BIM_ID,bimId);
|
|
objectNode.put(AdmServerConstant.BIM_ID,bimId);
|
|
objectNode.put(AdmServerConstant.NAME,objName);
|
|
objectNode.put(AdmServerConstant.NAME,objName);
|
|
objectNode.put(AdmServerConstant.LOCAL_ID,localId);
|
|
objectNode.put(AdmServerConstant.LOCAL_ID,localId);
|
|
objectNode.put(AdmServerConstant.LOCAL_NAME,localName);
|
|
objectNode.put(AdmServerConstant.LOCAL_NAME,localName);
|
|
objectNode.put(AdmServerConstant.BIM_LOCATION,bimLocation);
|
|
objectNode.put(AdmServerConstant.BIM_LOCATION,bimLocation);
|
|
- objectNode.putPOJO(AdmServerConstant.OUTLINE,outline);
|
|
|
|
|
|
+ objectNode.putPOJO(AdmServerConstant.OUTLINE,null!=outline?outline.toJSONString():null);
|
|
objectNode.put(AdmServerConstant.CAD_ID,cadId);
|
|
objectNode.put(AdmServerConstant.CAD_ID,cadId);
|
|
objectNode.put(AdmServerConstant.FLOOR_ID,currentModelFile.getFloorId());
|
|
objectNode.put(AdmServerConstant.FLOOR_ID,currentModelFile.getFloorId());
|
|
objectNode.put(AdmServerConstant.BUILDING_ID,currentModelFile.getBuildingId());
|
|
objectNode.put(AdmServerConstant.BUILDING_ID,currentModelFile.getBuildingId());
|
|
|
|
+ objectNode.put(ObjectDigital.CLASS_CODE_HUM,classCode);
|
|
|
|
+ objectNode.put(ObjectDigital.OBJ_TYPE_HUM,objType);
|
|
return objectNode;
|
|
return objectNode;
|
|
}
|
|
}
|
|
/**
|
|
/**
|
|
@@ -396,6 +402,7 @@ public abstract class AbstractDataHandler implements DataHandlerService {
|
|
ObjectRelation objectRelation = new ObjectRelation();
|
|
ObjectRelation objectRelation = new ObjectRelation();
|
|
objectRelation.setObjFrom(objFrom);
|
|
objectRelation.setObjFrom(objFrom);
|
|
objectRelation.setObjTo(objTo);
|
|
objectRelation.setObjTo(objTo);
|
|
|
|
+ objectRelation.setGraphCode(graphCode);
|
|
objectRelation.setGraphId(StrUtil.format("Gt{}001",graphCode));
|
|
objectRelation.setGraphId(StrUtil.format("Gt{}001",graphCode));
|
|
objectRelation.setGroupCode(groupCode);
|
|
objectRelation.setGroupCode(groupCode);
|
|
objectRelation.setProjectId(projectId);
|
|
objectRelation.setProjectId(projectId);
|