package com.ywt.mg.domain.entities;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;

@Table(name = "outpatient_order")
@Entity
public class OutpatientOrder implements Serializable {
  private static final long serialVersionUID = 1L;

  @Id
  @Column(name = "id", insertable = false, nullable = false)
  private Integer id;

  /**
   * 医院ID
   */
  @Column(name = "hospital_id")
  private Integer hospitalId;

  /**
   * 医院名称
   */
  @Column(name = "hospital_name")
  private String hospitalName;

  /**
   * 科室编码
   */
  @Column(name = "dept_code")
  private String deptCode;

  /**
   * 科室名称
   */
  @Column(name = "dept_name")
  private String deptName;

  /**
   * 医生编码
   */
  @Column(name = "doctor_code")
  private String doctorCode;

  /**
   * 医生名称
   */
  @Column(name = "doctor_name")
  private String doctorName;

  /**
   * 总费用
   */
  @Column(name = "total", nullable = false)
  private Integer total;

  /**
   * 医保报销
   */
  @Column(name = "reimbursement", nullable = false)
  private Integer reimbursement;

  /**
   * 个人金额
   */
  @Column(name = "individual", nullable = false)
  private Integer individual;

  /**
   * 支付状态
   */
  @Column(name = "payment_status", nullable = false)
  private Integer paymentStatus;

  /**
   * 缴费单状态
   */
  @Column(name = "outpatient_status", nullable = false)
  private Integer outpatientStatus;

  /**
   * 用户ID
   */
  @Column(name = "user_id")
  private Integer userId;

  /**
   * 门诊ID
   */
  @Column(name = "his_patient_id", nullable = false)
  private String hisPatientId = "";

  /**
   * 支付时间
   */
  @Column(name = "pay_time")
  private Date payTime;

  /**
   * 微信商户Id
   */
  @Column(name = "wx_merchant_id")
  private String wxMerchantId;

  /**
   * 内部支付实现唯一编码
   */
  @Column(name = "wx_internal_pay_no")
  private String wxInternalPayNo;

  /**
   * 微信支付订单号
   */
  @Column(name = "wx_transaction_id")
  private String wxTransactionId;

  @Column(name = "deleted", nullable = false)
  private Boolean deleted;

  @Column(name = "create_time", nullable = false)
  private Date createTime;

  /**
   * 就诊流水号
   */
  @Column(name = "his_clinic_code")
  private String hisClinicCode;

  /**
   * HIS订单号
   */
  @Column(name = "his_order_no", nullable = false)
  private String hisOrderNo = "";

  /**
   * 支付名称
   */
  @Column(name = "pay_name", nullable = false)
  private String payName = "";

  /**
   * 处方生成日期
   */
  @Column(name = "prescription_date")
  private Date prescriptionDate;

  /**
   * 患者名称
   */
  @Column(name = "patient_name")
  private String patientName;

  /**
   * 年龄
   */
  @Column(name = "patient_age")
  private Integer patientAge;

  /**
   * 性别
   */
  @Column(name = "patient_sex")
  private Integer patientSex;

  /**
   * 修改时间
   */
  @Column(name = "update_time")
  private Date updateTime;

  /**
   * 医保KEY
   */
  @Column(name = "insure_key")
  private String insureKey;

  /**
   * 医保业务类型
   */
  @Column(name = "insure_biz_type")
  private String insureBizType;

  /**
   * 医保类型
   */
  @Column(name = "insure_treatment_type")
  private String insureTreatmentType;

  /**
   * 退款状态
   */
  @Column(name = "refund_status")
  private Integer refundStatus;

  /**
   * 退款时间
   */
  @Column(name = "refund_time")
  private Date refundTime;

  /**
   * 退款流水号
   */
  @Column(name = "refund_no")
  private String refundNo;

  /**
   * 退款回调时间
   */
  @Column(name = "refund_callback_time")
  private String refundCallbackTime;

  /**
   * 订单ID
   */
  @Column(name = "order_id")
  private Integer orderId;

  /**
   * 订单编码
   */
  @Column(name = "order_no")
  private String orderNo;

  /**
   * 身份证号码
   */
  @Column(name = "id_no")
  private String idNo;

  /**
   * 支付流水号
   */
  @Column(name = "payment_no")
  private String paymentNo;

  /**
   * 支付渠道
   */
  @Column(name = "payment_channel")
  private Integer paymentChannel;

  /**
   * 快递
   */
  @Column(name = "express")
  private Integer express;

  /**
   * 用于退款时填写的备注
   */
  @Column(name = "refund_remark")
  private String refundRemark;

  /**
   * 取药方式
   */
  @Column(name = "delivery_method")
  private Integer deliveryMethod;

  /**
   * 送货地址/药店地址
   */
  @Column(name = "address_id")
  private Integer addressId;

  /**
   * 邮费
   */
  @Column(name = "postage")
  private Integer postage;

  /**
   * 开始时间
   */
  @Column(name = "start_send_time")
  private Date startSendTime;

  /**
   * 完成时间
   */
  @Column(name = "finish_send_time")
  private Date finishSendTime;

  /**
   * 配送号
   */
  @Column(name = "send_no")
  private String sendNo;

  /**
   * 时效标准(快递的预计送达时间)
   */
  @Column(name = "time_standard")
  private String timeStandard;

  /**
   * 个人支付总额
   */
  @Column(name = "amount")
  private Integer amount;

  /**
   * 订单费用类型
   */
  @Column(name = "order_ins_type")
  private String orderInsType;

  /**
   * 发票 id（东华）
   */
  @Column(name = "invoice_no")
  private String invoiceNo;

  /**
   * 医生 id
   */
  @Column(name = "doctor_id")
  private Integer doctorId;

  /**
   * 记录 HIS 收费失败的返回信息
   */
  @Column(name = "resp_log")
  private String respLog;

  /**
   * 医保支付类型：1-自费，2-医保
   */
  @Column(name = "pay_ins_type")
  private Integer payInsType;

  /**
   * 使用微信医保支付，微信生成的医疗订单号
   */
  @Column(name = "med_trans_id")
  private String medTransId;

  /**
   * 使用微信医保支付退款时，微信返回的退款医疗单号
   */
  @Column(name = "med_refund_id")
  private String medRefundId;

  /**
   * 门诊缴费医保支付时记录 payUrl
   */
  @Column(name = "med_pay_url")
  private String medPayUrl;

  /**
   * 来源
   */
  @Column(name = "terminal")
  private Integer terminal;


  public Integer getId() {
    return id;
  }

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

  /**
   * 医院ID
   */
  public Integer getHospitalId() {
    return hospitalId;
  }

  /**
   * 医院ID
   */
  public void setHospitalId(Integer hospitalId) {
    this.hospitalId = hospitalId;
  }

  /**
   * 医院名称
   */
  public String getHospitalName() {
    return hospitalName;
  }

  /**
   * 医院名称
   */
  public void setHospitalName(String hospitalName) {
    this.hospitalName = hospitalName;
  }

  /**
   * 科室编码
   */
  public String getDeptCode() {
    return deptCode;
  }

  /**
   * 科室编码
   */
  public void setDeptCode(String deptCode) {
    this.deptCode = deptCode;
  }

  /**
   * 科室名称
   */
  public String getDeptName() {
    return deptName;
  }

  /**
   * 科室名称
   */
  public void setDeptName(String deptName) {
    this.deptName = deptName;
  }

  /**
   * 医生编码
   */
  public String getDoctorCode() {
    return doctorCode;
  }

  /**
   * 医生编码
   */
  public void setDoctorCode(String doctorCode) {
    this.doctorCode = doctorCode;
  }

  /**
   * 医生名称
   */
  public String getDoctorName() {
    return doctorName;
  }

  /**
   * 医生名称
   */
  public void setDoctorName(String doctorName) {
    this.doctorName = doctorName;
  }

  /**
   * 总费用
   */
  public Integer getTotal() {
    return total;
  }

  /**
   * 总费用
   */
  public void setTotal(Integer total) {
    this.total = total;
  }

  /**
   * 医保报销
   */
  public Integer getReimbursement() {
    return reimbursement;
  }

  /**
   * 医保报销
   */
  public void setReimbursement(Integer reimbursement) {
    this.reimbursement = reimbursement;
  }

  /**
   * 个人金额
   */
  public Integer getIndividual() {
    return individual;
  }

  /**
   * 个人金额
   */
  public void setIndividual(Integer individual) {
    this.individual = individual;
  }

  /**
   * 支付状态
   */
  public Integer getPaymentStatus() {
    return paymentStatus;
  }

  /**
   * 支付状态
   */
  public void setPaymentStatus(Integer paymentStatus) {
    this.paymentStatus = paymentStatus;
  }

  /**
   * 缴费单状态
   */
  public Integer getOutpatientStatus() {
    return outpatientStatus;
  }

  /**
   * 缴费单状态
   */
  public void setOutpatientStatus(Integer outpatientStatus) {
    this.outpatientStatus = outpatientStatus;
  }

  /**
   * 用户ID
   */
  public Integer getUserId() {
    return userId;
  }

  /**
   * 用户ID
   */
  public void setUserId(Integer userId) {
    this.userId = userId;
  }

  /**
   * 门诊ID
   */
  public String getHisPatientId() {
    return hisPatientId;
  }

  /**
   * 门诊ID
   */
  public void setHisPatientId(String hisPatientId) {
    this.hisPatientId = hisPatientId;
  }

  /**
   * 支付时间
   */
  public Date getPayTime() {
    return payTime;
  }

  /**
   * 支付时间
   */
  public void setPayTime(Date payTime) {
    this.payTime = payTime;
  }

  /**
   * 微信商户Id
   */
  public String getWxMerchantId() {
    return wxMerchantId;
  }

  /**
   * 微信商户Id
   */
  public void setWxMerchantId(String wxMerchantId) {
    this.wxMerchantId = wxMerchantId;
  }

  /**
   * 内部支付实现唯一编码
   */
  public String getWxInternalPayNo() {
    return wxInternalPayNo;
  }

  /**
   * 内部支付实现唯一编码
   */
  public void setWxInternalPayNo(String wxInternalPayNo) {
    this.wxInternalPayNo = wxInternalPayNo;
  }

  /**
   * 微信支付订单号
   */
  public String getWxTransactionId() {
    return wxTransactionId;
  }

  /**
   * 微信支付订单号
   */
  public void setWxTransactionId(String wxTransactionId) {
    this.wxTransactionId = wxTransactionId;
  }

  public Boolean isDeleted() {
    return deleted;
  }

  public void setDeleted(Boolean deleted) {
    this.deleted = deleted;
  }

  public Date getCreateTime() {
    return createTime;
  }

  public void setCreateTime(Date createTime) {
    this.createTime = createTime;
  }

  /**
   * 就诊流水号
   */
  public String getHisClinicCode() {
    return hisClinicCode;
  }

  /**
   * 就诊流水号
   */
  public void setHisClinicCode(String hisClinicCode) {
    this.hisClinicCode = hisClinicCode;
  }

  /**
   * HIS订单号
   */
  public String getHisOrderNo() {
    return hisOrderNo;
  }

  /**
   * HIS订单号
   */
  public void setHisOrderNo(String hisOrderNo) {
    this.hisOrderNo = hisOrderNo;
  }

  /**
   * 支付名称
   */
  public String getPayName() {
    return payName;
  }

  /**
   * 支付名称
   */
  public void setPayName(String payName) {
    this.payName = payName;
  }

  /**
   * 处方生成日期
   */
  public Date getPrescriptionDate() {
    return prescriptionDate;
  }

  /**
   * 处方生成日期
   */
  public void setPrescriptionDate(Date prescriptionDate) {
    this.prescriptionDate = prescriptionDate;
  }

  /**
   * 患者名称
   */
  public String getPatientName() {
    return patientName;
  }

  /**
   * 患者名称
   */
  public void setPatientName(String patientName) {
    this.patientName = patientName;
  }

  /**
   * 年龄
   */
  public Integer getPatientAge() {
    return patientAge;
  }

  /**
   * 年龄
   */
  public void setPatientAge(Integer patientAge) {
    this.patientAge = patientAge;
  }

  /**
   * 性别
   */
  public Integer getPatientSex() {
    return patientSex;
  }

  /**
   * 性别
   */
  public void setPatientSex(Integer patientSex) {
    this.patientSex = patientSex;
  }

  /**
   * 修改时间
   */
  public Date getUpdateTime() {
    return updateTime;
  }

  /**
   * 修改时间
   */
  public void setUpdateTime(Date updateTime) {
    this.updateTime = updateTime;
  }

  /**
   * 医保KEY
   */
  public String getInsureKey() {
    return insureKey;
  }

  /**
   * 医保KEY
   */
  public void setInsureKey(String insureKey) {
    this.insureKey = insureKey;
  }

  /**
   * 医保业务类型
   */
  public String getInsureBizType() {
    return insureBizType;
  }

  /**
   * 医保业务类型
   */
  public void setInsureBizType(String insureBizType) {
    this.insureBizType = insureBizType;
  }

  /**
   * 医保类型
   */
  public String getInsureTreatmentType() {
    return insureTreatmentType;
  }

  /**
   * 医保类型
   */
  public void setInsureTreatmentType(String insureTreatmentType) {
    this.insureTreatmentType = insureTreatmentType;
  }

  /**
   * 退款状态
   */
  public Integer getRefundStatus() {
    return refundStatus;
  }

  /**
   * 退款状态
   */
  public void setRefundStatus(Integer refundStatus) {
    this.refundStatus = refundStatus;
  }

  /**
   * 退款时间
   */
  public Date getRefundTime() {
    return refundTime;
  }

  /**
   * 退款时间
   */
  public void setRefundTime(Date refundTime) {
    this.refundTime = refundTime;
  }

  /**
   * 退款流水号
   */
  public String getRefundNo() {
    return refundNo;
  }

  /**
   * 退款流水号
   */
  public void setRefundNo(String refundNo) {
    this.refundNo = refundNo;
  }

  /**
   * 退款回调时间
   */
  public String getRefundCallbackTime() {
    return refundCallbackTime;
  }

  /**
   * 退款回调时间
   */
  public void setRefundCallbackTime(String refundCallbackTime) {
    this.refundCallbackTime = refundCallbackTime;
  }

  /**
   * 订单ID
   */
  public Integer getOrderId() {
    return orderId;
  }

  /**
   * 订单ID
   */
  public void setOrderId(Integer orderId) {
    this.orderId = orderId;
  }

  /**
   * 订单编码
   */
  public String getOrderNo() {
    return orderNo;
  }

  /**
   * 订单编码
   */
  public void setOrderNo(String orderNo) {
    this.orderNo = orderNo;
  }

  /**
   * 身份证号码
   */
  public String getIdNo() {
    return idNo;
  }

  /**
   * 身份证号码
   */
  public void setIdNo(String idNo) {
    this.idNo = idNo;
  }

  /**
   * 支付流水号
   */
  public String getPaymentNo() {
    return paymentNo;
  }

  /**
   * 支付流水号
   */
  public void setPaymentNo(String paymentNo) {
    this.paymentNo = paymentNo;
  }

  /**
   * 支付渠道
   */
  public Integer getPaymentChannel() {
    return paymentChannel;
  }

  /**
   * 支付渠道
   */
  public void setPaymentChannel(Integer paymentChannel) {
    this.paymentChannel = paymentChannel;
  }

  /**
   * 快递
   */
  public Integer getExpress() {
    return express;
  }

  /**
   * 快递
   */
  public void setExpress(Integer express) {
    this.express = express;
  }

  /**
   * 用于退款时填写的备注
   */
  public String getRefundRemark() {
    return refundRemark;
  }

  /**
   * 用于退款时填写的备注
   */
  public void setRefundRemark(String refundRemark) {
    this.refundRemark = refundRemark;
  }

  /**
   * 取药方式
   */
  public Integer getDeliveryMethod() {
    return deliveryMethod;
  }

  /**
   * 取药方式
   */
  public void setDeliveryMethod(Integer deliveryMethod) {
    this.deliveryMethod = deliveryMethod;
  }

  /**
   * 送货地址/药店地址
   */
  public Integer getAddressId() {
    return addressId;
  }

  /**
   * 送货地址/药店地址
   */
  public void setAddressId(Integer addressId) {
    this.addressId = addressId;
  }

  /**
   * 邮费
   */
  public Integer getPostage() {
    return postage;
  }

  /**
   * 邮费
   */
  public void setPostage(Integer postage) {
    this.postage = postage;
  }

  /**
   * 开始时间
   */
  public Date getStartSendTime() {
    return startSendTime;
  }

  /**
   * 开始时间
   */
  public void setStartSendTime(Date startSendTime) {
    this.startSendTime = startSendTime;
  }

  /**
   * 完成时间
   */
  public Date getFinishSendTime() {
    return finishSendTime;
  }

  /**
   * 完成时间
   */
  public void setFinishSendTime(Date finishSendTime) {
    this.finishSendTime = finishSendTime;
  }

  /**
   * 配送号
   */
  public String getSendNo() {
    return sendNo;
  }

  /**
   * 配送号
   */
  public void setSendNo(String sendNo) {
    this.sendNo = sendNo;
  }

  /**
   * 时效标准(快递的预计送达时间)
   */
  public String getTimeStandard() {
    return timeStandard;
  }

  /**
   * 时效标准(快递的预计送达时间)
   */
  public void setTimeStandard(String timeStandard) {
    this.timeStandard = timeStandard;
  }

  /**
   * 个人支付总额
   */
  public Integer getAmount() {
    return amount;
  }

  /**
   * 个人支付总额
   */
  public void setAmount(Integer amount) {
    this.amount = amount;
  }

  /**
   * 订单费用类型
   */
  public String getOrderInsType() {
    return orderInsType;
  }

  /**
   * 订单费用类型
   */
  public void setOrderInsType(String orderInsType) {
    this.orderInsType = orderInsType;
  }

  /**
   * 发票 id（东华）
   */
  public String getInvoiceNo() {
    return invoiceNo;
  }

  /**
   * 发票 id（东华）
   */
  public void setInvoiceNo(String invoiceNo) {
    this.invoiceNo = invoiceNo;
  }

  /**
   * 医生 id
   */
  public Integer getDoctorId() {
    return doctorId;
  }

  /**
   * 医生 id
   */
  public void setDoctorId(Integer doctorId) {
    this.doctorId = doctorId;
  }

  /**
   * 记录 HIS 收费失败的返回信息
   */
  public String getRespLog() {
    return respLog;
  }

  /**
   * 记录 HIS 收费失败的返回信息
   */
  public void setRespLog(String respLog) {
    this.respLog = respLog;
  }

  /**
   * 医保支付类型：1-自费，2-医保
   */
  public Integer getPayInsType() {
    return payInsType;
  }

  /**
   * 医保支付类型：1-自费，2-医保
   */
  public void setPayInsType(Integer payInsType) {
    this.payInsType = payInsType;
  }

  /**
   * 使用微信医保支付，微信生成的医疗订单号
   */
  public String getMedTransId() {
    return medTransId;
  }

  /**
   * 使用微信医保支付，微信生成的医疗订单号
   */
  public void setMedTransId(String medTransId) {
    this.medTransId = medTransId;
  }

  /**
   * 使用微信医保支付退款时，微信返回的退款医疗单号
   */
  public String getMedRefundId() {
    return medRefundId;
  }

  /**
   * 使用微信医保支付退款时，微信返回的退款医疗单号
   */
  public void setMedRefundId(String medRefundId) {
    this.medRefundId = medRefundId;
  }

  /**
   * 门诊缴费医保支付时记录 payUrl
   */
  public String getMedPayUrl() {
    return medPayUrl;
  }

  /**
   * 门诊缴费医保支付时记录 payUrl
   */
  public void setMedPayUrl(String medPayUrl) {
    this.medPayUrl = medPayUrl;
  }

  public Integer getTerminal() {
    return terminal;
  }

  public void setTerminal(Integer terminal) {
    this.terminal = terminal;
  }

  public String toString() {
    return "OutpatientOrder{id=" + id + 
      ", hospitalId=" + hospitalId + 
      ", hospitalName=" + hospitalName + 
      ", deptCode=" + deptCode + 
      ", deptName=" + deptName + 
      ", doctorCode=" + doctorCode + 
      ", doctorName=" + doctorName + 
      ", total=" + total + 
      ", reimbursement=" + reimbursement + 
      ", individual=" + individual + 
      ", paymentStatus=" + paymentStatus + 
      ", outpatientStatus=" + outpatientStatus + 
      ", userId=" + userId + 
      ", hisPatientId=" + hisPatientId + 
      ", payTime=" + payTime + 
      ", wxMerchantId=" + wxMerchantId + 
      ", wxInternalPayNo=" + wxInternalPayNo + 
      ", wxTransactionId=" + wxTransactionId + 
      ", deleted=" + deleted + 
      ", createTime=" + createTime + 
      ", hisClinicCode=" + hisClinicCode + 
      ", hisOrderNo=" + hisOrderNo + 
      ", payName=" + payName + 
      ", prescriptionDate=" + prescriptionDate + 
      ", patientName=" + patientName + 
      ", patientAge=" + patientAge + 
      ", patientSex=" + patientSex + 
      ", updateTime=" + updateTime + 
      ", insureKey=" + insureKey + 
      ", insureBizType=" + insureBizType + 
      ", insureTreatmentType=" + insureTreatmentType + 
      ", refundStatus=" + refundStatus + 
      ", refundTime=" + refundTime + 
      ", refundNo=" + refundNo + 
      ", refundCallbackTime=" + refundCallbackTime + 
      ", orderId=" + orderId + 
      ", orderNo=" + orderNo + 
      ", idNo=" + idNo + 
      ", paymentNo=" + paymentNo + 
      ", paymentChannel=" + paymentChannel + 
      ", express=" + express + 
      ", refundRemark=" + refundRemark + 
      ", deliveryMethod=" + deliveryMethod + 
      ", addressId=" + addressId + 
      ", postage=" + postage + 
      ", startSendTime=" + startSendTime + 
      ", finishSendTime=" + finishSendTime + 
      ", sendNo=" + sendNo + 
      ", timeStandard=" + timeStandard + 
      ", amount=" + amount + 
      ", orderInsType=" + orderInsType + 
      ", invoiceNo=" + invoiceNo + 
      ", doctorId=" + doctorId + 
      ", respLog=" + respLog + 
      ", payInsType=" + payInsType + 
      ", medTransId=" + medTransId + 
      ", medRefundId=" + medRefundId + 
      ", medPayUrl=" + medPayUrl + 
      "}";
  }
}