56 lines
4.0 KiB
Java
56 lines
4.0 KiB
Java
package com.baiyue.finance.dto;
|
|
|
|
import com.fasterxml.jackson.annotation.JsonUnwrapped;
|
|
|
|
import java.math.BigDecimal;
|
|
import java.time.Instant;
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDateTime;
|
|
import java.util.List;
|
|
|
|
/** Stable DTOs for the phase-one AR/AP settlement operations. */
|
|
public final class FinanceSettlementDtos {
|
|
private FinanceSettlementDtos() {}
|
|
|
|
public record CreateReceivableSettlementRequest(long reconciliationStatementId, String currency) {}
|
|
public record CreatePayableSettlementRequest(long customerId, long supplierId, List<Long> feeSourceIds,
|
|
LocalDate dueDate, String currency) {}
|
|
public record CreateSettlementPaymentRequest(LocalDate transactionDate, BigDecimal amount, String currency,
|
|
String method, String referenceNo, List<String> voucherFileIds,
|
|
Integer expectedVersion, String remark) {}
|
|
public record SettlementActionRequest(String action, String reason, Integer expectedVersion) {}
|
|
|
|
public record SettlementSummary(long settlementId, String settlementNo, String direction, long customerId,
|
|
String customerName, Long supplierId, String supplierName,
|
|
Long reconciliationStatementId, String reconciliationStatementNo,
|
|
String businessPeriod, String feeItemSummary, String currency,
|
|
BigDecimal totalAmount, BigDecimal paidAmount, BigDecimal outstandingAmount,
|
|
LocalDate generatedDate, LocalDate dueDate, String paymentStatus,
|
|
String status, long createdBy, String createdByName,
|
|
LocalDateTime createdAt, LocalDateTime updatedAt,
|
|
LocalDateTime lastPaymentAt, int version) {}
|
|
public record SettlementLine(long feeSourceId, String sourceType, long sourceFeeId, int sourceVersion,
|
|
String direction, long customerId, String customerName, Long supplierId,
|
|
String supplierName, Long orderId, String orderNo, Long inboundId,
|
|
String inboundCode, Long containerId, String containerNo,
|
|
LocalDate businessDate, String feeItemName,
|
|
BigDecimal quantity, BigDecimal unitPrice, BigDecimal amount, String currency,
|
|
String reviewStatus, String sourceStatus,
|
|
boolean statementGenerated) {}
|
|
public record SettlementTransaction(long transactionId, String transactionNo, String transactionType, LocalDate transactionDate,
|
|
BigDecimal amount, String method, String referenceNo,
|
|
List<String> voucherFileIds, long createdBy, String createdByName,
|
|
LocalDateTime createdAt,
|
|
String remark) {}
|
|
public record SettlementRevision(int revisionNo, String action, BigDecimal beforeAmount,
|
|
BigDecimal afterAmount, String reason, long operatorId, String operatorName,
|
|
LocalDateTime occurredAt) {}
|
|
public record SettlementDetail(@JsonUnwrapped SettlementSummary summary, List<SettlementLine> lines,
|
|
List<SettlementTransaction> transactions,
|
|
List<SettlementRevision> revisions) {}
|
|
public record SettlementListEnvelope(String code, String message, List<SettlementSummary> data,
|
|
String requestId, String traceId, Instant timestamp) {}
|
|
public record SettlementDetailEnvelope(String code, String message, SettlementDetail data,
|
|
String requestId, String traceId, Instant timestamp) {}
|
|
}
|