Bladeren bron

1、会议预定管理代码生成

dongpo 1 jaar geleden
bovenliggende
commit
1def48148b
10 gewijzigde bestanden met toevoegingen van 541 en 0 verwijderingen
  1. 2 0
      yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/ErrorCodeConstants.java
  2. 96 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/meeting/reserve/OaMeetingReserveController.java
  3. 66 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/meeting/reserve/vo/OaMeetingReservePageReqVO.java
  4. 80 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/meeting/reserve/vo/OaMeetingReserveRespVO.java
  5. 33 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/meeting/reserve/vo/OaMeetingReserveSaveReqVO.java
  6. 87 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/meeting/reserve/OaMeetingReserveDO.java
  7. 38 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/meeting/reserve/OaMeetingReserveMapper.java
  8. 55 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/meeting/reserve/OaMeetingReserveService.java
  9. 72 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/meeting/reserve/OaMeetingReserveServiceImpl.java
  10. 12 0
      yudao-module-bpm/yudao-module-bpm-biz/src/main/resources/mapper/meeting/reserve/OaMeetingReserveMapper.xml

+ 2 - 0
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/ErrorCodeConstants.java

@@ -115,6 +115,8 @@ public interface ErrorCodeConstants {
     ErrorCode OA_STAMP_NOT_EXISTS = new ErrorCode(1_009_017_011, "用印流程信息不存在");
     // ========== 会议室信息管理 1_009_017_012 ==========
     ErrorCode OA_MEETING_ROOM_NOT_EXISTS = new ErrorCode(1_009_017_012, "会议室信息管理不存在");
+    // ========== 会议室预定管理信息 1_009_017_013 ==========
+    ErrorCode OA_MEETING_RESERVE_NOT_EXISTS = new ErrorCode(1_009_017_013, "会议室预定管理信息不存在");
 
     // ========== 员工信息 1_009_018_000 ==========
     ErrorCode OA_EMPLOYEE_NOT_EXISTS = new ErrorCode(1_009_018_000, "员工信息不存在");

+ 96 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/meeting/reserve/OaMeetingReserveController.java

@@ -0,0 +1,96 @@
+package cn.iocoder.yudao.module.bpm.controller.admin.meeting.reserve;
+
+import cn.iocoder.yudao.module.bpm.controller.admin.meeting.reserve.vo.OaMeetingReservePageReqVO;
+import cn.iocoder.yudao.module.bpm.controller.admin.meeting.reserve.vo.OaMeetingReserveRespVO;
+import cn.iocoder.yudao.module.bpm.controller.admin.meeting.reserve.vo.OaMeetingReserveSaveReqVO;
+import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import javax.validation.*;
+import javax.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
+
+import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
+
+import cn.iocoder.yudao.module.bpm.dal.dataobject.meeting.reserve.OaMeetingReserveDO;
+import cn.iocoder.yudao.module.bpm.service.meeting.reserve.OaMeetingReserveService;
+
+@Tag(name = "管理后台 - 会议室预定管理信息")
+@RestController
+@RequestMapping("/bpm/oa-meeting-reserve")
+@Validated
+public class OaMeetingReserveController {
+
+    @Resource
+    private OaMeetingReserveService oaMeetingReserveService;
+
+    @PostMapping("/create")
+    @Operation(summary = "创建会议室预定管理信息")
+    @PreAuthorize("@ss.hasPermission('bpm:oa-meeting-reserve:create')")
+    public CommonResult<Long> createOaMeetingReserve(@Valid @RequestBody OaMeetingReserveSaveReqVO createReqVO) {
+        return success(oaMeetingReserveService.createOaMeetingReserve(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "更新会议室预定管理信息")
+    @PreAuthorize("@ss.hasPermission('bpm:oa-meeting-reserve:update')")
+    public CommonResult<Boolean> updateOaMeetingReserve(@Valid @RequestBody OaMeetingReserveSaveReqVO updateReqVO) {
+        oaMeetingReserveService.updateOaMeetingReserve(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除会议室预定管理信息")
+    @Parameter(name = "id", description = "编号", required = true)
+    @PreAuthorize("@ss.hasPermission('bpm:oa-meeting-reserve:delete')")
+    public CommonResult<Boolean> deleteOaMeetingReserve(@RequestParam("id") Long id) {
+        oaMeetingReserveService.deleteOaMeetingReserve(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得会议室预定管理信息")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('bpm:oa-meeting-reserve:query')")
+    public CommonResult<OaMeetingReserveRespVO> getOaMeetingReserve(@RequestParam("id") Long id) {
+        OaMeetingReserveDO oaMeetingReserve = oaMeetingReserveService.getOaMeetingReserve(id);
+        return success(BeanUtils.toBean(oaMeetingReserve, OaMeetingReserveRespVO.class));
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得会议室预定管理信息分页")
+    @PreAuthorize("@ss.hasPermission('bpm:oa-meeting-reserve:query')")
+    public CommonResult<PageResult<OaMeetingReserveRespVO>> getOaMeetingReservePage(@Valid OaMeetingReservePageReqVO pageReqVO) {
+        PageResult<OaMeetingReserveDO> pageResult = oaMeetingReserveService.getOaMeetingReservePage(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, OaMeetingReserveRespVO.class));
+    }
+
+    @GetMapping("/export-excel")
+    @Operation(summary = "导出会议室预定管理信息 Excel")
+    @PreAuthorize("@ss.hasPermission('bpm:oa-meeting-reserve:export')")
+    @ApiAccessLog(operateType = EXPORT)
+    public void exportOaMeetingReserveExcel(@Valid OaMeetingReservePageReqVO pageReqVO,
+              HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<OaMeetingReserveDO> list = oaMeetingReserveService.getOaMeetingReservePage(pageReqVO).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "会议室预定管理信息.xls", "数据", OaMeetingReserveRespVO.class,
+                        BeanUtils.toBean(list, OaMeetingReserveRespVO.class));
+    }
+
+}

+ 66 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/meeting/reserve/vo/OaMeetingReservePageReqVO.java

@@ -0,0 +1,66 @@
+package cn.iocoder.yudao.module.bpm.controller.admin.meeting.reserve.vo;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 会议室预定管理信息分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class OaMeetingReservePageReqVO extends PageParam {
+
+    @Schema(description = "预定uuid", example = "22540")
+    private String reserveUuid;
+
+    @Schema(description = "会议室id", example = "4529")
+    private Long roomId;
+
+    @Schema(description = "会议室uuid", example = "7575")
+    private Long roomUuid;
+
+    @Schema(description = "会议名称", example = "赵六")
+    private String meetingName;
+
+    @Schema(description = "会议开始时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private String[] startTime;
+
+    @Schema(description = "会议结束时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private String[] endTime;
+
+    @Schema(description = "申请人id", example = "4108")
+    private Long applyEmployeeId;
+
+    @Schema(description = "申请人手机号")
+    private String applyEmployeePhone;
+
+    @Schema(description = "申请人部门", example = "6719")
+    private String deptId;
+
+    @Schema(description = "参会人数")
+    private String number;
+
+    @Schema(description = "参会人员id,逗号分隔")
+    private String participants;
+
+    @Schema(description = "发送类型:1站内信 2短信 3邮件,目前仅1启用", example = "2")
+    private String sendType;
+
+    @Schema(description = "会议预定状态:1未开始 2进行中 3已结束 4已取消", example = "2")
+    private String status;
+
+    @Schema(description = "会议内容")
+    private String meetingContent;
+
+    @Schema(description = "创建时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] createTime;
+
+}

+ 80 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/meeting/reserve/vo/OaMeetingReserveRespVO.java

@@ -0,0 +1,80 @@
+package cn.iocoder.yudao.module.bpm.controller.admin.meeting.reserve.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import java.util.*;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 会议室预定管理信息 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class OaMeetingReserveRespVO {
+
+    @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "11723")
+    @ExcelProperty("主键id")
+    private Long id;
+
+    @Schema(description = "预定uuid", example = "22540")
+    @ExcelProperty("预定uuid")
+    private String reserveUuid;
+
+    @Schema(description = "会议室id", example = "4529")
+    @ExcelProperty("会议室id")
+    private Long roomId;
+
+    @Schema(description = "会议室uuid", example = "7575")
+    @ExcelProperty("会议室uuid")
+    private Long roomUuid;
+
+    @Schema(description = "会议名称", example = "赵六")
+    @ExcelProperty("会议名称")
+    private String meetingName;
+
+    @Schema(description = "会议开始时间")
+    @ExcelProperty("会议开始时间")
+    private String startTime;
+
+    @Schema(description = "会议结束时间")
+    @ExcelProperty("会议结束时间")
+    private String endTime;
+
+    @Schema(description = "申请人id", example = "4108")
+    @ExcelProperty("申请人id")
+    private Long applyEmployeeId;
+
+    @Schema(description = "申请人手机号")
+    @ExcelProperty("申请人手机号")
+    private String applyEmployeePhone;
+
+    @Schema(description = "申请人部门", example = "6719")
+    @ExcelProperty("申请人部门")
+    private String deptId;
+
+    @Schema(description = "参会人数")
+    @ExcelProperty("参会人数")
+    private String number;
+
+    @Schema(description = "参会人员id,逗号分隔")
+    @ExcelProperty("参会人员id,逗号分隔")
+    private String participants;
+
+    @Schema(description = "发送类型:1站内信 2短信 3邮件,目前仅1启用", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    @ExcelProperty("发送类型:1站内信 2短信 3邮件,目前仅1启用")
+    private String sendType;
+
+    @Schema(description = "会议预定状态:1未开始 2进行中 3已结束 4已取消", example = "2")
+    @ExcelProperty("会议预定状态:1未开始 2进行中 3已结束 4已取消")
+    private String status;
+
+    @Schema(description = "会议内容")
+    @ExcelProperty("会议内容")
+    private String meetingContent;
+
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+
+}

+ 33 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/meeting/reserve/vo/OaMeetingReserveSaveReqVO.java

@@ -0,0 +1,33 @@
+package cn.iocoder.yudao.module.bpm.controller.admin.meeting.reserve.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import javax.validation.constraints.*;
+
+@Schema(description = "管理后台 - 会议室预定管理信息新增/修改 Request VO")
+@Data
+public class OaMeetingReserveSaveReqVO {
+
+    @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "11723")
+    private Long id;
+
+    @Schema(description = "会议室id", example = "4529")
+    private Long roomId;
+
+    @Schema(description = "会议名称", example = "赵六")
+    private String meetingName;
+
+    @Schema(description = "会议开始时间")
+    private String startTime;
+
+    @Schema(description = "会议结束时间")
+    private String endTime;
+
+    @Schema(description = "参会人员id,逗号分隔")
+    private String participants;
+
+    @Schema(description = "会议内容")
+    private String meetingContent;
+
+}

+ 87 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/meeting/reserve/OaMeetingReserveDO.java

@@ -0,0 +1,87 @@
+package cn.iocoder.yudao.module.bpm.dal.dataobject.meeting.reserve;
+
+import lombok.*;
+import java.util.*;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 会议室预定管理信息 DO
+ *
+ * @author dp
+ */
+@TableName("bpm_oa_meeting_reserve")
+@KeySequence("bpm_oa_meeting_reserve_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OaMeetingReserveDO extends BaseDO {
+
+    /**
+     * 主键id
+     */
+    @TableId
+    private Long id;
+    /**
+     * 预定uuid
+     */
+    private String reserveUuid;
+    /**
+     * 会议室id
+     */
+    private Long roomId;
+    /**
+     * 会议室uuid
+     */
+    private Long roomUuid;
+    /**
+     * 会议名称
+     */
+    private String meetingName;
+    /**
+     * 会议开始时间
+     */
+    private String startTime;
+    /**
+     * 会议结束时间
+     */
+    private String endTime;
+    /**
+     * 申请人id
+     */
+    private Long applyEmployeeId;
+    /**
+     * 申请人手机号
+     */
+    private String applyEmployeePhone;
+    /**
+     * 申请人部门
+     */
+    private String deptId;
+    /**
+     * 参会人数
+     */
+    private String number;
+    /**
+     * 参会人员id,逗号分隔
+     */
+    private String participants;
+    /**
+     * 发送类型:1站内信 2短信 3邮件,目前仅1启用
+     */
+    private String sendType;
+    /**
+     * 会议预定状态:1未开始 2进行中 3已结束 4已取消
+     */
+    private String status;
+    /**
+     * 会议内容
+     */
+    private String meetingContent;
+
+}

+ 38 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/meeting/reserve/OaMeetingReserveMapper.java

@@ -0,0 +1,38 @@
+package cn.iocoder.yudao.module.bpm.dal.mysql.meeting.reserve;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.module.bpm.controller.admin.meeting.reserve.vo.OaMeetingReservePageReqVO;
+import cn.iocoder.yudao.module.bpm.dal.dataobject.meeting.reserve.OaMeetingReserveDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 会议室预定管理信息 Mapper
+ *
+ * @author dp
+ */
+@Mapper
+public interface OaMeetingReserveMapper extends BaseMapperX<OaMeetingReserveDO> {
+
+    default PageResult<OaMeetingReserveDO> selectPage(OaMeetingReservePageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<OaMeetingReserveDO>()
+                .eqIfPresent(OaMeetingReserveDO::getReserveUuid, reqVO.getReserveUuid())
+                .eqIfPresent(OaMeetingReserveDO::getRoomId, reqVO.getRoomId())
+                .eqIfPresent(OaMeetingReserveDO::getRoomUuid, reqVO.getRoomUuid())
+                .likeIfPresent(OaMeetingReserveDO::getMeetingName, reqVO.getMeetingName())
+                .betweenIfPresent(OaMeetingReserveDO::getStartTime, reqVO.getStartTime())
+                .betweenIfPresent(OaMeetingReserveDO::getEndTime, reqVO.getEndTime())
+                .eqIfPresent(OaMeetingReserveDO::getApplyEmployeeId, reqVO.getApplyEmployeeId())
+                .eqIfPresent(OaMeetingReserveDO::getApplyEmployeePhone, reqVO.getApplyEmployeePhone())
+                .eqIfPresent(OaMeetingReserveDO::getDeptId, reqVO.getDeptId())
+                .eqIfPresent(OaMeetingReserveDO::getNumber, reqVO.getNumber())
+                .eqIfPresent(OaMeetingReserveDO::getParticipants, reqVO.getParticipants())
+                .eqIfPresent(OaMeetingReserveDO::getSendType, reqVO.getSendType())
+                .eqIfPresent(OaMeetingReserveDO::getStatus, reqVO.getStatus())
+                .eqIfPresent(OaMeetingReserveDO::getMeetingContent, reqVO.getMeetingContent())
+                .betweenIfPresent(OaMeetingReserveDO::getCreateTime, reqVO.getCreateTime())
+                .orderByDesc(OaMeetingReserveDO::getId));
+    }
+
+}

+ 55 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/meeting/reserve/OaMeetingReserveService.java

@@ -0,0 +1,55 @@
+package cn.iocoder.yudao.module.bpm.service.meeting.reserve;
+
+import javax.validation.*;
+
+import cn.iocoder.yudao.module.bpm.controller.admin.meeting.reserve.vo.OaMeetingReservePageReqVO;
+import cn.iocoder.yudao.module.bpm.controller.admin.meeting.reserve.vo.OaMeetingReserveSaveReqVO;
+import cn.iocoder.yudao.module.bpm.dal.dataobject.meeting.reserve.OaMeetingReserveDO;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+
+/**
+ * 会议室预定管理信息 Service 接口
+ *
+ * @author dp
+ */
+public interface OaMeetingReserveService {
+
+    /**
+     * 创建会议室预定管理信息
+     *
+     * @param createReqVO 创建信息
+     * @return 编号
+     */
+    Long createOaMeetingReserve(@Valid OaMeetingReserveSaveReqVO createReqVO);
+
+    /**
+     * 更新会议室预定管理信息
+     *
+     * @param updateReqVO 更新信息
+     */
+    void updateOaMeetingReserve(@Valid OaMeetingReserveSaveReqVO updateReqVO);
+
+    /**
+     * 删除会议室预定管理信息
+     *
+     * @param id 编号
+     */
+    void deleteOaMeetingReserve(Long id);
+
+    /**
+     * 获得会议室预定管理信息
+     *
+     * @param id 编号
+     * @return 会议室预定管理信息
+     */
+    OaMeetingReserveDO getOaMeetingReserve(Long id);
+
+    /**
+     * 获得会议室预定管理信息分页
+     *
+     * @param pageReqVO 分页查询
+     * @return 会议室预定管理信息分页
+     */
+    PageResult<OaMeetingReserveDO> getOaMeetingReservePage(OaMeetingReservePageReqVO pageReqVO);
+
+}

+ 72 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/meeting/reserve/OaMeetingReserveServiceImpl.java

@@ -0,0 +1,72 @@
+package cn.iocoder.yudao.module.bpm.service.meeting.reserve;
+
+import cn.iocoder.yudao.module.bpm.controller.admin.meeting.reserve.vo.OaMeetingReservePageReqVO;
+import cn.iocoder.yudao.module.bpm.controller.admin.meeting.reserve.vo.OaMeetingReserveSaveReqVO;
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+
+import cn.iocoder.yudao.module.bpm.dal.dataobject.meeting.reserve.OaMeetingReserveDO;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+
+import cn.iocoder.yudao.module.bpm.dal.mysql.meeting.reserve.OaMeetingReserveMapper;
+
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*;
+
+/**
+ * 会议室预定管理信息 Service 实现类
+ *
+ * @author dp
+ */
+@Service
+@Validated
+public class OaMeetingReserveServiceImpl implements OaMeetingReserveService {
+
+    @Resource
+    private OaMeetingReserveMapper oaMeetingReserveMapper;
+
+    @Override
+    public Long createOaMeetingReserve(OaMeetingReserveSaveReqVO createReqVO) {
+        // 插入
+        OaMeetingReserveDO oaMeetingReserve = BeanUtils.toBean(createReqVO, OaMeetingReserveDO.class);
+        oaMeetingReserveMapper.insert(oaMeetingReserve);
+        // 返回
+        return oaMeetingReserve.getId();
+    }
+
+    @Override
+    public void updateOaMeetingReserve(OaMeetingReserveSaveReqVO updateReqVO) {
+        // 校验存在
+        validateOaMeetingReserveExists(updateReqVO.getId());
+        // 更新
+        OaMeetingReserveDO updateObj = BeanUtils.toBean(updateReqVO, OaMeetingReserveDO.class);
+        oaMeetingReserveMapper.updateById(updateObj);
+    }
+
+    @Override
+    public void deleteOaMeetingReserve(Long id) {
+        // 校验存在
+        validateOaMeetingReserveExists(id);
+        // 删除
+        oaMeetingReserveMapper.deleteById(id);
+    }
+
+    private void validateOaMeetingReserveExists(Long id) {
+        if (oaMeetingReserveMapper.selectById(id) == null) {
+            throw exception(OA_MEETING_RESERVE_NOT_EXISTS);
+        }
+    }
+
+    @Override
+    public OaMeetingReserveDO getOaMeetingReserve(Long id) {
+        return oaMeetingReserveMapper.selectById(id);
+    }
+
+    @Override
+    public PageResult<OaMeetingReserveDO> getOaMeetingReservePage(OaMeetingReservePageReqVO pageReqVO) {
+        return oaMeetingReserveMapper.selectPage(pageReqVO);
+    }
+
+}

+ 12 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/resources/mapper/meeting/reserve/OaMeetingReserveMapper.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.iocoder.yudao.module.bpm.dal.mysql.meeting.reserve.OaMeetingReserveMapper">
+
+    <!--
+        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
+        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
+        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
+        文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
+     -->
+
+</mapper>