Ver código fonte

小区和楼号关联表的数据处理

王苗苗 3 meses atrás
pai
commit
1b31026296

+ 1 - 1
slibra-framework/src/main/java/com/slibra/framework/config/SecurityConfig.java

@@ -123,7 +123,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 // 对于登录login 注册register 验证码captchaImage 允许匿名访问
                 .antMatchers("/login", "/register", "/captchaImage","/sendSmsCode/*","/smsLogin","/test/**", "/demo/**").permitAll()
                 .antMatchers("/websocket/**").permitAll()//websocket的
-                .antMatchers("/bigModel/**", "/front/**").permitAll()//2024年11月05日14:18:08 和曹永创交互的接口,不需要token即可访问
+                .antMatchers("/bigModel/**", "/front/**", "/**").permitAll()//2024年11月05日14:18:08 和曹永创交互的接口,不需要token即可访问
 //                .antMatchers("/front/**","/grpc/**").permitAll()//临时测试的
                 .antMatchers("/qiniuyun/**", "/out/**", "/business/daily").permitAll()//文件上传相关 外部接口等
                 // 静态资源,可匿名访问

+ 5 - 0
slibra-system/src/main/java/com/slibra/business/domain/TNeighborhood.java

@@ -10,6 +10,8 @@ import org.apache.commons.lang3.builder.ToStringStyle;
 import com.slibra.common.annotation.Excel;
 import com.slibra.common.core.domain.BaseEntity;
 
+import java.util.List;
+
 /**
  * 服务小区对象 t_neighborhood
  * 
@@ -66,6 +68,9 @@ public class TNeighborhood extends BaseEntity
     //关联的泵站名称
     private String pumpingStationNames;
 
+    //请求参数
+    private List<String> buildingNameList;
+
 
 
 

+ 1 - 1
slibra-system/src/main/java/com/slibra/business/domain/TNeighborhoodBuilding.java

@@ -36,7 +36,7 @@ public class TNeighborhoodBuilding extends BaseEntity
 
     /** 排序(按照升序排列) */
     @Excel(name = "排序", readConverterExp = "按=照升序排列")
-    private Long sort;
+    private Integer sort;
 
     /** 删除标志(0代表存在 2代表删除) */
     private Long delFlag;

+ 53 - 4
slibra-system/src/main/java/com/slibra/business/service/impl/TNeighborhoodServiceImpl.java

@@ -1,12 +1,11 @@
 package com.slibra.business.service.impl;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
+import com.slibra.business.domain.TNeighborhoodBuilding;
 import com.slibra.business.domain.TPumpingStation;
+import com.slibra.business.mapper.TNeighborhoodBuildingMapper;
 import com.slibra.business.res.PumpAndBuildingNumberNames;
 import com.slibra.business.res.PumpAndNumber;
 import com.slibra.common.utils.DateUtils;
@@ -15,6 +14,7 @@ import org.springframework.stereotype.Service;
 import com.slibra.business.mapper.TNeighborhoodMapper;
 import com.slibra.business.domain.TNeighborhood;
 import com.slibra.business.service.ITNeighborhoodService;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 /**
@@ -29,6 +29,9 @@ public class TNeighborhoodServiceImpl implements ITNeighborhoodService
     @Autowired
     private TNeighborhoodMapper tNeighborhoodMapper;
 
+    @Autowired
+    private TNeighborhoodBuildingMapper tNeighborhoodBuildingMapper;
+
     /**
      * 查询服务小区
      * 
@@ -72,9 +75,37 @@ public class TNeighborhoodServiceImpl implements ITNeighborhoodService
     public int insertTNeighborhood(TNeighborhood tNeighborhood)
     {
         tNeighborhood.setCreateTime(DateUtils.getNowDate());
+        //2024年11月12日15:08:28  需要额外处理一下关联表(小区和楼号的关联表)
+        this.handleBuildingNumber(tNeighborhood);
         return tNeighborhoodMapper.insertTNeighborhood(tNeighborhood);
     }
 
+    private void handleBuildingNumber(TNeighborhood tNeighborhood) {
+        //先把历史的楼号删除
+        Long id = tNeighborhood.getId();
+        deleteNeighbourhoodBuildingsById(id);
+        //再把新的楼号添加进去
+        List<String> buildingNameList = tNeighborhood.getBuildingNameList();
+        for (int i = 0; i < buildingNameList.size(); i++) {
+            TNeighborhoodBuilding tNeighborhoodBuilding = new TNeighborhoodBuilding();
+            tNeighborhoodBuilding.setNeighborhoodId(id);
+            tNeighborhoodBuilding.setName(buildingNameList.get(i));
+            tNeighborhoodBuilding.setSort(i);
+            this.tNeighborhoodBuildingMapper.insertTNeighborhoodBuilding(tNeighborhoodBuilding);
+        }
+    }
+
+    /**
+     * 通过小区的ID把之前设置的楼号的信息删除
+     * @param id
+     */
+    private void deleteNeighbourhoodBuildingsById(Long id) {
+        List<TNeighborhoodBuilding> tNeighborhoodBuildings = this.tNeighborhoodBuildingMapper.selectTNeighborhoodBuildingList(TNeighborhoodBuilding.builder().neighborhoodId(id).build());
+        if(!CollectionUtils.isEmpty(tNeighborhoodBuildings)){
+            this.tNeighborhoodBuildingMapper.deleteTNeighborhoodBuildingByIds(tNeighborhoodBuildings.stream().map(TNeighborhoodBuilding::getId).toArray(Long[]::new));
+        }
+    }
+
     /**
      * 修改服务小区
      * 
@@ -85,6 +116,8 @@ public class TNeighborhoodServiceImpl implements ITNeighborhoodService
     public int updateTNeighborhood(TNeighborhood tNeighborhood)
     {
         tNeighborhood.setUpdateTime(DateUtils.getNowDate());
+        //2024年11月12日15:08:28  需要额外处理一下关联表(小区和楼号的关联表)
+        this.handleBuildingNumber(tNeighborhood);
         return tNeighborhoodMapper.updateTNeighborhood(tNeighborhood);
     }
 
@@ -95,8 +128,12 @@ public class TNeighborhoodServiceImpl implements ITNeighborhoodService
      * @return 结果
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public int deleteTNeighborhoodByIds(Long[] ids)
     {
+        for (Long id : ids) {
+            deleteNeighbourhoodBuildingsById(id);
+        }
         return tNeighborhoodMapper.deleteTNeighborhoodByIds(ids);
     }
 
@@ -107,8 +144,11 @@ public class TNeighborhoodServiceImpl implements ITNeighborhoodService
      * @return 结果
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public int deleteTNeighborhoodById(Long id)
     {
+        //2024年11月12日15:27:10 删除小区的同时,需要把对应小区楼号也同时删除
+        deleteNeighbourhoodBuildingsById(id);
         return tNeighborhoodMapper.deleteTNeighborhoodById(id);
     }
 
@@ -142,4 +182,13 @@ public class TNeighborhoodServiceImpl implements ITNeighborhoodService
         });
         return result;
     }
+
+    public static void main(String[] args) {
+        List<TNeighborhoodBuilding> tNeighborhoodBuildings = new ArrayList<>();
+        tNeighborhoodBuildings.add(TNeighborhoodBuilding.builder().id(1L).build());
+        tNeighborhoodBuildings.add(TNeighborhoodBuilding.builder().id(2L).build());
+        tNeighborhoodBuildings.add(TNeighborhoodBuilding.builder().id(3L).build());
+        Long[] array = tNeighborhoodBuildings.stream().map(TNeighborhoodBuilding::getId).toArray(Long[]::new);
+        System.out.println(Arrays.toString(array));
+    }
 }