Skip to content

会议室预订 ​

这篇解决什么 ​

会议室档案和预订单怎么分、时段冲突在哪拦。读完能对上 oa_meeting_room_booking 和 oa_meeting_room_booking 流程 key,不要把日历控件当唯一校验。

先开模块,见 OA 功能设计。业务表单约定见 业务表单开发。

示意图:先有房间档案。预订单才走审批和冲突校验。

从哪改 ​

名称说明仓库路径
房间 API/oa/meeting-roomruoyi-office/yudao-module-oa/.../MeetingRoomController.java
预订单/oa/meeting-room-bookingMeetingRoomBookingController.java
表档案 / 预订oa_meeting_room、oa_meeting_room_booking
流程 keyoa_meeting_room_bookingOaBillTypeEnum 代码 104
前端档案 + list/inforuoyi-office-vben/apps/web-antd/src/views/oa/meetingroom/
移动创建页 pages-oa/meeting-roombpm-menu-config.ts

页面是 booking/list、booking/info。模型自定义路径必须对这两处。

validateTimeConflict 只看同一 roomId、useStatus 为待使用 0 或使用中 1 的单。草稿和已取消不占档。开始时间不能早于现在。前端日期用 valueFormat: 'x'。

提醒场景码 OA_MEETING_REMIND,不是流程节点。改 cron / 通知模板别去改预订 Controller。

权限字 oa:meeting-room-booking:create。档案维护走 oa:meeting-room:*。

字段 ​

名称说明仓库路径
roomId / roomName房间冗余MeetingRoomBookingDO
meetingStartTime / meetingEndTime会议时段同上
moderatorId主持人同上
useStatus待使用 / 使用中等冲突查询用

日历绿了不等于能提交

列表日历只是展示。提交仍走后端冲突。两个人同时订同一段,后提交的会收到 MEETING_ROOM_BOOKING_TIME_CONFLICT。

先建房间再发单

没有 oa_meeting_room 行,预订选不到房间。不要在单据里手填一个不存在的 roomId。

java
@RequestMapping("/oa/meeting-room-booking")
public class MeetingRoomBookingController { }

@TableName("oa_meeting_room_booking")
public class MeetingRoomBookingDO extends BaseDO { }

配置与操作 ​

先在 OA → 会议室管理 → 会议室信息 建房间。预订走 booking / booking-info。保存后谁占档:同一 roomId 且 useStatus 为待使用 / 使用中的单。草稿和已取消不占。

日历只是展示。两人同时订同一段,后提交的收到 MEETING_ROOM_BOOKING_TIME_CONFLICT。提醒场景码 OA_MEETING_REMIND,改 cron 别去改预订 Controller。

会议室预订列表

本系统截图:OA → 会议室管理 → 会议室预定。

预订单详情

本系统截图:预订单 info。时段是时间戳,前端 valueFormat: 'x'。

相关篇 ​

联系我们

获取报价、演示和二开方案

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版