delivery.ts 2.94 KB
import { request } from '../utils/request'

// 出库相关类型定义
export interface DeliveryInfo {
  deliveryId: number
  deliveryNo: string
  dealerCode: string
  dealerName: string
  orderNo: string
  deliveryDate: string
  deliveryStatus: number
  warehouseCode: string
  dataSource: string
  uploadTime?: string
  createBy?: string
  createTime?: string
  updateBy?: string
  updateTime?: string
  deliveryItems?: DeliveryItemInfo[]
}

export interface DeliveryItemInfo {
  itemId?: number
  deliveryId?: number
  productCode: string
  productName: string
  deliveryQty: number
  deliveryPrice: number
  deliveryAmount: number
}

export interface DeliveryQueryReq {
  deliveryNo?: string
  dealerCode?: string
  dealerName?: string
  deliveryStatus?: number
  warehouseCode?: string
  dataSource?: string
  deliveryStartDate?: string
  deliveryEndDate?: string
  minAmount?: number
  maxAmount?: number
  pageNum?: number
  pageSize?: number
}

export interface DeliveryAddReq {
  deliveryNo: string
  dealerCode: string
  dealerName: string
  orderNo: string
  deliveryDate: string
  deliveryStatus?: number
  warehouseCode: string
  dataSource?: string
  deliveryItems: DeliveryItemAddReq[]
}

export interface DeliveryItemAddReq {
  productCode: string
  productName: string
  deliveryQty: number
  deliveryPrice: number
  deliveryAmount: number
}

export interface DeliveryUpdateReq {
  deliveryId: number
  deliveryNo: string
  dealerCode: string
  dealerName: string
  orderNo: string
  deliveryDate: string
  deliveryStatus?: number
  warehouseCode: string
  dataSource?: string
  deliveryItems: DeliveryItemUpdateReq[]
}

export interface DeliveryItemUpdateReq {
  itemId?: number
  productCode: string
  productName: string
  deliveryQty: number
  deliveryPrice: number
  deliveryAmount: number
}

// 出库API接口
export const deliveryApi = {
  // 分页查询出库列表
  getDeliveryList: (params: DeliveryQueryReq) => {
    return request.get('/api/delivery/list', params)
  },

  // 获取出库详情
  getDeliveryDetail: (deliveryId: number) => {
    return request.get(`/api/delivery/${deliveryId}`)
  },

  // 新增出库
  addDelivery: (data: DeliveryAddReq) => {
    return request.post('/api/delivery', data)
  },

  // 修改出库
  updateDelivery: (data: DeliveryUpdateReq) => {
    return request.post('/api/delivery/update', data)
  },

  // 删除出库
  deleteDelivery: (deliveryId: number) => {
    return request.delete(`/api/delivery/${deliveryId}`)
  },

  // 批量删除出库
  batchDeleteDeliveries: (deliveryIds: number[]) => {
    return request.post('/api/delivery/batchDelete', deliveryIds)
  },

  // 修改出库状态
  updateDeliveryStatus: (deliveryId: number, deliveryStatus: number) => {
    return request.post(`/api/delivery/${deliveryId}/deliveryStatus`, { deliveryStatus })
  },

  // 导出出库数据
  exportDeliveries: (params: DeliveryQueryReq) => {
    return request.post('/api/delivery/export', params, { responseType: 'blob' })
  }
}