From eacbd6d2f0a4fb7820fcf856f9cc025bea1ea39a Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期四, 29 十月 2026 09:27:04 +0800
Subject: [PATCH] fix: 原型编制

---
 src/api/timeSensitiveTask.ts |   46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 46 insertions(+), 0 deletions(-)

diff --git a/src/api/timeSensitiveTask.ts b/src/api/timeSensitiveTask.ts
index b025a91..c258d6c 100644
--- a/src/api/timeSensitiveTask.ts
+++ b/src/api/timeSensitiveTask.ts
@@ -498,6 +498,36 @@
     setTimeout(() => resolve({ code: 200, msg, data }), 120);
   });
 
+/* ==================== 棰嗙敤缁熻 ==================== */
+
+/** 棰嗙敤缁熻琛岋細鎸変骇鍝佸ぇ绫� + 瑙勬牸鍨嬪彿姹囨�� */
+export interface RequisitionStatVO {
+  /** 浜у搧澶х被 */
+  categoryName: string;
+  /** 瑙勬牸鍨嬪彿 */
+  model: string;
+  /** 鏁伴噺锛堜欢锛� */
+  count: number;
+}
+
+/** 浠庡搷搴旈噷鍙栧嚭缁熻鏁扮粍锛堝吋瀹� data 鐩存帴鏄暟缁� / 鍒嗛〉瀵硅薄锛� */
+const extractStatRows = (data: any): any[] => {
+  if (Array.isArray(data)) return data;
+  return data?.records ?? data?.list ?? data?.rows ?? [];
+};
+
+/**
+ * 褰掍竴鍖栫粺璁¤銆�
+ * 鍚庣绾﹀畾锛氫骇鍝佸ぇ绫� categoryName銆佽鏍煎瀷鍙� model銆佹暟閲� count
+ * 锛堝叾浣欓敭鍚嶄负鍏煎鍏滃簳锛岀‘璁ゅ悗绔瓧娈靛悗鍙互鍒犳帀锛�
+ */
+const normalizeStatRows = (rows: any[]): RequisitionStatVO[] =>
+  (rows || []).map((row) => ({
+    categoryName: String(row?.categoryName ?? row?.productCategory ?? ""),
+    model: String(row?.model ?? row?.specificationModel ?? ""),
+    count: Number(row?.count ?? row?.itemCount ?? 0),
+  }));
+
 const mockMaterialCode = (item: any) =>
   String(item?.flowCode || item?.batchCode || item?.monofilamentNumber || "").trim();
 
@@ -590,6 +620,22 @@
     });
   },
 
+  /**
+   * 棰嗙敤缁熻锛氭寜浜у搧澶х被 + 瑙勬牸鍨嬪彿姹囨�诲綋鍓嶅凡棰嗙敤鏁伴噺
+   * POST /timeSensitiveTask/requisitionStats  { taskId, materialType }
+   */
+  async getRequisitionStats(taskId: number | string, materialType?: string) {
+    const res = await request<BaseResult<any>>({
+      url: "/timeSensitiveTask/requisitionStats",
+      method: "POST",
+      data: { taskId, materialType } as any,
+    });
+    return {
+      ...res,
+      data: normalizeStatRows(extractStatRows(res?.data)),
+    } as BaseResult<RequisitionStatVO[]>;
+  },
+
   create(data: TimeSensitiveTaskForm) {
     if (USE_TIME_SENSITIVE_MOCK) {
       const id = Date.now();

--
Gitblit v1.9.3