package cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.statement; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; @Schema(description = "管理后台 - 供应商往来 Response VO") @Data public class ErpSupplierStatementRespVO { @Schema(description = "供应商编号") private Long supplierId; @Schema(description = "供应商名称") private String supplierName; @Schema(description = "汇总") private Summary summary; @Schema(description = "采购订单流水") private List orders; @Schema(description = "来票流水") private List invoices; @Schema(description = "付款流水") private List payments; @Schema(description = "往来汇总") @Data public static class Summary { @Schema(description = "累计采购额") private BigDecimal totalPurchaseAmount; @Schema(description = "累计开票额") private BigDecimal totalInvoiceAmount; @Schema(description = "累计付款额") private BigDecimal totalPaymentAmount; @Schema(description = "未付余额(开票 - 付款)") private BigDecimal unpaidAmount; } @Schema(description = "采购订单流水") @Data public static class OrderRow { private Long id; private String no; private LocalDateTime orderTime; private BigDecimal orderAmount; private BigDecimal invoicedAmount; private BigDecimal uninvoicedAmount; private Integer status; private Integer inStatus; } @Schema(description = "来票流水") @Data public static class InvoiceRow { private Long id; private String no; private String invoiceNo; private LocalDateTime invoiceTime; private BigDecimal invoiceAmount; private BigDecimal paidAmount; private BigDecimal remainingPayable; private Integer paymentStatus; private Long purchaseOrderId; private String purchaseOrderNo; } @Schema(description = "付款流水") @Data public static class PaymentRow { private Long id; private String no; private LocalDateTime paymentTime; private BigDecimal paymentAmount; private Integer status; private Long invoiceId; private String invoiceNo; } }