wuxw
2020-02-18 1c9c4d0b6cd221e685a30b1c8aef53349d45cde0
WebService/src/main/java/com/java110/web/smo/assetImport/impl/AssetImportSMOImpl.java
@@ -2,23 +2,17 @@
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.common.util.StringUtil;
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.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;
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;
@@ -32,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;
@@ -134,18 +127,33 @@
    private ResponseEntity<String> savedParkingSpaceInfo(IPageData pd, List<ImportParkingSpace> parkingSpaces, ComponentValidateResult result) {
        String apiUrl = "";
        JSONObject paramIn = null;
        ResponseEntity<String> responseEntity = new ResponseEntity<String>("成功",HttpStatus.OK);
        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;
            }
            paramIn = new JSONObject();
            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());
@@ -158,7 +166,7 @@
            }
            savedParkingSpaceInfo = getExistsParkSpace(pd, result, parkingSpace);
            if (savedParkingSpaceInfo != null) {
            if (savedParkingSpaceInfo == null) {
                continue;
            }
@@ -171,6 +179,7 @@
            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());
@@ -179,17 +188,21 @@
            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/fee.queryFeeConfig?communityId=" + result.getCommunityId() + "&feeTypeCd=" + feeTypeCd;
            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());
            if(!configInfo.containsKey("additionalAmount")){
            JSONObject configInfo = JSONObject.parseObject(responseEntity.getBody()).getJSONArray("feeConfigs").getJSONObject(0);
            if (!configInfo.containsKey("additionalAmount")) {
                continue;
            }
@@ -214,7 +227,7 @@
    private ResponseEntity<String> savedRoomInfo(IPageData pd, List<ImportRoom> rooms, ComponentValidateResult result) {
        String apiUrl = "";
        JSONObject paramIn = null;
        ResponseEntity<String> responseEntity = new ResponseEntity<String>("成功",HttpStatus.OK);
        ResponseEntity<String> responseEntity = new ResponseEntity<String>("成功", HttpStatus.OK);
        ImportOwner owner = null;
        for (ImportRoom room : rooms) {
            JSONObject savedRoomInfo = getExistsRoom(pd, result, room);
@@ -344,7 +357,7 @@
    private ResponseEntity<String> savedOwnerInfo(IPageData pd, List<ImportOwner> owners, ComponentValidateResult result) {
        String apiUrl = "";
        JSONObject paramIn = null;
        ResponseEntity<String> responseEntity = new ResponseEntity<String>("成功",HttpStatus.OK);
        ResponseEntity<String> responseEntity = new ResponseEntity<String>("成功", HttpStatus.OK);
        for (ImportOwner owner : owners) {
            JSONObject savedOwnerInfo = getExistsOwner(pd, result, owner);
@@ -364,6 +377,7 @@
            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) {
                savedOwnerInfo = getExistsOwner(pd, result, owner);
@@ -385,7 +399,7 @@
    private ResponseEntity<String> savedFloorAndUnitInfo(IPageData pd, List<ImportFloor> floors, ComponentValidateResult result) {
        String apiUrl = "";
        JSONObject paramIn = null;
        ResponseEntity<String> responseEntity = new ResponseEntity<String>("成功",HttpStatus.OK);
        ResponseEntity<String> responseEntity = new ResponseEntity<String>("成功", HttpStatus.OK);
        for (ImportFloor importFloor : floors) {
            paramIn = new JSONObject();
            //先保存 楼栋信息
@@ -398,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 != null && responseEntity.getStatusCode() != HttpStatus.OK) { //跳过 保存单元信息
                continue;
            }
            savedFloorInfo = getExistsFloor(pd, result, importFloor);
            if (savedFloorInfo == null) {
                continue;
@@ -412,7 +427,7 @@
            paramIn.clear();
            //判断单元信息是否已经存在,如果存在则不保存数据unit.queryUnits
            JSONObject savedUnitInfo = getExistsUnit(pd, result, importFloor);
            if ( savedUnitInfo != null) {
            if (savedUnitInfo != null) {
                importFloor.setUnitId(savedUnitInfo.getString("unitId"));
                continue;
            }
@@ -427,7 +442,7 @@
            responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(), apiUrl, HttpMethod.POST);
            //将unitId 刷入ImportFloor对象
             savedUnitInfo = getExistsUnit(pd, result, importFloor);
            savedUnitInfo = getExistsUnit(pd, result, importFloor);
            importFloor.setUnitId(savedUnitInfo.getString("unitId"));
        }
@@ -508,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
@@ -534,25 +579,26 @@
            if (osIndex == 0) { // 第一行是 头部信息 直接跳过
                continue;
            }
            if(StringUtil.isNullOrNone(os[0])){
            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()));
            if(StringUtil.isNullOrNone(os[3])){
            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[3].toString());
            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.setSellOrHire(os[8].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);
@@ -576,7 +622,7 @@
            if (osIndex == 0) { // 第一行是 头部信息 直接跳过
                continue;
            }
            if(StringUtil.isNullOrNone(os[0])){
            if (StringUtil.isNullOrNone(os[0])) {
                continue;
            }
            importRoom = new ImportRoom();
@@ -585,7 +631,7 @@
            importRoom.setLayer(Integer.parseInt(os[3].toString()));
            importRoom.setSection(os[4].toString());
            importRoom.setBuiltUpArea(Double.parseDouble(os[5].toString()));
            if(StringUtil.isNullOrNone(os[6])){
            if (StringUtil.isNullOrNone(os[6])) {
                rooms.add(importRoom);
                continue;
            }
@@ -644,7 +690,7 @@
            if (osIndex == 0) { // 第一行是 头部信息 直接跳过
                continue;
            }
            if(StringUtil.isNullOrNone(os[0])){
            if (StringUtil.isNullOrNone(os[0])) {
                continue;
            }
            importOwner = new ImportOwner();
@@ -653,6 +699,7 @@
            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);
        }
    }
@@ -674,7 +721,7 @@
                continue;
            }
            if(StringUtil.isNullOrNone(os[0])){
            if (StringUtil.isNullOrNone(os[0])) {
                continue;
            }
            importFloor = new ImportFloor();