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 QUEUE_SEQUENCE_NOT_EXISTS = new ErrorCode(1_010_010_000, "å½å¤©åºå·ä¸åå¨"); } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queuesequence/QueueSequenceController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,95 @@ package cn.lihu.jh.module.ecg.controller.admin.queuesequence; import org.springframework.web.bind.annotation.*; 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 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.ecg.controller.admin.queuesequence.vo.*; import cn.lihu.jh.module.ecg.dal.dataobject.queuesequence.QueueSequenceDO; import cn.lihu.jh.module.ecg.service.queuesequence.QueueSequenceService; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; @Tag(name = "管çåå° - å½å¤©åºå·") @RestController @RequestMapping("/ecg/queue-sequence") @Validated public class QueueSequenceController { @Resource private QueueSequenceService queueSequenceService; @PostMapping("/create") @Operation(summary = "å建å½å¤©åºå·") @PreAuthorize("@ss.hasPermission('ecg:queue-sequence:create')") public CommonResult<Integer> createQueueSequence(@Valid @RequestBody QueueSequenceSaveReqVO createReqVO) { return success(queueSequenceService.createQueueSequence(createReqVO)); } @PutMapping("/update") @Operation(summary = "æ´æ°å½å¤©åºå·") @PreAuthorize("@ss.hasPermission('ecg:queue-sequence:update')") public CommonResult<Boolean> updateQueueSequence(@Valid @RequestBody QueueSequenceSaveReqVO updateReqVO) { queueSequenceService.updateQueueSequence(updateReqVO); return success(true); } @DeleteMapping("/delete") @Operation(summary = "å é¤å½å¤©åºå·") @Parameter(name = "id", description = "ç¼å·", required = true) @PreAuthorize("@ss.hasPermission('ecg:queue-sequence:delete')") public CommonResult<Boolean> deleteQueueSequence(@RequestParam("id") Integer id) { queueSequenceService.deleteQueueSequence(id); return success(true); } @GetMapping("/get") @Operation(summary = "è·å¾å½å¤©åºå·") @Parameter(name = "id", description = "ç¼å·", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('ecg:queue-sequence:query')") public CommonResult<QueueSequenceRespVO> getQueueSequence(@RequestParam("id") Integer id) { QueueSequenceDO queueSequence = queueSequenceService.getQueueSequence(id); return success(BeanUtils.toBean(queueSequence, QueueSequenceRespVO.class)); } @GetMapping("/page") @Operation(summary = "è·å¾å½å¤©åºå·å页") @PreAuthorize("@ss.hasPermission('ecg:queue-sequence:query')") public CommonResult<PageResult<QueueSequenceRespVO>> getQueueSequencePage(@Valid QueueSequencePageReqVO pageReqVO) { PageResult<QueueSequenceDO> pageResult = queueSequenceService.getQueueSequencePage(pageReqVO); return success(BeanUtils.toBean(pageResult, QueueSequenceRespVO.class)); } @GetMapping("/export-excel") @Operation(summary = "导åºå½å¤©åºå· Excel") @PreAuthorize("@ss.hasPermission('ecg:queue-sequence:export')") @ApiAccessLog(operateType = EXPORT) public void exportQueueSequenceExcel(@Valid QueueSequencePageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List<QueueSequenceDO> list = queueSequenceService.getQueueSequencePage(pageReqVO).getList(); // å¯¼åº Excel ExcelUtils.write(response, "å½å¤©åºå·.xls", "æ°æ®", QueueSequenceRespVO.class, BeanUtils.toBean(list, QueueSequenceRespVO.class)); } } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queuesequence/vo/QueueSequencePageReqVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,40 @@ package cn.lihu.jh.module.ecg.controller.admin.queuesequence.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 QueueSequencePageReqVO 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; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queuesequence/vo/QueueSequenceRespVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,47 @@ package cn.lihu.jh.module.ecg.controller.admin.queuesequence.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 QueueSequenceRespVO { @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; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queuesequence/vo/QueueSequenceSaveReqVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,32 @@ package cn.lihu.jh.module.ecg.controller.admin.queuesequence.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @Schema(description = "管çåå° - å½å¤©åºå·æ°å¢/ä¿®æ¹ Request VO") @Data public class QueueSequenceSaveReqVO { @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; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/queuesequence/QueueSequenceDO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,55 @@ package cn.lihu.jh.module.ecg.dal.dataobject.queuesequence; 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ãPostgreSQLãKingbaseãDB2ãH2 æ°æ®åºç主é®èªå¢ãå¦ææ¯ MySQL çæ°æ®åºï¼å¯ä¸åã @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) @Builder @NoArgsConstructor @AllArgsConstructor public class QueueSequenceDO 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; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queuesequence/QueueSequenceMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,32 @@ package cn.lihu.jh.module.ecg.dal.mysql.queuesequence; 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.ecg.dal.dataobject.queuesequence.QueueSequenceDO; import org.apache.ibatis.annotations.Mapper; import cn.lihu.jh.module.ecg.controller.admin.queuesequence.vo.*; /** * å½å¤©åºå· Mapper * * @author éåå»é¢ */ @Mapper public interface QueueSequenceMapper extends BaseMapperX<QueueSequenceDO> { default PageResult<QueueSequenceDO> selectPage(QueueSequencePageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX<QueueSequenceDO>() .eqIfPresent(QueueSequenceDO::getCheckType, reqVO.getCheckType()) .eqIfPresent(QueueSequenceDO::getTimeSlot, reqVO.getTimeSlot()) .eqIfPresent(QueueSequenceDO::getQueueNo, reqVO.getQueueNo()) .eqIfPresent(QueueSequenceDO::getQueueVipNo, reqVO.getQueueVipNo()) .eqIfPresent(QueueSequenceDO::getQueueFull, reqVO.getQueueFull()) .eqIfPresent(QueueSequenceDO::getQueueVipFull, reqVO.getQueueVipFull()) .betweenIfPresent(QueueSequenceDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(QueueSequenceDO::getId)); } } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queuesequence/QueueSequenceService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,56 @@ package cn.lihu.jh.module.ecg.service.queuesequence; import java.util.*; import cn.lihu.jh.module.ecg.controller.admin.queuesequence.vo.*; import cn.lihu.jh.module.ecg.dal.dataobject.queuesequence.QueueSequenceDO; import cn.lihu.jh.framework.common.pojo.PageResult; import cn.lihu.jh.framework.common.pojo.PageParam; import javax.validation.Valid; /** * å½å¤©åºå· Service æ¥å£ * * @author éåå»é¢ */ public interface QueueSequenceService { /** * å建å½å¤©åºå· * * @param createReqVO åå»ºä¿¡æ¯ * @return ç¼å· */ Integer createQueueSequence(@Valid QueueSequenceSaveReqVO createReqVO); /** * æ´æ°å½å¤©åºå· * * @param updateReqVO æ´æ°ä¿¡æ¯ */ void updateQueueSequence(@Valid QueueSequenceSaveReqVO updateReqVO); /** * å é¤å½å¤©åºå· * * @param id ç¼å· */ void deleteQueueSequence(Integer id); /** * è·å¾å½å¤©åºå· * * @param id ç¼å· * @return å½å¤©åºå· */ QueueSequenceDO getQueueSequence(Integer id); /** * è·å¾å½å¤©åºå·å页 * * @param pageReqVO å页æ¥è¯¢ * @return å½å¤©åºå·å页 */ PageResult<QueueSequenceDO> getQueueSequencePage(QueueSequencePageReqVO pageReqVO); } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queuesequence/QueueSequenceServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,75 @@ package cn.lihu.jh.module.ecg.service.queuesequence; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; import java.util.*; import cn.lihu.jh.module.ecg.controller.admin.queuesequence.vo.*; import cn.lihu.jh.module.ecg.dal.dataobject.queuesequence.QueueSequenceDO; 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.ecg.dal.mysql.queuesequence.QueueSequenceMapper; import javax.annotation.Resource; import static cn.lihu.jh.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.*; /** * å½å¤©åºå· Service å®ç°ç±» * * @author éåå»é¢ */ @Service @Validated public class QueueSequenceServiceImpl implements QueueSequenceService { @Resource private QueueSequenceMapper queueSequenceMapper; @Override public Integer createQueueSequence(QueueSequenceSaveReqVO createReqVO) { // æå ¥ QueueSequenceDO queueSequence = BeanUtils.toBean(createReqVO, QueueSequenceDO.class); queueSequenceMapper.insert(queueSequence); // è¿å return queueSequence.getId(); } @Override public void updateQueueSequence(QueueSequenceSaveReqVO updateReqVO) { // æ ¡éªåå¨ validateQueueSequenceExists(updateReqVO.getId()); // æ´æ° QueueSequenceDO updateObj = BeanUtils.toBean(updateReqVO, QueueSequenceDO.class); queueSequenceMapper.updateById(updateObj); } @Override public void deleteQueueSequence(Integer id) { // æ ¡éªåå¨ validateQueueSequenceExists(id); // å é¤ queueSequenceMapper.deleteById(id); } private void validateQueueSequenceExists(Integer id) { if (queueSequenceMapper.selectById(id) == null) { throw exception(QUEUE_SEQUENCE_NOT_EXISTS); } } @Override public QueueSequenceDO getQueueSequence(Integer id) { return queueSequenceMapper.selectById(id); } @Override public PageResult<QueueSequenceDO> getQueueSequencePage(QueueSequencePageReqVO pageReqVO) { return queueSequenceMapper.selectPage(pageReqVO); } } jh-module-ecg/jh-module-ecg-biz/src/main/resources/mapper/queuesequence/QueueSequenceMapper.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.ecg.dal.mysql.queuesequence.QueueSequenceMapper"> <!-- ä¸è¬æ åµä¸ï¼å°½å¯è½ä½¿ç¨ Mapper è¿è¡ CRUD å¢å æ¹æ¥å³å¯ã æ æ³æ»¡è¶³çåºæ¯ï¼ä¾å¦è¯´å¤è¡¨å ³èæ¥è¯¢ï¼æä½¿ç¨ XML ç¼å SQLã 代ç çæå¨ææ¶åªçæ Mapper XML æä»¶æ¬èº«ï¼æ´å¤æ¨è MybatisX å¿«éå¼åæä»¶æ¥çææ¥è¯¢ã ææ¡£å¯è§ï¼https://www.iocoder.cn/MyBatis/x-plugins/ --> </mapper>