From ec86d036d72441b6e1f199a5e0c2d6ef1759a876 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期六, 15 二月 2020 17:09:01 +0800
Subject: [PATCH] 优化beyongCommunityId处理

---
 WebService/src/main/java/com/java110/web/smo/assetImport/impl/AssetImportSMOImpl.java |  305 +++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 275 insertions(+), 30 deletions(-)

diff --git a/WebService/src/main/java/com/java110/web/smo/assetImport/impl/AssetImportSMOImpl.java b/WebService/src/main/java/com/java110/web/smo/assetImport/impl/AssetImportSMOImpl.java
index eae27b0..8993c52 100644
--- a/WebService/src/main/java/com/java110/web/smo/assetImport/impl/AssetImportSMOImpl.java
+++ b/WebService/src/main/java/com/java110/web/smo/assetImport/impl/AssetImportSMOImpl.java
@@ -2,16 +2,17 @@
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.java110.common.constant.ServiceConstant;
-import com.java110.common.util.Assert;
-import com.java110.common.util.ImportExcelUtils;
+import com.java110.utils.constant.FeeTypeConstant;
+import com.java110.utils.constant.ServiceConstant;
+import com.java110.utils.util.ImportExcelUtils;
+import com.java110.utils.util.StringUtil;
 import com.java110.core.context.IPageData;
 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.component.ComponentValidateResult;
-import com.java110.web.core.BaseComponentSMO;
+import com.java110.core.component.BaseComponentSMO;
 import com.java110.web.smo.assetImport.IAssetImportSMO;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.Workbook;
@@ -25,7 +26,6 @@
 import org.springframework.web.client.RestTemplate;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -90,23 +90,135 @@
         //淇濆瓨鍗曞厓淇℃伅 鍜� 妤兼爧淇℃伅
         responseEntity = savedFloorAndUnitInfo(pd, floors, result);
 
-        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+        if (responseEntity == null || responseEntity.getStatusCode() != HttpStatus.OK) {
             return responseEntity;
         }
 
         // 淇濆瓨涓氫富淇℃伅
         responseEntity = savedOwnerInfo(pd, owners, result);
-        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+        if (responseEntity == null || responseEntity.getStatusCode() != HttpStatus.OK) {
             return responseEntity;
         }
 
         //淇濆瓨鎴垮眿
-        responseEntity = savedRoomInfo(pd,rooms,result);
+        responseEntity = savedRoomInfo(pd, rooms, result);
+        if (responseEntity == null || responseEntity.getStatusCode() != HttpStatus.OK) {
+            return responseEntity;
+        }
+
+        //淇濆瓨杞︿綅
+        responseEntity = savedParkingSpaceInfo(pd, parkingSpaces, result);
+
+        if (responseEntity == null || responseEntity.getStatusCode() != HttpStatus.OK) {
+            return responseEntity;
+        }
+
         return responseEntity;
     }
 
     /**
+     * 淇濆瓨杞︿綅淇℃伅
+     *
+     * @param pd
+     * @param parkingSpaces
+     * @param result
+     * @return
+     */
+    private ResponseEntity<String> savedParkingSpaceInfo(IPageData pd, List<ImportParkingSpace> parkingSpaces, ComponentValidateResult result) {
+        String apiUrl = "";
+        JSONObject paramIn = null;
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>("鎴愬姛", HttpStatus.OK);
+        ImportOwner owner = null;
+        for (ImportParkingSpace parkingSpace : parkingSpaces) {
+
+            JSONObject savedParkingAreaInfo = getExistsParkingArea(pd, result, parkingSpace);
+            paramIn = new JSONObject();
+            // 濡傛灉涓嶅瓨鍦紝鎵嶆彃鍏�
+            if (savedParkingAreaInfo == null) {
+                apiUrl = ServiceConstant.SERVICE_API_URL + "/api/parkingArea.saveParkingArea";
+                paramIn.put("communityId", result.getCommunityId());
+                paramIn.put("typeCd",parkingSpace.getTypeCd());
+                paramIn.put("num", parkingSpace.getPaNum());
+                responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(), apiUrl, HttpMethod.POST);
+                savedParkingAreaInfo = getExistsParkingArea(pd, result, parkingSpace);
+            }
+            if (responseEntity != null && responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+                continue;
+            }
+
+            JSONObject savedParkingSpaceInfo = getExistsParkSpace(pd, result, parkingSpace);
+            if (savedParkingSpaceInfo != null) {
+                continue;
+            }
+
+            apiUrl = ServiceConstant.SERVICE_API_URL + "/api/parkingSpace.saveParkingSpace";
+
+            paramIn.put("paId", savedParkingAreaInfo.getString("paId"));
+            paramIn.put("communityId", result.getCommunityId());
+            paramIn.put("userId", result.getUserId());
+            paramIn.put("num", parkingSpace.getPsNum());
+            paramIn.put("area", parkingSpace.getArea());
+            paramIn.put("typeCd", parkingSpace.getTypeCd());
+
+            responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(), apiUrl, HttpMethod.POST);
+            if (responseEntity.getStatusCode() != HttpStatus.OK) {
+                continue;
+            }
+
+            savedParkingSpaceInfo = getExistsParkSpace(pd, result, parkingSpace);
+            if (savedParkingSpaceInfo == null) {
+                continue;
+            }
+
+            //鏄惁鏈変笟涓讳俊鎭�
+            if (parkingSpace.getImportOwner() == null) {
+                continue;
+            }
+
+            paramIn.clear();
+
+            paramIn.put("communityId", result.getCommunityId());
+            paramIn.put("ownerId", parkingSpace.getImportOwner().getOwnerId());
+            paramIn.put("userId", result.getUserId());
+            paramIn.put("carNum", parkingSpace.getCarNum());
+            paramIn.put("carBrand", parkingSpace.getCarBrand());
+            paramIn.put("carType", parkingSpace.getCarType());
+            paramIn.put("carColor", parkingSpace.getCarColor());
+            paramIn.put("psId", savedParkingSpaceInfo.getString("psId"));
+            paramIn.put("storeId", result.getStoreId());
+            paramIn.put("sellOrHire", parkingSpace.getSellOrHire());
+
+            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);
+
+            if (responseEntity.getStatusCode() != HttpStatus.OK) {
+                continue;
+            }
+
+            JSONObject configInfo = JSONObject.parseObject(responseEntity.getBody()).getJSONArray("feeConfigs").getJSONObject(0);
+            if (!configInfo.containsKey("additionalAmount")) {
+                continue;
+            }
+
+            paramIn.put("receivedAmount", configInfo.getString("additionalAmount"));
+
+            apiUrl = ServiceConstant.SERVICE_API_URL + "/api/parkingSpace.sellParkingSpace";
+            responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(), apiUrl, HttpMethod.POST);
+        }
+
+        return responseEntity;
+    }
+
+
+    /**
      * 淇濆瓨鎴垮眿淇℃伅
+     *
      * @param pd
      * @param rooms
      * @param result
@@ -115,17 +227,91 @@
     private ResponseEntity<String> savedRoomInfo(IPageData pd, List<ImportRoom> rooms, ComponentValidateResult result) {
         String apiUrl = "";
         JSONObject paramIn = null;
-        ResponseEntity<String> responseEntity = null;
-        for(ImportRoom room : rooms){
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>("鎴愬姛", HttpStatus.OK);
+        ImportOwner owner = null;
+        for (ImportRoom room : rooms) {
             JSONObject savedRoomInfo = getExistsRoom(pd, result, room);
-
             if (savedRoomInfo != null) {
                 continue;
             }
+
+            paramIn = new JSONObject();
+
+
+            //淇濆瓨 鎴垮眿
+
+            apiUrl = ServiceConstant.SERVICE_API_URL + "/api/room.saveRoom";
+
+            paramIn.put("communityId", result.getCommunityId());
+            paramIn.put("unitId", room.getFloor().getUnitId());
+            paramIn.put("roomNum", room.getRoomNum());
+            paramIn.put("layer", room.getLayer());
+            paramIn.put("section", "1");
+            paramIn.put("apartment", room.getSection());
+            paramIn.put("state", "2002");
+            paramIn.put("builtUpArea", room.getBuiltUpArea());
+            paramIn.put("unitPrice", "1000.00");
+
+            responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(), apiUrl, HttpMethod.POST);
+            if (responseEntity.getStatusCode() != HttpStatus.OK) {
+                continue;
+            }
+
+            savedRoomInfo = getExistsRoom(pd, result, room);
+            if (savedRoomInfo == null) {
+                continue;
+            }
+
+            if (room.getImportOwner() == null) {
+                continue;
+            }
+            paramIn.clear();
+            apiUrl = ServiceConstant.SERVICE_API_URL + "/api/room.sellRoom";
+            paramIn.put("communityId", result.getCommunityId());
+            paramIn.put("ownerId", room.getImportOwner().getOwnerId());
+            paramIn.put("roomId", savedRoomInfo.getString("roomId"));
+            paramIn.put("state", "2001");
+            paramIn.put("storeId", result.getStoreId());
+            responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(), apiUrl, HttpMethod.POST);
+
         }
 
         return responseEntity;
     }
+
+    /**
+     * 鏌ヨ瀛樺湪鐨勬埧灞嬩俊鎭�
+     * room.queryRooms
+     *
+     * @param pd
+     * @param result
+     * @param parkingSpace
+     * @return
+     */
+    private JSONObject getExistsParkSpace(IPageData pd, ComponentValidateResult result, ImportParkingSpace parkingSpace) {
+        String apiUrl = "";
+        ResponseEntity<String> responseEntity = null;
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/parkingSpace.queryParkingSpaces?page=1&row=1&communityId=" + result.getCommunityId()
+                + "&num=" + parkingSpace.getPsNum();
+        responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+
+        if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            return null;
+        }
+
+        JSONObject savedParkingSpaceInfoResults = JSONObject.parseObject(responseEntity.getBody());
+
+
+        if (!savedParkingSpaceInfoResults.containsKey("parkingSpaces") || savedParkingSpaceInfoResults.getJSONArray("parkingSpaces").size() != 1) {
+            return null;
+        }
+
+
+        JSONObject savedParkingSpaceInfo = savedParkingSpaceInfoResults.getJSONArray("parkingSpaces").getJSONObject(0);
+
+        return savedParkingSpaceInfo;
+    }
+
 
     /**
      * 鏌ヨ瀛樺湪鐨勬埧灞嬩俊鎭�
@@ -139,8 +325,8 @@
     private JSONObject getExistsRoom(IPageData pd, ComponentValidateResult result, ImportRoom room) {
         String apiUrl = "";
         ResponseEntity<String> responseEntity = null;
-        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/room.queryRooms?communityId=" + result.getCommunityId()
-                + "&floorId=" + room.getFloor().getFloorId() + "&unitId=" + room.getFloor().getUnitId()+"&roomNum="+room.getRoomNum();
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/room.queryRooms?page=1&row=1&communityId=" + result.getCommunityId()
+                + "&floorId=" + room.getFloor().getFloorId() + "&unitId=" + room.getFloor().getUnitId() + "&roomNum=" + room.getRoomNum();
         responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
 
         if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
@@ -171,12 +357,13 @@
     private ResponseEntity<String> savedOwnerInfo(IPageData pd, List<ImportOwner> owners, ComponentValidateResult result) {
         String apiUrl = "";
         JSONObject paramIn = null;
-        ResponseEntity<String> responseEntity = null;
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>("鎴愬姛", HttpStatus.OK);
 
         for (ImportOwner owner : owners) {
             JSONObject savedOwnerInfo = getExistsOwner(pd, result, owner);
 
             if (savedOwnerInfo != null) {
+                owner.setOwnerId(savedOwnerInfo.getString("ownerId"));
                 continue;
             }
             paramIn = new JSONObject();
@@ -190,8 +377,9 @@
             paramIn.put("link", owner.getTel());
             paramIn.put("sex", owner.getSex());
             paramIn.put("ownerTypeCd", "1001");
+            paramIn.put("idCard",owner.getIdCard());
             responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(), apiUrl, HttpMethod.POST);
-            if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            if (responseEntity.getStatusCode() == HttpStatus.OK) {
                 savedOwnerInfo = getExistsOwner(pd, result, owner);
                 owner.setOwnerId(savedOwnerInfo.getString("ownerId"));
             }
@@ -211,7 +399,7 @@
     private ResponseEntity<String> savedFloorAndUnitInfo(IPageData pd, List<ImportFloor> floors, ComponentValidateResult result) {
         String apiUrl = "";
         JSONObject paramIn = null;
-        ResponseEntity<String> responseEntity = null;
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>("鎴愬姛", HttpStatus.OK);
         for (ImportFloor importFloor : floors) {
             paramIn = new JSONObject();
             //鍏堜繚瀛� 妤兼爧淇℃伅
@@ -224,12 +412,13 @@
                 paramIn.put("userId", result.getUserId());
                 paramIn.put("name", importFloor.getFloorNum() + "鍙锋ゼ");
                 responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(), apiUrl, HttpMethod.POST);
+                savedFloorInfo = getExistsFloor(pd, result, importFloor);
             }
-            if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            if (responseEntity != null && responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
                 continue;
             }
 
-            savedFloorInfo = getExistsFloor(pd, result, importFloor);
+
 
             if (savedFloorInfo == null) {
                 continue;
@@ -237,7 +426,9 @@
             importFloor.setFloorId(savedFloorInfo.getString("floorId"));
             paramIn.clear();
             //鍒ゆ柇鍗曞厓淇℃伅鏄惁宸茬粡瀛樺湪锛屽鏋滃瓨鍦ㄥ垯涓嶄繚瀛樻暟鎹畊nit.queryUnits
-            if (getExistsUnit(pd, result, importFloor) != null) {
+            JSONObject savedUnitInfo = getExistsUnit(pd, result, importFloor);
+            if (savedUnitInfo != null) {
+                importFloor.setUnitId(savedUnitInfo.getString("unitId"));
                 continue;
             }
 
@@ -251,7 +442,7 @@
             responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(), apiUrl, HttpMethod.POST);
 
             //灏唘nitId 鍒峰叆ImportFloor瀵硅薄
-            JSONObject savedUnitInfo = getExistsUnit(pd, result, importFloor);
+            savedUnitInfo = getExistsUnit(pd, result, importFloor);
             importFloor.setUnitId(savedUnitInfo.getString("unitId"));
 
         }
@@ -262,7 +453,7 @@
         String apiUrl = "";
         ResponseEntity<String> responseEntity = null;
         apiUrl = ServiceConstant.SERVICE_API_URL + "/api/unit.queryUnits?communityId=" + result.getCommunityId()
-                + "&floorId=" + importFloor.getFloorId() + "&unitNum=" + importFloor.getFloorNum();
+                + "&floorId=" + importFloor.getFloorId() + "&unitNum=" + importFloor.getUnitNum();
         responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
 
         if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
@@ -332,6 +523,36 @@
     }
 
     /**
+     * 鏌ヨ瀛樺湪鐨勫仠杞﹀満
+     *
+     * @param pd
+     * @param result
+     * @param parkingSpace
+     * @return
+     */
+    private JSONObject getExistsParkingArea(IPageData pd, ComponentValidateResult result, ImportParkingSpace parkingSpace) {
+        String apiUrl = "";
+        ResponseEntity<String> responseEntity = null;
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/parkingArea.listParkingAreas?page=1&row=1&communityId=" + result.getCommunityId()
+                + "&num=" + parkingSpace.getPaNum();
+        responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+
+        if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            return null;
+        }
+
+        JSONObject savedParkingAreaInfoResult = JSONObject.parseObject(responseEntity.getBody());
+
+        if (!savedParkingAreaInfoResult.containsKey("parkingAreas") || savedParkingAreaInfoResult.getJSONArray("parkingAreas").size() != 1) {
+            return null;
+        }
+
+        JSONObject savedParkingAreaInfo = savedParkingAreaInfoResult.getJSONArray("parkingAreas").getJSONObject(0);
+
+        return savedParkingAreaInfo;
+    }
+
+    /**
      * 鏁版嵁鏍¢獙澶勭悊
      *
      * @param floors
@@ -358,17 +579,26 @@
             if (osIndex == 0) { // 绗竴琛屾槸 澶撮儴淇℃伅 鐩存帴璺宠繃
                 continue;
             }
+            if (StringUtil.isNullOrNone(os[0])) {
+                continue;
+            }
             importParkingSpace = new ImportParkingSpace();
-            importParkingSpace.setPsNum(os[0].toString());
-            importParkingSpace.setTypeCd(os[1].toString());
-            importParkingSpace.setArea(Double.parseDouble(os[2].toString()));
-            ImportOwner importOwner = getImportOwner(owners, os[3].toString());
+            importParkingSpace.setPaNum(os[0].toString());
+            importParkingSpace.setPsNum(os[1].toString());
+            importParkingSpace.setTypeCd(os[2].toString());
+            importParkingSpace.setArea(Double.parseDouble(os[3].toString()));
+            if (StringUtil.isNullOrNone(os[4])) {
+                parkingSpaces.add(importParkingSpace);
+                continue;
+            }
+            ImportOwner importOwner = getImportOwner(owners, os[4].toString());
             importParkingSpace.setImportOwner(importOwner);
             if (importOwner != null) {
-                importParkingSpace.setCarNum(os[4].toString());
-                importParkingSpace.setCarBrand(os[5].toString());
-                importParkingSpace.setCarType(os[6].toString());
-                importParkingSpace.setCarColor(os[7].toString());
+                importParkingSpace.setCarNum(os[5].toString());
+                importParkingSpace.setCarBrand(os[6].toString());
+                importParkingSpace.setCarType(os[7].toString());
+                importParkingSpace.setCarColor(os[8].toString());
+                importParkingSpace.setSellOrHire(os[9].toString());
             }
 
             parkingSpaces.add(importParkingSpace);
@@ -392,12 +622,19 @@
             if (osIndex == 0) { // 绗竴琛屾槸 澶撮儴淇℃伅 鐩存帴璺宠繃
                 continue;
             }
+            if (StringUtil.isNullOrNone(os[0])) {
+                continue;
+            }
             importRoom = new ImportRoom();
             importRoom.setRoomNum(os[0].toString());
             importRoom.setFloor(getImportFloor(floors, os[1].toString(), os[2].toString()));
             importRoom.setLayer(Integer.parseInt(os[3].toString()));
             importRoom.setSection(os[4].toString());
             importRoom.setBuiltUpArea(Double.parseDouble(os[5].toString()));
+            if (StringUtil.isNullOrNone(os[6])) {
+                rooms.add(importRoom);
+                continue;
+            }
             importRoom.setImportOwner(getImportOwner(owners, os[6].toString()));
             rooms.add(importRoom);
         }
@@ -453,12 +690,16 @@
             if (osIndex == 0) { // 绗竴琛屾槸 澶撮儴淇℃伅 鐩存帴璺宠繃
                 continue;
             }
+            if (StringUtil.isNullOrNone(os[0])) {
+                continue;
+            }
             importOwner = new ImportOwner();
             importOwner.setOwnerNum(os[0].toString());
             importOwner.setOwnerName(os[1].toString());
             importOwner.setSex("鐢�".equals(os[2].toString()) ? "0" : "1");
             importOwner.setAge(Integer.parseInt(os[3].toString()));
             importOwner.setTel(os[4].toString());
+            importOwner.setIdCard(os[5].toString());
             owners.add(importOwner);
         }
     }
@@ -479,11 +720,15 @@
             if (osIndex == 0) { // 绗竴琛屾槸 澶撮儴淇℃伅 鐩存帴璺宠繃
                 continue;
             }
+
+            if (StringUtil.isNullOrNone(os[0])) {
+                continue;
+            }
             importFloor = new ImportFloor();
             importFloor.setFloorNum(os[0].toString());
             importFloor.setUnitNum(os[1].toString());
             importFloor.setLayerCount(os[2].toString());
-            importFloor.setLift("鏈�".equals(os[3].toString()) ? "Y" : "N");
+            importFloor.setLift("鏈�".equals(os[3].toString()) ? "1010" : "2020");
             floors.add(importFloor);
         }
     }

--
Gitblit v1.8.0