java110
2022-03-08 1a8ab34906ea8dbc133b205b87db075cb3644098
优化代码
1个文件已修改
238 ■■■■ 已修改文件
service-community/src/main/java/com/java110/community/smo/impl/ImportOwnerRoomInnerServiceSMOImpl.java 238 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-community/src/main/java/com/java110/community/smo/impl/ImportOwnerRoomInnerServiceSMOImpl.java
@@ -1,11 +1,21 @@
package com.java110.community.smo.impl;
import com.java110.core.base.smo.BaseServiceSMO;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.core.log.LoggerFactory;
import com.java110.dto.FloorDto;
import com.java110.dto.RoomDto;
import com.java110.dto.UnitDto;
import com.java110.dto.owner.OwnerDto;
import com.java110.entity.assetImport.ImportOwnerRoomDto;
import com.java110.intf.community.IFloorInnerServiceSMO;
import com.java110.intf.community.IFloorV1InnerServiceSMO;
import com.java110.intf.community.IImportOwnerRoomInnerServiceSMO;
import com.java110.intf.community.IRoomV1InnerServiceSMO;
import com.java110.intf.community.IUnitV1InnerServiceSMO;
import com.java110.po.floor.FloorPo;
import com.java110.po.room.RoomPo;
import com.java110.po.unit.UnitPo;
import com.java110.utils.util.StringUtil;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
@@ -21,52 +31,226 @@
public class ImportOwnerRoomInnerServiceSMOImpl extends BaseServiceSMO implements IImportOwnerRoomInnerServiceSMO {
    private static Logger logger = LoggerFactory.getLogger(CommunityServiceSMOImpl.class);
    @Autowired
    private IFloorInnerServiceSMO floorInnerServiceSMOImpl;
    private IFloorV1InnerServiceSMO floorV1InnerServiceSMOImpl;
    @Autowired
    private IUnitV1InnerServiceSMO unitV1InnerServiceSMOImpl;
    @Autowired
    private IRoomV1InnerServiceSMO roomV1InnerServiceSMOImpl;
    @Autowired
    public int saveOwnerRooms(@RequestBody List<ImportOwnerRoomDto> importOwnerRoomDtos) {
        int successCount = 0;
        if (importOwnerRoomDtos == null || importOwnerRoomDtos.size() < 1) {
            return 0;
        }
        List<ImportOwnerRoomDto> importOwnerRoomDtosed = new ArrayList<>();
        // 1.0 查看 楼栋是否存在
        return 0;
    }
    private List<FloorDto> getFloorDto(List<ImportOwnerRoomDto> importOwnerRoomDtos) {
        List<FloorDto> floorDtos = new ArrayList<>();
        FloorDto tmpFloorDto = null;
        for (ImportOwnerRoomDto importOwnerRoomDto : importOwnerRoomDtos) {
            if (hasInFloors(floorDtos, importOwnerRoomDto)) {
                continue;
            }
            tmpFloorDto = new FloorDto();
            tmpFloorDto.setFloorNum(importOwnerRoomDto.getFloorNum());
            tmpFloorDto.setCommunityId(importOwnerRoomDto.getCommunityId());
            floorDtos.add(tmpFloorDto);
            successCount += doSaveOwnerRooms(importOwnerRoomDto, importOwnerRoomDtosed);
        }
        return floorDtos;
        return successCount;
    }
    /**
     * 是否存在 floorDtos 对象中
     * @param floorDtos
     * 导入数据
     *
     * @param importOwnerRoomDto
     * @param importOwnerRoomDtosed
     * @return
     */
    private int doSaveOwnerRooms(ImportOwnerRoomDto importOwnerRoomDto, List<ImportOwnerRoomDto> importOwnerRoomDtosed) {
        //1.0 保存楼栋信息
        String floorId = doSaveFloor(importOwnerRoomDto);
        //2.0 保存单元信息
        String unitId = doSaveUnit(importOwnerRoomDto, floorId);
        //3.0 保存 房屋
        String roomId = doSaveRoom(importOwnerRoomDto, unitId);
        return 1;
    }
    private String doSaveRoom(ImportOwnerRoomDto importOwnerRoomDto, String unitId) {
        RoomDto roomDto = new RoomDto();
        roomDto.setCommunityId(importOwnerRoomDto.getCommunityId());
        roomDto.setRoomNum(importOwnerRoomDto.getRoomNum());
        roomDto.setUnitId(unitId);
        List<RoomDto> roomDtos = roomV1InnerServiceSMOImpl.queryRooms(roomDto);
        RoomPo roomPo = null;
        String roomId = "";
        int flag = 0;
        if (roomDtos == null || roomDtos.size() < 1) {
            roomPo = new RoomPo();
            roomPo.setState(StringUtil.isEmpty(importOwnerRoomDto.getOwnerName()) ? RoomDto.STATE_FREE : RoomDto.STATE_SELL);
            roomPo.setRoomId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_roomId));
            roomPo.setApartment(importOwnerRoomDto.getSection());
            roomPo.setSection("1");
            roomPo.setCommunityId(importOwnerRoomDto.getCommunityId());
            roomPo.setBuiltUpArea(importOwnerRoomDto.getBuiltUpArea());
            roomPo.setFeeCoefficient("1.00");
            roomPo.setLayer(importOwnerRoomDto.getLayer());
            roomPo.setRoomArea(importOwnerRoomDto.getRoomArea());
            roomPo.setRoomNum(importOwnerRoomDto.getRoomNum());
            roomPo.setRoomRent(importOwnerRoomDto.getRoomRent());
            roomPo.setRoomSubType(importOwnerRoomDto.getRoomSubType());
            roomPo.setRoomType("0".equals(importOwnerRoomDto.getUnitNum()) ? RoomDto.ROOM_TYPE_SHOPS : RoomDto.ROOM_TYPE_ROOM);
            roomPo.setUnitId(unitId);
            roomPo.setRemark("房产导入");
            roomPo.setUserId("-1");
            flag = roomV1InnerServiceSMOImpl.saveRoom(roomPo);
            if (flag < 1) {
                throw new IllegalArgumentException("导入房屋失败");
            }
            roomId = roomPo.getRoomId();
        } else {
            roomId = roomDtos.get(0).getRoomId();
            if (OwnerDto.OWNER_TYPE_CD_OWNER.equals(importOwnerRoomDto.getOwnerTypeCd())) {
                roomPo = new RoomPo();
                roomPo.setState(StringUtil.isEmpty(importOwnerRoomDto.getOwnerName()) ? RoomDto.STATE_FREE : RoomDto.STATE_SELL);
                roomPo.setRoomId(roomId);
                roomPo.setApartment(importOwnerRoomDto.getSection());
                roomPo.setSection("1");
                roomPo.setCommunityId(importOwnerRoomDto.getCommunityId());
                roomPo.setBuiltUpArea(importOwnerRoomDto.getBuiltUpArea());
                roomPo.setFeeCoefficient("1.00");
                roomPo.setLayer(importOwnerRoomDto.getLayer());
                roomPo.setRoomArea(importOwnerRoomDto.getRoomArea());
                roomPo.setRoomNum(importOwnerRoomDto.getRoomNum());
                roomPo.setRoomRent(importOwnerRoomDto.getRoomRent());
                roomPo.setRoomSubType(importOwnerRoomDto.getRoomSubType());
                roomPo.setRoomType("0".equals(importOwnerRoomDto.getUnitNum()) ? RoomDto.ROOM_TYPE_SHOPS : RoomDto.ROOM_TYPE_ROOM);
                roomPo.setUnitId(unitId);
                roomPo.setRemark("房产导入");
                roomPo.setUserId("-1");
                flag = roomV1InnerServiceSMOImpl.updateRoom(roomPo);
                if (flag < 1) {
                    throw new IllegalArgumentException("导入房屋失败");
                }
            }
        }
        return roomId;
    }
    /**
     * 保存单元信息
     *
     * @param importOwnerRoomDto
     * @param floorId
     * @return
     */
    private String doSaveUnit(ImportOwnerRoomDto importOwnerRoomDto, String floorId) {
        UnitDto unitDto = new UnitDto();
        unitDto.setCommunityId(importOwnerRoomDto.getCommunityId());
        unitDto.setUnitNum(importOwnerRoomDto.getUnitNum());
        unitDto.setFloorId(floorId);
        List<UnitDto> unitDtos = unitV1InnerServiceSMOImpl.queryUnits(unitDto);
        UnitPo unitPo = null;
        String unitId = "";
        int flag = 0;
        if (unitDtos == null || unitDtos.size() < 1) {
            unitPo = new UnitPo();
            unitPo.setFloorId(floorId);
            unitPo.setLayerCount(importOwnerRoomDto.getLayerCount());
            unitPo.setLift(importOwnerRoomDto.getLift());
            unitPo.setUnitId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_unitId));
            unitPo.setUnitArea("1");
            unitPo.setRemark("房产导入");
            unitPo.setUserId("-1");
            flag = unitV1InnerServiceSMOImpl.saveUnit(unitPo);
            if (flag < 1) {
                throw new IllegalArgumentException("导入单元失败");
            }
            unitId = unitPo.getFloorId();
        } else {
            unitId = unitDtos.get(0).getUnitId();
            if (OwnerDto.OWNER_TYPE_CD_OWNER.equals(importOwnerRoomDto.getOwnerTypeCd())) {
                unitPo = new UnitPo();
                unitPo.setFloorId(floorId);
                unitPo.setLayerCount(importOwnerRoomDto.getLayerCount());
                unitPo.setLift(importOwnerRoomDto.getLift());
                unitPo.setUnitId(unitId);
                unitPo.setUnitArea("1");
                unitPo.setRemark("房产导入");
                unitPo.setUserId("-1");
                flag = unitV1InnerServiceSMOImpl.updateUnit(unitPo);
                if (flag < 1) {
                    throw new IllegalArgumentException("导入单元失败");
                }
            }
        }
        return unitId;
    }
    /**
     * 保存楼栋信息
     *
     * @param importOwnerRoomDto
     * @return
     */
    private boolean hasInFloors(List<FloorDto> floorDtos, ImportOwnerRoomDto importOwnerRoomDto) {
        for (FloorDto floorDto : floorDtos) {
            if (importOwnerRoomDto.getFloorNum().equals(floorDto.getFloorNum())) {
                return true;
    private String doSaveFloor(ImportOwnerRoomDto importOwnerRoomDto) {
        FloorDto floorDto = new FloorDto();
        floorDto.setCommunityId(importOwnerRoomDto.getCommunityId());
        floorDto.setFloorNum(importOwnerRoomDto.getFloorNum());
        List<FloorDto> floorDtos = floorV1InnerServiceSMOImpl.queryFloors(floorDto);
        FloorPo floorPo = null;
        String floorId = "";
        int flag = 0;
        if (floorDtos == null || floorDtos.size() < 1) {
            floorPo = new FloorPo();
            floorPo.setbId("-1");
            floorPo.setCommunityId(importOwnerRoomDto.getCommunityId());
            floorPo.setFloorArea("1");
            floorPo.setFloorId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_floorId));
            floorPo.setFloorNum(importOwnerRoomDto.getFloorNum());
            floorPo.setRemark("房产导入");
            floorPo.setUserId("-1");
            flag = floorV1InnerServiceSMOImpl.saveFloor(floorPo);
            if (flag < 1) {
                throw new IllegalArgumentException("导入楼栋失败");
            }
            floorId = floorPo.getFloorId();
        } else {
            floorId = floorDtos.get(0).getFloorId();
            if (OwnerDto.OWNER_TYPE_CD_OWNER.equals(importOwnerRoomDto.getOwnerTypeCd())) {
                floorPo = new FloorPo();
                floorPo.setbId("-1");
                floorPo.setCommunityId(importOwnerRoomDto.getCommunityId());
                floorPo.setFloorArea("1");
                floorPo.setFloorId(floorId);
                floorPo.setFloorNum(importOwnerRoomDto.getFloorNum());
                floorPo.setRemark("房产导入");
                floorPo.setUserId("-1");
                flag = floorV1InnerServiceSMOImpl.updateFloor(floorPo);
                if (flag < 1) {
                    throw new IllegalArgumentException("导入楼栋失败");
                }
            }
        }
        return false;
        return floorId;
    }
}