소스 검색

增加会议记录

tianyabing 2 년 전
부모
커밋
9f0d011785

+ 6 - 1
pom.xml

@@ -154,13 +154,18 @@
             </exclusions>
         </dependency>
 
-        <!-- io常用工具类 -->
+        <!-- 常用工具类 -->
         <dependency>
             <groupId>commons-io</groupId>
             <artifactId>commons-io</artifactId>
             <version>${commons.io.version}</version>
         </dependency>
 
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+        </dependency>
+
         <!-- 文件上传工具类 -->
         <dependency>
             <groupId>commons-fileupload</groupId>

+ 17 - 1
src/main/java/com/sky/ioc/controller/work/MeetingController.java

@@ -1,6 +1,8 @@
 package com.sky.ioc.controller.work;
 
+import com.sky.ioc.entity.domain.meeting.MeetingRecord;
 import com.sky.ioc.entity.params.IocParam;
+import com.sky.ioc.service.meeting.MeetingRecordService;
 import com.sky.ioc.service.space.SpaceService;
 import com.sky.ioc.tool.ReturnMsg;
 import io.swagger.annotations.Api;
@@ -12,6 +14,9 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * TODO
  *
@@ -30,6 +35,9 @@ public class MeetingController {
     @Autowired
     private SpaceService spaceService;
 
+    @Autowired
+    private MeetingRecordService meetingRecordService;
+
 
     @ApiOperation("核心指标")
     @PostMapping("/getMeetingCoreIndicators")
@@ -47,10 +55,18 @@ public class MeetingController {
 
 
 
+    @ApiOperation("会议室情况(分楼层)")
+    @PostMapping("/getConferenceRoomTreeInfo")
+    public ReturnMsg getConferenceRoomTreeInfo(@RequestBody IocParam iocParam){
+        Map map = meetingRecordService.queryMeetingTreeList(iocParam);
+        return ReturnMsg.ok(map);
+    }
+
     @ApiOperation("会议室情况")
     @PostMapping("/getConferenceRoomInfo")
     public ReturnMsg getConferenceRoomInfo(@RequestBody IocParam iocParam){
-        return spaceService.getConferenceRoomInfo(iocParam);
+        List<MeetingRecord> records = meetingRecordService.queryMeetingList(iocParam);
+        return ReturnMsg.ok(records);
     }
 
 

+ 24 - 0
src/main/java/com/sky/ioc/entity/domain/meeting/MeetingRecord.java

@@ -0,0 +1,24 @@
+package com.sky.ioc.entity.domain.meeting;
+
+import lombok.Data;
+
+@Data
+public class MeetingRecord {
+    private Integer id;
+    /** 会议主题 */
+    private String subject;
+    /** 单位 */
+    private Integer companyId;
+    /** 部门 */
+    private Integer deptId;
+    /** 楼层 */
+    private Integer floor;
+    /** 房间 */
+    private Integer room;
+    /** 开始时间 */
+    private String startTime;
+    /** 结束时间 */
+    private String endTime;
+    /** 会议人数 */
+    private Integer personNum;
+}

+ 10 - 5
src/main/java/com/sky/ioc/entity/params/IocTimeRange.java

@@ -2,9 +2,9 @@ package com.sky.ioc.entity.params;
 
 import lombok.Data;
 
-import java.time.LocalDate;
+import java.time.Duration;
+import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.time.temporal.ChronoUnit;
 
 @Data
 public class IocTimeRange {
@@ -18,9 +18,14 @@ public class IocTimeRange {
 
     public Integer getRange() {
         DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy/MM/dd");
-        LocalDate sDate = LocalDate.parse(this.startDate, pattern);
-        LocalDate eDate = LocalDate.parse(this.endDate, pattern);
-        this.range = Math.toIntExact(ChronoUnit.DAYS.between(sDate, eDate));
+        if (this.startDate.contains(":")) {
+            pattern = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
+        }
+
+        LocalDateTime sDate = LocalDateTime.parse(this.startDate, pattern);
+        LocalDateTime eDate = LocalDateTime.parse(this.endDate, pattern);
+        this.range = Math.toIntExact(Duration.between(sDate, eDate).toDays());
         return this.range;
     }
+
 }

+ 9 - 0
src/main/java/com/sky/ioc/mapper/meeting/MeetingRecordMapper.java

@@ -0,0 +1,9 @@
+package com.sky.ioc.mapper.meeting;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sky.ioc.entity.domain.meeting.MeetingRecord;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface MeetingRecordMapper extends BaseMapper<MeetingRecord> {
+}

+ 16 - 0
src/main/java/com/sky/ioc/service/meeting/MeetingRecordService.java

@@ -0,0 +1,16 @@
+package com.sky.ioc.service.meeting;
+
+import com.sky.ioc.entity.domain.meeting.MeetingRecord;
+import com.sky.ioc.entity.params.IocParam;
+
+import java.util.List;
+import java.util.Map;
+
+
+public interface MeetingRecordService {
+
+
+    Map queryMeetingTreeList(IocParam iocParam);
+
+    List<MeetingRecord> queryMeetingList(IocParam iocParam);
+}

+ 44 - 0
src/main/java/com/sky/ioc/service/meeting/impl/MeetingRecordServiceImpl.java

@@ -0,0 +1,44 @@
+package com.sky.ioc.service.meeting.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.sky.ioc.entity.domain.meeting.MeetingRecord;
+import com.sky.ioc.entity.params.IocParam;
+import com.sky.ioc.mapper.meeting.MeetingRecordMapper;
+import com.sky.ioc.service.meeting.MeetingRecordService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@Service
+public class MeetingRecordServiceImpl implements MeetingRecordService {
+
+    @Resource
+    private MeetingRecordMapper meetingRecordMapper;
+
+    @Override
+    public Map queryMeetingTreeList(IocParam iocParam) {
+        LambdaQueryWrapper<MeetingRecord> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.ge(MeetingRecord::getStartTime, iocParam.getTimeRange().getStartDate());
+        queryWrapper.le(MeetingRecord::getEndTime, iocParam.getTimeRange().getEndDate());
+        List<MeetingRecord> meetingRecords = meetingRecordMapper.selectList(queryWrapper);
+        Map collect = meetingRecords.stream().collect(Collectors.groupingBy(MeetingRecord::getFloor));
+        for (Object key : collect.keySet()) {
+            List<MeetingRecord> records = (List<MeetingRecord>) collect.get(key);
+            Map<Integer, List<MeetingRecord>> map = records.stream().collect(Collectors.groupingBy(MeetingRecord::getRoom));
+            collect.put(key, map);
+        }
+        return collect;
+    }
+
+    @Override
+    public List<MeetingRecord> queryMeetingList(IocParam iocParam) {
+        LambdaQueryWrapper<MeetingRecord> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.ge(MeetingRecord::getStartTime, iocParam.getTimeRange().getStartDate());
+        queryWrapper.le(MeetingRecord::getEndTime, iocParam.getTimeRange().getEndDate());
+        List<MeetingRecord> meetingRecords = meetingRecordMapper.selectList(queryWrapper);
+        return meetingRecords;
+    }
+}