jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java
@@ -10,5 +10,6 @@ public interface ErrorCodeConstants { ErrorCode APPOINTMENT_NOT_EXISTS = new ErrorCode(1_010_000_000, "é¢çº¦ä¸åå¨"); ErrorCode ROOM_NOT_EXISTS = new ErrorCode(1_010_000_001, "è¯å®¤åè¯çåºä¸åå¨"); ErrorCode ROOM_NOT_EXISTS = new ErrorCode(1_010_001_000, "è¯å®¤åè¯çåºä¸åå¨"); ErrorCode QUEUE_NOT_EXISTS = new ErrorCode(1_010_002_000, "æéä¸åå¨"); } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queue/queueController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,95 @@ package cn.lihu.jh.module.ecg.controller.admin.queue; 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.queue.vo.*; import cn.lihu.jh.module.ecg.dal.dataobject.queue.queueDO; import cn.lihu.jh.module.ecg.service.queue.queueService; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import javax.annotation.Resource; @Tag(name = "管çåå° - æé") @RestController @RequestMapping("/ecg/queue") @Validated public class queueController { @Resource private queueService queueService; @PostMapping("/create") @Operation(summary = "å建æé") @PreAuthorize("@ss.hasPermission('ecg:queue:create')") public CommonResult<Integer> createqueue(@Valid @RequestBody queueSaveReqVO createReqVO) { return success(queueService.createqueue(createReqVO)); } @PutMapping("/update") @Operation(summary = "æ´æ°æé") @PreAuthorize("@ss.hasPermission('ecg:queue:update')") public CommonResult<Boolean> updatequeue(@Valid @RequestBody queueSaveReqVO updateReqVO) { queueService.updatequeue(updateReqVO); return success(true); } @DeleteMapping("/delete") @Operation(summary = "å 餿é") @Parameter(name = "id", description = "ç¼å·", required = true) @PreAuthorize("@ss.hasPermission('ecg:queue:delete')") public CommonResult<Boolean> deletequeue(@RequestParam("id") Integer id) { queueService.deletequeue(id); return success(true); } @GetMapping("/get") @Operation(summary = "è·å¾æé") @Parameter(name = "id", description = "ç¼å·", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('ecg:queue:query')") public CommonResult<queueRespVO> getqueue(@RequestParam("id") Integer id) { queueDO queue = queueService.getqueue(id); return success(BeanUtils.toBean(queue, queueRespVO.class)); } @GetMapping("/page") @Operation(summary = "è·å¾æéå页") @PreAuthorize("@ss.hasPermission('ecg:queue:query')") public CommonResult<PageResult<queueRespVO>> getqueuePage(@Valid queuePageReqVO pageReqVO) { PageResult<queueDO> pageResult = queueService.getqueuePage(pageReqVO); return success(BeanUtils.toBean(pageResult, queueRespVO.class)); } @GetMapping("/export-excel") @Operation(summary = "å¯¼åºæé Excel") @PreAuthorize("@ss.hasPermission('ecg:queue:export')") @ApiAccessLog(operateType = EXPORT) public void exportqueueExcel(@Valid queuePageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List<queueDO> list = queueService.getqueuePage(pageReqVO).getList(); // å¯¼åº Excel ExcelUtils.write(response, "æé.xls", "æ°æ®", queueRespVO.class, BeanUtils.toBean(list, queueRespVO.class)); } } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queue/vo/queuePageReqVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,55 @@ package cn.lihu.jh.module.ecg.controller.admin.queue.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 queuePageReqVO extends PageParam { @Schema(description = "æ£è ç¼å·", example = "30473") private String patId; @Schema(description = "æ£è å§å", example = "èè¿") private String patName; @Schema(description = "æ£è æ§å«") private Boolean patGender; @Schema(description = "é¢çº¦æ¶é´æ®µ") private Integer bookTimeslot; @Schema(description = "é¢çº¦æ£æ¥ç±»å", example = "1") private Boolean bookCheckType; @Schema(description = "æéåºå·") private Integer seqNum; @Schema(description = "10:æéä¸ 20:åè¯åå¤ 30:å°±è¯ä¸ 40:å°±è¯å®æ 50:è¿å· 60:è¿æ", example = "1") private Boolean status; @Schema(description = "è¿å·æ è®°") private Boolean passed; @Schema(description = "é¢çº¦è¿ææ è®°") private Boolean expired; @Schema(description = "è¯å®¤ç¼å·") private String roomNum; @Schema(description = "è¯çåºç¼å·") private String bedNum; @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/queue/vo/queueRespVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,67 @@ package cn.lihu.jh.module.ecg.controller.admin.queue.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 queueRespVO { @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "21320") @ExcelProperty("id") private Integer id; @Schema(description = "æ£è ç¼å·", requiredMode = Schema.RequiredMode.REQUIRED, example = "30473") @ExcelProperty("æ£è ç¼å·") private String patId; @Schema(description = "æ£è å§å", requiredMode = Schema.RequiredMode.REQUIRED, example = "èè¿") @ExcelProperty("æ£è å§å") private String patName; @Schema(description = "æ£è æ§å«") @ExcelProperty("æ£è æ§å«") private Boolean patGender; @Schema(description = "é¢çº¦æ¶é´æ®µ", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("é¢çº¦æ¶é´æ®µ") private Integer bookTimeslot; @Schema(description = "é¢çº¦æ£æ¥ç±»å", example = "1") @ExcelProperty("é¢çº¦æ£æ¥ç±»å") private Boolean bookCheckType; @Schema(description = "æéåºå·", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("æéåºå·") private Integer seqNum; @Schema(description = "10:æéä¸ 20:åè¯åå¤ 30:å°±è¯ä¸ 40:å°±è¯å®æ 50:è¿å· 60:è¿æ", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @ExcelProperty("10:æéä¸ 20:åè¯åå¤ 30:å°±è¯ä¸ 40:å°±è¯å®æ 50:è¿å· 60:è¿æ") private Boolean status; @Schema(description = "è¿å·æ è®°", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("è¿å·æ è®°") private Boolean passed; @Schema(description = "é¢çº¦è¿ææ è®°", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("é¢çº¦è¿ææ è®°") private Boolean expired; @Schema(description = "è¯å®¤ç¼å·") @ExcelProperty("è¯å®¤ç¼å·") private String roomNum; @Schema(description = "è¯çåºç¼å·") @ExcelProperty("è¯çåºç¼å·") private String bedNum; @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/queue/vo/queueSaveReqVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,58 @@ package cn.lihu.jh.module.ecg.controller.admin.queue.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.util.*; @Schema(description = "管çåå° - æéæ°å¢/ä¿®æ¹ Request VO") @Data public class queueSaveReqVO { @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "21320") private Integer id; @Schema(description = "æ£è ç¼å·", requiredMode = Schema.RequiredMode.REQUIRED, example = "30473") @NotEmpty(message = "æ£è ç¼å·ä¸è½ä¸ºç©º") private String patId; @Schema(description = "æ£è å§å", requiredMode = Schema.RequiredMode.REQUIRED, example = "èè¿") @NotEmpty(message = "æ£è å§åä¸è½ä¸ºç©º") private String patName; @Schema(description = "æ£è æ§å«") private Boolean patGender; @Schema(description = "é¢çº¦æ¶é´æ®µ", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "é¢çº¦æ¶é´æ®µä¸è½ä¸ºç©º") private Integer bookTimeslot; @Schema(description = "é¢çº¦æ£æ¥ç±»å", example = "1") private Boolean bookCheckType; @Schema(description = "æéåºå·", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "æéåºå·ä¸è½ä¸ºç©º") private Integer seqNum; @Schema(description = "10:æéä¸ 20:åè¯åå¤ 30:å°±è¯ä¸ 40:å°±è¯å®æ 50:è¿å· 60:è¿æ", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "10:æéä¸ 20:åè¯åå¤ 30:å°±è¯ä¸ 40:å°±è¯å®æ 50:è¿å· 60:è¿æä¸è½ä¸ºç©º") private Boolean status; @Schema(description = "è¿å·æ è®°", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "è¿å·æ è®°ä¸è½ä¸ºç©º") private Boolean passed; @Schema(description = "é¢çº¦è¿ææ è®°", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "é¢çº¦è¿ææ è®°ä¸è½ä¸ºç©º") private Boolean expired; @Schema(description = "è¯å®¤ç¼å·") private String roomNum; @Schema(description = "è¯çåºç¼å·") private String bedNum; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/queue/queueDO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,75 @@ package cn.lihu.jh.module.ecg.dal.dataobject.queue; 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") @KeySequence("queue_seq") // ç¨äº OracleãPostgreSQLãKingbaseãDB2ãH2 æ°æ®åºç主é®èªå¢ãå¦ææ¯ MySQL çæ°æ®åºï¼å¯ä¸åã @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) @Builder @NoArgsConstructor @AllArgsConstructor public class queueDO extends BaseDO { /** * id */ @TableId private Integer id; /** * æ£è ç¼å· */ private String patId; /** * æ£è å§å */ private String patName; /** * æ£è æ§å« */ private Boolean patGender; /** * é¢çº¦æ¶é´æ®µ */ private Integer bookTimeslot; /** * é¢çº¦æ£æ¥ç±»å */ private Boolean bookCheckType; /** * æéåºå· */ private Integer seqNum; /** * 10:æéä¸ 20:åè¯åå¤ 30:å°±è¯ä¸ 40:å°±è¯å®æ 50:è¿å· 60:è¿æ */ private Boolean status; /** * è¿å·æ è®° */ private Boolean passed; /** * é¢çº¦è¿ææ è®° */ private Boolean expired; /** * è¯å®¤ç¼å· */ private String roomNum; /** * è¯çåºç¼å· */ private String bedNum; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/queueMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,37 @@ package cn.lihu.jh.module.ecg.dal.mysql.queue; 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.queue.queueDO; import org.apache.ibatis.annotations.Mapper; import cn.lihu.jh.module.ecg.controller.admin.queue.vo.*; /** * æé Mapper * * @author èéæºç */ @Mapper public interface queueMapper extends BaseMapperX<queueDO> { default PageResult<queueDO> selectPage(queuePageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX<queueDO>() .eqIfPresent(queueDO::getPatId, reqVO.getPatId()) .likeIfPresent(queueDO::getPatName, reqVO.getPatName()) .eqIfPresent(queueDO::getPatGender, reqVO.getPatGender()) .eqIfPresent(queueDO::getBookTimeslot, reqVO.getBookTimeslot()) .eqIfPresent(queueDO::getBookCheckType, reqVO.getBookCheckType()) .eqIfPresent(queueDO::getSeqNum, reqVO.getSeqNum()) .eqIfPresent(queueDO::getStatus, reqVO.getStatus()) .eqIfPresent(queueDO::getPassed, reqVO.getPassed()) .eqIfPresent(queueDO::getExpired, reqVO.getExpired()) .eqIfPresent(queueDO::getRoomNum, reqVO.getRoomNum()) .eqIfPresent(queueDO::getBedNum, reqVO.getBedNum()) .betweenIfPresent(queueDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(queueDO::getId)); } } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,56 @@ package cn.lihu.jh.module.ecg.service.queue; import java.util.*; import cn.lihu.jh.module.ecg.controller.admin.queue.vo.*; import cn.lihu.jh.module.ecg.dal.dataobject.queue.queueDO; import cn.lihu.jh.framework.common.pojo.PageResult; import cn.lihu.jh.framework.common.pojo.PageParam; import javax.validation.Valid; /** * æé Service æ¥å£ * * @author èéæºç */ public interface queueService { /** * å建æé * * @param createReqVO åå»ºä¿¡æ¯ * @return ç¼å· */ Integer createqueue(@Valid queueSaveReqVO createReqVO); /** * æ´æ°æé * * @param updateReqVO æ´æ°ä¿¡æ¯ */ void updatequeue(@Valid queueSaveReqVO updateReqVO); /** * å 餿é * * @param id ç¼å· */ void deletequeue(Integer id); /** * è·å¾æé * * @param id ç¼å· * @return æé */ queueDO getqueue(Integer id); /** * è·å¾æéå页 * * @param pageReqVO å页æ¥è¯¢ * @return æéå页 */ PageResult<queueDO> getqueuePage(queuePageReqVO pageReqVO); } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,75 @@ package cn.lihu.jh.module.ecg.service.queue; 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.queue.vo.*; import cn.lihu.jh.module.ecg.dal.dataobject.queue.queueDO; 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.queue.queueMapper; 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 queueServiceImpl implements queueService { @Resource private queueMapper queueMapper; @Override public Integer createqueue(queueSaveReqVO createReqVO) { // æå ¥ queueDO queue = BeanUtils.toBean(createReqVO, queueDO.class); queueMapper.insert(queue); // è¿å return queue.getId(); } @Override public void updatequeue(queueSaveReqVO updateReqVO) { // æ ¡éªåå¨ validatequeueExists(updateReqVO.getId()); // æ´æ° queueDO updateObj = BeanUtils.toBean(updateReqVO, queueDO.class); queueMapper.updateById(updateObj); } @Override public void deletequeue(Integer id) { // æ ¡éªåå¨ validatequeueExists(id); // å é¤ queueMapper.deleteById(id); } private void validatequeueExists(Integer id) { if (queueMapper.selectById(id) == null) { throw exception(QUEUE_NOT_EXISTS); } } @Override public queueDO getqueue(Integer id) { return queueMapper.selectById(id); } @Override public PageResult<queueDO> getqueuePage(queuePageReqVO pageReqVO) { return queueMapper.selectPage(pageReqVO); } } jh-module-ecg/jh-module-ecg-biz/src/main/resources/mapper/queue/queueMapper.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.queue.queueMapper"> <!-- ä¸è¬æ åµä¸ï¼å°½å¯è½ä½¿ç¨ Mapper è¿è¡ CRUD å¢å æ¹æ¥å³å¯ã æ æ³æ»¡è¶³çåºæ¯ï¼ä¾å¦è¯´å¤è¡¨å ³èæ¥è¯¢ï¼æä½¿ç¨ XML ç¼å SQLã 代ç çæå¨ææ¶åªçæ Mapper XML æä»¶æ¬èº«ï¼æ´å¤æ¨è MybatisX å¿«éå¼åæä»¶æ¥çææ¥è¯¢ã ææ¡£å¯è§ï¼https://www.iocoder.cn/MyBatis/x-plugins/ --> </mapper> jh-server/src/main/resources/application-local.yaml
@@ -50,7 +50,7 @@ primary: master datasource: master: url: jdbc:mysql://rm-cn-lbj3spkaz000cx2o.rwlb.rds.aliyuncs.com:3306/lihu?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X è¿æ¥çç¤ºä¾ url: jdbc:mysql://116.62.18.175:6002/lihu?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X è¿æ¥çç¤ºä¾ # url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro?useSSL=true&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai # MySQL Connector/J 5.X è¿æ¥çç¤ºä¾ # url: jdbc:postgresql://127.0.0.1:5432/ruoyi-vue-pro # PostgreSQL è¿æ¥çç¤ºä¾ # url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle è¿æ¥çç¤ºä¾ @@ -58,8 +58,8 @@ # url: jdbc:dm://127.0.0.1:5236?schema=RUOYI_VUE_PRO # DM è¿æ¥çç¤ºä¾ # url: jdbc:kingbase8://127.0.0.1:54321/test # 人大éä» KingbaseES è¿æ¥çç¤ºä¾ # url: jdbc:postgresql://127.0.0.1:5432/postgres # OpenGauss è¿æ¥çç¤ºä¾ username: yinyu password: Root@yinyu username: hxsoft password: Hxerp2000 # username: sa # SQL Server è¿æ¥çç¤ºä¾ # password: Jh@2024 # SQL Server è¿æ¥çç¤ºä¾ # username: SYSDBA # DM è¿æ¥çç¤ºä¾ @@ -68,9 +68,9 @@ # password: Jh@2024 # OpenGauss è¿æ¥çç¤ºä¾ slave: # 模æä»åºï¼å¯æ ¹æ®èªå·±éè¦ä¿®æ¹ lazy: true # å¼å¯æå è½½ï¼ä¿è¯å¯å¨é度 url: jdbc:mysql://rm-cn-lbj3spkaz000cx2o.rwlb.rds.aliyuncs.com:3306/lihu?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X è¿æ¥çç¤ºä¾ username: yinyu password: Root@yinyu url: jdbc:mysql://116.62.18.175:6002/lihu?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X è¿æ¥çç¤ºä¾ username: hxsoft password: Hxerp2000 # Redis é ç½®ãRedisson é»è®¤çé 置足å¤ä½¿ç¨ï¼ä¸è¬ä¸éè¦è¿è¡è°ä¼ redis: sql/mysql/jh.sql
@@ -47,10 +47,9 @@ `pat_id` varchar(30) NOT NULL COMMENT 'æ£è ç¼å·', `pat_name` varchar(10) NOT NULL COMMENT 'æ£è å§å', `pat_gender` bit(1) DEFAULT NULL COMMENT 'æ£è æ§å«', `book_period_start` datetime NOT NULL COMMENT 'é¢çº¦æ£æ¥æ¶é´æ®µ', `book_period_end` datetime NOT NULL COMMENT 'é¢çº¦æ£æ¥æ¶é´æ®µ', `book_timeslot` int NOT NULL COMMENT 'é¢çº¦æ¶é´æ®µ', `book_check_type` tinyint(1) DEFAULT NULL COMMENT 'é¢çº¦æ£æ¥ç±»å', `seq_id` int NOT NULL COMMENT 'æéåºå·', `seq_num` int NOT NULL COMMENT 'æéåºå·', `status` tinyint(1) NOT NULL COMMENT '10:æéä¸ 20:åè¯åå¤ 30:å°±è¯ä¸ 40:å°±è¯å®æ 50:è¿å· 60:è¿æ', `passed` tinyint(1) NOT NULL COMMENT 'è¿å·æ è®°', `expired` tinyint(1) NOT NULL COMMENT 'é¢çº¦è¿ææ è®°', @@ -63,7 +62,7 @@ `update_time` datetime NOT NULL COMMENT 'æ´æ°æ¶é´', `deleted` bit(1) DEFAULT 0 COMMENT 'å 餿 è®°', PRIMARY KEY (`id`), UNIQUE KEY `idx_seq_id` (`seq_id`) UNIQUE KEY `idx_seq_id` (`seq_num`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='æé表';