feat(finance): 统一履约事实并改造人工账单分类

This commit is contained in:
yml2213
2026-10-23 13:35:48 +08:00
parent fb80cad695
commit 5d1ba11523
18 changed files with 764 additions and 123 deletions
@@ -63,7 +63,8 @@ import {
import { isRetiredFulfillmentExecutor } from '../fulfillment/executors/types.js'
import {
mapAdminOrderListItem,
resolveOrderFulfillmentType,
normalizeOrderItemFulfillmentMode,
resolveOrderFulfillmentSummary,
summarizeOrderItems,
} from './admin-order-read-helpers.js'
import {
@@ -190,8 +191,8 @@ export async function getAdminOrderDetail(
const orderItemTitle = resolveOrderItemTitle(items[0], order, kuaishouIndustryVouchers)
const orderSkuNick = resolveOrderItemSkuNick(items[0], order, kuaishouIndustryVouchers)
const viewerContext = createAdminViewerContext(session)
const { fulfillmentType, canClaimH5 } = resolveOrderFulfillmentType({
provider: order.provider || '',
const fulfillment = resolveOrderFulfillmentSummary({
items,
tasks,
workOrderCount: workOrders.length,
vouchers: kuaishouIndustryVouchers,
@@ -227,18 +228,23 @@ export async function getAdminOrderDetail(
claimStatus: order.claim_status || 'active',
claimStatusReason: order.claim_status_reason || '',
claimStatusUpdatedAt: order.claim_status_updated_at || null,
fulfillmentType,
fulfillmentMode: fulfillment.fulfillmentMode,
manualItemCount: fulfillment.manualItemCount,
pendingItemCount: fulfillment.pendingItemCount,
hasVoucher: fulfillment.hasVoucher,
voucherState: fulfillment.voucherState,
workOrderCount: workOrders.length,
canClaimH5,
canClaimH5: fulfillment.canClaimH5,
},
items: items.map((item) => ({
orderItemId: item.id,
orderItemId: Number(item.id),
skuCode: item.sku_code,
skuName: item.sku_name,
itemTitle: resolveOrderItemTitle(item, order, kuaishouIndustryVouchers),
skuNick: resolveOrderItemSkuNick(item, order, kuaishouIndustryVouchers),
matchSku: resolveOrderItemMatchSku(item, order, kuaishouIndustryVouchers),
quantity: item.quantity,
fulfillmentMode: normalizeOrderItemFulfillmentMode(item.fulfillment_mode),
deliveryMode: resolveOrderItemDeliveryMode(tasks, item.id),
spec:
item.spec_json && typeof item.spec_json === 'object'