Commit 7f6ceedd authored by 周健威's avatar 周健威

修改租车bug

parent 80378f3a
...@@ -105,7 +105,7 @@ public class BookVehicleVO { ...@@ -105,7 +105,7 @@ public class BookVehicleVO {
private String orderNo; private String orderNo;
/** /**
* 订单状态 * book_record状态
*/ */
private Integer status; private Integer status;
} }
\ No newline at end of file
...@@ -311,182 +311,94 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -311,182 +311,94 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
return RestResponse.suc(); return RestResponse.suc();
} }
/** // /**
* 申请汽车预定(内部) // * 申请汽车预定(内部)
* 检查是否可预定,修改相关预定记录状态 // * 检查是否可预定,修改相关预定记录状态
* @param userId // * @param userId
* @param bookVehicleVo // * @param bookVehicleVo
* @return // * @return
*/ // */
@Transactional // @Transactional
public VehicleBookRecord applyVehicle4Employee(Integer userId, BookVehicleVO bookVehicleVo, String userName) throws Exception{ // public VehicleBookRecord applyVehicle4Employee(Integer userId, BookVehicleVO bookVehicleVo, String userName) throws Exception{
//检查车辆信息是否合法 // //检查车辆信息是否合法
checkIfVehicleExists(bookVehicleVo.getVehicleId()); // checkIfVehicleExists(bookVehicleVo.getVehicleId());
//提取日期和相应的预定目标日期 // //提取日期和相应的预定目标日期
Map<String,List<String>> yearMonthAndDate = Maps.newHashMap(); // Map<String,List<String>> yearMonthAndDate = Maps.newHashMap();
//预定时间不能为空 // //预定时间不能为空
if(StringUtils.isBlank(bookVehicleVo.getBookStartDate()) || StringUtils.isBlank(bookVehicleVo.getBookEndDate())){ // if(StringUtils.isBlank(bookVehicleVo.getBookStartDate()) || StringUtils.isBlank(bookVehicleVo.getBookEndDate())){
throw new BaseException(ResultCode.DATE_TIME_IS_NULL); // throw new BaseException(ResultCode.DATE_TIME_IS_NULL);
} // }
String[] bookStartDateArray = bookVehicleVo.getBookStartDate().split(" "); // String[] bookStartDateArray = bookVehicleVo.getBookStartDate().split(" ");
String[] bookEndDateArray = bookVehicleVo.getBookEndDate().split(" "); // String[] bookEndDateArray = bookVehicleVo.getBookEndDate().split(" ");
DateTime startDay =DateTime.parse(bookStartDateArray[0],DEFAULT_DATE_TIME_FORMATTER);
DateTime endDay =DateTime.parse(bookEndDateArray[0], DEFAULT_DATE_TIME_FORMATTER);
//转换日期范围为列表,并检查是否合法
fillDateList4DatePeriod(yearMonthAndDate,startDay,endDay);
if(yearMonthAndDate.size()>3){//连续的日期最多夸3个月
throw new BaseException(ResultCode.ONLY_BOOK_TWO_MONTH);
}
Map<String, Integer> map = vehicleBookHourInfoBiz.getPredictableHours(bookVehicleVo.getBookStartDate(), bookVehicleVo.getBookEndDate());
//检查车辆是否可以预定
for(Map.Entry<String,List<String>> entry:yearMonthAndDate.entrySet()){
Boolean rsEach = applyVehicle4EmployeePerMonth(bookVehicleVo.getVehicleId(),entry.getValue(),entry.getKey(), map);
if(Boolean.FALSE.equals(rsEach)){
throw new BaseException(ResultCode.VEHICLE_IS_BOOKED);
}
}
//加入预定申请记录
VehicleBookRecord vehicleBookRecord = new VehicleBookRecord();
vehicleBookRecord.setVehicleId(bookVehicleVo.getVehicleId());
vehicleBookRecord.setBookType(bookVehicleVo.getBookType());
vehicleBookRecord.setStatus(VehicleBookRecordStatus.APPLY.getCode());
vehicleBookRecord.setBookUser(userId);
vehicleBookRecord.setBookUserName(userName);
vehicleBookRecord.setBookStartDate(DateTime.
parse(bookStartDateArray[0],DEFAULT_DATE_TIME_FORMATTER).toDate());
vehicleBookRecord.setBookEndDate(DateTime.
parse(bookEndDateArray[0],DEFAULT_DATE_TIME_FORMATTER).toDate());
vehicleBookRecord.setLiftAddr(bookVehicleVo.getLiftAddr());
vehicleBookRecord.setRemark(bookVehicleVo.getRemark());
vehicleBookRecord.setDestination(bookVehicleVo.getDestination());
vehicleBookRecord.setLiftCompany(bookVehicleVo.getLiftCompany());
vehicleBookRecord.setRetCompany(bookVehicleVo.getRetCompany());
vehicleBookRecord.setOrderNo(bookVehicleVo.getOrderNo());
vehicleBookRecordBiz.save(vehicleBookRecord);
// //添加预定时间记录
// //
// Map<String, Integer> map = vehicleBookHourInfoBiz.getPredictableHours(bookVehicleVo.getBookStartDate(), bookVehicleVo.getBookEndDate()); // DateTime startDay =DateTime.parse(bookStartDateArray[0],DEFAULT_DATE_TIME_FORMATTER);
// for(Map.Entry<String, Integer> entry : map.entrySet()) { // DateTime endDay =DateTime.parse(bookEndDateArray[0], DEFAULT_DATE_TIME_FORMATTER);
// VehicleBookHourInfoDto vehicleBookHourInfoDto = new VehicleBookHourInfoDto(); //
// vehicleBookHourInfoDto.setVehicleId(bookVehicleVo.getVehicleId()); //
// vehicleBookHourInfoDto.setYearMonthDay(entry.getKey()); // //转换日期范围为列表,并检查是否合法
// vehicleBookHourInfoDto.setBookedHour(entry.getValue()); // fillDateList4DatePeriod(yearMonthAndDate,startDay,endDay);
// vehicleBookHourInfoBiz.save(vehicleBookHourInfoDto); // if(yearMonthAndDate.size()>3){//连续的日期最多夸3个月
// throw new BaseException(ResultCode.ONLY_BOOK_TWO_MONTH);
// }
// Map<String, Integer> map = vehicleBookHourInfoBiz.getPredictableHours(bookVehicleVo.getBookStartDate(), bookVehicleVo.getBookEndDate());
// //检查车辆是否可以预定
// for(Map.Entry<String,List<String>> entry:yearMonthAndDate.entrySet()){
// Boolean rsEach = applyVehicle4EmployeePerMonth(bookVehicleVo.getVehicleId(),entry.getValue(),entry.getKey(), map);
// if(Boolean.FALSE.equals(rsEach)){
// throw new BaseException(ResultCode.VEHICLE_IS_BOOKED);
// } // }
// }
//修改相关车辆预定记录 //
Boolean hasSuc = bookedVehicle(bookVehicleVo); // //加入预定申请记录
if(!hasSuc){ // VehicleBookRecord vehicleBookRecord = new VehicleBookRecord();
throw new BaseException(ResultCode.BOOKED_FAILED_CODE); // vehicleBookRecord.setVehicleId(bookVehicleVo.getVehicleId());
} // vehicleBookRecord.setBookType(bookVehicleVo.getBookType());
// vehicleBookRecord.setStatus(VehicleBookRecordStatus.APPLY.getCode());
//添加随车物品 // vehicleBookRecord.setBookUser(userId);
List<Map<String,Object>> params = Lists.newArrayList(); // vehicleBookRecord.setBookUserName(userName);
if(MapUtils.isNotEmpty(bookVehicleVo.getSelectedAccItem())){ // vehicleBookRecord.setBookStartDate(DateTime.
for(Map.Entry<Integer,Integer> idAndAmount : bookVehicleVo.getSelectedAccItem().entrySet()){ // parse(bookStartDateArray[0],DEFAULT_DATE_TIME_FORMATTER).toDate());
Map<String,Object> row = Maps.newHashMap(); // vehicleBookRecord.setBookEndDate(DateTime.
row.put("id",idAndAmount.getKey()); // parse(bookEndDateArray[0],DEFAULT_DATE_TIME_FORMATTER).toDate());
row.put("amount",idAndAmount.getValue()); // vehicleBookRecord.setLiftAddr(bookVehicleVo.getLiftAddr());
row.put("bookRecordId",vehicleBookRecord.getId()); // vehicleBookRecord.setRemark(bookVehicleVo.getRemark());
params.add(row); // vehicleBookRecord.setDestination(bookVehicleVo.getDestination());
} // vehicleBookRecord.setLiftCompany(bookVehicleVo.getLiftCompany());
bookRecordAccItemMapper.batchAdd(params); // vehicleBookRecord.setRetCompany(bookVehicleVo.getRetCompany());
} // vehicleBookRecord.setOrderNo(bookVehicleVo.getOrderNo());
// vehicleBookRecordBiz.save(vehicleBookRecord);
return vehicleBookRecord; //// //添加预定时间记录
} ////
//// Map<String, Integer> map = vehicleBookHourInfoBiz.getPredictableHours(bookVehicleVo.getBookStartDate(), bookVehicleVo.getBookEndDate());
/** //// for(Map.Entry<String, Integer> entry : map.entrySet()) {
* 需要审核 //// VehicleBookHourInfoDto vehicleBookHourInfoDto = new VehicleBookHourInfoDto();
* @param userId //// vehicleBookHourInfoDto.setVehicleId(bookVehicleVo.getVehicleId());
* @param bookVehicleVo //// vehicleBookHourInfoDto.setYearMonthDay(entry.getKey());
* @param userName //// vehicleBookHourInfoDto.setBookedHour(entry.getValue());
* @return //// vehicleBookHourInfoBiz.save(vehicleBookHourInfoDto);
* @throws Exception //// }
*/ //
@Transactional // //修改相关车辆预定记录
public VehicleBookRecord applyForVehicle(Integer userId, BookVehicleVO bookVehicleVo, String userName) throws Exception{ // Boolean hasSuc = bookedVehicle(bookVehicleVo);
log.info("预定车辆参数:userId = {}, bookVehicleVo = {},username = {}", userId, bookVehicleVo, userName); // if(!hasSuc){
//检查车辆信息是否合法 // throw new BaseException(ResultCode.BOOKED_FAILED_CODE);
checkIfVehicleExists(bookVehicleVo.getVehicleId()); // }
//提取日期和相应的预定目标日期 //
Map<String,List<String>> yearMonthAndDate = Maps.newHashMap(); // //添加随车物品
//预定时间不能为空 // List<Map<String,Object>> params = Lists.newArrayList();
if(StringUtils.isBlank(bookVehicleVo.getBookStartDate()) || StringUtils.isBlank(bookVehicleVo.getBookEndDate())){ // if(MapUtils.isNotEmpty(bookVehicleVo.getSelectedAccItem())){
throw new BaseException(ResultCode.DATE_TIME_IS_NULL); // for(Map.Entry<Integer,Integer> idAndAmount : bookVehicleVo.getSelectedAccItem().entrySet()){
} // Map<String,Object> row = Maps.newHashMap();
DateTime startDay =DateTime.parse(bookVehicleVo.getBookStartDate(),DATE_TIME_FORMATTER); // row.put("id",idAndAmount.getKey());
DateTime endDay =DateTime.parse(bookVehicleVo.getBookEndDate(), DATE_TIME_FORMATTER); // row.put("amount",idAndAmount.getValue());
// row.put("bookRecordId",vehicleBookRecord.getId());
// params.add(row);
//转换日期范围为列表,并检查是否合法 // }
fillDateList4DatePeriod(yearMonthAndDate,startDay,endDay); // bookRecordAccItemMapper.batchAdd(params);
if(yearMonthAndDate.size()>3){//连续的日期最多夸3个月 // }
throw new BaseException(ResultCode.ONLY_BOOK_TWO_MONTH); //
} // return vehicleBookRecord;
Map<String, Integer> map = vehicleBookHourInfoBiz.getPredictableHours(bookVehicleVo.getBookStartDate(), bookVehicleVo.getBookEndDate()); // }
//检查车辆是否可以预定
for(Map.Entry<String,List<String>> entry:yearMonthAndDate.entrySet()){
Boolean rsEach = applyVehicle4EmployeePerMonth(bookVehicleVo.getVehicleId(),entry.getValue(),entry.getKey(), map);
if(Boolean.FALSE.equals(rsEach)){
throw new BaseException(ResultCode.VEHICLE_IS_BOOKED);
}
}
//加入预定申请记录
VehicleBookRecord vehicleBookRecord = null;
if(bookVehicleVo.getVehicleBookRecordId() == null) {
vehicleBookRecord = new VehicleBookRecord();
BeanUtil.copyProperties(bookVehicleVo, vehicleBookRecord, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
vehicleBookRecord.setBookStartDate(startDay.toDate());
vehicleBookRecord.setBookEndDate(endDay.toDate());
vehicleBookRecord.setStatus(VehicleBookRecordStatus.APPLY.getCode());
vehicleBookRecord.setBookUser(userId);
vehicleBookRecord.setBookUserName(userName);
vehicleBookRecordBiz.save(vehicleBookRecord);
} else {
vehicleBookRecord = vehicleBookRecordBiz.selectById(bookVehicleVo.getVehicleBookRecordId());
vehicleBookRecord.setBookStartDate(startDay.toDate());
vehicleBookRecord.setBookEndDate(endDay.toDate());
vehicleBookRecordBiz.updateSelectiveByIdRe(vehicleBookRecord);
}
// //添加预定时间记录
VehicleBookRecord newValue = vehicleBookRecordBiz.selectOne(vehicleBookRecord);
for(Map.Entry<String, Integer> entry : map.entrySet()) {
VehicleBookHourInfoDto vehicleBookHourInfoDto = new VehicleBookHourInfoDto();
vehicleBookHourInfoDto.setVehicleId(bookVehicleVo.getVehicleId());
vehicleBookHourInfoDto.setYearMonthDay(entry.getKey());
vehicleBookHourInfoDto.setBookedHour(entry.getValue());
vehicleBookHourInfoDto.setBookRecordId(newValue.getId());
vehicleBookHourInfoBiz.save(vehicleBookHourInfoDto);
}
//修改相关车辆预定记录
Boolean hasSuc = bookedVehicle(bookVehicleVo);
if(!hasSuc){
throw new BaseException(ResultCode.BOOKED_FAILED_CODE);
}
//添加随车物品
List<Map<String,Object>> params = Lists.newArrayList();
if(MapUtils.isNotEmpty(bookVehicleVo.getSelectedAccItem())){
for(Map.Entry<Integer,Integer> idAndAmount : bookVehicleVo.getSelectedAccItem().entrySet()){
Map<String,Object> row = Maps.newHashMap();
row.put("id",idAndAmount.getKey());
row.put("amount",idAndAmount.getValue());
row.put("bookRecordId",vehicleBookRecord.getId());
params.add(row);
}
bookRecordAccItemMapper.batchAdd(params);
}
return vehicleBookRecord;
}
/** /**
* 不需要审核 * 不需要审核
......
...@@ -447,7 +447,8 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use ...@@ -447,7 +447,8 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
BookVehicleVO bookVehicleVo = BeanUtil.toBean(dto, BookVehicleVO.class); BookVehicleVO bookVehicleVo = BeanUtil.toBean(dto, BookVehicleVO.class);
bookVehicleVo.setBookType(BookType.USER_RENT.getCode()); bookVehicleVo.setBookType(BookType.USER_RENT.getCode());
bookVehicleVo.setVehicleId(pageDataVO.getData().get(0).getId()); bookVehicleVo.setVehicleId(pageDataVO.getData().get(0).getId());
VehicleBookRecord vehicleBookRecord = baseBiz.applyVehicle4Employee(operatorId, bookVehicleVo, userName); bookVehicleVo.setStatus(VehicleBookRecordStatus.APPLY.getCode());
VehicleBookRecord vehicleBookRecord = baseBiz.applyVehicle(operatorId, bookVehicleVo, userName);
return ObjectRestResponse.succ(vehicleBookRecord); return ObjectRestResponse.succ(vehicleBookRecord);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment