package thyyxxk.webserver.entity.medicalinsurance.manage;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * @description: 医疗机构费用结算对总账入参
 * @author: DingJie
 * @create: 2021/7/1616:38
 */
@Data
public class InstStlLdgChk {
    /**
     * 对账方式：1-本院医保与医保中心；2-本院医保与本院HIS
     * */
    private Integer mode;

    /**
     * 是否包含个账：1-包含；2-不包含
     * */
    private Integer acctPayFlag;

    /**
     * 医疗类别
     * */
    private String insutype;

    /**
     * 清算类别
     * */
    @JSONField(name = "clr_type")
    private String clrType;

    /**
     * 结算经办机构
     * */
    @JSONField(name = "setl_optins")
    private String setlOptins;

    /**
     * 对账开始日期
     * */
    @JSONField(name = "stmt_begndate")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date stmtBegndate;

    /**
     * 对账结束日期
     * */
    @JSONField(name = "stmt_enddate")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date stmtEnddate;

    /**
     * 医疗费总额
     * */
    @JSONField(name = "medfee_sumamt")
    private BigDecimal medfeeSumamt;

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

    /**
     * 个人账户支付金额
     * */
    @JSONField(name = "acct_pay")
    private BigDecimal acctPay;

    /**
     * 定点医药机构结算笔数
     * */
    @JSONField(name = "fixmedins_setl_cnt")
    private Integer fixmedinsSetlCnt;

    /**
     * 文件查询号
     * */
    @JSONField(name = "file_qury_no")
    private String fileQuryNo;

    /**
     * 现金支付金额
     * */
    @JSONField(name = "cash_payamt")
    private BigDecimal cashPayamt;

    /**
     * 退费结算标志
     * */
    @JSONField(name = "refd_setl_flag")
    private String refdSetlFlag = "0";

    public Integer getMode() {
        return null == mode ? 1 : mode;
    }

    public Integer getAcctPayFlag() {
        return null == acctPayFlag ? 1 : acctPayFlag;
    }
}
