e1dcb3a0
“wangming”
1
|
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
|
# 医美驾驶舱接口清单
> **编制说明**:对标 `科技部驾驶舱接口清单.md` 与 `LqTechDepartmentDashboardService`,为医美看板(二期)列 API 与页面模块。
> **业务口径**:组织归属 **大项目部**(`lq_md_target.F_MajorProjectDepartment`);业绩品项 **`F_ItemCategory = '医美'`**(或 `lq_xmzl.qt2 = '医美'`)。
> **参考文档**:`客户需求梳理-一期收尾与二期规划.md` §2.1 医美看板、`科技部驾驶舱数据分析梳理.md`
---
## 〇、与科技部差异摘要
| 维度 | 科技部驾驶舱 | 医美驾驶舱 |
|------|--------------|------------|
| 组织筛选字段 | `F_TechDepartment` | `F_MajorProjectDepartment` |
| 品项类型 | 科美(溯源/Cell) | 医美 |
| 老师业绩 | `lq_kd_kjbsyj` 科技部老师 | 大项目部老师(`lq_md_major_project_teacher_assignment`)+ 健康师医美业绩 `lq_kd_jksyj` |
| 股份模块 | 有(`lq_share_statistics_tech_dept`) | **无独立股份表**,一期不做股份趋势(或二期对接大项目部薪酬) |
| 特有模块 | 溯源/Cell 拆分 | **客户活跃、未消耗权益、医美会员、品项/客户排名** |
---
## 一、服务与路由约定
- **Service 类名(建议)**:`LqMedicalBeautyDashboardService`
- **路由前缀**:`POST /api/Extend/LqMedicalBeautyDashboard/{Action}`
- **基础入参类**:`MedicalBeautyDashboardStatisticsInput`
### 1.1 基础入参 `MedicalBeautyDashboardStatisticsInput`
| 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `majorProjectDepartmentId` | string | 与 storeIds 二选一 | 大项目部组织 ID(`BASE_ORGANIZE.F_Id`) |
| `storeIds` | List\<string\> | 与 majorProjectDepartmentId 二选一 | 直接指定门店列表 |
| `statisticsMonth` | string | 是 | 统计月 `YYYYMM` |
**门店解析规则**(与科技部一致):
```sql
SELECT DISTINCT F_StoreId
FROM lq_md_target
WHERE F_MajorProjectDepartment = @majorProjectDepartmentId
AND F_Month = @statisticsMonth
```
### 1.2 月份与落月口径
| 业务 | 落月字段 | 表 |
|------|----------|-----|
| 开单实收 | 单据 `kdrq` 或子表 `yjsj`(与天王日报/大项目部一致,实现时二选一并写清) | `lq_kd_kdjlb` + `lq_kd_jksyj` / `lq_kd_pxmx` |
| 退卡 | 主表 `tksj` | `lq_hytk_hytk` + `lq_hytk_jksyj` / `lq_hytk_mx`(仅医美明细) |
| 耗卡 | `hksj` | `lq_xh_hyhk` + `lq_xh_pxmx` |
| 储扣 | 关联开单 `kdrq` | `lq_kd_deductinfo` + 品项 `qt2='医美'` |
---
## 二、接口清单
### 2.1 核心业务指标
#### ⏳ 1. GetStatistics — 核心 KPI 卡片
**说明**:当月医美经营总览。
| 输出字段 | 说明 | 数据来源 |
|----------|------|----------|
| `billingAmount` | 医美开单金额(健康师业绩子表汇总) | `lq_kd_jksyj`,`F_ItemCategory='医美'` |
| `refundAmount` | 医美退卡金额 | `lq_hytk_jksyj` 或 `lq_hytk_mx`(仅医美行) |
| `netBillingAmount` | 实收 = 开单 − 退卡 | 计算 |
| `deductAmount` | 医美储扣 | `lq_kd_deductinfo` + 医美品项 |
| `consumeAmount` | 医美消耗金额 | `lq_xh_pxmx` + `qt2='医美'` |
| `managedStoreCount` | 管辖门店数 | `lq_md_target` |
| `activeStoreCount` | 有医美开单或耗卡的门店数 | 去重 |
| `targetAmount` | 大项目部月度目标 | `lq_md_target.F_MajorProjectDepartmentTarget` 汇总 |
| `targetCompletionRate` | 目标完成率 % | `netBillingAmount / targetAmount` |
| `medicalMemberCount` | 医美会员数(期末) | `lq_khxx.F_IsMedicalMember=1` 且门店在范围内 |
| `newMedicalMemberCount` | 当月新增医美会员 | `F_MedicalMemberTime` 落月 |
| `billingMemberCount` | 当月医美开单人数(去重) | `lq_kd_kdjlb.kdhy` |
| `consumeMemberCount` | 当月医美耗卡人数(去重) | `lq_xh_hyhk` |
| `avgOrderAmount` | 客单价 | `netBillingAmount / billingMemberCount` |
---
#### ⏳ 2. GetCustomerActivityStatistics — 客户活跃与结构
**说明**:对应二期「客户活跃度、老客/新客/复购」。
| 输出字段 | 说明 |
|----------|------|
| `newCustomerCount` | 新客(口径待确认:首单医美 / 首到店) |
| `oldCustomerCount` | 老客 |
| `repurchaseCustomerCount` | 复购客户数(当月≥2 次医美开单或耗卡) |
| `activeCustomerCount` | 活跃客户(当月有开单或耗卡) |
| `inactiveCustomerCount` | 沉睡客户(管辖门店会员中当月无医美行为) |
| `unusedRightsCustomerCount` | 有医美权益未消耗客户数 |
| `unusedRightsAmount` | 未消耗权益金额合计 | `lq_khxx.F_RemainingRightsAmount` 等,需结合医美品项剩余 |
> **待产品确认**:新客/老客判定规则写入 `医美驾驶舱数据分析梳理.md` 定稿后再实现。
---
#### ⏳ 3. GetUnusedRightsStatistics — 未消耗客户明细(Top + 分页)
**入参**:基础入参 + `PageInput`
**输出**:会员、门店、剩余权益金额、最近开单/耗卡日期。
---
### 2.2 趋势分析
#### ⏳ 4. GetPerformanceTrend
**入参**:`MedicalBeautyDashboardPerformanceTrendInput`(继承基础入参 + `monthCount`:3/6/12)
| 序列 | 说明 |
|------|------|
| `netBillingTrend` | 实收趋势 |
| `consumeTrend` | 消耗趋势 |
| `deductTrend` | 储扣趋势 |
| `targetCompletionTrend` | 目标完成率趋势 |
---
#### ⏳ 5. GetComparisonAnalysis — 环比 / 同比
| 输出 | 说明 |
|------|------|
| `mom` | 环比上月(实收、消耗、人数) |
| `yoy` | 同比去年同月 |
| `yoyThreeYear` | 近三年同月对比(二期「环比三年」) |
---
### 2.3 排行与分布
#### ⏳ 6. GetStoreRanking — 门店排行
| 字段 | 说明 |
|------|------|
| `storeId` / `storeName` | 门店 |
| `netBillingAmount` | 实收 |
| `consumeAmount` | 消耗 |
| `percentage` | 占部门总额 % |
---
#### ⏳ 7. GetStoreDistribution — 门店业绩分布(饼图)
---
#### ⏳ 8. GetItemRanking — 品项排行
**数据来源**:`lq_kd_pxmx` + `lq_xmzl`,`qt2='医美'`
**字段**:品项名、开单金额、开单次数、占比。
---
#### ⏳ 9. GetCustomerRanking — 客户排行(Top N)
**字段**:客户名、门店、开单金额、耗卡次数、最近到店。
---
### 2.4 运营分析
#### ⏳ 10. GetOperationStatistics
| 模块 | 指标 |
|------|------|
| 开单 | 次数、均单、门店分布 |
| 消耗 | 次数、金额、消耗率(消耗/开单) |
| 退卡 | 次数、金额、退卡率 |
---
### 2.5 明细列表(分页)
#### ⏳ 11. GetStoreDetailList
门店维度:实收、消耗、目标、完成率、开单人数。
#### ⏳ 12. GetBillingDetailList
医美开单明细:`lq_kd_kdjlb` + `lq_kd_pxmx` / `lq_kd_jksyj`。
#### ⏳ 13. GetConsumeDetailList
医美耗卡明细:`lq_xh_hyhk` + `lq_xh_pxmx`。
#### ⏳ 14. GetRefundDetailList
医美退卡明细:`lq_hytk_hytk` + 医美品项行。
#### ⏳ 15. GetCustomerDetailList — 医美客户列表(二期「展示所有医美客户」)
**筛选**:门店、是否会员、是否有未消耗、关键词(姓名/手机)。
#### ⏳ 16. ExportCustomerDetailList — 导出 / 截图数据源
复用列表查询,支持导出 Excel(记业务日志)。
---
## 三、页面模块结构(管理后台)
**建议路径**:`antis-ncc-admin/src/views/extend/medicalBeautyDashboard/index.vue`
**API 模块**:`antis-ncc-admin/src/api/extend/medicalBeautyDashboard.js`
**小程序(可选二期)**:`绿纤uni-app/pagesA/medical-beauty-dashboard/`
| 区块 | 对应接口 | UI 组件(对标科技部) |
|------|----------|------------------------|
| **顶栏筛选** | — | 月份 + 大项目部下拉 + 刷新 |
| **KPI 第一行** | `GetStatistics` | 6~8 张卡片:实收、消耗、储扣、退卡、目标完成率、活跃门店 |
| **KPI 第二行** | `GetStatistics` + `GetCustomerActivityStatistics` | 医美会员、新客、复购、客单价、未消耗金额 |
| **业绩趋势** | `GetPerformanceTrend` | 折线图,3/6/12 月切换 |
| **门店分布** | `GetStoreDistribution` | 饼图 |
| **环比同比** | `GetComparisonAnalysis` | 数字卡片 + 迷你柱图 |
| **门店排行** | `GetStoreRanking` | 表格 Top10,点击穿透门店明细 |
| **品项排行** | `GetItemRanking` | 表格 / 条形图 |
| **客户排行** | `GetCustomerRanking` | 表格 Top10 |
| **运营分析** | `GetOperationStatistics` | 开单/消耗/退卡三列指标 |
| **明细 Tab** | `GetStoreDetailList` / `GetBillingDetailList` / `GetConsumeDetailList` / `GetCustomerDetailList` | `NCC-table` 分页,支持导出 |
| **未消耗专区** | `GetUnusedRightsStatistics` | 可折叠表格 |
| **截图** | 前端 `html2canvas` 或区域导出 | 二期需求 |
**工作台入口(可选)**:`workbench/widgets/medical-beauty-dashboard-entry.vue`、`medical-beauty-kpi.vue`
---
## 四、可复用现有接口(开发前可先拼装 Mock)
| 接口 | 用途 |
|------|------|
| `POST /api/Extend/LqStoreDashboard/GetStatistics` | 门店维度医美分项 |
| `POST /api/Extend/LqStoreDashboard/GetCategoryMonthlyPerformance` | 月度医美消耗 |
| `POST /api/Extend/LqBusinessUnitDashboard/GetStatistics` | 事业部医美占比 |
| `POST /api/Extend/LqDailyReport/get-tianwang-group-performance-completion` | 大项目部=医美日报口径校验 |
| `POST /api/Extend/LqXmzl/GetItemStatistics` | `itemCategory: "医美"` |
| `POST /api/Extend/LqStatistics/get-member-upgrade-statistics-list` | 升医美人数 |
---
## 五、实现优先级
**第一批(可上线 MVP)**
1. `GetStatistics`
2. `GetPerformanceTrend`
3. `GetStoreRanking`
4. `GetStoreDetailList`
5. 管理后台页面:顶栏 + KPI + 趋势 + 门店排行 + 门店明细
**第二批**
6. `GetOperationStatistics`
7. `GetItemRanking`
8. `GetComparisonAnalysis`
9. `GetBillingDetailList` / `GetConsumeDetailList` / `GetRefundDetailList`
**第三批(二期完整)**
10. `GetCustomerActivityStatistics`
11. `GetCustomerRanking` / `GetCustomerDetailList`
12. `GetUnusedRightsStatistics`
13. 导出、截图、小程序页
---
## 六、后端文件清单(建议新建)
```
netcore/src/Modularity/Extend/NCC.Extend/LqMedicalBeautyDashboardService.cs
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqMedicalBeautyDashboard/*.cs
antis-ncc-admin/src/api/extend/medicalBeautyDashboard.js
antis-ncc-admin/src/views/extend/medicalBeautyDashboard/index.vue
```
**权限**:菜单「医美看板」;数据范围按大项目部组织 + `lq_md_target` 月份门店(与科技部 `app科技部数据开关按钮` 类似,可加「大项目部数据开关」)。
---
## 七、待产品确认项(实现前)
1. 新客 / 老客 / 复购的精确 SQL 口径
2. 未消耗金额:仅 `F_RemainingRightsAmount` 还是按医美品项明细剩余
3. 开单落月用 `kdrq` 还是 `yjsj`(建议与天王日报大项目部一致)
4. 活动秒杀是否单独字段或标签
定稿后同步更新 `项目文档相关/docs/数据库说明.md`(若新增配置表)。
|