|
|
@@ -1066,39 +1066,81 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
|
|
|
List<String> livingOrderIds = inLiveRooms.stream().map(s->s.getLivingOrderId()).collect(Collectors.toList());
|
|
|
List<BusRoomsLivingOrder> livingOrders = roomsLivingOrderService.list(Wrappers.<BusRoomsLivingOrder>query()
|
|
|
.in("id",livingOrderIds));
|
|
|
+ List<CesAllDayPriceRule> allDayPriceRules = allDayPriceRuleService.list();
|
|
|
+ Optional<CesAllDayPriceRule> opAllPrice = allDayPriceRules.stream().filter(a->a.getHotelId().equals(hotelId)).findFirst();
|
|
|
+ CesAllDayPriceRule allPrice;
|
|
|
+ if(!opAllPrice.isPresent()) {
|
|
|
+ allPrice = new CesAllDayPriceRule();
|
|
|
+ allPrice.setEndTime("16:00");
|
|
|
+ } else {
|
|
|
+ allPrice = opAllPrice.get();
|
|
|
+ }
|
|
|
livingOrders.forEach(s->{
|
|
|
- Date date = s.getDueOutTime();
|
|
|
- Calendar calendar = new GregorianCalendar();
|
|
|
- calendar.setTime(date);
|
|
|
- calendar.add(Calendar.DATE,1);
|
|
|
- s.setDueOutTime(calendar.getTime());
|
|
|
- roomsLivingOrderService.updateById(s);// 更新订单
|
|
|
- BusOrderFee dayOrderFee = new BusOrderFee();
|
|
|
- dayOrderFee.setDayTime(date);
|
|
|
- dayOrderFee.setCreateTime(new Date());
|
|
|
-
|
|
|
- dayOrderFee.setFeeType(1);
|
|
|
- dayOrderFee.setSubjectType(FeeSubjectType.MEI_RI_FANG_FEI.getKey());
|
|
|
- CesRooms orderRoom = inLiveRooms.stream().filter(a->a.getLivingOrderId().equals(s.getId())).findFirst().get();
|
|
|
- BigDecimal money = new BigDecimal(0);
|
|
|
- BusLivingLayoutDayPrice price = livingLayoutDayPriceService.getOne(Wrappers.<BusLivingLayoutDayPrice>query()
|
|
|
- .eq("living_order_id", s.getId()).eq("day_time",DateUtils.formatDate(new Date())+" 00:00:00"));
|
|
|
- if(price != null) {
|
|
|
- money = price.getPrice();
|
|
|
- } else {
|
|
|
- CesRoomLayout layout = layoutService.getById(orderRoom.getLayoutId());
|
|
|
- if(layout == null) money = new BigDecimal(218);
|
|
|
- else money = layout.getMarketPrice();
|
|
|
+ try {
|
|
|
+ Date dueDate = DateUtils.parseDate(DateUtils.formatDate(s.getDueOutTime()),"yyyy-MM-dd");
|
|
|
+ Date currDate = DateUtils.parseDate(DateUtils.formatDate(new Date()),"yyyy-MM-dd");
|
|
|
+ if(dueDate.getTime() < currDate.getTime()){
|
|
|
+ BusBookingRooms br = bookingRoomsService.getOne(Wrappers.<BusBookingRooms>query()
|
|
|
+ .eq("id",s.getBookingRoomId()));
|
|
|
+ if(br == null) return;
|
|
|
+ CesRooms room = roomsService.getById(br.getRoomId());
|
|
|
+ if(room == null) return;
|
|
|
+ CesRoomLayout layout = layoutService.getById(room.getLayoutId());
|
|
|
+ if(layout == null) return;
|
|
|
+ Date date = s.getDueOutTime();
|
|
|
+ Calendar calendar = new GregorianCalendar();
|
|
|
+ calendar.setTime(date);
|
|
|
+ calendar.add(Calendar.DATE,1);
|
|
|
+ s.setDueOutTime(calendar.getTime());
|
|
|
+ roomsLivingOrderService.updateById(s);// 更新订单
|
|
|
+ BusOrderFee dayOrderFee = new BusOrderFee();
|
|
|
+ dayOrderFee.setDayTime(date);
|
|
|
+ dayOrderFee.setCreateTime(new Date());
|
|
|
+
|
|
|
+ dayOrderFee.setFeeType(1);
|
|
|
+ dayOrderFee.setSubjectType(FeeSubjectType.MEI_RI_FANG_FEI.getKey());
|
|
|
+
|
|
|
+ List<BusLivingLayoutDayPrice> dayPrices = livingLayoutDayPriceService.list(Wrappers.<BusLivingLayoutDayPrice>query()
|
|
|
+ .eq("living_order_id",s.getId()));
|
|
|
+ Optional<BusLivingLayoutDayPrice> opPrice = dayPrices.stream().filter(a-> DateUtils.formatDate(a.getDayTime()).equals(s)).findFirst();
|
|
|
+ if(!opPrice.isPresent()){
|
|
|
+ BusLivingLayoutDayPrice nPrice = new BusLivingLayoutDayPrice();
|
|
|
+ nPrice.setBookingRoomId(s.getBookingRoomId());
|
|
|
+ try {
|
|
|
+ nPrice.setDayTime(DateUtils.parseDate(DateUtils.formatDate(new Date()),"yyyy-MM-dd"));
|
|
|
+ } catch (ParseException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ nPrice.setRoomId(br.getRoomId());
|
|
|
+ nPrice.setRoomLayoutId(room.getLayoutId());
|
|
|
+ nPrice.setPrice(layout.getMarketPrice());
|
|
|
+ nPrice.setLivingOrderId(s.getId());
|
|
|
+ nPrice.setLivingType(s.getLivingType());
|
|
|
+ livingLayoutDayPriceService.save(nPrice);
|
|
|
+ }
|
|
|
+ CesRooms orderRoom = inLiveRooms.stream().filter(a->a.getLivingOrderId().equals(s.getId())).findFirst().get();
|
|
|
+ BigDecimal money = new BigDecimal(0);
|
|
|
+
|
|
|
+ if(opPrice.isPresent()) {
|
|
|
+ money = opPrice.get().getPrice();
|
|
|
+ } else {
|
|
|
+ money = layout.getMarketPrice();
|
|
|
+ }
|
|
|
+
|
|
|
+ dayOrderFee.setMoney(money);
|
|
|
+ dayOrderFee.setRoomId(orderRoom.getId());
|
|
|
+ String roomName = orderRoom.getPrefix() != null?orderRoom.getPrefix():"";
|
|
|
+ roomName += roomName + orderRoom.getName();
|
|
|
+ dayOrderFee.setRemark("【"+roomName + "】 "+ DateUtils.formatDate(date) + " 当日房费");
|
|
|
+ dayOrderFee.setLivingOrderId(s.getId());
|
|
|
+ dayOrderFee.setHotelId(hotelId);
|
|
|
+ feeService.save(dayOrderFee);
|
|
|
+ }
|
|
|
+ } catch (ParseException e) {
|
|
|
+ e.printStackTrace();
|
|
|
}
|
|
|
|
|
|
- dayOrderFee.setMoney(money);
|
|
|
- dayOrderFee.setRoomId(orderRoom.getId());
|
|
|
- String roomName = orderRoom.getPrefix() != null?orderRoom.getPrefix():"";
|
|
|
- roomName += roomName + orderRoom.getName();
|
|
|
- dayOrderFee.setRemark("【"+roomName + "】 "+ DateUtils.formatDate(date) + " 当日房费");
|
|
|
- dayOrderFee.setLivingOrderId(s.getId());
|
|
|
- dayOrderFee.setHotelId(hotelId);
|
|
|
- feeService.save(dayOrderFee);
|
|
|
+
|
|
|
});
|
|
|
return null;
|
|
|
}
|
|
|
@@ -1665,14 +1707,24 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void syncDayOrderFeeItem(BusRoomsLivingOrder order, CesAllDayPriceRule allDayRule) {
|
|
|
+ Date currDate = new Date();
|
|
|
+ // 當前時間小於轉全天房臨界時間,则不续房
|
|
|
+ if(currDate.getTime() < DateUtils.parseDate(DateUtils.formatDate(new Date())+" " + allDayRule.getEndTime(),"yyyy-MM-dd") .getTime()) {
|
|
|
+ Calendar calendar = new GregorianCalendar();
|
|
|
+ calendar.setTime(currDate);
|
|
|
+ // 把日期往后增加一天,整数 往后推,负数往前移动
|
|
|
+ calendar.add(Calendar.DATE, -1);
|
|
|
+ // 这个时间就是日期往后推一天的结果
|
|
|
+ currDate = calendar.getTime();
|
|
|
+ }
|
|
|
List<String> dayStrs = MxTools.findEveryDay(DateUtils.formatTime(order.getArrivalTime()),
|
|
|
- DateUtils.formatTime(new Date()));
|
|
|
+ DateUtils.formatTime(currDate));
|
|
|
BusBookingRooms bookingRoom = bookingRoomsService.getById(order.getBookingRoomId());
|
|
|
CesRooms room = roomsService.getById(bookingRoom.getRoomId());
|
|
|
CesRoomLayout layout = layoutService.getById(room.getLayoutId());
|
|
|
if(bookingRoom == null || room == null || layout == null) return;
|
|
|
List<BusLivingLayoutDayPrice> dayPrices = livingLayoutDayPriceService.list(Wrappers.<BusLivingLayoutDayPrice>query()
|
|
|
- .eq("living_order_id",order.getId()).eq("booking_room_id",order.getBookingRoomId()));
|
|
|
+ .eq("living_order_id",order.getId()));
|
|
|
List<BusOrderFee> dayFees = feeService.list(Wrappers.<BusOrderFee>query()
|
|
|
.eq("living_order_id",order.getId()).eq("room_id",room.getId()).and(
|
|
|
c->c.eq("subject_type",FeeSubjectType.MEI_RI_FANG_FEI.getKey()).or().eq("subject_type",FeeSubjectType.YE_SHEN_FANG_FEI.getKey())
|
|
|
@@ -1690,6 +1742,7 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
|
|
|
order.setDueOutTime(orderLeave);
|
|
|
roomsLivingOrderService.updateById(order);
|
|
|
}
|
|
|
+ Date finalCurrDate = currDate;
|
|
|
dayStrs.forEach(s->{
|
|
|
Optional<BusLivingLayoutDayPrice> opPrice = dayPrices.stream().filter(a-> DateUtils.formatDate(a.getDayTime()).equals(s)).findFirst();
|
|
|
if(!opPrice.isPresent()){
|
|
|
@@ -1727,7 +1780,7 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
|
|
|
nFee.setPreferentialStatus(1);
|
|
|
nFee.setLivingOrderId(order.getId());
|
|
|
try {
|
|
|
- if(DateUtils.parseDate(s,"yyyy-MM-dd").getTime() < DateUtils.parseDate(DateUtils.formatDate(new Date()),"yyyy-MM-dd").getTime()) {
|
|
|
+ if(DateUtils.parseDate(s,"yyyy-MM-dd").getTime() < DateUtils.parseDate(DateUtils.formatDate(finalCurrDate),"yyyy-MM-dd").getTime()) {
|
|
|
nFee.setCustorerOrderRemark("夜审房费");
|
|
|
nFee.setSubjectType(FeeSubjectType.YE_SHEN_FANG_FEI.getKey());
|
|
|
}
|
|
|
@@ -1739,7 +1792,7 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
|
|
|
BusOrderFee nFee = opFee.get();
|
|
|
try {
|
|
|
// 每日房费转夜审房费
|
|
|
- if(nFee.getSubjectType().equals(FeeSubjectType.MEI_RI_FANG_FEI.getKey()) && DateUtils.parseDate(s,"yyyy-MM-dd").getTime() < DateUtils.parseDate(DateUtils.formatDate(new Date()),"yyyy-MM-dd").getTime()) {
|
|
|
+ if(nFee.getSubjectType().equals(FeeSubjectType.MEI_RI_FANG_FEI.getKey()) && DateUtils.parseDate(s,"yyyy-MM-dd").getTime() < DateUtils.parseDate(DateUtils.formatDate(finalCurrDate),"yyyy-MM-dd").getTime()) {
|
|
|
nFee.setCustorerOrderRemark("夜审房费");
|
|
|
nFee.setRemark("当日房费 ——> 夜审房费");
|
|
|
nFee.setSubjectType(FeeSubjectType.YE_SHEN_FANG_FEI.getKey());
|