// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: sinopharm.proto

package com.ywt.gapi.third.sinopharm;

/**
 * <pre>
 * 发票信息
 * </pre>
 *
 * Protobuf type {@code com.ywt.gapi.third.sinopharm.InvoiceDetail}
 */
public final class InvoiceDetail extends
    com.google.protobuf.GeneratedMessageV3 implements
    // @@protoc_insertion_point(message_implements:com.ywt.gapi.third.sinopharm.InvoiceDetail)
    InvoiceDetailOrBuilder {
private static final long serialVersionUID = 0L;
  // Use InvoiceDetail.newBuilder() to construct.
  private InvoiceDetail(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }
  private InvoiceDetail() {
    custBankAccount_ = "";
    createDate_ = "";
    custTaxNo_ = "";
    mail_ = "";
    matchId_ = "";
    orderNo_ = "";
    phone_ = "";
    pscriptId_ = "";
  }

  @java.lang.Override
  @SuppressWarnings({"unused"})
  protected java.lang.Object newInstance(
      UnusedPrivateParameter unused) {
    return new InvoiceDetail();
  }

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet
  getUnknownFields() {
    return this.unknownFields;
  }
  private InvoiceDetail(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    this();
    if (extensionRegistry == null) {
      throw new java.lang.NullPointerException();
    }
    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
        com.google.protobuf.UnknownFieldSet.newBuilder();
    try {
      boolean done = false;
      while (!done) {
        int tag = input.readTag();
        switch (tag) {
          case 0:
            done = true;
            break;
          case 10: {
            java.lang.String s = input.readStringRequireUtf8();

            custBankAccount_ = s;
            break;
          }
          case 18: {
            java.lang.String s = input.readStringRequireUtf8();

            createDate_ = s;
            break;
          }
          case 26: {
            java.lang.String s = input.readStringRequireUtf8();

            custTaxNo_ = s;
            break;
          }
          case 33: {

            dmount_ = input.readDouble();
            break;
          }
          case 40: {

            invsort_ = input.readInt32();
            break;
          }
          case 50: {
            java.lang.String s = input.readStringRequireUtf8();

            mail_ = s;
            break;
          }
          case 58: {
            java.lang.String s = input.readStringRequireUtf8();

            matchId_ = s;
            break;
          }
          case 66: {
            java.lang.String s = input.readStringRequireUtf8();

            orderNo_ = s;
            break;
          }
          case 74: {
            java.lang.String s = input.readStringRequireUtf8();

            phone_ = s;
            break;
          }
          case 82: {
            java.lang.String s = input.readStringRequireUtf8();

            pscriptId_ = s;
            break;
          }
          default: {
            if (!parseUnknownField(
                input, unknownFields, extensionRegistry, tag)) {
              done = true;
            }
            break;
          }
        }
      }
    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
      throw e.setUnfinishedMessage(this);
    } catch (java.io.IOException e) {
      throw new com.google.protobuf.InvalidProtocolBufferException(
          e).setUnfinishedMessage(this);
    } finally {
      this.unknownFields = unknownFields.build();
      makeExtensionsImmutable();
    }
  }
  public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
    return com.ywt.gapi.third.sinopharm.SinopharmProto.internal_static_com_ywt_gapi_third_sinopharm_InvoiceDetail_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return com.ywt.gapi.third.sinopharm.SinopharmProto.internal_static_com_ywt_gapi_third_sinopharm_InvoiceDetail_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            com.ywt.gapi.third.sinopharm.InvoiceDetail.class, com.ywt.gapi.third.sinopharm.InvoiceDetail.Builder.class);
  }

  public static final int CUSTBANKACCOUNT_FIELD_NUMBER = 1;
  private volatile java.lang.Object custBankAccount_;
  /**
   * <pre>
   *购方银行、账号（非个人需传）(选填)
   * </pre>
   *
   * <code>string custBankAccount = 1;</code>
   * @return The custBankAccount.
   */
  @java.lang.Override
  public java.lang.String getCustBankAccount() {
    java.lang.Object ref = custBankAccount_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      custBankAccount_ = s;
      return s;
    }
  }
  /**
   * <pre>
   *购方银行、账号（非个人需传）(选填)
   * </pre>
   *
   * <code>string custBankAccount = 1;</code>
   * @return The bytes for custBankAccount.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getCustBankAccountBytes() {
    java.lang.Object ref = custBankAccount_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      custBankAccount_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int CREATEDATE_FIELD_NUMBER = 2;
  private volatile java.lang.Object createDate_;
  /**
   * <pre>
   * 订单时间,yyyy-MM-dd HH:mm:ss
   * </pre>
   *
   * <code>string createDate = 2;</code>
   * @return The createDate.
   */
  @java.lang.Override
  public java.lang.String getCreateDate() {
    java.lang.Object ref = createDate_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      createDate_ = s;
      return s;
    }
  }
  /**
   * <pre>
   * 订单时间,yyyy-MM-dd HH:mm:ss
   * </pre>
   *
   * <code>string createDate = 2;</code>
   * @return The bytes for createDate.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getCreateDateBytes() {
    java.lang.Object ref = createDate_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      createDate_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int CUSTTAXNO_FIELD_NUMBER = 3;
  private volatile java.lang.Object custTaxNo_;
  /**
   * <pre>
   * 购方税号（非个人需传）(选填)
   * </pre>
   *
   * <code>string custTaxNo = 3;</code>
   * @return The custTaxNo.
   */
  @java.lang.Override
  public java.lang.String getCustTaxNo() {
    java.lang.Object ref = custTaxNo_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      custTaxNo_ = s;
      return s;
    }
  }
  /**
   * <pre>
   * 购方税号（非个人需传）(选填)
   * </pre>
   *
   * <code>string custTaxNo = 3;</code>
   * @return The bytes for custTaxNo.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getCustTaxNoBytes() {
    java.lang.Object ref = custTaxNo_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      custTaxNo_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int DMOUNT_FIELD_NUMBER = 4;
  private double dmount_;
  /**
   * <pre>
   * 订单明细金额
   * </pre>
   *
   * <code>double dmount = 4;</code>
   * @return The dmount.
   */
  @java.lang.Override
  public double getDmount() {
    return dmount_;
  }

  public static final int INVSORT_FIELD_NUMBER = 5;
  private int invsort_;
  /**
   * <pre>
   * 发票类型：0：增值税专票 1：增值税普票 4：增值税电子发票
   * </pre>
   *
   * <code>int32 invsort = 5;</code>
   * @return The invsort.
   */
  @java.lang.Override
  public int getInvsort() {
    return invsort_;
  }

  public static final int MAIL_FIELD_NUMBER = 6;
  private volatile java.lang.Object mail_;
  /**
   * <pre>
   * 购方邮箱，用于发给患者电子发票链接
   * </pre>
   *
   * <code>string mail = 6;</code>
   * @return The mail.
   */
  @java.lang.Override
  public java.lang.String getMail() {
    java.lang.Object ref = mail_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      mail_ = s;
      return s;
    }
  }
  /**
   * <pre>
   * 购方邮箱，用于发给患者电子发票链接
   * </pre>
   *
   * <code>string mail = 6;</code>
   * @return The bytes for mail.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getMailBytes() {
    java.lang.Object ref = mail_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      mail_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int MATCHID_FIELD_NUMBER = 7;
  private volatile java.lang.Object matchId_;
  /**
   * <pre>
   * 匹配流水
   * </pre>
   *
   * <code>string matchId = 7;</code>
   * @return The matchId.
   */
  @java.lang.Override
  public java.lang.String getMatchId() {
    java.lang.Object ref = matchId_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      matchId_ = s;
      return s;
    }
  }
  /**
   * <pre>
   * 匹配流水
   * </pre>
   *
   * <code>string matchId = 7;</code>
   * @return The bytes for matchId.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getMatchIdBytes() {
    java.lang.Object ref = matchId_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      matchId_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int ORDERNO_FIELD_NUMBER = 8;
  private volatile java.lang.Object orderNo_;
  /**
   * <code>string orderNo = 8;</code>
   * @return The orderNo.
   */
  @java.lang.Override
  public java.lang.String getOrderNo() {
    java.lang.Object ref = orderNo_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      orderNo_ = s;
      return s;
    }
  }
  /**
   * <code>string orderNo = 8;</code>
   * @return The bytes for orderNo.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getOrderNoBytes() {
    java.lang.Object ref = orderNo_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      orderNo_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int PHONE_FIELD_NUMBER = 9;
  private volatile java.lang.Object phone_;
  /**
   * <code>string phone = 9;</code>
   * @return The phone.
   */
  @java.lang.Override
  public java.lang.String getPhone() {
    java.lang.Object ref = phone_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      phone_ = s;
      return s;
    }
  }
  /**
   * <code>string phone = 9;</code>
   * @return The bytes for phone.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getPhoneBytes() {
    java.lang.Object ref = phone_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      phone_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int PSCRIPTID_FIELD_NUMBER = 10;
  private volatile java.lang.Object pscriptId_;
  /**
   * <pre>
   * 处方单号
   * </pre>
   *
   * <code>string pscriptId = 10;</code>
   * @return The pscriptId.
   */
  @java.lang.Override
  public java.lang.String getPscriptId() {
    java.lang.Object ref = pscriptId_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = 
          (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      pscriptId_ = s;
      return s;
    }
  }
  /**
   * <pre>
   * 处方单号
   * </pre>
   *
   * <code>string pscriptId = 10;</code>
   * @return The bytes for pscriptId.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getPscriptIdBytes() {
    java.lang.Object ref = pscriptId_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b = 
          com.google.protobuf.ByteString.copyFromUtf8(
              (java.lang.String) ref);
      pscriptId_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  private byte memoizedIsInitialized = -1;
  @java.lang.Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output)
                      throws java.io.IOException {
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(custBankAccount_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 1, custBankAccount_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(createDate_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 2, createDate_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(custTaxNo_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 3, custTaxNo_);
    }
    if (java.lang.Double.doubleToRawLongBits(dmount_) != 0) {
      output.writeDouble(4, dmount_);
    }
    if (invsort_ != 0) {
      output.writeInt32(5, invsort_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(mail_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 6, mail_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(matchId_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 7, matchId_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(orderNo_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 8, orderNo_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(phone_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 9, phone_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pscriptId_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 10, pscriptId_);
    }
    unknownFields.writeTo(output);
  }

  @java.lang.Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(custBankAccount_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, custBankAccount_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(createDate_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, createDate_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(custTaxNo_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, custTaxNo_);
    }
    if (java.lang.Double.doubleToRawLongBits(dmount_) != 0) {
      size += com.google.protobuf.CodedOutputStream
        .computeDoubleSize(4, dmount_);
    }
    if (invsort_ != 0) {
      size += com.google.protobuf.CodedOutputStream
        .computeInt32Size(5, invsort_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(mail_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, mail_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(matchId_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, matchId_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(orderNo_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, orderNo_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(phone_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, phone_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pscriptId_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, pscriptId_);
    }
    size += unknownFields.getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
     return true;
    }
    if (!(obj instanceof com.ywt.gapi.third.sinopharm.InvoiceDetail)) {
      return super.equals(obj);
    }
    com.ywt.gapi.third.sinopharm.InvoiceDetail other = (com.ywt.gapi.third.sinopharm.InvoiceDetail) obj;

    if (!getCustBankAccount()
        .equals(other.getCustBankAccount())) return false;
    if (!getCreateDate()
        .equals(other.getCreateDate())) return false;
    if (!getCustTaxNo()
        .equals(other.getCustTaxNo())) return false;
    if (java.lang.Double.doubleToLongBits(getDmount())
        != java.lang.Double.doubleToLongBits(
            other.getDmount())) return false;
    if (getInvsort()
        != other.getInvsort()) return false;
    if (!getMail()
        .equals(other.getMail())) return false;
    if (!getMatchId()
        .equals(other.getMatchId())) return false;
    if (!getOrderNo()
        .equals(other.getOrderNo())) return false;
    if (!getPhone()
        .equals(other.getPhone())) return false;
    if (!getPscriptId()
        .equals(other.getPscriptId())) return false;
    if (!unknownFields.equals(other.unknownFields)) return false;
    return true;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    hash = (37 * hash) + CUSTBANKACCOUNT_FIELD_NUMBER;
    hash = (53 * hash) + getCustBankAccount().hashCode();
    hash = (37 * hash) + CREATEDATE_FIELD_NUMBER;
    hash = (53 * hash) + getCreateDate().hashCode();
    hash = (37 * hash) + CUSTTAXNO_FIELD_NUMBER;
    hash = (53 * hash) + getCustTaxNo().hashCode();
    hash = (37 * hash) + DMOUNT_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
        java.lang.Double.doubleToLongBits(getDmount()));
    hash = (37 * hash) + INVSORT_FIELD_NUMBER;
    hash = (53 * hash) + getInvsort();
    hash = (37 * hash) + MAIL_FIELD_NUMBER;
    hash = (53 * hash) + getMail().hashCode();
    hash = (37 * hash) + MATCHID_FIELD_NUMBER;
    hash = (53 * hash) + getMatchId().hashCode();
    hash = (37 * hash) + ORDERNO_FIELD_NUMBER;
    hash = (53 * hash) + getOrderNo().hashCode();
    hash = (37 * hash) + PHONE_FIELD_NUMBER;
    hash = (53 * hash) + getPhone().hashCode();
    hash = (37 * hash) + PSCRIPTID_FIELD_NUMBER;
    hash = (53 * hash) + getPscriptId().hashCode();
    hash = (29 * hash) + unknownFields.hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static com.ywt.gapi.third.sinopharm.InvoiceDetail parseFrom(
      java.nio.ByteBuffer data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static com.ywt.gapi.third.sinopharm.InvoiceDetail parseFrom(
      java.nio.ByteBuffer data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static com.ywt.gapi.third.sinopharm.InvoiceDetail parseFrom(
      com.google.protobuf.ByteString data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static com.ywt.gapi.third.sinopharm.InvoiceDetail parseFrom(
      com.google.protobuf.ByteString data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static com.ywt.gapi.third.sinopharm.InvoiceDetail parseFrom(byte[] data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }
  public static com.ywt.gapi.third.sinopharm.InvoiceDetail parseFrom(
      byte[] data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }
  public static com.ywt.gapi.third.sinopharm.InvoiceDetail parseFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input);
  }
  public static com.ywt.gapi.third.sinopharm.InvoiceDetail parseFrom(
      java.io.InputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input, extensionRegistry);
  }
  public static com.ywt.gapi.third.sinopharm.InvoiceDetail parseDelimitedFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseDelimitedWithIOException(PARSER, input);
  }
  public static com.ywt.gapi.third.sinopharm.InvoiceDetail parseDelimitedFrom(
      java.io.InputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
  }
  public static com.ywt.gapi.third.sinopharm.InvoiceDetail parseFrom(
      com.google.protobuf.CodedInputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input);
  }
  public static com.ywt.gapi.third.sinopharm.InvoiceDetail parseFrom(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() { return newBuilder(); }
  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }
  public static Builder newBuilder(com.ywt.gapi.third.sinopharm.InvoiceDetail prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }
  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE
        ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(
      com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   * <pre>
   * 发票信息
   * </pre>
   *
   * Protobuf type {@code com.ywt.gapi.third.sinopharm.InvoiceDetail}
   */
  public static final class Builder extends
      com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
      // @@protoc_insertion_point(builder_implements:com.ywt.gapi.third.sinopharm.InvoiceDetail)
      com.ywt.gapi.third.sinopharm.InvoiceDetailOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.ywt.gapi.third.sinopharm.SinopharmProto.internal_static_com_ywt_gapi_third_sinopharm_InvoiceDetail_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ywt.gapi.third.sinopharm.SinopharmProto.internal_static_com_ywt_gapi_third_sinopharm_InvoiceDetail_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.ywt.gapi.third.sinopharm.InvoiceDetail.class, com.ywt.gapi.third.sinopharm.InvoiceDetail.Builder.class);
    }

    // Construct using com.ywt.gapi.third.sinopharm.InvoiceDetail.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }
    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessageV3
              .alwaysUseFieldBuilders) {
      }
    }
    @java.lang.Override
    public Builder clear() {
      super.clear();
      custBankAccount_ = "";

      createDate_ = "";

      custTaxNo_ = "";

      dmount_ = 0D;

      invsort_ = 0;

      mail_ = "";

      matchId_ = "";

      orderNo_ = "";

      phone_ = "";

      pscriptId_ = "";

      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor
        getDescriptorForType() {
      return com.ywt.gapi.third.sinopharm.SinopharmProto.internal_static_com_ywt_gapi_third_sinopharm_InvoiceDetail_descriptor;
    }

    @java.lang.Override
    public com.ywt.gapi.third.sinopharm.InvoiceDetail getDefaultInstanceForType() {
      return com.ywt.gapi.third.sinopharm.InvoiceDetail.getDefaultInstance();
    }

    @java.lang.Override
    public com.ywt.gapi.third.sinopharm.InvoiceDetail build() {
      com.ywt.gapi.third.sinopharm.InvoiceDetail result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public com.ywt.gapi.third.sinopharm.InvoiceDetail buildPartial() {
      com.ywt.gapi.third.sinopharm.InvoiceDetail result = new com.ywt.gapi.third.sinopharm.InvoiceDetail(this);
      result.custBankAccount_ = custBankAccount_;
      result.createDate_ = createDate_;
      result.custTaxNo_ = custTaxNo_;
      result.dmount_ = dmount_;
      result.invsort_ = invsort_;
      result.mail_ = mail_;
      result.matchId_ = matchId_;
      result.orderNo_ = orderNo_;
      result.phone_ = phone_;
      result.pscriptId_ = pscriptId_;
      onBuilt();
      return result;
    }

    @java.lang.Override
    public Builder clone() {
      return super.clone();
    }
    @java.lang.Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        java.lang.Object value) {
      return super.setField(field, value);
    }
    @java.lang.Override
    public Builder clearField(
        com.google.protobuf.Descriptors.FieldDescriptor field) {
      return super.clearField(field);
    }
    @java.lang.Override
    public Builder clearOneof(
        com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return super.clearOneof(oneof);
    }
    @java.lang.Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        int index, java.lang.Object value) {
      return super.setRepeatedField(field, index, value);
    }
    @java.lang.Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        java.lang.Object value) {
      return super.addRepeatedField(field, value);
    }
    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other instanceof com.ywt.gapi.third.sinopharm.InvoiceDetail) {
        return mergeFrom((com.ywt.gapi.third.sinopharm.InvoiceDetail)other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(com.ywt.gapi.third.sinopharm.InvoiceDetail other) {
      if (other == com.ywt.gapi.third.sinopharm.InvoiceDetail.getDefaultInstance()) return this;
      if (!other.getCustBankAccount().isEmpty()) {
        custBankAccount_ = other.custBankAccount_;
        onChanged();
      }
      if (!other.getCreateDate().isEmpty()) {
        createDate_ = other.createDate_;
        onChanged();
      }
      if (!other.getCustTaxNo().isEmpty()) {
        custTaxNo_ = other.custTaxNo_;
        onChanged();
      }
      if (other.getDmount() != 0D) {
        setDmount(other.getDmount());
      }
      if (other.getInvsort() != 0) {
        setInvsort(other.getInvsort());
      }
      if (!other.getMail().isEmpty()) {
        mail_ = other.mail_;
        onChanged();
      }
      if (!other.getMatchId().isEmpty()) {
        matchId_ = other.matchId_;
        onChanged();
      }
      if (!other.getOrderNo().isEmpty()) {
        orderNo_ = other.orderNo_;
        onChanged();
      }
      if (!other.getPhone().isEmpty()) {
        phone_ = other.phone_;
        onChanged();
      }
      if (!other.getPscriptId().isEmpty()) {
        pscriptId_ = other.pscriptId_;
        onChanged();
      }
      this.mergeUnknownFields(other.unknownFields);
      onChanged();
      return this;
    }

    @java.lang.Override
    public final boolean isInitialized() {
      return true;
    }

    @java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      com.ywt.gapi.third.sinopharm.InvoiceDetail parsedMessage = null;
      try {
        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        parsedMessage = (com.ywt.gapi.third.sinopharm.InvoiceDetail) e.getUnfinishedMessage();
        throw e.unwrapIOException();
      } finally {
        if (parsedMessage != null) {
          mergeFrom(parsedMessage);
        }
      }
      return this;
    }

    private java.lang.Object custBankAccount_ = "";
    /**
     * <pre>
     *购方银行、账号（非个人需传）(选填)
     * </pre>
     *
     * <code>string custBankAccount = 1;</code>
     * @return The custBankAccount.
     */
    public java.lang.String getCustBankAccount() {
      java.lang.Object ref = custBankAccount_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        custBankAccount_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <pre>
     *购方银行、账号（非个人需传）(选填)
     * </pre>
     *
     * <code>string custBankAccount = 1;</code>
     * @return The bytes for custBankAccount.
     */
    public com.google.protobuf.ByteString
        getCustBankAccountBytes() {
      java.lang.Object ref = custBankAccount_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        custBankAccount_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <pre>
     *购方银行、账号（非个人需传）(选填)
     * </pre>
     *
     * <code>string custBankAccount = 1;</code>
     * @param value The custBankAccount to set.
     * @return This builder for chaining.
     */
    public Builder setCustBankAccount(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  
      custBankAccount_ = value;
      onChanged();
      return this;
    }
    /**
     * <pre>
     *购方银行、账号（非个人需传）(选填)
     * </pre>
     *
     * <code>string custBankAccount = 1;</code>
     * @return This builder for chaining.
     */
    public Builder clearCustBankAccount() {
      
      custBankAccount_ = getDefaultInstance().getCustBankAccount();
      onChanged();
      return this;
    }
    /**
     * <pre>
     *购方银行、账号（非个人需传）(选填)
     * </pre>
     *
     * <code>string custBankAccount = 1;</code>
     * @param value The bytes for custBankAccount to set.
     * @return This builder for chaining.
     */
    public Builder setCustBankAccountBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
      
      custBankAccount_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object createDate_ = "";
    /**
     * <pre>
     * 订单时间,yyyy-MM-dd HH:mm:ss
     * </pre>
     *
     * <code>string createDate = 2;</code>
     * @return The createDate.
     */
    public java.lang.String getCreateDate() {
      java.lang.Object ref = createDate_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        createDate_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <pre>
     * 订单时间,yyyy-MM-dd HH:mm:ss
     * </pre>
     *
     * <code>string createDate = 2;</code>
     * @return The bytes for createDate.
     */
    public com.google.protobuf.ByteString
        getCreateDateBytes() {
      java.lang.Object ref = createDate_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        createDate_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <pre>
     * 订单时间,yyyy-MM-dd HH:mm:ss
     * </pre>
     *
     * <code>string createDate = 2;</code>
     * @param value The createDate to set.
     * @return This builder for chaining.
     */
    public Builder setCreateDate(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  
      createDate_ = value;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * 订单时间,yyyy-MM-dd HH:mm:ss
     * </pre>
     *
     * <code>string createDate = 2;</code>
     * @return This builder for chaining.
     */
    public Builder clearCreateDate() {
      
      createDate_ = getDefaultInstance().getCreateDate();
      onChanged();
      return this;
    }
    /**
     * <pre>
     * 订单时间,yyyy-MM-dd HH:mm:ss
     * </pre>
     *
     * <code>string createDate = 2;</code>
     * @param value The bytes for createDate to set.
     * @return This builder for chaining.
     */
    public Builder setCreateDateBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
      
      createDate_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object custTaxNo_ = "";
    /**
     * <pre>
     * 购方税号（非个人需传）(选填)
     * </pre>
     *
     * <code>string custTaxNo = 3;</code>
     * @return The custTaxNo.
     */
    public java.lang.String getCustTaxNo() {
      java.lang.Object ref = custTaxNo_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        custTaxNo_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <pre>
     * 购方税号（非个人需传）(选填)
     * </pre>
     *
     * <code>string custTaxNo = 3;</code>
     * @return The bytes for custTaxNo.
     */
    public com.google.protobuf.ByteString
        getCustTaxNoBytes() {
      java.lang.Object ref = custTaxNo_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        custTaxNo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <pre>
     * 购方税号（非个人需传）(选填)
     * </pre>
     *
     * <code>string custTaxNo = 3;</code>
     * @param value The custTaxNo to set.
     * @return This builder for chaining.
     */
    public Builder setCustTaxNo(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  
      custTaxNo_ = value;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * 购方税号（非个人需传）(选填)
     * </pre>
     *
     * <code>string custTaxNo = 3;</code>
     * @return This builder for chaining.
     */
    public Builder clearCustTaxNo() {
      
      custTaxNo_ = getDefaultInstance().getCustTaxNo();
      onChanged();
      return this;
    }
    /**
     * <pre>
     * 购方税号（非个人需传）(选填)
     * </pre>
     *
     * <code>string custTaxNo = 3;</code>
     * @param value The bytes for custTaxNo to set.
     * @return This builder for chaining.
     */
    public Builder setCustTaxNoBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
      
      custTaxNo_ = value;
      onChanged();
      return this;
    }

    private double dmount_ ;
    /**
     * <pre>
     * 订单明细金额
     * </pre>
     *
     * <code>double dmount = 4;</code>
     * @return The dmount.
     */
    @java.lang.Override
    public double getDmount() {
      return dmount_;
    }
    /**
     * <pre>
     * 订单明细金额
     * </pre>
     *
     * <code>double dmount = 4;</code>
     * @param value The dmount to set.
     * @return This builder for chaining.
     */
    public Builder setDmount(double value) {
      
      dmount_ = value;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * 订单明细金额
     * </pre>
     *
     * <code>double dmount = 4;</code>
     * @return This builder for chaining.
     */
    public Builder clearDmount() {
      
      dmount_ = 0D;
      onChanged();
      return this;
    }

    private int invsort_ ;
    /**
     * <pre>
     * 发票类型：0：增值税专票 1：增值税普票 4：增值税电子发票
     * </pre>
     *
     * <code>int32 invsort = 5;</code>
     * @return The invsort.
     */
    @java.lang.Override
    public int getInvsort() {
      return invsort_;
    }
    /**
     * <pre>
     * 发票类型：0：增值税专票 1：增值税普票 4：增值税电子发票
     * </pre>
     *
     * <code>int32 invsort = 5;</code>
     * @param value The invsort to set.
     * @return This builder for chaining.
     */
    public Builder setInvsort(int value) {
      
      invsort_ = value;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * 发票类型：0：增值税专票 1：增值税普票 4：增值税电子发票
     * </pre>
     *
     * <code>int32 invsort = 5;</code>
     * @return This builder for chaining.
     */
    public Builder clearInvsort() {
      
      invsort_ = 0;
      onChanged();
      return this;
    }

    private java.lang.Object mail_ = "";
    /**
     * <pre>
     * 购方邮箱，用于发给患者电子发票链接
     * </pre>
     *
     * <code>string mail = 6;</code>
     * @return The mail.
     */
    public java.lang.String getMail() {
      java.lang.Object ref = mail_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        mail_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <pre>
     * 购方邮箱，用于发给患者电子发票链接
     * </pre>
     *
     * <code>string mail = 6;</code>
     * @return The bytes for mail.
     */
    public com.google.protobuf.ByteString
        getMailBytes() {
      java.lang.Object ref = mail_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        mail_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <pre>
     * 购方邮箱，用于发给患者电子发票链接
     * </pre>
     *
     * <code>string mail = 6;</code>
     * @param value The mail to set.
     * @return This builder for chaining.
     */
    public Builder setMail(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  
      mail_ = value;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * 购方邮箱，用于发给患者电子发票链接
     * </pre>
     *
     * <code>string mail = 6;</code>
     * @return This builder for chaining.
     */
    public Builder clearMail() {
      
      mail_ = getDefaultInstance().getMail();
      onChanged();
      return this;
    }
    /**
     * <pre>
     * 购方邮箱，用于发给患者电子发票链接
     * </pre>
     *
     * <code>string mail = 6;</code>
     * @param value The bytes for mail to set.
     * @return This builder for chaining.
     */
    public Builder setMailBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
      
      mail_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object matchId_ = "";
    /**
     * <pre>
     * 匹配流水
     * </pre>
     *
     * <code>string matchId = 7;</code>
     * @return The matchId.
     */
    public java.lang.String getMatchId() {
      java.lang.Object ref = matchId_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        matchId_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <pre>
     * 匹配流水
     * </pre>
     *
     * <code>string matchId = 7;</code>
     * @return The bytes for matchId.
     */
    public com.google.protobuf.ByteString
        getMatchIdBytes() {
      java.lang.Object ref = matchId_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        matchId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <pre>
     * 匹配流水
     * </pre>
     *
     * <code>string matchId = 7;</code>
     * @param value The matchId to set.
     * @return This builder for chaining.
     */
    public Builder setMatchId(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  
      matchId_ = value;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * 匹配流水
     * </pre>
     *
     * <code>string matchId = 7;</code>
     * @return This builder for chaining.
     */
    public Builder clearMatchId() {
      
      matchId_ = getDefaultInstance().getMatchId();
      onChanged();
      return this;
    }
    /**
     * <pre>
     * 匹配流水
     * </pre>
     *
     * <code>string matchId = 7;</code>
     * @param value The bytes for matchId to set.
     * @return This builder for chaining.
     */
    public Builder setMatchIdBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
      
      matchId_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object orderNo_ = "";
    /**
     * <code>string orderNo = 8;</code>
     * @return The orderNo.
     */
    public java.lang.String getOrderNo() {
      java.lang.Object ref = orderNo_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        orderNo_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <code>string orderNo = 8;</code>
     * @return The bytes for orderNo.
     */
    public com.google.protobuf.ByteString
        getOrderNoBytes() {
      java.lang.Object ref = orderNo_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        orderNo_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <code>string orderNo = 8;</code>
     * @param value The orderNo to set.
     * @return This builder for chaining.
     */
    public Builder setOrderNo(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  
      orderNo_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>string orderNo = 8;</code>
     * @return This builder for chaining.
     */
    public Builder clearOrderNo() {
      
      orderNo_ = getDefaultInstance().getOrderNo();
      onChanged();
      return this;
    }
    /**
     * <code>string orderNo = 8;</code>
     * @param value The bytes for orderNo to set.
     * @return This builder for chaining.
     */
    public Builder setOrderNoBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
      
      orderNo_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object phone_ = "";
    /**
     * <code>string phone = 9;</code>
     * @return The phone.
     */
    public java.lang.String getPhone() {
      java.lang.Object ref = phone_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        phone_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <code>string phone = 9;</code>
     * @return The bytes for phone.
     */
    public com.google.protobuf.ByteString
        getPhoneBytes() {
      java.lang.Object ref = phone_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        phone_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <code>string phone = 9;</code>
     * @param value The phone to set.
     * @return This builder for chaining.
     */
    public Builder setPhone(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  
      phone_ = value;
      onChanged();
      return this;
    }
    /**
     * <code>string phone = 9;</code>
     * @return This builder for chaining.
     */
    public Builder clearPhone() {
      
      phone_ = getDefaultInstance().getPhone();
      onChanged();
      return this;
    }
    /**
     * <code>string phone = 9;</code>
     * @param value The bytes for phone to set.
     * @return This builder for chaining.
     */
    public Builder setPhoneBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
      
      phone_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object pscriptId_ = "";
    /**
     * <pre>
     * 处方单号
     * </pre>
     *
     * <code>string pscriptId = 10;</code>
     * @return The pscriptId.
     */
    public java.lang.String getPscriptId() {
      java.lang.Object ref = pscriptId_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        pscriptId_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     * <pre>
     * 处方单号
     * </pre>
     *
     * <code>string pscriptId = 10;</code>
     * @return The bytes for pscriptId.
     */
    public com.google.protobuf.ByteString
        getPscriptIdBytes() {
      java.lang.Object ref = pscriptId_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        pscriptId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     * <pre>
     * 处方单号
     * </pre>
     *
     * <code>string pscriptId = 10;</code>
     * @param value The pscriptId to set.
     * @return This builder for chaining.
     */
    public Builder setPscriptId(
        java.lang.String value) {
      if (value == null) {
    throw new NullPointerException();
  }
  
      pscriptId_ = value;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * 处方单号
     * </pre>
     *
     * <code>string pscriptId = 10;</code>
     * @return This builder for chaining.
     */
    public Builder clearPscriptId() {
      
      pscriptId_ = getDefaultInstance().getPscriptId();
      onChanged();
      return this;
    }
    /**
     * <pre>
     * 处方单号
     * </pre>
     *
     * <code>string pscriptId = 10;</code>
     * @param value The bytes for pscriptId to set.
     * @return This builder for chaining.
     */
    public Builder setPscriptIdBytes(
        com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
      
      pscriptId_ = value;
      onChanged();
      return this;
    }
    @java.lang.Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFields(unknownFields);
    }

    @java.lang.Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }


    // @@protoc_insertion_point(builder_scope:com.ywt.gapi.third.sinopharm.InvoiceDetail)
  }

  // @@protoc_insertion_point(class_scope:com.ywt.gapi.third.sinopharm.InvoiceDetail)
  private static final com.ywt.gapi.third.sinopharm.InvoiceDetail DEFAULT_INSTANCE;
  static {
    DEFAULT_INSTANCE = new com.ywt.gapi.third.sinopharm.InvoiceDetail();
  }

  public static com.ywt.gapi.third.sinopharm.InvoiceDetail getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<InvoiceDetail>
      PARSER = new com.google.protobuf.AbstractParser<InvoiceDetail>() {
    @java.lang.Override
    public InvoiceDetail parsePartialFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return new InvoiceDetail(input, extensionRegistry);
    }
  };

  public static com.google.protobuf.Parser<InvoiceDetail> parser() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.protobuf.Parser<InvoiceDetail> getParserForType() {
    return PARSER;
  }

  @java.lang.Override
  public com.ywt.gapi.third.sinopharm.InvoiceDetail getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }

}

