java110 лет назад: 4
Родитель
Сommit
ba0f3f6ee2

+ 172 - 0
java110-bean/src/main/java/com/java110/entity/assetImport/ImportOwnerRoomDto.java

@@ -0,0 +1,172 @@
+package com.java110.entity.assetImport;
+
+import java.io.Serializable;
+
+public class ImportOwnerRoomDto implements Serializable {
+
+    private String communityId;
+
+    private String floorNum;
+    private String unitNum;
+    private String roomNum;
+    private String layerCount;
+    private String lift; // 是否有电梯
+    private String roomSubType; // 房屋类型
+    private String section;
+    private String builtUpArea;
+    private String roomArea;
+    private String roomRent;
+    private String ownerName;
+    private String sex;
+    private String age;
+    private String tel;
+    private String idCard;
+    private String ownerTypeCd;
+    private String layer;
+
+
+    public String getFloorNum() {
+        return floorNum;
+    }
+
+    public void setFloorNum(String floorNum) {
+        this.floorNum = floorNum;
+    }
+
+    public String getUnitNum() {
+        return unitNum;
+    }
+
+    public void setUnitNum(String unitNum) {
+        this.unitNum = unitNum;
+    }
+
+    public String getRoomNum() {
+        return roomNum;
+    }
+
+    public void setRoomNum(String roomNum) {
+        this.roomNum = roomNum;
+    }
+
+    public String getLayerCount() {
+        return layerCount;
+    }
+
+    public void setLayerCount(String layerCount) {
+        this.layerCount = layerCount;
+    }
+
+    public String getLift() {
+        return lift;
+    }
+
+    public void setLift(String lift) {
+        this.lift = lift;
+    }
+
+    public String getRoomSubType() {
+        return roomSubType;
+    }
+
+    public void setRoomSubType(String roomSubType) {
+        this.roomSubType = roomSubType;
+    }
+
+    public String getSection() {
+        return section;
+    }
+
+    public void setSection(String section) {
+        this.section = section;
+    }
+
+
+    public String getRoomArea() {
+        return roomArea;
+    }
+
+    public void setRoomArea(String roomArea) {
+        this.roomArea = roomArea;
+    }
+
+    public String getRoomRent() {
+        return roomRent;
+    }
+
+    public void setRoomRent(String roomRent) {
+        this.roomRent = roomRent;
+    }
+
+    public String getOwnerName() {
+        return ownerName;
+    }
+
+    public void setOwnerName(String ownerName) {
+        this.ownerName = ownerName;
+    }
+
+    public String getSex() {
+        return sex;
+    }
+
+    public void setSex(String sex) {
+        this.sex = sex;
+    }
+
+    public String getTel() {
+        return tel;
+    }
+
+    public void setTel(String tel) {
+        this.tel = tel;
+    }
+
+    public String getIdCard() {
+        return idCard;
+    }
+
+    public void setIdCard(String idCard) {
+        this.idCard = idCard;
+    }
+
+    public String getOwnerTypeCd() {
+        return ownerTypeCd;
+    }
+
+    public void setOwnerTypeCd(String ownerTypeCd) {
+        this.ownerTypeCd = ownerTypeCd;
+    }
+
+    public String getBuiltUpArea() {
+        return builtUpArea;
+    }
+
+    public void setBuiltUpArea(String builtUpArea) {
+        this.builtUpArea = builtUpArea;
+    }
+
+    public String getLayer() {
+        return layer;
+    }
+
+    public void setLayer(String layer) {
+        this.layer = layer;
+    }
+
+    public String getAge() {
+        return age;
+    }
+
+    public void setAge(String age) {
+        this.age = age;
+    }
+
+    public String getCommunityId() {
+        return communityId;
+    }
+
+    public void setCommunityId(String communityId) {
+        this.communityId = communityId;
+    }
+}

+ 34 - 0
java110-interface/src/main/java/com/java110/intf/community/IImportOwnerRoomInnerServiceSMO.java

@@ -0,0 +1,34 @@
+package com.java110.intf.community;
+
+import com.java110.config.feign.FeignConfiguration;
+import com.java110.entity.assetImport.ImportOwnerRoomDto;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import java.util.List;
+
+/**
+ * @ClassName IFloorInnerServiceSMO
+ * @Description 小区楼接口类
+ * @Author wuxw
+ * @Date 2019/4/24 9:04
+ * @Version 1.0
+ * add by wuxw 2019/4/24
+ **/
+@FeignClient(name = "${java110.community-service}", configuration = {FeignConfiguration.class})
+@RequestMapping("/importOwnerRoomApi")
+public interface IImportOwnerRoomInnerServiceSMO {
+
+    /**
+     * 导入房产信息
+     *
+     * @param importOwnerRoomDtos 数据对象分享
+     * @return CommunityDto 对象数据
+     */
+    @RequestMapping(value = "/saveOwnerRooms", method = RequestMethod.POST)
+    int saveOwnerRooms(@RequestBody List<ImportOwnerRoomDto> importOwnerRoomDtos);
+
+
+}

+ 38 - 0
service-api/src/main/java/com/java110/api/components/assetImport/ImportOwnerRoomComponent.java

@@ -0,0 +1,38 @@
+package com.java110.api.components.assetImport;
+
+import com.java110.api.smo.assetImport.IImportOwnerRoomSMO;
+import com.java110.core.context.IPageData;
+import com.java110.core.log.LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 添加应用组件
+ *
+ * @author fqz
+ * @date 2021-12-21
+ */
+@Component("importOwnerRoom")
+public class ImportOwnerRoomComponent {
+
+    private final static Logger logger = LoggerFactory.getLogger(ImportOwnerRoomComponent.class);
+
+    @Autowired
+    private IImportOwnerRoomSMO importOwnerRoomSMOImpl;
+
+
+    /**
+     * 添加应用数据
+     *
+     * @param pd 页面数据封装
+     * @return ResponseEntity 对象
+     */
+    public ResponseEntity<String> importData(IPageData pd, MultipartFile uploadFile) throws Exception {
+        return importOwnerRoomSMOImpl.importExcelData(pd, uploadFile);
+    }
+
+
+}

+ 22 - 0
service-api/src/main/java/com/java110/api/smo/assetImport/IImportOwnerRoomSMO.java

@@ -0,0 +1,22 @@
+package com.java110.api.smo.assetImport;
+
+import com.java110.core.context.IPageData;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * @author wuxw
+ * @date 2022-03-08
+ */
+public interface IImportOwnerRoomSMO {
+
+    /**
+     * 导入excel数据
+     *
+     * @param pd         前台数据封装
+     * @param uploadFile excel 文件
+     * @return ResponseEntity
+     */
+    public ResponseEntity<String> importExcelData(IPageData pd, MultipartFile uploadFile) throws Exception;
+
+}

+ 300 - 0
service-api/src/main/java/com/java110/api/smo/assetImport/impl/ImportOwnerRoomSMOImpl.java

@@ -0,0 +1,300 @@
+package com.java110.api.smo.assetImport.impl;
+
+import com.java110.api.smo.DefaultAbstractComponentSMO;
+import com.java110.api.smo.assetImport.IImportOwnerRoomSMO;
+import com.java110.core.context.IPageData;
+import com.java110.core.log.LoggerFactory;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.entity.assetImport.ImportOwnerRoomDto;
+import com.java110.entity.component.ComponentValidateResult;
+import com.java110.intf.community.IImportOwnerRoomInnerServiceSMO;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.CommonUtil;
+import com.java110.utils.util.ImportExcelUtils;
+import com.java110.utils.util.StringUtil;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+@Service("importOwnerRoomSMOImpl")
+public class ImportOwnerRoomSMOImpl extends DefaultAbstractComponentSMO implements IImportOwnerRoomSMO {
+
+    private final static Logger logger = LoggerFactory.getLogger(ImportOwnerRoomSMOImpl.class);
+
+    public static final int DEFAULT_ROWS = 500;
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Autowired
+    private IImportOwnerRoomInnerServiceSMO importOwnerRoomInnerServiceSMOImpl;
+
+
+    @Override
+    public ResponseEntity<String> importExcelData(IPageData pd, MultipartFile uploadFile) throws Exception {
+        try {
+            ComponentValidateResult result = this.validateStoreStaffCommunityRelationship(pd, restTemplate);
+            //InputStream is = uploadFile.getInputStream();
+            Workbook workbook = ImportExcelUtils.createWorkbook(uploadFile);  //工作簿
+            List<ImportOwnerRoomDto> ownerRooms = new ArrayList<ImportOwnerRoomDto>();
+            //封装对象
+            getOwnerRooms(workbook, ownerRooms, result);
+
+            //数据格式校验
+            validateRoomInfo(ownerRooms);
+
+            // 保存数据
+            return dealExcelData(pd, ownerRooms, result);
+        } catch (Exception e) {
+            logger.error("导入失败 ", e);
+            return new ResponseEntity<String>("非常抱歉,您填写的模板数据有误:" + e.getMessage(), HttpStatus.BAD_REQUEST);
+        }
+    }
+
+    private boolean hasSpecialCharacters(String str) {
+        if (str.contains("-") || str.contains("#") || str.contains("?") || str.contains("&")) {
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * 数据格式校验
+     *
+     * @param ownerRooms
+     */
+    private void validateRoomInfo(List<ImportOwnerRoomDto> ownerRooms) {
+        ImportOwnerRoomDto importOwnerRoomDto = null;
+        ImportOwnerRoomDto tmpImportOwnerRoomDto = null;
+        boolean hasOwnerType = false;
+        for (int roomIndex = 0; roomIndex < ownerRooms.size(); roomIndex++) {
+            importOwnerRoomDto = ownerRooms.get(roomIndex);
+            // 1、楼栋单元房屋 中不支持 -  #  ? & 等特殊符号
+            if (hasSpecialCharacters(importOwnerRoomDto.getFloorNum())) {
+                throw new IllegalArgumentException((roomIndex + 1) + "行楼栋中包含特殊符号  -  #  ? & 请删除!");
+            }
+            if (hasSpecialCharacters(importOwnerRoomDto.getUnitNum())) {
+                throw new IllegalArgumentException((roomIndex + 1) + "行单元中包含特殊符号  -  #  ? & 请删除!");
+            }
+            if (hasSpecialCharacters(importOwnerRoomDto.getRoomNum())) {
+                throw new IllegalArgumentException((roomIndex + 1) + "行单元中包含特殊符号  -  #  ? & 请删除!");
+            }
+
+            if (!StringUtil.isNumber(importOwnerRoomDto.getLayer())) {
+                throw new IllegalArgumentException((roomIndex + 1) + "行楼层不是有效数字");
+            }
+
+            if (!StringUtil.isNumber(importOwnerRoomDto.getLayerCount())) {
+                throw new IllegalArgumentException((roomIndex + 1) + "行总楼层不是有效数字");
+            }
+            if (!StringUtil.isNumber(importOwnerRoomDto.getRoomSubType())) {
+                throw new IllegalArgumentException((roomIndex + 1) + "行房屋类型不是有效数字");
+            }
+
+            if (StringUtil.isEmpty(importOwnerRoomDto.getSection())) {
+                throw new IllegalArgumentException((roomIndex + 1) + "行房屋户型不能为空");
+            }
+
+            if (StringUtil.isEmpty(importOwnerRoomDto.getBuiltUpArea())) {
+                throw new IllegalArgumentException((roomIndex + 1) + "行建筑面积不能为空");
+            }
+
+            if (StringUtil.isEmpty(importOwnerRoomDto.getRoomArea())) {
+                throw new IllegalArgumentException((roomIndex + 1) + "行室内面积不能为空");
+            }
+            if (StringUtil.isEmpty(importOwnerRoomDto.getRoomRent())) {
+                throw new IllegalArgumentException((roomIndex + 1) + "行租金不能为空");
+            }
+            // 如果为空说明 房屋目前是空闲没有业主
+            if (StringUtil.isEmpty(importOwnerRoomDto.getOwnerName())) {
+                continue;
+            }
+
+            if (StringUtil.isEmpty(importOwnerRoomDto.getSex())) {
+                throw new IllegalArgumentException((roomIndex + 1) + "行性别不能为空");
+            }
+
+            if (StringUtil.isEmpty(importOwnerRoomDto.getAge())) {
+                throw new IllegalArgumentException((roomIndex + 1) + "行年龄不能为空");
+            }
+            //系统目前 在香港台湾 以及新加坡等地都有商用 所以 并不是中国大陆手机号规则 所以不做严格校验
+            //烦请专业测试团队勿喷
+            if (StringUtil.isEmpty(importOwnerRoomDto.getTel())) {
+                throw new IllegalArgumentException((roomIndex + 1) + "行手机号不能为空");
+            }
+
+            if (StringUtil.isEmpty(importOwnerRoomDto.getIdCard())) {
+                throw new IllegalArgumentException((roomIndex + 1) + "行身份证号不能为空");
+            }
+
+            if (importOwnerRoomDto.getIdCard().length() > 18) {
+                throw new IllegalArgumentException((roomIndex + 1) + " 的身份证超过18位,请核实");
+            }
+            if (!StringUtil.isNumber(importOwnerRoomDto.getOwnerTypeCd())) {
+                throw new IllegalArgumentException((roomIndex + 1) + "行业主类型不能为空");
+            }
+            // 如果是业主 跳过
+            if (OwnerDto.OWNER_TYPE_CD_OWNER.equals(importOwnerRoomDto.getOwnerTypeCd())) {
+                continue;
+            }
+            // 校验成员之前是否存在 业主角色
+            hasOwnerType = false;
+            for (int preRoomIndex = 0; preRoomIndex < roomIndex; preRoomIndex++) {
+                tmpImportOwnerRoomDto = ownerRooms.get(roomIndex);
+
+                if (tmpImportOwnerRoomDto.getFloorNum().equals(importOwnerRoomDto.getFloorNum())
+                        && tmpImportOwnerRoomDto.getUnitNum().equals(importOwnerRoomDto.getUnitNum())
+                        && tmpImportOwnerRoomDto.getRoomNum().equals(importOwnerRoomDto.getRoomNum())
+                        && OwnerDto.OWNER_TYPE_CD_OWNER.equals(tmpImportOwnerRoomDto.getOwnerTypeCd())) {
+                    hasOwnerType = true;
+                }
+            }
+
+            if (!hasOwnerType) {
+                throw new IllegalArgumentException((roomIndex + 1) + "行一个房屋必须要有业主存在 才能 写家庭成员和房屋租客 和临时人员,并且业主要写在 其他之前");
+            }
+        }
+    }
+
+    /**
+     * 获取业主车辆信息
+     *
+     * @param workbook
+     * @param ownerRoomDtos
+     */
+    private void getOwnerRooms(Workbook workbook, List<ImportOwnerRoomDto> ownerRoomDtos, ComponentValidateResult result) throws ParseException {
+        Sheet sheet = null;
+        sheet = ImportExcelUtils.getSheet(workbook, "资产信息");
+        List<Object[]> oList = ImportExcelUtils.listFromSheet(sheet);
+        ImportOwnerRoomDto importOwnerRoomDto = null;
+        for (int osIndex = 0; osIndex < oList.size(); osIndex++) {
+
+            Object[] os = oList.get(osIndex);
+
+            if (osIndex == 0) { // 第一行是 头部信息 直接跳过
+                continue;
+            }
+            if (os == null || StringUtil.isNullOrNone(os[0])) {
+                continue;
+            }
+            Assert.hasValue(os[0], (osIndex + 1) + "行楼号不能为空");
+            Assert.hasValue(os[1], (osIndex + 1) + "行单元不能为空");
+            Assert.hasValue(os[2], (osIndex + 1) + "行房屋不能为空");
+            Assert.hasValue(os[3], (osIndex + 1) + "行楼层不能为空");
+            Assert.hasValue(os[4], (osIndex + 1) + "行总楼层不能为空");
+            Assert.hasValue(os[5], (osIndex + 1) + "行是否有电梯不能为空");
+            Assert.hasValue(os[6], (osIndex + 1) + "行房屋类型不能为空");
+            Assert.hasValue(os[7], (osIndex + 1) + "行房屋户型不能为空");
+            Assert.hasValue(os[8], (osIndex + 1) + "行建筑面积不能为空");
+            Assert.hasValue(os[9], (osIndex + 1) + "行室内面积不能为空");
+            Assert.hasValue(os[10], (osIndex + 1) + "行租金不能为空");
+            if (os.length > 11) {
+                Assert.hasValue(os[11], (osIndex + 1) + "行业主名称不能为空");
+                Assert.hasValue(os[12], (osIndex + 1) + "行性别不能为空");
+                Assert.hasValue(os[13], (osIndex + 1) + "行年龄不能为空");
+                Assert.hasValue(os[14], (osIndex + 1) + "行手机号不能为空");
+                Assert.hasValue(os[15], (osIndex + 1) + "行身份证不能为空");
+                Assert.hasValue(os[16], (osIndex + 1) + "行业主类型不能为空");
+            }
+
+            importOwnerRoomDto = new ImportOwnerRoomDto();
+            importOwnerRoomDto.setCommunityId(result.getCommunityId());
+            importOwnerRoomDto.setFloorNum(os[0].toString().trim());
+            importOwnerRoomDto.setUnitNum(os[1].toString().trim());
+            importOwnerRoomDto.setRoomNum(os[2].toString().trim());
+            importOwnerRoomDto.setLayer(os[3].toString().trim());
+            importOwnerRoomDto.setLayerCount(os[4].toString().trim());
+            //importOwnerRoomDto.setLift(os[5].toString().trim());
+            importOwnerRoomDto.setLift("有".equals(os[5].toString().trim()) ? "1010" : "2020");
+            importOwnerRoomDto.setRoomSubType(os[6].toString().trim());
+            importOwnerRoomDto.setSection(os[7].toString().trim());
+            importOwnerRoomDto.setBuiltUpArea(os[8].toString().trim());
+            importOwnerRoomDto.setRoomArea(os[9].toString().trim());
+            importOwnerRoomDto.setRoomRent(os[10].toString().trim());
+            if (os.length > 11) {
+                importOwnerRoomDto.setOwnerName(os[11].toString().trim());
+                importOwnerRoomDto.setSex("男".equals(os[12].toString().trim()) ? "0" : "1");
+                String age = StringUtil.isNullOrNone(os[13]) ? CommonUtil.getAgeByCertId(os[15].toString().trim()) : os[13].toString().trim();
+                importOwnerRoomDto.setAge(age);
+                importOwnerRoomDto.setTel(os[14].toString().trim());
+                importOwnerRoomDto.setIdCard(os[15].toString().trim());
+                importOwnerRoomDto.setOwnerTypeCd(os[16].toString().trim());
+            }
+
+            ownerRoomDtos.add(importOwnerRoomDto);
+
+        }
+    }
+
+
+    /**
+     * 处理房产信息
+     */
+    private ResponseEntity<String> dealExcelData(IPageData pd, List<ImportOwnerRoomDto> ownerRoomDtos, ComponentValidateResult result) {
+        ResponseEntity<String> responseEntity = null;
+
+        List<ImportOwnerRoomDto> tmpImportOwnerRoomDtos = new ArrayList<>();
+        int flag = 0;
+        try {
+            for (int roomIndex = 0; roomIndex < ownerRoomDtos.size(); roomIndex++) {
+                tmpImportOwnerRoomDtos.add(ownerRoomDtos.get(roomIndex));
+                if (tmpImportOwnerRoomDtos.size() > DEFAULT_ROWS) {
+                    flag = importOwnerRoomInnerServiceSMOImpl.saveOwnerRooms(tmpImportOwnerRoomDtos);
+                    if (flag < 1) {
+                        throw new IllegalArgumentException("保存失败");
+                    }
+                    tmpImportOwnerRoomDtos = new ArrayList<>();
+                }
+            }
+
+            if (tmpImportOwnerRoomDtos.size() > 0) {
+                flag = importOwnerRoomInnerServiceSMOImpl.saveOwnerRooms(tmpImportOwnerRoomDtos);
+                if (flag < 1) {
+                    throw new IllegalArgumentException("保存失败");
+                }
+            }
+        } catch (Exception e) {
+            logger.error("导入失败", e);
+            //按批次做撤销功能
+            throw e;
+        }
+
+        return responseEntity;
+    }
+
+    //解析Excel日期格式
+    public static String excelDoubleToDate(String strDate) {
+        if (strDate.length() == 5) {
+            try {
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                Date tDate = DoubleToDate(Double.parseDouble(strDate));
+                return sdf.format(tDate);
+            } catch (Exception e) {
+                e.printStackTrace();
+                return strDate;
+            }
+        }
+        return strDate;
+    }
+
+    //解析Excel日期格式
+    public static Date DoubleToDate(Double dVal) {
+        Date tDate = new Date();
+        long localOffset = tDate.getTimezoneOffset() * 60000; //系统时区偏移 1900/1/1 到 1970/1/1 的 25569 天
+        tDate.setTime((long) ((dVal - 25569) * 24 * 3600 * 1000 + localOffset));
+        return tDate;
+    }
+}

+ 72 - 0
service-community/src/main/java/com/java110/community/smo/impl/ImportOwnerRoomInnerServiceSMOImpl.java

@@ -0,0 +1,72 @@
+package com.java110.community.smo.impl;
+
+import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.core.log.LoggerFactory;
+import com.java110.dto.FloorDto;
+import com.java110.entity.assetImport.ImportOwnerRoomDto;
+import com.java110.intf.community.IFloorInnerServiceSMO;
+import com.java110.intf.community.IImportOwnerRoomInnerServiceSMO;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 小区服务内部类
+ */
+@RestController
+public class ImportOwnerRoomInnerServiceSMOImpl extends BaseServiceSMO implements IImportOwnerRoomInnerServiceSMO {
+    private static Logger logger = LoggerFactory.getLogger(CommunityServiceSMOImpl.class);
+
+    @Autowired
+    private IFloorInnerServiceSMO floorInnerServiceSMOImpl;
+
+    @Autowired
+    public int saveOwnerRooms(@RequestBody List<ImportOwnerRoomDto> importOwnerRoomDtos) {
+
+        if (importOwnerRoomDtos == null || importOwnerRoomDtos.size() < 1) {
+            return 0;
+        }
+
+        // 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);
+        }
+        return floorDtos;
+    }
+
+    /**
+     * 是否存在 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;
+            }
+        }
+        return false;
+    }
+
+}