Sfoglia il codice sorgente

Update BusMeetingRoomScheduleServiceImpl.java

shenzhongzheng 2 anni fa
parent
commit
9a00283591

+ 58 - 45
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMeetingRoomScheduleServiceImpl.java

@@ -98,6 +98,8 @@ public class BusMeetingRoomScheduleServiceImpl extends ServiceImpl<BusMeetingRoo
      * @return
      */
     public  Result fetch(String startDate,String endDate,String hotelId){
+        List<BusMeetingRoomScheduleVo> vos = new ArrayList<>();
+
         DateTimeFormatter struct = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
         LocalDateTime startTime = LocalDate.parse(startDate,struct).atStartOfDay();
         LocalDate endLocalDate = LocalDate.parse(endDate,struct);
@@ -105,17 +107,16 @@ public class BusMeetingRoomScheduleServiceImpl extends ServiceImpl<BusMeetingRoo
 
         DateTimeFormatter struct1 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         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<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<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 -> {
             BusMeetingRoomScheduleVo vo = new BusMeetingRoomScheduleVo();
             vo.setMeetingRoomName(v.getName());
@@ -123,48 +124,60 @@ public class BusMeetingRoomScheduleServiceImpl extends ServiceImpl<BusMeetingRoo
             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);
             vos.add(vo);
         });