From 76f36c6ad54519e85d547015b6be24a7055f0b29 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期三, 25 九月 2019 10:28:34 +0800
Subject: [PATCH] 资产批量导入功能完成

---
 WebService/src/main/java/com/java110/web/smo/assetImport/impl/AssetImportSMOImpl.java |  184 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 178 insertions(+), 6 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..61e98fc 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,10 +2,16 @@
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.java110.common.constant.FeeTypeConstant;
+import com.java110.common.constant.ResponseConstant;
 import com.java110.common.constant.ServiceConstant;
+import com.java110.common.exception.ListenerExecuteException;
 import com.java110.common.util.Assert;
+import com.java110.common.util.DateUtil;
 import com.java110.common.util.ImportExcelUtils;
 import com.java110.core.context.IPageData;
+import com.java110.dto.FeeConfigDto;
+import com.java110.dto.ParkingSpaceDto;
 import com.java110.entity.assetImport.ImportFloor;
 import com.java110.entity.assetImport.ImportOwner;
 import com.java110.entity.assetImport.ImportParkingSpace;
@@ -90,23 +96,114 @@
         //淇濆瓨鍗曞厓淇℃伅 鍜� 妤兼爧淇℃伅
         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 = null;
+        ImportOwner owner = null;
+        for (ImportParkingSpace parkingSpace : parkingSpaces) {
+            JSONObject savedParkingSpaceInfo = getExistsParkSpace(pd, result, parkingSpace);
+            if (savedParkingSpaceInfo != null) {
+                continue;
+            }
+
+            paramIn = new JSONObject();
+
+            apiUrl = ServiceConstant.SERVICE_API_URL + "/api/parkingSpace.saveParkingSpace";
+
+            paramIn.put("communityId", result.getCommunityId());
+            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("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());
+
+            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/fee.queryFeeConfig?communityId=" + result.getCommunityId() + "&feeTypeCd=" + feeTypeCd;
+            responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+
+            if (responseEntity.getStatusCode() != HttpStatus.OK) {
+                continue;
+            }
+
+            JSONObject configInfo = JSONObject.parseObject(responseEntity.getBody());
+            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
@@ -116,16 +213,90 @@
         String apiUrl = "";
         JSONObject paramIn = null;
         ResponseEntity<String> responseEntity = null;
-        for(ImportRoom room : rooms){
+        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", room.getSection());
+            paramIn.put("apartment", "1");
+            paramIn.put("state", "1000");
+            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", "2002");
+            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;
+    }
+
 
     /**
      * 鏌ヨ瀛樺湪鐨勬埧灞嬩俊鎭�
@@ -140,7 +311,7 @@
         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();
+                + "&floorId=" + room.getFloor().getFloorId() + "&unitId=" + room.getFloor().getUnitId() + "&roomNum=" + room.getRoomNum();
         responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
 
         if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
@@ -369,6 +540,7 @@
                 importParkingSpace.setCarBrand(os[5].toString());
                 importParkingSpace.setCarType(os[6].toString());
                 importParkingSpace.setCarColor(os[7].toString());
+                importParkingSpace.setSellOrHire(os[8].toString());
             }
 
             parkingSpaces.add(importParkingSpace);

--
Gitblit v1.8.0