This commit is contained in:
2026-10-20 14:00:59 +08:00
parent 1e26ddad4b
commit 64697276ec
12 changed files with 212 additions and 25 deletions
@@ -1,12 +1,19 @@
import { apiRequest } from '@/api/http'
export interface RelabelQuantity {
sourcePalletCount?: number | string | null
targetPalletCount?: number | string | null
sourceUnitCounts?: Record<string, number | string> | null
labelPieceCount: number | string | null
cartonCount: number | string | null
skuCount: number | string
duplicateCarton: boolean
}
export interface RelabelQuantityTotals {
knownSourcePalletCount?: number | string
unknownSourcePalletOrders?: number | string
knownTargetPalletCount?: number | string
unknownTargetPalletOrders?: number | string
orderCount: number | string
skuCount: number | string
knownLabelPieceCount: number | string
@@ -2,6 +2,10 @@ import { apiRequest, apiBlobRequest } from '@/api/http'
import type { PageResult } from './warehouseServices'
export interface ReturnOrderSummary {
remainingQuantity?: number
receivedBoxCount?: number
receivedParcelCount?: number
receivedPalletCount?: number
relabelApplications?: Array<{ relabelNo: string; status: string; quantity: number; quantityUnit?: string; createdAt: string }>
returnNo: string; overseasWarehouseId: string; warehouseContactName?: string; warehouseContactPhone?: string; customerReferenceNo?: string; status: string
skuTypes: number; expectedQuantity: number; receivedQuantity: number; needRelabel: boolean; relabelNo?: string; relabelStatus?: string; createdAt: string
@@ -30,6 +34,13 @@ export interface ReturnOrderCreate {
export function listReturnOrders(params: Record<string, unknown>) {
return apiRequest<PageResult<ReturnOrderSummary>>({ method: 'GET', url: '/merchant/v1/last-leg/return-orders', params })
}
export interface ReturnOrderStatistics {
totals: { orderCount: number; skuTypes: number; expectedQuantity: number; receivedQuantity: number; remainingQuantity: number; receivedBoxCount: number; receivedParcelCount: number; receivedPalletCount: number }
pageDimensions: Array<{ returnNo: string; remainingQuantity: number; receivedBoxCount: number; receivedParcelCount: number; receivedPalletCount: number }>
}
export function getReturnOrderStatistics(params: Record<string, unknown>) {
return apiRequest<ReturnOrderStatistics>({ method: 'GET', url: '/merchant/v1/last-leg/return-orders/statistics', params })
}
export function getReturnOrder(returnNo: string) {
return apiRequest<ReturnOrderDetail>({ method: 'GET', url: `/merchant/v1/last-leg/return-orders/${encodeURIComponent(returnNo)}` })
}
@@ -0,0 +1,23 @@
import { apiRequest } from '@/api/http'
export interface TransferQuantityTotals {
orderCount: number | string
declaredPieceCount: number | string | null
knownDeclaredPieceCount: number | string
unknownDeclaredOrderCount: number | string
receivedPieceCount: number | string | null
knownReceivedPieceCount: number | string
unknownReceivedOrderCount: number | string
declaredCartonCount: number | string
receivedCartonCount: number | string
receivedPalletCount: number | string
availableCartonCount: number | string
shippedCartonCount: number | string
remainingPalletCount: number | string
shippedPalletCount: number | string
}
/** 客户范围由会话决定,汇总使用本次列表完整筛选。 */
export function getTransferQuantities(params: Record<string, unknown>) {
return apiRequest<TransferQuantityTotals>({ method: 'GET', url: '/merchant/v1/last-leg/warehouse-transfers/quantities', params })
}
@@ -25,8 +25,8 @@ export interface RelabelDetail {
tailOrders?: Array<{ id: string; orderNo: string; overseasWarehouseId: string; packageCount: number; status: string }>
completionEvidence?: { taskId: string; photoFileIds: string[]; completionRemark?: string; reviewerName?: string; reviewRemark?: string; completedAt?: string; customerConfirmedAt?: string }
}
export interface DiscardSummary { id: string; discardNo: string; outboundNo?: string; inboundCodes: string; overseasWarehouseId: string; overseasWarehouseName: string; totalPackages: number; totalFee: number; currency: string; status: string; createdAt: string; completedAt?: string; customerConfirmedAt?: string }
export interface DiscardBox { cartonId: string; cartonMark: string; palletNo?: string; skus: Array<{ skuCode: string; productName: string; availablePackages: number }> }
export interface DiscardSummary { id: string; discardNo: string; outboundNo?: string; inboundCodes: string; overseasWarehouseId: string; overseasWarehouseName: string; totalPackages: number; totalFee: number; currency: string; status: string; createdAt: string; completedAt?: string; customerConfirmedAt?: string; skuCodes: string[]; skuCount: number; requestedPackages: number; actualPackages: number | null }
export interface DiscardBox { cartonId: string; cartonMark: string; palletNo?: string; skus: Array<{ skuCode: string; productName: string; availablePackages: number; availablePieces?: number | null }> }
export interface DiscardCandidate { cartons?: DiscardBox[]; cartonSelectionSupported?: boolean; cartonSelectionBlockReason?: string; orderId: string; sourceType?: 'DROPSHIP' | 'RETURN_CARTON' | 'INVENTORY'; inventoryPositionId?: string; palletNo?: string; returnCartonId?: string; cartonMark?: string; inboundCode: string; inboundOrderNo: string; overseasWarehouseId: string; overseasWarehouseName: string; availablePackages: number; skus: Array<{ skuCode: string; productName: string; availablePackages: number }> }
export interface RelabelInventoryCandidate {
cartonSkuItems: Array<{ skuCode: string; quantity: number }>; cartonAvailablePackages: number | string