Ver código fonte

设备与楼层关系

yucheng 3 anos atrás
pai
commit
e8f2f6d62f

+ 2 - 2
src/main/java/com/persagy/proxy/adm/model/AdmBaseEntity.java

@@ -4,8 +4,8 @@ import com.persagy.dmp.common.model.entity.BaseEntity;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
-import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * @author lvxy
@@ -21,6 +21,6 @@ public abstract class AdmBaseEntity<T> extends BaseEntity {
     /** 集团编码 */
     private String groupCode;
     /** 需要删除的对象 */
-    private List<String> nullList;
+    private Set<String> nullList;
 
 }

+ 1 - 1
src/main/java/com/persagy/proxy/dictionary/service/impl/AdmModelRelServiceImpl.java

@@ -195,7 +195,7 @@ public class AdmModelRelServiceImpl extends AbstractAdmBaseServiceImpl<AdmModelR
         if(CollUtil.isEmpty(content)) {
             return;
         }
-        List<String> nullList = CollUtil.newArrayList("buildingId", "floorId");
+        Set<String> nullList = CollUtil.newHashSet("buildingId", "floorId");
         for (AdmISpace iSpace : content) {
             if(deleteFlag) {
                 iSpace.setBuildingId(null);

+ 2 - 2
src/main/java/com/persagy/proxy/object/model/AdmISpace.java

@@ -4,8 +4,8 @@ import com.fasterxml.jackson.databind.node.ArrayNode;
 import lombok.Data;
 
 import java.util.Date;
-import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * ADM 元空间 实体
@@ -80,5 +80,5 @@ public class AdmISpace {
     /** 创建时间 */
     private Date createTime;
     /** 需要删除的对象 */
-    private List<String> nullList;
+    private Set<String> nullList;
 }

+ 16 - 9
src/main/java/com/persagy/proxy/object/service/impl/AdmEquipmentServiceImpl.java

@@ -144,27 +144,34 @@ public class AdmEquipmentServiceImpl extends AbstractAdmBaseServiceImpl<AdmEquip
         // 待新增关系
         List<RelationDTO> relations = new ArrayList();
         for(AdmEquipment vo:voList) {
-            // 加入删除关系
-            arrayNode.add(vo.getId());
-            // 如果建筑ID为空,不用增加关系
-            if(isDelete || StrUtil.isBlank(vo.getBuildingId())) {
+            // 如果为删除或是清除buildingId和floorId,则直接删除
+            if(isDelete || CollUtil.containsAll(vo.getNullList(), CollUtil.newHashSet("buildingId", "floorId"))) {
+                arrayNode.add(vo.getId());
+                continue;
+            }
+            // 不用增加关系
+            if(StrUtil.isBlank(vo.getBuildingId())) {
                 continue;
             }
+            // 先清除原来的关系
+            arrayNode.add(vo.getId());
             // 增加BD关系
             relations.add(RelationDTO.builder().graphCode(graphCode).relCode(buildingRelCode).objFrom(vo.getId()).objTo(vo.getBuildingId()).build());
-            if(StrUtil.isBlank(vo.getFloorId())) {
+            // 如果有删除楼层关系
+            if(StrUtil.isBlank(vo.getFloorId()) || CollUtil.contains(vo.getNullList(), "floorId")) {
                 continue;
             }
             // 增加FL关系
             relations.add(RelationDTO.builder().graphCode(graphCode).relCode(floorRelCode).objFrom(vo.getId()).objTo(vo.getFloorId()).build());
         }
         // 先删除旧关系
-        relationService.doDelete(context, criteria);
+        if(arrayNode.size() > 0) {
+            relationService.doDelete(context, criteria);
+        }
         // 再创建新关系
-        if(CollUtil.isEmpty(relations)) {
-            return;
+        if(CollUtil.isNotEmpty(relations)) {
+            relationService.doSave(context, relations);
         }
-        relationService.doSave(context, relations);
     }
 
     @Override