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 | 133 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 132 insertions(+), 1 deletions(-)
diff --git a/src/api/mes/wm/materialstock/index.ts b/src/api/mes/wm/materialstock/index.ts
index cd76951..7316dc2 100644
--- a/src/api/mes/wm/materialstock/index.ts
+++ b/src/api/mes/wm/materialstock/index.ts
@@ -1,4 +1,4 @@
-import type { PageParam, PageResult } from '..\..\..\..\packages\effects\request\src';
+import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
@@ -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; // 渚涘簲鍟咺D
+ 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; // 渚涘簲鍟咺D
+ 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);
+}
+
+/** 搴撳瓨璋冩暣锛堟鏁�=鍏ュ簱锛岃礋鏁�=鍑哄簱锛�- 鏃ф帴鍙o紝淇濈暀鍏煎 */
+export interface MaterialStockAdjustParams {
+ itemId: number; // 鐗╂枡ID
+ warehouseId: number; // 浠撳簱ID
+ locationId: number; // 搴撳尯ID
+ areaId: number; // 搴撲綅ID
+ batchId?: number; // 鎵规ID
+ batchCode?: string; // 鎵规鍙�
+ vendorId?: number; // 渚涘簲鍟咺D
+ quantity: number; // 璋冩暣鏁伴噺锛堟鏁�=鍏ュ簱锛岃礋鏁�=鍑哄簱锛�
+ reason?: string; // 璋冩暣鍘熷洜
+}
+
+/** 搴撳瓨璋冩暣锛堟鏁�=鍏ュ簱锛岃礋鏁�=鍑哄簱锛� - 鏃ф帴鍙o紝淇濈暀鍏煎 */
+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