java110 4 vuotta sitten
vanhempi
commit
1a8ab34906

+ 205 - 21
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 @@ import java.util.List;
 public class ImportOwnerRoomInnerServiceSMOImpl extends BaseServiceSMO implements IImportOwnerRoomInnerServiceSMO {
     private static Logger logger = LoggerFactory.getLogger(CommunityServiceSMOImpl.class);
 
+
+    @Autowired
+    private IFloorV1InnerServiceSMO floorV1InnerServiceSMOImpl;
+
     @Autowired
-    private IFloorInnerServiceSMO floorInnerServiceSMOImpl;
+    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 查看 楼栋是否存在
+        for (ImportOwnerRoomDto importOwnerRoomDto : importOwnerRoomDtos) {
+            successCount += doSaveOwnerRooms(importOwnerRoomDto, importOwnerRoomDtosed);
+        }
+
 
-        return 0;
+        return successCount;
     }
 
+    /**
+     * 导入数据
+     *
+     * @param importOwnerRoomDto
+     * @param importOwnerRoomDtosed
+     * @return
+     */
+    private int doSaveOwnerRooms(ImportOwnerRoomDto importOwnerRoomDto, List<ImportOwnerRoomDto> importOwnerRoomDtosed) {
 
-    private List<FloorDto> getFloorDto(List<ImportOwnerRoomDto> importOwnerRoomDtos) {
+        //1.0 保存楼栋信息
+        String floorId = doSaveFloor(importOwnerRoomDto);
 
-        List<FloorDto> floorDtos = new ArrayList<>();
-        FloorDto tmpFloorDto = null;
-        for (ImportOwnerRoomDto importOwnerRoomDto : importOwnerRoomDtos) {
 
-            if (hasInFloors(floorDtos, importOwnerRoomDto)) {
-                continue;
+        //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("导入单元失败");
+                }
             }
-            tmpFloorDto = new FloorDto();
-            tmpFloorDto.setFloorNum(importOwnerRoomDto.getFloorNum());
-            tmpFloorDto.setCommunityId(importOwnerRoomDto.getCommunityId());
-            floorDtos.add(tmpFloorDto);
         }
-        return floorDtos;
+        return unitId;
     }
 
     /**
-     * 是否存在 floorDtos 对象中
-     * @param floorDtos
+     * 保存楼栋信息
+     *
      * @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;
     }
 
+
 }