From 134d92dab4033035e8ebe80b5d7c03468b40db38 Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期四, 07 十一月 2024 09:38:02 +0800
Subject: [PATCH] 新增 queue_sequence 表操作

---
 jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java                         |    2 
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/dal/dataobject/sequence/SequenceDO.java             |   55 ++++++
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/service/sequence/SequenceServiceImpl.java           |   74 +++++++++
 jh-module-ecg/jh-module-ecg-biz/src/main/resources/mapper/sequence/SequenceMapper.xml                                     |   12 +
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/controller/admin/sequence/vo/SequenceRespVO.java    |   47 +++++
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/service/sequence/SequenceService.java               |   55 ++++++
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/controller/admin/sequence/vo/SequencePageReqVO.java |   40 +++++
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/controller/admin/sequence/vo/SequenceSaveReqVO.java |   33 ++++
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/controller/admin/sequence/SequenceController.java   |   95 +++++++++++
 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/dal/mysql/sequence/SequenceMapper.java              |   32 ++++
 10 files changed, 445 insertions(+), 0 deletions(-)

diff --git a/jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java b/jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java
index 0469332..b1b00fd 100644
--- a/jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java
+++ b/jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java
@@ -54,4 +54,6 @@
     ErrorCode CALL_NOT_EXISTS = new ErrorCode(1_010_008_000, "鍙彿涓嶅瓨鍦�");
 
     ErrorCode CHECK_TYPE_NOT_EXISTS = new ErrorCode(1_010_009_000, "妫�鏌ョ被鍨嬩笉瀛樺湪");
+
+    ErrorCode SEQUENCE_NOT_EXISTS = new ErrorCode(1_010_010_000, "褰撳ぉ搴忓彿涓嶅瓨鍦�");
 }
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/controller/admin/sequence/SequenceController.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/controller/admin/sequence/SequenceController.java
new file mode 100644
index 0000000..04a88a5
--- /dev/null
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/controller/admin/sequence/SequenceController.java
@@ -0,0 +1,95 @@
+package cn.lihu.jh.module.queue.controller.admin.sequence;
+
+import org.springframework.web.bind.annotation.*;
+import jakarta.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 jakarta.validation.constraints.*;
+import jakarta.validation.*;
+import jakarta.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import cn.lihu.jh.framework.common.pojo.PageParam;
+import cn.lihu.jh.framework.common.pojo.PageResult;
+import cn.lihu.jh.framework.common.pojo.CommonResult;
+import cn.lihu.jh.framework.common.util.object.BeanUtils;
+import static cn.lihu.jh.framework.common.pojo.CommonResult.success;
+
+import cn.lihu.jh.framework.excel.core.util.ExcelUtils;
+
+import cn.lihu.jh.framework.apilog.core.annotation.ApiAccessLog;
+import static cn.lihu.jh.framework.apilog.core.enums.OperateTypeEnum.*;
+
+import cn.lihu.jh.module.queue.controller.admin.sequence.vo.*;
+import cn.lihu.jh.module.queue.dal.dataobject.sequence.SequenceDO;
+import cn.lihu.jh.module.queue.service.sequence.SequenceService;
+
+@Tag(name = "绠$悊鍚庡彴 - 褰撳ぉ搴忓彿")
+@RestController
+@RequestMapping("/queue/sequence")
+@Validated
+public class SequenceController {
+
+    @Resource
+    private SequenceService sequenceService;
+
+    @PostMapping("/create")
+    @Operation(summary = "鍒涘缓褰撳ぉ搴忓彿")
+    @PreAuthorize("@ss.hasPermission('queue:sequence:create')")
+    public CommonResult<Integer> createSequence(@Valid @RequestBody SequenceSaveReqVO createReqVO) {
+        return success(sequenceService.createSequence(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "鏇存柊褰撳ぉ搴忓彿")
+    @PreAuthorize("@ss.hasPermission('queue:sequence:update')")
+    public CommonResult<Boolean> updateSequence(@Valid @RequestBody SequenceSaveReqVO updateReqVO) {
+        sequenceService.updateSequence(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "鍒犻櫎褰撳ぉ搴忓彿")
+    @Parameter(name = "id", description = "缂栧彿", required = true)
+    @PreAuthorize("@ss.hasPermission('queue:sequence:delete')")
+    public CommonResult<Boolean> deleteSequence(@RequestParam("id") Integer id) {
+        sequenceService.deleteSequence(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "鑾峰緱褰撳ぉ搴忓彿")
+    @Parameter(name = "id", description = "缂栧彿", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('queue:sequence:query')")
+    public CommonResult<SequenceRespVO> getSequence(@RequestParam("id") Integer id) {
+        SequenceDO sequence = sequenceService.getSequence(id);
+        return success(BeanUtils.toBean(sequence, SequenceRespVO.class));
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "鑾峰緱褰撳ぉ搴忓彿鍒嗛〉")
+    @PreAuthorize("@ss.hasPermission('queue:sequence:query')")
+    public CommonResult<PageResult<SequenceRespVO>> getSequencePage(@Valid SequencePageReqVO pageReqVO) {
+        PageResult<SequenceDO> pageResult = sequenceService.getSequencePage(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, SequenceRespVO.class));
+    }
+
+    @GetMapping("/export-excel")
+    @Operation(summary = "瀵煎嚭褰撳ぉ搴忓彿 Excel")
+    @PreAuthorize("@ss.hasPermission('queue:sequence:export')")
+    @ApiAccessLog(operateType = EXPORT)
+    public void exportSequenceExcel(@Valid SequencePageReqVO pageReqVO,
+              HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<SequenceDO> list = sequenceService.getSequencePage(pageReqVO).getList();
+        // 瀵煎嚭 Excel
+        ExcelUtils.write(response, "褰撳ぉ搴忓彿.xls", "鏁版嵁", SequenceRespVO.class,
+                        BeanUtils.toBean(list, SequenceRespVO.class));
+    }
+
+}
\ No newline at end of file
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/controller/admin/sequence/vo/SequencePageReqVO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/controller/admin/sequence/vo/SequencePageReqVO.java
new file mode 100644
index 0000000..257f5ba
--- /dev/null
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/controller/admin/sequence/vo/SequencePageReqVO.java
@@ -0,0 +1,40 @@
+package cn.lihu.jh.module.queue.controller.admin.sequence.vo;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import cn.lihu.jh.framework.common.pojo.PageParam;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.time.LocalDateTime;
+
+import static cn.lihu.jh.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 SequencePageReqVO extends PageParam {
+
+    @Schema(description = "妫�鏌ョ被鍨�", example = "2")
+    private Integer checkType;
+
+    @Schema(description = "鏃舵")
+    private Integer timeSlot;
+
+    @Schema(description = "璇ユ椂娈� 鏅�氭偅鑰� 搴忓彿")
+    private Integer queueNo;
+
+    @Schema(description = "璇ユ椂娈� vip 搴忓彿")
+    private Integer queueVipNo;
+
+    @Schema(description = "璇ユ椂娈� 鏅�氭偅鑰� 搴忓彿婊�")
+    private Integer queueFull;
+
+    @Schema(description = "璇ユ椂娈� vip 搴忓彿婊�")
+    private Integer queueVipFull;
+
+    @Schema(description = "鍒涘缓鏃堕棿")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] createTime;
+
+}
\ No newline at end of file
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/controller/admin/sequence/vo/SequenceRespVO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/controller/admin/sequence/vo/SequenceRespVO.java
new file mode 100644
index 0000000..4ca8062
--- /dev/null
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/controller/admin/sequence/vo/SequenceRespVO.java
@@ -0,0 +1,47 @@
+package cn.lihu.jh.module.queue.controller.admin.sequence.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+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 SequenceRespVO {
+
+    @Schema(description = "DB 涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED, example = "11958")
+    @ExcelProperty("DB 涓婚敭")
+    private Integer id;
+
+    @Schema(description = "妫�鏌ョ被鍨�", example = "2")
+    @ExcelProperty("妫�鏌ョ被鍨�")
+    private Integer checkType;
+
+    @Schema(description = "鏃舵")
+    @ExcelProperty("鏃舵")
+    private Integer timeSlot;
+
+    @Schema(description = "璇ユ椂娈� 鏅�氭偅鑰� 搴忓彿")
+    @ExcelProperty("璇ユ椂娈� 鏅�氭偅鑰� 搴忓彿")
+    private Integer queueNo;
+
+    @Schema(description = "璇ユ椂娈� vip 搴忓彿")
+    @ExcelProperty("璇ユ椂娈� vip 搴忓彿")
+    private Integer queueVipNo;
+
+    @Schema(description = "璇ユ椂娈� 鏅�氭偅鑰� 搴忓彿婊�")
+    @ExcelProperty("璇ユ椂娈� 鏅�氭偅鑰� 搴忓彿婊�")
+    private Integer queueFull;
+
+    @Schema(description = "璇ユ椂娈� vip 搴忓彿婊�")
+    @ExcelProperty("璇ユ椂娈� vip 搴忓彿婊�")
+    private Integer queueVipFull;
+
+    @Schema(description = "鍒涘缓鏃堕棿", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("鍒涘缓鏃堕棿")
+    private LocalDateTime createTime;
+
+}
\ No newline at end of file
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/controller/admin/sequence/vo/SequenceSaveReqVO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/controller/admin/sequence/vo/SequenceSaveReqVO.java
new file mode 100644
index 0000000..b7f8b04
--- /dev/null
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/controller/admin/sequence/vo/SequenceSaveReqVO.java
@@ -0,0 +1,33 @@
+package cn.lihu.jh.module.queue.controller.admin.sequence.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import jakarta.validation.constraints.*;
+
+@Schema(description = "绠$悊鍚庡彴 - 褰撳ぉ搴忓彿鏂板/淇敼 Request VO")
+@Data
+public class SequenceSaveReqVO {
+
+    @Schema(description = "DB 涓婚敭", requiredMode = Schema.RequiredMode.REQUIRED, example = "11958")
+    private Integer id;
+
+    @Schema(description = "妫�鏌ョ被鍨�", example = "2")
+    private Integer checkType;
+
+    @Schema(description = "鏃舵")
+    private Integer timeSlot;
+
+    @Schema(description = "璇ユ椂娈� 鏅�氭偅鑰� 搴忓彿")
+    private Integer queueNo;
+
+    @Schema(description = "璇ユ椂娈� vip 搴忓彿")
+    private Integer queueVipNo;
+
+    @Schema(description = "璇ユ椂娈� 鏅�氭偅鑰� 搴忓彿婊�")
+    private Integer queueFull;
+
+    @Schema(description = "璇ユ椂娈� vip 搴忓彿婊�")
+    private Integer queueVipFull;
+
+}
\ No newline at end of file
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/dal/dataobject/sequence/SequenceDO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/dal/dataobject/sequence/SequenceDO.java
new file mode 100644
index 0000000..40d750c
--- /dev/null
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/dal/dataobject/sequence/SequenceDO.java
@@ -0,0 +1,55 @@
+package cn.lihu.jh.module.queue.dal.dataobject.sequence;
+
+import lombok.*;
+import java.util.*;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import cn.lihu.jh.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 褰撳ぉ搴忓彿 DO
+ *
+ * @author 閲戝崕鍖婚櫌
+ */
+@TableName("queue_sequence")
+@KeySequence("queue_sequence_seq") // 鐢ㄤ簬 Oracle銆丳ostgreSQL銆並ingbase銆丏B2銆丠2 鏁版嵁搴撶殑涓婚敭鑷銆傚鏋滄槸 MySQL 绛夋暟鎹簱锛屽彲涓嶅啓銆�
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class SequenceDO extends BaseDO {
+
+    /**
+     * DB 涓婚敭
+     */
+    @TableId
+    private Integer id;
+    /**
+     * 妫�鏌ョ被鍨�
+     */
+    private Integer checkType;
+    /**
+     * 鏃舵
+     */
+    private Integer timeSlot;
+    /**
+     * 璇ユ椂娈� 鏅�氭偅鑰� 搴忓彿
+     */
+    private Integer queueNo;
+    /**
+     * 璇ユ椂娈� vip 搴忓彿
+     */
+    private Integer queueVipNo;
+    /**
+     * 璇ユ椂娈� 鏅�氭偅鑰� 搴忓彿婊�
+     */
+    private Integer queueFull;
+    /**
+     * 璇ユ椂娈� vip 搴忓彿婊�
+     */
+    private Integer queueVipFull;
+
+}
\ No newline at end of file
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/dal/mysql/sequence/SequenceMapper.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/dal/mysql/sequence/SequenceMapper.java
new file mode 100644
index 0000000..76c0c08
--- /dev/null
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/dal/mysql/sequence/SequenceMapper.java
@@ -0,0 +1,32 @@
+package cn.lihu.jh.module.queue.dal.mysql.sequence;
+
+import java.util.*;
+
+import cn.lihu.jh.framework.common.pojo.PageResult;
+import cn.lihu.jh.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.lihu.jh.framework.mybatis.core.mapper.BaseMapperX;
+import cn.lihu.jh.module.queue.dal.dataobject.sequence.SequenceDO;
+import org.apache.ibatis.annotations.Mapper;
+import cn.lihu.jh.module.queue.controller.admin.sequence.vo.*;
+
+/**
+ * 褰撳ぉ搴忓彿 Mapper
+ *
+ * @author 閲戝崕鍖婚櫌
+ */
+@Mapper
+public interface SequenceMapper extends BaseMapperX<SequenceDO> {
+
+    default PageResult<SequenceDO> selectPage(SequencePageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<SequenceDO>()
+                .eqIfPresent(SequenceDO::getCheckType, reqVO.getCheckType())
+                .eqIfPresent(SequenceDO::getTimeSlot, reqVO.getTimeSlot())
+                .eqIfPresent(SequenceDO::getQueueNo, reqVO.getQueueNo())
+                .eqIfPresent(SequenceDO::getQueueVipNo, reqVO.getQueueVipNo())
+                .eqIfPresent(SequenceDO::getQueueFull, reqVO.getQueueFull())
+                .eqIfPresent(SequenceDO::getQueueVipFull, reqVO.getQueueVipFull())
+                .betweenIfPresent(SequenceDO::getCreateTime, reqVO.getCreateTime())
+                .orderByDesc(SequenceDO::getId));
+    }
+
+}
\ No newline at end of file
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/service/sequence/SequenceService.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/service/sequence/SequenceService.java
new file mode 100644
index 0000000..acc4dee
--- /dev/null
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/service/sequence/SequenceService.java
@@ -0,0 +1,55 @@
+package cn.lihu.jh.module.queue.service.sequence;
+
+import java.util.*;
+import jakarta.validation.*;
+import cn.lihu.jh.module.queue.controller.admin.sequence.vo.*;
+import cn.lihu.jh.module.queue.dal.dataobject.sequence.SequenceDO;
+import cn.lihu.jh.framework.common.pojo.PageResult;
+import cn.lihu.jh.framework.common.pojo.PageParam;
+
+/**
+ * 褰撳ぉ搴忓彿 Service 鎺ュ彛
+ *
+ * @author 閲戝崕鍖婚櫌
+ */
+public interface SequenceService {
+
+    /**
+     * 鍒涘缓褰撳ぉ搴忓彿
+     *
+     * @param createReqVO 鍒涘缓淇℃伅
+     * @return 缂栧彿
+     */
+    Integer createSequence(@Valid SequenceSaveReqVO createReqVO);
+
+    /**
+     * 鏇存柊褰撳ぉ搴忓彿
+     *
+     * @param updateReqVO 鏇存柊淇℃伅
+     */
+    void updateSequence(@Valid SequenceSaveReqVO updateReqVO);
+
+    /**
+     * 鍒犻櫎褰撳ぉ搴忓彿
+     *
+     * @param id 缂栧彿
+     */
+    void deleteSequence(Integer id);
+
+    /**
+     * 鑾峰緱褰撳ぉ搴忓彿
+     *
+     * @param id 缂栧彿
+     * @return 褰撳ぉ搴忓彿
+     */
+    SequenceDO getSequence(Integer id);
+
+    /**
+     * 鑾峰緱褰撳ぉ搴忓彿鍒嗛〉
+     *
+     * @param pageReqVO 鍒嗛〉鏌ヨ
+     * @return 褰撳ぉ搴忓彿鍒嗛〉
+     */
+    PageResult<SequenceDO> getSequencePage(SequencePageReqVO pageReqVO);
+
+}
\ No newline at end of file
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/service/sequence/SequenceServiceImpl.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/service/sequence/SequenceServiceImpl.java
new file mode 100644
index 0000000..d0477de
--- /dev/null
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/queue/service/sequence/SequenceServiceImpl.java
@@ -0,0 +1,74 @@
+package cn.lihu.jh.module.queue.service.sequence;
+
+import org.springframework.stereotype.Service;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import cn.lihu.jh.module.queue.controller.admin.sequence.vo.*;
+import cn.lihu.jh.module.queue.dal.dataobject.sequence.SequenceDO;
+import cn.lihu.jh.framework.common.pojo.PageResult;
+import cn.lihu.jh.framework.common.pojo.PageParam;
+import cn.lihu.jh.framework.common.util.object.BeanUtils;
+
+import cn.lihu.jh.module.queue.dal.mysql.sequence.SequenceMapper;
+
+import static cn.lihu.jh.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.lihu.jh.module.queue.enums.ErrorCodeConstants.*;
+
+/**
+ * 褰撳ぉ搴忓彿 Service 瀹炵幇绫�
+ *
+ * @author 閲戝崕鍖婚櫌
+ */
+@Service
+@Validated
+public class SequenceServiceImpl implements SequenceService {
+
+    @Resource
+    private SequenceMapper sequenceMapper;
+
+    @Override
+    public Integer createSequence(SequenceSaveReqVO createReqVO) {
+        // 鎻掑叆
+        SequenceDO sequence = BeanUtils.toBean(createReqVO, SequenceDO.class);
+        sequenceMapper.insert(sequence);
+        // 杩斿洖
+        return sequence.getId();
+    }
+
+    @Override
+    public void updateSequence(SequenceSaveReqVO updateReqVO) {
+        // 鏍¢獙瀛樺湪
+        validateSequenceExists(updateReqVO.getId());
+        // 鏇存柊
+        SequenceDO updateObj = BeanUtils.toBean(updateReqVO, SequenceDO.class);
+        sequenceMapper.updateById(updateObj);
+    }
+
+    @Override
+    public void deleteSequence(Integer id) {
+        // 鏍¢獙瀛樺湪
+        validateSequenceExists(id);
+        // 鍒犻櫎
+        sequenceMapper.deleteById(id);
+    }
+
+    private void validateSequenceExists(Integer id) {
+        if (sequenceMapper.selectById(id) == null) {
+            throw exception(SEQUENCE_NOT_EXISTS);
+        }
+    }
+
+    @Override
+    public SequenceDO getSequence(Integer id) {
+        return sequenceMapper.selectById(id);
+    }
+
+    @Override
+    public PageResult<SequenceDO> getSequencePage(SequencePageReqVO pageReqVO) {
+        return sequenceMapper.selectPage(pageReqVO);
+    }
+
+}
\ No newline at end of file
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/resources/mapper/sequence/SequenceMapper.xml b/jh-module-ecg/jh-module-ecg-biz/src/main/resources/mapper/sequence/SequenceMapper.xml
new file mode 100644
index 0000000..5c78efb
--- /dev/null
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/resources/mapper/sequence/SequenceMapper.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.lihu.jh.module.queue.dal.mysql.sequence.SequenceMapper">
+
+    <!--
+        涓�鑸儏鍐典笅锛屽敖鍙兘浣跨敤 Mapper 杩涜 CRUD 澧炲垹鏀规煡鍗冲彲銆�
+        鏃犳硶婊¤冻鐨勫満鏅紝渚嬪璇村琛ㄥ叧鑱旀煡璇紝鎵嶄娇鐢� XML 缂栧啓 SQL銆�
+        浠g爜鐢熸垚鍣ㄦ殏鏃跺彧鐢熸垚 Mapper XML 鏂囦欢鏈韩锛屾洿澶氭帹鑽� MybatisX 蹇�熷紑鍙戞彃浠舵潵鐢熸垚鏌ヨ銆�
+        鏂囨。鍙锛歨ttps://www.iocoder.cn/MyBatis/x-plugins/
+     -->
+
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.3