8 小时以前 e1e0d48eb7ab2b305e6062f23610f8be9db3bed6
src/api/mes/wm/materialstock/index.ts
@@ -24,9 +24,31 @@
    vendorId?: number; // 供应商编号
    vendorName?: string; // 供应商名称
    quantity?: number; // 在库数量
    frozenQuantity?: number; // 冻结数量
    reservedQuantity?: number; // 占用量
    inTransitQuantity?: number; // 在途量
    availableQuantity?: number; // 可用量
    stockState?: number; // 库存状态:10暂存库,20合格库,30已出库
    expiryDate?: string; // 有效期
    ageDays?: number; // 库龄天数
    warningLevel?: 'LOW_STOCK' | 'EXPIRING' | 'AGEING' | null; // 风险类型
    receiptTime?: string; // 入库日期
    frozen?: boolean; // 是否冻结
    createTime?: Date; // 创建时间
  }
  /** 库存汇总结果 */
  export interface MaterialStockSummary {
    itemId?: number; // 品种ID(按品种汇总时返回)
    itemCode?: string; // 品种编码
    itemName?: string; // 品种名称
    batchId?: number; // 批次ID(按批次汇总时返回)
    batchCode?: string; // 批次号
    warehouseId?: number; // 仓库ID(按仓库汇总时返回)
    warehouseName?: string; // 仓库名称
    stockState?: number; // 库存状态
    stockStateName?: string; // 库存状态名称
    totalQuantity?: number; // 汇总数量
  }
}
@@ -59,3 +81,112 @@
    params,
  });
}
/** 库存调整(自定义出入库)- 入库 */
export interface MaterialStockAdjustInParams {
  itemId: number; // 物料ID
  warehouseId: number; // 仓库ID
  locationId: number; // 库区ID
  areaId: number; // 库位ID
  batchId?: number; // 批次ID(选择已有批次时传入)
  batchCode?: string; // 批次号(新建批次时传入)
  produceDate?: string; // 生产日期(新建批次时传入)
  expireDate?: string; // 有效期(新建批次时传入)
  receiptDate?: string; // 入库日期
  vendorId?: number; // 供应商ID
  purchaseOrderCode?: string; // 采购订单号
  lotNumber?: string; // 生产批号
  qualityStatus?: string; // 质量状态
  quantity: number; // 入库数量(必须大于0)
  reason?: string; // 入库原因
}
/** 库存调整(自定义出入库)- 出库 */
export interface MaterialStockAdjustOutParams {
  itemId: number; // 物料ID
  warehouseId: number; // 仓库ID
  locationId: number; // 库区ID
  areaId: number; // 库位ID
  batchId?: number; // 批次ID
  batchCode?: string; // 批次号
  vendorId?: number; // 供应商ID
  quantity: number; // 出库数量(必须大于0)
  reason?: string; // 出库原因
}
/** 自定义入库 */
export function adjustMaterialStockIn(data: MaterialStockAdjustInParams) {
  return requestClient.post<number>('/mes/wm/material-stock/adjust-in', data);
}
/** 自定义出库 */
export function adjustMaterialStockOut(data: MaterialStockAdjustOutParams) {
  return requestClient.post<number>('/mes/wm/material-stock/adjust-out', data);
}
/** 库存移库 */
export interface MaterialStockMoveParams {
  materialStockId: number; // 库存记录ID
  toWarehouseId: number; // 目标仓库ID
  toLocationId: number; // 目标库区ID
  toAreaId: number; // 目标库位ID
  quantity: number; // 移库数量
  remark?: string; // 备注
}
/** 库存移库 */
export function moveMaterialStock(data: MaterialStockMoveParams) {
  return requestClient.post<boolean>('/mes/wm/material-stock/move', data);
}
/** 库存调整(正数=入库,负数=出库)- 旧接口,保留兼容 */
export interface MaterialStockAdjustParams {
  itemId: number; // 物料ID
  warehouseId: number; // 仓库ID
  locationId: number; // 库区ID
  areaId: number; // 库位ID
  batchId?: number; // 批次ID
  batchCode?: string; // 批次号
  vendorId?: number; // 供应商ID
  quantity: number; // 调整数量(正数=入库,负数=出库)
  reason?: string; // 调整原因
}
/** 库存调整(正数=入库,负数=出库) - 旧接口,保留兼容 */
export function adjustMaterialStock(data: MaterialStockAdjustParams) {
  return requestClient.post<number>('/mes/wm/material-stock/adjust', data);
}
/** 库存汇总查询参数 */
export interface MaterialStockSummaryParams {
  stockState?: number; // 库存状态:10暂存库,20合格库,30已出库
  itemId?: number; // 品种ID
  batchCode?: string; // 批次号
  warehouseId?: number; // 仓库ID
  locationId?: number; // 库区ID
  areaId?: number; // 库位ID
}
/** 按品种汇总库存数量 */
export function getStockSummaryByItem(params: MaterialStockSummaryParams) {
  return requestClient.get<MesWmMaterialStockApi.MaterialStockSummary[]>(
    '/mes/wm/material-stock/summary-by-item',
    { params },
  );
}
/** 按批次汇总库存数量 */
export function getStockSummaryByBatch(params: MaterialStockSummaryParams) {
  return requestClient.get<MesWmMaterialStockApi.MaterialStockSummary[]>(
    '/mes/wm/material-stock/summary-by-batch',
    { params },
  );
}
/** 按仓库汇总库存数量 */
export function getStockSummaryByWarehouse(params: MaterialStockSummaryParams) {
  return requestClient.get<MesWmMaterialStockApi.MaterialStockSummary[]>(
    '/mes/wm/material-stock/summary-by-warehouse',
    { params },
  );
}