Browse Source

fix: 空间内的系统,穿透属性查询处理

lvxianyun 3 years ago
parent
commit
3f3c83a01b

+ 1 - 1
src/main/java/com/persagy/proxy/adm/model/AdmSpace.java

@@ -108,7 +108,7 @@ public class AdmSpace extends AdmSBaseEntity<AdmSpace>{
     @CascadeColumn(graphCode = "MechInArch", relCode = "Sp2Si")
     private List<AdmISpace> zoneIspace;
     /** 级联-系统 */
-    @CascadeColumn(graphCode = "MechForArch", relCode = "Sy2Sp", selectToObj = false)
+    @CascadeColumn(graphCode = "MechInArch", relCode = "Sy2Sp", selectToObj = false)
     private List<AdmSystem> generalSystem;
     /** 级联-服务于空间的设备 */
     @CascadeColumn(graphCode = "MechForArch", relCode = "Eq2Sp", selectToObj = false)

+ 17 - 2
src/main/java/com/persagy/proxy/adm/service/impl/AdmSpaceServiceImpl.java

@@ -19,6 +19,7 @@ import com.persagy.proxy.adm.request.AdmResponse;
 import com.persagy.proxy.adm.service.IAdmEquipmentService;
 import com.persagy.proxy.adm.service.IAdmRelationService;
 import com.persagy.proxy.adm.service.IAdmSpaceService;
+import com.persagy.proxy.adm.service.IAdmSystemService;
 import com.persagy.proxy.adm.utils.AdmContextUtil;
 import com.persagy.proxy.common.client.DmpRwdClient;
 import com.persagy.proxy.common.entity.DmpResult;
@@ -46,7 +47,9 @@ public class AdmSpaceServiceImpl extends AbstractAdmBaseServiceImpl<AdmSpace> im
     @Autowired
     private IAdmRelationService relationService;
     @Autowired
-    protected IAdmEquipmentService equipmentService;
+    private IAdmEquipmentService equipmentService;
+    @Autowired
+    private IAdmSystemService systemService;
 
     @Override
     public AdmResponse doQuery(InstanceUrlParam context, AdmQueryCriteria request, Class<AdmSpace> clazz) {
@@ -187,7 +190,7 @@ public class AdmSpaceServiceImpl extends AbstractAdmBaseServiceImpl<AdmSpace> im
         if(CollUtil.isEmpty(vos)) {
             return;
         }
-        // 给系统赋值 - 同时收集设备对象,扩展设备对象赋值
+        // 1. 收集空间的设备对象,扩展设备对象赋值
         List<AdmEquipment> equipmentList = new ArrayList<>();
         for(AdmSpace vo:vos) {
             // 收集设备对象
@@ -198,6 +201,18 @@ public class AdmSpaceServiceImpl extends AbstractAdmBaseServiceImpl<AdmSpace> im
         }
         // 对象扩展属性赋值
         equipmentService.ensureSpecialValues(context, equipmentList);
+
+        //2.收集空间的系统 扩展系统、及系统下设备对象赋值
+        List<AdmSystem> admSystemList = new ArrayList<>();
+        for(AdmSpace vo:vos) {
+            // 收集设备对象
+            if(CollUtil.isEmpty(vo.getGeneralSystem())) {
+                continue;
+            }
+            admSystemList.addAll(vo.getGeneralSystem());
+        }
+        // 对象扩展属性赋值
+        systemService.ensureSpecialValues(context, admSystemList);
     }
 
     @Override