|
@@ -98,6 +98,8 @@ public class BusMeetingRoomScheduleServiceImpl extends ServiceImpl<BusMeetingRoo
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
|
public Result fetch(String startDate,String endDate,String hotelId){
|
|
public Result fetch(String startDate,String endDate,String hotelId){
|
|
|
|
|
+ List<BusMeetingRoomScheduleVo> vos = new ArrayList<>();
|
|
|
|
|
+
|
|
|
DateTimeFormatter struct = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
DateTimeFormatter struct = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
LocalDateTime startTime = LocalDate.parse(startDate,struct).atStartOfDay();
|
|
LocalDateTime startTime = LocalDate.parse(startDate,struct).atStartOfDay();
|
|
|
LocalDate endLocalDate = LocalDate.parse(endDate,struct);
|
|
LocalDate endLocalDate = LocalDate.parse(endDate,struct);
|
|
@@ -105,17 +107,16 @@ public class BusMeetingRoomScheduleServiceImpl extends ServiceImpl<BusMeetingRoo
|
|
|
|
|
|
|
|
DateTimeFormatter struct1 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
DateTimeFormatter struct1 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
List<BusMeetingRoom> busMeetingRooms = busMeetingRoomService.fetch(hotelId);
|
|
List<BusMeetingRoom> busMeetingRooms = busMeetingRoomService.fetch(hotelId);
|
|
|
- if(CollectionUtil.isEmpty(busMeetingRooms)) return Result.ok(new ArrayList<>());
|
|
|
|
|
|
|
+ if(CollectionUtil.isEmpty(busMeetingRooms)) return Result.ok(vos);
|
|
|
List<String> meetingIds = busMeetingRooms.stream().map(v -> v.getId()).collect(Collectors.toList());
|
|
List<String> meetingIds = busMeetingRooms.stream().map(v -> v.getId()).collect(Collectors.toList());
|
|
|
|
|
|
|
|
List<BusMeetingRoomScheduleDetail> scheduleDetails = meetingRoomScheduleDetailService.fetchByDateRange(startTime,endTime, hotelId,meetingIds);
|
|
List<BusMeetingRoomScheduleDetail> scheduleDetails = meetingRoomScheduleDetailService.fetchByDateRange(startTime,endTime, hotelId,meetingIds);
|
|
|
- if(CollectionUtil.isEmpty(scheduleDetails)) return Result.ok(new ArrayList<>());
|
|
|
|
|
|
|
+ if(CollectionUtil.isEmpty(scheduleDetails)) return Result.ok(vos);
|
|
|
|
|
|
|
|
List<String> scheduleIds = scheduleDetails.stream().map(v -> v.getMeetingRoomScheduleId()).collect(Collectors.toList());
|
|
List<String> scheduleIds = scheduleDetails.stream().map(v -> v.getMeetingRoomScheduleId()).collect(Collectors.toList());
|
|
|
List<BusMeetingRoomSchedule> schedules = meetingRoomScheduleMapper.selectBatchIds(scheduleIds);
|
|
List<BusMeetingRoomSchedule> schedules = meetingRoomScheduleMapper.selectBatchIds(scheduleIds);
|
|
|
- if(CollectionUtil.isEmpty(schedules)) return Result.ok(new ArrayList<>());
|
|
|
|
|
|
|
+ if(CollectionUtil.isEmpty(schedules)) return Result.ok(vos);
|
|
|
|
|
|
|
|
- List<BusMeetingRoomScheduleVo> vos = new ArrayList<>();
|
|
|
|
|
busMeetingRooms.forEach(v -> {
|
|
busMeetingRooms.forEach(v -> {
|
|
|
BusMeetingRoomScheduleVo vo = new BusMeetingRoomScheduleVo();
|
|
BusMeetingRoomScheduleVo vo = new BusMeetingRoomScheduleVo();
|
|
|
vo.setMeetingRoomName(v.getName());
|
|
vo.setMeetingRoomName(v.getName());
|
|
@@ -123,48 +124,60 @@ public class BusMeetingRoomScheduleServiceImpl extends ServiceImpl<BusMeetingRoo
|
|
|
List<BusMeetingRoomScheduleDetailVo> schedule = new ArrayList<>();
|
|
List<BusMeetingRoomScheduleDetailVo> schedule = new ArrayList<>();
|
|
|
|
|
|
|
|
//获取当前会议室下的所有 预定详情数据
|
|
//获取当前会议室下的所有 预定详情数据
|
|
|
- List<BusMeetingRoomScheduleDetail> details = scheduleDetails.stream().filter( schedul -> schedul.getMeetingRoomId().equals(v.getId())).collect(Collectors.toList());
|
|
|
|
|
- //固定三条数据
|
|
|
|
|
- Map<Integer,List<BusMeetingRoomScheduleDetail>> groupData = details.stream().collect(Collectors.groupingBy(BusMeetingRoomScheduleDetail::getTimeSpan));
|
|
|
|
|
- groupData.forEach((key,value)-> {
|
|
|
|
|
- //第二层 上午下午中午
|
|
|
|
|
- BusMeetingRoomScheduleDetailVo detailVo = new BusMeetingRoomScheduleDetailVo();
|
|
|
|
|
-
|
|
|
|
|
- detailVo.setTimePeriod(CouponsKeyEnum.val(key).getTitle());
|
|
|
|
|
-
|
|
|
|
|
- List<BusMeetingKeyValueVo> dataCh = new ArrayList<>();
|
|
|
|
|
- //第二层结束
|
|
|
|
|
- Map<String,List<MeetingRoomScheduleDetailVo>> map = new HashedMap();
|
|
|
|
|
- Map<List<String>, List<MeetingRoomScheduleDetailVo>> result = new HashedMap();
|
|
|
|
|
- //第三层开始 eg: 上午 : 上午的所有数据
|
|
|
|
|
- value.forEach(vl -> {
|
|
|
|
|
- MeetingRoomScheduleDetailVo scheduleDetailVo = new MeetingRoomScheduleDetailVo();
|
|
|
|
|
- //生成key
|
|
|
|
|
- String value_key = vl.getMeetingDate().format(struct1);
|
|
|
|
|
- List<MeetingRoomScheduleDetailVo> scheduleDetailVos = new ArrayList<>();
|
|
|
|
|
- //如果存在这个key
|
|
|
|
|
- if(map.containsKey(value_key)){
|
|
|
|
|
- scheduleDetailVos = map.get(value_key);
|
|
|
|
|
- }
|
|
|
|
|
- Optional<BusMeetingRoomSchedule> scheduleOptional = schedules.stream().filter(sc -> sc.getId().equals(vl.getMeetingRoomScheduleId())).findFirst();
|
|
|
|
|
- if(!scheduleOptional.isPresent()) return;
|
|
|
|
|
- BusMeetingRoomSchedule vl_schedule = scheduleOptional.get();
|
|
|
|
|
- //生成数据
|
|
|
|
|
- scheduleDetailVo.setTheme(vl_schedule.getTheme());
|
|
|
|
|
- scheduleDetailVo.setDetail(vl);
|
|
|
|
|
- scheduleDetailVo.setRoomSchedule(vl_schedule);
|
|
|
|
|
- scheduleDetailVos.add(scheduleDetailVo);
|
|
|
|
|
- map.put(value_key, scheduleDetailVos);
|
|
|
|
|
- });
|
|
|
|
|
- map.forEach((map_k, map_v) -> {
|
|
|
|
|
- BusMeetingKeyValueVo valueVo = new BusMeetingKeyValueVo();
|
|
|
|
|
- valueVo.setKey(map_k);
|
|
|
|
|
- valueVo.setValue(map_v);
|
|
|
|
|
- dataCh.add(valueVo);
|
|
|
|
|
|
|
+ List<BusMeetingRoomScheduleDetail> details = scheduleDetails.stream().filter(schedul -> schedul.getMeetingRoomId().equals(v.getId())).collect(Collectors.toList());
|
|
|
|
|
+ //逻辑二
|
|
|
|
|
+ if(CollectionUtil.isEmpty(details)){
|
|
|
|
|
+ //默认三个数据
|
|
|
|
|
+ for (int key = 1; key <=3; key++) {
|
|
|
|
|
+ //第二层 上午下午中午
|
|
|
|
|
+ BusMeetingRoomScheduleDetailVo detailVo = new BusMeetingRoomScheduleDetailVo();
|
|
|
|
|
+ detailVo.setTimePeriod(CouponsKeyEnum.val(key).getTitle());
|
|
|
|
|
+ detailVo.setSchedule(new ArrayList<>());
|
|
|
|
|
+ schedule.add(detailVo);
|
|
|
|
|
+ }
|
|
|
|
|
+ }else{
|
|
|
|
|
+ //固定三条数据
|
|
|
|
|
+ Map<Integer,List<BusMeetingRoomScheduleDetail>> groupData = details.stream().collect(Collectors.groupingBy(BusMeetingRoomScheduleDetail::getTimeSpan));
|
|
|
|
|
+ groupData.forEach((key,value)-> {
|
|
|
|
|
+ //第二层 上午下午中午
|
|
|
|
|
+ BusMeetingRoomScheduleDetailVo detailVo = new BusMeetingRoomScheduleDetailVo();
|
|
|
|
|
+
|
|
|
|
|
+ detailVo.setTimePeriod(CouponsKeyEnum.val(key).getTitle());
|
|
|
|
|
+
|
|
|
|
|
+ List<BusMeetingKeyValueVo> dataCh = new ArrayList<>();
|
|
|
|
|
+ //第二层结束
|
|
|
|
|
+ Map<String,List<MeetingRoomScheduleDetailVo>> map = new HashedMap();
|
|
|
|
|
+ Map<List<String>, List<MeetingRoomScheduleDetailVo>> result = new HashedMap();
|
|
|
|
|
+ //第三层开始 eg: 上午 : 上午的所有数据
|
|
|
|
|
+ value.forEach(vl -> {
|
|
|
|
|
+ MeetingRoomScheduleDetailVo scheduleDetailVo = new MeetingRoomScheduleDetailVo();
|
|
|
|
|
+ //生成key
|
|
|
|
|
+ String value_key = vl.getMeetingDate().format(struct1);
|
|
|
|
|
+ List<MeetingRoomScheduleDetailVo> scheduleDetailVos = new ArrayList<>();
|
|
|
|
|
+ //如果存在这个key
|
|
|
|
|
+ if(map.containsKey(value_key)){
|
|
|
|
|
+ scheduleDetailVos = map.get(value_key);
|
|
|
|
|
+ }
|
|
|
|
|
+ Optional<BusMeetingRoomSchedule> scheduleOptional = schedules.stream().filter(sc -> sc.getId().equals(vl.getMeetingRoomScheduleId())).findFirst();
|
|
|
|
|
+ if(!scheduleOptional.isPresent()) return;
|
|
|
|
|
+ BusMeetingRoomSchedule vl_schedule = scheduleOptional.get();
|
|
|
|
|
+ //生成数据
|
|
|
|
|
+ scheduleDetailVo.setTheme(vl_schedule.getTheme());
|
|
|
|
|
+ scheduleDetailVo.setDetail(vl);
|
|
|
|
|
+ scheduleDetailVo.setRoomSchedule(vl_schedule);
|
|
|
|
|
+ scheduleDetailVos.add(scheduleDetailVo);
|
|
|
|
|
+ map.put(value_key, scheduleDetailVos);
|
|
|
|
|
+ });
|
|
|
|
|
+ map.forEach((map_k, map_v) -> {
|
|
|
|
|
+ BusMeetingKeyValueVo valueVo = new BusMeetingKeyValueVo();
|
|
|
|
|
+ valueVo.setKey(map_k);
|
|
|
|
|
+ valueVo.setValue(map_v);
|
|
|
|
|
+ dataCh.add(valueVo);
|
|
|
|
|
+ });
|
|
|
|
|
+ detailVo.setSchedule(dataCh);
|
|
|
|
|
+ schedule.add(detailVo);
|
|
|
});
|
|
});
|
|
|
- detailVo.setSchedule(dataCh);
|
|
|
|
|
- schedule.add(detailVo);
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ }
|
|
|
vo.setChild(schedule);
|
|
vo.setChild(schedule);
|
|
|
vos.add(vo);
|
|
vos.add(vo);
|
|
|
});
|
|
});
|