jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/AppointmentController.java
@@ -1,8 +1,13 @@ package cn.lihu.jh.module.ecg.controller.admin.appointment; import cn.lihu.jh.module.ecg.controller.admin.queue.vo.QueueSaveReqVO; import cn.lihu.jh.module.ecg.dal.dataobject.queue.QueueDO; import cn.lihu.jh.module.ecg.feign.RemoteDataService; import cn.lihu.jh.module.ecg.feign.RestApiReqBodyVo; import cn.lihu.jh.module.ecg.feign.RestApiResult; import cn.lihu.jh.module.ecg.feign.dto.AppointmentExternal; import cn.lihu.jh.module.ecg.service.queue.QueueService; import com.alibaba.fastjson.JSONObject; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.springframework.security.access.prepost.PreAuthorize; @@ -10,8 +15,14 @@ import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Operation; import java.time.LocalDateTime; import java.time.chrono.IsoChronology; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatterBuilder; import java.time.format.ResolverStyle; import java.util.*; import java.io.IOException; import java.util.stream.Collectors; import cn.lihu.jh.framework.common.pojo.PageParam; import cn.lihu.jh.framework.common.pojo.PageResult; @@ -23,6 +34,8 @@ import cn.lihu.jh.framework.apilog.core.annotation.ApiAccessLog; import static cn.lihu.jh.framework.apilog.core.enums.OperateTypeEnum.*; import static java.time.format.DateTimeFormatter.ISO_LOCAL_DATE; import static java.time.format.DateTimeFormatter.ISO_LOCAL_TIME; import cn.lihu.jh.module.ecg.controller.admin.appointment.vo.*; import cn.lihu.jh.module.ecg.dal.dataobject.appointment.AppointmentDO; @@ -40,6 +53,9 @@ @Resource private AppointmentService appointmentService; @Resource private QueueService queueService; @Resource private RemoteDataService remoteDataService; @@ -107,11 +123,54 @@ //return success(BeanUtils.toBean(appointment, AppointmentRespVO.class)); RestApiReqBodyVo reqBodyVo = new RestApiReqBodyVo(); reqBodyVo.setSfzh("121"); reqBodyVo.setSfzh(confirmReqVO.getPatId()); reqBodyVo.setMzzyh("A34343"); // QueryRisReportList queryEcgRequest RestApiResult<Object> result = remoteDataService.httpApi("queryEcgRequest", "ECG", "ECG", reqBodyVo); List<AppointmentExternal> list = result.getRow().stream().map( rawItem -> { AppointmentExternal appointmentExternal = JSONObject.parseObject(JSONObject.toJSONString(rawItem), AppointmentExternal.class); return appointmentExternal; } ).collect(Collectors.toList()); AppointmentExternal appointmentExternal = list.get(0); QueueSaveReqVO queueSaveReqVO = new QueueSaveReqVO(); queueSaveReqVO.setPatId( appointmentExternal.getPatientID() ); queueSaveReqVO.setPatName( appointmentExternal.getPatName() ); queueSaveReqVO.setPatGender( Byte.valueOf(appointmentExternal.getPatgender()) ); DateTimeFormatter ISO_LOCAL_DATE_TIME2 = new DateTimeFormatterBuilder() .parseCaseInsensitive() .append(ISO_LOCAL_DATE) .appendLiteral(' ') .append(ISO_LOCAL_TIME) .toFormatter(); LocalDateTime bookStartTime = LocalDateTime.parse(appointmentExternal.getReqExtBooktime(), ISO_LOCAL_DATE_TIME2); LocalDateTime bookEndTime = bookStartTime.plusMinutes(30); queueSaveReqVO.setBookTimeslot( (bookStartTime.getHour()*100 + bookStartTime.getMinute())*10000 + bookEndTime.getHour()*100 + bookEndTime.getMinute() ); //queueSaveReqVO.setBookCheckType( Byte.valueOf(appointmentExternal.getPlanDefItemList().getPlanDefItem().getPlanDefItemcode()) ); queueSaveReqVO.setBookCheckType( (byte)10 ); queueSaveReqVO.setSeqNum(1); queueSaveReqVO.setStatus((byte)10); queueSaveReqVO.setPassed((byte)0); queueSaveReqVO.setExpired((byte)0); queueSaveReqVO.setRoomNum("-"); queueSaveReqVO.setBedNum("-"); queueService.createqueue(queueSaveReqVO); return success("hello"); } } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queue/queueController.java
@@ -22,8 +22,8 @@ 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 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; @@ -36,19 +36,19 @@ public class queueController { @Resource private queueService queueService; private QueueService queueService; @PostMapping("/create") @Operation(summary = "å建æé") @PreAuthorize("@ss.hasPermission('ecg:queue:create')") public CommonResult<Integer> createqueue(@Valid @RequestBody queueSaveReqVO createReqVO) { 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) { public CommonResult<Boolean> updatequeue(@Valid @RequestBody QueueSaveReqVO updateReqVO) { queueService.updatequeue(updateReqVO); return success(true); } @@ -66,30 +66,30 @@ @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)); 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)); 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, public void exportqueueExcel(@Valid QueuePageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List<queueDO> list = queueService.getqueuePage(pageReqVO).getList(); List<QueueDO> list = queueService.getqueuePage(pageReqVO).getList(); // å¯¼åº Excel ExcelUtils.write(response, "æé.xls", "æ°æ®", queueRespVO.class, BeanUtils.toBean(list, queueRespVO.class)); 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
@@ -1,7 +1,6 @@ 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; @@ -13,7 +12,7 @@ @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class queuePageReqVO extends PageParam { public class QueuePageReqVO extends PageParam { @Schema(description = "æ£è ç¼å·", example = "30473") private String patId; jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queue/vo/queueRespVO.java
@@ -2,15 +2,14 @@ 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 { public class QueueRespVO { @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "21320") @ExcelProperty("id") jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queue/vo/queueSaveReqVO.java
@@ -5,12 +5,11 @@ import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.util.*; @Schema(description = "管çåå° - æéæ°å¢/ä¿®æ¹ Request VO") @Data public class queueSaveReqVO { public class QueueSaveReqVO { @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "21320") private Integer id; @@ -24,14 +23,14 @@ private String patName; @Schema(description = "æ£è æ§å«") private Boolean patGender; private Byte patGender; @Schema(description = "é¢çº¦æ¶é´æ®µ", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "é¢çº¦æ¶é´æ®µä¸è½ä¸ºç©º") private Integer bookTimeslot; @Schema(description = "é¢çº¦æ£æ¥ç±»å", example = "1") private Boolean bookCheckType; private Byte bookCheckType; @Schema(description = "æéåºå·", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "æéåºå·ä¸è½ä¸ºç©º") @@ -39,15 +38,15 @@ @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; private Byte status; @Schema(description = "è¿å·æ è®°", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "è¿å·æ è®°ä¸è½ä¸ºç©º") private Boolean passed; private Byte passed; @Schema(description = "é¢çº¦è¿ææ è®°", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "é¢çº¦è¿ææ è®°ä¸è½ä¸ºç©º") private Boolean expired; private Byte expired; @Schema(description = "è¯å®¤ç¼å·") private String roomNum; jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/queue/queueDO.java
@@ -1,9 +1,6 @@ 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; @@ -20,7 +17,7 @@ @Builder @NoArgsConstructor @AllArgsConstructor public class queueDO extends BaseDO { public class QueueDO extends BaseDO { /** * id @@ -38,7 +35,7 @@ /** * æ£è æ§å« */ private Boolean patGender; private Byte patGender; /** * é¢çº¦æ¶é´æ®µ */ @@ -46,7 +43,7 @@ /** * é¢çº¦æ£æ¥ç±»å */ private Boolean bookCheckType; private Byte bookCheckType; /** * æéåºå· */ @@ -54,15 +51,15 @@ /** * 10:æéä¸ 20:åè¯åå¤ 30:å°±è¯ä¸ 40:å°±è¯å®æ 50:è¿å· 60:è¿æ */ private Boolean status; private Byte status; /** * è¿å·æ è®° */ private Boolean passed; private Byte passed; /** * é¢çº¦è¿ææ è®° */ private Boolean expired; private Byte expired; /** * è¯å®¤ç¼å· */ jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/queueMapper.java
@@ -1,11 +1,9 @@ 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 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.*; @@ -15,23 +13,23 @@ * @author èéæºç */ @Mapper public interface queueMapper extends BaseMapperX<queueDO> { 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)); 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/feign/dto/AppointmentExternal.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,55 @@ package cn.lihu.jh.module.ecg.feign.dto; import lombok.Data; @Data public class AppointmentExternal { private String ReqIdeApplyno; private String ReqStatus; private String ReqCodeItemclass; private String ReqCodeItemclassdetaill; private String PatientID; private String EpisodeID; private String OutMedNO; private String InMedNO; private String VisitNum; private String AdmTypeCode; private String AdmTypeDesc; private String AdmStatus; private String AdmDate; private String PatName; private String Patgender; private String EncPatBirthDate; private String Age; private String Phone; private String Address; private String IdentityID; private String PatLocDeptCode; private String PatLocDeptDesc; private String PatLocWardCode; private String PatLocWardDesc; private String EnBedno; private String clinSymp; private String clinDiag; private String relevantDiag; private String ReqAuthoredOn; private String ReqExtApplydeptCode; private String ReqExtApplydeptName; private String ReqExtExecdeptCode; private String ReqExtExecdeptName; private String ReqExtApplydocCode; private String ReqExtApplydocName; private String ReqExtMedhistory; private String ReqExtBooktime; private String ReqExtBookplace; private String ReqExtUrgent; private String ReqExtExamgoal; private String ReqExtBookcheckno; private String ReqExtBookcheckpertime; private String ReqExtCheckremark; private String PlanDefBarcode; private PlanDefItemList PlanDefItemList; // çç¥ getter å setter æ¹æ³ } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/dto/PlanDefItem.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,14 @@ package cn.lihu.jh.module.ecg.feign.dto; import lombok.Data; @Data public class PlanDefItem { private String PlanDefvalue; private String PlanDefItemcode; private String PlanDefItemDesc; private String PlanDefRpCode; private String PlanDefDetRpCode; // çç¥ getter å setter æ¹æ³ } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/dto/PlanDefItemList.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,10 @@ package cn.lihu.jh.module.ecg.feign.dto; import lombok.Data; @Data public class PlanDefItemList { private PlanDefItem PlanDefItem; // çç¥ getter å setter æ¹æ³ } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/feign/dto/ReportExternal.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,26 @@ package cn.lihu.jh.module.ecg.feign.dto; import lombok.Data; @Data public class ReportExternal { private String JZKNO; private String JCZD; private String BGSJ; private String SFZH; private String JCLX; private String MRN; private String JCSJ; private String REPORTURL; private String JCSJDATE; private String KDSJ; private String HISID; private String SQDID; private String BRXM; private String MZZYH; private String YSID; private String JZLX; private String YZMC; // çç¥ getter å setter æ¹æ³ } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueService.java
@@ -1,10 +1,8 @@ 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.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; @@ -13,7 +11,7 @@ * * @author èéæºç */ public interface queueService { public interface QueueService { /** * å建æé @@ -21,14 +19,14 @@ * @param createReqVO åå»ºä¿¡æ¯ * @return ç¼å· */ Integer createqueue(@Valid queueSaveReqVO createReqVO); Integer createqueue(@Valid QueueSaveReqVO createReqVO); /** * æ´æ°æé * * @param updateReqVO æ´æ°ä¿¡æ¯ */ void updatequeue(@Valid queueSaveReqVO updateReqVO); void updatequeue(@Valid QueueSaveReqVO updateReqVO); /** * å 餿é @@ -43,7 +41,7 @@ * @param id ç¼å· * @return æé */ queueDO getqueue(Integer id); QueueDO getqueue(Integer id); /** * è·å¾æéå页 @@ -51,6 +49,6 @@ * @param pageReqVO å页æ¥è¯¢ * @return æéå页 */ PageResult<queueDO> getqueuePage(queuePageReqVO pageReqVO); PageResult<QueueDO> getqueuePage(QueuePageReqVO pageReqVO); } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueServiceImpl.java
@@ -2,13 +2,10 @@ 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.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; @@ -25,26 +22,26 @@ */ @Service @Validated public class queueServiceImpl implements queueService { public class QueueServiceImpl implements QueueService { @Resource private queueMapper queueMapper; @Override public Integer createqueue(queueSaveReqVO createReqVO) { public Integer createqueue(QueueSaveReqVO createReqVO) { // æå ¥ queueDO queue = BeanUtils.toBean(createReqVO, queueDO.class); QueueDO queue = BeanUtils.toBean(createReqVO, QueueDO.class); queueMapper.insert(queue); // è¿å return queue.getId(); } @Override public void updatequeue(queueSaveReqVO updateReqVO) { public void updatequeue(QueueSaveReqVO updateReqVO) { // æ ¡éªåå¨ validatequeueExists(updateReqVO.getId()); // æ´æ° queueDO updateObj = BeanUtils.toBean(updateReqVO, queueDO.class); QueueDO updateObj = BeanUtils.toBean(updateReqVO, QueueDO.class); queueMapper.updateById(updateObj); } @@ -63,12 +60,12 @@ } @Override public queueDO getqueue(Integer id) { public QueueDO getqueue(Integer id) { return queueMapper.selectById(id); } @Override public PageResult<queueDO> getqueuePage(queuePageReqVO pageReqVO) { public PageResult<QueueDO> getqueuePage(QueuePageReqVO pageReqVO) { return queueMapper.selectPage(pageReqVO); } sql/mysql/jh.sql
@@ -46,7 +46,7 @@ `id` int NOT NULL AUTO_INCREMENT COMMENT 'id', `pat_id` varchar(30) NOT NULL COMMENT 'æ£è ç¼å·', `pat_name` varchar(10) NOT NULL COMMENT 'æ£è å§å', `pat_gender` bit(1) DEFAULT NULL COMMENT 'æ£è æ§å«', `pat_gender` tinyint(1) DEFAULT NULL COMMENT 'æ£è æ§å«', `book_timeslot` int NOT NULL COMMENT 'é¢çº¦æ¶é´æ®µ', `book_check_type` tinyint(1) DEFAULT NULL COMMENT 'é¢çº¦æ£æ¥ç±»å', `seq_num` int NOT NULL COMMENT 'æéåºå·',