提交
This commit is contained in:
1 parent
ecde2ba07d
commit
06d021807b
61 files changed
+14874
-8772
No files matched your search
@@ -2,6 +2,7 @@ import { describe, it } from 'node:test'
|
||||
import assert from 'node:assert/strict'
|
||||
import {
|
||||
collectDfjTransferIds,
|
||||
flattenSamplePaymentTransfers,
|
||||
formatAutoSubmitFinanceFailureMessage,
|
||||
submitDfjTransfersOnSave
|
||||
} from './presign-save-auto-submit'
|
||||
@@ -30,6 +31,31 @@ describe('presign-save-auto-submit', () => {
|
||||
)
|
||||
})
|
||||
|
||||
it('formats protocol entity label', () => {
|
||||
assert.equal(
|
||||
formatAutoSubmitFinanceFailureMessage([{ id: 't1', message: '请选择转账方式' }], '协议'),
|
||||
'协议已保存,但有 1 笔提交财务确认失败:请选择转账方式'
|
||||
)
|
||||
})
|
||||
|
||||
it('flattens sample payment transfers', () => {
|
||||
assert.deepEqual(
|
||||
flattenSamplePaymentTransfers([
|
||||
{
|
||||
schedules: [
|
||||
{ transfers: [{ id: 'a', payStatus: 'dfj' }] },
|
||||
{ transfers: [{ id: 'b', payStatus: 'jfqrz' }, null] }
|
||||
]
|
||||
},
|
||||
{ schedules: [] }
|
||||
]),
|
||||
[
|
||||
{ id: 'a', payStatus: 'dfj' },
|
||||
{ id: 'b', payStatus: 'jfqrz' }
|
||||
]
|
||||
)
|
||||
})
|
||||
|
||||
it('continues submitting after one failure', async () => {
|
||||
const calls: string[] = []
|
||||
const failures = await submitDfjTransfersOnSave(
|
||||
|
||||
@@ -22,7 +22,8 @@ export function collectDfjTransferIds(
|
||||
}
|
||||
|
||||
export function formatAutoSubmitFinanceFailureMessage(
|
||||
failures: Array<AutoSubmitFailure | string> | null | undefined
|
||||
failures: Array<AutoSubmitFailure | string> | null | undefined,
|
||||
entityLabel = '订单'
|
||||
): string {
|
||||
const list = Array.isArray(failures) ? failures.filter(Boolean) : []
|
||||
if (!list.length) return ''
|
||||
@@ -33,7 +34,26 @@ export function formatAutoSubmitFinanceFailureMessage(
|
||||
: String(item?.message || '提交失败').trim()
|
||||
)
|
||||
.filter(Boolean)
|
||||
return `订单已保存,但有 ${list.length} 笔提交财务确认失败:${reasons.join(';')}`
|
||||
const label = String(entityLabel || '订单').trim() || '订单'
|
||||
return `${label}已保存,但有 ${list.length} 笔提交财务确认失败:${reasons.join(';')}`
|
||||
}
|
||||
|
||||
/** 从 v2 samplePayments 展平全部转账笔(供保存后自动提交财务) */
|
||||
export function flattenSamplePaymentTransfers(
|
||||
samplePayments: Array<Record<string, any>> | null | undefined
|
||||
): PresignTransferLike[] {
|
||||
const payments = Array.isArray(samplePayments) ? samplePayments : []
|
||||
const out: PresignTransferLike[] = []
|
||||
for (const pay of payments) {
|
||||
const schedules = Array.isArray(pay?.schedules) ? pay.schedules : []
|
||||
for (const sch of schedules) {
|
||||
const transfers = Array.isArray(sch?.transfers) ? sch.transfers : []
|
||||
for (const tr of transfers) {
|
||||
if (tr && typeof tr === 'object') out.push(tr)
|
||||
}
|
||||
}
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
export async function submitDfjTransfersOnSave(
|
||||
|
||||
Reference in new issue
Block a user