适配 M002 V3 前端任务流与同卡复核
This commit is contained in:
@@ -7,6 +7,8 @@ import { getJson, sendJson } from '@/services/httpClient'
|
||||
import type {
|
||||
ReservationManualReviewConversionRequest,
|
||||
ReservationManualReviewConversionResult,
|
||||
ReservationManualReviewResolutionRequest,
|
||||
ReservationManualReviewResolutionResult,
|
||||
ReservationOperaOperationResult,
|
||||
ReservationOperaSimulationRequest,
|
||||
ReservationOrderDetailResult,
|
||||
@@ -91,6 +93,20 @@ export async function convertReservationManualReviewTask(
|
||||
)
|
||||
}
|
||||
|
||||
export async function resolveReservationManualReviewTask(
|
||||
taskId: string,
|
||||
request: ReservationManualReviewResolutionRequest,
|
||||
): Promise<ReservationManualReviewResolutionResult> {
|
||||
if (useReservationFixtures) {
|
||||
return fixtureManualReviewResolution(taskId, request)
|
||||
}
|
||||
return sendJson<ReservationManualReviewResolutionResult>(
|
||||
`/api/reservation/tasks/${encodeURIComponent(taskId)}/manual-review-resolutions`,
|
||||
'POST',
|
||||
request,
|
||||
)
|
||||
}
|
||||
|
||||
export async function executeReservationOperaOperation(
|
||||
taskId: string,
|
||||
operationId: string,
|
||||
@@ -180,6 +196,40 @@ function fixtureTaskMutation(
|
||||
}))
|
||||
}
|
||||
|
||||
function fixtureManualReviewResolution(
|
||||
taskId: string,
|
||||
request: ReservationManualReviewResolutionRequest,
|
||||
): Promise<ReservationManualReviewResolutionResult> {
|
||||
return fixtureTaskDetail(taskId).then((detail) => {
|
||||
const confirmedPayload = Object.fromEntries(
|
||||
request.field_overrides.map((item) => [fieldPointerToFixturePath(item.field_pointer), item.value]),
|
||||
)
|
||||
return {
|
||||
task_id: detail.task_id,
|
||||
order_id: detail.order_id,
|
||||
task_status: 'READY',
|
||||
review_status: 'RESOLVED',
|
||||
review_resolution: {
|
||||
confirmed_order_id: request.confirmed_order_id ?? detail.order_id,
|
||||
reason: request.reason ?? null,
|
||||
field_overrides: request.field_overrides,
|
||||
},
|
||||
confirmed_payload: {
|
||||
...(detail.confirmed_payload ?? {}),
|
||||
...confirmedPayload,
|
||||
},
|
||||
opera_operations: detail.opera_operations,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function fieldPointerToFixturePath(fieldPointer: string): string {
|
||||
if (fieldPointer === '/extracted_fields/room_items/0/pms_room_type_code') {
|
||||
return 'extracted_fields.pms_room_type_code'
|
||||
}
|
||||
return fieldPointer.replace(/^\//, '').replace(/\//g, '.')
|
||||
}
|
||||
|
||||
async function fixtureOperaOperation(
|
||||
taskId: string,
|
||||
operationId: string,
|
||||
|
||||
Reference in New Issue
Block a user