浏览代码

feat(forecast-summary): 添加销售预测汇总批量保存接口及类型定义

yz 3 周之前
父节点
当前提交
e2e2a33621
共有 2 个文件被更改,包括 56 次插入0 次删除
  1. 34 0
      src/api/forecast/forecast-summary.js
  2. 22 0
      src/api/forecast/types.d.ts

+ 34 - 0
src/api/forecast/forecast-summary.js

@@ -11,6 +11,8 @@ import request from '@/router/axios'
  * @typedef {import('./types').ForecastSummaryItem} ForecastSummaryItem
  * @typedef {import('./types').ForecastSummaryPageResponse} ForecastSummaryPageResponse
  * @typedef {import('./types').ApprovalData} ApprovalData
+ * @typedef {import('./types').SalesForecastSummaryBatchSaveRequest} SalesForecastSummaryBatchSaveRequest
+ * @typedef {import('./types').SalesForecastSummaryBatchSaveResponse} SalesForecastSummaryBatchSaveResponse
  */
 
 /**
@@ -179,3 +181,35 @@ export const approveForecastSummary = async (data) => {
     data
   })
 }
+
+/**
+ * 销售预测汇总批量保存
+ * @param {SalesForecastSummaryBatchSaveRequest} data - 批量保存的数据列表
+ * @returns {Promise<SalesForecastSummaryBatchSaveResponse>} 批量保存结果响应(data 为 null,msg 为提示)
+ * @description 批量保存销售预测汇总数据,按后端约定返回通用响应结构
+ * @example
+ * const payload = [
+ *   {
+ *     year: 2025,
+ *     month: 12,
+ *     brandId: 2001,
+ *     brandCode: 'BRAND-A001',
+ *     brandName: '朝阳轮胎11111',
+ *     itemId: 30001,
+ *     itemCode: 'ITEM-8001',
+ *     itemName: '高性能轿车轮胎',
+ *     specs: '225/50R17',
+ *     pattern: 'AS01',
+ *     forecastQuantity: 1200.00,
+ *     approvalStatus: 0
+ *   }
+ * ]
+ * const res = await batchSaveSalesForecastSummary(payload)
+ */
+export const batchSaveSalesForecastSummary = async (data) => {
+  return request({
+    url: '/api/blade-factory/api/factory/salesForecastSummary/batchSave',
+    method: 'post',
+    data
+  })
+}

+ 22 - 0
src/api/forecast/types.d.ts

@@ -191,3 +191,25 @@ export interface BrandStockRecord {
 
 // 品牌库存汇总分页响应类型
 export type BrandStockListResponse = Promise<AxiosResponse<ApiResponse<PageResult<BrandStockRecord>>>>
+
+// 销售预测汇总批量保存 - 请求项
+export interface SalesForecastSummaryBatchSaveItem {
+  year: number
+  month: number
+  brandId: number
+  brandCode: string
+  brandName: string
+  itemId: number
+  itemCode: string
+  itemName: string
+  specs: string
+  pattern: string
+  forecastQuantity: number
+  approvalStatus: number
+}
+
+// 销售预测汇总批量保存 - 请求体
+export type SalesForecastSummaryBatchSaveRequest = SalesForecastSummaryBatchSaveItem[]
+
+// 销售预测汇总批量保存 - 响应类型(data 返回为 null,msg 提示文本,success 表示成功与否)
+export type SalesForecastSummaryBatchSaveResponse = Promise<AxiosResponse<ApiResponse<null>>>