From 586c32160a069a330cd9610d1542e9c047ab99fd Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期一, 17 四月 2023 22:59:59 +0800
Subject: [PATCH] 优化 年龄和身份证号优化为非必填项

---
 service-api/src/main/java/com/java110/api/smo/assetImport/impl/ImportOwnerRoomSMOImpl.java |   79 ++++++++++++++++++++++++++++-----------
 1 files changed, 57 insertions(+), 22 deletions(-)

diff --git a/service-api/src/main/java/com/java110/api/smo/assetImport/impl/ImportOwnerRoomSMOImpl.java b/service-api/src/main/java/com/java110/api/smo/assetImport/impl/ImportOwnerRoomSMOImpl.java
index 7a78124..7a07d96 100644
--- a/service-api/src/main/java/com/java110/api/smo/assetImport/impl/ImportOwnerRoomSMOImpl.java
+++ b/service-api/src/main/java/com/java110/api/smo/assetImport/impl/ImportOwnerRoomSMOImpl.java
@@ -4,6 +4,7 @@
 import com.java110.api.smo.assetImport.IImportOwnerRoomSMO;
 import com.java110.core.context.IPageData;
 import com.java110.core.log.LoggerFactory;
+import com.java110.dto.RoomDto;
 import com.java110.dto.owner.OwnerDto;
 import com.java110.entity.assetImport.ImportOwnerRoomDto;
 import com.java110.entity.component.ComponentValidateResult;
@@ -12,6 +13,7 @@
 import com.java110.utils.util.CommonUtil;
 import com.java110.utils.util.ImportExcelUtils;
 import com.java110.utils.util.StringUtil;
+import com.java110.vo.ResultVo;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.Workbook;
 import org.slf4j.Logger;
@@ -71,6 +73,14 @@
         return false;
     }
 
+    private boolean hasRoomSpecialCharacters(String str) {
+        if ( str.contains("#") || str.contains("?") || str.contains("&")) {
+            return true;
+        }
+
+        return false;
+    }
+
     /**
      * 鏁版嵁鏍煎紡鏍¢獙
      *
@@ -89,13 +99,13 @@
             if (hasSpecialCharacters(importOwnerRoomDto.getUnitNum())) {
                 throw new IllegalArgumentException((roomIndex + 1) + "琛屽崟鍏冧腑鍖呭惈鐗规畩绗﹀彿  -  #  锛� & 璇峰垹闄わ紒");
             }
-            if (hasSpecialCharacters(importOwnerRoomDto.getRoomNum())) {
+            if (hasRoomSpecialCharacters(importOwnerRoomDto.getRoomNum())) {
                 throw new IllegalArgumentException((roomIndex + 1) + "琛屽崟鍏冧腑鍖呭惈鐗规畩绗﹀彿  -  #  锛� & 璇峰垹闄わ紒");
             }
 
-            if (!StringUtil.isNumber(importOwnerRoomDto.getLayer())) {
-                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) + "琛屾�绘ゼ灞備笉鏄湁鏁堟暟瀛�");
@@ -127,25 +137,38 @@
                 throw new IllegalArgumentException((roomIndex + 1) + "琛屾�у埆涓嶈兘涓虹┖");
             }
 
-            if (StringUtil.isEmpty(importOwnerRoomDto.getAge())) {
-                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.getTel().length() > 11) {
+                throw new IllegalArgumentException((roomIndex + 1) + "琛屾墜鏈哄彿瓒呰繃11浣�,璇锋牳瀹�");
             }
 
-            if (importOwnerRoomDto.getIdCard().length() > 18) {
+//            if (StringUtil.isEmpty(importOwnerRoomDto.getIdCard())) {
+//                throw new IllegalArgumentException((roomIndex + 1) + "琛岃韩浠借瘉鍙蜂笉鑳戒负绌�");
+//            }
+
+            if (!StringUtil.isEmpty(importOwnerRoomDto.getIdCard()) && importOwnerRoomDto.getIdCard().length() > 18) {
                 throw new IllegalArgumentException((roomIndex + 1) + " 鐨勮韩浠借瘉瓒呰繃18浣�,璇锋牳瀹�");
             }
             if (!StringUtil.isNumber(importOwnerRoomDto.getOwnerTypeCd())) {
                 throw new IllegalArgumentException((roomIndex + 1) + "琛屼笟涓荤被鍨嬩笉鑳戒负绌�");
             }
+
+            if(RoomDto.STATE_FREE.equals(importOwnerRoomDto.getRoomState()) && !StringUtil.isEmpty(importOwnerRoomDto.getOwnerName())){
+                throw new IllegalArgumentException((roomIndex + 1) + "琛屾埧灞嬬姸鎬佷负鏈攢鍞姸鎬侊紝涓嶈兘鍖呭惈涓氫富淇℃伅");
+            }
+
+            if(!RoomDto.STATE_FREE.equals(importOwnerRoomDto.getRoomState()) && StringUtil.isEmpty(importOwnerRoomDto.getOwnerName())){
+                throw new IllegalArgumentException((roomIndex + 1) + "琛屾埧灞嬬姸鎬佷笉鏄湭閿�鍞姸鎬侊紝蹇呴』鍖呭惈涓氫富淇℃伅");
+            }
+
             // 濡傛灉鏄笟涓� 璺宠繃
             if (OwnerDto.OWNER_TYPE_CD_OWNER.equals(importOwnerRoomDto.getOwnerTypeCd())) {
                 continue;
@@ -153,13 +176,14 @@
             // 鏍¢獙鎴愬憳涔嬪墠鏄惁瀛樺湪 涓氫富瑙掕壊
             hasOwnerType = false;
             for (int preRoomIndex = 0; preRoomIndex < roomIndex; preRoomIndex++) {
-                tmpImportOwnerRoomDto = ownerRooms.get(roomIndex);
+                tmpImportOwnerRoomDto = ownerRooms.get(preRoomIndex);
 
                 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;
+                    break;
                 }
             }
 
@@ -201,10 +225,11 @@
             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[11], (osIndex + 1) + "琛屾埧灞嬬姸鎬佷笉鑳戒负绌�");
+            if (os.length > 12 && !StringUtil.isNullOrNone(os[12])) {
+                Assert.hasValue(os[12], (osIndex + 1) + "琛屼笟涓诲悕绉颁笉鑳戒负绌�");
+                Assert.hasValue(os[13], (osIndex + 1) + "琛屾�у埆涓嶈兘涓虹┖");
+                // Assert.hasValue(os[14], (osIndex + 1) + "琛屽勾榫勪笉鑳戒负绌�");
                 Assert.hasValue(os[14], (osIndex + 1) + "琛屾墜鏈哄彿涓嶈兘涓虹┖");
                 Assert.hasValue(os[15], (osIndex + 1) + "琛岃韩浠借瘉涓嶈兘涓虹┖");
                 Assert.hasValue(os[16], (osIndex + 1) + "琛屼笟涓荤被鍨嬩笉鑳戒负绌�");
@@ -212,6 +237,7 @@
 
             importOwnerRoomDto = new ImportOwnerRoomDto();
             importOwnerRoomDto.setCommunityId(result.getCommunityId());
+            importOwnerRoomDto.setUserId(result.getUserId());
             importOwnerRoomDto.setFloorNum(os[0].toString().trim());
             importOwnerRoomDto.setUnitNum(os[1].toString().trim());
             importOwnerRoomDto.setRoomNum(os[2].toString().trim());
@@ -224,15 +250,19 @@
             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.setRoomState(os[11].toString().trim());
+            if (os.length > 12 && !StringUtil.isNullOrNone(os[12])) {
+                importOwnerRoomDto.setOwnerName(os[12].toString().trim());
+                importOwnerRoomDto.setSex("鐢�".equals(os[13].toString().trim()) ? "0" : "1");
+                // String age = StringUtil.isNullOrNone(os[14]) ? CommonUtil.getAgeByCertId(os[16].toString().trim()) : os[14].toString().trim();
+                importOwnerRoomDto.setAge("1");
                 importOwnerRoomDto.setTel(os[14].toString().trim());
-                importOwnerRoomDto.setIdCard(os[15].toString().trim());
+                String idCard = StringUtil.isNullOrNone(os[15])?"": os[15].toString().trim();
+                importOwnerRoomDto.setIdCard(idCard);
                 importOwnerRoomDto.setOwnerTypeCd(os[16].toString().trim());
             }
+
+
 
             ownerRoomDtos.add(importOwnerRoomDto);
 
@@ -248,6 +278,8 @@
 
         List<ImportOwnerRoomDto> tmpImportOwnerRoomDtos = new ArrayList<>();
         int flag = 0;
+
+        int successCount = 0;
         try {
             for (int roomIndex = 0; roomIndex < ownerRoomDtos.size(); roomIndex++) {
                 tmpImportOwnerRoomDtos.add(ownerRoomDtos.get(roomIndex));
@@ -257,6 +289,8 @@
                         throw new IllegalArgumentException("淇濆瓨澶辫触");
                     }
                     tmpImportOwnerRoomDtos = new ArrayList<>();
+
+                    successCount += flag;
                 }
             }
 
@@ -265,6 +299,7 @@
                 if (flag < 1) {
                     throw new IllegalArgumentException("淇濆瓨澶辫触");
                 }
+                successCount += flag;
             }
         } catch (Exception e) {
             logger.error("瀵煎叆澶辫触", e);
@@ -272,7 +307,7 @@
             throw e;
         }
 
-        return responseEntity;
+        return ResultVo.createResponseEntity("鎬诲叡瀵煎叆:" + ownerRoomDtos.size() + ";鎴愬姛瀵煎叆锛�" + successCount + ";瀵煎叆澶辫触锛�" + (ownerRoomDtos.size() - successCount));
     }
 
     //瑙f瀽Excel鏃ユ湡鏍煎紡

--
Gitblit v1.8.0