소스 검색

通过Excel解析泵 小区 楼号 以及关系处理

王苗苗 3 달 전
부모
커밋
28d77e64b6
1개의 변경된 파일33개의 추가작업 그리고 5개의 파일을 삭제
  1. 33 5
      slibra-admin/src/main/java/com/slibra/web/controller/business/ExcelController.java

+ 33 - 5
slibra-admin/src/main/java/com/slibra/web/controller/business/ExcelController.java

@@ -2,6 +2,9 @@ package com.slibra.web.controller.business;
 
 import com.alibaba.fastjson2.JSON;
 import com.slibra.business.domain.TNeighborhood;
+import com.slibra.business.domain.TNeighborhoodBuilding;
+import com.slibra.business.domain.TPumpingStation;
+import com.slibra.business.domain.TPumpingStationNeighbourhoodNumber;
 import com.slibra.business.mapper.*;
 import com.slibra.business.req.AiChatReq;
 import com.slibra.business.req.AiChatRes;
@@ -51,7 +54,7 @@ public class ExcelController extends BaseController {
 
     public static void main(String[] args) {
 //        System.out.println(getExcelFormBZXQLH());
-        moreExcel2DB();
+//        moreExcel2DB();
     }
 
     //泵站、小区、楼号数据处理
@@ -82,7 +85,7 @@ public class ExcelController extends BaseController {
      *
      * @return
      */
-//    @GetMapping("/moreExcel2DB")
+    @GetMapping("/moreExcel2DB")
     public String moreExcel2DB(){
         //Excel转JSON
         List<BZXQLHInfo> excelFormBZXQLH = getExcelFormBZXQLH();
@@ -93,20 +96,45 @@ public class ExcelController extends BaseController {
             for (BZXQLHInfo bzxqlhInfo : excelFormBZXQLH) {
                 //2024年12月30日17:27:29 将区+小区楼号拼接作为小区名称
                 bzxqlhInfo.setNeighbourName(bzxqlhInfo.getArea() + bzxqlhInfo.getNeighbourName());
+                //2024年12月31日10:30:16 将区+泵站名称拼接作为泵站名称
+                bzxqlhInfo.setPumpingStationName(bzxqlhInfo.getArea() + bzxqlhInfo.getPumpingStationName());
             }
             Map<String, List<BZXQLHInfo>> map = excelFormBZXQLH.stream().collect(Collectors.groupingBy(BZXQLHInfo::getNeighbourName));
             map.forEach((k, v) -> {
 //                System.out.println("小区名称:" + k + ",对应的楼号信息:" + JSON.toJSONString(v));
                 //插入小区
-                this.tNeighborhoodMapper.insertTNeighborhood(TNeighborhood.builder().build());
+                TNeighborhood tNeighborhood = TNeighborhood.builder().name(k).build();
+                this.tNeighborhoodMapper.insertTNeighborhood(tNeighborhood);
                 //插入楼号
-                //插入关系表
+                for (BZXQLHInfo bzxqlhInfo : v) {
+                    TNeighborhoodBuilding tNeighborhoodBuilding = TNeighborhoodBuilding.builder().neighborhoodId(tNeighborhood.getId()).name(bzxqlhInfo.getBuildingName()).build();
+                    this.tNeighborhoodBuildingMapper.insertTNeighborhoodBuilding(tNeighborhoodBuilding);
+                }
             });
             //添加泵站(添加之前先去校验,通过名称查询泵站是否已经添加过了
             //         如果添加过了,就用该泵站ID,然后再通过小区和楼号查询对应的数据,绑定关系
             //         如果没有添加过,新增泵站,然后再通过小区和楼号查询对应的数据,绑定关系)
             for (BZXQLHInfo bzxqlhInfo : excelFormBZXQLH) {
-
+                String pumpingStationName = bzxqlhInfo.getPumpingStationName();
+                List<TPumpingStation> pumpingStations = this.tPumpingStationMapper.selectTPumpingStationList(TPumpingStation.builder().name(pumpingStationName).build());
+                TPumpingStation tPumpingStation = TPumpingStation.builder().build();
+                if(CollectionUtils.isEmpty(pumpingStations)){
+                    log.info("A第一次添加泵站信息,泵站名称是{}", pumpingStationName);
+                    //新增泵站,然后再通过小区和楼号查询对应的数据,绑定关系
+                    this.tPumpingStationMapper.insertTPumpingStation(tPumpingStation);
+                }else{
+                    log.info("Z已经添加过泵站信息,泵站名称是{}", pumpingStationName);
+                    tPumpingStation = pumpingStations.get(0);
+                }
+                //有了泵站信息,处理其他逻辑
+                //再通过小区和楼号查询对应的数据,绑定关系
+                List<TNeighborhoodBuilding> tNeighborhoodBuildings = this.tNeighborhoodBuildingMapper.selectTNeighborhoodBuildingList(TNeighborhoodBuilding.builder().name(bzxqlhInfo.getBuildingName()).build());
+                if(!CollectionUtils.isEmpty(tNeighborhoodBuildings)){
+                    TNeighborhoodBuilding tNeighborhoodBuilding = tNeighborhoodBuildings.get(0);
+                    //泵关联小区楼号对象
+                    TPumpingStationNeighbourhoodNumber tPumpingStationNeighbourhoodNumber = TPumpingStationNeighbourhoodNumber.builder().pumpingStationId(tPumpingStation.getId()).neighborhoodId(tNeighborhoodBuilding.getNeighborhoodId()).neighborhoodBuildingId(tNeighborhoodBuilding.getId()).build();
+                    this.tPumpingStationNeighbourhoodNumberMapper.insertTPumpingStationNeighbourhoodNumber(tPumpingStationNeighbourhoodNumber);
+                }
             }
         }