|
@@ -19,7 +19,7 @@ import com.kioor.common.service.impl.BaseServiceImpl;
|
|
import com.kioor.common.utils.ConvertUtils;
|
|
import com.kioor.common.utils.ConvertUtils;
|
|
import com.kioor.room.dao.HousingEstateDao;
|
|
import com.kioor.room.dao.HousingEstateDao;
|
|
import com.kioor.room.dto.HousingEstateDTO;
|
|
import com.kioor.room.dto.HousingEstateDTO;
|
|
-import com.kioor.room.dto.HousingEstateInitDTO;
|
|
|
|
|
|
+import com.kioor.room.dto.BuildingInitDTO;
|
|
import com.kioor.room.dto.UnitInfoDTO;
|
|
import com.kioor.room.dto.UnitInfoDTO;
|
|
import com.kioor.room.entity.*;
|
|
import com.kioor.room.entity.*;
|
|
import com.kioor.room.service.*;
|
|
import com.kioor.room.service.*;
|
|
@@ -45,6 +45,8 @@ public class HousingEstateServiceImpl extends BaseServiceImpl<HousingEstateDao,
|
|
|
|
|
|
private final RoomService roomService;
|
|
private final RoomService roomService;
|
|
|
|
|
|
|
|
+ private final UserHousingEstateService userHousingEstateService;
|
|
|
|
+
|
|
private static final int BATCH_SIZE = 100; // 批量处理大小,根据实际情况调整
|
|
private static final int BATCH_SIZE = 100; // 批量处理大小,根据实际情况调整
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -128,37 +130,43 @@ public class HousingEstateServiceImpl extends BaseServiceImpl<HousingEstateDao,
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 初始化小区信息
|
|
|
|
- * @param housingEstateInitDTOList
|
|
|
|
|
|
+ * 初始化小区内信息
|
|
|
|
+ * @param buildingInitDTOList 楼栋列表
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
- public void housingEstateInit(List<HousingEstateInitDTO> housingEstateInitDTOList) {
|
|
|
|
|
|
+ public void buildingInit(List<BuildingInitDTO> buildingInitDTOList) {
|
|
Map<Long, BuildingEntity> buildingsMap = new HashMap<>();
|
|
Map<Long, BuildingEntity> buildingsMap = new HashMap<>();
|
|
Map<Long, UnitEntity> unitsMap = new HashMap<>();
|
|
Map<Long, UnitEntity> unitsMap = new HashMap<>();
|
|
List<FloorEntity> floorsList = new ArrayList<>();
|
|
List<FloorEntity> floorsList = new ArrayList<>();
|
|
List<RoomEntity> roomsList = new ArrayList<>();
|
|
List<RoomEntity> roomsList = new ArrayList<>();
|
|
|
|
|
|
- for (HousingEstateInitDTO estateInit : housingEstateInitDTOList) {
|
|
|
|
|
|
+ //遍历楼栋
|
|
|
|
+ for (BuildingInitDTO estateInit : buildingInitDTOList) {
|
|
Long housingEstateId = estateInit.getHousingEstateId();
|
|
Long housingEstateId = estateInit.getHousingEstateId();
|
|
String buildingNum = estateInit.getBuildingNum();
|
|
String buildingNum = estateInit.getBuildingNum();
|
|
|
|
+ //创建楼栋
|
|
Long buildingId = IdWorker.getId();
|
|
Long buildingId = IdWorker.getId();
|
|
BuildingEntity buildingEntity = buildingsMap.computeIfAbsent(buildingId,
|
|
BuildingEntity buildingEntity = buildingsMap.computeIfAbsent(buildingId,
|
|
k -> new BuildingEntity(buildingId,housingEstateId, buildingNum));
|
|
k -> new BuildingEntity(buildingId,housingEstateId, buildingNum));
|
|
|
|
|
|
|
|
+ //遍历楼栋下的单元
|
|
for (UnitInfoDTO unitInfo : estateInit.getUnitInfo()) {
|
|
for (UnitInfoDTO unitInfo : estateInit.getUnitInfo()) {
|
|
String unitNum = unitInfo.getUnitNum();
|
|
String unitNum = unitInfo.getUnitNum();
|
|
int floorCount = unitInfo.getFloorCount();
|
|
int floorCount = unitInfo.getFloorCount();
|
|
int apartmentPerFloor = unitInfo.getApartmentPerFloor();
|
|
int apartmentPerFloor = unitInfo.getApartmentPerFloor();
|
|
|
|
+ //创建单元
|
|
Long unitId = IdWorker.getId();
|
|
Long unitId = IdWorker.getId();
|
|
UnitEntity unitEntity = unitsMap.computeIfAbsent(unitId,
|
|
UnitEntity unitEntity = unitsMap.computeIfAbsent(unitId,
|
|
k -> new UnitEntity(IdWorker.getId(),housingEstateId, buildingEntity.getId(), unitNum));
|
|
k -> new UnitEntity(IdWorker.getId(),housingEstateId, buildingEntity.getId(), unitNum));
|
|
|
|
|
|
|
|
+ //遍历楼层
|
|
for (int floor = 1; floor <= floorCount; floor++) {
|
|
for (int floor = 1; floor <= floorCount; floor++) {
|
|
|
|
+ //创建楼层
|
|
FloorEntity floorEntity = new FloorEntity(IdWorker.getId(),housingEstateId, unitEntity.getId(), floor);
|
|
FloorEntity floorEntity = new FloorEntity(IdWorker.getId(),housingEstateId, unitEntity.getId(), floor);
|
|
floorsList.add(floorEntity);
|
|
floorsList.add(floorEntity);
|
|
-
|
|
|
|
|
|
+ //遍历该楼层每一户
|
|
for (int apartment = 1; apartment <= apartmentPerFloor; apartment++) {
|
|
for (int apartment = 1; apartment <= apartmentPerFloor; apartment++) {
|
|
- RoomEntity roomEntity = new RoomEntity(IdWorker.getId(),housingEstateId, floorEntity.getId(), apartment, buildingNum + "-" + unitNum + "-" + floor + String.format("%02d", apartment));
|
|
|
|
|
|
+ RoomEntity roomEntity = new RoomEntity(IdWorker.getId(),housingEstateId, buildingId, unitId, floorEntity.getId(), apartment, buildingNum + "-" + unitNum + "-" + floor + String.format("%02d", apartment));
|
|
roomsList.add(roomEntity);
|
|
roomsList.add(roomEntity);
|
|
|
|
|
|
// 检查是否需要批量保存房间
|
|
// 检查是否需要批量保存房间
|
|
@@ -199,6 +207,7 @@ public class HousingEstateServiceImpl extends BaseServiceImpl<HousingEstateDao,
|
|
floorService.delete(new LambdaQueryWrapper<FloorEntity>().eq(FloorEntity::getHousingEstateId, housingEstateId));
|
|
floorService.delete(new LambdaQueryWrapper<FloorEntity>().eq(FloorEntity::getHousingEstateId, housingEstateId));
|
|
unitService.delete(new LambdaQueryWrapper<UnitEntity>().eq(UnitEntity::getHousingEstateId, housingEstateId));
|
|
unitService.delete(new LambdaQueryWrapper<UnitEntity>().eq(UnitEntity::getHousingEstateId, housingEstateId));
|
|
buildingService.delete(new LambdaQueryWrapper<BuildingEntity>().eq(BuildingEntity::getHousingEstateId, housingEstateId));
|
|
buildingService.delete(new LambdaQueryWrapper<BuildingEntity>().eq(BuildingEntity::getHousingEstateId, housingEstateId));
|
|
|
|
+ userHousingEstateService.delete(new LambdaQueryWrapper<UserHousingEstateEntity>().eq(UserHousingEstateEntity::getHousingEstateId, housingEstateId));
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|