Blame view

项目文档相关/docs/科技部驾驶舱数据分析梳理.md 28.5 KB
8479baab   “wangming”   优化统计卡片样式和布局,调整卡片间...
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
  # 科技部驾驶舱数据分析梳理
  
  ## 📋 概述
  
  本文档梳理科技部驾驶舱可以统计分析的数据维度。科技部分为**科技一部****科技二部**,主要关注科美项目(溯源和Cell)的业绩数据。
  
  **重要说明**:这是**科技部维度**的驾驶舱,数据统计按照科技部(一部/二部)进行,不涉及总经理维度。
  
  ### ⚠️ 重要说明:月份维度
  
  **所有统计数据都必须按月份统计,且不同月份科技部管理的门店可能不一致。**
  
  1. **月份是核心维度**:所有指标、排行、趋势、对比等数据都必须按月份统计,不能跨月汇总(除非明确说明是累计数据)
  2. **门店归属按月变化**:门店的科技部归属关系存储在 `lq_md_target` 表中,通过 `F_TechDepartment` 字段(BASE_ORGANIZE表的组织ID)和 `F_Month` 字段(YYYYMM格式)区分不同月份
  3. **数据筛选规则**
     - 查询指定月份的统计数据时,必须先从 `lq_md_target` 表获取该月份、该科技部归属的门店列表(`F_TechDepartment = @科技部ID`(BASE_ORGANIZE表的组织ID),`F_Month = @统计月份`
     - 然后使用该门店列表筛选业绩数据,确保只统计该月份归属该科技部的门店
     - 业绩数据的时间过滤使用业绩时间字段(`yjsj`、`hksj`、`tksj`)按月份过滤
  4. **趋势分析**:虽然趋势图展示多个月份,但每个月份的数据都是独立计算的,使用该月份的门店归属关系
  
  ---
  
  ## 🎯 一、核心业务指标(关键指标卡片)
  
  ### 1.1 整体业绩指标
  
  #### 1.1.1 溯源金额
  - **说明**:管理的所有门店中,品项的 `F_BeautyType` 为 "溯源系统" 或 "溯源" 的健康师业绩总和
  - **计算方式**:开单溯源金额 - 退卡溯源金额
  - **数据来源**
    - 开单:`lq_kd_jksyj` 表(`F_BeautyType` = '溯源系统' 或 '溯源')
    - 退卡:`lq_hytk_jksyj` 表(`F_BeautyType` = '溯源系统' 或 '溯源')
  - **时间维度****必须按月份统计**(YYYYMM格式)
  - **门店筛选**:使用 `lq_md_target` 表获取指定月份(`F_Month`)、指定科技部(`F_TechDepartment`)归属的门店列表
  - **时间过滤**:使用业绩时间字段(`yjsj`、`tksj`)按月份过滤
  - **对比维度**:环比(与上月对比)、同比(与去年同月对比)
  
  #### 1.1.2 Cell金额
  - **说明**:管理的所有门店中,品项的 `F_BeautyType` 为 "cell" 或 "Cell" 的健康师业绩总和
  - **计算方式**:开单Cell金额 - 退卡Cell金额
  - **数据来源**
    - 开单:`lq_kd_jksyj` 表(`F_BeautyType` = 'cell' 或 'Cell')
    - 退卡:`lq_hytk_jksyj` 表(`F_BeautyType` = 'cell' 或 'Cell')
  - **时间维度****必须按月份统计**(YYYYMM格式)
  - **门店筛选**:使用 `lq_md_target` 表获取指定月份(`F_Month`)、指定科技部(`F_TechDepartment`)归属的门店列表
  - **时间过滤**:使用业绩时间字段(`yjsj`、`tksj`)按月份过滤
  - **对比维度**:环比(与上月对比)、同比(与去年同月对比)
  
  #### 1.1.3 科美总收入(溯源 + Cell)
  - **说明**:管理的所有门店的科美项目总收入
  - **计算方式**:溯源金额 + Cell金额
  - **用途**:用于股份统计中的收入计算(收入的30%)
  
  #### 1.1.4 管理的门店数
  - **说明**:指定月份归属该科技部的门店总数
  - **数据来源**`lq_md_target`
  - **计算方式**
    ```sql
    SELECT COUNT(DISTINCT F_StoreId) 
    FROM lq_md_target 
    WHERE F_TechDepartment = @科技部ID  -- BASE_ORGANIZE表的组织ID(F_Id)
      AND F_Month = @统计月份
    ```
  - **重要说明****必须按月份统计**,不同月份管理的门店数量可能不同
  
  #### 1.1.5 活跃门店数
  - **说明**:指定月份归属该科技部的门店中,有科美开单或消耗的门店数量
  - **计算方式**
    1. 先从 `lq_md_target` 表获取指定月份、指定科技部归属的门店列表
    2. 统计这些门店中,在指定月份有科美开单或消耗的门店数量(去重)
  - **时间维度****必须按月份统计**
  
  ---
  
  ### 1.2 股份相关指标(基于股份统计表)
  
  #### 1.2.1 收入
  - **说明**:管理的门店科美开单的30%(需减去退款)
  - **计算公式**:(科美开单金额 - 科美退卡金额) × 30%
  - **数据来源**
    - 开单:`lq_kd_pxmx` 表(`F_BeautyType` = 科美)关联 `lq_kd_kdjlb`
    - 退卡:`lq_hytk_jksyj` 或 `lq_hytk_hytk`
  - **时间维度****必须按月份统计**
  - **门店筛选**:使用 `lq_md_target` 表获取指定月份、指定科技部归属的门店列表
  
  #### 1.2.2 成本-报销
  - **说明**:报销费用里面的"科技部报销"
  - **数据来源**`lq_reimbursement_application`、`lq_reimbursement_category`
  - **筛选条件**
    - 一级分类为"科技部报销"
    - 根据申请门店的归属区分一部/二部
    - **必须按月份统计**,根据报销申请时间或审批时间按月份过滤
  
  #### 1.2.3 成本-人工
  - **科技部老师底薪**`lq_tech_teacher_salary_statistics` 表的 `F_ActualBaseSalary`(**按 `F_StatisticsMonth` 字段过滤**
  - **科技部老师手工费**`lq_xh_kjbsyj` 表的 `F_LaborCost`(`F_BeautyType` = 科美,**按消耗时间 `hksj` 按月份过滤**
  - **科技部老师开单提成**`lq_tech_teacher_salary_statistics` 表的开单提成字段(**按 `F_StatisticsMonth` 字段过滤**
  - **科技部老师消耗提成**`lq_tech_teacher_salary_statistics` 表的消耗提成字段(**按 `F_StatisticsMonth` 字段过滤**
  - **科技部总经理底薪**`lq_tech_general_manager_salary_statistics` 表的 `F_BaseSalary`(固定4000元,**按 `F_StatisticsMonth` 字段过滤**,需要汇总该科技部所有总经理的底薪)
  - **科技部总经理提成**`lq_tech_general_manager_salary_statistics` 表的提成字段(溯源提成 + Cell提成,**按 `F_StatisticsMonth` 字段过滤**,需要汇总该科技部所有总经理的提成)
  - **重要说明**
    - 所有人工成本数据都**必须按月份统计**,使用工资统计表的 `F_StatisticsMonth` 字段或消耗表的消耗时间字段进行过滤
    - 总经理相关的成本需要汇总该科技部所有总经理的数据(可通过岗位字段 `F_GW` 关联 `BASE_USER` 表识别科技部总经理)
  
  #### 1.2.4 利润
  - **计算公式**:利润 = 收入 - 成本报销 - 成本人工(所有人工成本项)
  - **数据来源**`lq_share_statistics_tech_dept`
  
  ---
  
  ## 📊 二、趋势分析数据
  
  ### 2.1 业绩趋势
  
  #### 2.1.1 溯源金额趋势
  - **时间维度**:近12个月、近6个月、近3个月、当月
  - **图表类型**:折线图
  - **指标**:月度溯源金额、累计溯源金额
  - **对比**:支持环比、同比对比
  
  #### 2.1.2 Cell金额趋势
  - **时间维度**:近12个月、近6个月、近3个月、当月
  - **图表类型**:折线图
  - **指标**:月度Cell金额、累计Cell金额
  - **对比**:支持环比、同比对比
  
  #### 2.1.3 科美总收入趋势
  - **时间维度**:近12个月、近6个月、近3个月、当月
  - **图表类型**:折线图
  - **指标**:月度总收入、累计总收入
  
  #### 2.1.4 溯源与Cell对比趋势
  - **图表类型**:双折线图
  - **指标**:溯源金额 vs Cell金额
  - **用途**:分析两种类型的业绩占比变化
  
  ### 2.2 股份趋势
  
  #### 2.2.1 收入趋势
  - **时间维度**:近12个月、近6个月、近3个月、当月
  - **图表类型**:折线图
  - **指标**:月度收入、累计收入
  
  #### 2.2.2 成本趋势
  - **时间维度**:近12个月、近6个月、近3个月、当月
  - **图表类型**:堆叠柱状图
  - **指标**
    - 成本-报销
    - 成本-人工-老师底薪
    - 成本-人工-老师手工费
    - 成本-人工-老师开单提成
    - 成本-人工-老师消耗提成
    - 成本-人工-总经理底薪
    - 成本-人工-总经理提成
  
  #### 2.2.3 利润趋势
  - **时间维度**:近12个月、近6个月、近3个月、当月
  - **图表类型**:折线图或面积图
  - **指标**:月度利润、累计利润、利润率
  
  ---
  
  ## 🏪 三、门店分析数据
  
  ### 3.1 门店业绩排行
  
  #### 3.1.1 门店溯源金额排行
  - **排序方式**:按溯源金额降序
  - **展示字段**:门店名称、溯源金额、占比、排名
  - **图表类型**:条形图、表格
  - **筛选条件**:支持按月份筛选
  
  #### 3.1.2 门店Cell金额排行
  - **排序方式**:按Cell金额降序
  - **展示字段**:门店名称、Cell金额、占比、排名
  - **图表类型**:条形图、表格
  - **筛选条件**:支持按月份筛选
  
  #### 3.1.3 门店科美总收入排行
  - **排序方式**:按科美总收入降序
  - **展示字段**:门店名称、科美总收入、占比、排名
  - **图表类型**:条形图、表格
  - **筛选条件**:支持按月份筛选
  
  ### 3.2 门店业绩明细
  
  #### 3.2.1 门店业绩分布
  - **图表类型**:饼图或环形图
  - **展示内容**:各门店的溯源金额、Cell金额占比
  - **用途**:了解门店业绩贡献度分布
  
  #### 3.2.2 门店业绩对比
  - **图表类型**:柱状图或折线图
  - **展示内容**:多个门店的溯源金额、Cell金额对比
  - **支持功能**:多门店选择对比
  
  ---
  
  ## 👥 四、人员分析数据
  
  **说明**:科技部驾驶舱是科技部维度,不涉及总经理维度的统计。人员分析主要关注科技部老师的业绩情况。总经理相关的数据只在成本统计中作为人工成本的一部分进行汇总。
  
  **注意**:虽然科技部有总经理,但驾驶舱数据统计是按科技部维度,不按总经理维度。总经理的成本数据会汇总到人工成本中,但不单独展示总经理业绩。
  
  ### 4.1 科技部老师业绩
  
  #### 4.1.1 老师业绩排行
  - **排序方式**:按总业绩或消耗业绩降序
  - **展示字段**
    - 老师姓名、所属门店
    - 开单业绩、消耗业绩、退卡业绩
    - 总业绩、项目数
    - 底薪、业绩提成、消耗提成
    - 应发工资
  - **数据来源**`lq_tech_teacher_salary_statistics`
  - **筛选条件**:支持按月份、门店筛选
  
  #### 4.1.2 老师业绩分布
  - **图表类型**:饼图或环形图
  - **展示内容**:各老师的业绩占比
  - **用途**:了解老师业绩贡献度分布
  
  #### 4.1.3 老师业绩趋势
  - **图表类型**:折线图
  - **展示内容**:指定老师的近12个月业绩趋势
  - **支持功能**:多老师选择对比
  
  ---
  
  ## 📈 五、运营分析数据
  
  ### 5.1 开单分析
  
  #### 5.1.1 开单次数
  - **说明**:管理的门店科美项目开单总次数
  - **数据来源**`lq_kd_kdjlb` 表关联 `lq_kd_pxmx` 表(`F_BeautyType` = 科美)
  - **时间维度**:按月统计
  - **对比维度**:环比、同比
  
  #### 5.1.2 平均开单金额
  - **计算公式**:科美总收入 / 开单次数
  - **时间维度**:按月统计
  
  #### 5.1.3 开单门店分布
  - **图表类型**:饼图
  - **展示内容**:各门店的开单次数占比
  
  ### 5.2 消耗分析
  
  #### 5.2.1 消耗次数
  - **说明**:管理的门店科美项目消耗总次数
  - **数据来源**`lq_xh_hyhk` 表关联 `lq_xh_pxmx` 表(`F_BeautyType` = 科美)
  - **时间维度**:按月统计
  
  #### 5.2.2 消耗金额
  - **说明**:管理的门店科美项目消耗总金额
  - **数据来源**`lq_xh_hyhk` 表关联 `lq_xh_pxmx`
  - **时间维度**:按月统计
  
  #### 5.2.3 消耗率
  - **计算公式**:消耗金额 / 开单金额 × 100%
  - **用途**:分析业绩转化情况
  
  ### 5.3 退卡分析
  
  #### 5.3.1 退卡次数
  - **说明**:管理的门店科美项目退卡总次数
  - **数据来源**`lq_hytk_hytk` 表关联退卡明细(科美项目)
  - **时间维度**:按月统计
  
  #### 5.3.2 退卡金额
  - **说明**:管理的门店科美项目退卡总金额
  - **数据来源**`lq_hytk_hytk` 表关联退卡明细(科美项目)
  - **时间维度**:按月统计
  
  #### 5.3.3 退卡率
  - **计算公式**:退卡金额 / 开单金额 × 100%
  - **用途**:分析退卡情况,评估风险
  
  ---
  
  ## 🔍 六、对比分析数据
  
  ### 6.1 时间对比
  
  #### 6.1.1 环比对比
  - **对比指标**:溯源金额、Cell金额、科美总收入、收入、成本、利润
  - **计算方式**:(当月 - 上月) / 上月 × 100%
  - **展示方式**:数值 + 百分比 + 箭头(上升/下降)
  
  #### 6.1.2 同比对比
  - **对比指标**:溯源金额、Cell金额、科美总收入、收入、成本、利润
  - **计算方式**:(当月 - 去年同月) / 去年同月 × 100%
  - **展示方式**:数值 + 百分比 + 箭头(上升/下降)
  
  ### 6.2 部门对比
  
  #### 6.2.1 科技一部 vs 科技二部
  - **对比指标**
    - 溯源金额、Cell金额、科美总收入
    - 管理的门店数、活跃门店数
    - 收入、成本、利润
    - 总经理数量、老师数量
  - **图表类型**:柱状图、折线图
  - **用途**:了解两个部门的业绩对比
  
  ### 6.3 门店类型对比
  
  #### 6.3.1 按门店类型分组统计
  - **分组维度**:门店类型(200平/旗舰店)、门店类别(A/B/C类)
  - **统计指标**:溯源金额、Cell金额、科美总收入
  - **图表类型**:柱状图、饼图
  - **用途**:分析不同门店类型的业绩表现
  
  ---
  
  ## 📋 七、明细数据列表
  
  ### 7.1 门店明细列表
  
  #### 7.1.1 管理的门店列表
  - **展示字段**
    - 门店名称、门店类型、门店类别
    - 归属月份
    - 溯源金额(开单、退卡、净额)
    - Cell金额(开单、退卡、净额)
    - 科美总收入
    - 开单次数、消耗次数、退卡次数
  - **功能**:支持排序、筛选、导出
  
  ### 7.2 老师明细列表
  
  #### 7.2.1 科技部老师列表
  - **展示字段**
    - 老师姓名、所属门店、老师账号
    - 开单业绩、消耗业绩、退卡业绩
    - 总业绩、项目数
    - 底薪、业绩提成、消耗提成、应发工资
  - **功能**:支持排序、筛选、导出
  - **数据来源**`lq_tech_teacher_salary_statistics`
  
  ### 7.3 开单明细列表
  
  #### 7.3.1 科美开单明细
  - **展示字段**
    - 开单日期、门店名称、会员姓名
    - 品项名称、科美类型(溯源/Cell)
    - 开单金额、实付金额
    - 健康师、科技部老师
  - **功能**:支持排序、筛选、导出、分页
  - **数据来源**`lq_kd_kdjlb` 表关联 `lq_kd_pxmx`
  
  ### 7.4 消耗明细列表
  
  #### 7.4.1 科美消耗明细
  - **展示字段**
    - 消耗日期、门店名称、会员姓名
    - 品项名称、科美类型(溯源/Cell)
    - 消耗金额、消耗次数
    - 健康师、科技部老师
  - **功能**:支持排序、筛选、导出、分页
  - **数据来源**`lq_xh_hyhk` 表关联 `lq_xh_pxmx`
  
  ---
  
  ## 🎨 八、数据可视化建议
  
  ### 8.1 核心指标卡片(顶部)
  - 溯源金额(当月、环比、同比)
  - Cell金额(当月、环比、同比)
  - 科美总收入(当月、环比、同比)
  - 管理的门店数
  - 活跃门店数
  - 收入(当月、环比、同比)
  - 成本(当月、环比、同比)
  - 利润(当月、环比、同比、利润率)
  
  ### 8.2 趋势图表区域
  - 业绩趋势(溯源、Cell、总收入)- 折线图
  - 股份趋势(收入、成本、利润)- 折线图/堆叠柱状图
  - 溯源与Cell对比趋势 - 双折线图
  
  ### 8.3 排行图表区域
  - 门店业绩排行(溯源、Cell、总收入)- 条形图
  - 老师业绩排行 - 条形图或表格
  
  ### 8.4 分布图表区域
  - 门店业绩分布 - 饼图/环形图
  - 老师业绩分布 - 饼图/环形图
  - 成本结构分布 - 饼图/堆叠柱状图
  
  ### 8.5 对比图表区域
  - 科技一部 vs 科技二部对比 - 柱状图
  - 门店类型对比 - 柱状图
  
  ### 8.6 明细列表区域
  - 门店明细列表
  - 老师明细列表
  - 开单明细列表(可选)
  - 消耗明细列表(可选)
  
  ---
  
  ## 📝 九、数据来源总结
  
  ### 9.1 核心数据表
  
  | 数据表 | 用途 | 关键字段 |
  |--------|------|---------|
  | `lq_md_target` | 门店目标表(包含门店归属科技部信息) | F_StoreId, F_Month, F_TechDepartment |
  | `lq_kd_jksyj` | 开单健康师业绩(溯源/Cell) | jksyj, F_BeautyType, F_StoreId, yjsj |
  | `lq_hytk_jksyj` | 退卡健康师业绩(溯源/Cell) | jksyj, F_BeautyType, F_StoreId, tksj |
  | `lq_kd_kdjlb` | 开单记录 | sfyj, kdrq, djmd |
  | `lq_kd_pxmx` | 开单品项明细 | F_ActualPrice, F_BeautyType |
  | `lq_xh_hyhk` | 消耗记录 | xfje, hksj, md |
  | `lq_xh_pxmx` | 消耗品项明细 | F_BeautyType |
  | `lq_hytk_hytk` | 退卡记录 | tkje, tksj, md |
  | `lq_tech_general_manager_salary_statistics` | 科技部总经理工资统计 | F_TraceabilityAmount, F_CellAmount, F_BaseSalary, F_TraceabilityCommissionAmount, F_CellCommissionAmount |
  | `lq_tech_teacher_salary_statistics` | 科技部老师工资统计 | F_OrderAchievement, F_ConsumeAchievement, F_TotalPerformance |
  | `lq_share_statistics_tech_dept` | 科技部股份统计 | F_Income, F_CostReimbursement, F_CostTeacherBase, F_CostTeacherManual, F_CostTeacherBillingComm, F_CostTeacherConsumeComm, F_CostGMBase, F_CostGMComm, F_Profit |
  | `BASE_USER` | 用户信息(科技部总经理、老师) | F_Id, F_REALNAME, F_GW, F_MDID |
  
  ### 9.2 数据关联关系
  
  - **科技部识别**:通过 `BASE_ORGANIZE` 表的组织ID(`F_Id`)识别,而不是使用中文名称
  - **管理的门店(按月获取)**
    ```sql
    SELECT DISTINCT F_StoreId
    FROM lq_md_target
    WHERE F_TechDepartment = @科技部ID  -- BASE_ORGANIZE表的组织ID(F_Id)
      AND F_Month = @统计月份  -- ⚠️ 必须按月份匹配,格式:YYYYMM
    ```
  - **业绩统计**
    - 通过 `F_StoreId` 关联门店(使用上面获取的门店列表)
    - 通过 `F_BeautyType` 区分溯源和Cell
    - **时间过滤**:通过业绩时间字段(`yjsj`、`hksj`、`tksj`)按月份过滤
  - **重要规则**
    1. **必须先获取指定月份的门店归属关系**,从 `lq_md_target` 表按 `F_TechDepartment` 和 `F_Month` 获取,再使用该门店列表筛选业绩数据
    2. **不能跨月汇总**:每个月份的数据必须独立计算,使用该月份的门店归属关系
    3. **趋势分析**:虽然展示多个月份,但每个月份的数据都是独立计算的
  
  ---
  
  ## 🔧 十、接口设计说明
  
  ### 10.1 接口参数设计
  
  **科技部驾驶舱接口参数设计:兼容两种方式,既可以传入科技部ID(组织ID),也可以传入门店ID列表。**
  
  #### 接口输入参数
  
  ```csharp
  public class TechDepartmentDashboardStatisticsInput
  {
      /// <summary>
      /// 科技部ID(可选):BASE_ORGANIZE表的组织ID(F_Id)
      /// 如果传入科技部ID,则从lq_md_target表查询该月份、该科技部归属的门店列表
      /// 如果传入门店ID列表,则直接使用门店ID列表
      /// 两者必填其一
      /// </summary>
      public string TechDepartmentId { get; set; }
  
      /// <summary>
      /// 门店ID列表(可选)
      /// 如果传入科技部ID,则此字段忽略,使用科技部ID查询门店列表
      /// 如果传入门店ID列表,则直接使用此列表
      /// 两者必填其一
      /// </summary>
      public List<string> StoreIds { get; set; }
  
      /// <summary>
      /// 统计月份(必填):YYYYMM格式,如:202501
      /// </summary>
      [Required(ErrorMessage = "统计月份不能为空")]
      [StringLength(6, MinimumLength = 6, ErrorMessage = "统计月份格式必须为YYYYMM")]
      public string StatisticsMonth { get; set; }
  }
  ```
  
  #### 设计理由
  
  **兼容两种使用场景:**
  
  1. **科技部维度(推荐使用)**
     - 传入科技部ID(BASE_ORGANIZE表的组织ID)+ 统计月份
     - 适用于科技部驾驶舱页面,用户选择科技部查看数据
     - 后端根据统计月份从 `lq_md_target` 表查询该科技部归属的门店列表
     - 优势:数据准确性高,门店归属变化时自动适应,使用ID而非名称,避免名称变更影响
  
  2. **门店列表维度(灵活使用)**
     - 传入门店ID列表 + 统计月份
     - 适用于其他场景,如自定义门店组合、门店对比等
     - 后端直接使用传入的门店ID列表
     - 优势:灵活性高,可以跨科技部组合门店
  
  #### 参数验证逻辑
  
  ```csharp
  // 参数验证
  if (string.IsNullOrWhiteSpace(input.TechDepartmentId) && 
      (input.StoreIds == null || !input.StoreIds.Any()))
  {
      throw NCCException.Oh("科技部ID和门店ID列表不能同时为空,必须传入其中一个");
  }
  
  if (!string.IsNullOrWhiteSpace(input.TechDepartmentId) && 
      input.StoreIds != null && input.StoreIds.Any())
  {
      // 如果同时传入,优先使用科技部ID,门店ID列表将被忽略
      // 或者抛出异常,要求只能传入一个
      throw NCCException.Oh("科技部ID和门店ID列表不能同时传入,请只传入其中一个");
  }
  ```
  
  #### 后端处理流程
  
  **方式1:传入科技部ID**
  1. 接收参数:科技部ID(BASE_ORGANIZE表的组织ID)+ 统计月份
  2. 查询门店列表:从 `lq_md_target` 表查询该月份、该科技部归属的门店ID列表
     ```sql
     SELECT DISTINCT F_StoreId
     FROM lq_md_target
     WHERE F_TechDepartment = @科技部ID
       AND F_Month = @统计月份
     ```
     **说明**`F_TechDepartment` 字段存储的是 `BASE_ORGANIZE` 表的组织ID(`F_Id`),而不是组织名称
  3. 统计业绩数据:使用查询到的门店ID列表筛选业绩数据
  4. 返回统计结果
  
  **方式2:传入门店ID列表**
  1. 接收参数:门店ID列表 + 统计月份
  2. 直接使用门店ID列表(无需查询门店归属关系)
  3. 统计业绩数据:使用传入的门店ID列表筛选业绩数据
  4. 返回统计结果
  
  #### 示例请求
  
  **示例1:传入科技部ID(推荐)**
  ```json
  {
    "techDepartmentId": "1649328471923847169",
    "statisticsMonth": "202501"
  }
  ```
  **说明**`techDepartmentId` 是 `BASE_ORGANIZE` 表中科技一部或科技二部的组织ID(`F_Id`),不是中文名称。使用ID而非名称,避免中文名称变更影响接口调用。
  
  **示例2:传入门店ID列表**
  ```json
  {
    "storeIds": ["1649328471923847169", "1649328471923847170", "1649328471923847171"],
    "statisticsMonth": "202501"
  }
  ```
  
  #### 使用建议
  
  - **科技部驾驶舱页面**:使用方式1(传入科技部ID),更符合业务逻辑,数据准确性高,使用ID而非名称,避免名称变更影响
  - **其他场景**:使用方式2(传入门店ID列表),灵活性高,可以自定义门店组合
  
  #### 科技部ID获取方式
  
  科技部ID从 `BASE_ORGANIZE` 表获取,通过组织名称查询:
  ```sql
  SELECT F_Id, F_FullName
  FROM BASE_ORGANIZE
  WHERE F_FullName LIKE '%科技一部%' OR F_FullName LIKE '%科技二部%'
    AND F_DeleteMark IS NULL
    AND F_EnabledMark = 1
  ```
  
  前端可以通过组织选择器或下拉列表获取科技部ID列表,供用户选择。
  
  ---
  
  ## 🔧 十一、数据查询流程(重要)
  
  ### 11.1 标准查询流程
  
  **所有科技部驾驶舱数据查询都必须遵循以下流程:**
  
  #### 步骤1:确定门店列表(两种方式)
  
  **方式1:传入科技部ID**
  - 从接口参数获取科技部ID(BASE_ORGANIZE表的组织ID)和统计月份
  -`lq_md_target` 表查询该月份、该科技部归属的门店列表
    ```sql
    SELECT DISTINCT F_StoreId
    FROM lq_md_target
    WHERE F_TechDepartment = @科技部ID  -- BASE_ORGANIZE表的组织ID(F_Id)
      AND F_Month = @统计月份  -- ⚠️ 必须按月份匹配,格式:YYYYMM
    ```
  - **重要说明**
    - `F_Month` 字段格式为 YYYYMM(如:202501)
    - `F_TechDepartment` 字段存储的是 `BASE_ORGANIZE` 表的组织ID(`F_Id`),而不是组织名称
    - 不同月份,管理的门店列表可能不同
    - 如果该月份没有归属该科技部的门店,返回空列表,所有业绩数据为0
  
  **方式2:传入门店ID列表**
  - 直接使用接口参数中的门店ID列表
  - 无需查询门店归属关系,直接使用传入的门店列表
  
  #### 步骤2:使用门店列表统计业绩数据
  ```sql
  -- 示例:统计指定月份的溯源金额
  SELECT COALESCE(SUM(CAST(jksyj AS DECIMAL(18,2))), 0) as TraceabilityAmount
  FROM lq_kd_jksyj
  WHERE F_IsEffective = 1
    AND F_StoreId IN (@门店ID列表)  -- ⚠️ 使用步骤1获取或传入的门店列表
    AND (F_BeautyType = '溯源系统' OR F_BeautyType = '溯源')
    AND DATE_FORMAT(yjsj, '%Y%m') = @统计月份  -- ⚠️ 按月份过滤业绩时间
  ```
  
  ### 11.2 趋势分析查询流程
  
  **趋势分析虽然展示多个月份,但每个月份的数据都是独立计算的:**
  
  ```sql
  -- 示例:获取近12个月的溯源金额趋势
  -- 需要循环12个月,每个月都执行以下步骤:
  FOR EACH 月份 IN (近12个月列表) DO
    1. 获取该月份、该科技部归属的门店列表(步骤2)
    2. 使用该门店列表统计该月份的溯源金额(步骤3)
    3. 将结果添加到趋势数据中
  END FOR
  ```
  
  **重要规则**
  - 每个月份使用该月份的门店归属关系
  - 不能跨月汇总,必须按月独立计算
  - 如果某个月份没有管理的门店,该月份的数据为0
  
  ### 11.3 数据查询注意事项
  
  1. **月份格式统一**:所有月份参数统一使用 YYYYMM 格式(如:202501)
  2. **门店归属必须按月获取**:不能使用当前月份的门店列表去查询历史月份的数据
  3. **业绩时间过滤**:使用业绩时间字段(`yjsj`、`hksj`、`tksj`)按月份过滤,格式:`DATE_FORMAT(时间字段, '%Y%m') = @统计月份`
  4. **工资统计表**:使用 `F_StatisticsMonth` 字段过滤,格式:`F_StatisticsMonth = @统计月份`
  5. **股份统计表**:使用 `F_StatisticsMonth` 字段过滤,格式:`F_StatisticsMonth = @统计月份`
  
  ---
  
  ## 🔧 十二、技术实现建议
  
  ### 12.1 数据聚合策略
  
  1. **实时查询**:核心指标使用实时查询,确保数据准确性
  2. **缓存优化**:对于历史月份数据,可以考虑缓存优化
  3. **分页查询**:明细列表必须支持分页,避免大数据量查询
  
  ### 12.2 性能优化
  
  1. **索引优化**:在关键查询字段上建立索引(`F_StoreId`、`F_BeautyType`、时间字段等)
  2. **SQL优化**:使用聚合查询,避免在应用层进行大量数据计算
  3. **数据预聚合**:可以考虑创建统计视图或物化视图
  
  ### 12.3 数据一致性
  
  1. **统一数据源**:业绩数据统一使用健康师业绩表,确保数据一致性
  2. **时间范围**:统一使用业绩时间(`yjsj`、`hksj`、`tksj`)进行时间过滤,**必须按月份过滤**
  3. **归属关系(关键)**
     - **必须按月获取门店归属**:查询指定月份的统计数据时,必须先从 `lq_md_target` 表获取该月份(`F_Month`)、该科技部(`F_TechDepartment`)归属的门店列表
     - **不能跨月汇总**:每个月份的数据必须独立计算,使用该月份的门店归属关系
     - **趋势分析**:虽然趋势图展示多个月份,但每个月份的数据都是独立计算的,每个月份使用该月份的门店归属关系
  4. **月份匹配规则**
     - 门店归属:`lq_md_target.F_Month = @统计月份 AND lq_md_target.F_TechDepartment = @科技部ID`(BASE_ORGANIZE表的组织ID)
     - 业绩时间:`DATE_FORMAT(yjsj, '%Y%m') = @统计月份` 或 `DATE_FORMAT(hksj, '%Y%m') = @统计月份`
     - 工资统计:`lq_tech_*_salary_statistics.F_StatisticsMonth = @统计月份`
     - 股份统计:`lq_share_statistics_tech_dept.F_StatisticsMonth = @统计月份`
  
  ---
  
  ## ✅ 总结
  
  科技部驾驶舱主要关注以下核心数据:
  
  1. **业绩指标**:溯源金额、Cell金额、科美总收入
  2. **股份指标**:收入、成本、利润
  3. **门店分析**:管理的门店业绩排行、分布、对比
  4. **人员分析**:科技部老师业绩排行(总经理成本数据汇总在人工成本中)
  5. **趋势分析**:近12个月的业绩趋势、股份趋势
  6. **对比分析**:环比、同比、部门对比、门店类型对比
  7. **明细数据**:门店明细、老师明细、开单明细、消耗明细
  
  ### ⚠️ 核心规则
  
  1. **所有数据必须按月份统计**:每个指标、排行、趋势、对比等数据都必须按月份(YYYYMM格式)统计
  2. **门店归属按月变化**:不同月份科技部管理的门店可能不一致,必须从 `lq_md_target` 表按月获取门店归属关系(通过 `F_TechDepartment` 和 `F_Month` 字段)
  3. **数据筛选流程**
     - 步骤1:从 `lq_md_target` 表获取指定月份(`F_Month`)、指定科技部(`F_TechDepartment`)归属的门店列表
     - 步骤2:使用该门店列表筛选业绩数据
     - 步骤3:使用业绩时间字段(`yjsj`、`hksj`、`tksj`)按月份过滤
  4. **不能跨月汇总**:每个月份的数据必须独立计算,使用该月份的门店归属关系
  5. **趋势分析**:虽然趋势图展示多个月份,但每个月份的数据都是独立计算的
  6. **部门区分**:所有数据都需要按照科技部(一部/二部)进行区分