打通 T+ 快照、业务、发货、回款和核算准备链路,保留来源差异并提供待补状态。 新增业务自动接入任务、跨平台读取服务托管、权限复核、来源关联和前端核对页面。 补充迁移、隔离集成测试、浏览器模拟验收及角色授权边界修复。
118 lines
4.0 KiB
TypeScript
118 lines
4.0 KiB
TypeScript
import { request } from './request'
|
||
import type { PageData } from './types'
|
||
|
||
/**
|
||
* 回款列表项(对应后端 `ReceiptOut`;字段契约纯蛇形直出)。
|
||
*
|
||
* amount 字符串直出(金额红线);payment_days 为派生值:未指定发货
|
||
* 批次时为 null,指定后 = 发货日到回款日的天数(发货日计第 1 天)。
|
||
*/
|
||
export interface ReceiptItem {
|
||
id: number
|
||
receipt_batch_no: string
|
||
business_id: number
|
||
business_no: string
|
||
shipment_id: number | null
|
||
shipment_no: string | null
|
||
/** 回款到账日,ISO 串(YYYY-MM-DD);M3 核算按此日匹配参数版本 */
|
||
receipt_date: string
|
||
/** 回款金额(元),字符串直出 */
|
||
amount: string
|
||
/** 以物抵顶标记:1是 0否(绩效按比例折算) */
|
||
is_barter: number
|
||
/** 核算状态:0未核算 1已核算(已核算禁改禁删) */
|
||
settlement_status: number
|
||
confirmation_status: number
|
||
confirmed_by: string | null
|
||
confirmed_at: string | null
|
||
confirmation_revision: string
|
||
payment_days: number | null
|
||
remark: string | null
|
||
}
|
||
|
||
export interface ReceiptQueryParams {
|
||
pageNum?: number
|
||
pageSize?: number
|
||
business_id?: number
|
||
/** 回款到账日起(含),ISO 串 */
|
||
date_from?: string
|
||
/** 回款到账日止(含),ISO 串 */
|
||
date_to?: string
|
||
is_barter?: number
|
||
settlement_status?: number
|
||
confirmation_status?: number
|
||
}
|
||
|
||
/**
|
||
* 新增回款:业务必选,发货批次可暂不指定(手动指定)。
|
||
*
|
||
* shipment_id 须与本回款同属一个业务(后端强校验,数据完整性红线)。
|
||
*/
|
||
export interface ReceiptCreateParams {
|
||
business_id: number
|
||
shipment_id?: number | null
|
||
receipt_date: string
|
||
/** 数字字符串,非负,最多两位小数 */
|
||
amount: string
|
||
is_barter?: number
|
||
remark?: string | null
|
||
}
|
||
|
||
/**
|
||
* 编辑回款:全量替换语义;不含 business_id(挂靠业务创建时定死)。
|
||
*
|
||
* shipment_id 传 null = 清除指定(回到「暂未指定」)。
|
||
*/
|
||
export interface ReceiptUpdateParams {
|
||
shipment_id?: number | null
|
||
receipt_date: string
|
||
amount: string
|
||
is_barter?: number
|
||
remark?: string | null
|
||
}
|
||
|
||
/** 以物抵顶筛选项 */
|
||
export const BARTER_OPTIONS = [
|
||
{ label: '以物抵顶', value: 1 },
|
||
{ label: '货币回款', value: 0 },
|
||
] as const
|
||
|
||
/** 核算状态筛选项(与列表标签文案一致) */
|
||
export const SETTLEMENT_OPTIONS = [
|
||
{ label: '已核算', value: 1 },
|
||
{ label: '未核算', value: 0 },
|
||
] as const
|
||
|
||
/** 分页查询回款(附业务号/发货单号与回款天数派生值) */
|
||
export function listReceipts(params: ReceiptQueryParams): Promise<PageData<ReceiptItem>> {
|
||
return request({ url: '/v1/business/receipts', method: 'get', params })
|
||
}
|
||
|
||
export function getConfirmationPolicy(): Promise<{ enabled: boolean }> {
|
||
return request({ url: '/v1/business/receipts/confirmation-policy', method: 'get' })
|
||
}
|
||
|
||
export function confirmReceipt(row: ReceiptItem): Promise<ReceiptItem> {
|
||
return request({ url: `/v1/business/receipts/${row.id}/confirm`, method: 'post', data: { expected_revision: row.confirmation_revision } })
|
||
}
|
||
|
||
/** 新增回款(批次号自动生成 HK 前缀;业务须执行中) */
|
||
export function createReceipt(data: ReceiptCreateParams): Promise<ReceiptItem> {
|
||
return request({ url: '/v1/business/receipts', method: 'post', data })
|
||
}
|
||
|
||
/** 回款详情(含回款天数派生值) */
|
||
export function getReceiptDetail(receiptId: number): Promise<ReceiptItem> {
|
||
return request({ url: `/v1/business/receipts/${receiptId}`, method: 'get' })
|
||
}
|
||
|
||
/** 编辑回款(全量替换;已核算回款后端拒绝) */
|
||
export function updateReceipt(receiptId: number, data: ReceiptUpdateParams): Promise<ReceiptItem> {
|
||
return request({ url: `/v1/business/receipts/${receiptId}`, method: 'put', data })
|
||
}
|
||
|
||
/** 删除回款(已核算/业务非执行中时后端拒绝;业务回款合计自动回退) */
|
||
export function deleteReceipt(receiptId: number): Promise<null> {
|
||
return request({ url: `/v1/business/receipts/${receiptId}`, method: 'delete' })
|
||
}
|