package com.openhis.yb.domain;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import com.fasterxml.jackson.annotation.JsonProperty;

import lombok.Data;
import lombok.experimental.Accessors;

/**
 * 【2304】住院结算
 *
 * @author SunJQ
 * @date 2025-07-31
 */
@Data
@TableName("yb_inpatient_settle")
@Accessors(chain = true)
public class InpatientSettle extends HisBaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.ASSIGN_ID)
    @JSONField(serialize = false)
    private Long id;

    /**
     * 人员编号
     */
    private String psnNo;

    /**
     * 就诊凭证类型
     */
    private String mdtrtCertType;

    /**
     * 就诊凭证编号 就诊凭证类型为“01”时填写电子凭证令牌，为“02”时填写身份证号，为“03”时填写社会保障卡卡号
     */
    private String mdtrtCertNo;

    /**
     * 医疗费总额
     */
    private BigDecimal medfeeSumamt;

    /**
     * 个人结算方式
     */
    private String psnSetlway;

    /**
     * 就诊ID
     */
    private String mdtrtId;

    /**
     * 结算ID
     */
    private String setlId;

    /**
     * 个人账户使用标志
     */
    private String acctUsedFlag;

    /**
     * 险种类型
     */
    private String insutype;

    /**
     * 参保地医保区划
     */
    private String insuplcAdmdvs;

    /**
     * 就医地医保区划
     */
    private String mdtrtareaAdmvs;

    /**
     * 发票号
     */
    private String invono;

    /**
     * 中途结算标志
     */
    private String midSetlFlag;

    /**
     * 全自费金额
     */
    private BigDecimal fulamtOwnpayAmt;

    /**
     * 超限价金额
     */
    private BigDecimal overlmtSelfpay;

    /**
     * 先行自付金额
     */
    private BigDecimal preselfpayAmt;

    /**
     * 符合政策范围金额
     */
    private BigDecimal inscpScpAmt;

    /**
     * 出院时间 格式：yyyy-MM-dd
     */
    private Date dscgTime;

    /**
     * 人员姓名
     */
    @JsonProperty("psn_name")
    private String psnName;

    /**
     * 人员证件类型
     */
    @JsonProperty("psn_cert_type")
    private String psnCertType;

    /**
     * 证件号码
     */
    @JsonProperty("certno")
    private String certno;

    /**
     * 性别
     */
    @JsonProperty("gend")
    private String gend;

    /**
     * 民族
     */
    @JsonProperty("naty")
    private String naty;

    /**
     * 出生日期 格式：yyyy-MM-dd
     */
    @JsonProperty("brdy")
    private Date brdy;

    /**
     * 年龄
     */
    @JsonProperty("age")
    private BigDecimal age;

    /**
     * 人员类别
     */
    @JsonProperty("psn_type")
    private String psnType;

    /**
     * 公务员标志
     */
    @JsonProperty("cvlserv_flag")
    private String cvlservFlag;

    /**
     * 结算时间 格式：yyyy-MM-dd HH:mm:ss
     */
    @JsonProperty("setl_time")
    private Date setlTime;

    /**
     * 医疗类别
     */
    @JsonProperty("med_type")
    private String medType;

    /**
     * 实际支付起付线
     */
    @JsonProperty("act_pay_dedc")
    private BigDecimal actPayDedc;

    /**
     * 基本医疗保险统筹基金支出
     */
    @JsonProperty("hifp_pay")
    private BigDecimal hifpPay;

    /**
     * 基本医疗保险统筹基金支付比例
     */
    @JsonProperty("pool_prop_selfpay")
    private BigDecimal poolPropSelfpay;

    /**
     * 公务员医疗补助资金支出
     */
    @JsonProperty("cvlserv_pay")
    private BigDecimal cvlservPay;

    /**
     * 企业补充医疗保险基金支出
     */
    @JsonProperty("hifes_pay")
    private BigDecimal hifesPay;

    /**
     * 居民大病保险资金支出
     */
    @JsonProperty("hifmi_pay")
    private BigDecimal hifmiPay;

    /**
     * 职工大额医疗费用补助基金支出
     */
    @JsonProperty("hifob_pay")
    private BigDecimal hifobPay;

    /**
     * 医疗救助基金支出
     */
    @JsonProperty("maf_pay")
    private BigDecimal mafPay;

    /**
     * 其他支出
     */
    @JsonProperty("oth_pay")
    private BigDecimal othPay;

    /**
     * 基金支付总额
     */
    @JsonProperty("fund_pay_sumamt")
    private BigDecimal fundPaySumamt;

    /**
     * 个人负担总金额
     */
    @JsonProperty("psn_part_amt")
    private BigDecimal psnPartAmt;

    /**
     * 个人账户支出
     */
    @JsonProperty("acct_pay")
    private BigDecimal acctPay;

    /**
     * 个人现金支出
     */
    @JsonProperty("psn_cash_pay")
    private BigDecimal psnCashPay;

    /**
     * 医院负担金额
     */
    @JsonProperty("hosp_part_amt")
    private BigDecimal hospPartAmt;

    /**
     * 余额
     */
    @JsonProperty("balc")
    private BigDecimal balc;

    /**
     * 个人账户共济支付金额
     */
    @JsonProperty("acct_mulaid_pay")
    private BigDecimal acctMulaidPay;

    /**
     * 医药机构结算ID 存放发送方报文ID
     */
    @JsonProperty("medins_setl_id")
    private String medinsSetlId;

    /**
     * 清算经办机构
     */
    @JsonProperty("clr_optins")
    private String clrOptins;

    /**
     * 清算方式
     */
    @JsonProperty("clr_way")
    private String clrWay;

    /**
     * 清算类别
     */
    @JsonProperty("clr_type")
    private String clrType;

    /**
     * 伤残人员医疗保障基金支出 1.5.4新增
     */
    @JsonProperty("hifdm_pay")
    private BigDecimal hifdmPay;

    private String inputParam;

    private String outputResult;
}
