package com.miyzh.entity;

import com.miyzh.entity.ResponseInsDSettlementVO;
import lombok.Data;

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

/**
 * <p>
 * 医保结算信息
 * </p>
 *
 * @author liyc
 * @since 2018-01-02
 */
@Data
public class InsDSettlement implements Serializable, Cloneable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */

    private String id;
    /**
     * 患者id
     */

    private String patientId;
    /**
     * 诊所id
     */

    private String clinicId;
    /**
     * 结算id
     */

    private String settlementId;
    /**
     * 结算时间
     */

    private Date settlementTime;
    /**
     * 结算业务数据来源
     */

    private String settlementBizTypeFrom;
    /**
     * 结算业务类型
     */

    private String settlementBizType;
    /**
     * 结算类型
     */

    private Integer settlementScope;

    /**
     * 结算类型
     * 1:结算
     * 2:退费
     */
    private String transforType;
    /**
     * 就诊编号 预结算时不返回，确认结算时返回；
     * 统一的结算关键字，医院与中心发生结算交易的关键；
     * 原规则：8位年月日+6位时分秒+3位顺序（单台前置机唯一）+5位医院编码+000001+5位交易类型
     */

    private String visitCode;
    /**
     * 中心交易流水号 预结算时不返回，确认结算时返回；
     * 统一的结算关键字，医院与中心发生结算交易的关键；
     * 原规则：8位年月日+6位时分秒+3位顺序（单台前置机唯一）+5位医院编码+000001+5位交易类型
     */

    private String settleTransactionId;
    /**
     * 医疗费用总额 保留2位小数，以下金额字段皆同
     */

    private BigDecimal totalScore;
    /**
     * 个人自费总额
     */

    private BigDecimal personalTotalScore;
    /**
     * 乙类项目个人自理总额
     */

    private BigDecimal personalProject2;
    /**
     * 全额统筹总额
     */

    private BigDecimal totalOrdination;
    /**
     * 部分统筹总额
     */

    private BigDecimal partOrdination;
    /**
     * 账户支付总额 离休人员特有
     */

    private BigDecimal accountPayment;
    /**
     * 账户余额 离休人员特有
     */

    private BigDecimal accountRemain;
    /**
     * 统筹支付总额
     */

    private BigDecimal ordinateTotalScore;
    /**
     * 个人现金支付总额
     */

    private BigDecimal personalCash;
    /**
     * 救助金支出总额
     */

    private BigDecimal rescueBenefitsTotalScore;
    /**
     * 公务员补助支出总额(一二类保健补贴支出)
     */

    private BigDecimal agentRescueTotalScore;
    /**
     * 医保补贴支出
     */

    private BigDecimal insSubsidyScore;
    /**
     * 工伤补贴支出
     */

    private BigDecimal injurySubsidyScore;
    /**
     * 医疗年度 形如：20110101～20111231
     */

    private String insYearly;
    /**
     * 本医疗年度统筹已拨付额
     */

    private BigDecimal insYearlyOrdinatePayment;
    /**
     * 已纳入统筹范围医疗费
     */

    private BigDecimal alreadyInOrdinateScore;
    /**
     * 参保类型
     */

    private String insType;
    /**
     * 病种限额标准 生育病种支付限额、门诊大病统筹限额、单病种个人自负限额
     */

    private BigDecimal diseaseLimitStandard;
    /**
     * 年度结算次数 住院类结算次数
     */

    private BigDecimal yearlySettlementCount;
    /**
     * 特殊人员类型
     */

    private String specialPeopleType;
    /**
     * 结算方式
     */

    private BigDecimal settlementType;
    /**
     * 药品费用合计
     */

    private BigDecimal medicineTotalCost;
    /**
     * 药品全额统筹
     */

    private BigDecimal medicineTotalOrdinate;
    /**
     * 药品部分统筹
     */

    private BigDecimal medicinePartOrdinate;
    /**
     * 药品自负部分金额
     */

    private BigDecimal medicineSelfPart;
    /**
     * 药品全额自费
     */

    private BigDecimal medicineTotalSelf;
    /**
     * 药品自负部分特殊人员补贴
     */

    private BigDecimal medicineSpecialSelfPartSubsidy;
    /**
     * 检查检验费用合计
     */

    private BigDecimal checkTotalCost;
    /**
     * 检查检验全额统筹
     */

    private BigDecimal checkTotalOrdinate;
    /**
     * 检查检验部分统筹
     */

    private BigDecimal checkPartOrdinate;
    /**
     * 检查检验自负部分金额
     */

    private BigDecimal checkSelfPart;
    /**
     * 检查检验全额自费
     */

    private BigDecimal checkAllSelf;
    /**
     * 检查检验自负部分特殊人员补贴
     */

    private BigDecimal checkSpecialSelfPartSubsidy;
    /**
     * 治疗费用合计
     */

    private BigDecimal cureTotalCost;
    /**
     * 治疗全额统筹
     */

    private BigDecimal cureTotalOrdinate;
    /**
     * 治疗部分统筹
     */

    private BigDecimal curePartOrdinate;
    /**
     * 治疗自负部分金额
     */

    private BigDecimal cureSelfPart;
    /**
     * 治疗全额自费
     */

    private BigDecimal cureAllSelf;
    /**
     * 治疗自负部分特殊人员补贴
     */

    private BigDecimal cureSpecialSelfPartSubsidy;
    /**
     * 手术麻醉费用合计
     */

    private BigDecimal surgeryTotalCost;
    /**
     * 手术麻醉全额统筹
     */

    private BigDecimal surgeryTotalOrdinate;
    /**
     * 手术麻醉部分统筹
     */

    private BigDecimal surgeryPartOrdinate;
    /**
     * 手术麻醉自负部分金额
     */

    private BigDecimal surgerySelfPart;
    /**
     * 手术麻醉全额自费
     */

    private BigDecimal surgeryAllSelf;
    /**
     * 手术麻醉自负部分特殊人员补贴
     */

    private BigDecimal surgerySpecialSelfPartSubsidy;
    /**
     * 一次性材料费用合计
     */

    private BigDecimal disposableTotalCost;
    /**
     * 一次性材料全额统筹
     */

    private BigDecimal disposableTotalOrdinate;
    /**
     * 一次性材料部分统筹
     */

    private BigDecimal disposablePartOrdinate;
    /**
     * 一次性材料自负部分金额
     */

    private BigDecimal disposableSelfPart;
    /**
     * 一次性材料全额自费
     */

    private BigDecimal disposableAllSelf;
    /**
     * 一次性材料自负部分特殊人员补贴
     */

    private BigDecimal disposableSpecialSelfPartSubsidy;
    /**
     * 其他材料费用合计
     */

    private BigDecimal othersTotalCost;
    /**
     * 其他材料全额统筹
     */

    private BigDecimal othersTotalOrdinate;
    /**
     * 其他材料部分统筹
     */

    private BigDecimal othersPartOrdinate;
    /**
     * 其他材料自负部分金额
     */

    private BigDecimal othersSelfPart;
    /**
     * 其他材料全额自费
     */

    private BigDecimal othersAllSelf;
    /**
     * 其他材料自负部分特殊人员补贴
     */

    private BigDecimal othersSpecialSelfPartSubsidy;
    /**
     * 服务及设施费用合计
     */

    private BigDecimal serviceTotalCost;
    /**
     * 服务及设施全额统筹
     */

    private BigDecimal serviceTotalOrdinate;
    /**
     * 服务及设施部分统筹
     */

    private BigDecimal servicePartOrdinate;
    /**
     * 服务及设施自负部分金额
     */

    private BigDecimal serviceSelfPart;
    /**
     * 服务及设施全额自费
     */

    private BigDecimal serviceAllSelf;
    /**
     * 服务及设施自负部分特殊人员补贴
     */

    private BigDecimal serviceSpecialSelfPartSubsidy;
    /**
     * 乙类协议药品优惠金额
     */

    private BigDecimal argument2DiscountAmount;
    /**
     * 上下限1 显示内容：0-5000
     */
    private String upperLowerLimit1;
    /**
     * 上下限2 显示内容：5000-10000
     */

    private String upperLowerLimit2;
    /**
     * 上下限3 显示内容式：10000-20000
     */

    private String upperLowerLimit3;
    /**
     * 上下限4 显示内容：20000-统筹最高支付额度（汉字）
     */

    private String upperLowerLimit4;
    /**
     * 上下限5 显示内容：大额救助（汉字）
     */

    private String upperLowerLimit5;
    /**
     * 大额之上金额 显示内容：大额以上部分（汉字）
     */

    private String upperLargeAmountCost;
    /**
     * 分段统筹比例1 百分比的形式，保留两位小数，以下比例字段皆同
     */

    private BigDecimal segmentOrdinateProportion1;
    /**
     * 分段统筹比例2
     */

    private BigDecimal segmentOrdinateProportion2;
    /**
     * 分段统筹比例3
     */

    private BigDecimal segmentOrdinateProportion3;
    /**
     * 分段统筹比例4
     */

    private BigDecimal segmentOrdinateProportion4;
    /**
     * 分段统筹比例5
     */

    private BigDecimal segmentOrdinateProportion5;
    /**
     * 统筹支付额1
     */

    private BigDecimal ordinatePayment1;
    /**
     * 统筹支付额2
     */

    private BigDecimal ordinatePayment2;
    /**
     * 统筹支付额3
     */

    private BigDecimal ordinatePayment3;
    /**
     * 统筹支付额4
     */

    private BigDecimal ordinatePayment4;
    /**
     * 统筹支付额5
     */

    private BigDecimal ordinatePayment5;
    /**
     * 个人负担起付线
     */

    private BigDecimal selfPaymentStartLine;
    /**
     * 个人负担1
     */

    private BigDecimal selfPayment1;
    /**
     * 个人负担2
     */

    private BigDecimal selfPayment2;
    /**
     * 个人负担3
     */

    private BigDecimal selfPayment3;
    /**
     * 个人负担4
     */

    private BigDecimal selfPayment4;
    /**
     * 个人负担5
     */

    private BigDecimal selfPayment5;
    /**
     * 救助金之上个人负担
     */

    private BigDecimal beyondRescueSelfPayment;
    /**
     * 公务员、保健补贴比例（起付线）
     */

    private BigDecimal agentSubsidyProportionStart;
    /**
     * 公务员、保健补贴比例1
     */

    private BigDecimal agentSubsidyProportion1;
    /**
     * 公务员、保健补贴比例2
     */

    private BigDecimal agentSubsidyProportion2;
    /**
     * 公务员、保健补贴比例3
     */

    private BigDecimal agentSubsidyProportion3;
    /**
     * 公务员、保健补贴比例4
     */

    private BigDecimal agentSubsidyProportion4;
    /**
     * 公务员、保健补贴比例5
     */

    private BigDecimal agentSubsidyProportion5;
    /**
     * 公务员、保健补贴比例（救助金之上）
     */

    private BigDecimal beyondAgentSubsidyProportion;
    /**
     * 公务员、保健补贴支出（起付线）
     */

    private BigDecimal agentSubsidyExpenditureStart;
    /**
     * 公务员、保健补贴支出1
     */

    private BigDecimal agentSubsidyExpenditure1;
    /**
     * 公务员、保健补贴支出2
     */

    private BigDecimal agentSubsidyExpenditure2;
    /**
     * 公务员、保健补贴支出3
     */

    private BigDecimal agentSubsidyExpenditure3;
    /**
     * 公务员、保健补贴支出4
     */

    private BigDecimal agentSubsidyExpenditure4;
    /**
     * 公务员、保健补贴支出5
     */

    private BigDecimal agentSubsidyExpenditure5;
    /**
     * 公务员、保健补贴支出（救助金之上）
     */

    private BigDecimal beyondAgentSubsidyExpenditure;
    /**
     * 门诊大病超限额补贴比例
     */

    private BigDecimal clinciSeriousDiseaseLimitProportion;
    /**
     * 大病超限额补贴金额
     */

    private BigDecimal seriousDiseaseLimitAmount;
    /**
     * 大病超限额个人负担金额
     */

    private BigDecimal beyongSeriousDiseaseSelfAmount;
    /**
     * 特殊人员大病超限额补贴比例
     */

    private BigDecimal specialPeopleSeriousDiseaseProportion;
    /**
     * 特殊人员大病超限额补贴金额
     */

    private BigDecimal specialPeopleSeriousDiseaseAmount;
    /**
     * 双控单病种自负差额
     */

    private BigDecimal dblCtlSingleDiseaseSelfAmount;
    /**
     * 双控单病种统筹限额
     */

    private BigDecimal dblCtlSingleDiseaseOrdinateLimit;
    /**
     * 双控单病种自负限额
     */

    private BigDecimal dblCtlSingleDiseaseSelfLimit;
    /**
     * 本年度救助已付额
     */

    private BigDecimal yearlyHelpAmount;
    /**
     * 本年度范围内救助已付额
     */

    private BigDecimal yearlyInsideHelpAmount;
    /**
     * 本年度范围外救助已付额
     */

    private BigDecimal yearlyOutsideHelpAmount;
    /**
     * 特药救助支付比例
     */

    private BigDecimal specialHelpProportion;
    /**
     * 特药救助支付
     */

    private BigDecimal specialHelpPayment;
    /**
     * 特药救助个人负担
     */

    private BigDecimal specialHelpSelfAmount;
    /**
     * 特材救助支付比例
     */

    private BigDecimal specialMaterialProportion;
    /**
     * 特材救助支付
     */

    private BigDecimal specialMaterialPayment;
    /**
     * 特材救助个人负担
     */

    private BigDecimal specialMaterialSelfAmount;
    /**
     * 范围外大额救助支付比例
     */

    private BigDecimal outsideLargeAmountProportion;
    /**
     * 范围外大额救助支付
     */

    private BigDecimal outsideLargeAmountPayment;
    /**
     * 范围外大额救助个人负担
     */

    private BigDecimal outsideLargeAmountSelfAmount;
    /**
     * 特病救助支付比例
     */

    private BigDecimal specialDiseaseProportion;
    /**
     * 特病救助支付
     */

    private BigDecimal specialDiseasePayment;
    /**
     * 特病救助个人负担
     */

    private BigDecimal specialDiseaseSelfAmount;
    /**
     * 范围内大额救助支付比例
     */

    private BigDecimal insideLargeAmountProportion;
    /**
     * 范围内大额救助支付
     */

    private BigDecimal insideLargeAmountPayment;
    /**
     * 范围内大额救助个人负担
     */

    private BigDecimal insideLargeAmountSelfAmount;
    /**
     * 超限救助支付比例
     */

    private BigDecimal beyondLimitHelpProportion;
    /**
     * 超限救助支付
     */

    private BigDecimal beyondLimitHelpPayment;
    /**
     * 超限救助个人负担
     */

    private BigDecimal beyondLimitHelpSelfAmount;
    /**
     * 民政身份
     */

    private String civilStatus;
    /**
     * 民政区划
     */

    private String civilDivision;
    /**
     * 救助年度
     */

    private String helpYear;
    /**
     * 本次纳入救助费用
     */

    private BigDecimal helpAmountThisYear;
    /**
     * 本年度低保或边缘救助已付额
     */

    private BigDecimal lowerInsPaymentCostThisYear;
    /**
     * 本次低保或边缘救助支付
     */

    private BigDecimal lowerInsPaymentAmountThisYear;
    /**
     * 本年度优抚救助已付额
     */

    private BigDecimal premiumsPaymentCostThisYear;
    /**
     * 本次优抚救助支付
     */

    private BigDecimal premiumsPaymentAmount;
    /**
     * 居民生育限额标准 结算类型为“医保居民生育”时返回
     */

    private BigDecimal birthQuotaStandard;
    /**
     * 大病保险总额 出院时间在2014年12月31日之前（含31日）的返回0，出院时间在2014年12月31日之后的返回大额段+范围内救助
     */

    private BigDecimal seriousDiseaseInsTotalCost;
    /**
     * 大病救助总额 出院时间在2014年12月31日之前（含31日）的返回0，出院时间在2014年12月31日之后的返回范围外救助
     */

    private BigDecimal seriousDiseaseHelpTotalCost;
    /**
     * 特病公务员、保健补贴比例
     */

    private BigDecimal splAgentSubsidyProportion;
    /**
     * 特病公务员、保健补贴支出
     */

    private BigDecimal splAgentSubsidyPayment;
    /**
     * 范围内大额救助公务员、保健补贴比例
     */

    private BigDecimal insideAgentBighelpPropor;
    /**
     * 范围内大额救助公务员、保健补贴支出
     */

    private BigDecimal insideAgentBighelpPayment;
    /**
     * 特材离休救助支付比例
     */

    private BigDecimal meterialRetiredProportion;
    /**
     * 特材离休救助支付
     */

    private BigDecimal meterialRetiredPayment;
    /**
     * 特材离休救助个人负担
     */

    private BigDecimal meterialRetiredSelfAmount;
    /**
     * 特药离休救助支付比例
     */

    private BigDecimal medicineRetiredProportion;
    /**
     * 特药离休救助支付
     */

    private BigDecimal medicineRetiredPayment;
    /**
     * 特药离休救助个人负担
     */

    private BigDecimal medicineRetiredSelfAmount;
    /**
     * 范围外离休救助支付比例
     */

    private BigDecimal insideRetiredProportion;
    /**
     * 范围外离休救助支付
     */

    private BigDecimal insideRetiredPayment;
    /**
     * 范围外离休救助个人负担
     */

    private BigDecimal insideRetiredSelfAmount;
    /**
     * 民政本年度特殊人员1段救助已付额
     */

    private BigDecimal yearlySpl1Amount;
    /**
     * 民政本次特殊人员1段救助支付
     */

    private BigDecimal yearlySpl1Payment;
    /**
     * 民政本年度特殊人员2段救助已付额
     */

    private BigDecimal yearlySpl2Amount;
    /**
     * 民政本次特殊人员2段救助支付
     */

    private BigDecimal yearlySpl2Payment;
    /**
     * 全民补充医疗保险支付额
     */

    private BigDecimal allSupplementInsAmount;
    /**
     * 团体补充医疗保险支付额
     */

    private BigDecimal groupSupplementInsAmount;
    /**
     * 个人补充医疗保险支付额
     */

    private BigDecimal personalSupplementInsAmount;


    /**
     * 全额统筹项目合计
     */

    private BigDecimal totalCoordinatingProjectSum;

    /**
     * 统筹项目合计
     */

    private BigDecimal partCoordinatingSum;

    /**
     * 自负项目合计
     */

    private BigDecimal partialPaySum;

    /**
     * 全额自费项目合计
     */

    private BigDecimal fullAmountSum;

    /**
     * 类别合计
     */

    private BigDecimal categoryTotal;


    /**
     * 特殊人员比例合计
     */

    private BigDecimal specialPersonProportionSum;

    /**
     * 特殊人员补贴金额合计
     */

    private BigDecimal specialPersonSubsidyAmountSum;


    /**
     * 个人负担起付线个人负担
     */

    private BigDecimal personalPayLinPays;
    /**
     * 统筹一段个人负担
     */

    private BigDecimal coordinatingOneStagePays;
    /**
     * 统筹二段个人负担
     */

    private BigDecimal coordinatingTowStagePays;
    /**
     * 超限额补助 个人负担
     */

    private BigDecimal exceedingPays;
    /**
     * 大额及以上部分个人负担
     */

    private BigDecimal largeAmountAndAbovePays;

    /**
     * 范围内补助个人负担
     */

    private BigDecimal scopeAllowancePays;

    /**
     * 特病个人负担
     */

    private BigDecimal specialDiseasePays;

    /**
     * 个人负担起付线合计
     */

    private BigDecimal sumPersonalPayLinPays;
    /**
     * 统筹一段合计
     */

    private BigDecimal sumCoordinatingOneStagePays;

    /**
     * 统筹二段合计
     */

    private BigDecimal sumCoordinatingTowStagePays;

    /**
     * 超额补助合计
     */

    private BigDecimal exceedingPaysTotal;

    /**
     * 大额以上部分合计
     */

    private BigDecimal sumLargeAmountAndAbovePays;

    /**
     * 门诊大病超额补助合计
     */

    private BigDecimal sumOutpatientDiseaseExcessAllowance;


    /**
     * 范围内补助合计
     */

    private BigDecimal sumScopeAllowance;


    /**
     * 特病补助合计
     */

    private BigDecimal sumSpecialDisease;


    /**
     * 补充保险/大病救助
     */

    private BigDecimal InsuranceSupplementAndDisease;


    /**
     * 民政补助合计
     */

    private BigDecimal totalCivilAssistance;


    /**
     * 个人负担合计
     */

    private BigDecimal totalPersonalBurden;

    //==================================================================
    //年份
    private String dateYear;
    private String dateMonth;

    //是否全自费, 0:全自费，1：可报销
    private String selfPayFlag;
    //总人次
    private String countNum;
    //总人数
    private String patientNum;
    //人员数
    private String signNumber;
    //人员类别
    private String userType;
    //支付合计
    private BigDecimal totalPay;
    //当月签约数
    private int monthSignNum;

    private int sortIndex;


    private long dayNum;

    private BigDecimal nursePay;

    private double nursePayStandard;

    //查询结束时间
    private String endTime;
    //查询开始时间
    private String startTime;
    private String patientName;
    private String diseases;
    private String diseaseValue;


    /**
     * 统筹金及大病保险支付范围内分档计算情况
     * 统筹金及补助金应付额	总额
     *
     * @return
     */
    private BigDecimal allPartsInsuranceTotalPayment;

    /**
     * 统筹金及大病保险支付范围内分档计算情况
     * 个人负担	总额
     *
     * @return
     */
    private BigDecimal allPartsSelfTotalPayment;

    /**
     * 统筹金及大病保险支付范围内分档计算情况
     * 合 计		总额
     *
     * @return
     */
    private BigDecimal allPartsTotalPayment;

    /**
     * 统筹金及大病保险支付范围内分档计算情况
     * 特殊人员补贴 总额
     *
     * @return
     */
    private BigDecimal allPartsSpecialTotalPayment;


    /**
     * 年限额标准
     */
    private String yearStandard;


    /**
     * 剩余额度
     */
    private BigDecimal surplusAmount;
    /**
     * 剩余额度
     */
    private BigDecimal otherTotalScore;
    /**
     * 统筹限额
     */
    private BigDecimal everMonthAmount;

    private Date createTime;


    @Override
    public Object clone() {
        InsDSettlement insDSettlement = null;
        try {
            insDSettlement = (InsDSettlement) super.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return insDSettlement;
    }

    private List<ResponseInsDSettlementVO> responseInsDSettlementVOList;

    /**
     * 药品合计
     */
    private BigDecimal medicineTotalAmount;
    /**
     * 检查检验		合计
     */
    private BigDecimal projectTotalAmount;
    /**
     * 治疗	合计
     */
    private BigDecimal cureTotalAmount;
    /**
     * 手术麻醉		合计
     */
    private BigDecimal operationTotalAmount;
    /**
     * 一次性		合计
     */
    private BigDecimal disposableTotalAmount;
    /**
     * 其他		合计
     */
    private BigDecimal otherProjectTotalAmount;
    /**
     * 服务及设施		合计
     */
    private BigDecimal serviceTotalAmount;
    /**
     * 打印标识		1：青岛统一；2：即墨报表
     */
    private String printStyleType;

    //2019年3月18日 扶贫改造增加 - start
    //本次扶贫机构减免金额
    private BigDecimal currentPovertyWaiverAmount;
    //扶贫特惠保险本年度累计已支付
    private BigDecimal povertyWaiverYearlyPay;
    //扶贫特惠保险支付额
    private BigDecimal povertyWaiverInsurancePay;
    //是否其他人员身份
    private String isOtherResonnelStatus;
    //2019年3月18日 扶贫改造增加 - end


    /**
     * 基金支出汇总报表，结算列表查询条件： 0全部：1大病；2护理
     */
    private String reportSettleType;

}
