费用提交

This commit is contained in:
2026-10-26 13:41:43 +08:00
parent 0fe1d10566
commit 761fe3686e
171 changed files with 8750 additions and 386 deletions
@@ -78,6 +78,7 @@ public class LastlegOrderService {
@Resource private LastlegOrderDetailMapper detailMapper;
@Resource private LastlegOrderStatusHistoryMapper historyMapper;
@Resource private OverseasFeeSourceService feeSources;
@Resource private com.baiyue.lastleg.financefee.service.OverseasManualFeeService manualFees;
@Resource private LastlegOrderOperationLogMapper operationLogMapper;
@Resource private LastlegOrderManualNodeMapper manualNodeMapper;
@Resource private InboundPlanCartonMapper cartonMapper;
@@ -400,6 +401,7 @@ public class LastlegOrderService {
}
}
/** 返回订单详情及统一费用审核、余额锁扣状态。 */
public LastlegOrderDetailResponse detail(String customerId, long orderId) {
LastlegOrder order = findOwned(customerId, orderId);
returnOrderReferences.populateForRead(List.of(order));
@@ -412,7 +414,12 @@ public class LastlegOrderService {
.eq(LastlegOrderStatusHistory::getCustomerId, order.getCustomerId())
.eq(LastlegOrderStatusHistory::getOrderId, orderId)
.orderByAsc(LastlegOrderStatusHistory::getCreatedAt));
List<OverseasFeeSource> fees = feeSources.listForBusiness(order.getCustomerId(), "LASTLEG_ORDER", orderId);
List<OverseasFeeSource> orderFees = new java.util.ArrayList<>(
feeSources.listForBusiness(order.getCustomerId(), "LASTLEG_ORDER", orderId));
// 换标费用以申请为主业务,履约详情同时保留旧订单费用和新申请费用。
if ("RELABEL_APPLICATION".equals(order.getOrderType()))
orderFees.addAll(manualFees.relabelFeesForOrder(order.getCustomerId(), orderId));
List<OverseasFeeSource> fees = manualFees.describe(orderFees);
List<LastlegOrderOperationLog> operations = operationLogMapper.selectList(
new LambdaQueryWrapper<LastlegOrderOperationLog>()
.eq(LastlegOrderOperationLog::getCustomerId, order.getCustomerId())
@@ -438,22 +445,22 @@ public class LastlegOrderService {
? returnReceipts.detail(order.getCustomerId(), order.getSourceOrderNo()) : null);
}
/** 订单详情统一委托人工费用服务,头程待审核入账,海外业务先锁款。 */
@Transactional
public OverseasFeeSource createFee(String customerId, long orderId, LastlegOrderRequests.CreateFee request,
String operatorName, String idempotencyKey) {
LastlegOrder order = findOwned(customerId, orderId);
LocalDateTime now = LocalDateTime.now();
OverseasFeeSource fee = feeSources.create(operatorName, idempotencyKey,
OverseasFeeSource fee = manualFees.create(operatorName, idempotencyKey,
new OverseasFeeSourceDtos.SaveRequest(order.getCustomerId(), order.getCustomerName(),
"OVERSEAS_ORDER_FEE", "LASTLEG_ORDER", orderId, order.getOrderNo(), orderId,
null, order.getInboundCode(), null, parseLong(order.getSourceContainerBookingId()),
order.getContainerNo(), parseLong(order.getOverseasWarehouseId()), request.feeItemCode(),
request.feeItemName(), request.direction(), request.supplierId(), request.supplierName(),
request.feeItemName(), request.feeRemark(), request.direction(), request.supplierId(), request.supplierName(),
request.supplierCategory(), request.settlementMode(), request.paidAt(), request.paymentMethod(),
request.paymentReferenceNo(), request.paymentVoucherFileIds(), request.businessDate(),
request.currency(), request.amount(), request.chargeableQuantity(), request.quantityUnit(),
request.unitPrice(), request.periodStart(), request.periodEnd()));
fee = feeSources.submit(fee.getSourceFeeId(), operatorName, childKey(idempotencyKey, "submit"));
LastlegOrderOperationLog operation = new LastlegOrderOperationLog();
operation.setId(IdWorker.getId());