Quellcode durchsuchen

新增系统 如有楼层和建筑,添加关联关系

lvxianyun vor 3 Jahren
Ursprung
Commit
13b6c0d973

+ 36 - 7
src/main/java/com/persagy/proxy/adm/controller/AdmSystemController.java

@@ -20,14 +20,12 @@ 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.IAdmDictService;
-import com.persagy.proxy.adm.service.IAdmFloorService;
-import com.persagy.proxy.adm.service.IAdmSystemService;
+import com.persagy.proxy.adm.service.*;
 import com.persagy.proxy.adm.utils.AdmContextUtil;
 import com.persagy.proxy.adm.utils.AdmQueryCriteriaHelper;
 import com.persagy.proxy.adm.utils.ObjectNameUtil;
 import com.persagy.proxy.common.entity.DmpResult;
+import com.persagy.proxy.common.entity.RelationDTO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -56,6 +54,8 @@ public class AdmSystemController {
     private IAdmFloorService floorService;
     @Autowired
     private IAdmDictService dictService;
+    @Autowired
+    private IAdmRelationService relationService;
 
     /**
      * 统计
@@ -91,7 +91,7 @@ public class AdmSystemController {
      * @throws Exception
      */
     @PostMapping("/create-bd-fl")
-    public AdmResponse createBdFl(@RequestBody AdmCreateRequest<AdmSystem> createRequest, @QueryParam("projectId") String projectId) throws Exception {
+    public AdmResponse createBdFl(@RequestBody AdmCreateRequest<AdmSystem> createRequest) throws Exception {
         List<AdmSystem> vos = CollUtil.newArrayList(createRequest.getContent());
 
         Map<String, AdmSystem> admSystemMap = CollUtil.fieldValueMap(vos, "classCode");
@@ -112,8 +112,37 @@ public class AdmSystemController {
                 }
             }
         });
-        vos = service.doInsert(AdmContextUtil.toDmpContext(), AdmSystem.class, vos);
-        return AdmResponse.success(vos);
+        List<AdmSystem> unRelationSys = new ArrayList<>();
+        List<AdmSystem> admSystemList = new ArrayList<>(vos.size());
+        vos.stream().forEach(admSystem -> {
+            if(CollUtil.isNotEmpty(admSystem.getBuildingFloorInfoList())){
+                List<AdmSystem> admSystems = service.doInsert(AdmContextUtil.toDmpContext(), AdmSystem.class, CollUtil.newArrayList(admSystem));
+                //添加关系
+                String systemId = admSystems.get(0).getId();
+                List<RelationDTO> relationDTOS = new ArrayList<>(admSystem.getBuildingFloorInfoList().size());
+                admSystem.getBuildingFloorInfoList().forEach(info -> {
+                    String floorId = info.get("FloorID").textValue();
+                    String buildID = info.get("BuildID").textValue();
+                    if(StrUtil.isNotEmpty(floorId)){
+                        relationDTOS.add(new RelationDTO(null, "MechInArch", "Bd2Fl", null, systemId , floorId));
+                    }
+                    if(StrUtil.isNotEmpty(buildID)){
+                        relationDTOS.add(new RelationDTO(null, "MechForArch", "Sy2Bd", null, systemId , buildID));
+                    }
+                });
+                if(CollUtil.isNotEmpty(relationDTOS)){
+                    relationService.doSave(AdmContextUtil.toDmpContext(), relationDTOS);
+                }
+                admSystemList.addAll(admSystems);
+            }else{
+                unRelationSys.add(admSystem);
+            }
+        });
+        if(CollUtil.isNotEmpty(unRelationSys)){
+            List<AdmSystem> systemList = service.doInsert(AdmContextUtil.toDmpContext(), AdmSystem.class, unRelationSys);
+            admSystemList.addAll(systemList);
+        }
+        return AdmResponse.success(admSystemList);
     }
 
     /**