|
|
@@ -25,6 +25,7 @@ import org.jeecg.modules.business.service.impl.BusHotelServiceImpl;
|
|
|
import org.jeecg.modules.rooms.DTO.*;
|
|
|
import org.jeecg.modules.rooms.Enum.CouponEnums;
|
|
|
import org.jeecg.modules.rooms.Enum.RoomStatusEnum;
|
|
|
+import org.jeecg.modules.rooms.Vo.AlreadyUseLayoutNumberVo;
|
|
|
import org.jeecg.modules.rooms.Vo.CanUseBuildingRoomsVo;
|
|
|
import org.jeecg.modules.rooms.Vo.CanUseResultVo;
|
|
|
import org.jeecg.modules.rooms.Vo.CesRoomsVo;
|
|
|
@@ -258,10 +259,14 @@ public class CesRoomsServiceImpl extends ServiceImpl<CesRoomsMapper, CesRooms> i
|
|
|
*/
|
|
|
public List<CanUseResultVo> getCanUseRooms(CanUseRequestParamDto param) {
|
|
|
// 获取房型
|
|
|
- List<CesRoomLayout> layouts = layoutService.list(Wrappers.<CesRoomLayout>query().eq("hotel_id",param.getHotelId())
|
|
|
- .eq("invalid",false)
|
|
|
- );
|
|
|
+ QueryWrapper<CesRoomLayout> wrappers = Wrappers.<CesRoomLayout>query().eq("hotel_id",param.getHotelId())
|
|
|
+ .eq("invalid",false);
|
|
|
+ if(param.getLayoutId() != null && !param.getLayoutId().isEmpty()) {
|
|
|
+ wrappers.eq("id",param.getLayoutId());
|
|
|
+ }
|
|
|
+ List<CesRoomLayout> layouts = layoutService.list(wrappers);
|
|
|
List<CesRooms> allRooms = baseMapper.canUseRooms(param.getHotelId(),param.getStartOf(),param.getEndOf());
|
|
|
+ List<AlreadyUseLayoutNumberVo> useLayoutNumbers = baseMapper.alreadyUseLayoutNumber(param.getHotelId(),param.getStartOf(),param.getEndOf());
|
|
|
List<CesRoomBuildingFloor> allBuildingFloors = buildingFloorService.list(Wrappers.<CesRoomBuildingFloor>query().eq("hotelId",param.getHotelId()).eq("invalid",false));
|
|
|
List<CanUseResultVo> results = new ArrayList<>();
|
|
|
List<CesRoomBuildingFloor> floors = allBuildingFloors.stream().filter(s->!s.getParentId().equals("0")).collect(Collectors.toList());
|
|
|
@@ -306,6 +311,13 @@ public class CesRoomsServiceImpl extends ServiceImpl<CesRoomsMapper, CesRooms> i
|
|
|
canUseRoomCount[0] += floorRooms.size();
|
|
|
floorVos.add(floorRoomsVo);
|
|
|
});
|
|
|
+ // 主要为了排除掉未排房数量
|
|
|
+ Optional<AlreadyUseLayoutNumberVo> alreadyUseLayoutNumberVo = useLayoutNumbers.stream().filter(k->k.getLayoutId().equals(s.getId())).findAny();
|
|
|
+ if(alreadyUseLayoutNumberVo.isPresent()){
|
|
|
+ canUseRoomCount[0] = canUseRoomCount[0] - alreadyUseLayoutNumberVo.get().getUseCount();
|
|
|
+ // 算法如果正确 就不需要下面这步,待检验之前步骤正确性
|
|
|
+ if(canUseRoomCount[0] < 0) canUseRoomCount[0] = 0;
|
|
|
+ }
|
|
|
s.setCanUseCount(canUseRoomCount[0]); //设置可用房间数
|
|
|
item.setLayout(s);
|
|
|
item.setBuildingRooms(floorVos);
|