From e1e0d48eb7ab2b305e6062f23610f8be9db3bed6 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期六, 29 八月 2026 13:46:26 +0800
Subject: [PATCH] feat(wms): 新增库存汇总统计与预警功能

---
 src/api/mes/wm/materialstock/index.ts |   67 +++++++++++++++++++++++++++++++++
 1 files changed, 67 insertions(+), 0 deletions(-)

diff --git a/src/api/mes/wm/materialstock/index.ts b/src/api/mes/wm/materialstock/index.ts
index 97f95b1..7316dc2 100644
--- a/src/api/mes/wm/materialstock/index.ts
+++ b/src/api/mes/wm/materialstock/index.ts
@@ -28,9 +28,27 @@
     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; // 姹囨�绘暟閲�
   }
 }
 
@@ -106,6 +124,21 @@
   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);
+}
+
 /** 搴撳瓨璋冩暣锛堟鏁�=鍏ュ簱锛岃礋鏁�=鍑哄簱锛�- 鏃ф帴鍙o紝淇濈暀鍏煎 */
 export interface MaterialStockAdjustParams {
   itemId: number; // 鐗╂枡ID
@@ -123,3 +156,37 @@
 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 },
+  );
+}

--
Gitblit v1.9.3