Преглед изворни кода

fix 龚总 会议室管理 代码

shenzhongzheng пре 2 година
родитељ
комит
9b57046895
12 измењених фајлова са 203 додато и 13 уклоњено
  1. 20 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMeetingRoomScheduleController.java
  2. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusMeetingRoomSchedule.java
  3. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusMeetingRoomScheduleDetail.java
  4. 58 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/enums/CouponsKeyEnum.java
  5. 4 2
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMeetingRoomScheduleDetailServiceImpl.java
  6. 80 4
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMeetingRoomScheduleServiceImpl.java
  7. 12 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/BusMeetingKeyValueVo.java
  8. 2 2
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/BusMeetingRoomScheduleDetailVo.java
  9. 13 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/MeetingRoomScheduleDetailVo.java
  10. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/DTO/CesRoomSearchDto.java
  11. 0 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesAllDayRuleMinuteController.java
  12. 3 3
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesRoomsServiceImpl.java

+ 20 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMeetingRoomScheduleController.java

@@ -78,5 +78,25 @@ public class BusMeetingRoomScheduleController {
 
 
 
 
 
 
+    @ApiOperation(value="获取", notes="获取")
+    @PostMapping(value = "/fetch")
+    public Result fetch(String startDate,String endDate,String hotelId){
+        if(StringUtils.isBlank(startDate)){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        if(StringUtils.isBlank(endDate)){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        if(StringUtils.isBlank(hotelId)){
+            return Result.error(ResultCode.PARAM_MISS);
+        }
+        try {
+            return roomScheduleService.fetch(startDate,endDate,hotelId);
+        }catch (Exception e){
+            return Result.error(e.getMessage());
+        }
+    }
+
+
 }
 }
 
 

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusMeetingRoomSchedule.java

@@ -4,9 +4,12 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 import java.io.Serializable;
 import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -72,6 +75,8 @@ public class BusMeetingRoomSchedule extends Model<BusMeetingRoomSchedule> {
     /**
     /**
      * 创建时间
      * 创建时间
      */
      */
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
     private LocalDateTime createTime;
     private LocalDateTime createTime;
 
 
 
 

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusMeetingRoomScheduleDetail.java

@@ -4,9 +4,12 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 import java.io.Serializable;
 import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -49,6 +52,8 @@ public class BusMeetingRoomScheduleDetail extends Model<BusMeetingRoomScheduleDe
     /**
     /**
      * 会议日期
      * 会议日期
      */
      */
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
     private LocalDateTime meetingDate;
     private LocalDateTime meetingDate;
 
 
     /**
     /**

+ 58 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/enums/CouponsKeyEnum.java

@@ -0,0 +1,58 @@
+package org.jeecg.modules.business.enums;
+
+import org.jeecg.common.system.annotation.EnumDict;
+import org.jeecg.common.system.vo.DictModel;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+@EnumDict("couponsKeyEnum")
+public enum CouponsKeyEnum {
+
+    AM(1, "上午"),
+    MO(2, "中午"),
+    DE(3, "晚上");
+
+    Integer key;
+
+    String title;
+
+    CouponsKeyEnum(Integer key, String title){
+        this.key = key;
+        this.title = title;
+    }
+    public Integer getKey() {
+        return key;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    /**
+     * 获取字典数据
+     * @return
+     */
+    public static List<DictModel> getDictList(){
+        List<DictModel> list = new ArrayList<>();
+        DictModel dictModel = null;
+        for(CouponsKeyEnum e: CouponsKeyEnum.values()){
+            dictModel = new DictModel();
+            dictModel.setValue(e.key.toString());
+            dictModel.setText(e.title);
+            list.add(dictModel);
+        }
+        return list;
+    }
+
+    public static CouponsKeyEnum val(Integer key){
+        for(CouponsKeyEnum bld: values()){
+            if(bld.key == key){
+                return bld;
+            }
+        }
+        return null;
+    }
+
+}

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

@@ -41,12 +41,14 @@ public class BusMeetingRoomScheduleDetailServiceImpl extends ServiceImpl<BusMeet
 
 
 
 
 
 
-    public List<BusMeetingRoomScheduleDetail> fetchByDateRange(LocalDateTime startDate, LocalDateTime endDate,String hotelId){
+    public List<BusMeetingRoomScheduleDetail> fetchByDateRange(LocalDateTime startDate, LocalDateTime endDate,String hotelId,List<String> meetRoomIds){
+        if(CollectionUtil.isEmpty(meetRoomIds)) return new ArrayList<>();
         QueryWrapper<BusMeetingRoomScheduleDetail> queryWrapper = new QueryWrapper<>();
         QueryWrapper<BusMeetingRoomScheduleDetail> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(BusMeetingRoomScheduleDetail.TENANT_ID, TokenUtils.currentTenantId());
         queryWrapper.eq(BusMeetingRoomScheduleDetail.TENANT_ID, TokenUtils.currentTenantId());
         queryWrapper.eq(BusMeetingRoomScheduleDetail.HOTEL_ID,hotelId);
         queryWrapper.eq(BusMeetingRoomScheduleDetail.HOTEL_ID,hotelId);
         queryWrapper.between(BusMeetingRoomScheduleDetail.MEETING_DATE, startDate,endDate);
         queryWrapper.between(BusMeetingRoomScheduleDetail.MEETING_DATE, startDate,endDate);
+        queryWrapper.in(BusMeetingRoomScheduleDetail.MEETING_ROOM_ID,meetRoomIds);
 
 
-        return new ArrayList<>();
+        return scheduleDetailMapper.selectList(queryWrapper);
     }
     }
 }
 }

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

@@ -1,16 +1,24 @@
 package org.jeecg.modules.business.service.impl;
 package org.jeecg.modules.business.service.impl;
 
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.apache.commons.collections.map.HashedMap;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.util.TokenUtils;
 import org.jeecg.common.util.TokenUtils;
 import org.jeecg.modules.business.dto.BusMeetingRoomScheduleDetailDto;
 import org.jeecg.modules.business.dto.BusMeetingRoomScheduleDetailDto;
 import org.jeecg.modules.business.dto.BusMeetingRoomScheduleDto;
 import org.jeecg.modules.business.dto.BusMeetingRoomScheduleDto;
+import org.jeecg.modules.business.entity.BusMeetingRoom;
 import org.jeecg.modules.business.entity.BusMeetingRoomSchedule;
 import org.jeecg.modules.business.entity.BusMeetingRoomSchedule;
 import org.jeecg.modules.business.entity.BusMeetingRoomScheduleDetail;
 import org.jeecg.modules.business.entity.BusMeetingRoomScheduleDetail;
+import org.jeecg.modules.business.enums.CouponsKeyEnum;
 import org.jeecg.modules.business.mapper.BusMeetingRoomScheduleDetailMapper;
 import org.jeecg.modules.business.mapper.BusMeetingRoomScheduleDetailMapper;
 import org.jeecg.modules.business.mapper.BusMeetingRoomScheduleMapper;
 import org.jeecg.modules.business.mapper.BusMeetingRoomScheduleMapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.modules.business.vo.BusMeetingKeyValueVo;
+import org.jeecg.modules.business.vo.BusMeetingRoomScheduleDetailVo;
+import org.jeecg.modules.business.vo.BusMeetingRoomScheduleVo;
+import org.jeecg.modules.business.vo.MeetingRoomScheduleDetailVo;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
@@ -21,6 +29,9 @@ import java.time.LocalTime;
 import java.time.format.DateTimeFormatter;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -38,6 +49,10 @@ public class BusMeetingRoomScheduleServiceImpl extends ServiceImpl<BusMeetingRoo
         @Resource
         @Resource
         private BusMeetingRoomScheduleDetailServiceImpl meetingRoomScheduleDetailService;
         private BusMeetingRoomScheduleDetailServiceImpl meetingRoomScheduleDetailService;
 
 
+        @Resource
+        private BusMeetingRoomServiceImpl busMeetingRoomService;
+
+
     /**
     /**
      *
      *
      * @return
      * @return
@@ -80,18 +95,79 @@ public class BusMeetingRoomScheduleServiceImpl extends ServiceImpl<BusMeetingRoo
      * 查询 创建数据
      * 查询 创建数据
      * @param startDate
      * @param startDate
      * @param endDate
      * @param endDate
-     * @param viewType
      * @return
      * @return
      */
      */
-    public  Result fetch(String startDate,String endDate, Integer viewType,String hotelId){
+    public  Result fetch(String startDate,String endDate,String hotelId){
         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);
         LocalDateTime endTime = LocalDateTime.of(endLocalDate, LocalTime.of(23,59,59));;
         LocalDateTime endTime = LocalDateTime.of(endLocalDate, LocalTime.of(23,59,59));;
 
 
-//        List<>meetingRoomScheduleDetailService.fetchByDateRange(startTime,endTime, hotelId);
+        DateTimeFormatter struct1 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        List<BusMeetingRoom> busMeetingRooms = busMeetingRoomService.fetch(hotelId);
+        if(CollectionUtil.isEmpty(busMeetingRooms)) return Result.ok(new ArrayList<>());
+        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<>());
 
 
+        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<>());
 
 
-        return Result.ok("");
+        List<BusMeetingRoomScheduleVo> vos = new ArrayList<>();
+        busMeetingRooms.forEach(v -> {
+            BusMeetingRoomScheduleVo vo = new BusMeetingRoomScheduleVo();
+            vo.setMeetingRoomName(v.getName());
+            vo.setId(v.getId());
+            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);
+                });
+                detailVo.setSchedule(dataCh);
+                schedule.add(detailVo);
+            });
+            vo.setChild(schedule);
+            vos.add(vo);
+        });
+        return Result.ok(vos);
     }
     }
 }
 }

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

@@ -0,0 +1,12 @@
+package org.jeecg.modules.business.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class BusMeetingKeyValueVo {
+    private String key;
+
+    private List<MeetingRoomScheduleDetailVo> value;
+}

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

@@ -10,8 +10,8 @@ public class BusMeetingRoomScheduleDetailVo {
     /**
     /**
      * 上午 中午 下午
      * 上午 中午 下午
      */
      */
-     private Integer timePeriod;
+     private String timePeriod;
 
 
-     public List<Map<List<String>,List<Object>>> schedule;
+     public List<BusMeetingKeyValueVo> schedule;
 
 
 }
 }

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

@@ -0,0 +1,13 @@
+package org.jeecg.modules.business.vo;
+
+import lombok.Data;
+import org.jeecg.modules.business.entity.BusMeetingRoomSchedule;
+import org.jeecg.modules.business.entity.BusMeetingRoomScheduleDetail;
+
+@Data
+public class MeetingRoomScheduleDetailVo {
+        private String theme;// 主题
+        private BusMeetingRoomSchedule roomSchedule;
+
+        private BusMeetingRoomScheduleDetail detail;
+}

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/DTO/CesRoomSearchDto.java

@@ -5,7 +5,7 @@ import org.jeecg.common.api.dto.BasePage;
 
 
 @Data
 @Data
 public class CesRoomSearchDto  extends BasePage {
 public class CesRoomSearchDto  extends BasePage {
-     private String hotelIds;
+     private String hotelId;
 
 
     private String buildId;
     private String buildId;
 
 

+ 0 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesAllDayRuleMinuteController.java

@@ -21,6 +21,5 @@ import org.springframework.web.bind.annotation.RestController;
 @Slf4j
 @Slf4j
 public class CesAllDayRuleMinuteController   extends JeecgController<CesAllDayRuleMinute, CesAllDayRuleMinuteServiceImpl> {
 public class CesAllDayRuleMinuteController   extends JeecgController<CesAllDayRuleMinute, CesAllDayRuleMinuteServiceImpl> {
 
 
-
 }
 }
 
 

+ 3 - 3
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesRoomsServiceImpl.java

@@ -66,9 +66,9 @@ public class CesRoomsServiceImpl extends ServiceImpl<CesRoomsMapper, CesRooms> i
         if(!StringUtils.isBlank(dto.getFloorId())){
         if(!StringUtils.isBlank(dto.getFloorId())){
             queryWrapper.eq(CesRooms.FLOOR_ID,dto.getFloorId());
             queryWrapper.eq(CesRooms.FLOOR_ID,dto.getFloorId());
         }
         }
-        if(!StringUtils.isBlank(dto.getHotelIds())){
-           List<String> hotelIds = Arrays.stream(dto.getHotelIds().split(",")).collect(Collectors.toList());
-           queryWrapper.in(CesRooms.HOTEL_ID, hotelIds);
+        if(!StringUtils.isBlank(dto.getHotelId())){
+//           List<String> hotelIds = Arrays.stream(dto.getHotelId().split(",")).collect(Collectors.toList());
+           queryWrapper.eq(CesRooms.HOTEL_ID, dto.getHotelId());
         }
         }
         queryWrapper.eq(CesRooms.INVALID,false);
         queryWrapper.eq(CesRooms.INVALID,false);
         queryWrapper.orderByDesc(CesRooms.SORT, CesRooms.CREATEAT);
         queryWrapper.orderByDesc(CesRooms.SORT, CesRooms.CREATEAT);