yxh
8 天以前 68ff33beff11310e830b0615b5a81f83fad0f683
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/vo/AppointmentRespVO.java
@@ -3,11 +3,17 @@
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
// 注意:原为 java.sql.Date(只表示日期),会让 registerDate/doctorTime 丢失时分秒。
// 2026-09-30 与 AppointmentSaveReqVO/AppointmentDO 统一为 java.util.Date。
import java.util.Date;
import java.time.LocalDate;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import cn.lihu.jh.framework.excel.core.annotations.DictFormat;
import cn.lihu.jh.framework.excel.core.convert.DictConvert;
@@ -16,7 +22,19 @@
@ExcelIgnoreUnannotated
public class AppointmentRespVO {
    private Integer id;
    private Long id;
    @Schema(description = "预约申请号", example = "2024435")
    @ExcelProperty("预约申请号")
    private String applyNo;
    @Schema(description = "就诊流水号", example = "2024546")
    @ExcelProperty("就诊流水号")
    private String episodeId;
    @Schema(description = "患者来源", example = "2024546")
    @ExcelProperty("患者来源")
    private Integer patSrc;
    @Schema(description = "患者编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "29034")
    @ExcelProperty("患者编号")
@@ -33,6 +51,8 @@
    @Schema(description = "患者生日")
    @ExcelProperty("患者生日")
    // 【本需求】导出只显示日期(原来 LocalDateTime 默认带时分秒 → "1990-01-01 00:00:00")
    @DateTimeFormat("yyyy-MM-dd")
    private LocalDateTime patBirthday;
    @Schema(description = "患者手机")
@@ -71,10 +91,6 @@
    @ExcelProperty("床号")
    private String patBedNo;
    @Schema(description = "预约编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "27849")
    @ExcelProperty("预约编号")
    private String bookId;
    @Schema(description = "预约日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("预约日期")
    private LocalDate bookDate;
@@ -85,17 +101,130 @@
    @Schema(description = "预约发生时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("预约发生时间")
    // 【本需求】列宽固定 20:原先靠 LongestMatchColumnWidth 自动算(约 18),
    // 与登记时间/开单时间(Date 型单元格只算到 12)不一致,这里三列统一。
    @ColumnWidth(20)
    private LocalDateTime bookTime;
    @Schema(description = "预约检查类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @DictFormat("ecg_check_type")
    @ExcelProperty(value = "预约检查类型", converter = DictConvert.class)
    private Integer bookCheckType;
    /**
     * 排队号(对外字段名保持 bookSeqNum 不变)。
     *
     * <p>【号统一(本需求)】值来源已改为 {@code queue.seq_num} ——
     * 号在签到时一次性分配、之后不变;本字段只在"该预约已排队"时用于回显。
     * 显示时请拼上 {@code check_type.seq_prefix}(号按检查项目各自编号,会跨项目重复)。
     */
    @Schema(description = "排队号(来源 queue.seq_num;已无 book 号)", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("排队号")
    private Integer bookSeqNum;
    @Schema(description = "预约来源:X系统、护士手动预约", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("预约来源:X系统、护士手动预约")
//    @ExcelProperty("预约来源:X系统、护士手动预约")
    private Integer bookSrc;
    @Schema(description = "已付款")
    @ExcelProperty("已付款")
    @Schema(description = "已付款 0-未交费  1-已缴费")
    @DictFormat("ecg_pay_type")
    @ExcelProperty(value = "付款状态", converter = DictConvert.class)
    private Integer paid;
}
    //    @TableField(exist = false)
    @Schema(description = "状态")
    @DictFormat("ecg_status_type")
    @ExcelProperty(value = "状态", converter = DictConvert.class)
    private String status;
    /**
     * 登记时间
     */
    @Schema(description = "登记时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("登记时间")
    // 【本需求】列宽固定 20(与「预约发生时间」一致):
    // Date 型单元格在 LongestMatchColumnWidth 下只会算到 12,时间被截断。
    @ColumnWidth(20)
    private Date registerDate;
    /**
     * 耐药性: 是否多耐1代表是,0代表不是
     */
    private String tolerance;
    @Schema(description = "是否床边 0=否 1=是", example = "0")
    @ExcelProperty("是否床边")
    private String isBedside;
    /**
     * 住院号
     */
    private String hospitalNo;
    /**
     * 医保卡号
     */
    private String medicalCard;
    /**
     * 门诊号
     */
    private String outpatientNo;
    private LocalDateTime createTime;
    /**
     * 开单医生
     */
    private String doctor;
    /**
     * 开单医生编码
     */
    private String doctorCode;
    /**
     * 开单时间
     */
    @ExcelProperty("开单时间")
    // 【本需求】列宽固定 20(与「预约发生时间」一致)
    @ColumnWidth(20)
    private Date doctorTime;
    // ==================== HIS 接入补充字段(2026-09-27 随表新增列一起加入) ====================
    // 注:bookSeqNum 已在上方声明,此处不重复定义
    /**
     * 优先级 / 加急标记:N=常规,J=加急
     */
    @ExcelProperty("加急标记")
    private String jjbz;
    /**
     * 检查方式编码
     */
    private String methodCode;
    /**
     * 检查部位编码
     */
    private String targetSiteCode;
    /**
     * 医嘱号(HIS 报文 component2.observationRequest.id.item[root=2.16.156.10011.1.28].extension)。
     * 与「申请单号 applyNo」不同:前者是医嘱标识,后者是申请单标识。
     */
    private String doctorAdviceNo;
    /**
     * 检查房间名称
     */
    private String roomName;
    /**
     * 注意事项
     */
    private String remark;
}