Blame view

合作成本和店内支出-前端调用说明.md 21.7 KB
d055b5e1   “wangming”   fix: update devel...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
  # 合作成本和店内支出 - 前端调用说明
  
  ## 📋 目录
  - [业务流程概述](#业务流程概述)
  - [合作成本接口列表](#合作成本接口列表)
  - [店内支出接口列表](#店内支出接口列表)
  - [完整流程示例](#完整流程示例)
  - [接口详细说明](#接口详细说明)
  - [数据验证说明](#数据验证说明)
  - [注意事项](#注意事项)
  
  ## 🔄 业务流程概述
  
  ### 合作成本管理
  合作成本用于记录门店每月的合作项目成本,用于店长工资计算中的毛利计算。
  
  **核心功能:**
  1. **创建合作成本** - 录入门店某年某月的合作成本金额
  2. **查询合作成本** - 支持列表查询和详情查询,可按门店、年份、月份筛选
  3. **更新合作成本** - 修改已创建的合作成本记录
  4. **删除合作成本** - 删除合作成本记录(逻辑删除)
  5. **导入合作成本** - 通过Excel批量导入合作成本数据
  6. **导出合作成本** - 导出合作成本数据为Excel文件
  
  ### 店内支出管理
  店内支出用于记录门店每月的各项支出,用于店长工资计算中的毛利计算。
  
  **核心功能:**
  1. **创建店内支出** - 录入门店的支出明细(支持分类、单价、数量、金额等)
  2. **查询店内支出** - 支持列表查询和详情查询,可按门店、分类、日期范围筛选
  3. **更新店内支出** - 修改已创建的店内支出记录
  4. **删除店内支出** - 删除店内支出记录(逻辑删除)
  5. **导入店内支出** - 通过Excel批量导入店内支出数据
  6. **导出店内支出** - 导出店内支出数据为Excel文件
  
  ## 📡 合作成本接口列表
  
  | 接口 | 方法 | 路径 | 说明 |
  |------|------|------|------|
  | 获取合作成本详情 | GET | `/api/Extend/LqCooperationCost/{id}` | 根据ID获取合作成本详情 |
  | 获取合作成本列表 | GET | `/api/Extend/LqCooperationCost` | 分页查询合作成本列表,支持多条件筛选 |
  | 获取全部数据(不分页) | GET | `/api/Extend/LqCooperationCost/Actions/GetNoPagingList` | 获取全部数据,用于导出 |
  | 创建合作成本 | POST | `/api/Extend/LqCooperationCost` | 创建新的合作成本记录 |
  | 更新合作成本 | PUT | `/api/Extend/LqCooperationCost/{id}` | 更新合作成本记录 |
  | 删除合作成本 | DELETE | `/api/Extend/LqCooperationCost/{id}` | 删除合作成本记录(逻辑删除) |
  | 导出合作成本 | GET | `/api/Extend/LqCooperationCost/Actions/Export` | 导出合作成本数据为Excel |
  | 导入合作成本 | POST | `/api/Extend/LqCooperationCost/Actions/Import` | 通过Excel导入合作成本数据 |
  
  ## 📡 店内支出接口列表
  
  | 接口 | 方法 | 路径 | 说明 |
  |------|------|------|------|
  | 获取店内支出详情 | GET | `/api/Extend/LqStoreExpense/{id}` | 根据ID获取店内支出详情 |
  | 获取店内支出列表 | GET | `/api/Extend/LqStoreExpense` | 分页查询店内支出列表,支持多条件筛选 |
  | 获取全部数据(不分页) | GET | `/api/Extend/LqStoreExpense/Actions/GetNoPagingList` | 获取全部数据,用于导出 |
  | 创建店内支出 | POST | `/api/Extend/LqStoreExpense` | 创建新的店内支出记录 |
  | 更新店内支出 | PUT | `/api/Extend/LqStoreExpense/{id}` | 更新店内支出记录 |
  | 删除店内支出 | DELETE | `/api/Extend/LqStoreExpense/{id}` | 删除店内支出记录(逻辑删除) |
  | 导出店内支出 | GET | `/api/Extend/LqStoreExpense/Actions/Export` | 导出店内支出数据为Excel |
  | 导入店内支出 | POST | `/api/Extend/LqStoreExpense/Actions/Import` | 通过Excel导入店内支出数据 |
  
  ## 🚀 完整流程示例
  
  ### 合作成本管理流程
  
  #### 步骤1:创建合作成本
  
  **接口:** `POST /api/Extend/LqCooperationCost`
  
  **请求示例:**
  ```javascript
  const response = await request({
    url: '/api/Extend/LqCooperationCost',
    method: 'POST',
    data: {
      storeId: '1649328471923847172',  // 门店ID(必填)
      storeName: '绿纤华润店',  // 门店名称(可选,不传则自动查询)
      year: 2025,  // 年份(必填)
      month: '202511',  // 月份(必填,格式:YYYYMM,如202511表示2025年11月)
      totalAmount: 3000.00,  // 合计金额(必填)
      remarks: '测试数据-合作成本'  // 备注说明(可选)
    }
  });
  
  // 响应示例
  // {
  //   "code": 200,
  //   "msg": "操作成功",
  //   "data": null
  // }
  ```
  
  **说明:**
  - 如果未提供门店名称,系统会根据门店ID自动查询并填充
  - 月份格式必须为YYYYMM(如:202511表示2025年11月)
  - 同一门店、同一年份、同一月份只能有一条有效记录(如果已存在会报错)
  
  #### 步骤2:查询合作成本列表
  
  **接口:** `GET /api/Extend/LqCooperationCost`
  
  **请求示例:**
  ```javascript
  const response = await request({
    url: '/api/Extend/LqCooperationCost',
    method: 'GET',
    params: {
      currentPage: 1,  // 当前页码(必填)
      pageSize: 10,  // 每页数量(必填)
      storeId: '1649328471923847172',  // 门店ID(可选)
      storeName: '绿纤华润店',  // 门店名称(可选,模糊查询)
      year: 2025,  // 年份(可选)
      month: '202511',  // 月份(可选,格式:YYYYMM)
      sidx: 'CreateTime',  // 排序字段(可选,默认:CreateTime)
      sort: 'desc'  // 排序方式(可选,asc/desc,默认:desc)
    }
  });
  
  // 响应示例
  // {
  //   "code": 200,
  //   "msg": "操作成功",
  //   "data": {
  //     "list": [
  //       {
  //         "id": "768041985045955845",
  //         "storeId": "1649328471923847172",
  //         "storeName": "绿纤华润店",
  //         "year": 2025,
  //         "month": "202511",
  //         "totalAmount": 3000.00,
  //         "remarks": "测试数据-合作成本",
  //         "createUser": "admin",
  //         "createTime": "2025-01-10T10:00:00",
  //         "updateUser": "admin",
  //         "updateTime": "2025-01-10T10:00:00"
  //       }
  //     ],
  //     "pagination": {
  //       "total": 1,
  //       "pageSize": 10,
  //       "currentPage": 1
  //     }
  //   }
  // }
  ```
  
  #### 步骤3:更新合作成本
  
  **接口:** `PUT /api/Extend/LqCooperationCost/{id}`
  
  **请求示例:**
  ```javascript
  const response = await request({
    url: `/api/Extend/LqCooperationCost/${id}`,
    method: 'PUT',
    data: {
      storeId: '1649328471923847172',
      storeName: '绿纤华润店',
      year: 2025,
      month: '202511',
      totalAmount: 3500.00,  // 修改金额
      remarks: '更新后的备注'
    }
  });
  ```
  
  #### 步骤4:删除合作成本
  
  **接口:** `DELETE /api/Extend/LqCooperationCost/{id}`
  
  **请求示例:**
  ```javascript
  const response = await request({
    url: `/api/Extend/LqCooperationCost/${id}`,
    method: 'DELETE'
  });
  ```
  
  #### 步骤5:导出合作成本
  
  **接口:** `GET /api/Extend/LqCooperationCost/Actions/Export`
  
  **请求示例:**
  ```javascript
  const response = await request({
    url: '/api/Extend/LqCooperationCost/Actions/Export',
    method: 'GET',
    params: {
      storeId: '1649328471923847172',  // 可选
      year: 2025,  // 可选
      month: '202511'  // 可选
    },
    responseType: 'blob'  // 重要:设置响应类型为blob
  });
  
  // 下载文件
  const blob = new Blob([response.data]);
  const url = window.URL.createObjectURL(blob);
  const link = document.createElement('a');
  link.href = url;
  link.setAttribute('download', `合作成本表_${new Date().getTime()}.xlsx`);
  document.body.appendChild(link);
  link.click();
  document.body.removeChild(link);
  ```
  
  #### 步骤6:导入合作成本
  
  **接口:** `POST /api/Extend/LqCooperationCost/Actions/Import`
  
  **请求示例:**
  ```javascript
  const formData = new FormData();
  formData.append('file', file);  // file是File对象
  
  const response = await request({
    url: '/api/Extend/LqCooperationCost/Actions/Import',
    method: 'POST',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  });
  
  // 响应示例
  // {
  //   "code": 200,
  //   "msg": "导入成功",
  //   "data": {
  //     "successCount": 10,
  //     "failCount": 2,
  //     "failMessages": [
  //       "第3行:门店ID不存在",
  //       "第5行:该门店2025年11月的记录已存在"
  //     ]
  //   }
  // }
  ```
  
  **Excel格式要求:**
  - 第一行为表头:门店ID、门店名称、年份、月份、合计金额、备注
  - 门店ID和门店名称至少填写一个
  - 月份格式:YYYYMM(如:202511)
  - 合计金额必须为数字
  
  ### 店内支出管理流程
  
  #### 步骤1:创建店内支出
  
  **接口:** `POST /api/Extend/LqStoreExpense`
  
  **请求示例:**
  ```javascript
  const response = await request({
    url: '/api/Extend/LqStoreExpense',
    method: 'POST',
    data: {
      storeId: '1649328471923847172',  // 门店ID(必填)
      storeName: '绿纤华润店',  // 门店名称(可选,不传则自动查询)
      expenseCategoryId: '11156146041171400',  // 支出分类ID(可选)
      expenseCategoryName: '日常支出',  // 支出分类名称(可选)
      expenseDate: '2025-11-15T00:00:00',  // 支出日期(必填)
      unitPrice: 2000.00,  // 单价(可选)
      quantity: 1,  // 数量(可选)
      amount: 2000.00,  // 金额(必填)
      memo: '测试数据-店内支出',  // 备注说明(可选)
      attachment: [],  // 附件(可选,FileControlsModel数组)
      relatedReimbursementId: '',  // 关联报销申请ID(可选)
      relatedPurchaseRecordId: ''  // 关联购买记录ID(可选)
    }
  });
  
  // 响应示例
  // {
  //   "code": 200,
  //   "msg": "操作成功",
  //   "data": null
  // }
  ```
  
  **说明:**
  - 如果未提供门店名称,系统会根据门店ID自动查询并填充
  - 金额字段为必填,单价和数量为可选(如果提供了单价和数量,系统会验证:金额 = 单价 × 数量)
  - 支持附件上传(FileControlsModel格式)
  
  #### 步骤2:查询店内支出列表
  
  **接口:** `GET /api/Extend/LqStoreExpense`
  
  **请求示例:**
  ```javascript
  const response = await request({
    url: '/api/Extend/LqStoreExpense',
    method: 'GET',
    params: {
      currentPage: 1,  // 当前页码(必填)
      pageSize: 10,  // 每页数量(必填)
      storeId: '1649328471923847172',  // 门店ID(可选)
      storeName: '绿纤华润店',  // 门店名称(可选,模糊查询)
      expenseCategoryId: '11156146041171400',  // 支出分类ID(可选)
      expenseDateStart: '2025-11-01',  // 支出日期开始(可选)
      expenseDateEnd: '2025-11-30',  // 支出日期结束(可选)
      sidx: 'ExpenseDate',  // 排序字段(可选,默认:ExpenseDate)
      sort: 'desc'  // 排序方式(可选,asc/desc,默认:desc)
    }
  });
  
  // 响应示例
  // {
  //   "code": 200,
  //   "msg": "操作成功",
  //   "data": {
  //     "list": [
  //       {
  //         "id": "768041985045955845",
  //         "storeId": "1649328471923847172",
  //         "storeName": "绿纤华润店",
  //         "expenseCategoryId": "11156146041171400",
  //         "expenseCategoryName": "日常支出",
  //         "expenseDate": "2025-11-15T00:00:00",
  //         "unitPrice": 2000.00,
  //         "quantity": 1,
  //         "amount": 2000.00,
  //         "memo": "测试数据-店内支出",
  //         "attachment": [],
  //         "relatedReimbursementId": "",
  //         "relatedPurchaseRecordId": "",
  //         "createUser": "admin",
  //         "createTime": "2025-01-10T10:00:00",
  //         "updateUser": "admin",
  //         "updateTime": "2025-01-10T10:00:00"
  //       }
  //     ],
  //     "pagination": {
  //       "total": 1,
  //       "pageSize": 10,
  //       "currentPage": 1
  //     }
  //   }
  // }
  ```
  
  #### 步骤3:更新店内支出
  
  **接口:** `PUT /api/Extend/LqStoreExpense/{id}`
  
  **请求示例:**
  ```javascript
  const response = await request({
    url: `/api/Extend/LqStoreExpense/${id}`,
    method: 'PUT',
    data: {
      storeId: '1649328471923847172',
      storeName: '绿纤华润店',
      expenseCategoryId: '11156146041171400',
      expenseCategoryName: '日常支出',
      expenseDate: '2025-11-15T00:00:00',
      unitPrice: 2500.00,  // 修改单价
      quantity: 1,
      amount: 2500.00,  // 修改金额
      memo: '更新后的备注',
      attachment: []
    }
  });
  ```
  
  #### 步骤4:删除店内支出
  
  **接口:** `DELETE /api/Extend/LqStoreExpense/{id}`
  
  **请求示例:**
  ```javascript
  const response = await request({
    url: `/api/Extend/LqStoreExpense/${id}`,
    method: 'DELETE'
  });
  ```
  
  #### 步骤5:导出店内支出
  
  **接口:** `GET /api/Extend/LqStoreExpense/Actions/Export`
  
  **请求示例:**
  ```javascript
  const response = await request({
    url: '/api/Extend/LqStoreExpense/Actions/Export',
    method: 'GET',
    params: {
      storeId: '1649328471923847172',  // 可选
      expenseCategoryId: '11156146041171400',  // 可选
      expenseDateStart: '2025-11-01',  // 可选
      expenseDateEnd: '2025-11-30'  // 可选
    },
    responseType: 'blob'  // 重要:设置响应类型为blob
  });
  
  // 下载文件(同合作成本导出)
  ```
  
  #### 步骤6:导入店内支出
  
  **接口:** `POST /api/Extend/LqStoreExpense/Actions/Import`
  
  **请求示例:**
  ```javascript
  const formData = new FormData();
  formData.append('file', file);  // file是File对象
  
  const response = await request({
    url: '/api/Extend/LqStoreExpense/Actions/Import',
    method: 'POST',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  });
  
  // 响应示例(同合作成本导入)
  ```
  
  **Excel格式要求:**
  - 第一行为表头:门店ID、门店名称、支出分类ID、支出分类名称、支出日期、单价、数量、金额、备注
  - 门店ID和门店名称至少填写一个
  - 支出日期格式:YYYY-MM-DD 或 YYYY-MM-DD HH:mm:ss
  - 金额必须为数字
  
  ## 📝 接口详细说明
  
  ### 合作成本接口
  
  #### 1. 获取合作成本详情
  
  **接口:** `GET /api/Extend/LqCooperationCost/{id}`
  
  **路径参数:**
  - `id`:合作成本记录ID(必填)
  
  **响应示例:**
  ```json
  {
    "code": 200,
    "msg": "操作成功",
    "data": {
      "id": "768041985045955845",
      "storeId": "1649328471923847172",
      "storeName": "绿纤华润店",
      "year": 2025,
      "month": "202511",
      "totalAmount": 3000.00,
      "remarks": "测试数据-合作成本",
      "createUser": "admin",
      "createTime": "2025-01-10T10:00:00",
      "updateUser": "admin",
      "updateTime": "2025-01-10T10:00:00"
    }
  }
  ```
  
  #### 2. 获取合作成本列表
  
  **接口:** `GET /api/Extend/LqCooperationCost`
  
  **查询参数:**
  - `currentPage`:当前页码(必填,默认:1)
  - `pageSize`:每页数量(必填,默认:10)
  - `storeId`:门店ID(可选)
  - `storeName`:门店名称(可选,模糊查询)
  - `year`:年份(可选)
  - `month`:月份(可选,格式:YYYYMM)
  - `sidx`:排序字段(可选,默认:CreateTime)
  - `sort`:排序方式(可选,asc/desc,默认:desc)
  
  **响应格式:** 同列表查询标准格式
  
  #### 3. 创建合作成本
  
  **接口:** `POST /api/Extend/LqCooperationCost`
  
  **请求体:**
  ```json
  {
    "storeId": "1649328471923847172",  // 门店ID(必填)
    "storeName": "绿纤华润店",  // 门店名称(可选)
    "year": 2025,  // 年份(必填)
    "month": "202511",  // 月份(必填,格式:YYYYMM)
    "totalAmount": 3000.00,  // 合计金额(必填)
    "remarks": "备注说明"  // 备注(可选)
  }
  ```
  
  **验证规则:**
  - 门店ID必填
  - 年份必填,必须大于0
  - 月份必填,格式必须为YYYYMM(6位数字)
  - 合计金额必填,必须大于等于0
  - 同一门店、同一年份、同一月份只能有一条有效记录
  
  #### 4. 更新合作成本
  
  **接口:** `PUT /api/Extend/LqCooperationCost/{id}`
  
  **路径参数:**
  - `id`:合作成本记录ID(必填)
  
  **请求体:** 同创建接口
  
  #### 5. 删除合作成本
  
  **接口:** `DELETE /api/Extend/LqCooperationCost/{id}`
  
  **路径参数:**
  - `id`:合作成本记录ID(必填)
  
  **说明:** 执行逻辑删除,不会真正删除数据
  
  ### 店内支出接口
  
  #### 1. 获取店内支出详情
  
  **接口:** `GET /api/Extend/LqStoreExpense/{id}`
  
  **路径参数:**
  - `id`:店内支出记录ID(必填)
  
  **响应示例:**
  ```json
  {
    "code": 200,
    "msg": "操作成功",
    "data": {
      "id": "768041985045955845",
      "storeId": "1649328471923847172",
      "storeName": "绿纤华润店",
      "expenseCategoryId": "11156146041171400",
      "expenseCategoryName": "日常支出",
      "expenseDate": "2025-11-15T00:00:00",
      "unitPrice": 2000.00,
      "quantity": 1,
      "amount": 2000.00,
      "memo": "测试数据-店内支出",
      "attachment": [],
      "relatedReimbursementId": "",
      "relatedPurchaseRecordId": "",
      "createUser": "admin",
      "createTime": "2025-01-10T10:00:00",
      "updateUser": "admin",
      "updateTime": "2025-01-10T10:00:00"
    }
  }
  ```
  
  #### 2. 获取店内支出列表
  
  **接口:** `GET /api/Extend/LqStoreExpense`
  
  **查询参数:**
  - `currentPage`:当前页码(必填,默认:1)
  - `pageSize`:每页数量(必填,默认:10)
  - `storeId`:门店ID(可选)
  - `storeName`:门店名称(可选,模糊查询)
  - `expenseCategoryId`:支出分类ID(可选)
  - `expenseDateStart`:支出日期开始(可选,格式:YYYY-MM-DD)
  - `expenseDateEnd`:支出日期结束(可选,格式:YYYY-MM-DD)
  - `sidx`:排序字段(可选,默认:ExpenseDate)
  - `sort`:排序方式(可选,asc/desc,默认:desc)
  
  **响应格式:** 同列表查询标准格式
  
  #### 3. 创建店内支出
  
  **接口:** `POST /api/Extend/LqStoreExpense`
  
  **请求体:**
  ```json
  {
    "storeId": "1649328471923847172",  // 门店ID(必填)
    "storeName": "绿纤华润店",  // 门店名称(可选)
    "expenseCategoryId": "11156146041171400",  // 支出分类ID(可选)
    "expenseCategoryName": "日常支出",  // 支出分类名称(可选)
    "expenseDate": "2025-11-15T00:00:00",  // 支出日期(必填)
    "unitPrice": 2000.00,  // 单价(可选)
    "quantity": 1,  // 数量(可选)
    "amount": 2000.00,  // 金额(必填)
    "memo": "备注说明",  // 备注(可选)
    "attachment": [],  // 附件(可选,FileControlsModel数组)
    "relatedReimbursementId": "",  // 关联报销申请ID(可选)
    "relatedPurchaseRecordId": ""  // 关联购买记录ID(可选)
  }
  ```
  
  **验证规则:**
  - 门店ID必填
  - 支出日期必填
  - 金额必填,必须大于等于0
  - 如果提供了单价和数量,系统会验证:金额 = 单价 × 数量
  
  #### 4. 更新店内支出
  
  **接口:** `PUT /api/Extend/LqStoreExpense/{id}`
  
  **路径参数:**
  - `id`:店内支出记录ID(必填)
  
  **请求体:** 同创建接口
  
  #### 5. 删除店内支出
  
  **接口:** `DELETE /api/Extend/LqStoreExpense/{id}`
  
  **路径参数:**
  - `id`:店内支出记录ID(必填)
  
  **说明:** 执行逻辑删除,不会真正删除数据
  
  ## ✅ 数据验证说明
  
  ### 合作成本验证规则
  
  1. **门店ID验证**
     - 必填
     - 如果门店ID不存在,会报错
  
  2. **年份验证**
     - 必填
     - 必须为整数,大于0
  
  3. **月份验证**
     - 必填
     - 格式必须为YYYYMM(6位数字,如:202511)
     - 月份必须在1-12之间
  
  4. **合计金额验证**
     - 必填
     - 必须为数字,大于等于0
  
  5. **唯一性验证**
     - 同一门店、同一年份、同一月份只能有一条有效记录
     - 如果已存在,创建时会报错
  
  ### 店内支出验证规则
  
  1. **门店ID验证**
     - 必填
     - 如果门店ID不存在,会报错
  
  2. **支出日期验证**
     - 必填
     - 格式:YYYY-MM-DD 或 YYYY-MM-DD HH:mm:ss
  
  3. **金额验证**
     - 必填
     - 必须为数字,大于等于0
  
  4. **单价和数量验证**
     - 如果同时提供了单价和数量,系统会验证:金额 = 单价 × 数量
     - 如果验证失败,会报错
  
  ## ⚠️ 注意事项
  
  ### 合作成本注意事项
  
  1. **月份格式**
     - 月份必须使用YYYYMM格式(如:202511表示2025年11月)
     - 不要使用YYYY-MM格式
  
  2. **唯一性约束**
     - 同一门店、同一年份、同一月份只能有一条有效记录
     - 如果需要修改,请使用更新接口,不要重复创建
  
  3. **门店名称自动填充**
     - 如果未提供门店名称,系统会根据门店ID自动查询并填充
     - 建议前端也自动填充,提升用户体验
  
  4. **导入Excel格式**
     - 第一行必须是表头
     - 门店ID和门店名称至少填写一个
     - 月份格式必须为YYYYMM(6位数字)
  
  ### 店内支出注意事项
  
  1. **金额计算**
     - 如果同时提供了单价和数量,系统会验证:金额 = 单价 × 数量
     - 建议前端在用户输入单价和数量时自动计算金额
  
  2. **附件上传**
     - 附件使用FileControlsModel格式
     - 支持多个附件
  
  3. **关联字段**
     - `relatedReimbursementId`:关联报销申请ID(可选)
     - `relatedPurchaseRecordId`:关联购买记录ID(可选)
     - 这些字段用于数据追溯,建议填写
  
  4. **导入Excel格式**
     - 第一行必须是表头
     - 门店ID和门店名称至少填写一个
     - 支出日期格式:YYYY-MM-DD 或 YYYY-MM-DD HH:mm:ss
  
  ### 通用注意事项
  
  1. **GET请求参数**
     - 所有GET请求使用`params`传参,不使用`data`
     - 分页参数`currentPage`和`pageSize`必填
  
  2. **文件下载**
     - 导出接口返回的是文件流,需要设置`responseType: 'blob'`
     - 下载文件时需要创建Blob对象并触发下载
  
  3. **文件上传**
     - 导入接口需要使用`FormData`格式
     - 设置`Content-Type: 'multipart/form-data'`
  
  4. **错误处理**
     - 所有接口返回标准格式:`{code, msg, data}`
     - `code === 200`表示成功,其他表示失败
     - 失败时查看`msg`字段获取错误信息
  
  5. **数据删除**
     - 删除操作执行的是逻辑删除,不会真正删除数据
     - 删除后的数据在列表中不会显示,但可以通过数据库查询
  
  6. **店长工资计算**
     - 合作成本和店内支出数据用于店长工资计算中的毛利计算
     - 确保数据的准确性和及时性,避免影响工资计算结果