package com.ruoyi.ocr.model; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; /** * 发票结构化字段 — 对齐 Python app.models.schemas.InvoiceFields *

* QR 权威字段 (QR 命中时覆盖 OCR 结果): invoice_no / invoice_date / amount */ @Data @NoArgsConstructor @AllArgsConstructor public class InvoiceFields { /** 发票类型, 如 增值税电子普通发票 / 增值税专用发票 / 数电票 */ @JsonProperty("invoice_type") private String invoiceType; /** 发票号码 — QR 权威 / OCR */ @JsonProperty("invoice_no") private String invoiceNo; /** 发票代码 — OCR (数电票此字段为空) */ @JsonProperty("invoice_code") private String invoiceCode; /** 开票日期 YYYY-MM-DD — QR 权威 / OCR */ @JsonProperty("invoice_date") private String invoiceDate; /** 价税合计 (小写) — QR 权威 / OCR */ private Double amount; /** 价税合计 (大写中文) — OCR */ @JsonProperty("amount_cn") private String amountCn; /** 不含税金额 — OCR */ @JsonProperty("amount_pretax") private Double amountPretax; /** 税额 — OCR */ @JsonProperty("tax_amount") private Double taxAmount; /** 销售方名称 — OCR */ @JsonProperty("seller_name") private String sellerName; /** 销售方纳税人识别号 — OCR */ @JsonProperty("seller_tax_no") private String sellerTaxNo; /** 购买方名称 — OCR */ @JsonProperty("buyer_name") private String buyerName; /** 购买方纳税人识别号 — OCR */ @JsonProperty("buyer_tax_no") private String buyerTaxNo; /** 大写金额与小数金额一致性 (null=未能比对) */ @JsonProperty("amount_match") private Boolean amountMatch; }