优化
This commit is contained in:
+7
-3
@@ -3,7 +3,7 @@ package com.baiyue.finance.controller;
|
||||
import com.baiyue.common.core.api.ApiResponse;
|
||||
import com.baiyue.common.security.AuthenticatedUser;
|
||||
import com.baiyue.finance.dto.ReconciliationStatementDtos.CreateReconciliationRequest;
|
||||
import com.baiyue.finance.dto.ReconciliationStatementDtos.DocumentActionRequest;
|
||||
import com.baiyue.finance.dto.ReconciliationStatementDtos.ReconciliationActionRequest;
|
||||
import com.baiyue.finance.dto.ReconciliationStatementDtos.ReconciliationDetail;
|
||||
import com.baiyue.finance.service.ReconciliationStatementService;
|
||||
import jakarta.validation.Valid;
|
||||
@@ -35,12 +35,16 @@ public class ReconciliationStatementController {
|
||||
}
|
||||
|
||||
@PostMapping("/reconciliation-statements/{statementId}/actions")
|
||||
@PreAuthorize("hasAuthority('platform:finance:reconciliation:review')")
|
||||
@PreAuthorize("(#request.action != null && #request.action.equalsIgnoreCase('SUBMIT') && hasAuthority('platform:finance:reconciliation:create'))"
|
||||
+ " || (#request.action != null && (#request.action.equalsIgnoreCase('APPROVE') || #request.action.equalsIgnoreCase('REJECT')) && hasAuthority('platform:finance:reconciliation:review'))"
|
||||
+ " || (#request.action != null && #request.action.equalsIgnoreCase('ISSUE') && hasAuthority('platform:finance:reconciliation:issue'))"
|
||||
+ " || (#request.action != null && #request.action.equalsIgnoreCase('ADJUST') && hasAuthority('platform:finance:reconciliation:adjust'))"
|
||||
+ " || (#request.action != null && (#request.action.equalsIgnoreCase('VOID') || #request.action.equalsIgnoreCase('REOPEN')) && hasAuthority('platform:finance:reconciliation:void'))")
|
||||
public ApiResponse<ReconciliationDetail> actionReconciliationStatement(
|
||||
@AuthenticationPrincipal AuthenticatedUser user,
|
||||
@PathVariable long statementId,
|
||||
@RequestHeader("Idempotency-Key") String idempotencyKey,
|
||||
@Valid @RequestBody DocumentActionRequest request) {
|
||||
@Valid @RequestBody ReconciliationActionRequest request) {
|
||||
return FinanceResponses.success(service.action(user.userId(), statementId, idempotencyKey, request));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,11 +8,15 @@ import java.util.List;
|
||||
public final class ReconciliationStatementDtos {
|
||||
private ReconciliationStatementDtos() {}
|
||||
|
||||
public record CreateReconciliationRequest(long customerId, String generationMode,
|
||||
public record CreateReconciliationRequest(long customerId, String currency, String generationMode,
|
||||
List<Long> feeSourceIds, LocalDate periodStart,
|
||||
LocalDate periodEnd, String remark) {}
|
||||
|
||||
public record DocumentActionRequest(String action, String reason, int expectedVersion) {}
|
||||
public record ReconciliationActionRequest(String action, String reason, int expectedVersion,
|
||||
List<StatementAdjustmentLineRequest> adjustmentLines) {}
|
||||
|
||||
public record StatementAdjustmentLineRequest(long statementLineId, BigDecimal adjustedAmount,
|
||||
String reason) {}
|
||||
|
||||
public record ReconciliationDetail(long statementId, String statementNo, long customerId,
|
||||
String customerName, LocalDate periodStart, LocalDate periodEnd,
|
||||
@@ -20,16 +24,21 @@ public final class ReconciliationStatementDtos {
|
||||
BigDecimal receivedAmount, BigDecimal outstandingAmount,
|
||||
boolean settled, String status, int version,
|
||||
LocalDateTime createdAt, LocalDateTime updatedAt, String remark,
|
||||
List<FeeSourceLine> lines, List<PaymentHistory> paymentHistory) {}
|
||||
List<ReconciliationLine> lines, List<PaymentHistory> paymentHistory,
|
||||
List<ReconciliationRevision> revisions) {}
|
||||
|
||||
public record FeeSourceLine(long feeSourceId, String sourceType, long sourceFeeId,
|
||||
int sourceVersion, String direction, long customerId,
|
||||
Long orderId, Long inboundId, Long containerId,
|
||||
String feeItemCode, String feeItemName, BigDecimal amount,
|
||||
String currency, String sourceStatus) {}
|
||||
public record ReconciliationLine(long statementLineId, long feeSourceId, int sourceVersion,
|
||||
String sourceHash, Long inboundId, Long containerId,
|
||||
String feeItemName, BigDecimal sourceAmount,
|
||||
BigDecimal statementAmount, String currency,
|
||||
String adjustmentReason) {}
|
||||
|
||||
public record PaymentHistory(long transactionId, String transactionType,
|
||||
LocalDate transactionDate, BigDecimal amount,
|
||||
String method, String referenceNo, long createdBy,
|
||||
LocalDateTime createdAt, String remark) {}
|
||||
|
||||
public record ReconciliationRevision(int revisionNo, String action, BigDecimal beforeAmount,
|
||||
BigDecimal afterAmount, String reason, long operatorId,
|
||||
LocalDateTime occurredAt) {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user