Browse Source

fix create/delete equipment deal with relation

lvxianyun 3 years ago
parent
commit
ec63110dc8

+ 41 - 0
src/main/java/com/persagy/proxy/object/controller/AdmEquipmentController.java

@@ -153,6 +153,8 @@ public class AdmEquipmentController {
 			return AdmCreateResponse.success();
 		}
 		filterVOs = service.doInsert(AdmContextUtil.toDmpContext(), AdmEquipment.class, filterVOs);
+		//处理关系
+        processRelations(filterVOs);
 		return AdmCreateResponse.success(filterVOs);
 	}
 
@@ -166,6 +168,12 @@ public class AdmEquipmentController {
 	public AdmResponse delete( @RequestBody List<AdmEquipment> vos) throws Exception {
 		// 组装上下文条件
 		service.doDelete(AdmContextUtil.toDmpContext(), vos);
+        QueryCriteria queryCriteria = new QueryCriteria();
+        vos.forEach(vo -> {
+            /** 清除空间和建筑楼层的的数据 */
+            dealRelation(vo.getId(), queryCriteria, AdmRelationTypeEnum.EQ2BD.getRelCode());
+            dealRelation(vo.getId(), queryCriteria, AdmRelationTypeEnum.EQ2FL.getRelCode());
+        });
 		return AdmResponse.success();
 	}
 
@@ -1106,4 +1114,37 @@ public class AdmEquipmentController {
 		this.setColor(workbook,56,94,15,createCell);
 	}
 
+    /**
+     * 添加绑定关系
+     */
+    private void processRelations(List<AdmEquipment> vosR){
+        if(CollUtil.isNotEmpty(vosR)) {
+            List<RelationDTO> relationDTOS = new ArrayList<>(vosR.size());
+            vosR.forEach(admEquipment -> {
+                if (StrUtil.isNotEmpty(admEquipment.getBuildingId())) {
+                    relationDTOS.add(new RelationDTO(null, AdmRelationTypeEnum.EQ2BD.getGraphCode(), AdmRelationTypeEnum.EQ2BD.getRelCode(), admEquipment.getClassCode(), admEquipment.getId(), admEquipment.getBuildingId()));
+                }
+                if (StrUtil.isNotEmpty(admEquipment.getFloorId())) {
+                    relationDTOS.add(new RelationDTO(null, AdmRelationTypeEnum.EQ2FL.getGraphCode(), AdmRelationTypeEnum.EQ2FL.getRelCode(), admEquipment.getClassCode(), admEquipment.getId(),admEquipment.getFloorId()));
+                }
+            });
+            if (CollUtil.isNotEmpty(relationDTOS)) {
+                relationService.doSave(AdmContextUtil.toDmpContext(), relationDTOS);
+            }
+        }
+    }
+
+    /**
+     * 删除关系
+     * @param euipId
+     * @param queryCriteria
+     * @param relCode
+     */
+    private void dealRelation(String euipId, QueryCriteria queryCriteria, String relCode){
+        ObjectNode rBd = JsonNodeFactory.instance.objectNode();
+        rBd.put("objFrom",euipId);
+        rBd.put("relCode",relCode);
+        queryCriteria.setCriteria(rBd);
+        relationService.doDelete(AdmContextUtil.toDmpContext(), queryCriteria);
+    }
 }