Prechádzať zdrojové kódy

空间接口:接口

lvxianyun 3 rokov pred
rodič
commit
e0664e7e08

+ 100 - 7
src/main/java/com/persagy/proxy/adm/controller/AdmSpaceController.java

@@ -2,16 +2,25 @@ package com.persagy.proxy.adm.controller;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.proxy.adm.constant.AdmCommonConstant;
 import com.persagy.proxy.adm.model.*;
 import com.persagy.proxy.adm.request.AdmCreateRequest;
 import com.persagy.proxy.adm.request.AdmQueryCriteria;
 import com.persagy.proxy.adm.request.AdmResponse;
 import com.persagy.proxy.adm.service.IAdmBuildingService;
+import com.persagy.proxy.adm.service.IAdmFloorService;
+import com.persagy.proxy.adm.service.IAdmRelationService;
 import com.persagy.proxy.adm.service.IAdmSpaceService;
+import com.persagy.proxy.common.entity.DmpResult;
 import com.persagy.proxy.common.entity.InstanceUrlParam;
+import com.persagy.proxy.common.entity.RelationDTO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -21,6 +30,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.ws.rs.QueryParam;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -36,6 +46,10 @@ public class AdmSpaceController {
     private IAdmSpaceService service;
     @Autowired
     private IAdmBuildingService buildingService;
+    @Autowired
+    private IAdmRelationService relationService;
+    @Autowired
+    private IAdmFloorService floorService;
     @Value("${middleware.group.code}")
     private String groupCode;
 
@@ -170,19 +184,97 @@ public class AdmSpaceController {
     /**
      * 修改业务空间对象和建筑楼层的关系
      * spaceId 业务空间id,id 楼层或建筑id,type 业务空间的类型
-     * @param upDataFloorAndBuildingRequestsList
+     * @param voList
      * @return
      * @throws Exception
      */
     @PostMapping("/update-fl-bd")
-    public AdmResponse updateFlBd(@RequestBody List<AdmUpDataFloorAndBuildingRequests> upDataFloorAndBuildingRequestsList, @QueryParam("projectId") String projectId) throws Exception {
-        if(CollUtil.isEmpty(upDataFloorAndBuildingRequestsList)){
+    public AdmResponse updateFlBd(@RequestBody List<AdmUpDataFloorAndBuildingRequests> voList, @QueryParam("projectId") String projectId) throws Exception {
+        if(CollUtil.isEmpty(voList)){
             return AdmResponse.failure("不可以传入空数据");
         }
         // 组装上下文条件
         InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
-        List<AdmSpace> vos = service.doUpdateFloorORBuilding(context, upDataFloorAndBuildingRequestsList);
-        return AdmResponse.success(vos);
+        //List<AdmSpace> vos = service.doUpdateFloorORBuilding(context, upDataFloorAndBuildingRequestsList);
+        //TODO 循环删除 需要改为 批量删除
+        List<RelationDTO> RSpInBd_up = new ArrayList<>();
+        List<RelationDTO> RSpInFl_up = new ArrayList<>();
+        List<AdmSpace> space_up = new ArrayList<>();
+        QueryCriteria queryCriteria = new QueryCriteria();
+        voList.stream().forEach(requestData -> {
+            String spaceId = requestData.getSpaceId();
+            String id = requestData.getId();
+            String type = requestData.getType();//classCode
+
+            /** 清除空间和建筑楼层的的数据 */
+            ObjectNode rBd = JsonNodeFactory.instance.objectNode();
+            rBd.put("objTo",spaceId);
+            rBd.put("relCode","Bd2Sp");
+            queryCriteria.setCriteria(rBd);
+            relationService.doDelete(context, queryCriteria);
+
+            ObjectNode rFl = JsonNodeFactory.instance.objectNode();
+            rFl.put("objTo",spaceId);
+            rFl.put("relCode","Fl2Sp");
+            queryCriteria.setCriteria(rFl);
+            relationService.doDelete(context, queryCriteria);
+
+            if(StrUtil.isNotEmpty(id)){
+                if(id.startsWith("Fl") && StrUtil.isNotEmpty(spaceId)){
+                    AdmQueryCriteria admQueryCriteria = new AdmQueryCriteria();
+                    admQueryCriteria.setName("floor");
+                    AdmResponse admResponseFl = floorService.doQuery(context, admQueryCriteria, AdmFloor.class);
+                    if(CollUtil.isNotEmpty(admResponseFl.getContent())){
+                        AdmFloor floor = JSONUtil.toBean(admResponseFl.getContent().get(0).toString(), AdmFloor.class);
+                        if (floor!=null){
+                            //更新关系
+                            RelationDTO rBd_up = new RelationDTO();
+                            rBd_up.setObjTo(spaceId);
+                            rBd_up.setRelCode("Bd2Sp");
+                            rBd_up.setObjFrom(floor.getBuildingId());
+                            RSpInBd_up.add(rBd_up);
+
+                            RelationDTO rFl_up = new RelationDTO();
+                            rFl_up.setObjTo(spaceId);
+                            rFl_up.setRelCode("Fl2Sp");
+                            rFl_up.setObjFrom(floor.getId());
+                            RSpInFl_up.add(rFl_up);
+
+                            //更新实体
+                            AdmSpace space = new AdmSpace();
+                            space.setId(spaceId);
+                            space.setObjectType("space");
+                            space.setZoneType(type);
+                            space.setClassCode(type);
+                            space.setBuildingId(floor.getBuildingId());
+                            space.setFloorId(floor.getId());
+                            space_up.add(space);
+                        }
+                    }
+                }else if(id.startsWith("Bd")){
+                    //更新关系
+                    RelationDTO rBd_up = new RelationDTO();
+                    rBd_up.setObjTo(spaceId);
+                    rBd_up.setRelCode("Bd2Sp");
+                    rBd_up.setObjFrom(id);
+                    RSpInBd_up.add(rBd_up);
+
+                    //更新实体
+                    AdmSpace space = new AdmSpace();
+                    space.setId(spaceId);
+                    space.setObjectType("space");
+                    space.setZoneType(type);
+                    space.setClassCode(type);
+                    space.setBuildingId(id);
+                    space.setFloorId(null);
+                    space_up.add(space);
+                }
+            }
+        });
+        service.doUpdate(context, AdmSpace.class, space_up);
+        relationService.doSave(context, RSpInBd_up);
+        relationService.doSave(context, RSpInFl_up);
+         return AdmResponse.success(space_up);
     }
 
     /**
@@ -197,6 +289,7 @@ public class AdmSpaceController {
         InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
         List<AdmSpace> vos = CollUtil.newArrayList(createRequest.getContent());
         vos = service.doUpdate(context, AdmSpace.class, vos);
+        //TODO 更新计算关系ZoneSpaceBaseService.upDateOutline
         return AdmResponse.success(vos);
     }
 
@@ -209,7 +302,7 @@ public class AdmSpaceController {
      */
     @PostMapping("/query-outline")
     public AdmResponse queryOutline(@QueryParam("projectId") String projectId,
-                                      @RequestBody AdmQueryCriteria request) throws Exception {
+                                      @RequestBody AdmDCSQueryRequest request) throws Exception {
         // 组装上下文条件
         InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
         request.setName("space");
@@ -225,7 +318,7 @@ public class AdmSpaceController {
         list.add("infos");
         list.add("properties");
         request.setProjection(list);
-        return service.doQuery(context, request, AdmSpace.class);
+        return service.doQuerySpaces(context, request);
     }
 
 

+ 0 - 38
src/main/java/com/persagy/proxy/adm/service/IAdmSpaceService.java

@@ -28,47 +28,9 @@ public interface IAdmSpaceService extends IAdmBaseService<AdmSpace>{
     List<AdmSpace> doInsertExt(InstanceUrlParam context, Class<AdmSpace> clazz, List<AdmSpace> voList);
 
     /**
-     * 修改
-     * @param context
-     * @param clazz
-     * @param voList
-     * @return
-     */
-    List<AdmSpace> doUpdateExt(InstanceUrlParam context, Class<AdmSpace> clazz, List<AdmSpace> voList);
-
-    /**
-     * 修改空间对象的楼层建筑信息
-     * @param context
-     * @param voList
-     * @return
-     */
-    List<AdmSpace> doUpdateFloorORBuilding(InstanceUrlParam context, List<AdmUpDataFloorAndBuildingRequests> voList);
-
-    /**
-     * 修改空间轮廓线
-     * @param context
-     * @param clazz
-     * @param voList
-     * @return
-     */
-    List<AdmSpace> doUpdateOutline(InstanceUrlParam context, Class<AdmSpace> clazz, List<AdmSpace> voList);
-
-
-    /**
-     * 删除
-     *
-     * @param context
-     * @param voList
-     * @return
-     */
-    void doDeleteExt(InstanceUrlParam context, List<AdmSpace> voList);
-
-    /**
      * 查询业务空间所有类型
      */
     AdmResponse doQueryType(InstanceUrlParam context, AdmDCSQueryRequest request);
-
-
     /**
      * 查询业务空间 级联查询:建筑(buildingList),楼层(floorlList),空间类型(objectType)未明确楼层(isnull),未明确建筑(isnull)
      */

+ 0 - 37
src/main/java/com/persagy/proxy/adm/service/impl/AdmSpaceServiceImpl.java

@@ -14,7 +14,6 @@ import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.model.entity.BaseEntity;
 import com.persagy.dmp.define.entity.ObjectTypeDefine;
 import com.persagy.proxy.adm.model.*;
-import com.persagy.proxy.adm.request.AdmQueryCriteria;
 import com.persagy.proxy.adm.request.AdmResponse;
 import com.persagy.proxy.adm.service.IAdmSpaceService;
 import com.persagy.proxy.adm.utils.AdmQueryCriteriaHelper;
@@ -22,9 +21,7 @@ import com.persagy.proxy.common.client.DmpRwdClient;
 import com.persagy.proxy.common.entity.DmpResult;
 import com.persagy.proxy.common.entity.InstanceUrlParam;
 import com.persagy.proxy.common.entity.ObjRelationDTO;
-import com.sun.xml.internal.bind.v2.TODO;
 import lombok.extern.slf4j.Slf4j;
-import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -65,40 +62,6 @@ public class AdmSpaceServiceImpl extends AbstractAdmBaseServiceImpl<AdmSpace> im
     }
 
     @Override
-    public List<AdmSpace> doUpdateExt(InstanceUrlParam context, Class<AdmSpace> clazz, List<AdmSpace> voList) {
-        return null;
-    }
-
-
-
-    @Override
-    public List<AdmSpace> doUpdateFloorORBuilding(InstanceUrlParam context, List<AdmUpDataFloorAndBuildingRequests> voList) {
-
-            voList.stream().forEach(requestData -> {
-
-            });
-
-            //根据id查询对象集合
-            //处理关系
-
-
-
-
-
-        return null;
-    }
-
-    @Override
-    public List<AdmSpace> doUpdateOutline(InstanceUrlParam context, Class<AdmSpace> clazz, List<AdmSpace> voList) {
-        return null;
-    }
-
-    @Override
-    public void doDeleteExt(InstanceUrlParam context, List<AdmSpace> voList) {
-
-    }
-
-    @Override
     public AdmResponse doQueryType(InstanceUrlParam context, AdmDCSQueryRequest request) {
         //查询定义类型
         ObjectNode criteriaEq = JsonNodeFactory.instance.objectNode();