From e23023b93f34286f5a807b0b85e9a0619a297ed7 Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期二, 21 二月 2023 23:25:34 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 service-api/src/main/java/com/java110/api/smo/assetImport/impl/ImportOwnerCarSMOImpl.java |  158 +++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 113 insertions(+), 45 deletions(-)

diff --git a/service-api/src/main/java/com/java110/api/smo/assetImport/impl/ImportOwnerCarSMOImpl.java b/service-api/src/main/java/com/java110/api/smo/assetImport/impl/ImportOwnerCarSMOImpl.java
index 532367c..9457685 100644
--- a/service-api/src/main/java/com/java110/api/smo/assetImport/impl/ImportOwnerCarSMOImpl.java
+++ b/service-api/src/main/java/com/java110/api/smo/assetImport/impl/ImportOwnerCarSMOImpl.java
@@ -5,6 +5,7 @@
 import com.java110.api.smo.assetImport.IImportOwnerCarSMO;
 import com.java110.core.context.IPageData;
 import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.core.log.LoggerFactory;
 import com.java110.dto.FloorDto;
 import com.java110.dto.RoomDto;
 import com.java110.dto.UnitDto;
@@ -15,15 +16,17 @@
 import com.java110.dto.parking.ParkingSpaceDto;
 import com.java110.entity.component.ComponentValidateResult;
 import com.java110.intf.community.*;
-import com.java110.intf.user.*;
+import com.java110.intf.user.IOwnerCarV1InnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
+import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO;
 import com.java110.po.car.OwnerCarPo;
+import com.java110.po.parking.ParkingAreaPo;
 import com.java110.po.parking.ParkingSpacePo;
 import com.java110.utils.util.*;
 import com.java110.vo.ResultVo;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.Workbook;
 import org.slf4j.Logger;
-import com.java110.core.log.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -67,7 +70,13 @@
     private IParkingAreaInnerServiceSMO parkingAreaInnerServiceSMOImpl;
 
     @Autowired
+    private IParkingAreaV1InnerServiceSMO parkingAreaV1InnerServiceSMOImpl;
+
+    @Autowired
     private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
+
+    @Autowired
+    private IParkingSpaceV1InnerServiceSMO parkingSpaceV1InnerServiceSMOImpl;
 
     @Override
     public ResponseEntity<String> importExcelData(IPageData pd, MultipartFile uploadFile) throws Exception {
@@ -129,7 +138,13 @@
             importOwnerCar.setOwnerName(os[5].toString());
             //鑾峰彇杞︿綅
             String parkingLot = os[6].toString();
-            String[] split = parkingLot.split("-");
+            if(!parkingLot.contains("-")){
+                throw new IllegalArgumentException((osIndex + 1) +"琛岃溅浣嶆牸寮忛敊璇� 鏍煎紡搴斾负锛氬仠杞﹀満-杞︿綅缂栧彿锛岃溅浣嶇紪鍙峰彲浠ヤ粠1鑷缂栧啓");
+            }
+            String[] split = parkingLot.split("-",2);
+            if(split.length != 2){
+                throw new IllegalArgumentException((osIndex + 1) +"琛岃溅浣嶆牸寮忛敊璇� 鏍煎紡搴斾负锛氬仠杞﹀満-杞︿綅缂栧彿锛岃溅浣嶇紪鍙峰彲浠ヤ粠1鑷缂栧啓");
+            }
             importOwnerCar.setAreaNum(split[0]);
             importOwnerCar.setNum(split[1]);
             SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -138,6 +153,8 @@
             importOwnerCar.setTypeCd(os[9].toString());
             importOwnerCar.setSpaceSate(os[10].toString());
             ownerCarDtos.add(importOwnerCar);
+
+
         }
     }
 
@@ -160,12 +177,96 @@
         if (ownerCars.size() < 1) {
             throw new IllegalArgumentException("娌℃湁鏁版嵁闇�瑕佸鐞�");
         }
+        String psId = "";
+        String paId = "";
+
+        validateOwnerData(ownerCars, reqJson);
         for (OwnerCarDto ownerCarDto : ownerCars) {
             OwnerCarPo ownerCarPo = BeanConvertUtil.covertBean(ownerCarDto, OwnerCarPo.class);
+            //鑾峰彇鎴垮眿鍚嶇О
+            ownerCarPo.setCarTypeCd("1001"); //涓昏溅杈�
+            ParkingAreaDto parkingAreaDto = new ParkingAreaDto();
+            parkingAreaDto.setNum(ownerCarDto.getAreaNum());
+            parkingAreaDto.setTypeCd(ownerCarDto.getTypeCd());
+            //鏌ヨ鍋滆溅鍦�
+            List<ParkingAreaDto> parkingAreaDtos = parkingAreaInnerServiceSMOImpl.queryParkingAreas(parkingAreaDto);
+            //Assert.listOnlyOne(parkingAreaDtos, "鏌ヨ鍋滆溅鍦洪敊璇紒");
+            if (parkingAreaDtos == null || parkingAreaDtos.size() < 1) {
+                paId = GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_paId);
+                ParkingAreaPo parkingAreaPo = new ParkingAreaPo();
+                parkingAreaPo.setCommunityId(reqJson.getString("communityId"));
+                parkingAreaPo.setNum(ownerCarDto.getAreaNum());
+                parkingAreaPo.setPaId(paId);
+                parkingAreaPo.setTypeCd(ownerCarDto.getTypeCd());
+                parkingAreaPo.setRemark("瀵煎叆鏁版嵁");
+                parkingAreaV1InnerServiceSMOImpl.saveParkingArea(parkingAreaPo);
+            } else {
+                paId = parkingAreaDtos.get(0).getPaId();
+            }
+            ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();
+            parkingSpaceDto.setNum(ownerCarDto.getNum());
+            parkingSpaceDto.setPaId(paId);
+            //鏌ヨ鍋滆溅浣�
+            List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);
+            String state = "";
+            if (parkingSpaceDtos == null || parkingSpaceDtos.size() < 1) {
+                psId = GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_psId);
+                ParkingSpacePo parkingSpacePo = new ParkingSpacePo();
+                parkingSpacePo.setCommunityId(reqJson.getString("communityId"));
+                parkingSpacePo.setNum(ownerCarDto.getNum());
+                parkingSpacePo.setPaId(paId);
+                parkingSpacePo.setArea("1");
+                parkingSpacePo.setParkingType(ParkingSpaceDto.TYPE_CD_COMMON);
+                parkingSpacePo.setState(ParkingSpaceDto.STATE_FREE);
+                parkingSpacePo.setPsId(psId);
+                parkingSpacePo.setRemark("瀵煎叆鏁版嵁");
+                parkingSpaceV1InnerServiceSMOImpl.saveParkingSpace(parkingSpacePo);
+                state = ParkingSpaceDto.STATE_FREE;
+            } else {
+                psId = parkingSpaceDtos.get(0).getPsId();
+                //鑾峰彇鍋滆溅浣嶇姸鎬�(鍑哄敭 S锛屽嚭绉� H 锛岀┖闂� F)
+                state = parkingSpaceDtos.get(0).getState();
+            }
 
+            if (!StringUtil.isEmpty(state) && !state.equals("F")) {
+                throw new IllegalArgumentException(ownerCarDto.getAreaNum() + "鍋滆溅鍦�-" + ownerCarDto.getNum() + "鍋滆溅浣嶄笉鏄┖闂茬姸鎬侊紒");
+            }
+            ownerCarPo.setPsId(psId);
+            ownerCarPo.setOwnerId(ownerCarDto.getOwnerId());
+            ownerCarPo.setUserId("-1");
+            ownerCarPo.setCommunityId(reqJson.getString("communityId"));
+            ownerCarPo.setCarId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_carId));
+            ownerCarPo.setMemberId(ownerCarPo.getCarId());
+            ownerCarPo.setState("1001"); //1001 姝e父鐘舵�侊紝2002 杞︿綅閲婃斁娆犺垂鐘舵�侊紝3003 杞︿綅閲婃斁
+            ownerCarPo.setLeaseType(ownerCarDto.getSpaceSate());
+            ownerCarV1InnerServiceSMOImpl.saveOwnerCar(ownerCarPo);
+            ParkingSpacePo parkingSpacePo = new ParkingSpacePo();
+            parkingSpacePo.setPsId(psId); //杞︿綅id
+            parkingSpacePo.setState(ownerCarDto.getSpaceSate());
+            parkingSpaceInnerServiceSMOImpl.updateParkingSpace(parkingSpacePo);
+        }
+        return ResultVo.success();
+    }
+
+    private void validateOwnerData(List<OwnerCarDto> ownerCars, JSONObject reqJson) {
+
+        for (OwnerCarDto ownerCarDto : ownerCars) {
+
+            if(!"1001".equals(ownerCarDto.getTypeCd()) && !"2002".equals(ownerCarDto.getTypeCd())){
+                throw new IllegalArgumentException(ownerCarDto.getCarNum()+"鍋滆溅鍦虹被鍨嬪簲濉啓 1001(鍦颁笂鍋滆溅鍦�)鎴栬�� 2002 (鍦颁笅鍋滆溅鍦�)");
+            }
+            if(!"H".equals(ownerCarDto.getSpaceSate()) && !"S".equals(ownerCarDto.getSpaceSate())){
+                throw new IllegalArgumentException(ownerCarDto.getCarNum()+"杞︿綅鐘舵�佸簲濉啓 S锛堝嚭鍞級鎴栬�� H 锛堝嚭绉燂級");
+            }
             //鑾峰彇鎴垮眿鍚嶇О
             String roomName = ownerCarDto.getRoomName().trim();
-            String[] split = roomName.split("-");
+            if(!roomName.contains("-")){
+                throw new IllegalArgumentException(ownerCarDto.getCarNum()+"鎴垮眿鍙锋牸寮忛敊璇� 鏍煎紡搴斾负锛氭ゼ鏍�-鍗曞厓-鎴垮眿锛屽鏋滄槸鍟嗛摵 妤兼爧-0-鍟嗛摵缂栧彿");
+            }
+            String[] split = roomName.split("-", 3);
+            if(split.length != 3){
+                throw new IllegalArgumentException(ownerCarDto.getCarNum()+"鎴垮眿鍙锋牸寮忛敊璇� 鏍煎紡搴斾负锛氭ゼ鏍�-鍗曞厓-鎴垮眿锛屽鏋滄槸鍟嗛摵 妤兼爧-0-鍟嗛摵缂栧彿");
+            }
             String floorNum = split[0];
             String unitNum = split[1];
             String roomNum = split[2];
@@ -174,68 +275,35 @@
             floorDto.setFloorNum(floorNum);
             //鏌ヨ妤兼爧
             List<FloorDto> floorDtos = floorInnerServiceSMOImpl.queryFloors(floorDto);
-            Assert.listOnlyOne(floorDtos, "鏌ヨ妤兼爧閿欒锛�");
+            Assert.listOnlyOne(floorDtos, ownerCarDto.getCarNum() + "鏌ヨ妤兼爧閿欒锛�");
             UnitDto unitDto = new UnitDto();
             unitDto.setUnitNum(unitNum);
             unitDto.setFloorId(floorDtos.get(0).getFloorId());
             //鏌ヨ鍗曞厓
             List<UnitDto> unitDtos = unitInnerServiceSMOImpl.queryUnits(unitDto);
-            Assert.listOnlyOne(unitDtos, "鏌ヨ鍗曞厓閿欒锛�");
+            Assert.listOnlyOne(unitDtos, ownerCarDto.getCarNum() + "鏌ヨ鍗曞厓閿欒锛�");
             RoomDto roomDto = new RoomDto();
             roomDto.setRoomNum(roomNum);
             roomDto.setUnitId(unitDtos.get(0).getUnitId());
             //鏌ヨ鎴垮眿
             List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
-            Assert.listOnlyOne(roomDtos, "鏌ヨ鎴垮眿閿欒锛�");
+            Assert.listOnlyOne(roomDtos, ownerCarDto.getCarNum() + "鏌ヨ鎴垮眿閿欒锛�");
             OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
             ownerRoomRelDto.setRoomId(roomDtos.get(0).getRoomId());
             //鏌ヨ涓氫富鎴垮眿鍏崇郴琛�
             List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
-            Assert.listOnlyOne(ownerRoomRelDtos, "鏌ヨ涓氫富鎴垮眿淇℃伅閿欒锛�");
+            Assert.listOnlyOne(ownerRoomRelDtos, ownerCarDto.getCarNum() + "鏌ヨ涓氫富鎴垮眿淇℃伅閿欒锛�");
             OwnerDto ownerDto = new OwnerDto();
             ownerDto.setOwnerId(ownerRoomRelDtos.get(0).getOwnerId());
             ownerDto.setName(ownerCarDto.getOwnerName());
             //鏌ヨ涓氫富
             List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
-            Assert.listOnlyOne(ownerDtos, "鏌ヨ涓氫富淇℃伅閿欒锛�");
-            if (ownerDtos.get(0).getOwnerTypeCd().equals("1001")) { //涓氫富
-                ownerCarPo.setCarTypeCd("1001"); //涓氫富杞﹁締
-            } else {
-                ownerCarPo.setCarTypeCd("1002"); //鎴愬憳杞﹁締
-            }
-            ParkingAreaDto parkingAreaDto = new ParkingAreaDto();
-            parkingAreaDto.setNum(ownerCarDto.getAreaNum());
-            parkingAreaDto.setTypeCd(ownerCarDto.getTypeCd());
-            //鏌ヨ鍋滆溅鍦�
-            List<ParkingAreaDto> parkingAreaDtos = parkingAreaInnerServiceSMOImpl.queryParkingAreas(parkingAreaDto);
-            Assert.listOnlyOne(parkingAreaDtos, "鏌ヨ鍋滆溅鍦洪敊璇紒");
-            ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();
-            parkingSpaceDto.setNum(ownerCarDto.getNum());
-            parkingSpaceDto.setPaId(parkingAreaDtos.get(0).getPaId());
-            //鏌ヨ鍋滆溅浣�
-            List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);
-            Assert.listOnlyOne(parkingSpaceDtos, "鏌ヨ鍋滆溅浣嶉敊璇紒");
-            //鑾峰彇鍋滆溅浣嶇姸鎬�(鍑哄敭 S锛屽嚭绉� H 锛岀┖闂� F)
-            String state = parkingSpaceDtos.get(0).getState();
-            if (!StringUtil.isEmpty(state) && !state.equals("F")) {
-                throw new IllegalArgumentException(parkingAreaDtos.get(0).getNum() + "鍋滆溅鍦�-" + parkingSpaceDtos.get(0).getNum() + "鍋滆溅浣嶄笉鏄┖闂茬姸鎬侊紒");
-            }
-            ownerCarPo.setPsId(parkingSpaceDtos.get(0).getPsId());
-            ownerCarPo.setOwnerId(ownerRoomRelDtos.get(0).getOwnerId());
-            ownerCarPo.setUserId("-1");
-            ownerCarPo.setCommunityId(reqJson.getString("communityId"));
-            ownerCarPo.setCarId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_carId));
-            ownerCarPo.setMemberId(ownerCarPo.getCarId());
-            ownerCarPo.setState("1001"); //1001 姝e父鐘舵�侊紝2002 杞︿綅閲婃斁娆犺垂鐘舵�侊紝3003 杞︿綅閲婃斁
-            ownerCarV1InnerServiceSMOImpl.saveOwnerCar(ownerCarPo);
-            ParkingSpacePo parkingSpacePo = new ParkingSpacePo();
-            parkingSpacePo.setPsId(parkingSpaceDtos.get(0).getPsId()); //杞︿綅id
-            parkingSpacePo.setState(ownerCarDto.getSpaceSate());
-            parkingSpaceInnerServiceSMOImpl.updateParkingSpace(parkingSpacePo);
-        }
-        return ResultVo.success();
+            Assert.listOnlyOne(ownerDtos, ownerCarDto.getCarNum() + "鏌ヨ涓氫富淇℃伅閿欒锛�");
+            ownerCarDto.setOwnerId(ownerRoomRelDtos.get(0).getOwnerId());
     }
 
+}
+
     //瑙f瀽Excel鏃ユ湡鏍煎紡
     public static String excelDoubleToDate(String strDate) {
         if (strDate.length() == 5) {

--
Gitblit v1.8.0