Explorar el Código

fix 远期房态添加预约订单房间

覃浩 hace 2 años
padre
commit
fa5520e562

+ 26 - 3
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusRoomBookingOrdersMapper.xml

@@ -80,20 +80,43 @@
 
 
 	select l.id as layout_id,l.`name` as layoutName,DATE_FORMAT(lo.arrival_time,'%Y-%m-%d') as enter_date,DATE_FORMAT(lo.due_out_time,'%Y-%m-%d') as leave_date ,lo.settle_type,
-    r.id as room_id,(r.`name`) as room_name, lo.id as living_id
+    r.id as room_id,(r.`name`) as room_name, lo.id as living_id, living_order_no as order_no,1 as is_living,lo.contact_id,
+cus.id as customer_id,cus.`name` as customer_name,lo.arrival_time,lo.due_out_time
     from bus_booking_rooms br inner join bus_rooms_living_order lo
     on br.id = lo.booking_room_id
     inner join ces_rooms r
     on r.id = br.room_id
     inner join ces_room_layout l
     on l.id = r.layout_id
+    inner join bus_customer cus
+    on lo.contact_id = cus.id
     where l.hotel_id = #{hotelId}
 	AND l.invalid = 0
 	AND r.invalid = 0
 	and ((lo.arrival_time >= #{start} and lo.arrival_time <=#{end}) or
 	 (lo.due_out_time >= #{start} and lo.due_out_time <=#{end}))
-
-group by l.id,DATE_FORMAT(lo.due_out_time,'%Y-%m-%d'),lo.id,r.id
+    group by l.id,DATE_FORMAT(lo.due_out_time,'%Y-%m-%d'),lo.id,r.id
+    UNION ALL
+    select l.id as layout_id,l.`name` as layoutName,DATE_FORMAT(lo.arrival_time,'%Y-%m-%d') as enter_date,DATE_FORMAT(lo.due_out_time,'%Y-%m-%d') as leave_date, (-20) as settle_type,
+    r.id as room_id,(r.`name`) as room_name, lo.id as living_id, lo.booking_orders_no as order_no , 0 as is_living,lo.contact_id,
+    cus.id as customer_id,cus.`name` as customer_name,lo.arrival_time,lo.due_out_time
+    from bus_booking_rooms br inner join bus_room_booking_orders lo
+    on br.booking_orders_id = lo.id
+    inner join ces_rooms r
+    on r.id = br.room_id
+    inner join ces_room_layout l
+    on l.id = r.layout_id
+    inner join bus_customer cus
+    on lo.contact_id = cus.id
+    where l.hotel_id = #{hotelId}
+    AND l.invalid = 0
+	AND r.invalid = 0
+	and ((lo.arrival_time >= #{start} and lo.arrival_time <=#{end}) or
+	 (lo.due_out_time >= #{start} and lo.due_out_time <=#{end}))
+    and br.id not in (
+        select booking_room_id from bus_rooms_living_order
+    )
+    group by l.id,DATE_FORMAT(lo.due_out_time,'%Y-%m-%d'),lo.id,r.id
     </select>
     <select id="getLayoutRoomCount" resultType="org.jeecg.modules.business.vo.LayoutRoomCountVo">
         select l.id as layout_id,l.`name` as layout_name, count(r.id) as room_count from ces_room_layout l left join

+ 4 - 12
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusRoomBookingOrdersServiceImpl.java

@@ -1300,10 +1300,6 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
         ForwardFangTaiVo result = new ForwardFangTaiVo();
         List<ForwardFangTaiDateVo> dateList = new ArrayList<>();
         List<LayoutRoomCountVo> roomCountVos = baseMapper.getLayoutRoomCount(hotelId);
-        List<String> voLivingIds = vos.stream().map(s->s.getLivingId()).collect(Collectors.toList());
-
-        List<BusRoomsLivingOrder> allOrders =voLivingIds.size() > 0? roomsLivingOrderService.list(Wrappers.<BusRoomsLivingOrder>query()
-        .in("id",voLivingIds)):new ArrayList<>();
 
         Boolean finalIsContainLeave = isContainLeave;
         roomCountVos.forEach(t-> {
@@ -1311,24 +1307,20 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
                 ForwardFangTaiDateVo tableCell = new ForwardFangTaiDateVo();
                 tableCell.setDate(s);
                 tableCell.setLayoutId(t.getLayoutId());
-                List<BusRoomsLivingOrder> leaveOrders = new ArrayList<>();
-                List<BusRoomsLivingOrder> livingOrders = new ArrayList<>();
+                List<ForwardFangTaiQueryVo> leaveOrders = new ArrayList<>();
+                List<ForwardFangTaiQueryVo> livingOrders = new ArrayList<>();
                 final int[] dayLeave = {0};
                 final int[] dayLiving = {0};
                 vos.forEach(c->{
-                    Optional<BusRoomsLivingOrder> opFindOrder = allOrders.stream().filter(f->f.getId().equals(c.getLivingId())).findFirst();
-                    if(opFindOrder == null) return;
-                    BusRoomsLivingOrder findOrder = opFindOrder.get();
                     try {
                         long enter = DateUtils.parseDate(c.getEnterDate(),"yyyy-MM-dd").getTime();
                         long leave = DateUtils.parseDate(c.getLeaveDate(),"yyyy-MM-dd").getTime();
-
                         long curr = DateUtils.parseDate(s,"yyyy-MM-dd").getTime();
 
                         if(c.getLayoutId().equals(t.getLayoutId())
                                 && c.getLeaveDate().equals(s)) {
                             dayLeave[0] += 1;
-                            leaveOrders.add(findOrder);
+                            leaveOrders.add(c);
 
                         }
                         boolean isContainLeaveCondition = enter <= curr && (  finalIsContainLeave.booleanValue()?
@@ -1336,7 +1328,7 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
                         if(c.getLayoutId().equals(t.getLayoutId())
                                 && isContainLeaveCondition ) {
                             dayLiving[0] += 1;
-                            livingOrders.add(findOrder);
+                            livingOrders.add(c);
                         }
                     } catch (ParseException e) {
                         e.printStackTrace();

+ 2 - 2
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/ForwardFangTaiDateVo.java

@@ -12,6 +12,6 @@ public class ForwardFangTaiDateVo {
     private String date;
     private Integer leaveCount;
     private Integer livingCount;
-    private List<BusRoomsLivingOrder> leaveOrders;
-    private List<BusRoomsLivingOrder> livingOrders;
+    private List<ForwardFangTaiQueryVo> leaveOrders;
+    private List<ForwardFangTaiQueryVo> livingOrders;
 }

+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/ForwardFangTaiQueryVo.java

@@ -1,6 +1,10 @@
 package org.jeecg.modules.business.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
 
 @Data
 public class ForwardFangTaiQueryVo {
@@ -12,4 +16,14 @@ public class ForwardFangTaiQueryVo {
     private String roomId;
     private String roomName;
     private String livingId;
+    private String orderNo;
+    private Integer isLiving;
+    private String customerId;
+    private String customerName;
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
+    private Date arrivalTime;
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
+    private Date dueOutTime;
 }