Browse Source

智慧场景会议室总览接口

ZhangManMan 2 years ago
parent
commit
e42e10cb78

+ 6 - 1
src/main/java/com/sky/ioc/controller/scene/MeetingRoomController.java

@@ -26,6 +26,11 @@ public class MeetingRoomController {
 
     @Autowired
     MeetingRoomService meetingRoomService;
-
+    @ApiOperation("会议室总览")
+    @PostMapping("/getMeetingRoomList")
+    public ReturnMsg getMeetingRoomList(@RequestParam(value = "floorId", required=true)  Integer floorId,
+                             @RequestParam(value = "date", required=false)String date){
+        return meetingRoomService.getMeetingRoomStatus(date,floorId);
+    }
 
 }

+ 1 - 0
src/main/java/com/sky/ioc/entity/domain/meeting/MeetingRoom.java

@@ -37,4 +37,5 @@ public class MeetingRoom {
 
     /** 容纳人数 */
     private Integer capacity;
+
 }

+ 14 - 8
src/main/java/com/sky/ioc/mapper/meeting/MeetingRecordMapper.java

@@ -7,18 +7,24 @@ import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
+import java.util.List;
+
 @Mapper
 public interface MeetingRecordMapper extends BaseMapper<MeetingRecord> {
 
+
     @Select("<script> " +
-            "SELECT count(1) FROM meeting_record  where 1=1 " +
-            "<if test='iocParam!=null and iocParam.timeRange != null '>" +
-            "<![CDATA[ and start_time >= #{iocParam.timeRange.startDate} " +
-            " AND end_time <= #{iocParam.timeRange.endDate} ]]> " +
+            "SELECT * FROM meeting_record  where 1=1 " +
+            "<if test='startTime!=null  '>" +
+            "<![CDATA[ and start_time >= #{startTime} " +
+            " AND end_time <= #{endTime} ]]> " +
             "</if>" +
-            "<if test='iocParam!=null and iocParam.roomId != null '>" +
-            " and room_id = #{iocParam.roomId} " +
+            "<if test='roomId!=null '>" +
+            " and room_id = #{roomId} " +
             "</if>" +
-            "</script>")
-    Integer getTotalByTimeAndRoomId(@Param("iocParam") IocParam iocParam);
+            " order by end_time desc </script>")
+    List<MeetingRecord> getListByTimeAndRoomId(@Param("startTime") String startTime,
+                                               @Param("endTime") String endTime,
+                                               @Param("roomId") Integer roomId);
+
 }

+ 1 - 1
src/main/java/com/sky/ioc/mapper/meeting/MeetingRoomMapper.java

@@ -11,7 +11,7 @@ import java.util.List;
 @Mapper
 public interface MeetingRoomMapper extends BaseMapper<MeetingRoom> {
     @Select("<script> " +
-            "select count(1) from meeting_room where 1=1 " +
+            "select * from meeting_room where 1=1 " +
             "<if test='floorId!=null '>" +
             " and floor_id = #{floorId} " +
             "</if>" +

+ 3 - 0
src/main/java/com/sky/ioc/service/meeting/MeetingRoomService.java

@@ -1,9 +1,12 @@
 package com.sky.ioc.service.meeting;
 
+import com.sky.ioc.entity.params.IocParam;
 import com.sky.ioc.tool.ReturnMsg;
 
 public interface MeetingRoomService {
     ReturnMsg getMeetingRoomList();
 
+    ReturnMsg getMeetingRoomStatus(String date,Integer floorId);
+
 
 }

+ 45 - 5
src/main/java/com/sky/ioc/service/meeting/impl/MeetingRoomServiceImpl.java

@@ -2,8 +2,11 @@ package com.sky.ioc.service.meeting.impl;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.sky.ioc.entity.domain.meeting.MeetingRecord;
 import com.sky.ioc.entity.domain.meeting.MeetingRoom;
+import com.sky.ioc.entity.params.IocParam;
 import com.sky.ioc.mapper.job.TokenMapper;
+import com.sky.ioc.mapper.meeting.MeetingRecordMapper;
 import com.sky.ioc.mapper.meeting.MeetingRoomMapper;
 import com.sky.ioc.service.meeting.MeetingRoomService;
 import com.sky.ioc.tool.ReturnMsg;
@@ -17,17 +20,14 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.Map;
+import java.text.SimpleDateFormat;
+import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 @Service
 @Slf4j
 public class MeetingRoomServiceImpl implements MeetingRoomService {
-    @Resource
-    RestTemplate restTemplate;
 
     @Resource
     TokenMapper tokenMapper;
@@ -35,6 +35,9 @@ public class MeetingRoomServiceImpl implements MeetingRoomService {
     @Autowired
     MeetingRoomMapper meetingRoomMapper;
 
+    @Autowired
+    MeetingRecordMapper meetingRecordMapper;
+
     final static  String MEETTING_ROOM_URL="http://192.168.1.45:9001/api/meeting/MEETING/room/list?pageNum=1&pageSize=100";
 
     @Override
@@ -94,4 +97,41 @@ public class MeetingRoomServiceImpl implements MeetingRoomService {
         }
 
     }
+
+    @Override
+    public ReturnMsg getMeetingRoomStatus(String date,Integer floorId) {
+        List<MeetingRoom> lists = meetingRoomMapper.getListRoomByFloorId(floorId);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
+        SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm:ss");
+        List<Map<String,String>> mapList = new ArrayList<>();
+        for (MeetingRoom room:lists) {
+            Map<String,String> map = new HashMap<>();
+                Integer roomId = room.getId();
+                map.put("name",room.getName());
+                map.put("capacity",room.getCapacity()+"");
+                List<MeetingRecord> records = meetingRecordMapper.getListByTimeAndRoomId(date+" 00:00:00",
+                        date+" 23:59:00",roomId);
+                if (records!=null&&records.size()>0){
+                    String startTime = records.get(0).getStartTime().substring(11);
+                    String endTime = records.get(0).getEndTime().substring(11);
+                    map.put("time",startTime+"-"+endTime);
+                    Integer start=startTime.compareTo(sdf2.format(new Date()));
+                    Integer end = endTime.compareTo(sdf2.format(new Date()));
+                    if(start>0){
+                        map.put("status","已预定");
+                    }else if(end>0){
+                        map.put("status","闲置中");
+                    }else {
+                        map.put("status","会议中");
+                    }
+                 //   System.out.println(i);
+
+                }else{
+                    map.put("status","闲置中");
+                }
+                mapList.add(map);
+
+        }
+        return ReturnMsg.ok(mapList);
+    }
 }