|
@@ -5,7 +5,9 @@ import cn.hutool.core.map.MapUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
|
|
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
|
+import com.persagy.dmp.common.context.AppContext;
|
|
|
import com.persagy.dmp.common.exception.BusinessException;
|
|
|
+import com.persagy.dmp.common.helper.SpringHelper;
|
|
|
import com.persagy.dmp.digital.entity.ObjectRelationProjectCal;
|
|
|
import com.persagy.proxy.adm.constant.AdmCommonConstant;
|
|
|
import com.persagy.proxy.adm.constant.AdmRelationTypeEnum;
|
|
@@ -23,8 +25,10 @@ import com.persagy.proxy.object.model.AdmISpace;
|
|
|
import com.persagy.proxy.object.service.IAdmEquipmentService;
|
|
|
import com.persagy.proxy.object.service.IAdmFloorService;
|
|
|
import com.persagy.proxy.object.service.IAdmISpaceService;
|
|
|
+import com.persagy.proxy.object.service.IAdmSpaceService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.scheduling.annotation.Async;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.*;
|
|
@@ -65,9 +69,10 @@ public class AdmModelRelServiceImpl extends AbstractAdmBaseServiceImpl<AdmModelR
|
|
|
}
|
|
|
log.info("模型修改设备元空间参数{},{}"+context,vo);
|
|
|
// 在用模型的楼层计算状态改为2
|
|
|
- processFloorCalState(context, vo.getModelId());
|
|
|
+ //处理关系标记
|
|
|
+ SpringHelper.getBean(IAdmModelRelService.class).processFloorCalState(context, vo.getModelId());
|
|
|
AdmFloor floorEntity = admFloors.get(0);
|
|
|
- processRelObjects(context, vo.getOldBimId(), vo.getBimId(), floorEntity);
|
|
|
+ SpringHelper.getBean(IAdmModelRelService.class).processRelObjects(context, vo.getOldBimId(), vo.getBimId(), floorEntity);
|
|
|
// 补充楼层属性
|
|
|
Map<String, Object> infos = floorEntity.getInfos();
|
|
|
if(CollUtil.isEmpty(infos)){
|
|
@@ -87,10 +92,13 @@ public class AdmModelRelServiceImpl extends AbstractAdmBaseServiceImpl<AdmModelR
|
|
|
|
|
|
/**
|
|
|
* 处理在用模型文件的楼层计算状态
|
|
|
- * @param context
|
|
|
- * @param modelId
|
|
|
+ * @param context:上下文对象
|
|
|
+ * @param modelId:模型id
|
|
|
*/
|
|
|
- private void processFloorCalState(InstanceUrlParam context, String modelId) {
|
|
|
+ @Async
|
|
|
+ @Override
|
|
|
+ public void processFloorCalState(InstanceUrlParam context, String modelId) {
|
|
|
+ resetContext(context);
|
|
|
List<AdmFloor> floorList = queryFloorEntity(context, modelId, null);
|
|
|
if(CollUtil.isEmpty(floorList)) {
|
|
|
return;
|
|
@@ -109,12 +117,15 @@ public class AdmModelRelServiceImpl extends AbstractAdmBaseServiceImpl<AdmModelR
|
|
|
|
|
|
/**
|
|
|
* 处理关联的元空间和设备
|
|
|
- * @param context
|
|
|
- * @param oldBimId
|
|
|
- * @param bimId
|
|
|
- * @param floor
|
|
|
+ * @param context:上下文对象
|
|
|
+ * @param oldBimId:旧的bimId
|
|
|
+ * @param bimId:新的bimId
|
|
|
+ * @param floor:楼层对象
|
|
|
*/
|
|
|
- private void processRelObjects(InstanceUrlParam context, String oldBimId, String bimId, AdmFloor floor) {
|
|
|
+ @Async
|
|
|
+ @Override
|
|
|
+ public void processRelObjects(InstanceUrlParam context, String oldBimId, String bimId, AdmFloor floor) {
|
|
|
+ resetContext(context);
|
|
|
// 如果bimId不一致,则清空原来的楼层信息
|
|
|
if(StrUtil.isNotBlank(oldBimId) && !StrUtil.equals(oldBimId, bimId)) {
|
|
|
updateRelEquipments(context, oldBimId, floor, true);
|
|
@@ -124,6 +135,19 @@ public class AdmModelRelServiceImpl extends AbstractAdmBaseServiceImpl<AdmModelR
|
|
|
updateRelEquipments(context, bimId, floor, false);
|
|
|
updateRelISpace(context, bimId, floor, false);
|
|
|
}
|
|
|
+ /***
|
|
|
+ * Description: 重新设置一下上下文
|
|
|
+ * @param context : 上下文对象
|
|
|
+ * return : void
|
|
|
+ * @author : lijie
|
|
|
+ * Update By 2021/12/21 11:57
|
|
|
+ */
|
|
|
+ private void resetContext(InstanceUrlParam context){
|
|
|
+ AppContext.getContext().setGroupCode(context.getGroupCode());
|
|
|
+ AppContext.getContext().setProjectId(context.getProjectId());
|
|
|
+ AppContext.getContext().setAccountId(context.getUserId());
|
|
|
+ AppContext.getContext().setAppId(context.getAppId());
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 更新设备
|