| | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | |
| | | @Service("importOwnerCarSMOImpl") |
| | | public class ImportOwnerCarSMOImpl extends DefaultAbstractComponentSMO implements IImportOwnerCarSMO { |
| | | |
| | |
| | | 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.hasValue(os[6], (osIndex + 1) + "车位不能为空"); |
| | | Assert.hasValue(os[7], (osIndex + 1) + "起租时间不能为空"); |
| | | Assert.hasValue(os[8], (osIndex + 1) + "截止时间不能为空"); |
| | | Assert.hasValue(os[9], (osIndex + 1) + "停车场类型不能为空"); |
| | | Assert.hasValue(os[10], (osIndex + 1) + "车位类型不能为空"); |
| | | String startTime = excelDoubleToDate(os[7].toString()); |
| | | String endTime = excelDoubleToDate(os[8].toString()); |
| | | Assert.isDate(startTime, DateUtil.DATE_FORMATE_STRING_A, (osIndex + 1) + "行开始时间格式错误 请填写YYYY-MM-DD HH:mm:ss文本格式"); |
| | | Assert.isDate(endTime, DateUtil.DATE_FORMATE_STRING_A, (osIndex + 1) + "行结束时间格式错误 请填写YYYY-MM-DD HH:mm:ss文本格式"); |
| | | 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.hasValue(os[6], (osIndex + 1) + "停车场不能为空"); |
| | | Assert.hasValue(os[7], (osIndex + 1) + "车位不能为空"); |
| | | Assert.hasValue(os[8], (osIndex + 1) + "起租时间不能为空"); |
| | | Assert.hasValue(os[9], (osIndex + 1) + "截止时间不能为空"); |
| | | Assert.hasValue(os[10], (osIndex + 1) + "停车场类型不能为空"); |
| | | Assert.hasValue(os[11], (osIndex + 1) + "车位类型不能为空"); |
| | | String startTime = excelDoubleToDate(os[8].toString()); |
| | | String endTime = excelDoubleToDate(os[9].toString()); |
| | | Assert.isDate(startTime, DateUtil.DATE_FORMATE_STRING_B, (osIndex + 1) + "行开始时间格式错误 请填写YYYY-MM-DD文本格式"); |
| | | Assert.isDate(endTime, DateUtil.DATE_FORMATE_STRING_B, (osIndex + 1) + "行结束时间格式错误 请填写YYYY-MM-DD文本格式"); |
| | | importOwnerCar = new OwnerCarDto(); |
| | | importOwnerCar.setCarNum(os[0].toString()); |
| | | importOwnerCar.setRoomName(os[1].toString()); |
| | | importOwnerCar.setCarBrand(os[2].toString()); |
| | | importOwnerCar.setCarType(os[3].toString()); |
| | | importOwnerCar.setCarColor(os[4].toString()); |
| | | importOwnerCar.setOwnerName(os[5].toString()); |
| | | importOwnerCar.setOwnerName(os[1].toString()); |
| | | importOwnerCar.setLink(os[2].toString()); |
| | | importOwnerCar.setCarBrand(os[3].toString()); |
| | | importOwnerCar.setCarType(os[4].toString()); |
| | | importOwnerCar.setCarColor(os[5].toString()); |
| | | importOwnerCar.setAreaNum(os[6].toString()); |
| | | //获取车位 |
| | | String parkingLot = os[6].toString(); |
| | | String[] split = parkingLot.split("-",2); |
| | | importOwnerCar.setAreaNum(split[0]); |
| | | importOwnerCar.setNum(split[1]); |
| | | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | String parkingLot = os[7].toString(); |
| | | importOwnerCar.setNum(parkingLot); |
| | | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); |
| | | importOwnerCar.setStartTime(simpleDateFormat.parse(startTime)); |
| | | importOwnerCar.setEndTime(simpleDateFormat.parse(endTime)); |
| | | importOwnerCar.setTypeCd(os[9].toString()); |
| | | importOwnerCar.setSpaceSate(os[10].toString()); |
| | | importOwnerCar.setTypeCd(os[10].toString()); |
| | | importOwnerCar.setSpaceSate(os[11].toString()); |
| | | ownerCarDtos.add(importOwnerCar); |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | String psId = ""; |
| | | String paId = ""; |
| | | |
| | | validateOwnerData(ownerCars, reqJson); |
| | | for (OwnerCarDto ownerCarDto : ownerCars) { |
| | | OwnerCarPo ownerCarPo = BeanConvertUtil.covertBean(ownerCarDto, OwnerCarPo.class); |
| | | |
| | | //获取房屋名称 |
| | | String roomName = ownerCarDto.getRoomName().trim(); |
| | | String[] split = roomName.split("-",3); |
| | | String floorNum = split[0]; |
| | | String unitNum = split[1]; |
| | | String roomNum = split[2]; |
| | | FloorDto floorDto = new FloorDto(); |
| | | floorDto.setCommunityId(reqJson.getString("communityId")); |
| | | floorDto.setFloorNum(floorNum); |
| | | //查询楼栋 |
| | | List<FloorDto> floorDtos = floorInnerServiceSMOImpl.queryFloors(floorDto); |
| | | Assert.listOnlyOne(floorDtos, "查询楼栋错误!"); |
| | | UnitDto unitDto = new UnitDto(); |
| | | unitDto.setUnitNum(unitNum); |
| | | unitDto.setFloorId(floorDtos.get(0).getFloorId()); |
| | | //查询单元 |
| | | List<UnitDto> unitDtos = unitInnerServiceSMOImpl.queryUnits(unitDto); |
| | | Assert.listOnlyOne(unitDtos, "查询单元错误!"); |
| | | RoomDto roomDto = new RoomDto(); |
| | | roomDto.setRoomNum(roomNum); |
| | | roomDto.setUnitId(unitDtos.get(0).getUnitId()); |
| | | //查询房屋 |
| | | List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto); |
| | | Assert.listOnlyOne(roomDtos, "查询房屋错误!"); |
| | | OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto(); |
| | | ownerRoomRelDto.setRoomId(roomDtos.get(0).getRoomId()); |
| | | //查询业主房屋关系表 |
| | | List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto); |
| | | Assert.listOnlyOne(ownerRoomRelDtos, "查询业主房屋信息错误!"); |
| | | 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"); //成员车辆 |
| | | } |
| | | 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){ |
| | | if (parkingAreaDtos == null || parkingAreaDtos.size() < 1) { |
| | | paId = GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_paId); |
| | | ParkingAreaPo parkingAreaPo = new ParkingAreaPo(); |
| | | parkingAreaPo.setCommunityId(reqJson.getString("communityId")); |
| | |
| | | parkingAreaPo.setTypeCd(ownerCarDto.getTypeCd()); |
| | | parkingAreaPo.setRemark("导入数据"); |
| | | parkingAreaV1InnerServiceSMOImpl.saveParkingArea(parkingAreaPo); |
| | | }else{ |
| | | } else { |
| | | paId = parkingAreaDtos.get(0).getPaId(); |
| | | } |
| | | ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto(); |
| | |
| | | //查询停车位 |
| | | List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto); |
| | | String state = ""; |
| | | if(parkingSpaceDtos == null || parkingSpaceDtos.size() <1){ |
| | | if (parkingSpaceDtos == null || parkingSpaceDtos.size() < 1) { |
| | | psId = GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_psId); |
| | | ParkingSpacePo parkingSpacePo = new ParkingSpacePo(); |
| | | parkingSpacePo.setCommunityId(reqJson.getString("communityId")); |
| | |
| | | parkingSpacePo.setRemark("导入数据"); |
| | | parkingSpaceV1InnerServiceSMOImpl.saveParkingSpace(parkingSpacePo); |
| | | state = ParkingSpaceDto.STATE_FREE; |
| | | }else{ |
| | | } else { |
| | | psId = parkingSpaceDtos.get(0).getPsId(); |
| | | //获取停车位状态(出售 S,出租 H ,空闲 F) |
| | | state = parkingSpaceDtos.get(0).getState(); |
| | |
| | | throw new IllegalArgumentException(ownerCarDto.getAreaNum() + "停车场-" + ownerCarDto.getNum() + "停车位不是空闲状态!"); |
| | | } |
| | | ownerCarPo.setPsId(psId); |
| | | ownerCarPo.setOwnerId(ownerRoomRelDtos.get(0).getOwnerId()); |
| | | 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 正常状态,2002 车位释放欠费状态,3003 车位释放 |
| | | ownerCarPo.setLeaseType(OwnerCarDto.LEASE_TYPE_MONTH); |
| | | ownerCarPo.setLeaseType(ownerCarDto.getSpaceSate()); |
| | | ownerCarV1InnerServiceSMOImpl.saveOwnerCar(ownerCarPo); |
| | | ParkingSpacePo parkingSpacePo = new ParkingSpacePo(); |
| | | parkingSpacePo.setPsId(psId); //车位id |
| | |
| | | return ResultVo.success(); |
| | | } |
| | | |
| | | private void validateOwnerData(List<OwnerCarDto> ownerCars, JSONObject reqJson) { |
| | | |
| | | for (OwnerCarDto ownerCarDto : ownerCars) { |
| | | |
| | | if(!"1001".equals(ownerCarDto.getTypeCd()) && !"2001".equals(ownerCarDto.getTypeCd())){ |
| | | throw new IllegalArgumentException(ownerCarDto.getCarNum()+"停车场类型应填写 1001(地上停车场)或者 2001 (地下停车场)"); |
| | | } |
| | | if(!"H".equals(ownerCarDto.getSpaceSate()) && !"S".equals(ownerCarDto.getSpaceSate())){ |
| | | throw new IllegalArgumentException(ownerCarDto.getCarNum()+"车位状态应填写 S(出售)或者 H (出租)"); |
| | | } |
| | | |
| | | |
| | | OwnerDto ownerDto = new OwnerDto(); |
| | | ownerDto.setName(ownerCarDto.getOwnerName()); |
| | | ownerDto.setLink(ownerCarDto.getLink()); |
| | | //查询业主 |
| | | List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto); |
| | | Assert.listOnlyOne(ownerDtos, ownerCarDto.getCarNum() + "查询业主信息错误!"); |
| | | ownerCarDto.setOwnerId(ownerDtos.get(0).getOwnerId()); |
| | | } |
| | | |
| | | } |
| | | |
| | | //解析Excel日期格式 |
| | | public static String excelDoubleToDate(String strDate) { |
| | | if (strDate.length() == 5) { |