package com.ruoyi.os.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 患者医保信息对象 patient_insurance_info
 * 
 * @author ruoyi
 * @date 2025-05-19
 */
public class PatientInsuranceInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 自增主键 */
    private Long id;

    /** 个人编号 */
    @Excel(name = "个人编号")
    private String personalId;

    /** 证件类型 */
    @Excel(name = "证件类型")
    private String idType;

    /** 证件号码 */
    @Excel(name = "证件号码")
    private String idNumber;

    /** 姓名 */
    @Excel(name = "姓名")
    private String name;

    /** 出生日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthdate;

    /** 性别 */
    @Excel(name = "性别")
    private String gender;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String contactPhone;

    /** 移动电话 */
    @Excel(name = "移动电话")
    private String mobilePhone;

    /** 户籍地址 */
    @Excel(name = "户籍地址")
    private String registeredAddress;

    /** 居住地址 */
    @Excel(name = "居住地址")
    private String residentialAddress;

    /** 缴费区划 */
    @Excel(name = "缴费区划")
    private String paymentDistrict;

    /** 缴费区划名称 */
    @Excel(name = "缴费区划名称")
    private String paymentDistrictName;

    /** 乡镇街道 */
    @Excel(name = "乡镇街道")
    private String townshipStreet;

    /** 社区/行政村/学校 */
    @Excel(name = "社区/行政村/学校")
    private String communityVillageSchool;

    /** 单位编号 */
    @Excel(name = "单位编号")
    private String unitId;

    /** 单位名称 */
    @Excel(name = "单位名称")
    private String unitName;

    /** 个人缴费金额 */
    @Excel(name = "个人缴费金额")
    private BigDecimal personalPaymentAmount;

    /** 财政补助金额 */
    @Excel(name = "财政补助金额")
    private BigDecimal financialSubsidyAmount;

    /** 总金额 */
    @Excel(name = "总金额")
    private BigDecimal totalAmount;

    /** 到账时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "到账时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date paymentTime;

    /** 缴费年度 */
    @Excel(name = "缴费年度")
    private String paymentYear;

    /** 缴费人员身份类别 */
    @Excel(name = "缴费人员身份类别")
    private String payerCategory;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setPersonalId(String personalId) 
    {
        this.personalId = personalId;
    }

    public String getPersonalId() 
    {
        return personalId;
    }
    public void setIdType(String idType) 
    {
        this.idType = idType;
    }

    public String getIdType() 
    {
        return idType;
    }

    public void setIdNumber(String idNumber)
    {
        this.idNumber = idNumber;
    }

    public String getIdNumber() 
    {
        return idNumber;
    }
    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }
    public void setBirthdate(Date birthdate) 
    {
        this.birthdate = birthdate;
    }

    public Date getBirthdate() 
    {
        return birthdate;
    }
    public void setGender(String gender) 
    {
        this.gender = gender;
    }

    public String getGender() 
    {
        return gender;
    }
    public void setContactPhone(String contactPhone) 
    {
        this.contactPhone = contactPhone;
    }

    public String getContactPhone() 
    {
        return contactPhone;
    }
    public void setMobilePhone(String mobilePhone) 
    {
        this.mobilePhone = mobilePhone;
    }

    public String getMobilePhone() 
    {
        return mobilePhone;
    }
    public void setRegisteredAddress(String registeredAddress) 
    {
        this.registeredAddress = registeredAddress;
    }

    public String getRegisteredAddress() 
    {
        return registeredAddress;
    }
    public void setResidentialAddress(String residentialAddress) 
    {
        this.residentialAddress = residentialAddress;
    }

    public String getResidentialAddress() 
    {
        return residentialAddress;
    }
    public void setPaymentDistrict(String paymentDistrict) 
    {
        this.paymentDistrict = paymentDistrict;
    }

    public String getPaymentDistrict() 
    {
        return paymentDistrict;
    }
    public void setPaymentDistrictName(String paymentDistrictName) 
    {
        this.paymentDistrictName = paymentDistrictName;
    }

    public String getPaymentDistrictName() 
    {
        return paymentDistrictName;
    }
    public void setTownshipStreet(String townshipStreet) 
    {
        this.townshipStreet = townshipStreet;
    }

    public String getTownshipStreet() 
    {
        return townshipStreet;
    }
    public void setCommunityVillageSchool(String communityVillageSchool) 
    {
        this.communityVillageSchool = communityVillageSchool;
    }

    public String getCommunityVillageSchool() 
    {
        return communityVillageSchool;
    }
    public void setUnitId(String unitId) 
    {
        this.unitId = unitId;
    }

    public String getUnitId() 
    {
        return unitId;
    }
    public void setUnitName(String unitName) 
    {
        this.unitName = unitName;
    }

    public String getUnitName() 
    {
        return unitName;
    }
    public void setPersonalPaymentAmount(BigDecimal personalPaymentAmount) 
    {
        this.personalPaymentAmount = personalPaymentAmount;
    }

    public BigDecimal getPersonalPaymentAmount() 
    {
        return personalPaymentAmount;
    }
    public void setFinancialSubsidyAmount(BigDecimal financialSubsidyAmount) 
    {
        this.financialSubsidyAmount = financialSubsidyAmount;
    }

    public BigDecimal getFinancialSubsidyAmount() 
    {
        return financialSubsidyAmount;
    }
    public void setTotalAmount(BigDecimal totalAmount) 
    {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalAmount() 
    {
        return totalAmount;
    }
    public void setPaymentTime(Date paymentTime) 
    {
        this.paymentTime = paymentTime;
    }

    public Date getPaymentTime() 
    {
        return paymentTime;
    }
    public void setPaymentYear(String paymentYear) 
    {
        this.paymentYear = paymentYear;
    }

    public String getPaymentYear() 
    {
        return paymentYear;
    }
    public void setPayerCategory(String payerCategory) 
    {
        this.payerCategory = payerCategory;
    }

    public String getPayerCategory() 
    {
        return payerCategory;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("personalId", getPersonalId())
            .append("idType", getIdType())
            .append("idNumber", getIdNumber())
            .append("name", getName())
            .append("birthdate", getBirthdate())
            .append("gender", getGender())
            .append("contactPhone", getContactPhone())
            .append("mobilePhone", getMobilePhone())
            .append("registeredAddress", getRegisteredAddress())
            .append("residentialAddress", getResidentialAddress())
            .append("paymentDistrict", getPaymentDistrict())
            .append("paymentDistrictName", getPaymentDistrictName())
            .append("townshipStreet", getTownshipStreet())
            .append("communityVillageSchool", getCommunityVillageSchool())
            .append("unitId", getUnitId())
            .append("unitName", getUnitName())
            .append("personalPaymentAmount", getPersonalPaymentAmount())
            .append("financialSubsidyAmount", getFinancialSubsidyAmount())
            .append("totalAmount", getTotalAmount())
            .append("paymentTime", getPaymentTime())
            .append("paymentYear", getPaymentYear())
            .append("payerCategory", getPayerCategory())
            .toString();
    }
}
