fix: align audit and dispatch workflows and release failed requests

This commit is contained in:
2026-10-22 23:10:09 +08:00
parent 9cdcb9c077
commit 4a3456756f
124 changed files with 1296 additions and 2120 deletions
@@ -1,3 +1,5 @@
export interface DispatchDestinationAppointment { destinationKey: string; appointmentNo: string | null }
export interface DispatchVehicleMaintenance {
plannedDeliveryDate: string | null
deliveryMethod: string | null
@@ -6,16 +8,16 @@ export interface DispatchVehicleMaintenance {
fleetEmail: string | null
vehicleType: string | null
appointmentAccount: string | null
appointmentNo: string | null
destinationAppointments: DispatchDestinationAppointment[]
}
/** 本车补充资料保持未填为空,不从原型示例或实际发车时间推定。 */
export function blankVehicleMaintenance(): DispatchVehicleMaintenance {
return { plannedDeliveryDate: null, deliveryMethod: null, pickupMethod: null, loadType: null, fleetEmail: null, vehicleType: null, appointmentAccount: null, appointmentNo: null }
return { plannedDeliveryDate: null, deliveryMethod: null, pickupMethod: null, loadType: null, fleetEmail: null, vehicleType: null, appointmentAccount: null, destinationAppointments: [] }
}
/** 保存前只整理已填写资料,不据补充资料触发派送、预约或费用。 */
export function vehicleMaintenancePayload(value: DispatchVehicleMaintenance): DispatchVehicleMaintenance {
const text = (item: string | null) => item?.trim() || null
return { plannedDeliveryDate: text(value.plannedDeliveryDate), deliveryMethod: text(value.deliveryMethod), pickupMethod: text(value.pickupMethod), loadType: text(value.loadType), fleetEmail: text(value.fleetEmail), vehicleType: text(value.vehicleType), appointmentAccount: text(value.appointmentAccount), appointmentNo: text(value.appointmentNo) }
return { plannedDeliveryDate: text(value.plannedDeliveryDate), deliveryMethod: text(value.deliveryMethod), pickupMethod: text(value.pickupMethod), loadType: text(value.loadType), fleetEmail: text(value.fleetEmail), vehicleType: text(value.vehicleType), appointmentAccount: text(value.appointmentAccount), destinationAppointments: value.destinationAppointments.map(row => ({ destinationKey: row.destinationKey, appointmentNo: text(row.appointmentNo) })) }
}