From 18dcf51511adffe8a0d4ebf7eb07d9ec50b37885 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 17 九月 2020 13:11:54 +0800
Subject: [PATCH] 优化代码

---
 service-front/src/main/java/com/java110/front/smo/assetImport/impl/AssetImportSMOImpl.java |  163 ++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 109 insertions(+), 54 deletions(-)

diff --git a/service-front/src/main/java/com/java110/front/smo/assetImport/impl/AssetImportSMOImpl.java b/service-front/src/main/java/com/java110/front/smo/assetImport/impl/AssetImportSMOImpl.java
index e8dd1e5..7104860 100644
--- a/service-front/src/main/java/com/java110/front/smo/assetImport/impl/AssetImportSMOImpl.java
+++ b/service-front/src/main/java/com/java110/front/smo/assetImport/impl/AssetImportSMOImpl.java
@@ -4,18 +4,12 @@
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.component.BaseComponentSMO;
 import com.java110.core.context.IPageData;
-import com.java110.entity.assetImport.ImportFee;
-import com.java110.entity.assetImport.ImportFloor;
-import com.java110.entity.assetImport.ImportOwner;
-import com.java110.entity.assetImport.ImportParkingSpace;
-import com.java110.entity.assetImport.ImportRoom;
+import com.java110.entity.assetImport.*;
 import com.java110.entity.component.ComponentValidateResult;
 import com.java110.front.smo.assetImport.IAssetImportSMO;
 import com.java110.utils.constant.FeeTypeConstant;
 import com.java110.utils.constant.ServiceConstant;
-import com.java110.utils.util.CommonUtil;
-import com.java110.utils.util.ImportExcelUtils;
-import com.java110.utils.util.StringUtil;
+import com.java110.utils.util.*;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.Workbook;
 import org.slf4j.Logger;
@@ -49,38 +43,43 @@
     @Override
     public ResponseEntity<String> importExcelData(IPageData pd, MultipartFile uploadFile) throws Exception {
 
-        ComponentValidateResult result = this.validateStoreStaffCommunityRelationship(pd, restTemplate);
+        try {
+            ComponentValidateResult result = this.validateStoreStaffCommunityRelationship(pd, restTemplate);
 
-        //InputStream is = uploadFile.getInputStream();
+            //InputStream is = uploadFile.getInputStream();
 
-        Workbook workbook = null;  //宸ヤ綔绨�
-        //宸ヤ綔琛�
-        String[] headers = null;   //琛ㄥご淇℃伅
-        List<ImportFloor> floors = new ArrayList<ImportFloor>();
-        List<ImportOwner> owners = new ArrayList<ImportOwner>();
-        List<ImportFee> fees = new ArrayList<>();
-        List<ImportRoom> rooms = new ArrayList<ImportRoom>();
-        List<ImportParkingSpace> parkingSpaces = new ArrayList<ImportParkingSpace>();
-        workbook = ImportExcelUtils.createWorkbook(uploadFile);
-        //鑾峰彇妤间俊鎭�
-        getFloors(workbook, floors);
-        //鑾峰彇涓氫富淇℃伅
-        getOwners(workbook, owners);
+            Workbook workbook = null;  //宸ヤ綔绨�
+            //宸ヤ綔琛�
+            String[] headers = null;   //琛ㄥご淇℃伅
+            List<ImportFloor> floors = new ArrayList<ImportFloor>();
+            List<ImportOwner> owners = new ArrayList<ImportOwner>();
+            List<ImportFee> fees = new ArrayList<>();
+            List<ImportRoom> rooms = new ArrayList<ImportRoom>();
+            List<ImportParkingSpace> parkingSpaces = new ArrayList<ImportParkingSpace>();
+            workbook = ImportExcelUtils.createWorkbook(uploadFile);
+            //鑾峰彇妤间俊鎭�
+            getFloors(workbook, floors);
+            //鑾峰彇涓氫富淇℃伅
+            getOwners(workbook, owners);
 
 
-        getFee(workbook, fees);
+            getFee(workbook, fees);
 
-        //鑾峰彇鎴垮眿淇℃伅
-        getRooms(workbook, rooms, floors, owners);
+            //鑾峰彇鎴垮眿淇℃伅
+            getRooms(workbook, rooms, floors, owners);
 
-        //鑾峰彇杞︿綅淇℃伅
-        getParkingSpaces(workbook, parkingSpaces, owners);
+            //鑾峰彇杞︿綅淇℃伅
+            getParkingSpaces(workbook, parkingSpaces, owners);
 
-        //鏁版嵁鏍¢獙
-        importExcelDataValidate(floors, owners, rooms, parkingSpaces);
+            //鏁版嵁鏍¢獙
+            importExcelDataValidate(floors, owners, rooms, fees, parkingSpaces);
 
-        // 淇濆瓨鏁版嵁
-        return dealExcelData(pd, floors, owners, rooms, parkingSpaces, fees, result);
+            // 淇濆瓨鏁版嵁
+            return dealExcelData(pd, floors, owners, rooms, parkingSpaces, fees, result);
+        } catch (Exception e) {
+            logger.error("瀵煎叆澶辫触 ", e);
+            return new ResponseEntity<String>("闈炲父鎶辨瓑锛屾偍濉啓鐨勬ā鏉挎暟鎹湁璇細" + e.getMessage(), HttpStatus.BAD_REQUEST);
+        }
     }
 
     /**
@@ -176,7 +175,7 @@
         ResponseEntity<String> responseEntity = new ResponseEntity<String>("鎴愬姛", HttpStatus.OK);
         ImportOwner owner = null;
         for (ImportParkingSpace parkingSpace : parkingSpaces) {
-
+            responseEntity = new ResponseEntity<String>("鎴愬姛", HttpStatus.OK);
             JSONObject savedParkingAreaInfo = getExistsParkingArea(pd, result, parkingSpace);
             paramIn = new JSONObject();
             // 濡傛灉涓嶅瓨鍦紝鎵嶆彃鍏�
@@ -233,26 +232,28 @@
             paramIn.put("psId", savedParkingSpaceInfo.getString("psId"));
             paramIn.put("storeId", result.getStoreId());
             paramIn.put("sellOrHire", parkingSpace.getSellOrHire());
+            paramIn.put("startTime", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+            paramIn.put("endTime", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
 
             if ("H".equals(parkingSpace.getSellOrHire())) {
                 paramIn.put("cycles", "0");
             }
 
-            String feeTypeCd = "1001".equals(parkingSpace.getTypeCd())
-                    ? FeeTypeConstant.FEE_TYPE_SELL_UP_PARKING_SPACE : FeeTypeConstant.FEE_TYPE_SELL_DOWN_PARKING_SPACE;
-            apiUrl = ServiceConstant.SERVICE_API_URL + "/api/feeConfig.listFeeConfigs?page=1&row=1&communityId=" + result.getCommunityId() + "&feeTypeCd=" + feeTypeCd + "&isDefault=T";
-            responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+//            String feeTypeCd = "1001".equals(parkingSpace.getTypeCd())
+//                    ? FeeTypeConstant.FEE_TYPE_SELL_UP_PARKING_SPACE : FeeTypeConstant.FEE_TYPE_SELL_DOWN_PARKING_SPACE;
+//            apiUrl = ServiceConstant.SERVICE_API_URL + "/api/feeConfig.listFeeConfigs?page=1&row=1&communityId=" + result.getCommunityId() + "&feeTypeCd=" + feeTypeCd + "&isDefault=T";
+//            responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+//
+//            if (responseEntity.getStatusCode() != HttpStatus.OK) {
+//                continue;
+//            }
 
-            if (responseEntity.getStatusCode() != HttpStatus.OK) {
-                continue;
-            }
+//            JSONObject configInfo = JSONObject.parseObject(responseEntity.getBody()).getJSONArray("feeConfigs").getJSONObject(0);
+//            if (!configInfo.containsKey("additionalAmount")) {
+//                continue;
+//            }
 
-            JSONObject configInfo = JSONObject.parseObject(responseEntity.getBody()).getJSONArray("feeConfigs").getJSONObject(0);
-            if (!configInfo.containsKey("additionalAmount")) {
-                continue;
-            }
-
-            paramIn.put("receivedAmount", configInfo.getString("additionalAmount"));
+//            paramIn.put("receivedAmount", configInfo.getString("additionalAmount"));
 
             apiUrl = ServiceConstant.SERVICE_API_URL + "/api/parkingSpace.sellParkingSpace";
             responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(), apiUrl, HttpMethod.POST);
@@ -295,7 +296,7 @@
             paramIn.put("apartment", room.getSection());
             paramIn.put("state", "2002");
             paramIn.put("builtUpArea", room.getBuiltUpArea());
-            paramIn.put("unitPrice", "1000.00");
+            paramIn.put("feeCoefficient", "1.00");
 
 
             responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(), apiUrl, HttpMethod.POST);
@@ -498,7 +499,12 @@
             paramIn.put("ownerTypeCd", "1001");
             paramIn.put("idCard", owner.getIdCard());
             responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(), apiUrl, HttpMethod.POST);
+
             if (responseEntity.getStatusCode() == HttpStatus.OK) {
+                JSONObject body = JSONObject.parseObject(responseEntity.getBody());
+                if (body.containsKey("code") && body.getIntValue("code") != 0) {
+                    throw new IllegalArgumentException(body.getString("msg"));
+                }
                 savedOwnerInfo = getExistsOwner(pd, result, owner);
                 owner.setOwnerId(savedOwnerInfo.getString("ownerId"));
             }
@@ -530,6 +536,8 @@
                 paramIn.put("floorNum", importFloor.getFloorNum());
                 paramIn.put("userId", result.getUserId());
                 paramIn.put("name", importFloor.getFloorNum() + "鍙锋ゼ");
+                paramIn.put("floorArea", 1.00);
+
                 responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(), apiUrl, HttpMethod.POST);
                 savedFloorInfo = getExistsFloor(pd, result, importFloor);
             }
@@ -557,6 +565,7 @@
             paramIn.put("unitNum", importFloor.getUnitNum());
             paramIn.put("layerCount", importFloor.getLayerCount());
             paramIn.put("lift", importFloor.getLift());
+            paramIn.put("unitArea", 1.00);
             responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(), apiUrl, HttpMethod.POST);
 
             //灏唘nitId 鍒峰叆ImportFloor瀵硅薄
@@ -678,7 +687,8 @@
      * @param rooms
      * @param parkingSpaces
      */
-    private void importExcelDataValidate(List<ImportFloor> floors, List<ImportOwner> owners, List<ImportRoom> rooms, List<ImportParkingSpace> parkingSpaces) {
+    private void importExcelDataValidate(List<ImportFloor> floors, List<ImportOwner> owners, List<ImportRoom> rooms, List<ImportFee> fees, List<ImportParkingSpace> parkingSpaces) {
+
     }
 
     /**
@@ -700,6 +710,10 @@
             if (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) + "琛岄潰绉负绌猴紝娌℃湁璇峰~鍐欒瀹氬�� 濡�10");
             importParkingSpace = new ImportParkingSpace();
             importParkingSpace.setPaNum(os[0].toString());
             importParkingSpace.setPsNum(os[1].toString());
@@ -743,6 +757,15 @@
             if (StringUtil.isNullOrNone(os[0])) {
                 continue;
             }
+            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) + "琛屽缓绛戦潰绉负绌�");
+            if (!StringUtil.isNullOrNone(os[6])) {
+                Assert.hasValue(os[7], "鎴垮眿淇℃伅閫夐」涓�" + (osIndex + 1) + "琛屾埧灞嬭垂鐢ㄤ负绌�");
+                Assert.hasValue(os[8], "鎴垮眿淇℃伅閫夐」涓�" + (osIndex + 1) + "琛岃垂鐢ㄥ埌鏈熸椂闂翠负绌�");
+            }
             importRoom = new ImportRoom();
             importRoom.setRoomNum(os[0].toString());
             importRoom.setFloor(getImportFloor(floors, os[1].toString(), os[2].toString()));
@@ -750,7 +773,7 @@
             importRoom.setSection(os[4].toString());
             importRoom.setBuiltUpArea(Double.parseDouble(os[5].toString()));
 
-            if (!StringUtil.isEmpty(os[7].toString())) {
+            if (!StringUtil.isNullOrNone(os[6])) {
                 importRoom.setRoomFeeId(os[7].toString());
                 importRoom.setFeeEndDate(os[8].toString());
             }
@@ -771,7 +794,7 @@
      */
     private void getFee(Workbook workbook, List<ImportFee> importFees) {
         Sheet sheet = null;
-        sheet = ImportExcelUtils.getSheet(workbook, "鎴垮眿淇℃伅");
+        sheet = ImportExcelUtils.getSheet(workbook, "璐圭敤璁剧疆");
         List<Object[]> oList = ImportExcelUtils.listFromSheet(sheet);
         ImportFee importFee = null;
         for (int osIndex = 0; osIndex < oList.size(); osIndex++) {
@@ -782,6 +805,22 @@
             if (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.isInteger(os[5].toString(), "璐圭敤璁剧疆閫夐」涓�" + (osIndex + 1) + "琛岀即璐瑰懆鏈熶笉鏄鏁存暟");
+            Assert.hasValue(os[6], "璐圭敤璁剧疆閫夐」涓�" + (osIndex + 1) + "琛屽嚭璐︾被鍨嬩负绌�");
+            Assert.isDate(os[7].toString(), DateUtil.DATE_FORMATE_STRING_B, "璐圭敤璁剧疆閫夐」涓�" + (osIndex + 1) + "琛岃璐硅捣濮嬫椂闂翠笉鏄湁鏁堟椂闂存牸寮� 璇疯緭鍏ョ被浼�2020-06-01");
+            Assert.isDate(os[8].toString(), DateUtil.DATE_FORMATE_STRING_B, "璐圭敤璁剧疆閫夐」涓�" + (osIndex + 1) + "琛岃璐圭粓姝㈡椂闂翠笉鏄湁鏁堟椂闂存牸寮� 璇疯緭鍏ョ被浼�2037-01-01");
+            Assert.hasValue(os[9], "璐圭敤璁剧疆閫夐」涓�" + (osIndex + 1) + "琛岃绠楀叕寮忎负绌�");
+            if (!"1001".equals(os[9].toString()) && !"2002".equals(os[9].toString())) {
+                throw new IllegalArgumentException("璐圭敤璁剧疆閫夐」涓�" + (osIndex + 1) + "琛岃绠楀叕寮忛敊璇� 璇峰~鍐�1001 鎴栬��2002");
+            }
+            Assert.hasValue(os[10], "璐圭敤璁剧疆閫夐」涓�" + (osIndex + 1) + "琛岃璐瑰崟浠蜂负绌�");
+            Assert.hasValue(os[11], "璐圭敤璁剧疆閫夐」涓�" + (osIndex + 1) + "琛屽浐瀹氳垂鐢ㄤ负绌�");
             importFee = new ImportFee();
             importFee.setId(os[0].toString());
             importFee.setFeeTypeCd("鐗╀笟璐�".equals(os[1]) ? "888800010001" : "888800010002");
@@ -789,17 +828,17 @@
             importFee.setFeeFlag("鍛ㄦ湡鎬ц垂鐢�".equals(os[3]) ? "1003006" : "2006012");
             importFee.setPaymentCd("棰勪粯璐�".equals(os[4]) ? "1200" : "2100");
             String billType = "";
-            if ("姣忓勾1鏈�1鏃�".equals(os[5])) {
+            if ("姣忓勾1鏈�1鏃�".equals(os[6])) {
                 billType = "001";
-            } else if ("姣忔湀1鏃�".equals(os[5])) {
+            } else if ("姣忔湀1鏃�".equals(os[6])) {
                 billType = "002";
-            } else if ("姣忔棩".equals(os[5])) {
+            } else if ("姣忔棩".equals(os[6])) {
                 billType = "003";
             } else {
                 billType = "004";
             }
             importFee.setBillType(billType);
-            importFee.setPaymentCycle(os[6].toString());
+            importFee.setPaymentCycle(os[5].toString());
             importFee.setStartTime(os[7].toString());
             importFee.setEndTime(os[8].toString());
             importFee.setComputingFormula(os[9].toString());
@@ -862,8 +901,19 @@
             if (StringUtil.isNullOrNone(os[0])) {
                 continue;
             }
+            Assert.hasValue(os[0], "涓氫富淇℃伅閫夐」涓�" + (osIndex + 1) + "琛屼笟涓荤紪鍙蜂负绌�");
+            Assert.hasValue(os[1], "涓氫富淇℃伅閫夐」涓�" + (osIndex + 1) + "琛屼笟涓诲悕绉颁负绌�");
+            Assert.hasValue(os[2], "涓氫富淇℃伅閫夐」涓�" + (osIndex + 1) + "琛屼笟涓绘�у埆涓虹┖");
             String tel = StringUtil.isNullOrNone(os[4]) ? "19999999999" : os[4].toString();
             String idCard = StringUtil.isNullOrNone(os[5]) ? "10000000000000000001" : os[5].toString();
+
+            if (os[4].toString().length() > 11) {
+                throw new IllegalArgumentException(os[1].toString() + " 鐨勬墜鏈哄彿瓒呰繃11浣�,璇锋牳瀹�");
+            }
+            if (os[5].toString().length() > 18) {
+                throw new IllegalArgumentException(os[1].toString() + " 鐨勮韩浠借瘉瓒呰繃18浣�,璇锋牳瀹�");
+            }
+
             String age = StringUtil.isNullOrNone(os[3]) ? CommonUtil.getAgeByCertId(idCard) : os[3].toString();
             importOwner = new ImportOwner();
             importOwner.setOwnerNum(os[0].toString());
@@ -896,6 +946,11 @@
             if (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) + "琛屾槸鍚︽湁鐢垫涓虹┖");
             importFloor = new ImportFloor();
             importFloor.setFloorNum(os[0].toString());
             importFloor.setUnitNum(os[1].toString());

--
Gitblit v1.8.0